From 5d4929d5382f58e8969e8b9b1567c55ebf5fd588 Mon Sep 17 00:00:00 2001 From: tbrehm Date: Wed, 28 Dec 2011 09:53:11 +0000 Subject: [PATCH] Reverted changes from revisions 2824 and 2825. --- .../interface/admin/firewall_del.php | 51 - .../interface/admin/firewall_edit.php | 72 - .../interface/admin/firewall_list.php | 52 - .../interface/admin/form/dbsync.tform.php | 264 - .../interface/admin/form/filesync.tform.php | 205 - .../interface/admin/form/firewall.tform.php | 112 - .../interface/admin/form/groups.tform.php | 112 - .../admin/form/remote_user.tform.php | 160 - .../interface/admin/form/server.tform.php | 157 - .../admin/form/server_config.tform.php | 750 -- .../interface/admin/form/server_ip.tform.php | 125 - .../admin/form/software_repo.tform.php | 153 - .../admin/form/system_config.tform.php | 167 - .../interface/admin/form/users.tform.php | 456 - .../ispconfig/interface/admin/groups_del.php | 51 - .../ispconfig/interface/admin/groups_edit.php | 53 - .../ispconfig/interface/admin/groups_list.php | 51 - interface/ispconfig/interface/admin/index.php | 78 - .../interface/admin/language_add.php | 104 - .../interface/admin/language_complete.php | 167 - .../interface/admin/language_edit.php | 104 - .../interface/admin/language_export.php | 120 - .../interface/admin/language_import.php | 105 - .../interface/admin/language_list.php | 108 - .../ispconfig/interface/admin/lib/lang/bg.lng | 40 - .../interface/admin/lib/lang/bg_firewall.lng | 11 - .../admin/lib/lang/bg_firewall_list.lng | 8 - .../interface/admin/lib/lang/bg_groups.lng | 5 - .../admin/lib/lang/bg_groups_list.lng | 7 - .../admin/lib/lang/bg_language_add.lng | 8 - .../admin/lib/lang/bg_language_complete.lng | 7 - .../admin/lib/lang/bg_language_edit.lng | 8 - .../admin/lib/lang/bg_language_export.lng | 6 - .../admin/lib/lang/bg_language_import.lng | 8 - .../admin/lib/lang/bg_language_list.lng | 7 - .../admin/lib/lang/bg_remote_user.lng | 42 - .../admin/lib/lang/bg_remote_user_list.lng | 7 - .../interface/admin/lib/lang/bg_server.lng | 13 - .../admin/lib/lang/bg_server_config.lng | 68 - .../admin/lib/lang/bg_server_config_list.lng | 4 - .../interface/admin/lib/lang/bg_server_ip.lng | 7 - .../admin/lib/lang/bg_server_ip_list.lng | 6 - .../admin/lib/lang/bg_server_list.lng | 11 - .../lib/lang/bg_software_package_list.lng | 7 - .../admin/lib/lang/bg_software_repo.lng | 7 - .../admin/lib/lang/bg_software_repo_list.lng | 6 - .../lib/lang/bg_software_update_list.lng | 8 - .../admin/lib/lang/bg_system_config.lng | 15 - .../interface/admin/lib/lang/bg_users.lng | 28 - .../admin/lib/lang/bg_users_list.lng | 9 - .../ispconfig/interface/admin/lib/lang/br.lng | 40 - .../interface/admin/lib/lang/br_firewall.lng | 11 - .../admin/lib/lang/br_firewall_list.lng | 8 - .../interface/admin/lib/lang/br_groups.lng | 5 - .../admin/lib/lang/br_groups_list.lng | 7 - .../admin/lib/lang/br_language_add.lng | 8 - .../admin/lib/lang/br_language_complete.lng | 7 - .../admin/lib/lang/br_language_edit.lng | 8 - .../admin/lib/lang/br_language_export.lng | 6 - .../admin/lib/lang/br_language_import.lng | 8 - .../admin/lib/lang/br_language_list.lng | 7 - .../admin/lib/lang/br_remote_user.lng | 42 - .../admin/lib/lang/br_remote_user_list.lng | 7 - .../interface/admin/lib/lang/br_server.lng | 13 - .../admin/lib/lang/br_server_config.lng | 68 - .../admin/lib/lang/br_server_config_list.lng | 4 - .../interface/admin/lib/lang/br_server_ip.lng | 7 - .../admin/lib/lang/br_server_ip_list.lng | 6 - .../admin/lib/lang/br_server_list.lng | 11 - .../lib/lang/br_software_package_list.lng | 7 - .../admin/lib/lang/br_software_repo.lng | 7 - .../admin/lib/lang/br_software_repo_list.lng | 6 - .../lib/lang/br_software_update_list.lng | 8 - .../admin/lib/lang/br_system_config.lng | 15 - .../interface/admin/lib/lang/br_users.lng | 28 - .../admin/lib/lang/br_users_list.lng | 9 - .../ispconfig/interface/admin/lib/lang/de.lng | 40 - .../interface/admin/lib/lang/de_firewall.lng | 11 - .../admin/lib/lang/de_firewall_list.lng | 8 - .../interface/admin/lib/lang/de_groups.lng | 5 - .../admin/lib/lang/de_groups_list.lng | 7 - .../admin/lib/lang/de_language_add.lng | 8 - .../admin/lib/lang/de_language_complete.lng | 7 - .../admin/lib/lang/de_language_edit.lng | 8 - .../admin/lib/lang/de_language_export.lng | 6 - .../admin/lib/lang/de_language_import.lng | 8 - .../admin/lib/lang/de_language_list.lng | 7 - .../admin/lib/lang/de_remote_user.lng | 42 - .../admin/lib/lang/de_remote_user_list.lng | 7 - .../interface/admin/lib/lang/de_server.lng | 13 - .../admin/lib/lang/de_server_config.lng | 68 - .../admin/lib/lang/de_server_config_list.lng | 4 - .../interface/admin/lib/lang/de_server_ip.lng | 7 - .../admin/lib/lang/de_server_ip_list.lng | 6 - .../admin/lib/lang/de_server_list.lng | 11 - .../lib/lang/de_software_package_list.lng | 7 - .../admin/lib/lang/de_software_repo.lng | 7 - .../admin/lib/lang/de_software_repo_list.lng | 6 - .../lib/lang/de_software_update_list.lng | 8 - .../admin/lib/lang/de_system_config.lng | 15 - .../interface/admin/lib/lang/de_users.lng | 28 - .../admin/lib/lang/de_users_list.lng | 9 - .../ispconfig/interface/admin/lib/lang/en.lng | 42 - .../interface/admin/lib/lang/en_firewall.lng | 12 - .../admin/lib/lang/en_firewall_list.lng | 8 - .../interface/admin/lib/lang/en_groups.lng | 5 - .../admin/lib/lang/en_groups_list.lng | 7 - .../admin/lib/lang/en_language_add.lng | 8 - .../admin/lib/lang/en_language_complete.lng | 7 - .../admin/lib/lang/en_language_edit.lng | 8 - .../admin/lib/lang/en_language_export.lng | 6 - .../admin/lib/lang/en_language_import.lng | 8 - .../admin/lib/lang/en_language_list.lng | 7 - .../admin/lib/lang/en_remote_user.lng | 42 - .../admin/lib/lang/en_remote_user_list.lng | 8 - .../interface/admin/lib/lang/en_server.lng | 13 - .../admin/lib/lang/en_server_config.lng | 68 - .../admin/lib/lang/en_server_config_list.lng | 4 - .../interface/admin/lib/lang/en_server_ip.lng | 7 - .../admin/lib/lang/en_server_ip_list.lng | 6 - .../admin/lib/lang/en_server_list.lng | 11 - .../lib/lang/en_software_package_list.lng | 7 - .../admin/lib/lang/en_software_repo.lng | 7 - .../admin/lib/lang/en_software_repo_list.lng | 6 - .../lib/lang/en_software_update_list.lng | 8 - .../admin/lib/lang/en_system_config.lng | 17 - .../interface/admin/lib/lang/en_users.lng | 28 - .../admin/lib/lang/en_users_list.lng | 9 - .../ispconfig/interface/admin/lib/lang/es.lng | 40 - .../interface/admin/lib/lang/es_firewall.lng | 11 - .../admin/lib/lang/es_firewall_list.lng | 8 - .../interface/admin/lib/lang/es_groups.lng | 5 - .../admin/lib/lang/es_groups_list.lng | 7 - .../admin/lib/lang/es_language_add.lng | 8 - .../admin/lib/lang/es_language_complete.lng | 7 - .../admin/lib/lang/es_language_edit.lng | 8 - .../admin/lib/lang/es_language_export.lng | 6 - .../admin/lib/lang/es_language_import.lng | 8 - .../admin/lib/lang/es_language_list.lng | 7 - .../admin/lib/lang/es_remote_user.lng | 42 - .../admin/lib/lang/es_remote_user_list.lng | 7 - .../interface/admin/lib/lang/es_server.lng | 13 - .../admin/lib/lang/es_server_config.lng | 68 - .../admin/lib/lang/es_server_config_list.lng | 4 - .../interface/admin/lib/lang/es_server_ip.lng | 7 - .../admin/lib/lang/es_server_ip_list.lng | 6 - .../admin/lib/lang/es_server_list.lng | 11 - .../lib/lang/es_software_package_list.lng | 7 - .../admin/lib/lang/es_software_repo.lng | 7 - .../admin/lib/lang/es_software_repo_list.lng | 6 - .../lib/lang/es_software_update_list.lng | 8 - .../admin/lib/lang/es_system_config.lng | 15 - .../interface/admin/lib/lang/es_users.lng | 28 - .../admin/lib/lang/es_users_list.lng | 9 - .../ispconfig/interface/admin/lib/lang/fi.lng | 40 - .../interface/admin/lib/lang/fi_firewall.lng | 11 - .../admin/lib/lang/fi_firewall_list.lng | 8 - .../interface/admin/lib/lang/fi_groups.lng | 5 - .../admin/lib/lang/fi_groups_list.lng | 7 - .../admin/lib/lang/fi_language_add.lng | 8 - .../admin/lib/lang/fi_language_complete.lng | 7 - .../admin/lib/lang/fi_language_edit.lng | 8 - .../admin/lib/lang/fi_language_export.lng | 6 - .../admin/lib/lang/fi_language_import.lng | 8 - .../admin/lib/lang/fi_language_list.lng | 7 - .../admin/lib/lang/fi_remote_user.lng | 42 - .../admin/lib/lang/fi_remote_user_list.lng | 7 - .../interface/admin/lib/lang/fi_server.lng | 13 - .../admin/lib/lang/fi_server_config.lng | 68 - .../admin/lib/lang/fi_server_config_list.lng | 4 - .../interface/admin/lib/lang/fi_server_ip.lng | 7 - .../admin/lib/lang/fi_server_ip_list.lng | 6 - .../admin/lib/lang/fi_server_list.lng | 11 - .../lib/lang/fi_software_package_list.lng | 7 - .../admin/lib/lang/fi_software_repo.lng | 7 - .../admin/lib/lang/fi_software_repo_list.lng | 6 - .../lib/lang/fi_software_update_list.lng | 8 - .../admin/lib/lang/fi_system_config.lng | 15 - .../interface/admin/lib/lang/fi_users.lng | 28 - .../admin/lib/lang/fi_users_list.lng | 9 - .../ispconfig/interface/admin/lib/lang/fr.lng | 40 - .../interface/admin/lib/lang/fr_firewall.lng | 11 - .../admin/lib/lang/fr_firewall_list.lng | 8 - .../interface/admin/lib/lang/fr_groups.lng | 5 - .../admin/lib/lang/fr_groups_list.lng | 7 - .../admin/lib/lang/fr_language_add.lng | 8 - .../admin/lib/lang/fr_language_complete.lng | 7 - .../admin/lib/lang/fr_language_edit.lng | 8 - .../admin/lib/lang/fr_language_export.lng | 6 - .../admin/lib/lang/fr_language_import.lng | 8 - .../admin/lib/lang/fr_language_list.lng | 7 - .../admin/lib/lang/fr_remote_user.lng | 42 - .../admin/lib/lang/fr_remote_user_list.lng | 7 - .../interface/admin/lib/lang/fr_server.lng | 13 - .../admin/lib/lang/fr_server_config.lng | 68 - .../admin/lib/lang/fr_server_config_list.lng | 4 - .../interface/admin/lib/lang/fr_server_ip.lng | 7 - .../admin/lib/lang/fr_server_ip_list.lng | 6 - .../admin/lib/lang/fr_server_list.lng | 11 - .../lib/lang/fr_software_package_list.lng | 7 - .../admin/lib/lang/fr_software_repo.lng | 7 - .../admin/lib/lang/fr_software_repo_list.lng | 6 - .../lib/lang/fr_software_update_list.lng | 8 - .../admin/lib/lang/fr_system_config.lng | 15 - .../interface/admin/lib/lang/fr_users.lng | 28 - .../admin/lib/lang/fr_users_list.lng | 9 - .../ispconfig/interface/admin/lib/lang/hu.lng | 40 - .../interface/admin/lib/lang/hu_firewall.lng | 11 - .../admin/lib/lang/hu_firewall_list.lng | 8 - .../interface/admin/lib/lang/hu_groups.lng | 5 - .../admin/lib/lang/hu_groups_list.lng | 7 - .../admin/lib/lang/hu_language_add.lng | 8 - .../admin/lib/lang/hu_language_complete.lng | 7 - .../admin/lib/lang/hu_language_edit.lng | 8 - .../admin/lib/lang/hu_language_export.lng | 6 - .../admin/lib/lang/hu_language_import.lng | 8 - .../admin/lib/lang/hu_language_list.lng | 7 - .../admin/lib/lang/hu_remote_user.lng | 42 - .../admin/lib/lang/hu_remote_user_list.lng | 7 - .../interface/admin/lib/lang/hu_server.lng | 13 - .../admin/lib/lang/hu_server_config.lng | 68 - .../admin/lib/lang/hu_server_config_list.lng | 4 - .../interface/admin/lib/lang/hu_server_ip.lng | 7 - .../admin/lib/lang/hu_server_ip_list.lng | 6 - .../admin/lib/lang/hu_server_list.lng | 11 - .../lib/lang/hu_software_package_list.lng | 7 - .../admin/lib/lang/hu_software_repo.lng | 7 - .../admin/lib/lang/hu_software_repo_list.lng | 6 - .../lib/lang/hu_software_update_list.lng | 8 - .../admin/lib/lang/hu_system_config.lng | 15 - .../interface/admin/lib/lang/hu_users.lng | 28 - .../admin/lib/lang/hu_users_list.lng | 9 - .../ispconfig/interface/admin/lib/lang/it.lng | 40 - .../interface/admin/lib/lang/it_firewall.lng | 11 - .../admin/lib/lang/it_firewall_list.lng | 8 - .../interface/admin/lib/lang/it_groups.lng | 5 - .../admin/lib/lang/it_groups_list.lng | 7 - .../admin/lib/lang/it_language_add.lng | 8 - .../admin/lib/lang/it_language_complete.lng | 7 - .../admin/lib/lang/it_language_edit.lng | 8 - .../admin/lib/lang/it_language_export.lng | 6 - .../admin/lib/lang/it_language_import.lng | 8 - .../admin/lib/lang/it_language_list.lng | 7 - .../admin/lib/lang/it_remote_user.lng | 42 - .../admin/lib/lang/it_remote_user_list.lng | 7 - .../interface/admin/lib/lang/it_server.lng | 13 - .../admin/lib/lang/it_server_config.lng | 68 - .../admin/lib/lang/it_server_config_list.lng | 4 - .../interface/admin/lib/lang/it_server_ip.lng | 7 - .../admin/lib/lang/it_server_ip_list.lng | 6 - .../admin/lib/lang/it_server_list.lng | 11 - .../lib/lang/it_software_package_list.lng | 7 - .../admin/lib/lang/it_software_repo.lng | 7 - .../admin/lib/lang/it_software_repo_list.lng | 6 - .../lib/lang/it_software_update_list.lng | 8 - .../admin/lib/lang/it_system_config.lng | 15 - .../interface/admin/lib/lang/it_users.lng | 28 - .../admin/lib/lang/it_users_list.lng | 9 - .../ispconfig/interface/admin/lib/lang/ja.lng | 40 - .../interface/admin/lib/lang/ja_firewall.lng | 11 - .../admin/lib/lang/ja_firewall_list.lng | 8 - .../interface/admin/lib/lang/ja_groups.lng | 5 - .../admin/lib/lang/ja_groups_list.lng | 7 - .../admin/lib/lang/ja_language_add.lng | 8 - .../admin/lib/lang/ja_language_complete.lng | 7 - .../admin/lib/lang/ja_language_edit.lng | 8 - .../admin/lib/lang/ja_language_export.lng | 6 - .../admin/lib/lang/ja_language_import.lng | 8 - .../admin/lib/lang/ja_language_list.lng | 7 - .../admin/lib/lang/ja_remote_user.lng | 42 - .../admin/lib/lang/ja_remote_user_list.lng | 7 - .../interface/admin/lib/lang/ja_server.lng | 13 - .../admin/lib/lang/ja_server_config.lng | 68 - .../admin/lib/lang/ja_server_config_list.lng | 4 - .../interface/admin/lib/lang/ja_server_ip.lng | 7 - .../admin/lib/lang/ja_server_ip_list.lng | 6 - .../admin/lib/lang/ja_server_list.lng | 11 - .../lib/lang/ja_software_package_list.lng | 7 - .../admin/lib/lang/ja_software_repo.lng | 7 - .../admin/lib/lang/ja_software_repo_list.lng | 6 - .../lib/lang/ja_software_update_list.lng | 8 - .../admin/lib/lang/ja_system_config.lng | 15 - .../interface/admin/lib/lang/ja_users.lng | 28 - .../admin/lib/lang/ja_users_list.lng | 9 - .../ispconfig/interface/admin/lib/lang/nl.lng | 40 - .../interface/admin/lib/lang/nl_firewall.lng | 11 - .../admin/lib/lang/nl_firewall_list.lng | 8 - .../interface/admin/lib/lang/nl_groups.lng | 5 - .../admin/lib/lang/nl_groups_list.lng | 7 - .../admin/lib/lang/nl_language_add.lng | 8 - .../admin/lib/lang/nl_language_complete.lng | 7 - .../admin/lib/lang/nl_language_edit.lng | 8 - .../admin/lib/lang/nl_language_export.lng | 6 - .../admin/lib/lang/nl_language_import.lng | 8 - .../admin/lib/lang/nl_language_list.lng | 7 - .../admin/lib/lang/nl_remote_user.lng | 42 - .../admin/lib/lang/nl_remote_user_list.lng | 7 - .../interface/admin/lib/lang/nl_server.lng | 13 - .../admin/lib/lang/nl_server_config.lng | 68 - .../admin/lib/lang/nl_server_config_list.lng | 4 - .../interface/admin/lib/lang/nl_server_ip.lng | 7 - .../admin/lib/lang/nl_server_ip_list.lng | 6 - .../admin/lib/lang/nl_server_list.lng | 11 - .../lib/lang/nl_software_package_list.lng | 7 - .../admin/lib/lang/nl_software_repo.lng | 7 - .../admin/lib/lang/nl_software_repo_list.lng | 6 - .../lib/lang/nl_software_update_list.lng | 8 - .../admin/lib/lang/nl_system_config.lng | 15 - .../interface/admin/lib/lang/nl_users.lng | 28 - .../admin/lib/lang/nl_users_list.lng | 9 - .../ispconfig/interface/admin/lib/lang/pl.lng | 40 - .../interface/admin/lib/lang/pl_firewall.lng | 11 - .../admin/lib/lang/pl_firewall_list.lng | 8 - .../interface/admin/lib/lang/pl_groups.lng | 5 - .../admin/lib/lang/pl_groups_list.lng | 7 - .../admin/lib/lang/pl_language_add.lng | 8 - .../admin/lib/lang/pl_language_complete.lng | 7 - .../admin/lib/lang/pl_language_edit.lng | 8 - .../admin/lib/lang/pl_language_export.lng | 6 - .../admin/lib/lang/pl_language_import.lng | 8 - .../admin/lib/lang/pl_language_list.lng | 7 - .../admin/lib/lang/pl_remote_user.lng | 42 - .../admin/lib/lang/pl_remote_user_list.lng | 7 - .../interface/admin/lib/lang/pl_server.lng | 13 - .../admin/lib/lang/pl_server_config.lng | 68 - .../admin/lib/lang/pl_server_config_list.lng | 4 - .../interface/admin/lib/lang/pl_server_ip.lng | 7 - .../admin/lib/lang/pl_server_ip_list.lng | 6 - .../admin/lib/lang/pl_server_list.lng | 11 - .../lib/lang/pl_software_package_list.lng | 7 - .../admin/lib/lang/pl_software_repo.lng | 7 - .../admin/lib/lang/pl_software_repo_list.lng | 6 - .../lib/lang/pl_software_update_list.lng | 8 - .../admin/lib/lang/pl_system_config.lng | 15 - .../interface/admin/lib/lang/pl_users.lng | 28 - .../admin/lib/lang/pl_users_list.lng | 9 - .../ispconfig/interface/admin/lib/lang/pt.lng | 41 - .../interface/admin/lib/lang/pt_firewall.lng | 12 - .../admin/lib/lang/pt_firewall_list.lng | 9 - .../interface/admin/lib/lang/pt_groups.lng | 6 - .../admin/lib/lang/pt_groups_list.lng | 8 - .../admin/lib/lang/pt_language_add.lng | 9 - .../admin/lib/lang/pt_language_complete.lng | 8 - .../admin/lib/lang/pt_language_edit.lng | 9 - .../admin/lib/lang/pt_language_export.lng | 7 - .../admin/lib/lang/pt_language_import.lng | 9 - .../admin/lib/lang/pt_language_list.lng | 8 - .../admin/lib/lang/pt_remote_user.lng | 43 - .../admin/lib/lang/pt_remote_user_list.lng | 8 - .../interface/admin/lib/lang/pt_server.lng | 14 - .../admin/lib/lang/pt_server_config.lng | 69 - .../admin/lib/lang/pt_server_config_list.lng | 5 - .../interface/admin/lib/lang/pt_server_ip.lng | 8 - .../admin/lib/lang/pt_server_ip_list.lng | 7 - .../admin/lib/lang/pt_server_list.lng | 12 - .../lib/lang/pt_software_package_list.lng | 8 - .../admin/lib/lang/pt_software_repo.lng | 8 - .../admin/lib/lang/pt_software_repo_list.lng | 7 - .../lib/lang/pt_software_update_list.lng | 9 - .../admin/lib/lang/pt_system_config.lng | 16 - .../interface/admin/lib/lang/pt_users.lng | 29 - .../admin/lib/lang/pt_users_list.lng | 10 - .../ispconfig/interface/admin/lib/lang/ro.lng | 40 - .../interface/admin/lib/lang/ro_firewall.lng | 11 - .../admin/lib/lang/ro_firewall_list.lng | 8 - .../interface/admin/lib/lang/ro_groups.lng | 5 - .../admin/lib/lang/ro_groups_list.lng | 7 - .../admin/lib/lang/ro_language_add.lng | 8 - .../admin/lib/lang/ro_language_complete.lng | 7 - .../admin/lib/lang/ro_language_edit.lng | 8 - .../admin/lib/lang/ro_language_export.lng | 6 - .../admin/lib/lang/ro_language_import.lng | 8 - .../admin/lib/lang/ro_language_list.lng | 7 - .../admin/lib/lang/ro_remote_user.lng | 42 - .../admin/lib/lang/ro_remote_user_list.lng | 8 - .../interface/admin/lib/lang/ro_server.lng | 13 - .../admin/lib/lang/ro_server_config.lng | 68 - .../admin/lib/lang/ro_server_config_list.lng | 4 - .../interface/admin/lib/lang/ro_server_ip.lng | 7 - .../admin/lib/lang/ro_server_ip_list.lng | 6 - .../admin/lib/lang/ro_server_list.lng | 11 - .../lib/lang/ro_software_package_list.lng | 7 - .../admin/lib/lang/ro_software_repo.lng | 7 - .../admin/lib/lang/ro_software_repo_list.lng | 6 - .../lib/lang/ro_software_update_list.lng | 8 - .../admin/lib/lang/ro_system_config.lng | 15 - .../interface/admin/lib/lang/ro_users.lng | 28 - .../admin/lib/lang/ro_users_list.lng | 9 - .../ispconfig/interface/admin/lib/lang/ru.lng | 41 - .../interface/admin/lib/lang/ru_firewall.lng | 12 - .../admin/lib/lang/ru_firewall_list.lng | 9 - .../interface/admin/lib/lang/ru_groups.lng | 6 - .../admin/lib/lang/ru_groups_list.lng | 8 - .../admin/lib/lang/ru_language_add.lng | 9 - .../admin/lib/lang/ru_language_complete.lng | 8 - .../admin/lib/lang/ru_language_edit.lng | 9 - .../admin/lib/lang/ru_language_export.lng | 7 - .../admin/lib/lang/ru_language_import.lng | 9 - .../admin/lib/lang/ru_language_list.lng | 8 - .../admin/lib/lang/ru_remote_user.lng | 43 - .../admin/lib/lang/ru_remote_user_list.lng | 8 - .../interface/admin/lib/lang/ru_server.lng | 14 - .../admin/lib/lang/ru_server_config.lng | 69 - .../admin/lib/lang/ru_server_config_list.lng | 5 - .../interface/admin/lib/lang/ru_server_ip.lng | 8 - .../admin/lib/lang/ru_server_ip_list.lng | 7 - .../admin/lib/lang/ru_server_list.lng | 12 - .../lib/lang/ru_software_package_list.lng | 8 - .../admin/lib/lang/ru_software_repo.lng | 8 - .../admin/lib/lang/ru_software_repo_list.lng | 7 - .../lib/lang/ru_software_update_list.lng | 9 - .../admin/lib/lang/ru_system_config.lng | 16 - .../interface/admin/lib/lang/ru_users.lng | 29 - .../admin/lib/lang/ru_users_list.lng | 10 - .../ispconfig/interface/admin/lib/lang/se.lng | 40 - .../interface/admin/lib/lang/se_firewall.lng | 11 - .../admin/lib/lang/se_firewall_list.lng | 8 - .../interface/admin/lib/lang/se_groups.lng | 5 - .../admin/lib/lang/se_groups_list.lng | 7 - .../admin/lib/lang/se_language_add.lng | 8 - .../admin/lib/lang/se_language_complete.lng | 7 - .../admin/lib/lang/se_language_edit.lng | 8 - .../admin/lib/lang/se_language_export.lng | 6 - .../admin/lib/lang/se_language_import.lng | 8 - .../admin/lib/lang/se_language_list.lng | 7 - .../admin/lib/lang/se_remote_user.lng | 42 - .../admin/lib/lang/se_remote_user_list.lng | 7 - .../interface/admin/lib/lang/se_server.lng | 13 - .../admin/lib/lang/se_server_config.lng | 68 - .../admin/lib/lang/se_server_config_list.lng | 4 - .../interface/admin/lib/lang/se_server_ip.lng | 7 - .../admin/lib/lang/se_server_ip_list.lng | 6 - .../admin/lib/lang/se_server_list.lng | 11 - .../lib/lang/se_software_package_list.lng | 7 - .../admin/lib/lang/se_software_repo.lng | 7 - .../admin/lib/lang/se_software_repo_list.lng | 6 - .../lib/lang/se_software_update_list.lng | 8 - .../admin/lib/lang/se_system_config.lng | 15 - .../interface/admin/lib/lang/se_users.lng | 28 - .../admin/lib/lang/se_users_list.lng | 9 - .../ispconfig/interface/admin/lib/lang/sk.lng | 40 - .../interface/admin/lib/lang/sk_firewall.lng | 11 - .../admin/lib/lang/sk_firewall_list.lng | 8 - .../interface/admin/lib/lang/sk_groups.lng | 5 - .../admin/lib/lang/sk_groups_list.lng | 7 - .../admin/lib/lang/sk_language_add.lng | 8 - .../admin/lib/lang/sk_language_complete.lng | 7 - .../admin/lib/lang/sk_language_edit.lng | 8 - .../admin/lib/lang/sk_language_export.lng | 6 - .../admin/lib/lang/sk_language_import.lng | 8 - .../admin/lib/lang/sk_language_list.lng | 7 - .../admin/lib/lang/sk_remote_user.lng | 42 - .../admin/lib/lang/sk_remote_user_list.lng | 7 - .../interface/admin/lib/lang/sk_server.lng | 13 - .../admin/lib/lang/sk_server_config.lng | 68 - .../admin/lib/lang/sk_server_config_list.lng | 4 - .../interface/admin/lib/lang/sk_server_ip.lng | 7 - .../admin/lib/lang/sk_server_ip_list.lng | 6 - .../admin/lib/lang/sk_server_list.lng | 11 - .../lib/lang/sk_software_package_list.lng | 7 - .../admin/lib/lang/sk_software_repo.lng | 7 - .../admin/lib/lang/sk_software_repo_list.lng | 6 - .../lib/lang/sk_software_update_list.lng | 8 - .../admin/lib/lang/sk_system_config.lng | 15 - .../interface/admin/lib/lang/sk_users.lng | 28 - .../admin/lib/lang/sk_users_list.lng | 9 - .../ispconfig/interface/admin/lib/lang/tr.lng | 40 - .../interface/admin/lib/lang/tr_firewall.lng | 11 - .../admin/lib/lang/tr_firewall_list.lng | 8 - .../interface/admin/lib/lang/tr_groups.lng | 5 - .../admin/lib/lang/tr_groups_list.lng | 7 - .../admin/lib/lang/tr_language_add.lng | 8 - .../admin/lib/lang/tr_language_complete.lng | 7 - .../admin/lib/lang/tr_language_edit.lng | 8 - .../admin/lib/lang/tr_language_export.lng | 6 - .../admin/lib/lang/tr_language_import.lng | 8 - .../admin/lib/lang/tr_language_list.lng | 7 - .../admin/lib/lang/tr_remote_user.lng | 42 - .../admin/lib/lang/tr_remote_user_list.lng | 7 - .../interface/admin/lib/lang/tr_server.lng | 13 - .../admin/lib/lang/tr_server_config.lng | 68 - .../admin/lib/lang/tr_server_config_list.lng | 4 - .../interface/admin/lib/lang/tr_server_ip.lng | 7 - .../admin/lib/lang/tr_server_ip_list.lng | 6 - .../admin/lib/lang/tr_server_list.lng | 11 - .../lib/lang/tr_software_package_list.lng | 7 - .../admin/lib/lang/tr_software_repo.lng | 7 - .../admin/lib/lang/tr_software_repo_list.lng | 6 - .../lib/lang/tr_software_update_list.lng | 8 - .../admin/lib/lang/tr_system_config.lng | 15 - .../interface/admin/lib/lang/tr_users.lng | 28 - .../admin/lib/lang/tr_users_list.lng | 9 - .../interface/admin/lib/module.conf.php | 174 - .../interface/admin/list/firewall.list.php | 93 - .../interface/admin/list/groups.list.php | 61 - .../interface/admin/list/remote_user.list.php | 65 - .../interface/admin/list/server.list.php | 110 - .../admin/list/server_config.list.php | 60 - .../interface/admin/list/server_ip.list.php | 68 - .../admin/list/software_repo.list.php | 78 - .../interface/admin/list/users.list.php | 75 - .../ispconfig/interface/admin/login_as.php | 84 - .../interface/admin/remote_user_del.php | 62 - .../interface/admin/remote_user_edit.php | 43 - .../interface/admin/remote_user_list.php | 24 - .../interface/admin/server_config_del.php | 51 - .../interface/admin/server_config_edit.php | 95 - .../interface/admin/server_config_list.php | 53 - .../ispconfig/interface/admin/server_del.php | 51 - .../ispconfig/interface/admin/server_edit.php | 86 - .../interface/admin/server_ip_del.php | 51 - .../interface/admin/server_ip_edit.php | 73 - .../interface/admin/server_ip_list.php | 54 - .../ispconfig/interface/admin/server_list.php | 51 - .../interface/admin/software_package_list.php | 169 - .../interface/admin/software_repo_del.php | 51 - .../interface/admin/software_repo_edit.php | 58 - .../interface/admin/software_repo_list.php | 52 - .../interface/admin/software_update_list.php | 222 - .../interface/admin/system_config_edit.php | 97 - .../admin/templates/firewall_edit.htm | 38 - .../admin/templates/firewall_list.htm | 60 - .../interface/admin/templates/groups_edit.htm | 26 - .../interface/admin/templates/groups_list.htm | 55 - .../admin/templates/language_add.htm | 29 - .../admin/templates/language_complete.htm | 29 - .../admin/templates/language_edit.htm | 29 - .../admin/templates/language_export.htm | 28 - .../admin/templates/language_import.htm | 41 - .../admin/templates/language_list.htm | 47 - .../admin/templates/remote_user_edit.htm | 41 - .../admin/templates/remote_user_list.htm | 54 - .../templates/server_config_cron_edit.htm | 30 - .../templates/server_config_dns_edit.htm | 38 - .../templates/server_config_fastcgi_edit.htm | 46 - .../templates/server_config_getmail_edit.htm | 22 - .../templates/server_config_jailkit_edit.htm | 34 - .../admin/templates/server_config_list.htm | 40 - .../templates/server_config_mail_edit.htm | 84 - .../templates/server_config_server_edit.htm | 51 - .../templates/server_config_vlogger_edit.htm | 22 - .../templates/server_config_web_edit.htm | 74 - .../admin/templates/server_edit_config.htm | 22 - .../admin/templates/server_edit_services.htm | 70 - .../admin/templates/server_ip_edit.htm | 34 - .../admin/templates/server_ip_list.htm | 53 - .../interface/admin/templates/server_list.htm | 58 - .../admin/templates/software_package_list.htm | 34 - .../admin/templates/software_repo_edit.htm | 40 - .../admin/templates/software_repo_list.htm | 56 - .../admin/templates/software_update_list.htm | 49 - .../templates/system_config_mail_edit.htm | 28 - .../templates/system_config_sites_edit.htm | 44 - .../admin/templates/users_groups_edit.htm | 30 - .../interface/admin/templates/users_list.htm | 61 - .../admin/templates/users_user_edit.htm | 67 - .../ispconfig/interface/admin/users_del.php | 51 - .../ispconfig/interface/admin/users_edit.php | 74 - .../ispconfig/interface/admin/users_list.php | 52 - interface/ispconfig/interface/capp.php | 56 - .../ispconfig/interface/client/client_del.php | 166 - .../interface/client/client_edit.php | 228 - .../interface/client/client_list.php | 25 - .../interface/client/client_template_del.php | 67 - .../interface/client/client_template_edit.php | 97 - .../interface/client/client_template_list.php | 21 - .../interface/client/form/client.tform.php | 785 -- .../client/form/client_template.tform.php | 482 - .../interface/client/form/reseller.tform.php | 761 -- .../interface/client/lib/admin.conf.php | 2 - .../interface/client/lib/lang/bg.lng | 13 - .../interface/client/lib/lang/bg_client.lng | 94 - .../client/lib/lang/bg_client_del.lng | 6 - .../client/lib/lang/bg_client_template.lng | 57 - .../lib/lang/bg_client_template_list.lng | 5 - .../client/lib/lang/bg_clients_list.lng | 9 - .../interface/client/lib/lang/bg_reseller.lng | 93 - .../client/lib/lang/bg_resellers_list.lng | 9 - .../interface/client/lib/lang/br.lng | 13 - .../interface/client/lib/lang/br_client.lng | 94 - .../client/lib/lang/br_client_del.lng | 6 - .../client/lib/lang/br_client_template.lng | 57 - .../lib/lang/br_client_template_list.lng | 5 - .../client/lib/lang/br_clients_list.lng | 9 - .../interface/client/lib/lang/br_reseller.lng | 93 - .../client/lib/lang/br_resellers_list.lng | 9 - .../interface/client/lib/lang/de.lng | 13 - .../interface/client/lib/lang/de_client.lng | 94 - .../client/lib/lang/de_client_del.lng | 6 - .../client/lib/lang/de_client_template.lng | 57 - .../lib/lang/de_client_template_list.lng | 5 - .../client/lib/lang/de_clients_list.lng | 9 - .../interface/client/lib/lang/de_reseller.lng | 93 - .../client/lib/lang/de_resellers_list.lng | 9 - .../interface/client/lib/lang/en.lng | 14 - .../interface/client/lib/lang/en_client.lng | 97 - .../client/lib/lang/en_client_del.lng | 6 - .../client/lib/lang/en_client_template.lng | 61 - .../lib/lang/en_client_template_list.lng | 5 - .../client/lib/lang/en_clients_list.lng | 9 - .../interface/client/lib/lang/en_reseller.lng | 96 - .../client/lib/lang/en_resellers_list.lng | 9 - .../interface/client/lib/lang/es.lng | 13 - .../interface/client/lib/lang/es_client.lng | 94 - .../client/lib/lang/es_client_del.lng | 6 - .../client/lib/lang/es_client_template.lng | 57 - .../lib/lang/es_client_template_list.lng | 5 - .../client/lib/lang/es_clients_list.lng | 9 - .../interface/client/lib/lang/es_reseller.lng | 93 - .../client/lib/lang/es_resellers_list.lng | 9 - .../interface/client/lib/lang/fi.lng | 13 - .../interface/client/lib/lang/fi_client.lng | 94 - .../client/lib/lang/fi_client_del.lng | 6 - .../client/lib/lang/fi_client_template.lng | 57 - .../lib/lang/fi_client_template_list.lng | 5 - .../client/lib/lang/fi_clients_list.lng | 9 - .../interface/client/lib/lang/fi_reseller.lng | 93 - .../client/lib/lang/fi_resellers_list.lng | 9 - .../interface/client/lib/lang/fr.lng | 13 - .../interface/client/lib/lang/fr_client.lng | 94 - .../client/lib/lang/fr_client_del.lng | 6 - .../client/lib/lang/fr_client_template.lng | 57 - .../lib/lang/fr_client_template_list.lng | 5 - .../client/lib/lang/fr_clients_list.lng | 9 - .../interface/client/lib/lang/fr_reseller.lng | 93 - .../client/lib/lang/fr_resellers_list.lng | 9 - .../interface/client/lib/lang/hu.lng | 13 - .../interface/client/lib/lang/hu_client.lng | 94 - .../client/lib/lang/hu_client_del.lng | 6 - .../client/lib/lang/hu_client_template.lng | 57 - .../lib/lang/hu_client_template_list.lng | 5 - .../client/lib/lang/hu_clients_list.lng | 9 - .../interface/client/lib/lang/hu_reseller.lng | 93 - .../client/lib/lang/hu_resellers_list.lng | 9 - .../interface/client/lib/lang/it.lng | 13 - .../interface/client/lib/lang/it_client.lng | 94 - .../client/lib/lang/it_client_del.lng | 6 - .../client/lib/lang/it_client_template.lng | 57 - .../lib/lang/it_client_template_list.lng | 5 - .../client/lib/lang/it_clients_list.lng | 9 - .../interface/client/lib/lang/it_reseller.lng | 93 - .../client/lib/lang/it_resellers_list.lng | 9 - .../interface/client/lib/lang/ja.lng | 13 - .../interface/client/lib/lang/ja_client.lng | 94 - .../client/lib/lang/ja_client_del.lng | 6 - .../client/lib/lang/ja_client_template.lng | 57 - .../lib/lang/ja_client_template_list.lng | 5 - .../client/lib/lang/ja_clients_list.lng | 9 - .../interface/client/lib/lang/ja_reseller.lng | 93 - .../client/lib/lang/ja_resellers_list.lng | 9 - .../interface/client/lib/lang/nl.lng | 13 - .../interface/client/lib/lang/nl_client.lng | 94 - .../client/lib/lang/nl_client_del.lng | 6 - .../client/lib/lang/nl_client_template.lng | 57 - .../lib/lang/nl_client_template_list.lng | 5 - .../client/lib/lang/nl_clients_list.lng | 9 - .../interface/client/lib/lang/nl_reseller.lng | 93 - .../client/lib/lang/nl_resellers_list.lng | 9 - .../interface/client/lib/lang/pl.lng | 13 - .../interface/client/lib/lang/pl_client.lng | 94 - .../client/lib/lang/pl_client_del.lng | 6 - .../client/lib/lang/pl_client_template.lng | 57 - .../lib/lang/pl_client_template_list.lng | 5 - .../client/lib/lang/pl_clients_list.lng | 9 - .../interface/client/lib/lang/pl_reseller.lng | 93 - .../client/lib/lang/pl_resellers_list.lng | 9 - .../interface/client/lib/lang/pt.lng | 14 - .../interface/client/lib/lang/pt_client.lng | 95 - .../client/lib/lang/pt_client_del.lng | 7 - .../client/lib/lang/pt_client_template.lng | 58 - .../lib/lang/pt_client_template_list.lng | 6 - .../client/lib/lang/pt_clients_list.lng | 10 - .../interface/client/lib/lang/pt_reseller.lng | 94 - .../client/lib/lang/pt_resellers_list.lng | 10 - .../interface/client/lib/lang/ro.lng | 13 - .../interface/client/lib/lang/ro_client.lng | 94 - .../client/lib/lang/ro_client_del.lng | 6 - .../client/lib/lang/ro_client_template.lng | 57 - .../lib/lang/ro_client_template_list.lng | 5 - .../client/lib/lang/ro_clients_list.lng | 9 - .../interface/client/lib/lang/ro_reseller.lng | 96 - .../client/lib/lang/ro_resellers_list.lng | 9 - .../interface/client/lib/lang/ru.lng | 14 - .../interface/client/lib/lang/ru_client.lng | 95 - .../client/lib/lang/ru_client_del.lng | 7 - .../client/lib/lang/ru_client_template.lng | 58 - .../lib/lang/ru_client_template_list.lng | 6 - .../client/lib/lang/ru_clients_list.lng | 10 - .../interface/client/lib/lang/ru_reseller.lng | 94 - .../client/lib/lang/ru_resellers_list.lng | 10 - .../interface/client/lib/lang/se.lng | 13 - .../interface/client/lib/lang/se_client.lng | 94 - .../client/lib/lang/se_client_del.lng | 6 - .../client/lib/lang/se_client_template.lng | 57 - .../lib/lang/se_client_template_list.lng | 5 - .../client/lib/lang/se_clients_list.lng | 9 - .../interface/client/lib/lang/se_reseller.lng | 93 - .../client/lib/lang/se_resellers_list.lng | 9 - .../interface/client/lib/lang/sk.lng | 13 - .../interface/client/lib/lang/sk_client.lng | 94 - .../client/lib/lang/sk_client_del.lng | 6 - .../client/lib/lang/sk_client_template.lng | 57 - .../lib/lang/sk_client_template_list.lng | 5 - .../client/lib/lang/sk_clients_list.lng | 9 - .../interface/client/lib/lang/sk_reseller.lng | 93 - .../client/lib/lang/sk_resellers_list.lng | 9 - .../interface/client/lib/lang/tr.lng | 13 - .../interface/client/lib/lang/tr_client.lng | 94 - .../client/lib/lang/tr_client_del.lng | 6 - .../client/lib/lang/tr_client_template.lng | 57 - .../lib/lang/tr_client_template_list.lng | 5 - .../client/lib/lang/tr_clients_list.lng | 9 - .../interface/client/lib/lang/tr_reseller.lng | 93 - .../client/lib/lang/tr_resellers_list.lng | 9 - .../interface/client/lib/module.conf.php | 63 - .../interface/client/list/client.list.php | 87 - .../client/list/client_template.list.php | 65 - .../interface/client/list/reseller.list.php | 87 - .../interface/client/reseller_del.php | 92 - .../interface/client/reseller_edit.php | 222 - .../interface/client/reseller_list.php | 55 - .../interface/client/templates/client_del.htm | 25 - .../client/templates/client_edit_address.htm | 101 - .../client/templates/client_edit_limits.htm | 190 - .../templates/client_template_edit_limits.htm | 124 - .../client_template_edit_template.htm | 28 - .../client/templates/client_template_list.htm | 53 - .../client/templates/clients_list.htm | 63 - .../templates/reseller_edit_address.htm | 101 - .../client/templates/reseller_edit_limits.htm | 179 - .../client/templates/resellers_list.htm | 63 - .../ispconfig/interface/client/tools.inc.php | 88 - interface/ispconfig/interface/content.php | 83 - .../interface/designer/form_edit.php | 152 - .../interface/designer/form_list.php | 89 - .../interface/designer/form_show.php | 119 - .../ispconfig/interface/designer/index.php | 0 .../interface/designer/lib/admin.conf.php | 4 - .../interface/designer/lib/lang/bg.lng | 2 - .../designer/lib/lang/bg_form_edit.lng | 24 - .../designer/lib/lang/bg_form_list.lng | 7 - .../designer/lib/lang/bg_form_show.lng | 18 - .../designer/lib/lang/bg_module_edit.lng | 12 - .../designer/lib/lang/bg_module_list.lng | 5 - .../designer/lib/lang/bg_module_nav_edit.lng | 6 - .../lib/lang/bg_module_nav_item_edit.lng | 8 - .../designer/lib/lang/bg_module_show.lng | 16 - .../interface/designer/lib/lang/br.lng | 2 - .../designer/lib/lang/br_form_edit.lng | 24 - .../designer/lib/lang/br_form_list.lng | 7 - .../designer/lib/lang/br_form_show.lng | 18 - .../designer/lib/lang/br_module_edit.lng | 22 - .../designer/lib/lang/br_module_list.lng | 5 - .../designer/lib/lang/br_module_nav_edit.lng | 6 - .../lib/lang/br_module_nav_item_edit.lng | 8 - .../designer/lib/lang/br_module_show.lng | 16 - .../interface/designer/lib/lang/de.lng | 2 - .../designer/lib/lang/de_form_edit.lng | 24 - .../designer/lib/lang/de_form_list.lng | 7 - .../designer/lib/lang/de_form_show.lng | 18 - .../designer/lib/lang/de_module_edit.lng | 12 - .../designer/lib/lang/de_module_list.lng | 5 - .../designer/lib/lang/de_module_nav_edit.lng | 6 - .../lib/lang/de_module_nav_item_edit.lng | 8 - .../designer/lib/lang/de_module_show.lng | 16 - .../interface/designer/lib/lang/en.lng | 3 - .../designer/lib/lang/en_form_edit.lng | 26 - .../designer/lib/lang/en_form_list.lng | 7 - .../designer/lib/lang/en_form_show.lng | 18 - .../designer/lib/lang/en_module_edit.lng | 23 - .../designer/lib/lang/en_module_list.lng | 5 - .../designer/lib/lang/en_module_nav_edit.lng | 6 - .../lib/lang/en_module_nav_item_edit.lng | 8 - .../designer/lib/lang/en_module_show.lng | 17 - .../interface/designer/lib/lang/es.lng | 2 - .../designer/lib/lang/es_form_edit.lng | 24 - .../designer/lib/lang/es_form_list.lng | 7 - .../designer/lib/lang/es_form_show.lng | 18 - .../designer/lib/lang/es_module_edit.lng | 12 - .../designer/lib/lang/es_module_list.lng | 5 - .../designer/lib/lang/es_module_nav_edit.lng | 6 - .../lib/lang/es_module_nav_item_edit.lng | 8 - .../designer/lib/lang/es_module_show.lng | 16 - .../interface/designer/lib/lang/fi.lng | 2 - .../designer/lib/lang/fi_form_edit.lng | 24 - .../designer/lib/lang/fi_form_list.lng | 7 - .../designer/lib/lang/fi_form_show.lng | 18 - .../designer/lib/lang/fi_module_edit.lng | 22 - .../designer/lib/lang/fi_module_list.lng | 5 - .../designer/lib/lang/fi_module_nav_edit.lng | 6 - .../lib/lang/fi_module_nav_item_edit.lng | 8 - .../designer/lib/lang/fi_module_show.lng | 16 - .../interface/designer/lib/lang/fr.lng | 2 - .../designer/lib/lang/fr_form_edit.lng | 24 - .../designer/lib/lang/fr_form_list.lng | 7 - .../designer/lib/lang/fr_form_show.lng | 18 - .../designer/lib/lang/fr_module_edit.lng | 14 - .../designer/lib/lang/fr_module_list.lng | 5 - .../designer/lib/lang/fr_module_nav_edit.lng | 6 - .../lib/lang/fr_module_nav_item_edit.lng | 8 - .../designer/lib/lang/fr_module_show.lng | 16 - .../interface/designer/lib/lang/hu.lng | 2 - .../designer/lib/lang/hu_form_edit.lng | 24 - .../designer/lib/lang/hu_form_list.lng | 7 - .../designer/lib/lang/hu_form_show.lng | 18 - .../designer/lib/lang/hu_module_edit.lng | 22 - .../designer/lib/lang/hu_module_list.lng | 5 - .../designer/lib/lang/hu_module_nav_edit.lng | 6 - .../lib/lang/hu_module_nav_item_edit.lng | 8 - .../designer/lib/lang/hu_module_show.lng | 16 - .../interface/designer/lib/lang/it.lng | 2 - .../designer/lib/lang/it_form_edit.lng | 24 - .../designer/lib/lang/it_form_list.lng | 7 - .../designer/lib/lang/it_form_show.lng | 18 - .../designer/lib/lang/it_module_edit.lng | 22 - .../designer/lib/lang/it_module_list.lng | 5 - .../designer/lib/lang/it_module_nav_edit.lng | 6 - .../lib/lang/it_module_nav_item_edit.lng | 8 - .../designer/lib/lang/it_module_show.lng | 16 - .../interface/designer/lib/lang/ja.lng | 2 - .../designer/lib/lang/ja_form_edit.lng | 24 - .../designer/lib/lang/ja_form_list.lng | 7 - .../designer/lib/lang/ja_form_show.lng | 18 - .../designer/lib/lang/ja_module_edit.lng | 22 - .../designer/lib/lang/ja_module_list.lng | 5 - .../designer/lib/lang/ja_module_nav_edit.lng | 6 - .../lib/lang/ja_module_nav_item_edit.lng | 8 - .../designer/lib/lang/ja_module_show.lng | 16 - .../interface/designer/lib/lang/nl.lng | 2 - .../designer/lib/lang/nl_form_edit.lng | 24 - .../designer/lib/lang/nl_form_list.lng | 7 - .../designer/lib/lang/nl_form_show.lng | 18 - .../designer/lib/lang/nl_module_edit.lng | 22 - .../designer/lib/lang/nl_module_list.lng | 5 - .../designer/lib/lang/nl_module_nav_edit.lng | 6 - .../lib/lang/nl_module_nav_item_edit.lng | 8 - .../designer/lib/lang/nl_module_show.lng | 16 - .../interface/designer/lib/lang/pl.lng | 2 - .../designer/lib/lang/pl_form_edit.lng | 24 - .../designer/lib/lang/pl_form_list.lng | 7 - .../designer/lib/lang/pl_form_show.lng | 18 - .../designer/lib/lang/pl_module_edit.lng | 22 - .../designer/lib/lang/pl_module_list.lng | 5 - .../designer/lib/lang/pl_module_nav_edit.lng | 6 - .../lib/lang/pl_module_nav_item_edit.lng | 8 - .../designer/lib/lang/pl_module_show.lng | 16 - .../interface/designer/lib/lang/pt.lng | 3 - .../designer/lib/lang/pt_form_edit.lng | 25 - .../designer/lib/lang/pt_form_list.lng | 8 - .../designer/lib/lang/pt_form_show.lng | 19 - .../designer/lib/lang/pt_module_edit.lng | 23 - .../designer/lib/lang/pt_module_list.lng | 6 - .../designer/lib/lang/pt_module_nav_edit.lng | 7 - .../lib/lang/pt_module_nav_item_edit.lng | 9 - .../designer/lib/lang/pt_module_show.lng | 17 - .../interface/designer/lib/lang/ro.lng | 2 - .../designer/lib/lang/ro_form_edit.lng | 24 - .../designer/lib/lang/ro_form_list.lng | 7 - .../designer/lib/lang/ro_form_show.lng | 18 - .../designer/lib/lang/ro_module_edit.lng | 12 - .../designer/lib/lang/ro_module_list.lng | 5 - .../designer/lib/lang/ro_module_nav_edit.lng | 6 - .../lib/lang/ro_module_nav_item_edit.lng | 8 - .../designer/lib/lang/ro_module_show.lng | 16 - .../interface/designer/lib/lang/ru.lng | 3 - .../designer/lib/lang/ru_form_edit.lng | 25 - .../designer/lib/lang/ru_form_list.lng | 8 - .../designer/lib/lang/ru_form_show.lng | 19 - .../designer/lib/lang/ru_module_edit.lng | 23 - .../designer/lib/lang/ru_module_list.lng | 6 - .../designer/lib/lang/ru_module_nav_edit.lng | 7 - .../lib/lang/ru_module_nav_item_edit.lng | 9 - .../designer/lib/lang/ru_module_show.lng | 17 - .../interface/designer/lib/lang/se.lng | 2 - .../designer/lib/lang/se_form_edit.lng | 24 - .../designer/lib/lang/se_form_list.lng | 7 - .../designer/lib/lang/se_form_show.lng | 18 - .../designer/lib/lang/se_module_edit.lng | 22 - .../designer/lib/lang/se_module_list.lng | 5 - .../designer/lib/lang/se_module_nav_edit.lng | 6 - .../lib/lang/se_module_nav_item_edit.lng | 8 - .../designer/lib/lang/se_module_show.lng | 16 - .../interface/designer/lib/lang/sk.lng | 2 - .../designer/lib/lang/sk_form_edit.lng | 24 - .../designer/lib/lang/sk_form_list.lng | 7 - .../designer/lib/lang/sk_form_show.lng | 18 - .../designer/lib/lang/sk_module_edit.lng | 12 - .../designer/lib/lang/sk_module_list.lng | 5 - .../designer/lib/lang/sk_module_nav_edit.lng | 6 - .../lib/lang/sk_module_nav_item_edit.lng | 8 - .../designer/lib/lang/sk_module_show.lng | 16 - .../interface/designer/lib/lang/tr.lng | 2 - .../designer/lib/lang/tr_form_edit.lng | 24 - .../designer/lib/lang/tr_form_list.lng | 7 - .../designer/lib/lang/tr_form_show.lng | 18 - .../designer/lib/lang/tr_module_edit.lng | 22 - .../designer/lib/lang/tr_module_list.lng | 5 - .../designer/lib/lang/tr_module_nav_edit.lng | 6 - .../lib/lang/tr_module_nav_item_edit.lng | 8 - .../designer/lib/lang/tr_module_show.lng | 16 - .../interface/designer/lib/module.conf.php | 95 - .../interface/designer/module_edit.php | 183 - .../interface/designer/module_list.php | 69 - .../interface/designer/module_nav_del.php | 80 - .../interface/designer/module_nav_edit.php | 146 - .../interface/designer/module_nav_flip.php | 91 - .../designer/module_nav_item_del.php | 82 - .../designer/module_nav_item_edit.php | 150 - .../designer/module_nav_item_flip.php | 93 - .../interface/designer/module_show.php | 113 - .../designer/templates/form_edit.htm | 79 - .../designer/templates/form_list.htm | 24 - .../designer/templates/form_show.htm | 61 - .../designer/templates/module_edit.htm | 43 - .../designer/templates/module_list.htm | 18 - .../designer/templates/module_nav_edit.htm | 24 - .../templates/module_nav_item_edit.htm | 33 - .../designer/templates/module_show.htm | 31 - .../designer/templates/paging.tpl.htm | 9 - .../ispconfig/interface/dns/dns_a_edit.php | 144 - .../ispconfig/interface/dns/dns_a_list.php | 24 - .../ispconfig/interface/dns/dns_aaaa_edit.php | 139 - .../interface/dns/dns_alias_edit.php | 138 - .../interface/dns/dns_cname_edit.php | 138 - .../interface/dns/dns_hinfo_edit.php | 138 - .../ispconfig/interface/dns/dns_mx_edit.php | 138 - .../ispconfig/interface/dns/dns_ns_edit.php | 138 - .../ispconfig/interface/dns/dns_ptr_edit.php | 138 - .../ispconfig/interface/dns/dns_rp_edit.php | 138 - .../ispconfig/interface/dns/dns_rr_del.php | 51 - .../ispconfig/interface/dns/dns_soa_del.php | 69 - .../ispconfig/interface/dns/dns_soa_edit.php | 222 - .../ispconfig/interface/dns/dns_soa_list.php | 25 - .../ispconfig/interface/dns/dns_srv_edit.php | 138 - .../interface/dns/dns_template_del.php | 58 - .../interface/dns/dns_template_edit.php | 60 - .../interface/dns/dns_template_list.php | 24 - .../ispconfig/interface/dns/dns_txt_edit.php | 138 - .../ispconfig/interface/dns/dns_wizard.php | 274 - .../interface/dns/form/dns_a.tform.php | 159 - .../interface/dns/form/dns_aaaa.tform.php | 159 - .../interface/dns/form/dns_alias.tform.php | 161 - .../interface/dns/form/dns_cname.tform.php | 159 - .../interface/dns/form/dns_hinfo.tform.php | 158 - .../interface/dns/form/dns_mx.tform.php | 159 - .../interface/dns/form/dns_ns.tform.php | 159 - .../interface/dns/form/dns_ptr.tform.php | 159 - .../interface/dns/form/dns_rp.tform.php | 159 - .../interface/dns/form/dns_soa.tform.php | 230 - .../interface/dns/form/dns_srv.tform.php | 159 - .../interface/dns/form/dns_template.tform.php | 101 - .../interface/dns/form/dns_txt.tform.php | 156 - .../interface/dns/lib/admin.conf.php | 2 - .../ispconfig/interface/dns/lib/lang/bg.lng | 20 - .../interface/dns/lib/lang/bg_dns_a.lng | 16 - .../interface/dns/lib/lang/bg_dns_a_list.lng | 14 - .../interface/dns/lib/lang/bg_dns_aaaa.lng | 15 - .../interface/dns/lib/lang/bg_dns_alias.lng | 15 - .../interface/dns/lib/lang/bg_dns_cname.lng | 15 - .../interface/dns/lib/lang/bg_dns_hinfo.lng | 15 - .../interface/dns/lib/lang/bg_dns_mx.lng | 16 - .../interface/dns/lib/lang/bg_dns_ns.lng | 15 - .../interface/dns/lib/lang/bg_dns_ptr.lng | 15 - .../interface/dns/lib/lang/bg_dns_rp.lng | 15 - .../interface/dns/lib/lang/bg_dns_soa.lng | 26 - .../dns/lib/lang/bg_dns_soa_list.lng | 9 - .../interface/dns/lib/lang/bg_dns_srv.lng | 16 - .../dns/lib/lang/bg_dns_template.lng | 6 - .../dns/lib/lang/bg_dns_template_list.lng | 6 - .../interface/dns/lib/lang/bg_dns_txt.lng | 15 - .../interface/dns/lib/lang/bg_dns_wizard.lng | 29 - .../ispconfig/interface/dns/lib/lang/br.lng | 20 - .../interface/dns/lib/lang/br_dns_a.lng | 16 - .../interface/dns/lib/lang/br_dns_a_list.lng | 14 - .../interface/dns/lib/lang/br_dns_aaaa.lng | 15 - .../interface/dns/lib/lang/br_dns_alias.lng | 15 - .../interface/dns/lib/lang/br_dns_cname.lng | 15 - .../interface/dns/lib/lang/br_dns_hinfo.lng | 15 - .../interface/dns/lib/lang/br_dns_mx.lng | 16 - .../interface/dns/lib/lang/br_dns_ns.lng | 15 - .../interface/dns/lib/lang/br_dns_ptr.lng | 15 - .../interface/dns/lib/lang/br_dns_rp.lng | 15 - .../interface/dns/lib/lang/br_dns_soa.lng | 26 - .../dns/lib/lang/br_dns_soa_list.lng | 9 - .../interface/dns/lib/lang/br_dns_srv.lng | 16 - .../dns/lib/lang/br_dns_template.lng | 6 - .../dns/lib/lang/br_dns_template_list.lng | 6 - .../interface/dns/lib/lang/br_dns_txt.lng | 15 - .../interface/dns/lib/lang/br_dns_wizard.lng | 29 - .../ispconfig/interface/dns/lib/lang/de.lng | 20 - .../interface/dns/lib/lang/de_dns_a.lng | 16 - .../interface/dns/lib/lang/de_dns_a_list.lng | 14 - .../interface/dns/lib/lang/de_dns_aaaa.lng | 15 - .../interface/dns/lib/lang/de_dns_alias.lng | 15 - .../interface/dns/lib/lang/de_dns_cname.lng | 15 - .../interface/dns/lib/lang/de_dns_hinfo.lng | 15 - .../interface/dns/lib/lang/de_dns_mx.lng | 16 - .../interface/dns/lib/lang/de_dns_ns.lng | 15 - .../interface/dns/lib/lang/de_dns_ptr.lng | 15 - .../interface/dns/lib/lang/de_dns_rp.lng | 15 - .../interface/dns/lib/lang/de_dns_soa.lng | 26 - .../dns/lib/lang/de_dns_soa_list.lng | 9 - .../interface/dns/lib/lang/de_dns_srv.lng | 16 - .../dns/lib/lang/de_dns_template.lng | 6 - .../dns/lib/lang/de_dns_template_list.lng | 6 - .../interface/dns/lib/lang/de_dns_txt.lng | 15 - .../interface/dns/lib/lang/de_dns_wizard.lng | 29 - .../ispconfig/interface/dns/lib/lang/en.lng | 22 - .../interface/dns/lib/lang/en_dns_a.lng | 16 - .../interface/dns/lib/lang/en_dns_a_list.lng | 14 - .../interface/dns/lib/lang/en_dns_aaaa.lng | 15 - .../interface/dns/lib/lang/en_dns_alias.lng | 15 - .../interface/dns/lib/lang/en_dns_cname.lng | 15 - .../interface/dns/lib/lang/en_dns_hinfo.lng | 15 - .../interface/dns/lib/lang/en_dns_mx.lng | 16 - .../interface/dns/lib/lang/en_dns_ns.lng | 15 - .../interface/dns/lib/lang/en_dns_ptr.lng | 15 - .../interface/dns/lib/lang/en_dns_rp.lng | 15 - .../interface/dns/lib/lang/en_dns_soa.lng | 26 - .../dns/lib/lang/en_dns_soa_list.lng | 9 - .../interface/dns/lib/lang/en_dns_srv.lng | 16 - .../dns/lib/lang/en_dns_template.lng | 6 - .../dns/lib/lang/en_dns_template_list.lng | 6 - .../interface/dns/lib/lang/en_dns_txt.lng | 15 - .../interface/dns/lib/lang/en_dns_wizard.lng | 30 - .../ispconfig/interface/dns/lib/lang/es.lng | 20 - .../interface/dns/lib/lang/es_dns_a.lng | 16 - .../interface/dns/lib/lang/es_dns_a_list.lng | 14 - .../interface/dns/lib/lang/es_dns_aaaa.lng | 15 - .../interface/dns/lib/lang/es_dns_alias.lng | 15 - .../interface/dns/lib/lang/es_dns_cname.lng | 15 - .../interface/dns/lib/lang/es_dns_hinfo.lng | 15 - .../interface/dns/lib/lang/es_dns_mx.lng | 16 - .../interface/dns/lib/lang/es_dns_ns.lng | 15 - .../interface/dns/lib/lang/es_dns_ptr.lng | 15 - .../interface/dns/lib/lang/es_dns_rp.lng | 15 - .../interface/dns/lib/lang/es_dns_soa.lng | 26 - .../dns/lib/lang/es_dns_soa_list.lng | 9 - .../interface/dns/lib/lang/es_dns_srv.lng | 16 - .../dns/lib/lang/es_dns_template.lng | 6 - .../dns/lib/lang/es_dns_template_list.lng | 6 - .../interface/dns/lib/lang/es_dns_txt.lng | 15 - .../interface/dns/lib/lang/es_dns_wizard.lng | 29 - .../ispconfig/interface/dns/lib/lang/fi.lng | 20 - .../interface/dns/lib/lang/fi_dns_a.lng | 16 - .../interface/dns/lib/lang/fi_dns_a_list.lng | 14 - .../interface/dns/lib/lang/fi_dns_aaaa.lng | 15 - .../interface/dns/lib/lang/fi_dns_alias.lng | 15 - .../interface/dns/lib/lang/fi_dns_cname.lng | 15 - .../interface/dns/lib/lang/fi_dns_hinfo.lng | 15 - .../interface/dns/lib/lang/fi_dns_mx.lng | 16 - .../interface/dns/lib/lang/fi_dns_ns.lng | 15 - .../interface/dns/lib/lang/fi_dns_ptr.lng | 15 - .../interface/dns/lib/lang/fi_dns_rp.lng | 15 - .../interface/dns/lib/lang/fi_dns_soa.lng | 26 - .../dns/lib/lang/fi_dns_soa_list.lng | 9 - .../interface/dns/lib/lang/fi_dns_srv.lng | 16 - .../dns/lib/lang/fi_dns_template.lng | 6 - .../dns/lib/lang/fi_dns_template_list.lng | 6 - .../interface/dns/lib/lang/fi_dns_txt.lng | 15 - .../interface/dns/lib/lang/fi_dns_wizard.lng | 29 - .../ispconfig/interface/dns/lib/lang/fr.lng | 20 - .../interface/dns/lib/lang/fr_dns_a.lng | 16 - .../interface/dns/lib/lang/fr_dns_a_list.lng | 14 - .../interface/dns/lib/lang/fr_dns_aaaa.lng | 15 - .../interface/dns/lib/lang/fr_dns_alias.lng | 15 - .../interface/dns/lib/lang/fr_dns_cname.lng | 15 - .../interface/dns/lib/lang/fr_dns_hinfo.lng | 15 - .../interface/dns/lib/lang/fr_dns_mx.lng | 16 - .../interface/dns/lib/lang/fr_dns_ns.lng | 15 - .../interface/dns/lib/lang/fr_dns_ptr.lng | 15 - .../interface/dns/lib/lang/fr_dns_rp.lng | 15 - .../interface/dns/lib/lang/fr_dns_soa.lng | 26 - .../dns/lib/lang/fr_dns_soa_list.lng | 9 - .../interface/dns/lib/lang/fr_dns_srv.lng | 16 - .../dns/lib/lang/fr_dns_template.lng | 6 - .../dns/lib/lang/fr_dns_template_list.lng | 6 - .../interface/dns/lib/lang/fr_dns_txt.lng | 15 - .../interface/dns/lib/lang/fr_dns_wizard.lng | 29 - .../ispconfig/interface/dns/lib/lang/hu.lng | 20 - .../interface/dns/lib/lang/hu_dns_a.lng | 16 - .../interface/dns/lib/lang/hu_dns_a_list.lng | 14 - .../interface/dns/lib/lang/hu_dns_aaaa.lng | 15 - .../interface/dns/lib/lang/hu_dns_alias.lng | 15 - .../interface/dns/lib/lang/hu_dns_cname.lng | 15 - .../interface/dns/lib/lang/hu_dns_hinfo.lng | 15 - .../interface/dns/lib/lang/hu_dns_mx.lng | 16 - .../interface/dns/lib/lang/hu_dns_ns.lng | 15 - .../interface/dns/lib/lang/hu_dns_ptr.lng | 15 - .../interface/dns/lib/lang/hu_dns_rp.lng | 15 - .../interface/dns/lib/lang/hu_dns_soa.lng | 26 - .../dns/lib/lang/hu_dns_soa_list.lng | 9 - .../interface/dns/lib/lang/hu_dns_srv.lng | 16 - .../dns/lib/lang/hu_dns_template.lng | 6 - .../dns/lib/lang/hu_dns_template_list.lng | 6 - .../interface/dns/lib/lang/hu_dns_txt.lng | 15 - .../interface/dns/lib/lang/hu_dns_wizard.lng | 29 - .../ispconfig/interface/dns/lib/lang/it.lng | 20 - .../interface/dns/lib/lang/it_dns_a.lng | 16 - .../interface/dns/lib/lang/it_dns_a_list.lng | 14 - .../interface/dns/lib/lang/it_dns_aaaa.lng | 15 - .../interface/dns/lib/lang/it_dns_alias.lng | 15 - .../interface/dns/lib/lang/it_dns_cname.lng | 15 - .../interface/dns/lib/lang/it_dns_hinfo.lng | 15 - .../interface/dns/lib/lang/it_dns_mx.lng | 16 - .../interface/dns/lib/lang/it_dns_ns.lng | 15 - .../interface/dns/lib/lang/it_dns_ptr.lng | 15 - .../interface/dns/lib/lang/it_dns_rp.lng | 15 - .../interface/dns/lib/lang/it_dns_soa.lng | 26 - .../dns/lib/lang/it_dns_soa_list.lng | 9 - .../interface/dns/lib/lang/it_dns_srv.lng | 16 - .../dns/lib/lang/it_dns_template.lng | 6 - .../dns/lib/lang/it_dns_template_list.lng | 6 - .../interface/dns/lib/lang/it_dns_txt.lng | 15 - .../interface/dns/lib/lang/it_dns_wizard.lng | 29 - .../ispconfig/interface/dns/lib/lang/ja.lng | 20 - .../interface/dns/lib/lang/ja_dns_a.lng | 16 - .../interface/dns/lib/lang/ja_dns_a_list.lng | 14 - .../interface/dns/lib/lang/ja_dns_aaaa.lng | 15 - .../interface/dns/lib/lang/ja_dns_alias.lng | 15 - .../interface/dns/lib/lang/ja_dns_cname.lng | 15 - .../interface/dns/lib/lang/ja_dns_hinfo.lng | 15 - .../interface/dns/lib/lang/ja_dns_mx.lng | 16 - .../interface/dns/lib/lang/ja_dns_ns.lng | 15 - .../interface/dns/lib/lang/ja_dns_ptr.lng | 15 - .../interface/dns/lib/lang/ja_dns_rp.lng | 15 - .../interface/dns/lib/lang/ja_dns_soa.lng | 26 - .../dns/lib/lang/ja_dns_soa_list.lng | 9 - .../interface/dns/lib/lang/ja_dns_srv.lng | 16 - .../dns/lib/lang/ja_dns_template.lng | 6 - .../dns/lib/lang/ja_dns_template_list.lng | 6 - .../interface/dns/lib/lang/ja_dns_txt.lng | 15 - .../interface/dns/lib/lang/ja_dns_wizard.lng | 29 - .../ispconfig/interface/dns/lib/lang/nl.lng | 20 - .../interface/dns/lib/lang/nl_dns_a.lng | 16 - .../interface/dns/lib/lang/nl_dns_a_list.lng | 14 - .../interface/dns/lib/lang/nl_dns_aaaa.lng | 15 - .../interface/dns/lib/lang/nl_dns_alias.lng | 15 - .../interface/dns/lib/lang/nl_dns_cname.lng | 15 - .../interface/dns/lib/lang/nl_dns_hinfo.lng | 15 - .../interface/dns/lib/lang/nl_dns_mx.lng | 16 - .../interface/dns/lib/lang/nl_dns_ns.lng | 15 - .../interface/dns/lib/lang/nl_dns_ptr.lng | 15 - .../interface/dns/lib/lang/nl_dns_rp.lng | 15 - .../interface/dns/lib/lang/nl_dns_soa.lng | 26 - .../dns/lib/lang/nl_dns_soa_list.lng | 9 - .../interface/dns/lib/lang/nl_dns_srv.lng | 16 - .../dns/lib/lang/nl_dns_template.lng | 6 - .../dns/lib/lang/nl_dns_template_list.lng | 6 - .../interface/dns/lib/lang/nl_dns_txt.lng | 15 - .../interface/dns/lib/lang/nl_dns_wizard.lng | 29 - .../ispconfig/interface/dns/lib/lang/pl.lng | 20 - .../interface/dns/lib/lang/pl_dns_a.lng | 16 - .../interface/dns/lib/lang/pl_dns_a_list.lng | 14 - .../interface/dns/lib/lang/pl_dns_aaaa.lng | 15 - .../interface/dns/lib/lang/pl_dns_alias.lng | 15 - .../interface/dns/lib/lang/pl_dns_cname.lng | 15 - .../interface/dns/lib/lang/pl_dns_hinfo.lng | 15 - .../interface/dns/lib/lang/pl_dns_mx.lng | 16 - .../interface/dns/lib/lang/pl_dns_ns.lng | 15 - .../interface/dns/lib/lang/pl_dns_ptr.lng | 15 - .../interface/dns/lib/lang/pl_dns_rp.lng | 15 - .../interface/dns/lib/lang/pl_dns_soa.lng | 26 - .../dns/lib/lang/pl_dns_soa_list.lng | 9 - .../interface/dns/lib/lang/pl_dns_srv.lng | 16 - .../dns/lib/lang/pl_dns_template.lng | 6 - .../dns/lib/lang/pl_dns_template_list.lng | 6 - .../interface/dns/lib/lang/pl_dns_txt.lng | 15 - .../interface/dns/lib/lang/pl_dns_wizard.lng | 29 - .../ispconfig/interface/dns/lib/lang/pt.lng | 21 - .../interface/dns/lib/lang/pt_dns_a.lng | 17 - .../interface/dns/lib/lang/pt_dns_a_list.lng | 15 - .../interface/dns/lib/lang/pt_dns_aaaa.lng | 16 - .../interface/dns/lib/lang/pt_dns_alias.lng | 16 - .../interface/dns/lib/lang/pt_dns_cname.lng | 16 - .../interface/dns/lib/lang/pt_dns_hinfo.lng | 16 - .../interface/dns/lib/lang/pt_dns_mx.lng | 17 - .../interface/dns/lib/lang/pt_dns_ns.lng | 16 - .../interface/dns/lib/lang/pt_dns_ptr.lng | 16 - .../interface/dns/lib/lang/pt_dns_rp.lng | 16 - .../interface/dns/lib/lang/pt_dns_soa.lng | 27 - .../dns/lib/lang/pt_dns_soa_list.lng | 10 - .../interface/dns/lib/lang/pt_dns_srv.lng | 17 - .../dns/lib/lang/pt_dns_template.lng | 7 - .../dns/lib/lang/pt_dns_template_list.lng | 7 - .../interface/dns/lib/lang/pt_dns_txt.lng | 16 - .../interface/dns/lib/lang/pt_dns_wizard.lng | 30 - .../ispconfig/interface/dns/lib/lang/ro.lng | 20 - .../interface/dns/lib/lang/ro_dns_a.lng | 16 - .../interface/dns/lib/lang/ro_dns_a_list.lng | 14 - .../interface/dns/lib/lang/ro_dns_aaaa.lng | 15 - .../interface/dns/lib/lang/ro_dns_alias.lng | 15 - .../interface/dns/lib/lang/ro_dns_cname.lng | 15 - .../interface/dns/lib/lang/ro_dns_hinfo.lng | 15 - .../interface/dns/lib/lang/ro_dns_mx.lng | 16 - .../interface/dns/lib/lang/ro_dns_ns.lng | 15 - .../interface/dns/lib/lang/ro_dns_ptr.lng | 15 - .../interface/dns/lib/lang/ro_dns_rp.lng | 15 - .../interface/dns/lib/lang/ro_dns_soa.lng | 26 - .../dns/lib/lang/ro_dns_soa_list.lng | 9 - .../interface/dns/lib/lang/ro_dns_srv.lng | 16 - .../dns/lib/lang/ro_dns_template.lng | 6 - .../dns/lib/lang/ro_dns_template_list.lng | 6 - .../interface/dns/lib/lang/ro_dns_txt.lng | 15 - .../interface/dns/lib/lang/ro_dns_wizard.lng | 29 - .../ispconfig/interface/dns/lib/lang/ru.lng | 21 - .../interface/dns/lib/lang/ru_dns_a.lng | 17 - .../interface/dns/lib/lang/ru_dns_a_list.lng | 15 - .../interface/dns/lib/lang/ru_dns_aaaa.lng | 16 - .../interface/dns/lib/lang/ru_dns_alias.lng | 16 - .../interface/dns/lib/lang/ru_dns_cname.lng | 16 - .../interface/dns/lib/lang/ru_dns_hinfo.lng | 16 - .../interface/dns/lib/lang/ru_dns_mx.lng | 17 - .../interface/dns/lib/lang/ru_dns_ns.lng | 16 - .../interface/dns/lib/lang/ru_dns_ptr.lng | 16 - .../interface/dns/lib/lang/ru_dns_rp.lng | 16 - .../interface/dns/lib/lang/ru_dns_soa.lng | 27 - .../dns/lib/lang/ru_dns_soa_list.lng | 10 - .../interface/dns/lib/lang/ru_dns_srv.lng | 17 - .../dns/lib/lang/ru_dns_template.lng | 7 - .../dns/lib/lang/ru_dns_template_list.lng | 7 - .../interface/dns/lib/lang/ru_dns_txt.lng | 16 - .../interface/dns/lib/lang/ru_dns_wizard.lng | 30 - .../ispconfig/interface/dns/lib/lang/se.lng | 20 - .../interface/dns/lib/lang/se_dns_a.lng | 16 - .../interface/dns/lib/lang/se_dns_a_list.lng | 14 - .../interface/dns/lib/lang/se_dns_aaaa.lng | 15 - .../interface/dns/lib/lang/se_dns_alias.lng | 15 - .../interface/dns/lib/lang/se_dns_cname.lng | 15 - .../interface/dns/lib/lang/se_dns_hinfo.lng | 15 - .../interface/dns/lib/lang/se_dns_mx.lng | 16 - .../interface/dns/lib/lang/se_dns_ns.lng | 15 - .../interface/dns/lib/lang/se_dns_ptr.lng | 15 - .../interface/dns/lib/lang/se_dns_rp.lng | 15 - .../interface/dns/lib/lang/se_dns_soa.lng | 26 - .../dns/lib/lang/se_dns_soa_list.lng | 9 - .../interface/dns/lib/lang/se_dns_srv.lng | 16 - .../dns/lib/lang/se_dns_template.lng | 6 - .../dns/lib/lang/se_dns_template_list.lng | 6 - .../interface/dns/lib/lang/se_dns_txt.lng | 15 - .../interface/dns/lib/lang/se_dns_wizard.lng | 29 - .../ispconfig/interface/dns/lib/lang/sk.lng | 20 - .../interface/dns/lib/lang/sk_dns_a.lng | 16 - .../interface/dns/lib/lang/sk_dns_a_list.lng | 14 - .../interface/dns/lib/lang/sk_dns_aaaa.lng | 15 - .../interface/dns/lib/lang/sk_dns_alias.lng | 15 - .../interface/dns/lib/lang/sk_dns_cname.lng | 15 - .../interface/dns/lib/lang/sk_dns_hinfo.lng | 15 - .../interface/dns/lib/lang/sk_dns_mx.lng | 16 - .../interface/dns/lib/lang/sk_dns_ns.lng | 15 - .../interface/dns/lib/lang/sk_dns_ptr.lng | 15 - .../interface/dns/lib/lang/sk_dns_rp.lng | 15 - .../interface/dns/lib/lang/sk_dns_soa.lng | 26 - .../dns/lib/lang/sk_dns_soa_list.lng | 9 - .../interface/dns/lib/lang/sk_dns_srv.lng | 16 - .../dns/lib/lang/sk_dns_template.lng | 6 - .../dns/lib/lang/sk_dns_template_list.lng | 6 - .../interface/dns/lib/lang/sk_dns_txt.lng | 15 - .../interface/dns/lib/lang/sk_dns_wizard.lng | 29 - .../ispconfig/interface/dns/lib/lang/tr.lng | 20 - .../interface/dns/lib/lang/tr_dns_a.lng | 16 - .../interface/dns/lib/lang/tr_dns_a_list.lng | 14 - .../interface/dns/lib/lang/tr_dns_aaaa.lng | 15 - .../interface/dns/lib/lang/tr_dns_alias.lng | 15 - .../interface/dns/lib/lang/tr_dns_cname.lng | 15 - .../interface/dns/lib/lang/tr_dns_hinfo.lng | 15 - .../interface/dns/lib/lang/tr_dns_mx.lng | 16 - .../interface/dns/lib/lang/tr_dns_ns.lng | 15 - .../interface/dns/lib/lang/tr_dns_ptr.lng | 15 - .../interface/dns/lib/lang/tr_dns_rp.lng | 15 - .../interface/dns/lib/lang/tr_dns_soa.lng | 26 - .../dns/lib/lang/tr_dns_soa_list.lng | 9 - .../interface/dns/lib/lang/tr_dns_srv.lng | 16 - .../dns/lib/lang/tr_dns_template.lng | 6 - .../dns/lib/lang/tr_dns_template_list.lng | 6 - .../interface/dns/lib/lang/tr_dns_txt.lng | 15 - .../interface/dns/lib/lang/tr_dns_wizard.lng | 29 - .../interface/dns/lib/module.conf.php | 57 - .../interface/dns/list/dns_a.list.php | 127 - .../interface/dns/list/dns_soa.list.php | 111 - .../interface/dns/list/dns_template.list.php | 80 - .../interface/dns/templates/dns_a_edit.htm | 39 - .../interface/dns/templates/dns_a_list.htm | 85 - .../interface/dns/templates/dns_aaaa_edit.htm | 39 - .../dns/templates/dns_alias_edit.htm | 38 - .../dns/templates/dns_cname_edit.htm | 38 - .../dns/templates/dns_hinfo_edit.htm | 38 - .../interface/dns/templates/dns_mx_edit.htm | 42 - .../interface/dns/templates/dns_ns_edit.htm | 38 - .../interface/dns/templates/dns_ptr_edit.htm | 38 - .../dns/templates/dns_records_edit.htm | 12 - .../interface/dns/templates/dns_rp_edit.htm | 38 - .../interface/dns/templates/dns_soa_edit.htm | 95 - .../interface/dns/templates/dns_soa_list.htm | 62 - .../interface/dns/templates/dns_srv_edit.htm | 38 - .../dns/templates/dns_template_edit.htm | 38 - .../dns/templates/dns_template_list.htm | 53 - .../interface/dns/templates/dns_txt_edit.htm | 38 - .../interface/dns/templates/dns_wizard.htm | 80 - .../help/form/support_message.tform.php | 120 - interface/ispconfig/interface/help/index.php | 16 - .../interface/help/lib/admin.conf.php | 8 - .../ispconfig/interface/help/lib/lang/bg.lng | 9 - .../help/lib/lang/bg_support_message.lng | 7 - .../help/lib/lang/bg_support_message_list.lng | 6 - .../ispconfig/interface/help/lib/lang/br.lng | 9 - .../help/lib/lang/br_support_message.lng | 7 - .../help/lib/lang/br_support_message_list.lng | 6 - .../ispconfig/interface/help/lib/lang/de.lng | 9 - .../help/lib/lang/de_support_message.lng | 7 - .../help/lib/lang/de_support_message_list.lng | 6 - .../ispconfig/interface/help/lib/lang/en.lng | 10 - .../help/lib/lang/en_support_message.lng | 7 - .../help/lib/lang/en_support_message_list.lng | 6 - .../ispconfig/interface/help/lib/lang/es.lng | 9 - .../help/lib/lang/es_support_message.lng | 7 - .../help/lib/lang/es_support_message_list.lng | 6 - .../ispconfig/interface/help/lib/lang/fi.lng | 9 - .../help/lib/lang/fi_support_message.lng | 7 - .../help/lib/lang/fi_support_message_list.lng | 6 - .../ispconfig/interface/help/lib/lang/fr.lng | 9 - .../help/lib/lang/fr_support_message.lng | 7 - .../help/lib/lang/fr_support_message_list.lng | 6 - .../ispconfig/interface/help/lib/lang/hu.lng | 9 - .../help/lib/lang/hu_support_message.lng | 7 - .../help/lib/lang/hu_support_message_list.lng | 6 - .../ispconfig/interface/help/lib/lang/it.lng | 9 - .../help/lib/lang/it_support_message.lng | 7 - .../help/lib/lang/it_support_message_list.lng | 6 - .../ispconfig/interface/help/lib/lang/ja.lng | 9 - .../help/lib/lang/ja_support_message.lng | 7 - .../help/lib/lang/ja_support_message_list.lng | 6 - .../ispconfig/interface/help/lib/lang/nl.lng | 9 - .../help/lib/lang/nl_support_message.lng | 7 - .../help/lib/lang/nl_support_message_list.lng | 6 - .../ispconfig/interface/help/lib/lang/pl.lng | 9 - .../help/lib/lang/pl_support_message.lng | 7 - .../help/lib/lang/pl_support_message_list.lng | 6 - .../ispconfig/interface/help/lib/lang/pt.lng | 10 - .../help/lib/lang/pt_support_message.lng | 8 - .../help/lib/lang/pt_support_message_list.lng | 7 - .../ispconfig/interface/help/lib/lang/ro.lng | 9 - .../help/lib/lang/ro_support_message.lng | 7 - .../help/lib/lang/ro_support_message_list.lng | 6 - .../ispconfig/interface/help/lib/lang/ru.lng | 10 - .../help/lib/lang/ru_support_message.lng | 8 - .../help/lib/lang/ru_support_message_list.lng | 7 - .../ispconfig/interface/help/lib/lang/se.lng | 9 - .../help/lib/lang/se_support_message.lng | 7 - .../help/lib/lang/se_support_message_list.lng | 6 - .../ispconfig/interface/help/lib/lang/sk.lng | 9 - .../help/lib/lang/sk_support_message.lng | 7 - .../help/lib/lang/sk_support_message_list.lng | 6 - .../ispconfig/interface/help/lib/lang/tr.lng | 9 - .../help/lib/lang/tr_support_message.lng | 7 - .../help/lib/lang/tr_support_message_list.lng | 6 - .../interface/help/lib/module.conf.php | 60 - .../help/list/support_message.list.php | 62 - .../interface/help/support_message_del.php | 48 - .../interface/help/support_message_edit.php | 71 - .../interface/help/support_message_list.php | 20 - .../help/templates/support_message_edit.htm | 33 - .../help/templates/support_message_list.htm | 53 - .../help/templates/support_message_view.htm | 26 - .../ispconfig/interface/help/version.php | 50 - interface/ispconfig/interface/index.htm | 8 - interface/ispconfig/interface/index.php | 41 - .../ispconfig/interface/js/scrigo.js.php | 503 - .../ispconfig/interface/js/uni-form/jquery.js | 1 - .../interface/js/uni-form/uni-form.jquery.js | 106 - .../interface/js/yui/animation/README | 45 - .../js/yui/animation/animation-debug.js | 1361 --- .../js/yui/animation/animation-min.js | 75 - .../interface/js/yui/animation/animation.js | 1358 --- .../interface/js/yui/autocomplete/README | 77 - .../js/yui/autocomplete/autocomplete-debug.js | 3100 ------ .../js/yui/autocomplete/autocomplete-min.js | 183 - .../js/yui/autocomplete/autocomplete.js | 3071 ------ .../ispconfig/interface/js/yui/button/README | 3 - .../js/yui/button/assets/background.png | Bin 185 -> 0 bytes .../interface/js/yui/button/assets/button.css | 217 - .../js/yui/button/assets/menuarrow.gif | Bin 67 -> 0 bytes .../js/yui/button/assets/splitarrow.gif | Bin 145 -> 0 bytes .../yui/button/assets/splitarrow_active.gif | Bin 145 -> 0 bytes .../js/yui/button/button-beta-debug.js | 4061 -------- .../js/yui/button/button-beta-min.js | 126 - .../interface/js/yui/button/button-beta.js | 3949 -------- .../interface/js/yui/calendar/README | 88 - .../js/yui/calendar/assets/calendar.css | 197 - .../js/yui/calendar/assets/callt.gif | Bin 93 -> 0 bytes .../js/yui/calendar/assets/calrt.gif | Bin 94 -> 0 bytes .../interface/js/yui/calendar/assets/calx.gif | Bin 88 -> 0 bytes .../js/yui/calendar/calendar-debug.js | 4331 --------- .../interface/js/yui/calendar/calendar-min.js | 116 - .../interface/js/yui/calendar/calendar.js | 4309 --------- .../interface/js/yui/connection/README | 182 - .../js/yui/connection/connection-debug.js | 1082 --- .../js/yui/connection/connection-min.js | 104 - .../interface/js/yui/connection/connection.js | 1054 --- .../interface/js/yui/container/README | 207 - .../js/yui/container/assets/alrt16_1.gif | Bin 971 -> 0 bytes .../js/yui/container/assets/blck16_1.gif | Bin 591 -> 0 bytes .../js/yui/container/assets/close12_1.gif | Bin 85 -> 0 bytes .../js/yui/container/assets/container.css | 230 - .../js/yui/container/assets/hlp16_1.gif | Bin 928 -> 0 bytes .../js/yui/container/assets/info16_1.gif | Bin 601 -> 0 bytes .../js/yui/container/assets/tip16_1.gif | Bin 552 -> 0 bytes .../js/yui/container/assets/warn16_1.gif | Bin 580 -> 0 bytes .../js/yui/container/container-debug.js | 4752 ---------- .../js/yui/container/container-min.js | 159 - .../interface/js/yui/container/container.js | 4727 ---------- .../js/yui/container/container_core-debug.js | 2932 ------ .../js/yui/container/container_core-min.js | 109 - .../js/yui/container/container_core.js | 2919 ------ .../interface/js/yui/datasource/README | 5 - .../yui/datasource/datasource-beta-debug.js | 912 -- .../js/yui/datasource/datasource-beta-min.js | 59 - .../js/yui/datasource/datasource-beta.js | 902 -- .../interface/js/yui/datatable/README | 9 - .../js/yui/datatable/assets/datatable.css | 82 - .../js/yui/datatable/datatable-beta-debug.js | 4956 ---------- .../js/yui/datatable/datatable-beta-min.js | 214 - .../js/yui/datatable/datatable-beta.js | 4930 ---------- .../ispconfig/interface/js/yui/dom/README | 79 - .../interface/js/yui/dom/dom-debug.js | 935 -- .../ispconfig/interface/js/yui/dom/dom-min.js | 59 - .../ispconfig/interface/js/yui/dom/dom.js | 901 -- .../interface/js/yui/dragdrop/README | 118 - .../js/yui/dragdrop/dragdrop-debug.js | 3068 ------ .../interface/js/yui/dragdrop/dragdrop-min.js | 93 - .../interface/js/yui/dragdrop/dragdrop.js | 2958 ------ .../ispconfig/interface/js/yui/element/README | 7 - .../js/yui/element/element-beta-debug.js | 906 -- .../js/yui/element/element-beta-min.js | 30 - .../interface/js/yui/element/element-beta.js | 896 -- .../ispconfig/interface/js/yui/event/README | 161 - .../interface/js/yui/event/event-debug.js | 2076 ---- .../interface/js/yui/event/event-min.js | 84 - .../ispconfig/interface/js/yui/event/event.js | 2054 ---- .../ispconfig/interface/js/yui/fonts/README | 13 - .../interface/js/yui/fonts/fonts-min.css | 7 - .../interface/js/yui/fonts/fonts.css | 29 - .../ispconfig/interface/js/yui/grids/README | 48 - .../interface/js/yui/grids/grids-min.css | 7 - .../interface/js/yui/grids/grids.css | 129 - .../ispconfig/interface/js/yui/history/README | 11 - .../js/yui/history/assets/blank.html | 1 - .../yui/history/history-experimental-debug.js | 649 -- .../yui/history/history-experimental-min.js | 44 - .../js/yui/history/history-experimental.js | 649 -- .../ispconfig/interface/js/yui/logger/README | 51 - .../interface/js/yui/logger/assets/logger.css | 26 - .../interface/js/yui/logger/logger-debug.js | 1597 ---- .../interface/js/yui/logger/logger-min.js | 63 - .../interface/js/yui/logger/logger.js | 1597 ---- .../ispconfig/interface/js/yui/menu/README | 385 - .../interface/js/yui/menu/assets/map.gif | Bin 264 -> 0 bytes .../interface/js/yui/menu/assets/menu.css | 384 - .../js/yui/menu/assets/menuarodwn8_dim_1.gif | Bin 53 -> 0 bytes .../js/yui/menu/assets/menuarodwn8_hov_1.gif | Bin 53 -> 0 bytes .../js/yui/menu/assets/menuarodwn8_nrm_1.gif | Bin 53 -> 0 bytes .../js/yui/menu/assets/menuarorght8_dim_1.gif | Bin 54 -> 0 bytes .../js/yui/menu/assets/menuarorght8_hov_1.gif | Bin 54 -> 0 bytes .../js/yui/menu/assets/menuarorght8_nrm_1.gif | Bin 54 -> 0 bytes .../js/yui/menu/assets/menuaroup8_dim_1.gif | Bin 53 -> 0 bytes .../js/yui/menu/assets/menuaroup8_nrm_1.gif | Bin 53 -> 0 bytes .../js/yui/menu/assets/menuchk8_dim_1.gif | Bin 65 -> 0 bytes .../js/yui/menu/assets/menuchk8_hov_1.gif | Bin 67 -> 0 bytes .../js/yui/menu/assets/menuchk8_nrm_1.gif | Bin 67 -> 0 bytes .../interface/js/yui/menu/menu-debug.js | 8317 ----------------- .../interface/js/yui/menu/menu-min.js | 260 - .../ispconfig/interface/js/yui/menu/menu.js | 8265 ---------------- .../interface/js/yui/reset-fonts-grids/README | 24 - .../reset-fonts-grids/reset-fonts-grids.css | 9 - .../ispconfig/interface/js/yui/reset/README | 25 - .../interface/js/yui/reset/reset-min.css | 7 - .../interface/js/yui/reset/reset.css | 15 - .../ispconfig/interface/js/yui/slider/README | 69 - .../interface/js/yui/slider/slider-debug.js | 1259 --- .../interface/js/yui/slider/slider-min.js | 36 - .../interface/js/yui/slider/slider.js | 1222 --- .../ispconfig/interface/js/yui/tabview/README | 21 - .../js/yui/tabview/assets/border_tabs.css | 54 - .../js/yui/tabview/assets/tabview.css | 75 - .../interface/js/yui/tabview/tabview-debug.js | 1025 -- .../interface/js/yui/tabview/tabview-min.js | 35 - .../interface/js/yui/tabview/tabview.js | 1021 -- .../interface/js/yui/treeview/README | 147 - .../interface/js/yui/treeview/assets/lm.gif | Bin 94 -> 0 bytes .../interface/js/yui/treeview/assets/lmh.gif | Bin 106 -> 0 bytes .../interface/js/yui/treeview/assets/ln.gif | Bin 142 -> 0 bytes .../js/yui/treeview/assets/loading.gif | Bin 2673 -> 0 bytes .../interface/js/yui/treeview/assets/lp.gif | Bin 130 -> 0 bytes .../interface/js/yui/treeview/assets/lph.gif | Bin 111 -> 0 bytes .../interface/js/yui/treeview/assets/tm.gif | Bin 545 -> 0 bytes .../interface/js/yui/treeview/assets/tmh.gif | Bin 563 -> 0 bytes .../interface/js/yui/treeview/assets/tn.gif | Bin 504 -> 0 bytes .../interface/js/yui/treeview/assets/tp.gif | Bin 539 -> 0 bytes .../interface/js/yui/treeview/assets/tph.gif | Bin 568 -> 0 bytes .../interface/js/yui/treeview/assets/tree.css | 102 - .../js/yui/treeview/assets/vline.gif | Bin 503 -> 0 bytes .../js/yui/treeview/treeview-debug.js | 2287 ----- .../interface/js/yui/treeview/treeview-min.js | 70 - .../interface/js/yui/treeview/treeview.js | 2248 ----- .../interface/js/yui/utilities/README | 36 - .../interface/js/yui/utilities/utilities.js | 418 - .../interface/js/yui/yahoo-dom-event/README | 35 - .../js/yui/yahoo-dom-event/yahoo-dom-event.js | 144 - .../ispconfig/interface/js/yui/yahoo/README | 64 - .../interface/js/yui/yahoo/yahoo-debug.js | 433 - .../interface/js/yui/yahoo/yahoo-min.js | 15 - .../ispconfig/interface/js/yui/yahoo/yahoo.js | 433 - interface/ispconfig/interface/keepalive.php | 36 - interface/ispconfig/interface/login/index.php | 203 - .../ispconfig/interface/login/lib/lang/bg.lng | 17 - .../ispconfig/interface/login/lib/lang/br.lng | 17 - .../ispconfig/interface/login/lib/lang/de.lng | 17 - .../ispconfig/interface/login/lib/lang/en.lng | 22 - .../ispconfig/interface/login/lib/lang/es.lng | 17 - .../ispconfig/interface/login/lib/lang/fi.lng | 17 - .../ispconfig/interface/login/lib/lang/fr.lng | 17 - .../ispconfig/interface/login/lib/lang/hu.lng | 17 - .../ispconfig/interface/login/lib/lang/it.lng | 17 - .../ispconfig/interface/login/lib/lang/ja.lng | 17 - .../ispconfig/interface/login/lib/lang/nl.lng | 17 - .../ispconfig/interface/login/lib/lang/pl.lng | 17 - .../ispconfig/interface/login/lib/lang/pt.lng | 18 - .../ispconfig/interface/login/lib/lang/ro.lng | 17 - .../ispconfig/interface/login/lib/lang/ru.lng | 18 - .../ispconfig/interface/login/lib/lang/se.lng | 17 - .../ispconfig/interface/login/lib/lang/sk.lng | 17 - .../ispconfig/interface/login/lib/lang/tr.lng | 17 - .../interface/login/lib/module.conf.php | 6 - .../ispconfig/interface/login/logout.php | 80 - .../interface/login/password_reset.php | 92 - .../interface/login/templates/index.htm | 33 - .../login/templates/password_reset.htm | 33 - .../interface/mail/form/mail_alias.tform.php | 114 - .../mail/form/mail_aliasdomain.tform.php | 113 - .../mail/form/mail_blacklist.tform.php | 110 - .../mail/form/mail_content_filter.tform.php | 116 - .../interface/mail/form/mail_domain.tform.php | 101 - .../mail/form/mail_domain_catchall.tform.php | 119 - .../mail/form/mail_forward.tform.php | 108 - .../interface/mail/form/mail_get.tform.php | 148 - .../mail/form/mail_relay_recipient.tform.php | 104 - .../mail/form/mail_spamfilter.tform.php | 146 - .../mail/form/mail_transport.tform.php | 111 - .../interface/mail/form/mail_user.tform.php | 280 - .../mail/form/mail_user.tform.php.orig | 280 - .../mail/form/mail_user_filter.tform.php | 135 - .../mail/form/mail_user_filter.tform.php.orig | 135 - .../mail/form/mail_whitelist.tform.php | 110 - .../mail/form/spamfilter_blacklist.tform.php | 119 - .../mail/form/spamfilter_config.tform.php | 275 - .../mail/form/spamfilter_policy.tform.php | 382 - .../mail/form/spamfilter_users.tform.php | 125 - .../mail/form/spamfilter_whitelist.tform.php | 119 - .../interface/mail/lib/admin.conf.php | 2 - .../ispconfig/interface/mail/lib/lang/bg.lng | 47 - .../interface/mail/lib/lang/bg_mail_alias.lng | 11 - .../mail/lib/lang/bg_mail_alias_list.lng | 8 - .../mail/lib/lang/bg_mail_aliasdomain.lng | 11 - .../lib/lang/bg_mail_aliasdomain_list.lng | 7 - .../mail/lib/lang/bg_mail_blacklist.lng | 9 - .../mail/lib/lang/bg_mail_blacklist_list.lng | 10 - .../mail/lib/lang/bg_mail_content_filter.lng | 9 - .../lib/lang/bg_mail_content_filter_list.lng | 8 - .../mail/lib/lang/bg_mail_domain.lng | 13 - .../mail/lib/lang/bg_mail_domain_catchall.lng | 9 - .../lib/lang/bg_mail_domain_catchall_list.lng | 9 - .../mail/lib/lang/bg_mail_domain_list.lng | 7 - .../mail/lib/lang/bg_mail_forward.lng | 7 - .../mail/lib/lang/bg_mail_forward_list.lng | 8 - .../interface/mail/lib/lang/bg_mail_get.lng | 16 - .../mail/lib/lang/bg_mail_get_list.lng | 9 - .../mail/lib/lang/bg_mail_relay_recipient.lng | 9 - .../lib/lang/bg_mail_relay_recipient_list.lng | 9 - .../mail/lib/lang/bg_mail_spamfilter.lng | 17 - .../mail/lib/lang/bg_mail_spamfilter_list.lng | 8 - .../mail/lib/lang/bg_mail_transport.lng | 10 - .../mail/lib/lang/bg_mail_transport_list.lng | 9 - .../interface/mail/lib/lang/bg_mail_user.lng | 41 - .../mail/lib/lang/bg_mail_user_filter.lng | 10 - .../lib/lang/bg_mail_user_filter_list.lng | 7 - .../mail/lib/lang/bg_mail_user_list.lng | 7 - .../mail/lib/lang/bg_mail_user_stats_list.lng | 8 - .../mail/lib/lang/bg_mail_whitelist.lng | 9 - .../mail/lib/lang/bg_mail_whitelist_list.lng | 10 - .../mail/lib/lang/bg_spamfilter_blacklist.lng | 9 - .../lib/lang/bg_spamfilter_blacklist_list.lng | 9 - .../mail/lib/lang/bg_spamfilter_config.lng | 20 - .../lib/lang/bg_spamfilter_config_list.lng | 5 - .../mail/lib/lang/bg_spamfilter_policy.lng | 38 - .../lib/lang/bg_spamfilter_policy_list.lng | 9 - .../mail/lib/lang/bg_spamfilter_users.lng | 8 - .../lib/lang/bg_spamfilter_users_list.lng | 10 - .../mail/lib/lang/bg_spamfilter_whitelist.lng | 9 - .../lib/lang/bg_spamfilter_whitelist_list.lng | 9 - .../ispconfig/interface/mail/lib/lang/br.lng | 47 - .../interface/mail/lib/lang/br_mail_alias.lng | 11 - .../mail/lib/lang/br_mail_alias_list.lng | 8 - .../mail/lib/lang/br_mail_aliasdomain.lng | 11 - .../lib/lang/br_mail_aliasdomain_list.lng | 7 - .../mail/lib/lang/br_mail_blacklist.lng | 9 - .../mail/lib/lang/br_mail_blacklist_list.lng | 10 - .../mail/lib/lang/br_mail_content_filter.lng | 9 - .../lib/lang/br_mail_content_filter_list.lng | 8 - .../mail/lib/lang/br_mail_domain.lng | 13 - .../mail/lib/lang/br_mail_domain_catchall.lng | 9 - .../lib/lang/br_mail_domain_catchall_list.lng | 9 - .../mail/lib/lang/br_mail_domain_list.lng | 7 - .../mail/lib/lang/br_mail_forward.lng | 7 - .../mail/lib/lang/br_mail_forward_list.lng | 8 - .../interface/mail/lib/lang/br_mail_get.lng | 16 - .../mail/lib/lang/br_mail_get_list.lng | 9 - .../mail/lib/lang/br_mail_relay_recipient.lng | 9 - .../lib/lang/br_mail_relay_recipient_list.lng | 9 - .../mail/lib/lang/br_mail_spamfilter.lng | 17 - .../mail/lib/lang/br_mail_spamfilter_list.lng | 8 - .../mail/lib/lang/br_mail_transport.lng | 10 - .../mail/lib/lang/br_mail_transport_list.lng | 9 - .../interface/mail/lib/lang/br_mail_user.lng | 39 - .../mail/lib/lang/br_mail_user_filter.lng | 10 - .../lib/lang/br_mail_user_filter_list.lng | 7 - .../mail/lib/lang/br_mail_user_list.lng | 7 - .../mail/lib/lang/br_mail_user_stats_list.lng | 8 - .../mail/lib/lang/br_mail_whitelist.lng | 9 - .../mail/lib/lang/br_mail_whitelist_list.lng | 10 - .../mail/lib/lang/br_spamfilter_blacklist.lng | 9 - .../lib/lang/br_spamfilter_blacklist_list.lng | 9 - .../mail/lib/lang/br_spamfilter_config.lng | 20 - .../lib/lang/br_spamfilter_config_list.lng | 5 - .../mail/lib/lang/br_spamfilter_policy.lng | 38 - .../lib/lang/br_spamfilter_policy_list.lng | 9 - .../mail/lib/lang/br_spamfilter_users.lng | 8 - .../lib/lang/br_spamfilter_users_list.lng | 10 - .../mail/lib/lang/br_spamfilter_whitelist.lng | 9 - .../lib/lang/br_spamfilter_whitelist_list.lng | 9 - .../ispconfig/interface/mail/lib/lang/de.lng | 47 - .../interface/mail/lib/lang/de_mail_alias.lng | 11 - .../mail/lib/lang/de_mail_alias_list.lng | 8 - .../mail/lib/lang/de_mail_aliasdomain.lng | 11 - .../lib/lang/de_mail_aliasdomain_list.lng | 7 - .../mail/lib/lang/de_mail_blacklist.lng | 9 - .../mail/lib/lang/de_mail_blacklist_list.lng | 10 - .../mail/lib/lang/de_mail_content_filter.lng | 9 - .../lib/lang/de_mail_content_filter_list.lng | 8 - .../mail/lib/lang/de_mail_domain.lng | 13 - .../mail/lib/lang/de_mail_domain_catchall.lng | 9 - .../lib/lang/de_mail_domain_catchall_list.lng | 9 - .../mail/lib/lang/de_mail_domain_list.lng | 7 - .../mail/lib/lang/de_mail_forward.lng | 7 - .../mail/lib/lang/de_mail_forward_list.lng | 8 - .../interface/mail/lib/lang/de_mail_get.lng | 16 - .../mail/lib/lang/de_mail_get_list.lng | 9 - .../mail/lib/lang/de_mail_relay_recipient.lng | 9 - .../lib/lang/de_mail_relay_recipient_list.lng | 9 - .../mail/lib/lang/de_mail_spamfilter.lng | 17 - .../mail/lib/lang/de_mail_spamfilter_list.lng | 8 - .../mail/lib/lang/de_mail_transport.lng | 10 - .../mail/lib/lang/de_mail_transport_list.lng | 9 - .../interface/mail/lib/lang/de_mail_user.lng | 39 - .../mail/lib/lang/de_mail_user_filter.lng | 10 - .../lib/lang/de_mail_user_filter_list.lng | 7 - .../mail/lib/lang/de_mail_user_list.lng | 7 - .../mail/lib/lang/de_mail_user_stats_list.lng | 8 - .../mail/lib/lang/de_mail_whitelist.lng | 9 - .../mail/lib/lang/de_mail_whitelist_list.lng | 10 - .../mail/lib/lang/de_spamfilter_blacklist.lng | 9 - .../lib/lang/de_spamfilter_blacklist_list.lng | 9 - .../mail/lib/lang/de_spamfilter_config.lng | 20 - .../lib/lang/de_spamfilter_config_list.lng | 5 - .../mail/lib/lang/de_spamfilter_policy.lng | 38 - .../lib/lang/de_spamfilter_policy_list.lng | 9 - .../mail/lib/lang/de_spamfilter_users.lng | 8 - .../lib/lang/de_spamfilter_users_list.lng | 10 - .../mail/lib/lang/de_spamfilter_whitelist.lng | 9 - .../lib/lang/de_spamfilter_whitelist_list.lng | 9 - .../ispconfig/interface/mail/lib/lang/en.lng | 51 - .../interface/mail/lib/lang/en_mail_alias.lng | 11 - .../mail/lib/lang/en_mail_alias_list.lng | 8 - .../mail/lib/lang/en_mail_aliasdomain.lng | 11 - .../lib/lang/en_mail_aliasdomain_list.lng | 8 - .../mail/lib/lang/en_mail_blacklist.lng | 9 - .../mail/lib/lang/en_mail_blacklist_list.lng | 10 - .../mail/lib/lang/en_mail_content_filter.lng | 9 - .../lib/lang/en_mail_content_filter_list.lng | 8 - .../mail/lib/lang/en_mail_domain.lng | 13 - .../mail/lib/lang/en_mail_domain_catchall.lng | 9 - .../lib/lang/en_mail_domain_catchall_list.lng | 9 - .../mail/lib/lang/en_mail_domain_list.lng | 7 - .../mail/lib/lang/en_mail_forward.lng | 7 - .../mail/lib/lang/en_mail_forward_list.lng | 8 - .../interface/mail/lib/lang/en_mail_get.lng | 16 - .../mail/lib/lang/en_mail_get_list.lng | 9 - .../mail/lib/lang/en_mail_relay_recipient.lng | 9 - .../lib/lang/en_mail_relay_recipient_list.lng | 9 - .../mail/lib/lang/en_mail_spamfilter.lng | 17 - .../mail/lib/lang/en_mail_spamfilter_list.lng | 8 - .../mail/lib/lang/en_mail_transport.lng | 10 - .../mail/lib/lang/en_mail_transport_list.lng | 9 - .../interface/mail/lib/lang/en_mail_user.lng | 40 - .../mail/lib/lang/en_mail_user_filter.lng | 10 - .../lib/lang/en_mail_user_filter_list.lng | 7 - .../mail/lib/lang/en_mail_user_list.lng | 7 - .../mail/lib/lang/en_mail_user_stats_list.lng | 8 - .../mail/lib/lang/en_mail_whitelist.lng | 9 - .../mail/lib/lang/en_mail_whitelist_list.lng | 10 - .../mail/lib/lang/en_spamfilter_blacklist.lng | 9 - .../lib/lang/en_spamfilter_blacklist_list.lng | 9 - .../mail/lib/lang/en_spamfilter_config.lng | 20 - .../lib/lang/en_spamfilter_config_list.lng | 5 - .../mail/lib/lang/en_spamfilter_policy.lng | 38 - .../lib/lang/en_spamfilter_policy_list.lng | 9 - .../mail/lib/lang/en_spamfilter_users.lng | 8 - .../lib/lang/en_spamfilter_users_list.lng | 10 - .../mail/lib/lang/en_spamfilter_whitelist.lng | 9 - .../lib/lang/en_spamfilter_whitelist_list.lng | 9 - .../ispconfig/interface/mail/lib/lang/es.lng | 47 - .../interface/mail/lib/lang/es_mail_alias.lng | 11 - .../mail/lib/lang/es_mail_alias_list.lng | 8 - .../mail/lib/lang/es_mail_aliasdomain.lng | 11 - .../lib/lang/es_mail_aliasdomain_list.lng | 7 - .../mail/lib/lang/es_mail_blacklist.lng | 9 - .../mail/lib/lang/es_mail_blacklist_list.lng | 10 - .../mail/lib/lang/es_mail_content_filter.lng | 9 - .../lib/lang/es_mail_content_filter_list.lng | 8 - .../mail/lib/lang/es_mail_domain.lng | 13 - .../mail/lib/lang/es_mail_domain_catchall.lng | 9 - .../lib/lang/es_mail_domain_catchall_list.lng | 9 - .../mail/lib/lang/es_mail_domain_list.lng | 7 - .../mail/lib/lang/es_mail_forward.lng | 7 - .../mail/lib/lang/es_mail_forward_list.lng | 8 - .../interface/mail/lib/lang/es_mail_get.lng | 16 - .../mail/lib/lang/es_mail_get_list.lng | 9 - .../mail/lib/lang/es_mail_relay_recipient.lng | 9 - .../lib/lang/es_mail_relay_recipient_list.lng | 9 - .../mail/lib/lang/es_mail_spamfilter.lng | 17 - .../mail/lib/lang/es_mail_spamfilter_list.lng | 8 - .../mail/lib/lang/es_mail_transport.lng | 10 - .../mail/lib/lang/es_mail_transport_list.lng | 9 - .../interface/mail/lib/lang/es_mail_user.lng | 39 - .../mail/lib/lang/es_mail_user_filter.lng | 10 - .../lib/lang/es_mail_user_filter_list.lng | 7 - .../mail/lib/lang/es_mail_user_list.lng | 7 - .../mail/lib/lang/es_mail_user_stats_list.lng | 8 - .../mail/lib/lang/es_mail_whitelist.lng | 9 - .../mail/lib/lang/es_mail_whitelist_list.lng | 10 - .../mail/lib/lang/es_spamfilter_blacklist.lng | 9 - .../lib/lang/es_spamfilter_blacklist_list.lng | 9 - .../mail/lib/lang/es_spamfilter_config.lng | 20 - .../lib/lang/es_spamfilter_config_list.lng | 5 - .../mail/lib/lang/es_spamfilter_policy.lng | 38 - .../lib/lang/es_spamfilter_policy_list.lng | 9 - .../mail/lib/lang/es_spamfilter_users.lng | 8 - .../lib/lang/es_spamfilter_users_list.lng | 10 - .../mail/lib/lang/es_spamfilter_whitelist.lng | 9 - .../lib/lang/es_spamfilter_whitelist_list.lng | 9 - .../ispconfig/interface/mail/lib/lang/fi.lng | 47 - .../interface/mail/lib/lang/fi_mail_alias.lng | 11 - .../mail/lib/lang/fi_mail_alias_list.lng | 8 - .../mail/lib/lang/fi_mail_aliasdomain.lng | 11 - .../lib/lang/fi_mail_aliasdomain_list.lng | 7 - .../mail/lib/lang/fi_mail_blacklist.lng | 9 - .../mail/lib/lang/fi_mail_blacklist_list.lng | 10 - .../mail/lib/lang/fi_mail_content_filter.lng | 9 - .../lib/lang/fi_mail_content_filter_list.lng | 8 - .../mail/lib/lang/fi_mail_domain.lng | 13 - .../mail/lib/lang/fi_mail_domain_catchall.lng | 9 - .../lib/lang/fi_mail_domain_catchall_list.lng | 9 - .../mail/lib/lang/fi_mail_domain_list.lng | 7 - .../mail/lib/lang/fi_mail_forward.lng | 7 - .../mail/lib/lang/fi_mail_forward_list.lng | 8 - .../interface/mail/lib/lang/fi_mail_get.lng | 16 - .../mail/lib/lang/fi_mail_get_list.lng | 9 - .../mail/lib/lang/fi_mail_relay_recipient.lng | 9 - .../lib/lang/fi_mail_relay_recipient_list.lng | 9 - .../mail/lib/lang/fi_mail_spamfilter.lng | 17 - .../mail/lib/lang/fi_mail_spamfilter_list.lng | 8 - .../mail/lib/lang/fi_mail_transport.lng | 10 - .../mail/lib/lang/fi_mail_transport_list.lng | 9 - .../interface/mail/lib/lang/fi_mail_user.lng | 39 - .../mail/lib/lang/fi_mail_user_filter.lng | 10 - .../lib/lang/fi_mail_user_filter_list.lng | 7 - .../mail/lib/lang/fi_mail_user_list.lng | 7 - .../mail/lib/lang/fi_mail_user_stats_list.lng | 8 - .../mail/lib/lang/fi_mail_whitelist.lng | 9 - .../mail/lib/lang/fi_mail_whitelist_list.lng | 10 - .../mail/lib/lang/fi_spamfilter_blacklist.lng | 9 - .../lib/lang/fi_spamfilter_blacklist_list.lng | 9 - .../mail/lib/lang/fi_spamfilter_config.lng | 20 - .../lib/lang/fi_spamfilter_config_list.lng | 5 - .../mail/lib/lang/fi_spamfilter_policy.lng | 38 - .../lib/lang/fi_spamfilter_policy_list.lng | 9 - .../mail/lib/lang/fi_spamfilter_users.lng | 8 - .../lib/lang/fi_spamfilter_users_list.lng | 10 - .../mail/lib/lang/fi_spamfilter_whitelist.lng | 9 - .../lib/lang/fi_spamfilter_whitelist_list.lng | 9 - .../ispconfig/interface/mail/lib/lang/fr.lng | 47 - .../interface/mail/lib/lang/fr_mail_alias.lng | 11 - .../mail/lib/lang/fr_mail_alias_list.lng | 8 - .../mail/lib/lang/fr_mail_aliasdomain.lng | 11 - .../lib/lang/fr_mail_aliasdomain_list.lng | 7 - .../mail/lib/lang/fr_mail_blacklist.lng | 9 - .../mail/lib/lang/fr_mail_blacklist_list.lng | 10 - .../mail/lib/lang/fr_mail_content_filter.lng | 9 - .../lib/lang/fr_mail_content_filter_list.lng | 8 - .../mail/lib/lang/fr_mail_domain.lng | 13 - .../mail/lib/lang/fr_mail_domain_catchall.lng | 9 - .../lib/lang/fr_mail_domain_catchall_list.lng | 9 - .../mail/lib/lang/fr_mail_domain_list.lng | 7 - .../mail/lib/lang/fr_mail_forward.lng | 7 - .../mail/lib/lang/fr_mail_forward_list.lng | 8 - .../interface/mail/lib/lang/fr_mail_get.lng | 16 - .../mail/lib/lang/fr_mail_get_list.lng | 9 - .../mail/lib/lang/fr_mail_relay_recipient.lng | 9 - .../lib/lang/fr_mail_relay_recipient_list.lng | 9 - .../mail/lib/lang/fr_mail_spamfilter.lng | 17 - .../mail/lib/lang/fr_mail_spamfilter_list.lng | 8 - .../mail/lib/lang/fr_mail_transport.lng | 10 - .../mail/lib/lang/fr_mail_transport_list.lng | 9 - .../interface/mail/lib/lang/fr_mail_user.lng | 41 - .../mail/lib/lang/fr_mail_user_filter.lng | 10 - .../lib/lang/fr_mail_user_filter_list.lng | 7 - .../mail/lib/lang/fr_mail_user_list.lng | 7 - .../mail/lib/lang/fr_mail_user_stats_list.lng | 8 - .../mail/lib/lang/fr_mail_whitelist.lng | 9 - .../mail/lib/lang/fr_mail_whitelist_list.lng | 10 - .../mail/lib/lang/fr_spamfilter_blacklist.lng | 9 - .../lib/lang/fr_spamfilter_blacklist_list.lng | 9 - .../mail/lib/lang/fr_spamfilter_config.lng | 20 - .../lib/lang/fr_spamfilter_config_list.lng | 5 - .../mail/lib/lang/fr_spamfilter_policy.lng | 38 - .../lib/lang/fr_spamfilter_policy_list.lng | 9 - .../mail/lib/lang/fr_spamfilter_users.lng | 8 - .../lib/lang/fr_spamfilter_users_list.lng | 10 - .../mail/lib/lang/fr_spamfilter_whitelist.lng | 9 - .../lib/lang/fr_spamfilter_whitelist_list.lng | 9 - .../ispconfig/interface/mail/lib/lang/hu.lng | 47 - .../interface/mail/lib/lang/hu_mail_alias.lng | 11 - .../mail/lib/lang/hu_mail_alias_list.lng | 8 - .../mail/lib/lang/hu_mail_aliasdomain.lng | 11 - .../lib/lang/hu_mail_aliasdomain_list.lng | 7 - .../mail/lib/lang/hu_mail_blacklist.lng | 9 - .../mail/lib/lang/hu_mail_blacklist_list.lng | 10 - .../mail/lib/lang/hu_mail_content_filter.lng | 9 - .../lib/lang/hu_mail_content_filter_list.lng | 8 - .../mail/lib/lang/hu_mail_domain.lng | 13 - .../mail/lib/lang/hu_mail_domain_catchall.lng | 9 - .../lib/lang/hu_mail_domain_catchall_list.lng | 9 - .../mail/lib/lang/hu_mail_domain_list.lng | 7 - .../mail/lib/lang/hu_mail_forward.lng | 7 - .../mail/lib/lang/hu_mail_forward_list.lng | 8 - .../interface/mail/lib/lang/hu_mail_get.lng | 16 - .../mail/lib/lang/hu_mail_get_list.lng | 9 - .../mail/lib/lang/hu_mail_relay_recipient.lng | 9 - .../lib/lang/hu_mail_relay_recipient_list.lng | 9 - .../mail/lib/lang/hu_mail_spamfilter.lng | 17 - .../mail/lib/lang/hu_mail_spamfilter_list.lng | 8 - .../mail/lib/lang/hu_mail_transport.lng | 10 - .../mail/lib/lang/hu_mail_transport_list.lng | 9 - .../interface/mail/lib/lang/hu_mail_user.lng | 39 - .../mail/lib/lang/hu_mail_user_filter.lng | 10 - .../lib/lang/hu_mail_user_filter_list.lng | 7 - .../mail/lib/lang/hu_mail_user_list.lng | 7 - .../mail/lib/lang/hu_mail_user_stats_list.lng | 8 - .../mail/lib/lang/hu_mail_whitelist.lng | 9 - .../mail/lib/lang/hu_mail_whitelist_list.lng | 10 - .../mail/lib/lang/hu_spamfilter_blacklist.lng | 9 - .../lib/lang/hu_spamfilter_blacklist_list.lng | 9 - .../mail/lib/lang/hu_spamfilter_config.lng | 20 - .../lib/lang/hu_spamfilter_config_list.lng | 5 - .../mail/lib/lang/hu_spamfilter_policy.lng | 38 - .../lib/lang/hu_spamfilter_policy_list.lng | 9 - .../mail/lib/lang/hu_spamfilter_users.lng | 8 - .../lib/lang/hu_spamfilter_users_list.lng | 10 - .../mail/lib/lang/hu_spamfilter_whitelist.lng | 9 - .../lib/lang/hu_spamfilter_whitelist_list.lng | 9 - .../ispconfig/interface/mail/lib/lang/it.lng | 47 - .../interface/mail/lib/lang/it_mail_alias.lng | 11 - .../mail/lib/lang/it_mail_alias_list.lng | 8 - .../mail/lib/lang/it_mail_aliasdomain.lng | 11 - .../lib/lang/it_mail_aliasdomain_list.lng | 7 - .../mail/lib/lang/it_mail_blacklist.lng | 9 - .../mail/lib/lang/it_mail_blacklist_list.lng | 10 - .../mail/lib/lang/it_mail_content_filter.lng | 9 - .../lib/lang/it_mail_content_filter_list.lng | 8 - .../mail/lib/lang/it_mail_domain.lng | 13 - .../mail/lib/lang/it_mail_domain_catchall.lng | 9 - .../lib/lang/it_mail_domain_catchall_list.lng | 9 - .../mail/lib/lang/it_mail_domain_list.lng | 7 - .../mail/lib/lang/it_mail_forward.lng | 7 - .../mail/lib/lang/it_mail_forward_list.lng | 8 - .../interface/mail/lib/lang/it_mail_get.lng | 16 - .../mail/lib/lang/it_mail_get_list.lng | 9 - .../mail/lib/lang/it_mail_relay_recipient.lng | 9 - .../lib/lang/it_mail_relay_recipient_list.lng | 9 - .../mail/lib/lang/it_mail_spamfilter.lng | 17 - .../mail/lib/lang/it_mail_spamfilter_list.lng | 8 - .../mail/lib/lang/it_mail_transport.lng | 10 - .../mail/lib/lang/it_mail_transport_list.lng | 9 - .../interface/mail/lib/lang/it_mail_user.lng | 41 - .../mail/lib/lang/it_mail_user_filter.lng | 10 - .../lib/lang/it_mail_user_filter_list.lng | 7 - .../mail/lib/lang/it_mail_user_list.lng | 7 - .../mail/lib/lang/it_mail_user_stats_list.lng | 8 - .../mail/lib/lang/it_mail_whitelist.lng | 9 - .../mail/lib/lang/it_mail_whitelist_list.lng | 10 - .../mail/lib/lang/it_spamfilter_blacklist.lng | 9 - .../lib/lang/it_spamfilter_blacklist_list.lng | 9 - .../mail/lib/lang/it_spamfilter_config.lng | 20 - .../lib/lang/it_spamfilter_config_list.lng | 5 - .../mail/lib/lang/it_spamfilter_policy.lng | 38 - .../lib/lang/it_spamfilter_policy_list.lng | 9 - .../mail/lib/lang/it_spamfilter_users.lng | 8 - .../lib/lang/it_spamfilter_users_list.lng | 10 - .../mail/lib/lang/it_spamfilter_whitelist.lng | 9 - .../lib/lang/it_spamfilter_whitelist_list.lng | 9 - .../ispconfig/interface/mail/lib/lang/ja.lng | 47 - .../interface/mail/lib/lang/ja_mail_alias.lng | 11 - .../mail/lib/lang/ja_mail_alias_list.lng | 8 - .../mail/lib/lang/ja_mail_aliasdomain.lng | 11 - .../lib/lang/ja_mail_aliasdomain_list.lng | 7 - .../mail/lib/lang/ja_mail_blacklist.lng | 9 - .../mail/lib/lang/ja_mail_blacklist_list.lng | 10 - .../mail/lib/lang/ja_mail_content_filter.lng | 9 - .../lib/lang/ja_mail_content_filter_list.lng | 8 - .../mail/lib/lang/ja_mail_domain.lng | 13 - .../mail/lib/lang/ja_mail_domain_catchall.lng | 9 - .../lib/lang/ja_mail_domain_catchall_list.lng | 9 - .../mail/lib/lang/ja_mail_domain_list.lng | 7 - .../mail/lib/lang/ja_mail_forward.lng | 7 - .../mail/lib/lang/ja_mail_forward_list.lng | 8 - .../interface/mail/lib/lang/ja_mail_get.lng | 16 - .../mail/lib/lang/ja_mail_get_list.lng | 9 - .../mail/lib/lang/ja_mail_relay_recipient.lng | 9 - .../lib/lang/ja_mail_relay_recipient_list.lng | 9 - .../mail/lib/lang/ja_mail_spamfilter.lng | 17 - .../mail/lib/lang/ja_mail_spamfilter_list.lng | 8 - .../mail/lib/lang/ja_mail_transport.lng | 10 - .../mail/lib/lang/ja_mail_transport_list.lng | 9 - .../interface/mail/lib/lang/ja_mail_user.lng | 39 - .../mail/lib/lang/ja_mail_user_filter.lng | 10 - .../lib/lang/ja_mail_user_filter_list.lng | 7 - .../mail/lib/lang/ja_mail_user_list.lng | 7 - .../mail/lib/lang/ja_mail_user_stats_list.lng | 8 - .../mail/lib/lang/ja_mail_whitelist.lng | 9 - .../mail/lib/lang/ja_mail_whitelist_list.lng | 10 - .../mail/lib/lang/ja_spamfilter_blacklist.lng | 9 - .../lib/lang/ja_spamfilter_blacklist_list.lng | 9 - .../mail/lib/lang/ja_spamfilter_config.lng | 20 - .../lib/lang/ja_spamfilter_config_list.lng | 5 - .../mail/lib/lang/ja_spamfilter_policy.lng | 38 - .../lib/lang/ja_spamfilter_policy_list.lng | 9 - .../mail/lib/lang/ja_spamfilter_users.lng | 8 - .../lib/lang/ja_spamfilter_users_list.lng | 10 - .../mail/lib/lang/ja_spamfilter_whitelist.lng | 9 - .../lib/lang/ja_spamfilter_whitelist_list.lng | 9 - .../ispconfig/interface/mail/lib/lang/nl.lng | 47 - .../interface/mail/lib/lang/nl_mail_alias.lng | 11 - .../mail/lib/lang/nl_mail_alias_list.lng | 8 - .../mail/lib/lang/nl_mail_aliasdomain.lng | 11 - .../lib/lang/nl_mail_aliasdomain_list.lng | 7 - .../mail/lib/lang/nl_mail_blacklist.lng | 9 - .../mail/lib/lang/nl_mail_blacklist_list.lng | 10 - .../mail/lib/lang/nl_mail_content_filter.lng | 9 - .../lib/lang/nl_mail_content_filter_list.lng | 8 - .../mail/lib/lang/nl_mail_domain.lng | 13 - .../mail/lib/lang/nl_mail_domain_catchall.lng | 9 - .../lib/lang/nl_mail_domain_catchall_list.lng | 9 - .../mail/lib/lang/nl_mail_domain_list.lng | 7 - .../mail/lib/lang/nl_mail_forward.lng | 7 - .../mail/lib/lang/nl_mail_forward_list.lng | 8 - .../interface/mail/lib/lang/nl_mail_get.lng | 16 - .../mail/lib/lang/nl_mail_get_list.lng | 9 - .../mail/lib/lang/nl_mail_relay_recipient.lng | 9 - .../lib/lang/nl_mail_relay_recipient_list.lng | 9 - .../mail/lib/lang/nl_mail_spamfilter.lng | 17 - .../mail/lib/lang/nl_mail_spamfilter_list.lng | 8 - .../mail/lib/lang/nl_mail_transport.lng | 10 - .../mail/lib/lang/nl_mail_transport_list.lng | 9 - .../interface/mail/lib/lang/nl_mail_user.lng | 39 - .../mail/lib/lang/nl_mail_user_filter.lng | 10 - .../lib/lang/nl_mail_user_filter_list.lng | 7 - .../mail/lib/lang/nl_mail_user_list.lng | 7 - .../mail/lib/lang/nl_mail_user_stats_list.lng | 8 - .../mail/lib/lang/nl_mail_whitelist.lng | 9 - .../mail/lib/lang/nl_mail_whitelist_list.lng | 10 - .../mail/lib/lang/nl_spamfilter_blacklist.lng | 9 - .../lib/lang/nl_spamfilter_blacklist_list.lng | 9 - .../mail/lib/lang/nl_spamfilter_config.lng | 20 - .../lib/lang/nl_spamfilter_config_list.lng | 5 - .../mail/lib/lang/nl_spamfilter_policy.lng | 38 - .../lib/lang/nl_spamfilter_policy_list.lng | 9 - .../mail/lib/lang/nl_spamfilter_users.lng | 8 - .../lib/lang/nl_spamfilter_users_list.lng | 10 - .../mail/lib/lang/nl_spamfilter_whitelist.lng | 9 - .../lib/lang/nl_spamfilter_whitelist_list.lng | 9 - .../ispconfig/interface/mail/lib/lang/pl.lng | 47 - .../interface/mail/lib/lang/pl_mail_alias.lng | 11 - .../mail/lib/lang/pl_mail_alias_list.lng | 8 - .../mail/lib/lang/pl_mail_aliasdomain.lng | 11 - .../lib/lang/pl_mail_aliasdomain_list.lng | 7 - .../mail/lib/lang/pl_mail_blacklist.lng | 9 - .../mail/lib/lang/pl_mail_blacklist_list.lng | 10 - .../mail/lib/lang/pl_mail_content_filter.lng | 9 - .../lib/lang/pl_mail_content_filter_list.lng | 8 - .../mail/lib/lang/pl_mail_domain.lng | 13 - .../mail/lib/lang/pl_mail_domain_catchall.lng | 9 - .../lib/lang/pl_mail_domain_catchall_list.lng | 9 - .../mail/lib/lang/pl_mail_domain_list.lng | 7 - .../mail/lib/lang/pl_mail_forward.lng | 7 - .../mail/lib/lang/pl_mail_forward_list.lng | 8 - .../interface/mail/lib/lang/pl_mail_get.lng | 16 - .../mail/lib/lang/pl_mail_get_list.lng | 9 - .../mail/lib/lang/pl_mail_relay_recipient.lng | 9 - .../lib/lang/pl_mail_relay_recipient_list.lng | 9 - .../mail/lib/lang/pl_mail_spamfilter.lng | 17 - .../mail/lib/lang/pl_mail_spamfilter_list.lng | 8 - .../mail/lib/lang/pl_mail_transport.lng | 10 - .../mail/lib/lang/pl_mail_transport_list.lng | 9 - .../interface/mail/lib/lang/pl_mail_user.lng | 39 - .../mail/lib/lang/pl_mail_user_filter.lng | 10 - .../lib/lang/pl_mail_user_filter_list.lng | 7 - .../mail/lib/lang/pl_mail_user_list.lng | 7 - .../mail/lib/lang/pl_mail_user_stats_list.lng | 8 - .../mail/lib/lang/pl_mail_whitelist.lng | 9 - .../mail/lib/lang/pl_mail_whitelist_list.lng | 10 - .../mail/lib/lang/pl_spamfilter_blacklist.lng | 9 - .../lib/lang/pl_spamfilter_blacklist_list.lng | 9 - .../mail/lib/lang/pl_spamfilter_config.lng | 20 - .../lib/lang/pl_spamfilter_config_list.lng | 5 - .../mail/lib/lang/pl_spamfilter_policy.lng | 38 - .../lib/lang/pl_spamfilter_policy_list.lng | 9 - .../mail/lib/lang/pl_spamfilter_users.lng | 8 - .../lib/lang/pl_spamfilter_users_list.lng | 10 - .../mail/lib/lang/pl_spamfilter_whitelist.lng | 9 - .../lib/lang/pl_spamfilter_whitelist_list.lng | 9 - .../ispconfig/interface/mail/lib/lang/pt.lng | 48 - .../interface/mail/lib/lang/pt_mail_alias.lng | 12 - .../mail/lib/lang/pt_mail_alias_list.lng | 9 - .../mail/lib/lang/pt_mail_aliasdomain.lng | 12 - .../lib/lang/pt_mail_aliasdomain_list.lng | 8 - .../mail/lib/lang/pt_mail_blacklist.lng | 10 - .../mail/lib/lang/pt_mail_blacklist_list.lng | 11 - .../mail/lib/lang/pt_mail_content_filter.lng | 10 - .../lib/lang/pt_mail_content_filter_list.lng | 9 - .../mail/lib/lang/pt_mail_domain.lng | 14 - .../mail/lib/lang/pt_mail_domain_catchall.lng | 10 - .../lib/lang/pt_mail_domain_catchall_list.lng | 10 - .../mail/lib/lang/pt_mail_domain_list.lng | 8 - .../mail/lib/lang/pt_mail_forward.lng | 8 - .../mail/lib/lang/pt_mail_forward_list.lng | 9 - .../interface/mail/lib/lang/pt_mail_get.lng | 17 - .../mail/lib/lang/pt_mail_get_list.lng | 10 - .../mail/lib/lang/pt_mail_relay_recipient.lng | 10 - .../lib/lang/pt_mail_relay_recipient_list.lng | 10 - .../mail/lib/lang/pt_mail_spamfilter.lng | 18 - .../mail/lib/lang/pt_mail_spamfilter_list.lng | 9 - .../mail/lib/lang/pt_mail_transport.lng | 11 - .../mail/lib/lang/pt_mail_transport_list.lng | 10 - .../interface/mail/lib/lang/pt_mail_user.lng | 40 - .../mail/lib/lang/pt_mail_user_filter.lng | 11 - .../lib/lang/pt_mail_user_filter_list.lng | 8 - .../mail/lib/lang/pt_mail_user_list.lng | 8 - .../mail/lib/lang/pt_mail_user_stats_list.lng | 9 - .../mail/lib/lang/pt_mail_whitelist.lng | 10 - .../mail/lib/lang/pt_mail_whitelist_list.lng | 11 - .../mail/lib/lang/pt_spamfilter_blacklist.lng | 10 - .../lib/lang/pt_spamfilter_blacklist_list.lng | 10 - .../mail/lib/lang/pt_spamfilter_config.lng | 21 - .../lib/lang/pt_spamfilter_config_list.lng | 6 - .../mail/lib/lang/pt_spamfilter_policy.lng | 39 - .../lib/lang/pt_spamfilter_policy_list.lng | 10 - .../mail/lib/lang/pt_spamfilter_users.lng | 9 - .../lib/lang/pt_spamfilter_users_list.lng | 11 - .../mail/lib/lang/pt_spamfilter_whitelist.lng | 10 - .../lib/lang/pt_spamfilter_whitelist_list.lng | 10 - .../ispconfig/interface/mail/lib/lang/ro.lng | 47 - .../interface/mail/lib/lang/ro_mail_alias.lng | 11 - .../mail/lib/lang/ro_mail_alias_list.lng | 8 - .../mail/lib/lang/ro_mail_aliasdomain.lng | 11 - .../lib/lang/ro_mail_aliasdomain_list.lng | 8 - .../mail/lib/lang/ro_mail_blacklist.lng | 9 - .../mail/lib/lang/ro_mail_blacklist_list.lng | 10 - .../mail/lib/lang/ro_mail_content_filter.lng | 9 - .../lib/lang/ro_mail_content_filter_list.lng | 8 - .../mail/lib/lang/ro_mail_domain.lng | 13 - .../mail/lib/lang/ro_mail_domain_catchall.lng | 9 - .../lib/lang/ro_mail_domain_catchall_list.lng | 9 - .../mail/lib/lang/ro_mail_domain_list.lng | 7 - .../mail/lib/lang/ro_mail_forward.lng | 7 - .../mail/lib/lang/ro_mail_forward_list.lng | 8 - .../interface/mail/lib/lang/ro_mail_get.lng | 16 - .../mail/lib/lang/ro_mail_get_list.lng | 9 - .../mail/lib/lang/ro_mail_relay_recipient.lng | 9 - .../lib/lang/ro_mail_relay_recipient_list.lng | 9 - .../mail/lib/lang/ro_mail_spamfilter.lng | 17 - .../mail/lib/lang/ro_mail_spamfilter_list.lng | 8 - .../mail/lib/lang/ro_mail_transport.lng | 10 - .../mail/lib/lang/ro_mail_transport_list.lng | 9 - .../interface/mail/lib/lang/ro_mail_user.lng | 39 - .../mail/lib/lang/ro_mail_user_filter.lng | 10 - .../lib/lang/ro_mail_user_filter_list.lng | 7 - .../mail/lib/lang/ro_mail_user_list.lng | 7 - .../mail/lib/lang/ro_mail_user_stats_list.lng | 8 - .../mail/lib/lang/ro_mail_whitelist.lng | 9 - .../mail/lib/lang/ro_mail_whitelist_list.lng | 10 - .../mail/lib/lang/ro_spamfilter_blacklist.lng | 9 - .../lib/lang/ro_spamfilter_blacklist_list.lng | 9 - .../mail/lib/lang/ro_spamfilter_config.lng | 20 - .../lib/lang/ro_spamfilter_config_list.lng | 5 - .../mail/lib/lang/ro_spamfilter_policy.lng | 38 - .../lib/lang/ro_spamfilter_policy_list.lng | 9 - .../mail/lib/lang/ro_spamfilter_users.lng | 8 - .../lib/lang/ro_spamfilter_users_list.lng | 10 - .../mail/lib/lang/ro_spamfilter_whitelist.lng | 9 - .../lib/lang/ro_spamfilter_whitelist_list.lng | 9 - .../ispconfig/interface/mail/lib/lang/ru.lng | 48 - .../interface/mail/lib/lang/ru_mail_alias.lng | 12 - .../mail/lib/lang/ru_mail_alias_list.lng | 9 - .../mail/lib/lang/ru_mail_aliasdomain.lng | 12 - .../lib/lang/ru_mail_aliasdomain_list.lng | 8 - .../mail/lib/lang/ru_mail_blacklist.lng | 10 - .../mail/lib/lang/ru_mail_blacklist_list.lng | 11 - .../mail/lib/lang/ru_mail_content_filter.lng | 10 - .../lib/lang/ru_mail_content_filter_list.lng | 9 - .../mail/lib/lang/ru_mail_domain.lng | 14 - .../mail/lib/lang/ru_mail_domain_catchall.lng | 10 - .../lib/lang/ru_mail_domain_catchall_list.lng | 10 - .../mail/lib/lang/ru_mail_domain_list.lng | 8 - .../mail/lib/lang/ru_mail_forward.lng | 8 - .../mail/lib/lang/ru_mail_forward_list.lng | 9 - .../interface/mail/lib/lang/ru_mail_get.lng | 17 - .../mail/lib/lang/ru_mail_get_list.lng | 10 - .../mail/lib/lang/ru_mail_relay_recipient.lng | 10 - .../lib/lang/ru_mail_relay_recipient_list.lng | 10 - .../mail/lib/lang/ru_mail_spamfilter.lng | 18 - .../mail/lib/lang/ru_mail_spamfilter_list.lng | 9 - .../mail/lib/lang/ru_mail_transport.lng | 11 - .../mail/lib/lang/ru_mail_transport_list.lng | 10 - .../interface/mail/lib/lang/ru_mail_user.lng | 42 - .../mail/lib/lang/ru_mail_user_filter.lng | 11 - .../lib/lang/ru_mail_user_filter_list.lng | 8 - .../mail/lib/lang/ru_mail_user_list.lng | 8 - .../mail/lib/lang/ru_mail_user_stats_list.lng | 9 - .../mail/lib/lang/ru_mail_whitelist.lng | 10 - .../mail/lib/lang/ru_mail_whitelist_list.lng | 11 - .../mail/lib/lang/ru_spamfilter_blacklist.lng | 10 - .../lib/lang/ru_spamfilter_blacklist_list.lng | 10 - .../mail/lib/lang/ru_spamfilter_config.lng | 21 - .../lib/lang/ru_spamfilter_config_list.lng | 6 - .../mail/lib/lang/ru_spamfilter_policy.lng | 39 - .../lib/lang/ru_spamfilter_policy_list.lng | 10 - .../mail/lib/lang/ru_spamfilter_users.lng | 9 - .../lib/lang/ru_spamfilter_users_list.lng | 11 - .../mail/lib/lang/ru_spamfilter_whitelist.lng | 10 - .../lib/lang/ru_spamfilter_whitelist_list.lng | 10 - .../ispconfig/interface/mail/lib/lang/se.lng | 47 - .../interface/mail/lib/lang/se_mail_alias.lng | 11 - .../mail/lib/lang/se_mail_alias_list.lng | 8 - .../mail/lib/lang/se_mail_aliasdomain.lng | 11 - .../lib/lang/se_mail_aliasdomain_list.lng | 7 - .../mail/lib/lang/se_mail_blacklist.lng | 9 - .../mail/lib/lang/se_mail_blacklist_list.lng | 10 - .../mail/lib/lang/se_mail_content_filter.lng | 9 - .../lib/lang/se_mail_content_filter_list.lng | 8 - .../mail/lib/lang/se_mail_domain.lng | 13 - .../mail/lib/lang/se_mail_domain_catchall.lng | 9 - .../lib/lang/se_mail_domain_catchall_list.lng | 9 - .../mail/lib/lang/se_mail_domain_list.lng | 7 - .../mail/lib/lang/se_mail_forward.lng | 7 - .../mail/lib/lang/se_mail_forward_list.lng | 8 - .../interface/mail/lib/lang/se_mail_get.lng | 16 - .../mail/lib/lang/se_mail_get_list.lng | 9 - .../mail/lib/lang/se_mail_relay_recipient.lng | 9 - .../lib/lang/se_mail_relay_recipient_list.lng | 9 - .../mail/lib/lang/se_mail_spamfilter.lng | 17 - .../mail/lib/lang/se_mail_spamfilter_list.lng | 8 - .../mail/lib/lang/se_mail_transport.lng | 10 - .../mail/lib/lang/se_mail_transport_list.lng | 9 - .../interface/mail/lib/lang/se_mail_user.lng | 41 - .../mail/lib/lang/se_mail_user_filter.lng | 10 - .../lib/lang/se_mail_user_filter_list.lng | 7 - .../mail/lib/lang/se_mail_user_list.lng | 7 - .../mail/lib/lang/se_mail_user_stats_list.lng | 8 - .../mail/lib/lang/se_mail_whitelist.lng | 9 - .../mail/lib/lang/se_mail_whitelist_list.lng | 10 - .../mail/lib/lang/se_spamfilter_blacklist.lng | 9 - .../lib/lang/se_spamfilter_blacklist_list.lng | 9 - .../mail/lib/lang/se_spamfilter_config.lng | 20 - .../lib/lang/se_spamfilter_config_list.lng | 5 - .../mail/lib/lang/se_spamfilter_policy.lng | 38 - .../lib/lang/se_spamfilter_policy_list.lng | 9 - .../mail/lib/lang/se_spamfilter_users.lng | 8 - .../lib/lang/se_spamfilter_users_list.lng | 10 - .../mail/lib/lang/se_spamfilter_whitelist.lng | 9 - .../lib/lang/se_spamfilter_whitelist_list.lng | 9 - .../ispconfig/interface/mail/lib/lang/sk.lng | 47 - .../interface/mail/lib/lang/sk_mail_alias.lng | 11 - .../mail/lib/lang/sk_mail_alias_list.lng | 8 - .../mail/lib/lang/sk_mail_aliasdomain.lng | 11 - .../lib/lang/sk_mail_aliasdomain_list.lng | 7 - .../mail/lib/lang/sk_mail_blacklist.lng | 9 - .../mail/lib/lang/sk_mail_blacklist_list.lng | 10 - .../mail/lib/lang/sk_mail_content_filter.lng | 9 - .../lib/lang/sk_mail_content_filter_list.lng | 8 - .../mail/lib/lang/sk_mail_domain.lng | 13 - .../mail/lib/lang/sk_mail_domain_catchall.lng | 9 - .../lib/lang/sk_mail_domain_catchall_list.lng | 9 - .../mail/lib/lang/sk_mail_domain_list.lng | 7 - .../mail/lib/lang/sk_mail_forward.lng | 7 - .../mail/lib/lang/sk_mail_forward_list.lng | 8 - .../interface/mail/lib/lang/sk_mail_get.lng | 16 - .../mail/lib/lang/sk_mail_get_list.lng | 9 - .../mail/lib/lang/sk_mail_relay_recipient.lng | 9 - .../lib/lang/sk_mail_relay_recipient_list.lng | 9 - .../mail/lib/lang/sk_mail_spamfilter.lng | 17 - .../mail/lib/lang/sk_mail_spamfilter_list.lng | 8 - .../mail/lib/lang/sk_mail_transport.lng | 10 - .../mail/lib/lang/sk_mail_transport_list.lng | 9 - .../interface/mail/lib/lang/sk_mail_user.lng | 39 - .../mail/lib/lang/sk_mail_user_filter.lng | 10 - .../lib/lang/sk_mail_user_filter_list.lng | 7 - .../mail/lib/lang/sk_mail_user_list.lng | 7 - .../mail/lib/lang/sk_mail_user_stats_list.lng | 8 - .../mail/lib/lang/sk_mail_whitelist.lng | 9 - .../mail/lib/lang/sk_mail_whitelist_list.lng | 10 - .../mail/lib/lang/sk_spamfilter_blacklist.lng | 9 - .../lib/lang/sk_spamfilter_blacklist_list.lng | 9 - .../mail/lib/lang/sk_spamfilter_config.lng | 20 - .../lib/lang/sk_spamfilter_config_list.lng | 5 - .../mail/lib/lang/sk_spamfilter_policy.lng | 38 - .../lib/lang/sk_spamfilter_policy_list.lng | 9 - .../mail/lib/lang/sk_spamfilter_users.lng | 8 - .../lib/lang/sk_spamfilter_users_list.lng | 10 - .../mail/lib/lang/sk_spamfilter_whitelist.lng | 9 - .../lib/lang/sk_spamfilter_whitelist_list.lng | 9 - .../ispconfig/interface/mail/lib/lang/tr.lng | 47 - .../interface/mail/lib/lang/tr_mail_alias.lng | 11 - .../mail/lib/lang/tr_mail_alias_list.lng | 8 - .../mail/lib/lang/tr_mail_aliasdomain.lng | 11 - .../lib/lang/tr_mail_aliasdomain_list.lng | 7 - .../mail/lib/lang/tr_mail_blacklist.lng | 9 - .../mail/lib/lang/tr_mail_blacklist_list.lng | 10 - .../mail/lib/lang/tr_mail_content_filter.lng | 9 - .../lib/lang/tr_mail_content_filter_list.lng | 8 - .../mail/lib/lang/tr_mail_domain.lng | 13 - .../mail/lib/lang/tr_mail_domain_catchall.lng | 9 - .../lib/lang/tr_mail_domain_catchall_list.lng | 9 - .../mail/lib/lang/tr_mail_domain_list.lng | 7 - .../mail/lib/lang/tr_mail_forward.lng | 7 - .../mail/lib/lang/tr_mail_forward_list.lng | 8 - .../interface/mail/lib/lang/tr_mail_get.lng | 16 - .../mail/lib/lang/tr_mail_get_list.lng | 9 - .../mail/lib/lang/tr_mail_relay_recipient.lng | 9 - .../lib/lang/tr_mail_relay_recipient_list.lng | 9 - .../mail/lib/lang/tr_mail_spamfilter.lng | 17 - .../mail/lib/lang/tr_mail_spamfilter_list.lng | 8 - .../mail/lib/lang/tr_mail_transport.lng | 10 - .../mail/lib/lang/tr_mail_transport_list.lng | 9 - .../interface/mail/lib/lang/tr_mail_user.lng | 39 - .../mail/lib/lang/tr_mail_user_filter.lng | 10 - .../lib/lang/tr_mail_user_filter_list.lng | 7 - .../mail/lib/lang/tr_mail_user_list.lng | 7 - .../mail/lib/lang/tr_mail_user_stats_list.lng | 8 - .../mail/lib/lang/tr_mail_whitelist.lng | 9 - .../mail/lib/lang/tr_mail_whitelist_list.lng | 10 - .../mail/lib/lang/tr_spamfilter_blacklist.lng | 9 - .../lib/lang/tr_spamfilter_blacklist_list.lng | 9 - .../mail/lib/lang/tr_spamfilter_config.lng | 20 - .../lib/lang/tr_spamfilter_config_list.lng | 5 - .../mail/lib/lang/tr_spamfilter_policy.lng | 38 - .../lib/lang/tr_spamfilter_policy_list.lng | 9 - .../mail/lib/lang/tr_spamfilter_users.lng | 8 - .../lib/lang/tr_spamfilter_users_list.lng | 10 - .../mail/lib/lang/tr_spamfilter_whitelist.lng | 9 - .../lib/lang/tr_spamfilter_whitelist_list.lng | 9 - .../interface/mail/lib/module.conf.php | 125 - .../interface/mail/list/mail_alias.list.php | 79 - .../mail/list/mail_aliasdomain.list.php | 79 - .../mail/list/mail_blacklist.list.php | 95 - .../mail/list/mail_content_filter.list.php | 96 - .../interface/mail/list/mail_domain.list.php | 86 - .../mail/list/mail_domain_catchall.list.php | 79 - .../interface/mail/list/mail_forward.list.php | 79 - .../interface/mail/list/mail_get.list.php | 102 - .../mail/list/mail_relay_recipient.list.php | 85 - .../mail/list/mail_spamfilter.list.php | 85 - .../mail/list/mail_transport.list.php | 104 - .../interface/mail/list/mail_user.list.php | 78 - .../mail/list/mail_user_filter.list.php | 60 - .../mail/list/mail_user_stats.list.php | 60 - .../mail/list/mail_whitelist.list.php | 94 - .../mail/list/spamfilter_blacklist.list.php | 108 - .../mail/list/spamfilter_config.list.php | 60 - .../mail/list/spamfilter_policy.list.php | 116 - .../mail/list/spamfilter_users.list.php | 108 - .../mail/list/spamfilter_whitelist.list.php | 108 - .../interface/mail/mail_alias_del.php | 51 - .../interface/mail/mail_alias_edit.php | 145 - .../interface/mail/mail_alias_list.php | 26 - .../interface/mail/mail_aliasdomain_del.php | 51 - .../interface/mail/mail_aliasdomain_edit.php | 141 - .../interface/mail/mail_aliasdomain_list.php | 26 - .../interface/mail/mail_blacklist_del.php | 51 - .../interface/mail/mail_blacklist_edit.php | 114 - .../interface/mail/mail_blacklist_list.php | 24 - .../mail/mail_content_filter_del.php | 51 - .../mail/mail_content_filter_edit.php | 75 - .../mail/mail_content_filter_list.php | 26 - .../mail/mail_domain_catchall_del.php | 51 - .../mail/mail_domain_catchall_edit.php | 138 - .../mail/mail_domain_catchall_list.php | 26 - .../interface/mail/mail_domain_del.php | 92 - .../interface/mail/mail_domain_edit.php | 327 - .../interface/mail/mail_domain_list.php | 27 - .../interface/mail/mail_forward_del.php | 51 - .../interface/mail/mail_forward_edit.php | 141 - .../interface/mail/mail_forward_list.php | 26 - .../ispconfig/interface/mail/mail_get_del.php | 51 - .../interface/mail/mail_get_edit.php | 109 - .../interface/mail/mail_get_list.php | 26 - .../mail/mail_relay_recipient_del.php | 51 - .../mail/mail_relay_recipient_edit.php | 59 - .../mail/mail_relay_recipient_list.php | 24 - .../interface/mail/mail_spamfilter_del.php | 51 - .../interface/mail/mail_spamfilter_edit.php | 124 - .../interface/mail/mail_spamfilter_list.php | 23 - .../interface/mail/mail_transport_del.php | 51 - .../interface/mail/mail_transport_edit.php | 179 - .../interface/mail/mail_transport_list.php | 26 - .../interface/mail/mail_user_del.php | 66 - .../interface/mail/mail_user_edit.php | 328 - .../interface/mail/mail_user_filter_del.php | 83 - .../interface/mail/mail_user_filter_edit.php | 232 - .../interface/mail/mail_user_list.php | 44 - .../interface/mail/mail_user_stats.php | 63 - .../interface/mail/mail_whitelist_del.php | 51 - .../interface/mail/mail_whitelist_edit.php | 113 - .../interface/mail/mail_whitelist_list.php | 24 - .../mail/spamfilter_blacklist_del.php | 51 - .../mail/spamfilter_blacklist_edit.php | 118 - .../mail/spamfilter_blacklist_list.php | 24 - .../interface/mail/spamfilter_config_del.php | 51 - .../interface/mail/spamfilter_config_edit.php | 96 - .../interface/mail/spamfilter_config_list.php | 24 - .../interface/mail/spamfilter_policy_del.php | 51 - .../interface/mail/spamfilter_policy_edit.php | 95 - .../interface/mail/spamfilter_policy_list.php | 24 - .../interface/mail/spamfilter_users_del.php | 51 - .../interface/mail/spamfilter_users_edit.php | 111 - .../interface/mail/spamfilter_users_list.php | 24 - .../mail/spamfilter_whitelist_del.php | 51 - .../mail/spamfilter_whitelist_edit.php | 119 - .../mail/spamfilter_whitelist_list.php | 24 - .../mail/templates/mail_alias_edit.htm | 39 - .../mail/templates/mail_alias_list.htm | 57 - .../mail/templates/mail_aliasdomain_edit.htm | 37 - .../mail/templates/mail_aliasdomain_list.htm | 57 - .../mail/templates/mail_blacklist_edit.htm | 41 - .../mail/templates/mail_blacklist_list.htm | 60 - .../templates/mail_content_filter_edit.htm | 50 - .../templates/mail_content_filter_list.htm | 60 - .../templates/mail_domain_catchall_edit.htm | 38 - .../templates/mail_domain_catchall_list.htm | 57 - .../mail/templates/mail_domain_edit.htm | 67 - .../mail/templates/mail_domain_list.htm | 57 - .../mail/templates/mail_forward_edit.htm | 37 - .../mail/templates/mail_forward_list.htm | 57 - .../mail/templates/mail_get_edit.htm | 54 - .../mail/templates/mail_get_list.htm | 63 - .../templates/mail_relay_recipient_edit.htm | 35 - .../templates/mail_relay_recipient_list.htm | 55 - .../mail/templates/mail_transport_edit.htm | 56 - .../mail/templates/mail_transport_list.htm | 63 - .../mail_user_autoresponder_edit.htm | 37 - .../templates/mail_user_custom_rules_edit.htm | 22 - .../mail/templates/mail_user_filter_edit.htm | 38 - .../mail/templates/mail_user_filter_list.htm | 45 - .../mail/templates/mail_user_list.htm | 58 - .../mail/templates/mail_user_mailbox_edit.htm | 67 - .../templates/mail_user_mailfilter_edit.htm | 26 - .../mail/templates/mail_user_stats_list.htm | 52 - .../mail/templates/mail_whitelist_edit.htm | 41 - .../mail/templates/mail_whitelist_list.htm | 60 - .../templates/spamfilter_blacklist_edit.htm | 49 - .../templates/spamfilter_blacklist_list.htm | 63 - .../spamfilter_config_getmail_edit.htm | 22 - .../mail/templates/spamfilter_config_list.htm | 51 - .../templates/spamfilter_config_mail_edit.htm | 66 - .../spamfilter_config_server_edit.htm | 38 - .../mail/templates/spamfilter_other_edit.htm | 80 - .../mail/templates/spamfilter_policy_edit.htm | 64 - .../mail/templates/spamfilter_policy_list.htm | 63 - .../templates/spamfilter_quarantine_edit.htm | 44 - .../templates/spamfilter_taglevel_edit.htm | 52 - .../mail/templates/spamfilter_users_edit.htm | 50 - .../mail/templates/spamfilter_users_list.htm | 63 - .../templates/spamfilter_whitelist_edit.htm | 49 - .../templates/spamfilter_whitelist_list.htm | 63 - .../ispconfig/interface/mail/webmailer.php | 68 - .../interface/monitor/datalog_del.php | 51 - .../interface/monitor/datalog_list.php | 64 - .../interface/monitor/lib/admin.conf.php | 2 - .../interface/monitor/lib/lang/bg.lng | 138 - .../monitor/lib/lang/bg_datalog_list.lng | 8 - .../monitor/lib/lang/bg_syslog_list.lng | 7 - .../interface/monitor/lib/lang/br.lng | 138 - .../monitor/lib/lang/br_datalog_list.lng | 8 - .../monitor/lib/lang/br_syslog_list.lng | 7 - .../interface/monitor/lib/lang/de.lng | 138 - .../monitor/lib/lang/de_datalog_list.lng | 8 - .../monitor/lib/lang/de_syslog_list.lng | 7 - .../interface/monitor/lib/lang/en.lng | 138 - .../monitor/lib/lang/en_datalog_list.lng | 8 - .../monitor/lib/lang/en_syslog_list.lng | 7 - .../interface/monitor/lib/lang/es.lng | 138 - .../monitor/lib/lang/es_datalog_list.lng | 8 - .../monitor/lib/lang/es_syslog_list.lng | 7 - .../interface/monitor/lib/lang/fi.lng | 138 - .../monitor/lib/lang/fi_datalog_list.lng | 8 - .../monitor/lib/lang/fi_syslog_list.lng | 7 - .../interface/monitor/lib/lang/fr.lng | 138 - .../monitor/lib/lang/fr_datalog_list.lng | 8 - .../monitor/lib/lang/fr_syslog_list.lng | 7 - .../interface/monitor/lib/lang/hu.lng | 138 - .../monitor/lib/lang/hu_datalog_list.lng | 8 - .../monitor/lib/lang/hu_syslog_list.lng | 7 - .../interface/monitor/lib/lang/it.lng | 138 - .../monitor/lib/lang/it_datalog_list.lng | 8 - .../monitor/lib/lang/it_syslog_list.lng | 7 - .../interface/monitor/lib/lang/ja.lng | 138 - .../monitor/lib/lang/ja_datalog_list.lng | 8 - .../monitor/lib/lang/ja_syslog_list.lng | 7 - .../interface/monitor/lib/lang/nl.lng | 138 - .../monitor/lib/lang/nl_datalog_list.lng | 8 - .../monitor/lib/lang/nl_syslog_list.lng | 7 - .../interface/monitor/lib/lang/pl.lng | 138 - .../monitor/lib/lang/pl_datalog_list.lng | 8 - .../monitor/lib/lang/pl_syslog_list.lng | 7 - .../interface/monitor/lib/lang/pt.lng | 139 - .../monitor/lib/lang/pt_datalog_list.lng | 9 - .../monitor/lib/lang/pt_syslog_list.lng | 8 - .../interface/monitor/lib/lang/ro.lng | 138 - .../monitor/lib/lang/ro_datalog_list.lng | 8 - .../monitor/lib/lang/ro_syslog_list.lng | 7 - .../interface/monitor/lib/lang/ru.lng | 139 - .../monitor/lib/lang/ru_datalog_list.lng | 9 - .../monitor/lib/lang/ru_syslog_list.lng | 7 - .../interface/monitor/lib/lang/se.lng | 138 - .../monitor/lib/lang/se_datalog_list.lng | 8 - .../monitor/lib/lang/se_syslog_list.lng | 7 - .../interface/monitor/lib/lang/sk.lng | 138 - .../monitor/lib/lang/sk_datalog_list.lng | 8 - .../monitor/lib/lang/sk_syslog_list.lng | 7 - .../interface/monitor/lib/lang/tr.lng | 138 - .../monitor/lib/lang/tr_datalog_list.lng | 8 - .../monitor/lib/lang/tr_syslog_list.lng | 7 - .../interface/monitor/lib/module.conf.php | 160 - .../interface/monitor/list/datalog.list.php | 91 - .../interface/monitor/list/log.list.php | 90 - .../ispconfig/interface/monitor/log_del.php | 44 - .../ispconfig/interface/monitor/log_list.php | 55 - .../ispconfig/interface/monitor/show_data.php | 139 - .../ispconfig/interface/monitor/show_log.php | 143 - .../interface/monitor/show_sys_state.php | 508 - .../monitor/templates/datalog_list.htm | 49 - .../interface/monitor/templates/show_data.htm | 12 - .../interface/monitor/templates/show_log.htm | 25 - .../monitor/templates/show_sys_state.htm | 25 - .../monitor/templates/syslog_list.htm | 56 - .../ispconfig/interface/monitor/tools.inc.php | 456 - .../mymodule/form/support_message.tform.php | 132 - .../interface/mymodule/lib/admin.conf.php | 7 - .../mymodule/lib/mymodule.config.php | 47 - .../mymodule/list/support_message.list.php | 63 - .../mymodule/support_message_del.php | 21 - .../mymodule/support_message_edit.php | 33 - .../mymodule/support_message_list.php | 24 - .../templates/support_message_edit.html | 14 - .../templates/support_message_view.html | 14 - interface/ispconfig/interface/nav.php | 102 - .../ispconfig/interface/remote/index.php | 15 - interface/ispconfig/interface/robots.txt | 2 - .../ispconfig/interface/sites/ajax_get_ip.php | 56 - .../ispconfig/interface/sites/cron_del.php | 64 - .../ispconfig/interface/sites/cron_edit.php | 221 - .../ispconfig/interface/sites/cron_list.php | 23 - .../interface/sites/database_del.php | 51 - .../interface/sites/database_edit.php | 338 - .../interface/sites/database_list.php | 73 - .../interface/sites/database_phpmyadmin.php | 70 - .../interface/sites/form/cron.tform.php | 189 - .../interface/sites/form/database.tform.php | 155 - .../interface/sites/form/ftp_user.tform.php | 253 - .../interface/sites/form/shell_user.tform.php | 196 - .../sites/form/web_aliasdomain.tform.php | 142 - .../interface/sites/form/web_domain.tform.php | 463 - .../sites/form/web_subdomain.tform.php | 136 - .../interface/sites/ftp_user_del.php | 51 - .../interface/sites/ftp_user_edit.php | 209 - .../interface/sites/ftp_user_list.php | 55 - .../interface/sites/lib/admin.conf.php | 2 - .../ispconfig/interface/sites/lib/lang/bg.lng | 22 - .../interface/sites/lib/lang/bg_cron.lng | 21 - .../interface/sites/lib/lang/bg_cron_list.lng | 12 - .../interface/sites/lib/lang/bg_database.lng | 25 - .../sites/lib/lang/bg_database_list.lng | 8 - .../interface/sites/lib/lang/bg_ftp_user.lng | 27 - .../sites/lib/lang/bg_ftp_user_list.lng | 8 - .../sites/lib/lang/bg_shell_user.lng | 22 - .../sites/lib/lang/bg_shell_user_list.lng | 8 - .../lib/lang/bg_web_aliasdomain_list.lng | 11 - .../sites/lib/lang/bg_web_domain.lng | 60 - .../sites/lib/lang/bg_web_domain_list.lng | 8 - .../lib/lang/bg_web_sites_stats_list.lng | 8 - .../sites/lib/lang/bg_web_subdomain.lng | 40 - .../sites/lib/lang/bg_web_subdomain_list.lng | 8 - .../ispconfig/interface/sites/lib/lang/br.lng | 22 - .../interface/sites/lib/lang/br_cron.lng | 21 - .../interface/sites/lib/lang/br_cron_list.lng | 12 - .../interface/sites/lib/lang/br_database.lng | 25 - .../sites/lib/lang/br_database_list.lng | 9 - .../interface/sites/lib/lang/br_ftp_user.lng | 27 - .../sites/lib/lang/br_ftp_user_list.lng | 8 - .../sites/lib/lang/br_shell_user.lng | 22 - .../sites/lib/lang/br_shell_user_list.lng | 8 - .../lib/lang/br_web_aliasdomain_list.lng | 11 - .../sites/lib/lang/br_web_domain.lng | 60 - .../sites/lib/lang/br_web_domain_list.lng | 8 - .../lib/lang/br_web_sites_stats_list.lng | 8 - .../sites/lib/lang/br_web_subdomain.lng | 40 - .../sites/lib/lang/br_web_subdomain_list.lng | 8 - .../ispconfig/interface/sites/lib/lang/de.lng | 22 - .../interface/sites/lib/lang/de_cron.lng | 21 - .../interface/sites/lib/lang/de_cron_list.lng | 12 - .../interface/sites/lib/lang/de_database.lng | 25 - .../sites/lib/lang/de_database_list.lng | 8 - .../interface/sites/lib/lang/de_ftp_user.lng | 27 - .../sites/lib/lang/de_ftp_user_list.lng | 8 - .../sites/lib/lang/de_shell_user.lng | 22 - .../sites/lib/lang/de_shell_user_list.lng | 8 - .../lib/lang/de_web_aliasdomain_list.lng | 11 - .../sites/lib/lang/de_web_domain.lng | 60 - .../sites/lib/lang/de_web_domain_list.lng | 8 - .../lib/lang/de_web_sites_stats_list.lng | 8 - .../sites/lib/lang/de_web_subdomain.lng | 40 - .../sites/lib/lang/de_web_subdomain_list.lng | 8 - .../ispconfig/interface/sites/lib/lang/en.lng | 22 - .../interface/sites/lib/lang/en_cron.lng | 21 - .../interface/sites/lib/lang/en_cron_list.lng | 12 - .../interface/sites/lib/lang/en_database.lng | 25 - .../sites/lib/lang/en_database_list.lng | 9 - .../interface/sites/lib/lang/en_ftp_user.lng | 28 - .../sites/lib/lang/en_ftp_user_list.lng | 8 - .../sites/lib/lang/en_shell_user.lng | 23 - .../sites/lib/lang/en_shell_user_list.lng | 8 - .../lib/lang/en_web_aliasdomain_list.lng | 11 - .../sites/lib/lang/en_web_domain.lng | 61 - .../sites/lib/lang/en_web_domain_list.lng | 8 - .../lib/lang/en_web_sites_stats_list.lng | 8 - .../sites/lib/lang/en_web_subdomain.lng | 40 - .../sites/lib/lang/en_web_subdomain_list.lng | 8 - .../ispconfig/interface/sites/lib/lang/es.lng | 22 - .../interface/sites/lib/lang/es_cron.lng | 21 - .../interface/sites/lib/lang/es_cron_list.lng | 12 - .../interface/sites/lib/lang/es_database.lng | 25 - .../sites/lib/lang/es_database_list.lng | 8 - .../interface/sites/lib/lang/es_ftp_user.lng | 27 - .../sites/lib/lang/es_ftp_user_list.lng | 8 - .../sites/lib/lang/es_shell_user.lng | 22 - .../sites/lib/lang/es_shell_user_list.lng | 8 - .../lib/lang/es_web_aliasdomain_list.lng | 11 - .../sites/lib/lang/es_web_domain.lng | 60 - .../sites/lib/lang/es_web_domain_list.lng | 8 - .../lib/lang/es_web_sites_stats_list.lng | 8 - .../sites/lib/lang/es_web_subdomain.lng | 40 - .../sites/lib/lang/es_web_subdomain_list.lng | 8 - .../ispconfig/interface/sites/lib/lang/fi.lng | 22 - .../interface/sites/lib/lang/fi_cron.lng | 21 - .../interface/sites/lib/lang/fi_cron_list.lng | 12 - .../interface/sites/lib/lang/fi_database.lng | 25 - .../sites/lib/lang/fi_database_list.lng | 8 - .../interface/sites/lib/lang/fi_ftp_user.lng | 27 - .../sites/lib/lang/fi_ftp_user_list.lng | 8 - .../sites/lib/lang/fi_shell_user.lng | 22 - .../sites/lib/lang/fi_shell_user_list.lng | 8 - .../lib/lang/fi_web_aliasdomain_list.lng | 11 - .../sites/lib/lang/fi_web_domain.lng | 60 - .../sites/lib/lang/fi_web_domain_list.lng | 8 - .../lib/lang/fi_web_sites_stats_list.lng | 8 - .../sites/lib/lang/fi_web_subdomain.lng | 40 - .../sites/lib/lang/fi_web_subdomain_list.lng | 8 - .../ispconfig/interface/sites/lib/lang/fr.lng | 22 - .../interface/sites/lib/lang/fr_cron.lng | 21 - .../interface/sites/lib/lang/fr_cron_list.lng | 12 - .../interface/sites/lib/lang/fr_database.lng | 25 - .../sites/lib/lang/fr_database_list.lng | 8 - .../interface/sites/lib/lang/fr_ftp_user.lng | 27 - .../sites/lib/lang/fr_ftp_user_list.lng | 8 - .../sites/lib/lang/fr_shell_user.lng | 22 - .../sites/lib/lang/fr_shell_user_list.lng | 8 - .../lib/lang/fr_web_aliasdomain_list.lng | 11 - .../sites/lib/lang/fr_web_domain.lng | 60 - .../sites/lib/lang/fr_web_domain_list.lng | 8 - .../lib/lang/fr_web_sites_stats_list.lng | 8 - .../sites/lib/lang/fr_web_subdomain.lng | 40 - .../sites/lib/lang/fr_web_subdomain_list.lng | 8 - .../ispconfig/interface/sites/lib/lang/hu.lng | 22 - .../interface/sites/lib/lang/hu_cron.lng | 21 - .../interface/sites/lib/lang/hu_cron_list.lng | 12 - .../interface/sites/lib/lang/hu_database.lng | 25 - .../sites/lib/lang/hu_database_list.lng | 8 - .../interface/sites/lib/lang/hu_ftp_user.lng | 27 - .../sites/lib/lang/hu_ftp_user_list.lng | 8 - .../sites/lib/lang/hu_shell_user.lng | 22 - .../sites/lib/lang/hu_shell_user_list.lng | 8 - .../lib/lang/hu_web_aliasdomain_list.lng | 11 - .../sites/lib/lang/hu_web_domain.lng | 60 - .../sites/lib/lang/hu_web_domain_list.lng | 8 - .../lib/lang/hu_web_sites_stats_list.lng | 8 - .../sites/lib/lang/hu_web_subdomain.lng | 40 - .../sites/lib/lang/hu_web_subdomain_list.lng | 8 - .../ispconfig/interface/sites/lib/lang/it.lng | 22 - .../interface/sites/lib/lang/it_cron.lng | 21 - .../interface/sites/lib/lang/it_cron_list.lng | 12 - .../interface/sites/lib/lang/it_database.lng | 25 - .../sites/lib/lang/it_database_list.lng | 8 - .../interface/sites/lib/lang/it_ftp_user.lng | 27 - .../sites/lib/lang/it_ftp_user_list.lng | 8 - .../sites/lib/lang/it_shell_user.lng | 22 - .../sites/lib/lang/it_shell_user_list.lng | 8 - .../lib/lang/it_web_aliasdomain_list.lng | 11 - .../sites/lib/lang/it_web_domain.lng | 60 - .../sites/lib/lang/it_web_domain_list.lng | 8 - .../lib/lang/it_web_sites_stats_list.lng | 8 - .../sites/lib/lang/it_web_subdomain.lng | 40 - .../sites/lib/lang/it_web_subdomain_list.lng | 8 - .../ispconfig/interface/sites/lib/lang/ja.lng | 22 - .../interface/sites/lib/lang/ja_cron.lng | 21 - .../interface/sites/lib/lang/ja_cron_list.lng | 12 - .../interface/sites/lib/lang/ja_database.lng | 25 - .../sites/lib/lang/ja_database_list.lng | 8 - .../interface/sites/lib/lang/ja_ftp_user.lng | 27 - .../sites/lib/lang/ja_ftp_user_list.lng | 8 - .../sites/lib/lang/ja_shell_user.lng | 22 - .../sites/lib/lang/ja_shell_user_list.lng | 8 - .../lib/lang/ja_web_aliasdomain_list.lng | 11 - .../sites/lib/lang/ja_web_domain.lng | 60 - .../sites/lib/lang/ja_web_domain_list.lng | 8 - .../lib/lang/ja_web_sites_stats_list.lng | 8 - .../sites/lib/lang/ja_web_subdomain.lng | 40 - .../sites/lib/lang/ja_web_subdomain_list.lng | 8 - .../ispconfig/interface/sites/lib/lang/nl.lng | 22 - .../interface/sites/lib/lang/nl_cron.lng | 21 - .../interface/sites/lib/lang/nl_cron_list.lng | 12 - .../interface/sites/lib/lang/nl_database.lng | 25 - .../sites/lib/lang/nl_database_list.lng | 8 - .../interface/sites/lib/lang/nl_ftp_user.lng | 27 - .../sites/lib/lang/nl_ftp_user_list.lng | 8 - .../sites/lib/lang/nl_shell_user.lng | 22 - .../sites/lib/lang/nl_shell_user_list.lng | 8 - .../lib/lang/nl_web_aliasdomain_list.lng | 11 - .../sites/lib/lang/nl_web_domain.lng | 60 - .../sites/lib/lang/nl_web_domain_list.lng | 8 - .../lib/lang/nl_web_sites_stats_list.lng | 8 - .../sites/lib/lang/nl_web_subdomain.lng | 40 - .../sites/lib/lang/nl_web_subdomain_list.lng | 8 - .../ispconfig/interface/sites/lib/lang/pl.lng | 22 - .../interface/sites/lib/lang/pl_cron.lng | 21 - .../interface/sites/lib/lang/pl_cron_list.lng | 12 - .../interface/sites/lib/lang/pl_database.lng | 25 - .../sites/lib/lang/pl_database_list.lng | 8 - .../interface/sites/lib/lang/pl_ftp_user.lng | 27 - .../sites/lib/lang/pl_ftp_user_list.lng | 8 - .../sites/lib/lang/pl_shell_user.lng | 22 - .../sites/lib/lang/pl_shell_user_list.lng | 8 - .../lib/lang/pl_web_aliasdomain_list.lng | 11 - .../sites/lib/lang/pl_web_domain.lng | 60 - .../sites/lib/lang/pl_web_domain_list.lng | 8 - .../lib/lang/pl_web_sites_stats_list.lng | 8 - .../sites/lib/lang/pl_web_subdomain.lng | 40 - .../sites/lib/lang/pl_web_subdomain_list.lng | 8 - .../ispconfig/interface/sites/lib/lang/pt.lng | 23 - .../interface/sites/lib/lang/pt_cron.lng | 22 - .../interface/sites/lib/lang/pt_cron_list.lng | 13 - .../interface/sites/lib/lang/pt_database.lng | 26 - .../sites/lib/lang/pt_database_list.lng | 9 - .../interface/sites/lib/lang/pt_ftp_user.lng | 28 - .../sites/lib/lang/pt_ftp_user_list.lng | 9 - .../sites/lib/lang/pt_shell_user.lng | 23 - .../sites/lib/lang/pt_shell_user_list.lng | 9 - .../lib/lang/pt_web_aliasdomain_list.lng | 12 - .../sites/lib/lang/pt_web_domain.lng | 61 - .../sites/lib/lang/pt_web_domain_list.lng | 9 - .../lib/lang/pt_web_sites_stats_list.lng | 9 - .../sites/lib/lang/pt_web_subdomain.lng | 41 - .../sites/lib/lang/pt_web_subdomain_list.lng | 9 - .../ispconfig/interface/sites/lib/lang/ro.lng | 22 - .../interface/sites/lib/lang/ro_cron.lng | 21 - .../interface/sites/lib/lang/ro_cron_list.lng | 12 - .../interface/sites/lib/lang/ro_database.lng | 25 - .../sites/lib/lang/ro_database_list.lng | 8 - .../interface/sites/lib/lang/ro_ftp_user.lng | 27 - .../sites/lib/lang/ro_ftp_user_list.lng | 8 - .../sites/lib/lang/ro_shell_user.lng | 22 - .../sites/lib/lang/ro_shell_user_list.lng | 8 - .../lib/lang/ro_web_aliasdomain_list.lng | 11 - .../sites/lib/lang/ro_web_domain.lng | 60 - .../sites/lib/lang/ro_web_domain_list.lng | 8 - .../lib/lang/ro_web_sites_stats_list.lng | 8 - .../sites/lib/lang/ro_web_subdomain.lng | 40 - .../sites/lib/lang/ro_web_subdomain_list.lng | 8 - .../ispconfig/interface/sites/lib/lang/ru.lng | 23 - .../interface/sites/lib/lang/ru_cron.lng | 22 - .../interface/sites/lib/lang/ru_cron_list.lng | 13 - .../interface/sites/lib/lang/ru_database.lng | 26 - .../sites/lib/lang/ru_database_list.lng | 9 - .../interface/sites/lib/lang/ru_ftp_user.lng | 28 - .../sites/lib/lang/ru_ftp_user_list.lng | 9 - .../sites/lib/lang/ru_shell_user.lng | 23 - .../sites/lib/lang/ru_shell_user_list.lng | 9 - .../lib/lang/ru_web_aliasdomain_list.lng | 12 - .../sites/lib/lang/ru_web_domain.lng | 61 - .../sites/lib/lang/ru_web_domain_list.lng | 9 - .../lib/lang/ru_web_sites_stats_list.lng | 9 - .../sites/lib/lang/ru_web_subdomain.lng | 41 - .../sites/lib/lang/ru_web_subdomain_list.lng | 9 - .../ispconfig/interface/sites/lib/lang/se.lng | 22 - .../interface/sites/lib/lang/se_cron.lng | 21 - .../interface/sites/lib/lang/se_cron_list.lng | 12 - .../interface/sites/lib/lang/se_database.lng | 25 - .../sites/lib/lang/se_database_list.lng | 8 - .../interface/sites/lib/lang/se_ftp_user.lng | 27 - .../sites/lib/lang/se_ftp_user_list.lng | 8 - .../sites/lib/lang/se_shell_user.lng | 22 - .../sites/lib/lang/se_shell_user_list.lng | 8 - .../lib/lang/se_web_aliasdomain_list.lng | 11 - .../sites/lib/lang/se_web_domain.lng | 60 - .../sites/lib/lang/se_web_domain_list.lng | 8 - .../lib/lang/se_web_sites_stats_list.lng | 8 - .../sites/lib/lang/se_web_subdomain.lng | 40 - .../sites/lib/lang/se_web_subdomain_list.lng | 8 - .../ispconfig/interface/sites/lib/lang/sk.lng | 22 - .../interface/sites/lib/lang/sk_cron.lng | 21 - .../interface/sites/lib/lang/sk_cron_list.lng | 12 - .../interface/sites/lib/lang/sk_database.lng | 25 - .../sites/lib/lang/sk_database_list.lng | 8 - .../interface/sites/lib/lang/sk_ftp_user.lng | 27 - .../sites/lib/lang/sk_ftp_user_list.lng | 8 - .../sites/lib/lang/sk_shell_user.lng | 22 - .../sites/lib/lang/sk_shell_user_list.lng | 8 - .../lib/lang/sk_web_aliasdomain_list.lng | 11 - .../sites/lib/lang/sk_web_domain.lng | 60 - .../sites/lib/lang/sk_web_domain_list.lng | 8 - .../lib/lang/sk_web_sites_stats_list.lng | 8 - .../sites/lib/lang/sk_web_subdomain.lng | 40 - .../sites/lib/lang/sk_web_subdomain_list.lng | 8 - .../ispconfig/interface/sites/lib/lang/tr.lng | 22 - .../interface/sites/lib/lang/tr_cron.lng | 21 - .../interface/sites/lib/lang/tr_cron_list.lng | 12 - .../interface/sites/lib/lang/tr_database.lng | 25 - .../sites/lib/lang/tr_database_list.lng | 8 - .../interface/sites/lib/lang/tr_ftp_user.lng | 27 - .../sites/lib/lang/tr_ftp_user_list.lng | 8 - .../sites/lib/lang/tr_shell_user.lng | 22 - .../sites/lib/lang/tr_shell_user_list.lng | 8 - .../lib/lang/tr_web_aliasdomain_list.lng | 11 - .../sites/lib/lang/tr_web_domain.lng | 60 - .../sites/lib/lang/tr_web_domain_list.lng | 8 - .../lib/lang/tr_web_sites_stats_list.lng | 8 - .../sites/lib/lang/tr_web_subdomain.lng | 40 - .../sites/lib/lang/tr_web_subdomain_list.lng | 8 - .../interface/sites/lib/module.conf.php | 113 - .../interface/sites/list/cron.list.php | 152 - .../interface/sites/list/database.list.php | 101 - .../interface/sites/list/ftp_user.list.php | 99 - .../interface/sites/list/shell_user.list.php | 99 - .../sites/list/web_aliasdomain.list.php | 99 - .../interface/sites/list/web_domain.list.php | 94 - .../sites/list/web_sites_stats.list.php | 60 - .../sites/list/web_subdomain.list.php | 99 - .../interface/sites/shell_user_del.php | 51 - .../interface/sites/shell_user_edit.php | 224 - .../interface/sites/shell_user_list.php | 55 - .../interface/sites/templates/cron_edit.htm | 68 - .../interface/sites/templates/cron_list.htm | 71 - .../sites/templates/database_edit.htm | 108 - .../sites/templates/database_list.htm | 64 - .../sites/templates/ftp_user_advanced.htm | 50 - .../templates/ftp_user_advanced_client.htm | 22 - .../sites/templates/ftp_user_edit.htm | 48 - .../sites/templates/ftp_user_list.htm | 59 - .../sites/templates/shell_user_advanced.htm | 34 - .../sites/templates/shell_user_edit.htm | 62 - .../sites/templates/shell_user_list.htm | 59 - .../sites/templates/web_aliasdomain_edit.htm | 50 - .../sites/templates/web_aliasdomain_list.htm | 59 - .../sites/templates/web_domain_advanced.htm | 41 - .../sites/templates/web_domain_edit.htm | 120 - .../sites/templates/web_domain_list.htm | 59 - .../sites/templates/web_domain_redirect.htm | 28 - .../sites/templates/web_domain_ssl.htm | 62 - .../sites/templates/web_domain_stats.htm | 22 - .../sites/templates/web_sites_stats_list.htm | 52 - .../sites/templates/web_subdomain_edit.htm | 42 - .../sites/templates/web_subdomain_list.htm | 60 - .../ispconfig/interface/sites/tools.inc.php | 126 - .../interface/sites/web_aliasdomain_del.php | 51 - .../interface/sites/web_aliasdomain_edit.php | 114 - .../interface/sites/web_aliasdomain_list.php | 55 - .../interface/sites/web_domain_del.php | 87 - .../interface/sites/web_domain_edit.php | 477 - .../interface/sites/web_domain_list.php | 59 - .../interface/sites/web_sites_stats.php | 64 - .../interface/sites/web_subdomain_del.php | 51 - .../interface/sites/web_subdomain_edit.php | 114 - .../interface/sites/web_subdomain_list.php | 55 - .../lib/lang/bg_strengthmeter.lng | 8 - .../lib/lang/br_strengthmeter.lng | 8 - .../lib/lang/de_strengthmeter.lng | 8 - .../lib/lang/en_strengthmeter.lng | 8 - .../lib/lang/es_strengthmeter.lng | 8 - .../lib/lang/fi_strengthmeter.lng | 8 - .../lib/lang/fr_strengthmeter.lng | 8 - .../lib/lang/hu_strengthmeter.lng | 8 - .../lib/lang/it_strengthmeter.lng | 8 - .../lib/lang/ja_strengthmeter.lng | 8 - .../lib/lang/nl_strengthmeter.lng | 8 - .../lib/lang/pl_strengthmeter.lng | 8 - .../lib/lang/ro_strengthmeter.lng | 8 - .../lib/lang/ru_strengthmeter.lng | 9 - .../lib/lang/se_strengthmeter.lng | 8 - .../lib/lang/sk_strengthmeter.lng | 8 - .../lib/lang/tr_strengthmeter.lng | 8 - interface/ispconfig/interface/temp/en.lng | 2131 ----- .../interface/themes/default/css/central.css | 32 - .../default/css/navigation/nav_side.css | 125 - .../themes/default/css/navigation/nav_top.css | 52 - .../themes/default/css/patches/central.css | 37 - .../themes/default/css/print/print_100.css | 31 - .../themes/default/css/screen/basemod.css | 118 - .../css/screen/basemod_2col_left_seo.css | 48 - .../themes/default/css/screen/content.css | 188 - .../default/css/screen/content_ispc.css | 822 -- .../default/css/screen/uni-form-generic.css | 136 - .../themes/default/css/screen/uni-form.css | 130 - .../interface/themes/default/header_logo.png | Bin 36266 -> 0 bytes .../themes/default/icons/flags/ad.png | Bin 643 -> 0 bytes .../themes/default/icons/flags/ae.png | Bin 408 -> 0 bytes .../themes/default/icons/flags/af.png | Bin 604 -> 0 bytes .../themes/default/icons/flags/ag.png | Bin 591 -> 0 bytes .../themes/default/icons/flags/ai.png | Bin 643 -> 0 bytes .../themes/default/icons/flags/al.png | Bin 600 -> 0 bytes .../themes/default/icons/flags/am.png | Bin 497 -> 0 bytes .../themes/default/icons/flags/an.png | Bin 488 -> 0 bytes .../themes/default/icons/flags/ao.png | Bin 428 -> 0 bytes .../themes/default/icons/flags/aq.png | Bin 575 -> 0 bytes .../themes/default/icons/flags/ar.png | Bin 506 -> 0 bytes .../themes/default/icons/flags/as.png | Bin 647 -> 0 bytes .../themes/default/icons/flags/at.png | Bin 403 -> 0 bytes .../themes/default/icons/flags/au.png | Bin 673 -> 0 bytes .../themes/default/icons/flags/aw.png | Bin 524 -> 0 bytes .../themes/default/icons/flags/ax.png | Bin 663 -> 0 bytes .../themes/default/icons/flags/az.png | Bin 589 -> 0 bytes .../themes/default/icons/flags/ba.png | Bin 593 -> 0 bytes .../themes/default/icons/flags/bb.png | Bin 585 -> 0 bytes .../themes/default/icons/flags/bd.png | Bin 504 -> 0 bytes .../themes/default/icons/flags/be.png | Bin 449 -> 0 bytes .../themes/default/icons/flags/bf.png | Bin 497 -> 0 bytes .../themes/default/icons/flags/bg.png | Bin 462 -> 0 bytes .../themes/default/icons/flags/bh.png | Bin 457 -> 0 bytes .../themes/default/icons/flags/bi.png | Bin 675 -> 0 bytes .../themes/default/icons/flags/bj.png | Bin 486 -> 0 bytes .../themes/default/icons/flags/bm.png | Bin 611 -> 0 bytes .../themes/default/icons/flags/bn.png | Bin 639 -> 0 bytes .../themes/default/icons/flags/bo.png | Bin 500 -> 0 bytes .../themes/default/icons/flags/br.png | Bin 593 -> 0 bytes .../themes/default/icons/flags/bs.png | Bin 526 -> 0 bytes .../themes/default/icons/flags/bt.png | Bin 631 -> 0 bytes .../themes/default/icons/flags/bv.png | Bin 512 -> 0 bytes .../themes/default/icons/flags/bw.png | Bin 443 -> 0 bytes .../themes/default/icons/flags/by.png | Bin 514 -> 0 bytes .../themes/default/icons/flags/bz.png | Bin 600 -> 0 bytes .../themes/default/icons/flags/ca.png | Bin 628 -> 0 bytes .../themes/default/icons/flags/catalonia.png | Bin 398 -> 0 bytes .../themes/default/icons/flags/cc.png | Bin 625 -> 0 bytes .../themes/default/icons/flags/cd.png | Bin 528 -> 0 bytes .../themes/default/icons/flags/cf.png | Bin 614 -> 0 bytes .../themes/default/icons/flags/cg.png | Bin 521 -> 0 bytes .../themes/default/icons/flags/ch.png | Bin 367 -> 0 bytes .../themes/default/icons/flags/ci.png | Bin 453 -> 0 bytes .../themes/default/icons/flags/ck.png | Bin 586 -> 0 bytes .../themes/default/icons/flags/cl.png | Bin 450 -> 0 bytes .../themes/default/icons/flags/cm.png | Bin 525 -> 0 bytes .../themes/default/icons/flags/cn.png | Bin 472 -> 0 bytes .../themes/default/icons/flags/co.png | Bin 483 -> 0 bytes .../themes/default/icons/flags/cr.png | Bin 477 -> 0 bytes .../themes/default/icons/flags/cs.png | Bin 439 -> 0 bytes .../themes/default/icons/flags/cu.png | Bin 563 -> 0 bytes .../themes/default/icons/flags/cv.png | Bin 529 -> 0 bytes .../themes/default/icons/flags/cx.png | Bin 608 -> 0 bytes .../themes/default/icons/flags/cy.png | Bin 428 -> 0 bytes .../themes/default/icons/flags/cz.png | Bin 476 -> 0 bytes .../themes/default/icons/flags/de.png | Bin 545 -> 0 bytes .../themes/default/icons/flags/dj.png | Bin 572 -> 0 bytes .../themes/default/icons/flags/dk.png | Bin 495 -> 0 bytes .../themes/default/icons/flags/dm.png | Bin 620 -> 0 bytes .../themes/default/icons/flags/do.png | Bin 508 -> 0 bytes .../themes/default/icons/flags/dz.png | Bin 582 -> 0 bytes .../themes/default/icons/flags/ec.png | Bin 500 -> 0 bytes .../themes/default/icons/flags/ee.png | Bin 429 -> 0 bytes .../themes/default/icons/flags/eg.png | Bin 465 -> 0 bytes .../themes/default/icons/flags/eh.png | Bin 508 -> 0 bytes .../themes/default/icons/flags/england.png | Bin 496 -> 0 bytes .../themes/default/icons/flags/er.png | Bin 653 -> 0 bytes .../themes/default/icons/flags/es.png | Bin 469 -> 0 bytes .../themes/default/icons/flags/et.png | Bin 592 -> 0 bytes .../default/icons/flags/europeanunion.png | Bin 479 -> 0 bytes .../themes/default/icons/flags/fam.png | Bin 532 -> 0 bytes .../themes/default/icons/flags/fi.png | Bin 489 -> 0 bytes .../themes/default/icons/flags/fj.png | Bin 610 -> 0 bytes .../themes/default/icons/flags/fk.png | Bin 648 -> 0 bytes .../themes/default/icons/flags/fm.png | Bin 552 -> 0 bytes .../themes/default/icons/flags/fo.png | Bin 474 -> 0 bytes .../themes/default/icons/flags/fr.png | Bin 545 -> 0 bytes .../themes/default/icons/flags/ga.png | Bin 489 -> 0 bytes .../themes/default/icons/flags/gb.png | Bin 599 -> 0 bytes .../themes/default/icons/flags/gd.png | Bin 637 -> 0 bytes .../themes/default/icons/flags/ge.png | Bin 594 -> 0 bytes .../themes/default/icons/flags/gf.png | Bin 545 -> 0 bytes .../themes/default/icons/flags/gh.png | Bin 490 -> 0 bytes .../themes/default/icons/flags/gi.png | Bin 463 -> 0 bytes .../themes/default/icons/flags/gl.png | Bin 470 -> 0 bytes .../themes/default/icons/flags/gm.png | Bin 493 -> 0 bytes .../themes/default/icons/flags/gn.png | Bin 480 -> 0 bytes .../themes/default/icons/flags/gp.png | Bin 488 -> 0 bytes .../themes/default/icons/flags/gq.png | Bin 537 -> 0 bytes .../themes/default/icons/flags/gr.png | Bin 487 -> 0 bytes .../themes/default/icons/flags/gs.png | Bin 630 -> 0 bytes .../themes/default/icons/flags/gt.png | Bin 493 -> 0 bytes .../themes/default/icons/flags/gu.png | Bin 509 -> 0 bytes .../themes/default/icons/flags/gw.png | Bin 516 -> 0 bytes .../themes/default/icons/flags/gy.png | Bin 645 -> 0 bytes .../themes/default/icons/flags/hk.png | Bin 527 -> 0 bytes .../themes/default/icons/flags/hm.png | Bin 673 -> 0 bytes .../themes/default/icons/flags/hn.png | Bin 537 -> 0 bytes .../themes/default/icons/flags/hr.png | Bin 524 -> 0 bytes .../themes/default/icons/flags/ht.png | Bin 487 -> 0 bytes .../themes/default/icons/flags/hu.png | Bin 432 -> 0 bytes .../themes/default/icons/flags/id.png | Bin 430 -> 0 bytes .../themes/default/icons/flags/ie.png | Bin 481 -> 0 bytes .../themes/default/icons/flags/il.png | Bin 431 -> 0 bytes .../themes/default/icons/flags/in.png | Bin 503 -> 0 bytes .../themes/default/icons/flags/io.png | Bin 658 -> 0 bytes .../themes/default/icons/flags/iq.png | Bin 515 -> 0 bytes .../themes/default/icons/flags/ir.png | Bin 512 -> 0 bytes .../themes/default/icons/flags/is.png | Bin 532 -> 0 bytes .../themes/default/icons/flags/it.png | Bin 420 -> 0 bytes .../themes/default/icons/flags/jm.png | Bin 637 -> 0 bytes .../themes/default/icons/flags/jo.png | Bin 473 -> 0 bytes .../themes/default/icons/flags/jp.png | Bin 420 -> 0 bytes .../themes/default/icons/flags/ke.png | Bin 569 -> 0 bytes .../themes/default/icons/flags/kg.png | Bin 510 -> 0 bytes .../themes/default/icons/flags/kh.png | Bin 549 -> 0 bytes .../themes/default/icons/flags/ki.png | Bin 656 -> 0 bytes .../themes/default/icons/flags/km.png | Bin 577 -> 0 bytes .../themes/default/icons/flags/kn.png | Bin 604 -> 0 bytes .../themes/default/icons/flags/kp.png | Bin 561 -> 0 bytes .../themes/default/icons/flags/kr.png | Bin 592 -> 0 bytes .../themes/default/icons/flags/kw.png | Bin 486 -> 0 bytes .../themes/default/icons/flags/ky.png | Bin 643 -> 0 bytes .../themes/default/icons/flags/kz.png | Bin 616 -> 0 bytes .../themes/default/icons/flags/la.png | Bin 563 -> 0 bytes .../themes/default/icons/flags/lb.png | Bin 517 -> 0 bytes .../themes/default/icons/flags/lc.png | Bin 520 -> 0 bytes .../themes/default/icons/flags/li.png | Bin 537 -> 0 bytes .../themes/default/icons/flags/lk.png | Bin 627 -> 0 bytes .../themes/default/icons/flags/lr.png | Bin 466 -> 0 bytes .../themes/default/icons/flags/ls.png | Bin 628 -> 0 bytes .../themes/default/icons/flags/lt.png | Bin 508 -> 0 bytes .../themes/default/icons/flags/lu.png | Bin 481 -> 0 bytes .../themes/default/icons/flags/lv.png | Bin 465 -> 0 bytes .../themes/default/icons/flags/ly.png | Bin 419 -> 0 bytes .../themes/default/icons/flags/ma.png | Bin 432 -> 0 bytes .../themes/default/icons/flags/mc.png | Bin 380 -> 0 bytes .../themes/default/icons/flags/md.png | Bin 566 -> 0 bytes .../themes/default/icons/flags/me.png | Bin 448 -> 0 bytes .../themes/default/icons/flags/mg.png | Bin 453 -> 0 bytes .../themes/default/icons/flags/mh.png | Bin 628 -> 0 bytes .../themes/default/icons/flags/mk.png | Bin 664 -> 0 bytes .../themes/default/icons/flags/ml.png | Bin 474 -> 0 bytes .../themes/default/icons/flags/mm.png | Bin 483 -> 0 bytes .../themes/default/icons/flags/mn.png | Bin 492 -> 0 bytes .../themes/default/icons/flags/mo.png | Bin 588 -> 0 bytes .../themes/default/icons/flags/mp.png | Bin 597 -> 0 bytes .../themes/default/icons/flags/mq.png | Bin 655 -> 0 bytes .../themes/default/icons/flags/mr.png | Bin 569 -> 0 bytes .../themes/default/icons/flags/ms.png | Bin 614 -> 0 bytes .../themes/default/icons/flags/mt.png | Bin 420 -> 0 bytes .../themes/default/icons/flags/mu.png | Bin 496 -> 0 bytes .../themes/default/icons/flags/mv.png | Bin 542 -> 0 bytes .../themes/default/icons/flags/mw.png | Bin 529 -> 0 bytes .../themes/default/icons/flags/mx.png | Bin 574 -> 0 bytes .../themes/default/icons/flags/my.png | Bin 571 -> 0 bytes .../themes/default/icons/flags/mz.png | Bin 584 -> 0 bytes .../themes/default/icons/flags/na.png | Bin 647 -> 0 bytes .../themes/default/icons/flags/nc.png | Bin 591 -> 0 bytes .../themes/default/icons/flags/ne.png | Bin 537 -> 0 bytes .../themes/default/icons/flags/nf.png | Bin 602 -> 0 bytes .../themes/default/icons/flags/ng.png | Bin 482 -> 0 bytes .../themes/default/icons/flags/ni.png | Bin 508 -> 0 bytes .../themes/default/icons/flags/nl.png | Bin 453 -> 0 bytes .../themes/default/icons/flags/no.png | Bin 512 -> 0 bytes .../themes/default/icons/flags/np.png | Bin 443 -> 0 bytes .../themes/default/icons/flags/nr.png | Bin 527 -> 0 bytes .../themes/default/icons/flags/nu.png | Bin 572 -> 0 bytes .../themes/default/icons/flags/nz.png | Bin 639 -> 0 bytes .../themes/default/icons/flags/om.png | Bin 478 -> 0 bytes .../themes/default/icons/flags/pa.png | Bin 519 -> 0 bytes .../themes/default/icons/flags/pe.png | Bin 397 -> 0 bytes .../themes/default/icons/flags/pf.png | Bin 498 -> 0 bytes .../themes/default/icons/flags/pg.png | Bin 593 -> 0 bytes .../themes/default/icons/flags/ph.png | Bin 538 -> 0 bytes .../themes/default/icons/flags/pk.png | Bin 569 -> 0 bytes .../themes/default/icons/flags/pl.png | Bin 374 -> 0 bytes .../themes/default/icons/flags/pm.png | Bin 689 -> 0 bytes .../themes/default/icons/flags/pn.png | Bin 657 -> 0 bytes .../themes/default/icons/flags/pr.png | Bin 556 -> 0 bytes .../themes/default/icons/flags/ps.png | Bin 472 -> 0 bytes .../themes/default/icons/flags/pt.png | Bin 554 -> 0 bytes .../themes/default/icons/flags/pw.png | Bin 550 -> 0 bytes .../themes/default/icons/flags/py.png | Bin 473 -> 0 bytes .../themes/default/icons/flags/qa.png | Bin 450 -> 0 bytes .../themes/default/icons/flags/re.png | Bin 545 -> 0 bytes .../themes/default/icons/flags/ro.png | Bin 495 -> 0 bytes .../themes/default/icons/flags/rs.png | Bin 423 -> 0 bytes .../themes/default/icons/flags/ru.png | Bin 420 -> 0 bytes .../themes/default/icons/flags/rw.png | Bin 533 -> 0 bytes .../themes/default/icons/flags/sa.png | Bin 551 -> 0 bytes .../themes/default/icons/flags/sb.png | Bin 624 -> 0 bytes .../themes/default/icons/flags/sc.png | Bin 608 -> 0 bytes .../themes/default/icons/flags/scotland.png | Bin 649 -> 0 bytes .../themes/default/icons/flags/sd.png | Bin 492 -> 0 bytes .../themes/default/icons/flags/se.png | Bin 542 -> 0 bytes .../themes/default/icons/flags/sg.png | Bin 468 -> 0 bytes .../themes/default/icons/flags/sh.png | Bin 645 -> 0 bytes .../themes/default/icons/flags/si.png | Bin 510 -> 0 bytes .../themes/default/icons/flags/sj.png | Bin 512 -> 0 bytes .../themes/default/icons/flags/sk.png | Bin 562 -> 0 bytes .../themes/default/icons/flags/sl.png | Bin 436 -> 0 bytes .../themes/default/icons/flags/sm.png | Bin 502 -> 0 bytes .../themes/default/icons/flags/sn.png | Bin 532 -> 0 bytes .../themes/default/icons/flags/so.png | Bin 527 -> 0 bytes .../themes/default/icons/flags/sr.png | Bin 513 -> 0 bytes .../themes/default/icons/flags/st.png | Bin 584 -> 0 bytes .../themes/default/icons/flags/sv.png | Bin 501 -> 0 bytes .../themes/default/icons/flags/sy.png | Bin 422 -> 0 bytes .../themes/default/icons/flags/sz.png | Bin 643 -> 0 bytes .../themes/default/icons/flags/tc.png | Bin 624 -> 0 bytes .../themes/default/icons/flags/td.png | Bin 570 -> 0 bytes .../themes/default/icons/flags/tf.png | Bin 527 -> 0 bytes .../themes/default/icons/flags/tg.png | Bin 562 -> 0 bytes .../themes/default/icons/flags/th.png | Bin 452 -> 0 bytes .../themes/default/icons/flags/tj.png | Bin 496 -> 0 bytes .../themes/default/icons/flags/tk.png | Bin 638 -> 0 bytes .../themes/default/icons/flags/tl.png | Bin 514 -> 0 bytes .../themes/default/icons/flags/tm.png | Bin 593 -> 0 bytes .../themes/default/icons/flags/tn.png | Bin 495 -> 0 bytes .../themes/default/icons/flags/to.png | Bin 426 -> 0 bytes .../themes/default/icons/flags/tr.png | Bin 492 -> 0 bytes .../themes/default/icons/flags/tt.png | Bin 617 -> 0 bytes .../themes/default/icons/flags/tv.png | Bin 536 -> 0 bytes .../themes/default/icons/flags/tw.png | Bin 465 -> 0 bytes .../themes/default/icons/flags/tz.png | Bin 642 -> 0 bytes .../themes/default/icons/flags/ua.png | Bin 446 -> 0 bytes .../themes/default/icons/flags/ug.png | Bin 531 -> 0 bytes .../themes/default/icons/flags/um.png | Bin 571 -> 0 bytes .../themes/default/icons/flags/us.png | Bin 609 -> 0 bytes .../themes/default/icons/flags/uy.png | Bin 532 -> 0 bytes .../themes/default/icons/flags/uz.png | Bin 515 -> 0 bytes .../themes/default/icons/flags/va.png | Bin 553 -> 0 bytes .../themes/default/icons/flags/vc.png | Bin 577 -> 0 bytes .../themes/default/icons/flags/ve.png | Bin 528 -> 0 bytes .../themes/default/icons/flags/vg.png | Bin 630 -> 0 bytes .../themes/default/icons/flags/vi.png | Bin 616 -> 0 bytes .../themes/default/icons/flags/vn.png | Bin 474 -> 0 bytes .../themes/default/icons/flags/vu.png | Bin 604 -> 0 bytes .../themes/default/icons/flags/wales.png | Bin 652 -> 0 bytes .../themes/default/icons/flags/wf.png | Bin 554 -> 0 bytes .../themes/default/icons/flags/ws.png | Bin 476 -> 0 bytes .../themes/default/icons/flags/ye.png | Bin 413 -> 0 bytes .../themes/default/icons/flags/yt.png | Bin 593 -> 0 bytes .../themes/default/icons/flags/za.png | Bin 642 -> 0 bytes .../themes/default/icons/flags/zm.png | Bin 500 -> 0 bytes .../themes/default/icons/flags/zw.png | Bin 574 -> 0 bytes .../themes/default/icons/x12/accept.png | Bin 3071 -> 0 bytes .../themes/default/icons/x12/accept_blue.png | Bin 3318 -> 0 bytes .../themes/default/icons/x12/accept_green.png | Bin 3144 -> 0 bytes .../default/icons/x12/arrow_2_left_round.png | Bin 3173 -> 0 bytes .../default/icons/x12/arrow_2_right_round.png | Bin 3289 -> 0 bytes .../icons/x12/arrow_left_blue_round.png | Bin 3302 -> 0 bytes .../icons/x12/arrow_right_blue_round.png | Bin 3306 -> 0 bytes .../themes/default/icons/x12/article.png | Bin 3023 -> 0 bytes .../themes/default/icons/x12/article_text.png | Bin 2962 -> 0 bytes .../themes/default/icons/x12/bar_graph.png | Bin 2959 -> 0 bytes .../themes/default/icons/x12/burst.png | Bin 3204 -> 0 bytes .../themes/default/icons/x12/calendar.png | Bin 2916 -> 0 bytes .../themes/default/icons/x12/calendar2.png | Bin 3029 -> 0 bytes .../themes/default/icons/x12/cancel.png | Bin 3055 -> 0 bytes .../themes/default/icons/x12/cancel_round.png | Bin 3285 -> 0 bytes .../themes/default/icons/x12/clock.png | Bin 3288 -> 0 bytes .../themes/default/icons/x12/code.png | Bin 3176 -> 0 bytes .../themes/default/icons/x12/comment_blue.png | Bin 3196 -> 0 bytes .../themes/default/icons/x12/dollar.png | Bin 2893 -> 0 bytes .../default/icons/x12/double_comment.png | Bin 3147 -> 0 bytes .../themes/default/icons/x12/download.png | Bin 3145 -> 0 bytes .../themes/default/icons/x12/envelope.png | Bin 2942 -> 0 bytes .../themes/default/icons/x12/flag_black.png | Bin 3244 -> 0 bytes .../themes/default/icons/x12/flag_blue.png | Bin 3245 -> 0 bytes .../themes/default/icons/x12/flag_green.png | Bin 3242 -> 0 bytes .../themes/default/icons/x12/flag_orange.png | Bin 3235 -> 0 bytes .../themes/default/icons/x12/flag_red.png | Bin 3260 -> 0 bytes .../themes/default/icons/x12/flag_yellow.png | Bin 3261 -> 0 bytes .../themes/default/icons/x12/folder.png | Bin 3049 -> 0 bytes .../themes/default/icons/x12/info.png | Bin 3298 -> 0 bytes .../themes/default/icons/x12/link.png | Bin 2956 -> 0 bytes .../themes/default/icons/x12/lock.png | Bin 3000 -> 0 bytes .../themes/default/icons/x12/magnify.png | Bin 3231 -> 0 bytes .../themes/default/icons/x12/minus.png | Bin 2877 -> 0 bytes .../themes/default/icons/x12/minus_round.png | Bin 3274 -> 0 bytes .../themes/default/icons/x12/money.png | Bin 3112 -> 0 bytes .../themes/default/icons/x12/new.png | Bin 2874 -> 0 bytes .../themes/default/icons/x12/pencil.png | Bin 3095 -> 0 bytes .../themes/default/icons/x12/pictures.png | Bin 3026 -> 0 bytes .../themes/default/icons/x12/plus.png | Bin 2944 -> 0 bytes .../themes/default/icons/x12/printer.png | Bin 3058 -> 0 bytes .../default/icons/x12/question_blue.png | Bin 3314 -> 0 bytes .../themes/default/icons/x12/refresh.png | Bin 3050 -> 0 bytes .../themes/default/icons/x12/rss.png | Bin 3053 -> 0 bytes .../themes/default/icons/x12/rss_round.png | Bin 3282 -> 0 bytes .../default/icons/x12/security_green.png | Bin 3049 -> 0 bytes .../default/icons/x12/security_orange.png | Bin 3020 -> 0 bytes .../themes/default/icons/x12/security_red.png | Bin 3026 -> 0 bytes .../themes/default/icons/x12/star.png | Bin 3263 -> 0 bytes .../themes/default/icons/x12/star_blue.png | Bin 3316 -> 0 bytes .../themes/default/icons/x12/stop.png | Bin 3072 -> 0 bytes .../themes/default/icons/x12/stop_round.png | Bin 3272 -> 0 bytes .../themes/default/icons/x12/upload.png | Bin 3090 -> 0 bytes .../themes/default/icons/x12/world.png | Bin 3324 -> 0 bytes .../themes/default/icons/x12/world2.png | Bin 3344 -> 0 bytes .../themes/default/icons/x16-list/accept.png | Bin 2989 -> 0 bytes .../default/icons/x16-list/accept_blue.png | Bin 3415 -> 0 bytes .../default/icons/x16-list/accept_green.png | Bin 3264 -> 0 bytes .../icons/x16-list/arrow_2_left_round.png | Bin 3332 -> 0 bytes .../icons/x16-list/arrow_2_right_round.png | Bin 3333 -> 0 bytes .../icons/x16-list/arrow_left_blue_round.png | Bin 3375 -> 0 bytes .../icons/x16-list/arrow_right_blue_round.png | Bin 3375 -> 0 bytes .../themes/default/icons/x16-list/article.png | Bin 3094 -> 0 bytes .../default/icons/x16-list/article_text.png | Bin 3129 -> 0 bytes .../default/icons/x16-list/bar_graph.png | Bin 2994 -> 0 bytes .../themes/default/icons/x16-list/burst.png | Bin 3280 -> 0 bytes .../default/icons/x16-list/calendar.png | Bin 3124 -> 0 bytes .../default/icons/x16-list/calendar2.png | Bin 3081 -> 0 bytes .../themes/default/icons/x16-list/cancel.png | Bin 3073 -> 0 bytes .../default/icons/x16-list/cancel_round.png | Bin 3434 -> 0 bytes .../themes/default/icons/x16-list/clock.png | Bin 3351 -> 0 bytes .../themes/default/icons/x16-list/code.png | Bin 3333 -> 0 bytes .../default/icons/x16-list/comment_blue.png | Bin 3193 -> 0 bytes .../themes/default/icons/x16-list/dollar.png | Bin 2898 -> 0 bytes .../default/icons/x16-list/double_comment.png | Bin 3184 -> 0 bytes .../default/icons/x16-list/download.png | Bin 3123 -> 0 bytes .../default/icons/x16-list/envelope.png | Bin 3077 -> 0 bytes .../default/icons/x16-list/flag_black.png | Bin 3411 -> 0 bytes .../default/icons/x16-list/flag_blue.png | Bin 3443 -> 0 bytes .../default/icons/x16-list/flag_green.png | Bin 3451 -> 0 bytes .../default/icons/x16-list/flag_orange.png | Bin 3423 -> 0 bytes .../default/icons/x16-list/flag_red.png | Bin 3469 -> 0 bytes .../default/icons/x16-list/flag_yellow.png | Bin 3338 -> 0 bytes .../themes/default/icons/x16-list/folder.png | Bin 3117 -> 0 bytes .../themes/default/icons/x16-list/info.png | Bin 3355 -> 0 bytes .../themes/default/icons/x16-list/link.png | Bin 3060 -> 0 bytes .../themes/default/icons/x16-list/lock.png | Bin 3051 -> 0 bytes .../themes/default/icons/x16-list/magnify.png | Bin 3255 -> 0 bytes .../themes/default/icons/x16-list/minus.png | Bin 2883 -> 0 bytes .../default/icons/x16-list/minus_round.png | Bin 3269 -> 0 bytes .../themes/default/icons/x16-list/money.png | Bin 3228 -> 0 bytes .../themes/default/icons/x16-list/new.png | Bin 2975 -> 0 bytes .../themes/default/icons/x16-list/pencil.png | Bin 2996 -> 0 bytes .../default/icons/x16-list/pictures.png | Bin 3088 -> 0 bytes .../themes/default/icons/x16-list/plus.png | Bin 2963 -> 0 bytes .../themes/default/icons/x16-list/printer.png | Bin 3107 -> 0 bytes .../default/icons/x16-list/question_blue.png | Bin 3402 -> 0 bytes .../themes/default/icons/x16-list/refresh.png | Bin 2954 -> 0 bytes .../themes/default/icons/x16-list/rss.png | Bin 3072 -> 0 bytes .../default/icons/x16-list/rss_round.png | Bin 3352 -> 0 bytes .../default/icons/x16-list/security_green.png | Bin 3017 -> 0 bytes .../icons/x16-list/security_orange.png | Bin 3041 -> 0 bytes .../default/icons/x16-list/security_red.png | Bin 3058 -> 0 bytes .../themes/default/icons/x16-list/star.png | Bin 3323 -> 0 bytes .../default/icons/x16-list/star_blue.png | Bin 3414 -> 0 bytes .../themes/default/icons/x16-list/stop.png | Bin 3176 -> 0 bytes .../default/icons/x16-list/stop_round.png | Bin 3364 -> 0 bytes .../themes/default/icons/x16-list/upload.png | Bin 3129 -> 0 bytes .../themes/default/icons/x16-list/world.png | Bin 3435 -> 0 bytes .../themes/default/icons/x16-list/world2.png | Bin 3604 -> 0 bytes .../themes/default/icons/x16/address_book.png | Bin 712 -> 0 bytes .../default/icons/x16/address_book__arrow.png | Bin 772 -> 0 bytes .../icons/x16/address_book__exclamation.png | Bin 792 -> 0 bytes .../default/icons/x16/address_book__minus.png | Bin 735 -> 0 bytes .../icons/x16/address_book__pencil.png | Bin 799 -> 0 bytes .../default/icons/x16/address_book__plus.png | Bin 765 -> 0 bytes .../default/icons/x16/address_book_blue.png | Bin 708 -> 0 bytes .../themes/default/icons/x16/arrow.png | Bin 590 -> 0 bytes .../default/icons/x16/arrow_000_small.png | Bin 341 -> 0 bytes .../themes/default/icons/x16/arrow_045.png | Bin 585 -> 0 bytes .../default/icons/x16/arrow_045_small.png | Bin 336 -> 0 bytes .../themes/default/icons/x16/arrow_090.png | Bin 619 -> 0 bytes .../default/icons/x16/arrow_090_small.png | Bin 337 -> 0 bytes .../themes/default/icons/x16/arrow_135.png | Bin 592 -> 0 bytes .../default/icons/x16/arrow_135_small.png | Bin 336 -> 0 bytes .../themes/default/icons/x16/arrow_180.png | Bin 590 -> 0 bytes .../default/icons/x16/arrow_180_small.png | Bin 345 -> 0 bytes .../themes/default/icons/x16/arrow_225.png | Bin 605 -> 0 bytes .../default/icons/x16/arrow_225_small.png | Bin 338 -> 0 bytes .../themes/default/icons/x16/arrow_270.png | Bin 621 -> 0 bytes .../default/icons/x16/arrow_270_small.png | Bin 342 -> 0 bytes .../themes/default/icons/x16/arrow_315.png | Bin 600 -> 0 bytes .../default/icons/x16/arrow_315_small.png | Bin 337 -> 0 bytes .../themes/default/icons/x16/arrow_circle.png | Bin 799 -> 0 bytes .../default/icons/x16/arrow_circle_135.png | Bin 848 -> 0 bytes .../default/icons/x16/arrow_circle_225.png | Bin 830 -> 0 bytes .../default/icons/x16/arrow_circle_315.png | Bin 830 -> 0 bytes .../default/icons/x16/arrow_circle_double.png | Bin 832 -> 0 bytes .../icons/x16/arrow_circle_double_135.png | Bin 836 -> 0 bytes .../themes/default/icons/x16/arrow_skip.png | Bin 602 -> 0 bytes .../default/icons/x16/arrow_skip_090.png | Bin 619 -> 0 bytes .../default/icons/x16/arrow_skip_180.png | Bin 619 -> 0 bytes .../default/icons/x16/arrow_skip_270.png | Bin 613 -> 0 bytes .../themes/default/icons/x16/arrow_stop.png | Bin 661 -> 0 bytes .../default/icons/x16/arrow_stop_090.png | Bin 629 -> 0 bytes .../default/icons/x16/arrow_stop_180.png | Bin 656 -> 0 bytes .../default/icons/x16/arrow_stop_270.png | Bin 654 -> 0 bytes .../default/icons/x16/auction_hammer.png | Bin 707 -> 0 bytes .../icons/x16/auction_hammer__arrow.png | Bin 833 -> 0 bytes .../icons/x16/auction_hammer__exclamation.png | Bin 811 -> 0 bytes .../icons/x16/auction_hammer__minus.png | Bin 735 -> 0 bytes .../icons/x16/auction_hammer__pencil.png | Bin 796 -> 0 bytes .../icons/x16/auction_hammer__plus.png | Bin 783 -> 0 bytes .../icons/x16/auction_hammer_gavel.png | Bin 757 -> 0 bytes .../themes/default/icons/x16/balloon.png | Bin 670 -> 0 bytes .../default/icons/x16/balloon__arrow.png | Bin 772 -> 0 bytes .../icons/x16/balloon__exclamation.png | Bin 781 -> 0 bytes .../default/icons/x16/balloon__minus.png | Bin 706 -> 0 bytes .../default/icons/x16/balloon__pencil.png | Bin 780 -> 0 bytes .../default/icons/x16/balloon__plus.png | Bin 746 -> 0 bytes .../themes/default/icons/x16/balloon_left.png | Bin 670 -> 0 bytes .../default/icons/x16/balloon_small.png | Bin 426 -> 0 bytes .../default/icons/x16/balloon_small_left.png | Bin 433 -> 0 bytes .../themes/default/icons/x16/balloons.png | Bin 711 -> 0 bytes .../default/icons/x16/balloons_arrow.png | Bin 833 -> 0 bytes .../icons/x16/balloons_exclamation.png | Bin 851 -> 0 bytes .../default/icons/x16/balloons_minus.png | Bin 749 -> 0 bytes .../default/icons/x16/balloons_pencil.png | Bin 840 -> 0 bytes .../default/icons/x16/balloons_plus.png | Bin 811 -> 0 bytes .../themes/default/icons/x16/bandaid.png | Bin 778 -> 0 bytes .../default/icons/x16/bandaid_arrow.png | Bin 877 -> 0 bytes .../default/icons/x16/bandaid_exclamation.png | Bin 860 -> 0 bytes .../default/icons/x16/bandaid_minus.png | Bin 789 -> 0 bytes .../default/icons/x16/bandaid_pencil.png | Bin 851 -> 0 bytes .../themes/default/icons/x16/bandaid_plus.png | Bin 845 -> 0 bytes .../default/icons/x16/bandaid_small.png | Bin 435 -> 0 bytes .../themes/default/icons/x16/bank.png | Bin 664 -> 0 bytes .../themes/default/icons/x16/bank_arrow.png | Bin 781 -> 0 bytes .../default/icons/x16/bank_exclamation.png | Bin 835 -> 0 bytes .../themes/default/icons/x16/bank_minus.png | Bin 711 -> 0 bytes .../themes/default/icons/x16/bank_pencil.png | Bin 799 -> 0 bytes .../themes/default/icons/x16/bank_plus.png | Bin 762 -> 0 bytes .../themes/default/icons/x16/bell.png | Bin 741 -> 0 bytes .../themes/default/icons/x16/bell__arrow.png | Bin 855 -> 0 bytes .../default/icons/x16/bell__exclamation.png | Bin 844 -> 0 bytes .../themes/default/icons/x16/bell__minus.png | Bin 780 -> 0 bytes .../themes/default/icons/x16/bell__pencil.png | Bin 862 -> 0 bytes .../themes/default/icons/x16/bell__plus.png | Bin 826 -> 0 bytes .../themes/default/icons/x16/bell_disable.png | Bin 591 -> 0 bytes .../themes/default/icons/x16/bin.png | Bin 697 -> 0 bytes .../themes/default/icons/x16/bin__arrow.png | Bin 788 -> 0 bytes .../default/icons/x16/bin__exclamation.png | Bin 791 -> 0 bytes .../themes/default/icons/x16/bin__minus.png | Bin 739 -> 0 bytes .../themes/default/icons/x16/bin__pencil.png | Bin 837 -> 0 bytes .../themes/default/icons/x16/bin__plus.png | Bin 773 -> 0 bytes .../themes/default/icons/x16/bin_full.png | Bin 850 -> 0 bytes .../themes/default/icons/x16/binocular.png | Bin 516 -> 0 bytes .../default/icons/x16/binocular_arrow.png | Bin 693 -> 0 bytes .../icons/x16/binocular_exclamation.png | Bin 697 -> 0 bytes .../default/icons/x16/binocular_minus.png | Bin 599 -> 0 bytes .../default/icons/x16/binocular_pencil.png | Bin 690 -> 0 bytes .../default/icons/x16/binocular_plus.png | Bin 655 -> 0 bytes .../themes/default/icons/x16/blog.png | Bin 539 -> 0 bytes .../themes/default/icons/x16/blog__arrow.png | Bin 661 -> 0 bytes .../default/icons/x16/blog__exclamation.png | Bin 694 -> 0 bytes .../themes/default/icons/x16/blog__minus.png | Bin 596 -> 0 bytes .../themes/default/icons/x16/blog__pencil.png | Bin 708 -> 0 bytes .../themes/default/icons/x16/blog__plus.png | Bin 644 -> 0 bytes .../themes/default/icons/x16/blog_blue.png | Bin 534 -> 0 bytes .../themes/default/icons/x16/blogs.png | Bin 609 -> 0 bytes .../themes/default/icons/x16/blogs_arrow.png | Bin 706 -> 0 bytes .../default/icons/x16/blogs_exclamation.png | Bin 728 -> 0 bytes .../themes/default/icons/x16/blogs_minus.png | Bin 640 -> 0 bytes .../themes/default/icons/x16/blogs_pencil.png | Bin 726 -> 0 bytes .../themes/default/icons/x16/blogs_plus.png | Bin 686 -> 0 bytes .../themes/default/icons/x16/blogs_stack.png | Bin 603 -> 0 bytes .../themes/default/icons/x16/book.png | Bin 430 -> 0 bytes .../themes/default/icons/x16/book__arrow.png | Bin 569 -> 0 bytes .../default/icons/x16/book__exclamation.png | Bin 631 -> 0 bytes .../themes/default/icons/x16/book__minus.png | Bin 514 -> 0 bytes .../themes/default/icons/x16/book__pencil.png | Bin 635 -> 0 bytes .../themes/default/icons/x16/book__plus.png | Bin 537 -> 0 bytes .../themes/default/icons/x16/book_brown.png | Bin 416 -> 0 bytes .../themes/default/icons/x16/book_small.png | Bin 314 -> 0 bytes .../default/icons/x16/book_small_brown.png | Bin 301 -> 0 bytes .../themes/default/icons/x16/bookmark.png | Bin 634 -> 0 bytes .../default/icons/x16/bookmark__arrow.png | Bin 749 -> 0 bytes .../icons/x16/bookmark__exclamation.png | Bin 768 -> 0 bytes .../default/icons/x16/bookmark__minus.png | Bin 659 -> 0 bytes .../default/icons/x16/bookmark__pencil.png | Bin 745 -> 0 bytes .../default/icons/x16/bookmark__plus.png | Bin 720 -> 0 bytes .../default/icons/x16/bookmark__small.png | Bin 359 -> 0 bytes .../default/icons/x16/bookmark_book.png | Bin 564 -> 0 bytes .../default/icons/x16/bookmark_book_arrow.png | Bin 664 -> 0 bytes .../icons/x16/bookmark_book_exclamation.png | Bin 701 -> 0 bytes .../default/icons/x16/bookmark_book_minus.png | Bin 626 -> 0 bytes .../icons/x16/bookmark_book_pencil.png | Bin 723 -> 0 bytes .../default/icons/x16/bookmark_book_plus.png | Bin 651 -> 0 bytes .../default/icons/x16/bookmark_document.png | Bin 633 -> 0 bytes .../icons/x16/bookmark_document_arrow.png | Bin 721 -> 0 bytes .../x16/bookmark_document_exclamation.png | Bin 748 -> 0 bytes .../icons/x16/bookmark_document_minus.png | Bin 665 -> 0 bytes .../icons/x16/bookmark_document_pencil.png | Bin 775 -> 0 bytes .../icons/x16/bookmark_document_plus.png | Bin 706 -> 0 bytes .../default/icons/x16/bookmark_folder.png | Bin 636 -> 0 bytes .../icons/x16/bookmark_folder_arrow.png | Bin 759 -> 0 bytes .../icons/x16/bookmark_folder_exclamation.png | Bin 783 -> 0 bytes .../icons/x16/bookmark_folder_minus.png | Bin 693 -> 0 bytes .../icons/x16/bookmark_folder_pencil.png | Bin 779 -> 0 bytes .../icons/x16/bookmark_folder_plus.png | Bin 740 -> 0 bytes .../themes/default/icons/x16/books.png | Bin 534 -> 0 bytes .../themes/default/icons/x16/books__arrow.png | Bin 651 -> 0 bytes .../default/icons/x16/books__exclamation.png | Bin 692 -> 0 bytes .../themes/default/icons/x16/books__minus.png | Bin 586 -> 0 bytes .../default/icons/x16/books__pencil.png | Bin 681 -> 0 bytes .../themes/default/icons/x16/books__plus.png | Bin 625 -> 0 bytes .../themes/default/icons/x16/books_brown.png | Bin 537 -> 0 bytes .../themes/default/icons/x16/books_stack.png | Bin 495 -> 0 bytes .../themes/default/icons/x16/box.png | Bin 524 -> 0 bytes .../themes/default/icons/x16/box__arrow.png | Bin 656 -> 0 bytes .../default/icons/x16/box__exclamation.png | Bin 696 -> 0 bytes .../themes/default/icons/x16/box__minus.png | Bin 554 -> 0 bytes .../themes/default/icons/x16/box__pencil.png | Bin 677 -> 0 bytes .../themes/default/icons/x16/box__plus.png | Bin 634 -> 0 bytes .../themes/default/icons/x16/box_label.png | Bin 576 -> 0 bytes .../themes/default/icons/x16/briefcase.png | Bin 554 -> 0 bytes .../default/icons/x16/briefcase_arrow.png | Bin 674 -> 0 bytes .../icons/x16/briefcase_exclamation.png | Bin 713 -> 0 bytes .../default/icons/x16/briefcase_minus.png | Bin 599 -> 0 bytes .../default/icons/x16/briefcase_pencil.png | Bin 686 -> 0 bytes .../default/icons/x16/briefcase_plus.png | Bin 648 -> 0 bytes .../themes/default/icons/x16/broom.png | Bin 782 -> 0 bytes .../themes/default/icons/x16/broom_arrow.png | Bin 869 -> 0 bytes .../default/icons/x16/broom_exclamation.png | Bin 870 -> 0 bytes .../themes/default/icons/x16/broom_minus.png | Bin 799 -> 0 bytes .../themes/default/icons/x16/broom_pencil.png | Bin 892 -> 0 bytes .../themes/default/icons/x16/broom_plus.png | Bin 856 -> 0 bytes .../themes/default/icons/x16/calculator.png | Bin 454 -> 0 bytes .../default/icons/x16/calculator_arrow.png | Bin 625 -> 0 bytes .../icons/x16/calculator_exclamation.png | Bin 641 -> 0 bytes .../default/icons/x16/calculator_minus.png | Bin 543 -> 0 bytes .../default/icons/x16/calculator_pencil.png | Bin 647 -> 0 bytes .../default/icons/x16/calculator_plus.png | Bin 594 -> 0 bytes .../themes/default/icons/x16/calendar.png | Bin 488 -> 0 bytes .../default/icons/x16/calendar__arrow.png | Bin 632 -> 0 bytes .../icons/x16/calendar__exclamation.png | Bin 673 -> 0 bytes .../default/icons/x16/calendar__minus.png | Bin 539 -> 0 bytes .../default/icons/x16/calendar__pencil.png | Bin 661 -> 0 bytes .../default/icons/x16/calendar__plus.png | Bin 612 -> 0 bytes .../themes/default/icons/x16/calendar_day.png | Bin 620 -> 0 bytes .../default/icons/x16/calendar_month.png | Bin 590 -> 0 bytes .../themes/default/icons/x16/camera.png | Bin 649 -> 0 bytes .../default/icons/x16/camera__arrow.png | Bin 748 -> 0 bytes .../default/icons/x16/camera__exclamation.png | Bin 778 -> 0 bytes .../default/icons/x16/camera__minus.png | Bin 664 -> 0 bytes .../default/icons/x16/camera__pencil.png | Bin 737 -> 0 bytes .../themes/default/icons/x16/camera__plus.png | Bin 748 -> 0 bytes .../themes/default/icons/x16/camera_black.png | Bin 602 -> 0 bytes .../themes/default/icons/x16/camera_small.png | Bin 401 -> 0 bytes .../default/icons/x16/camera_small_black.png | Bin 351 -> 0 bytes .../themes/default/icons/x16/card.png | Bin 371 -> 0 bytes .../themes/default/icons/x16/card__arrow.png | Bin 558 -> 0 bytes .../default/icons/x16/card__exclamation.png | Bin 590 -> 0 bytes .../themes/default/icons/x16/card__minus.png | Bin 419 -> 0 bytes .../themes/default/icons/x16/card__pencil.png | Bin 574 -> 0 bytes .../themes/default/icons/x16/card__plus.png | Bin 518 -> 0 bytes .../themes/default/icons/x16/card_address.png | Bin 578 -> 0 bytes .../themes/default/icons/x16/card_small.png | Bin 298 -> 0 bytes .../themes/default/icons/x16/cards.png | Bin 478 -> 0 bytes .../themes/default/icons/x16/cards__arrow.png | Bin 643 -> 0 bytes .../default/icons/x16/cards__exclamation.png | Bin 690 -> 0 bytes .../themes/default/icons/x16/cards__minus.png | Bin 535 -> 0 bytes .../default/icons/x16/cards__pencil.png | Bin 675 -> 0 bytes .../themes/default/icons/x16/cards__plus.png | Bin 621 -> 0 bytes .../default/icons/x16/cards_address.png | Bin 668 -> 0 bytes .../themes/default/icons/x16/cards_stack.png | Bin 470 -> 0 bytes .../themes/default/icons/x16/cassette.png | Bin 447 -> 0 bytes .../default/icons/x16/cassette_arrow.png | Bin 584 -> 0 bytes .../icons/x16/cassette_exclamation.png | Bin 625 -> 0 bytes .../default/icons/x16/cassette_minus.png | Bin 467 -> 0 bytes .../default/icons/x16/cassette_pencil.png | Bin 593 -> 0 bytes .../default/icons/x16/cassette_plus.png | Bin 558 -> 0 bytes .../default/icons/x16/cassette_small.png | Bin 285 -> 0 bytes .../themes/default/icons/x16/chain.png | Bin 437 -> 0 bytes .../themes/default/icons/x16/chain_arrow.png | Bin 622 -> 0 bytes .../default/icons/x16/chain_exclamation.png | Bin 707 -> 0 bytes .../themes/default/icons/x16/chain_minus.png | Bin 490 -> 0 bytes .../themes/default/icons/x16/chain_pencil.png | Bin 624 -> 0 bytes .../themes/default/icons/x16/chain_plus.png | Bin 591 -> 0 bytes .../themes/default/icons/x16/chain_small.png | Bin 305 -> 0 bytes .../default/icons/x16/chain_unchain.png | Bin 722 -> 0 bytes .../themes/default/icons/x16/clipboard.png | Bin 505 -> 0 bytes .../default/icons/x16/clipboard__arrow.png | Bin 629 -> 0 bytes .../icons/x16/clipboard__exclamation.png | Bin 684 -> 0 bytes .../default/icons/x16/clipboard__minus.png | Bin 572 -> 0 bytes .../default/icons/x16/clipboard__pencil.png | Bin 683 -> 0 bytes .../default/icons/x16/clipboard__plus.png | Bin 608 -> 0 bytes .../default/icons/x16/clipboard_empty.png | Bin 521 -> 0 bytes .../default/icons/x16/clipboard_text.png | Bin 573 -> 0 bytes .../themes/default/icons/x16/clock.png | Bin 712 -> 0 bytes .../themes/default/icons/x16/clock__arrow.png | Bin 781 -> 0 bytes .../default/icons/x16/clock__exclamation.png | Bin 814 -> 0 bytes .../themes/default/icons/x16/clock__minus.png | Bin 731 -> 0 bytes .../default/icons/x16/clock__pencil.png | Bin 799 -> 0 bytes .../themes/default/icons/x16/clock__plus.png | Bin 759 -> 0 bytes .../themes/default/icons/x16/clock_fill.png | Bin 731 -> 0 bytes .../themes/default/icons/x16/clock_frame.png | Bin 862 -> 0 bytes .../themes/default/icons/x16/clock_small.png | Bin 387 -> 0 bytes .../themes/default/icons/x16/color.png | Bin 791 -> 0 bytes .../themes/default/icons/x16/color_arrow.png | Bin 839 -> 0 bytes .../default/icons/x16/color_exclamation.png | Bin 854 -> 0 bytes .../themes/default/icons/x16/color_minus.png | Bin 798 -> 0 bytes .../themes/default/icons/x16/color_pencil.png | Bin 892 -> 0 bytes .../themes/default/icons/x16/color_plus.png | Bin 823 -> 0 bytes .../themes/default/icons/x16/color_small.png | Bin 477 -> 0 bytes .../themes/default/icons/x16/contrast.png | Bin 672 -> 0 bytes .../default/icons/x16/contrast__arrow.png | Bin 750 -> 0 bytes .../icons/x16/contrast__exclamation.png | Bin 784 -> 0 bytes .../default/icons/x16/contrast__minus.png | Bin 692 -> 0 bytes .../default/icons/x16/contrast__pencil.png | Bin 786 -> 0 bytes .../default/icons/x16/contrast__plus.png | Bin 735 -> 0 bytes .../themes/default/icons/x16/contrast_low.png | Bin 678 -> 0 bytes .../default/icons/x16/contrast_small.png | Bin 391 -> 0 bytes .../default/icons/x16/contrast_small_low.png | Bin 392 -> 0 bytes .../themes/default/icons/x16/cross.png | Bin 540 -> 0 bytes .../themes/default/icons/x16/cross_circle.png | Bin 721 -> 0 bytes .../default/icons/x16/cross_circle_frame.png | Bin 893 -> 0 bytes .../themes/default/icons/x16/cross_shield.png | Bin 768 -> 0 bytes .../themes/default/icons/x16/cross_small.png | Bin 296 -> 0 bytes .../default/icons/x16/cross_small_circle.png | Bin 333 -> 0 bytes .../themes/default/icons/x16/crown.png | Bin 708 -> 0 bytes .../themes/default/icons/x16/crown__arrow.png | Bin 776 -> 0 bytes .../default/icons/x16/crown__exclamation.png | Bin 770 -> 0 bytes .../themes/default/icons/x16/crown__minus.png | Bin 719 -> 0 bytes .../default/icons/x16/crown__pencil.png | Bin 807 -> 0 bytes .../themes/default/icons/x16/crown__plus.png | Bin 758 -> 0 bytes .../themes/default/icons/x16/crown_bronze.png | Bin 708 -> 0 bytes .../themes/default/icons/x16/crown_silver.png | Bin 672 -> 0 bytes .../themes/default/icons/x16/database.png | Bin 463 -> 0 bytes .../default/icons/x16/database_arrow.png | Bin 630 -> 0 bytes .../icons/x16/database_exclamation.png | Bin 665 -> 0 bytes .../default/icons/x16/database_minus.png | Bin 531 -> 0 bytes .../default/icons/x16/database_pencil.png | Bin 675 -> 0 bytes .../default/icons/x16/database_plus.png | Bin 607 -> 0 bytes .../default/icons/x16/database_small.png | Bin 371 -> 0 bytes .../themes/default/icons/x16/databases.png | Bin 595 -> 0 bytes .../default/icons/x16/databases_arrow.png | Bin 700 -> 0 bytes .../icons/x16/databases_exclamation.png | Bin 748 -> 0 bytes .../default/icons/x16/databases_minus.png | Bin 627 -> 0 bytes .../default/icons/x16/databases_pencil.png | Bin 733 -> 0 bytes .../default/icons/x16/databases_plus.png | Bin 684 -> 0 bytes .../themes/default/icons/x16/disc.png | Bin 824 -> 0 bytes .../themes/default/icons/x16/disc_arrow.png | Bin 862 -> 0 bytes .../default/icons/x16/disc_exclamation.png | Bin 882 -> 0 bytes .../themes/default/icons/x16/disc_minus.png | Bin 829 -> 0 bytes .../themes/default/icons/x16/disc_pencil.png | Bin 888 -> 0 bytes .../themes/default/icons/x16/disc_plus.png | Bin 853 -> 0 bytes .../themes/default/icons/x16/disc_small.png | Bin 477 -> 0 bytes .../themes/default/icons/x16/discs.png | Bin 868 -> 0 bytes .../themes/default/icons/x16/discs_arrow.png | Bin 933 -> 0 bytes .../default/icons/x16/discs_exclamation.png | Bin 951 -> 0 bytes .../themes/default/icons/x16/discs_minus.png | Bin 878 -> 0 bytes .../themes/default/icons/x16/discs_pencil.png | Bin 908 -> 0 bytes .../themes/default/icons/x16/discs_plus.png | Bin 917 -> 0 bytes .../themes/default/icons/x16/disk.png | Bin 507 -> 0 bytes .../themes/default/icons/x16/disk__arrow.png | Bin 655 -> 0 bytes .../default/icons/x16/disk__exclamation.png | Bin 722 -> 0 bytes .../themes/default/icons/x16/disk__minus.png | Bin 576 -> 0 bytes .../themes/default/icons/x16/disk__pencil.png | Bin 680 -> 0 bytes .../themes/default/icons/x16/disk__plus.png | Bin 646 -> 0 bytes .../themes/default/icons/x16/disk_black.png | Bin 436 -> 0 bytes .../themes/default/icons/x16/disk_small.png | Bin 380 -> 0 bytes .../default/icons/x16/disk_small_black.png | Bin 350 -> 0 bytes .../themes/default/icons/x16/disks.png | Bin 622 -> 0 bytes .../themes/default/icons/x16/disks__arrow.png | Bin 731 -> 0 bytes .../default/icons/x16/disks__exclamation.png | Bin 731 -> 0 bytes .../themes/default/icons/x16/disks__minus.png | Bin 669 -> 0 bytes .../default/icons/x16/disks__pencil.png | Bin 713 -> 0 bytes .../themes/default/icons/x16/disks__plus.png | Bin 718 -> 0 bytes .../themes/default/icons/x16/disks_black.png | Bin 524 -> 0 bytes .../themes/default/icons/x16/document.png | Bin 495 -> 0 bytes .../default/icons/x16/document__arrow.png | Bin 645 -> 0 bytes .../icons/x16/document__exclamation.png | Bin 663 -> 0 bytes .../default/icons/x16/document__minus.png | Bin 554 -> 0 bytes .../default/icons/x16/document__pencil.png | Bin 684 -> 0 bytes .../default/icons/x16/document__plus.png | Bin 607 -> 0 bytes .../default/icons/x16/document_horizontal.png | Bin 435 -> 0 bytes .../icons/x16/document_horizontal_text.png | Bin 535 -> 0 bytes .../default/icons/x16/document_music.png | Bin 628 -> 0 bytes .../icons/x16/document_music_playlist.png | Bin 658 -> 0 bytes .../default/icons/x16/document_shred.png | Bin 634 -> 0 bytes .../default/icons/x16/document_small.png | Bin 356 -> 0 bytes .../default/icons/x16/document_text.png | Bin 590 -> 0 bytes .../default/icons/x16/document_text_image.png | Bin 646 -> 0 bytes .../default/icons/x16/document_zipper.png | Bin 643 -> 0 bytes .../themes/default/icons/x16/documents.png | Bin 600 -> 0 bytes .../default/icons/x16/documents_arrow.png | Bin 700 -> 0 bytes .../icons/x16/documents_exclamation.png | Bin 717 -> 0 bytes .../default/icons/x16/documents_minus.png | Bin 629 -> 0 bytes .../default/icons/x16/documents_pencil.png | Bin 724 -> 0 bytes .../default/icons/x16/documents_plus.png | Bin 683 -> 0 bytes .../default/icons/x16/documents_stack.png | Bin 592 -> 0 bytes .../default/icons/x16/documents_text.png | Bin 674 -> 0 bytes .../themes/default/icons/x16/door.png | Bin 503 -> 0 bytes .../themes/default/icons/x16/door_arrow.png | Bin 644 -> 0 bytes .../default/icons/x16/door_exclamation.png | Bin 650 -> 0 bytes .../themes/default/icons/x16/door_minus.png | Bin 573 -> 0 bytes .../themes/default/icons/x16/door_pencil.png | Bin 681 -> 0 bytes .../themes/default/icons/x16/door_plus.png | Bin 607 -> 0 bytes .../themes/default/icons/x16/drawer.png | Bin 650 -> 0 bytes .../themes/default/icons/x16/drawer_arrow.png | Bin 751 -> 0 bytes .../default/icons/x16/drawer_exclamation.png | Bin 756 -> 0 bytes .../themes/default/icons/x16/drawer_minus.png | Bin 682 -> 0 bytes .../default/icons/x16/drawer_pencil.png | Bin 767 -> 0 bytes .../themes/default/icons/x16/drawer_plus.png | Bin 727 -> 0 bytes .../themes/default/icons/x16/drill.png | Bin 729 -> 0 bytes .../themes/default/icons/x16/drill_arrow.png | Bin 846 -> 0 bytes .../default/icons/x16/drill_exclamation.png | Bin 901 -> 0 bytes .../themes/default/icons/x16/drill_minus.png | Bin 758 -> 0 bytes .../themes/default/icons/x16/drill_pencil.png | Bin 817 -> 0 bytes .../themes/default/icons/x16/drill_plus.png | Bin 818 -> 0 bytes .../themes/default/icons/x16/envelope.png | Bin 477 -> 0 bytes .../default/icons/x16/envelope_arrow.png | Bin 609 -> 0 bytes .../icons/x16/envelope_exclamation.png | Bin 633 -> 0 bytes .../default/icons/x16/envelope_minus.png | Bin 533 -> 0 bytes .../default/icons/x16/envelope_pencil.png | Bin 658 -> 0 bytes .../default/icons/x16/envelope_plus.png | Bin 585 -> 0 bytes .../themes/default/icons/x16/equalizer.png | Bin 466 -> 0 bytes .../default/icons/x16/equalizer_arrow.png | Bin 621 -> 0 bytes .../icons/x16/equalizer_exclamation.png | Bin 648 -> 0 bytes .../default/icons/x16/equalizer_minus.png | Bin 507 -> 0 bytes .../default/icons/x16/equalizer_pencil.png | Bin 629 -> 0 bytes .../default/icons/x16/equalizer_plus.png | Bin 602 -> 0 bytes .../themes/default/icons/x16/eraser.png | Bin 674 -> 0 bytes .../themes/default/icons/x16/eraser_arrow.png | Bin 762 -> 0 bytes .../default/icons/x16/eraser_exclamation.png | Bin 785 -> 0 bytes .../themes/default/icons/x16/eraser_minus.png | Bin 699 -> 0 bytes .../default/icons/x16/eraser_pencil.png | Bin 831 -> 0 bytes .../themes/default/icons/x16/eraser_plus.png | Bin 746 -> 0 bytes .../themes/default/icons/x16/exclamation.png | Bin 622 -> 0 bytes .../default/icons/x16/exclamation_frame.png | Bin 626 -> 0 bytes .../default/icons/x16/exclamation_shield.png | Bin 784 -> 0 bytes .../default/icons/x16/exclamation_small.png | Bin 380 -> 0 bytes .../themes/default/icons/x16/feed.png | Bin 688 -> 0 bytes .../themes/default/icons/x16/feed__arrow.png | Bin 754 -> 0 bytes .../default/icons/x16/feed__exclamation.png | Bin 761 -> 0 bytes .../themes/default/icons/x16/feed__minus.png | Bin 710 -> 0 bytes .../themes/default/icons/x16/feed__pencil.png | Bin 792 -> 0 bytes .../themes/default/icons/x16/feed__plus.png | Bin 737 -> 0 bytes .../themes/default/icons/x16/feed_balloon.png | Bin 724 -> 0 bytes .../themes/default/icons/x16/feed_small.png | Bin 425 -> 0 bytes .../themes/default/icons/x16/film.png | Bin 667 -> 0 bytes .../themes/default/icons/x16/film_arrow.png | Bin 764 -> 0 bytes .../default/icons/x16/film_exclamation.png | Bin 791 -> 0 bytes .../themes/default/icons/x16/film_minus.png | Bin 717 -> 0 bytes .../themes/default/icons/x16/film_pencil.png | Bin 770 -> 0 bytes .../themes/default/icons/x16/film_plus.png | Bin 736 -> 0 bytes .../themes/default/icons/x16/film_small.png | Bin 389 -> 0 bytes .../themes/default/icons/x16/films.png | Bin 741 -> 0 bytes .../themes/default/icons/x16/films_arrow.png | Bin 828 -> 0 bytes .../default/icons/x16/films_exclamation.png | Bin 841 -> 0 bytes .../themes/default/icons/x16/films_minus.png | Bin 769 -> 0 bytes .../themes/default/icons/x16/films_pencil.png | Bin 810 -> 0 bytes .../themes/default/icons/x16/films_plus.png | Bin 799 -> 0 bytes .../themes/default/icons/x16/flag.png | Bin 726 -> 0 bytes .../themes/default/icons/x16/flag_arrow.png | Bin 858 -> 0 bytes .../default/icons/x16/flag_exclamation.png | Bin 860 -> 0 bytes .../themes/default/icons/x16/flag_minus.png | Bin 751 -> 0 bytes .../themes/default/icons/x16/flag_pencil.png | Bin 810 -> 0 bytes .../themes/default/icons/x16/flag_plus.png | Bin 812 -> 0 bytes .../themes/default/icons/x16/folder.png | Bin 483 -> 0 bytes .../default/icons/x16/folder__arrow.png | Bin 647 -> 0 bytes .../default/icons/x16/folder__exclamation.png | Bin 642 -> 0 bytes .../default/icons/x16/folder__minus.png | Bin 557 -> 0 bytes .../default/icons/x16/folder__pencil.png | Bin 626 -> 0 bytes .../themes/default/icons/x16/folder__plus.png | Bin 592 -> 0 bytes .../themes/default/icons/x16/folder_open.png | Bin 683 -> 0 bytes .../icons/x16/folder_open_document.png | Bin 697 -> 0 bytes .../icons/x16/folder_open_document_music.png | Bin 762 -> 0 bytes .../folder_open_document_music_playlist.png | Bin 786 -> 0 bytes .../icons/x16/folder_open_document_text.png | Bin 749 -> 0 bytes .../default/icons/x16/folder_open_film.png | Bin 775 -> 0 bytes .../default/icons/x16/folder_open_image.png | Bin 802 -> 0 bytes .../themes/default/icons/x16/folder_shred.png | Bin 618 -> 0 bytes .../themes/default/icons/x16/folder_small.png | Bin 336 -> 0 bytes .../default/icons/x16/folder_zipper.png | Bin 651 -> 0 bytes .../themes/default/icons/x16/folders.png | Bin 574 -> 0 bytes .../default/icons/x16/folders_arrow.png | Bin 688 -> 0 bytes .../default/icons/x16/folders_exclamation.png | Bin 696 -> 0 bytes .../default/icons/x16/folders_minus.png | Bin 610 -> 0 bytes .../default/icons/x16/folders_pencil.png | Bin 692 -> 0 bytes .../themes/default/icons/x16/folders_plus.png | Bin 662 -> 0 bytes .../default/icons/x16/folders_stack.png | Bin 565 -> 0 bytes .../themes/default/icons/x16/funnel.png | Bin 586 -> 0 bytes .../themes/default/icons/x16/funnel_arrow.png | Bin 732 -> 0 bytes .../default/icons/x16/funnel_exclamation.png | Bin 743 -> 0 bytes .../themes/default/icons/x16/funnel_minus.png | Bin 636 -> 0 bytes .../default/icons/x16/funnel_pencil.png | Bin 710 -> 0 bytes .../themes/default/icons/x16/funnel_plus.png | Bin 694 -> 0 bytes .../themes/default/icons/x16/funnel_small.png | Bin 379 -> 0 bytes .../themes/default/icons/x16/gear.png | Bin 740 -> 0 bytes .../themes/default/icons/x16/gear__arrow.png | Bin 821 -> 0 bytes .../default/icons/x16/gear__exclamation.png | Bin 833 -> 0 bytes .../themes/default/icons/x16/gear__minus.png | Bin 772 -> 0 bytes .../themes/default/icons/x16/gear__pencil.png | Bin 808 -> 0 bytes .../themes/default/icons/x16/gear__plus.png | Bin 801 -> 0 bytes .../themes/default/icons/x16/gear_disable.png | Bin 663 -> 0 bytes .../themes/default/icons/x16/gear_small.png | Bin 445 -> 0 bytes .../themes/default/icons/x16/hammer.png | Bin 554 -> 0 bytes .../default/icons/x16/hammer__arrow.png | Bin 769 -> 0 bytes .../default/icons/x16/hammer__exclamation.png | Bin 779 -> 0 bytes .../default/icons/x16/hammer__minus.png | Bin 634 -> 0 bytes .../default/icons/x16/hammer__pencil.png | Bin 686 -> 0 bytes .../themes/default/icons/x16/hammer__plus.png | Bin 699 -> 0 bytes .../themes/default/icons/x16/hammer_left.png | Bin 620 -> 0 bytes .../default/icons/x16/hammer_screwdriver.png | Bin 780 -> 0 bytes .../themes/default/icons/x16/heart.png | Bin 747 -> 0 bytes .../themes/default/icons/x16/heart__arrow.png | Bin 821 -> 0 bytes .../default/icons/x16/heart__exclamation.png | Bin 829 -> 0 bytes .../themes/default/icons/x16/heart__minus.png | Bin 751 -> 0 bytes .../default/icons/x16/heart__pencil.png | Bin 837 -> 0 bytes .../themes/default/icons/x16/heart__plus.png | Bin 781 -> 0 bytes .../themes/default/icons/x16/heart_break.png | Bin 805 -> 0 bytes .../themes/default/icons/x16/heart_empty.png | Bin 626 -> 0 bytes .../themes/default/icons/x16/heart_half.png | Bin 759 -> 0 bytes .../themes/default/icons/x16/heart_small.png | Bin 369 -> 0 bytes .../default/icons/x16/heart_small_empty.png | Bin 325 -> 0 bytes .../default/icons/x16/heart_small_half.png | Bin 381 -> 0 bytes .../themes/default/icons/x16/home.png | Bin 753 -> 0 bytes .../themes/default/icons/x16/home_arrow.png | Bin 858 -> 0 bytes .../default/icons/x16/home_exclamation.png | Bin 883 -> 0 bytes .../themes/default/icons/x16/home_minus.png | Bin 797 -> 0 bytes .../themes/default/icons/x16/home_pencil.png | Bin 849 -> 0 bytes .../themes/default/icons/x16/home_plus.png | Bin 843 -> 0 bytes .../themes/default/icons/x16/home_small.png | Bin 412 -> 0 bytes .../themes/default/icons/x16/image.png | Bin 567 -> 0 bytes .../themes/default/icons/x16/image_arrow.png | Bin 666 -> 0 bytes .../default/icons/x16/image_exclamation.png | Bin 707 -> 0 bytes .../themes/default/icons/x16/image_minus.png | Bin 598 -> 0 bytes .../themes/default/icons/x16/image_pencil.png | Bin 691 -> 0 bytes .../themes/default/icons/x16/image_plus.png | Bin 651 -> 0 bytes .../themes/default/icons/x16/image_resize.png | Bin 595 -> 0 bytes .../default/icons/x16/image_resize_actual.png | Bin 635 -> 0 bytes .../themes/default/icons/x16/image_small.png | Bin 346 -> 0 bytes .../default/icons/x16/image_small_sunset.png | Bin 337 -> 0 bytes .../themes/default/icons/x16/image_sunset.png | Bin 532 -> 0 bytes .../themes/default/icons/x16/images.png | Bin 670 -> 0 bytes .../themes/default/icons/x16/images_arrow.png | Bin 725 -> 0 bytes .../default/icons/x16/images_exclamation.png | Bin 750 -> 0 bytes .../themes/default/icons/x16/images_minus.png | Bin 682 -> 0 bytes .../default/icons/x16/images_pencil.png | Bin 750 -> 0 bytes .../themes/default/icons/x16/images_plus.png | Bin 705 -> 0 bytes .../themes/default/icons/x16/images_stack.png | Bin 602 -> 0 bytes .../themes/default/icons/x16/inbox.png | Bin 482 -> 0 bytes .../themes/default/icons/x16/inbox_arrow.png | Bin 623 -> 0 bytes .../default/icons/x16/inbox_exclamation.png | Bin 655 -> 0 bytes .../themes/default/icons/x16/inbox_minus.png | Bin 516 -> 0 bytes .../themes/default/icons/x16/inbox_pencil.png | Bin 635 -> 0 bytes .../themes/default/icons/x16/inbox_plus.png | Bin 591 -> 0 bytes .../themes/default/icons/x16/information.png | Bin 725 -> 0 bytes .../default/icons/x16/information_frame.png | Bin 900 -> 0 bytes .../default/icons/x16/information_shield.png | Bin 775 -> 0 bytes .../default/icons/x16/information_small.png | Bin 328 -> 0 bytes .../themes/default/icons/x16/key.png | Bin 691 -> 0 bytes .../themes/default/icons/x16/key__arrow.png | Bin 819 -> 0 bytes .../default/icons/x16/key__exclamation.png | Bin 838 -> 0 bytes .../themes/default/icons/x16/key__minus.png | Bin 750 -> 0 bytes .../themes/default/icons/x16/key__pencil.png | Bin 816 -> 0 bytes .../themes/default/icons/x16/key__plus.png | Bin 811 -> 0 bytes .../themes/default/icons/x16/key_disable.png | Bin 580 -> 0 bytes .../themes/default/icons/x16/layout.png | Bin 278 -> 0 bytes .../themes/default/icons/x16/layout_2.png | Bin 329 -> 0 bytes .../default/icons/x16/layout_2_equal.png | Bin 325 -> 0 bytes .../themes/default/icons/x16/layout_3.png | Bin 306 -> 0 bytes .../themes/default/icons/x16/layout_3_mix.png | Bin 353 -> 0 bytes .../default/icons/x16/layout_header.png | Bin 286 -> 0 bytes .../default/icons/x16/layout_header_2.png | Bin 341 -> 0 bytes .../icons/x16/layout_header_2_equal.png | Bin 343 -> 0 bytes .../default/icons/x16/layout_header_3.png | Bin 319 -> 0 bytes .../default/icons/x16/layout_header_3_mix.png | Bin 364 -> 0 bytes .../icons/x16/layout_header_footer.png | Bin 297 -> 0 bytes .../icons/x16/layout_header_footer_2.png | Bin 336 -> 0 bytes .../x16/layout_header_footer_2_equal.png | Bin 348 -> 0 bytes .../icons/x16/layout_header_footer_3.png | Bin 319 -> 0 bytes .../icons/x16/layout_header_footer_3_mix.png | Bin 362 -> 0 bytes .../themes/default/icons/x16/layout_join.png | Bin 391 -> 0 bytes .../themes/default/icons/x16/layout_split.png | Bin 440 -> 0 bytes .../themes/default/icons/x16/lifebuoy.png | Bin 897 -> 0 bytes .../default/icons/x16/lifebuoy_arrow.png | Bin 985 -> 0 bytes .../icons/x16/lifebuoy_exclamation.png | Bin 960 -> 0 bytes .../default/icons/x16/lifebuoy_minus.png | Bin 885 -> 0 bytes .../default/icons/x16/lifebuoy_pencil.png | Bin 990 -> 0 bytes .../default/icons/x16/lifebuoy_plus.png | Bin 940 -> 0 bytes .../themes/default/icons/x16/light_bulb.png | Bin 716 -> 0 bytes .../default/icons/x16/light_bulb__arrow.png | Bin 797 -> 0 bytes .../icons/x16/light_bulb__exclamation.png | Bin 794 -> 0 bytes .../default/icons/x16/light_bulb__minus.png | Bin 755 -> 0 bytes .../default/icons/x16/light_bulb__pencil.png | Bin 802 -> 0 bytes .../default/icons/x16/light_bulb__plus.png | Bin 779 -> 0 bytes .../default/icons/x16/light_bulb_off.png | Bin 721 -> 0 bytes .../default/icons/x16/light_bulb_small.png | Bin 320 -> 0 bytes .../icons/x16/light_bulb_small_off.png | Bin 316 -> 0 bytes .../themes/default/icons/x16/lightning.png | Bin 671 -> 0 bytes .../default/icons/x16/lightning__arrow.png | Bin 770 -> 0 bytes .../icons/x16/lightning__exclamation.png | Bin 764 -> 0 bytes .../default/icons/x16/lightning__minus.png | Bin 693 -> 0 bytes .../default/icons/x16/lightning__pencil.png | Bin 784 -> 0 bytes .../default/icons/x16/lightning__plus.png | Bin 746 -> 0 bytes .../default/icons/x16/lightning_disable.png | Bin 618 -> 0 bytes .../default/icons/x16/lightning_small.png | Bin 363 -> 0 bytes .../themes/default/icons/x16/lock.png | Bin 637 -> 0 bytes .../themes/default/icons/x16/lock__arrow.png | Bin 756 -> 0 bytes .../default/icons/x16/lock__exclamation.png | Bin 758 -> 0 bytes .../themes/default/icons/x16/lock__minus.png | Bin 677 -> 0 bytes .../themes/default/icons/x16/lock__pencil.png | Bin 767 -> 0 bytes .../themes/default/icons/x16/lock__plus.png | Bin 737 -> 0 bytes .../themes/default/icons/x16/lock_disable.png | Bin 593 -> 0 bytes .../themes/default/icons/x16/lock_small.png | Bin 370 -> 0 bytes .../themes/default/icons/x16/lock_unlock.png | Bin 639 -> 0 bytes .../themes/default/icons/x16/logout.png | Bin 995 -> 0 bytes .../themes/default/icons/x16/magnet.png | Bin 685 -> 0 bytes .../default/icons/x16/magnet__arrow.png | Bin 784 -> 0 bytes .../default/icons/x16/magnet__exclamation.png | Bin 856 -> 0 bytes .../default/icons/x16/magnet__minus.png | Bin 709 -> 0 bytes .../default/icons/x16/magnet__pencil.png | Bin 839 -> 0 bytes .../themes/default/icons/x16/magnet__plus.png | Bin 761 -> 0 bytes .../default/icons/x16/magnet_disable.png | Bin 550 -> 0 bytes .../themes/default/icons/x16/magnet_small.png | Bin 380 -> 0 bytes .../themes/default/icons/x16/magnifier.png | Bin 706 -> 0 bytes .../default/icons/x16/magnifier__arrow.png | Bin 831 -> 0 bytes .../icons/x16/magnifier__exclamation.png | Bin 866 -> 0 bytes .../default/icons/x16/magnifier__minus.png | Bin 751 -> 0 bytes .../default/icons/x16/magnifier__pencil.png | Bin 821 -> 0 bytes .../default/icons/x16/magnifier__plus.png | Bin 794 -> 0 bytes .../default/icons/x16/magnifier_left.png | Bin 727 -> 0 bytes .../default/icons/x16/magnifier_medium.png | Bin 552 -> 0 bytes .../icons/x16/magnifier_medium_left.png | Bin 560 -> 0 bytes .../default/icons/x16/magnifier_small.png | Bin 395 -> 0 bytes .../default/icons/x16/magnifier_zoom.png | Bin 765 -> 0 bytes .../icons/x16/magnifier_zoom_actual.png | Bin 772 -> 0 bytes .../default/icons/x16/magnifier_zoom_fit.png | Bin 759 -> 0 bytes .../default/icons/x16/magnifier_zoom_out.png | Bin 742 -> 0 bytes .../themes/default/icons/x16/mail.png | Bin 501 -> 0 bytes .../themes/default/icons/x16/mail__arrow.png | Bin 621 -> 0 bytes .../default/icons/x16/mail__exclamation.png | Bin 661 -> 0 bytes .../themes/default/icons/x16/mail__minus.png | Bin 534 -> 0 bytes .../themes/default/icons/x16/mail__pencil.png | Bin 644 -> 0 bytes .../themes/default/icons/x16/mail__plus.png | Bin 602 -> 0 bytes .../themes/default/icons/x16/mail_open.png | Bin 712 -> 0 bytes .../default/icons/x16/mail_open_document.png | Bin 715 -> 0 bytes .../default/icons/x16/mail_open_film.png | Bin 772 -> 0 bytes .../default/icons/x16/mail_open_image.png | Bin 784 -> 0 bytes .../themes/default/icons/x16/mail_small.png | Bin 295 -> 0 bytes .../themes/default/icons/x16/mails.png | Bin 586 -> 0 bytes .../themes/default/icons/x16/mails_arrow.png | Bin 660 -> 0 bytes .../default/icons/x16/mails_exclamation.png | Bin 702 -> 0 bytes .../themes/default/icons/x16/mails_minus.png | Bin 612 -> 0 bytes .../themes/default/icons/x16/mails_pencil.png | Bin 691 -> 0 bytes .../themes/default/icons/x16/mails_plus.png | Bin 649 -> 0 bytes .../themes/default/icons/x16/mails_stack.png | Bin 529 -> 0 bytes .../themes/default/icons/x16/media_player.png | Bin 619 -> 0 bytes .../default/icons/x16/media_player__arrow.png | Bin 738 -> 0 bytes .../icons/x16/media_player__exclamation.png | Bin 756 -> 0 bytes .../default/icons/x16/media_player__minus.png | Bin 660 -> 0 bytes .../icons/x16/media_player__pencil.png | Bin 768 -> 0 bytes .../default/icons/x16/media_player__plus.png | Bin 709 -> 0 bytes .../default/icons/x16/media_player_black.png | Bin 548 -> 0 bytes .../default/icons/x16/media_player_medium.png | Bin 588 -> 0 bytes .../icons/x16/media_player_medium_black.png | Bin 568 -> 0 bytes .../icons/x16/media_player_medium_blue.png | Bin 644 -> 0 bytes .../icons/x16/media_player_medium_green.png | Bin 663 -> 0 bytes .../icons/x16/media_player_medium_pink.png | Bin 666 -> 0 bytes .../icons/x16/media_player_medium_red.png | Bin 638 -> 0 bytes .../default/icons/x16/media_player_small.png | Bin 434 -> 0 bytes .../icons/x16/media_player_small_blue.png | Bin 480 -> 0 bytes .../icons/x16/media_player_small_green.png | Bin 508 -> 0 bytes .../icons/x16/media_player_small_purple.png | Bin 488 -> 0 bytes .../icons/x16/media_player_small_red.png | Bin 499 -> 0 bytes .../default/icons/x16/media_players.png | Bin 679 -> 0 bytes .../default/icons/x16/media_players_arrow.png | Bin 779 -> 0 bytes .../icons/x16/media_players_exclamation.png | Bin 773 -> 0 bytes .../default/icons/x16/media_players_minus.png | Bin 702 -> 0 bytes .../icons/x16/media_players_pencil.png | Bin 793 -> 0 bytes .../default/icons/x16/media_players_plus.png | Bin 748 -> 0 bytes .../themes/default/icons/x16/microphone.png | Bin 732 -> 0 bytes .../default/icons/x16/microphone_arrow.png | Bin 827 -> 0 bytes .../icons/x16/microphone_exclamation.png | Bin 827 -> 0 bytes .../default/icons/x16/microphone_minus.png | Bin 781 -> 0 bytes .../default/icons/x16/microphone_pencil.png | Bin 829 -> 0 bytes .../default/icons/x16/microphone_plus.png | Bin 809 -> 0 bytes .../themes/default/icons/x16/minus.png | Bin 260 -> 0 bytes .../themes/default/icons/x16/minus_circle.png | Bin 656 -> 0 bytes .../default/icons/x16/minus_circle_frame.png | Bin 860 -> 0 bytes .../themes/default/icons/x16/minus_shield.png | Bin 710 -> 0 bytes .../themes/default/icons/x16/minus_small.png | Bin 176 -> 0 bytes .../default/icons/x16/minus_small_circle.png | Bin 328 -> 0 bytes .../themes/default/icons/x16/music.png | Bin 522 -> 0 bytes .../themes/default/icons/x16/music_arrow.png | Bin 679 -> 0 bytes .../default/icons/x16/music_exclamation.png | Bin 747 -> 0 bytes .../themes/default/icons/x16/music_minus.png | Bin 616 -> 0 bytes .../themes/default/icons/x16/music_pencil.png | Bin 668 -> 0 bytes .../themes/default/icons/x16/music_plus.png | Bin 657 -> 0 bytes .../themes/default/icons/x16/music_small.png | Bin 277 -> 0 bytes .../themes/default/icons/x16/newspaper.png | Bin 565 -> 0 bytes .../default/icons/x16/newspaper_arrow.png | Bin 698 -> 0 bytes .../icons/x16/newspaper_exclamation.png | Bin 729 -> 0 bytes .../default/icons/x16/newspaper_minus.png | Bin 616 -> 0 bytes .../default/icons/x16/newspaper_pencil.png | Bin 728 -> 0 bytes .../default/icons/x16/newspaper_plus.png | Bin 685 -> 0 bytes .../themes/default/icons/x16/newspapers.png | Bin 610 -> 0 bytes .../default/icons/x16/newspapers_arrow.png | Bin 717 -> 0 bytes .../icons/x16/newspapers_exclamation.png | Bin 754 -> 0 bytes .../default/icons/x16/newspapers_minus.png | Bin 655 -> 0 bytes .../default/icons/x16/newspapers_pencil.png | Bin 754 -> 0 bytes .../default/icons/x16/newspapers_plus.png | Bin 703 -> 0 bytes .../themes/default/icons/x16/notebook.png | Bin 572 -> 0 bytes .../default/icons/x16/notebook_arrow.png | Bin 700 -> 0 bytes .../icons/x16/notebook_exclamation.png | Bin 741 -> 0 bytes .../default/icons/x16/notebook_minus.png | Bin 634 -> 0 bytes .../default/icons/x16/notebook_pencil.png | Bin 744 -> 0 bytes .../default/icons/x16/notebook_plus.png | Bin 671 -> 0 bytes .../themes/default/icons/x16/notebooks.png | Bin 706 -> 0 bytes .../default/icons/x16/notebooks_arrow.png | Bin 787 -> 0 bytes .../icons/x16/notebooks_exclamation.png | Bin 808 -> 0 bytes .../default/icons/x16/notebooks_minus.png | Bin 726 -> 0 bytes .../default/icons/x16/notebooks_pencil.png | Bin 823 -> 0 bytes .../default/icons/x16/notebooks_plus.png | Bin 770 -> 0 bytes .../themes/default/icons/x16/paint_can.png | Bin 721 -> 0 bytes .../default/icons/x16/paint_can_arrow.png | Bin 814 -> 0 bytes .../icons/x16/paint_can_exclamation.png | Bin 831 -> 0 bytes .../default/icons/x16/paint_can_minus.png | Bin 761 -> 0 bytes .../default/icons/x16/paint_can_pencil.png | Bin 814 -> 0 bytes .../default/icons/x16/paint_can_plus.png | Bin 795 -> 0 bytes .../themes/default/icons/x16/palette.png | Bin 855 -> 0 bytes .../default/icons/x16/palette_arrow.png | Bin 906 -> 0 bytes .../default/icons/x16/palette_exclamation.png | Bin 940 -> 0 bytes .../default/icons/x16/palette_minus.png | Bin 845 -> 0 bytes .../default/icons/x16/palette_pencil.png | Bin 922 -> 0 bytes .../themes/default/icons/x16/palette_plus.png | Bin 909 -> 0 bytes .../themes/default/icons/x16/paper_bag.png | Bin 591 -> 0 bytes .../default/icons/x16/paper_bag_arrow.png | Bin 707 -> 0 bytes .../icons/x16/paper_bag_exclamation.png | Bin 725 -> 0 bytes .../default/icons/x16/paper_bag_minus.png | Bin 621 -> 0 bytes .../default/icons/x16/paper_bag_pencil.png | Bin 742 -> 0 bytes .../default/icons/x16/paper_bag_plus.png | Bin 681 -> 0 bytes .../themes/default/icons/x16/pencil.png | Bin 497 -> 0 bytes .../themes/default/icons/x16/pencil_arrow.png | Bin 671 -> 0 bytes .../default/icons/x16/pencil_exclamation.png | Bin 701 -> 0 bytes .../themes/default/icons/x16/pencil_minus.png | Bin 555 -> 0 bytes .../themes/default/icons/x16/pencil_plus.png | Bin 637 -> 0 bytes .../themes/default/icons/x16/pencil_small.png | Bin 309 -> 0 bytes .../themes/default/icons/x16/photo_album.png | Bin 739 -> 0 bytes .../default/icons/x16/photo_album__arrow.png | Bin 784 -> 0 bytes .../icons/x16/photo_album__exclamation.png | Bin 804 -> 0 bytes .../default/icons/x16/photo_album__minus.png | Bin 742 -> 0 bytes .../default/icons/x16/photo_album__pencil.png | Bin 802 -> 0 bytes .../default/icons/x16/photo_album__plus.png | Bin 762 -> 0 bytes .../default/icons/x16/photo_album_blue.png | Bin 738 -> 0 bytes .../themes/default/icons/x16/piano.png | Bin 370 -> 0 bytes .../themes/default/icons/x16/piano_arrow.png | Bin 541 -> 0 bytes .../default/icons/x16/piano_exclamation.png | Bin 594 -> 0 bytes .../themes/default/icons/x16/piano_minus.png | Bin 430 -> 0 bytes .../themes/default/icons/x16/piano_pencil.png | Bin 551 -> 0 bytes .../themes/default/icons/x16/piano_plus.png | Bin 504 -> 0 bytes .../themes/default/icons/x16/picture.png | Bin 531 -> 0 bytes .../default/icons/x16/picture_arrow.png | Bin 658 -> 0 bytes .../default/icons/x16/picture_exclamation.png | Bin 683 -> 0 bytes .../default/icons/x16/picture_minus.png | Bin 570 -> 0 bytes .../default/icons/x16/picture_pencil.png | Bin 670 -> 0 bytes .../themes/default/icons/x16/picture_plus.png | Bin 633 -> 0 bytes .../default/icons/x16/picture_small.png | Bin 332 -> 0 bytes .../icons/x16/picture_small_sunset.png | Bin 326 -> 0 bytes .../default/icons/x16/picture_sunset.png | Bin 509 -> 0 bytes .../themes/default/icons/x16/pictures.png | Bin 609 -> 0 bytes .../default/icons/x16/pictures_arrow.png | Bin 682 -> 0 bytes .../icons/x16/pictures_exclamation.png | Bin 713 -> 0 bytes .../default/icons/x16/pictures_minus.png | Bin 645 -> 0 bytes .../default/icons/x16/pictures_pencil.png | Bin 706 -> 0 bytes .../default/icons/x16/pictures_plus.png | Bin 661 -> 0 bytes .../themes/default/icons/x16/pill.png | Bin 603 -> 0 bytes .../themes/default/icons/x16/pill_arrow.png | Bin 727 -> 0 bytes .../default/icons/x16/pill_exclamation.png | Bin 750 -> 0 bytes .../themes/default/icons/x16/pill_minus.png | Bin 629 -> 0 bytes .../themes/default/icons/x16/pill_pencil.png | Bin 782 -> 0 bytes .../themes/default/icons/x16/pill_plus.png | Bin 704 -> 0 bytes .../themes/default/icons/x16/pill_small.png | Bin 404 -> 0 bytes .../themes/default/icons/x16/pin.png | Bin 645 -> 0 bytes .../themes/default/icons/x16/pin_arrow.png | Bin 778 -> 0 bytes .../default/icons/x16/pin_exclamation.png | Bin 784 -> 0 bytes .../themes/default/icons/x16/pin_minus.png | Bin 665 -> 0 bytes .../themes/default/icons/x16/pin_pencil.png | Bin 751 -> 0 bytes .../themes/default/icons/x16/pin_plus.png | Bin 741 -> 0 bytes .../themes/default/icons/x16/pipette.png | Bin 576 -> 0 bytes .../default/icons/x16/pipette_arrow.png | Bin 728 -> 0 bytes .../default/icons/x16/pipette_exclamation.png | Bin 745 -> 0 bytes .../default/icons/x16/pipette_minus.png | Bin 613 -> 0 bytes .../default/icons/x16/pipette_pencil.png | Bin 725 -> 0 bytes .../themes/default/icons/x16/pipette_plus.png | Bin 692 -> 0 bytes .../themes/default/icons/x16/playing_card.png | Bin 717 -> 0 bytes .../default/icons/x16/playing_card_arrow.png | Bin 796 -> 0 bytes .../icons/x16/playing_card_exclamation.png | Bin 819 -> 0 bytes .../default/icons/x16/playing_card_minus.png | Bin 752 -> 0 bytes .../default/icons/x16/playing_card_pencil.png | Bin 821 -> 0 bytes .../default/icons/x16/playing_card_plus.png | Bin 776 -> 0 bytes .../themes/default/icons/x16/plug.png | Bin 664 -> 0 bytes .../themes/default/icons/x16/plug_arrow.png | Bin 787 -> 0 bytes .../default/icons/x16/plug_exclamation.png | Bin 804 -> 0 bytes .../themes/default/icons/x16/plug_minus.png | Bin 708 -> 0 bytes .../themes/default/icons/x16/plug_pencil.png | Bin 820 -> 0 bytes .../themes/default/icons/x16/plug_plus.png | Bin 749 -> 0 bytes .../themes/default/icons/x16/plus.png | Bin 511 -> 0 bytes .../themes/default/icons/x16/plus_circle.png | Bin 694 -> 0 bytes .../default/icons/x16/plus_circle_frame.png | Bin 878 -> 0 bytes .../themes/default/icons/x16/plus_shield.png | Bin 758 -> 0 bytes .../themes/default/icons/x16/plus_small.png | Bin 296 -> 0 bytes .../default/icons/x16/plus_small_circle.png | Bin 332 -> 0 bytes .../themes/default/icons/x16/printer.png | Bin 736 -> 0 bytes .../default/icons/x16/printer__arrow.png | Bin 806 -> 0 bytes .../icons/x16/printer__exclamation.png | Bin 843 -> 0 bytes .../default/icons/x16/printer__minus.png | Bin 759 -> 0 bytes .../default/icons/x16/printer__pencil.png | Bin 827 -> 0 bytes .../default/icons/x16/printer__plus.png | Bin 788 -> 0 bytes .../default/icons/x16/printer_empty.png | Bin 544 -> 0 bytes .../default/icons/x16/printer_small.png | Bin 436 -> 0 bytes .../themes/default/icons/x16/puzzle.png | Bin 756 -> 0 bytes .../default/icons/x16/puzzle__arrow.png | Bin 916 -> 0 bytes .../default/icons/x16/puzzle__exclamation.png | Bin 897 -> 0 bytes .../default/icons/x16/puzzle__minus.png | Bin 811 -> 0 bytes .../default/icons/x16/puzzle__pencil.png | Bin 911 -> 0 bytes .../themes/default/icons/x16/puzzle__plus.png | Bin 844 -> 0 bytes .../default/icons/x16/puzzle_disable.png | Bin 715 -> 0 bytes .../themes/default/icons/x16/question.png | Bin 760 -> 0 bytes .../default/icons/x16/question_frame.png | Bin 937 -> 0 bytes .../default/icons/x16/question_shield.png | Bin 806 -> 0 bytes .../default/icons/x16/question_small.png | Bin 337 -> 0 bytes .../themes/default/icons/x16/receipt.png | Bin 428 -> 0 bytes .../default/icons/x16/receipt_arrow.png | Bin 568 -> 0 bytes .../default/icons/x16/receipt_exclamation.png | Bin 623 -> 0 bytes .../default/icons/x16/receipt_minus.png | Bin 501 -> 0 bytes .../default/icons/x16/receipt_pencil.png | Bin 633 -> 0 bytes .../themes/default/icons/x16/receipt_plus.png | Bin 530 -> 0 bytes .../default/icons/x16/receipt_shred.png | Bin 526 -> 0 bytes .../themes/default/icons/x16/receipt_text.png | Bin 500 -> 0 bytes .../themes/default/icons/x16/receipts.png | Bin 566 -> 0 bytes .../default/icons/x16/receipts_arrow.png | Bin 658 -> 0 bytes .../icons/x16/receipts_exclamation.png | Bin 677 -> 0 bytes .../default/icons/x16/receipts_minus.png | Bin 597 -> 0 bytes .../default/icons/x16/receipts_pencil.png | Bin 693 -> 0 bytes .../default/icons/x16/receipts_plus.png | Bin 644 -> 0 bytes .../default/icons/x16/receipts_text.png | Bin 648 -> 0 bytes .../themes/default/icons/x16/report.png | Bin 537 -> 0 bytes .../themes/default/icons/x16/report_arrow.png | Bin 658 -> 0 bytes .../default/icons/x16/report_exclamation.png | Bin 735 -> 0 bytes .../themes/default/icons/x16/report_minus.png | Bin 585 -> 0 bytes .../default/icons/x16/report_pencil.png | Bin 706 -> 0 bytes .../themes/default/icons/x16/report_plus.png | Bin 630 -> 0 bytes .../themes/default/icons/x16/ruler.png | Bin 633 -> 0 bytes .../themes/default/icons/x16/ruler__arrow.png | Bin 788 -> 0 bytes .../default/icons/x16/ruler__exclamation.png | Bin 808 -> 0 bytes .../themes/default/icons/x16/ruler__minus.png | Bin 658 -> 0 bytes .../default/icons/x16/ruler__pencil.png | Bin 761 -> 0 bytes .../themes/default/icons/x16/ruler__plus.png | Bin 746 -> 0 bytes .../themes/default/icons/x16/ruler_crop.png | Bin 747 -> 0 bytes .../themes/default/icons/x16/safe.png | Bin 609 -> 0 bytes .../themes/default/icons/x16/safe_arrow.png | Bin 707 -> 0 bytes .../default/icons/x16/safe_exclamation.png | Bin 732 -> 0 bytes .../themes/default/icons/x16/safe_minus.png | Bin 642 -> 0 bytes .../themes/default/icons/x16/safe_pencil.png | Bin 736 -> 0 bytes .../themes/default/icons/x16/safe_plus.png | Bin 687 -> 0 bytes .../themes/default/icons/x16/screwdriver.png | Bin 564 -> 0 bytes .../default/icons/x16/screwdriver_arrow.png | Bin 768 -> 0 bytes .../icons/x16/screwdriver_exclamation.png | Bin 772 -> 0 bytes .../default/icons/x16/screwdriver_minus.png | Bin 607 -> 0 bytes .../default/icons/x16/screwdriver_pencil.png | Bin 720 -> 0 bytes .../default/icons/x16/screwdriver_plus.png | Bin 703 -> 0 bytes .../themes/default/icons/x16/script.png | Bin 456 -> 0 bytes .../default/icons/x16/script__arrow.png | Bin 558 -> 0 bytes .../default/icons/x16/script__exclamation.png | Bin 627 -> 0 bytes .../default/icons/x16/script__minus.png | Bin 497 -> 0 bytes .../default/icons/x16/script__pencil.png | Bin 647 -> 0 bytes .../themes/default/icons/x16/script__plus.png | Bin 543 -> 0 bytes .../themes/default/icons/x16/script_code.png | Bin 512 -> 0 bytes .../themes/default/icons/x16/scripts.png | Bin 573 -> 0 bytes .../default/icons/x16/scripts__arrow.png | Bin 681 -> 0 bytes .../icons/x16/scripts__exclamation.png | Bin 700 -> 0 bytes .../default/icons/x16/scripts__minus.png | Bin 605 -> 0 bytes .../default/icons/x16/scripts__pencil.png | Bin 696 -> 0 bytes .../default/icons/x16/scripts__plus.png | Bin 656 -> 0 bytes .../themes/default/icons/x16/scripts_code.png | Bin 663 -> 0 bytes .../themes/default/icons/x16/shield.png | Bin 703 -> 0 bytes .../default/icons/x16/shield__arrow.png | Bin 797 -> 0 bytes .../default/icons/x16/shield__exclamation.png | Bin 815 -> 0 bytes .../default/icons/x16/shield__minus.png | Bin 744 -> 0 bytes .../default/icons/x16/shield__pencil.png | Bin 836 -> 0 bytes .../themes/default/icons/x16/shield__plus.png | Bin 785 -> 0 bytes .../default/icons/x16/shield_disable.png | Bin 589 -> 0 bytes .../themes/default/icons/x16/slash.png | Bin 751 -> 0 bytes .../themes/default/icons/x16/slash_small.png | Bin 294 -> 0 bytes .../themes/default/icons/x16/socket.png | Bin 546 -> 0 bytes .../themes/default/icons/x16/socket_arrow.png | Bin 669 -> 0 bytes .../default/icons/x16/socket_exclamation.png | Bin 708 -> 0 bytes .../themes/default/icons/x16/socket_minus.png | Bin 586 -> 0 bytes .../default/icons/x16/socket_pencil.png | Bin 708 -> 0 bytes .../themes/default/icons/x16/socket_plus.png | Bin 639 -> 0 bytes .../themes/default/icons/x16/sort.png | Bin 452 -> 0 bytes .../themes/default/icons/x16/sort__arrow.png | Bin 610 -> 0 bytes .../default/icons/x16/sort__exclamation.png | Bin 698 -> 0 bytes .../themes/default/icons/x16/sort__minus.png | Bin 497 -> 0 bytes .../themes/default/icons/x16/sort__pencil.png | Bin 650 -> 0 bytes .../themes/default/icons/x16/sort__plus.png | Bin 565 -> 0 bytes .../default/icons/x16/sort_alphabet.png | Bin 588 -> 0 bytes .../icons/x16/sort_alphabet_descending.png | Bin 587 -> 0 bytes .../themes/default/icons/x16/sort_date.png | Bin 558 -> 0 bytes .../icons/x16/sort_date_descending.png | Bin 520 -> 0 bytes .../themes/default/icons/x16/sort_number.png | Bin 566 -> 0 bytes .../icons/x16/sort_number_descending.png | Bin 564 -> 0 bytes .../default/icons/x16/sort_quantity.png | Bin 543 -> 0 bytes .../icons/x16/sort_quantity_descending.png | Bin 542 -> 0 bytes .../themes/default/icons/x16/sort_small.png | Bin 370 -> 0 bytes .../themes/default/icons/x16/stamp.png | Bin 667 -> 0 bytes .../themes/default/icons/x16/stamp_arrow.png | Bin 774 -> 0 bytes .../default/icons/x16/stamp_exclamation.png | Bin 822 -> 0 bytes .../themes/default/icons/x16/stamp_minus.png | Bin 721 -> 0 bytes .../themes/default/icons/x16/stamp_pencil.png | Bin 801 -> 0 bytes .../themes/default/icons/x16/stamp_plus.png | Bin 748 -> 0 bytes .../themes/default/icons/x16/star.png | Bin 750 -> 0 bytes .../themes/default/icons/x16/star__arrow.png | Bin 815 -> 0 bytes .../default/icons/x16/star__exclamation.png | Bin 811 -> 0 bytes .../themes/default/icons/x16/star__minus.png | Bin 767 -> 0 bytes .../themes/default/icons/x16/star__pencil.png | Bin 874 -> 0 bytes .../themes/default/icons/x16/star__plus.png | Bin 797 -> 0 bytes .../themes/default/icons/x16/star_empty.png | Bin 658 -> 0 bytes .../themes/default/icons/x16/star_half.png | Bin 793 -> 0 bytes .../themes/default/icons/x16/star_small.png | Bin 406 -> 0 bytes .../default/icons/x16/star_small_empty.png | Bin 388 -> 0 bytes .../default/icons/x16/star_small_half.png | Bin 418 -> 0 bytes .../themes/default/icons/x16/sticky_note.png | Bin 467 -> 0 bytes .../default/icons/x16/sticky_note__arrow.png | Bin 608 -> 0 bytes .../icons/x16/sticky_note__exclamation.png | Bin 647 -> 0 bytes .../default/icons/x16/sticky_note__minus.png | Bin 507 -> 0 bytes .../default/icons/x16/sticky_note__pencil.png | Bin 636 -> 0 bytes .../default/icons/x16/sticky_note__plus.png | Bin 575 -> 0 bytes .../default/icons/x16/sticky_note_pin.png | Bin 522 -> 0 bytes .../default/icons/x16/sticky_note_shred.png | Bin 592 -> 0 bytes .../default/icons/x16/sticky_note_small.png | Bin 334 -> 0 bytes .../icons/x16/sticky_note_small_pin.png | Bin 377 -> 0 bytes .../default/icons/x16/sticky_note_text.png | Bin 548 -> 0 bytes .../themes/default/icons/x16/sticky_notes.png | Bin 556 -> 0 bytes .../default/icons/x16/sticky_notes__arrow.png | Bin 668 -> 0 bytes .../icons/x16/sticky_notes__exclamation.png | Bin 669 -> 0 bytes .../default/icons/x16/sticky_notes__minus.png | Bin 590 -> 0 bytes .../icons/x16/sticky_notes__pencil.png | Bin 678 -> 0 bytes .../default/icons/x16/sticky_notes__plus.png | Bin 640 -> 0 bytes .../default/icons/x16/sticky_notes_pin.png | Bin 637 -> 0 bytes .../default/icons/x16/sticky_notes_stack.png | Bin 558 -> 0 bytes .../default/icons/x16/sticky_notes_text.png | Bin 631 -> 0 bytes .../themes/default/icons/x16/switch.png | Bin 542 -> 0 bytes .../themes/default/icons/x16/switch_arrow.png | Bin 652 -> 0 bytes .../default/icons/x16/switch_exclamation.png | Bin 677 -> 0 bytes .../themes/default/icons/x16/switch_minus.png | Bin 570 -> 0 bytes .../default/icons/x16/switch_pencil.png | Bin 687 -> 0 bytes .../themes/default/icons/x16/switch_plus.png | Bin 634 -> 0 bytes .../themes/default/icons/x16/table.png | Bin 521 -> 0 bytes .../themes/default/icons/x16/table__arrow.png | Bin 648 -> 0 bytes .../default/icons/x16/table__exclamation.png | Bin 693 -> 0 bytes .../themes/default/icons/x16/table__minus.png | Bin 560 -> 0 bytes .../default/icons/x16/table__pencil.png | Bin 683 -> 0 bytes .../themes/default/icons/x16/table__plus.png | Bin 634 -> 0 bytes .../themes/default/icons/x16/table_delete.png | Bin 634 -> 0 bytes .../default/icons/x16/table_delete_column.png | Bin 661 -> 0 bytes .../themes/default/icons/x16/table_insert.png | Bin 605 -> 0 bytes .../default/icons/x16/table_insert_column.png | Bin 652 -> 0 bytes .../themes/default/icons/x16/tables.png | Bin 666 -> 0 bytes .../themes/default/icons/x16/tables_arrow.png | Bin 743 -> 0 bytes .../default/icons/x16/tables_exclamation.png | Bin 763 -> 0 bytes .../themes/default/icons/x16/tables_minus.png | Bin 681 -> 0 bytes .../default/icons/x16/tables_pencil.png | Bin 762 -> 0 bytes .../themes/default/icons/x16/tables_plus.png | Bin 719 -> 0 bytes .../default/icons/x16/tables_stacks.png | Bin 580 -> 0 bytes .../themes/default/icons/x16/tag.png | Bin 703 -> 0 bytes .../themes/default/icons/x16/tag__arrow.png | Bin 795 -> 0 bytes .../default/icons/x16/tag__exclamation.png | Bin 804 -> 0 bytes .../themes/default/icons/x16/tag__minus.png | Bin 733 -> 0 bytes .../themes/default/icons/x16/tag__pencil.png | Bin 848 -> 0 bytes .../themes/default/icons/x16/tag__plus.png | Bin 767 -> 0 bytes .../themes/default/icons/x16/tag_label.png | Bin 760 -> 0 bytes .../themes/default/icons/x16/tag_small.png | Bin 392 -> 0 bytes .../themes/default/icons/x16/tags.png | Bin 710 -> 0 bytes .../themes/default/icons/x16/tags__arrow.png | Bin 801 -> 0 bytes .../default/icons/x16/tags__exclamation.png | Bin 825 -> 0 bytes .../themes/default/icons/x16/tags__minus.png | Bin 737 -> 0 bytes .../themes/default/icons/x16/tags__pencil.png | Bin 862 -> 0 bytes .../themes/default/icons/x16/tags__plus.png | Bin 791 -> 0 bytes .../themes/default/icons/x16/tags_label.png | Bin 762 -> 0 bytes .../themes/default/icons/x16/tick.png | Bin 640 -> 0 bytes .../themes/default/icons/x16/tick_circle.png | Bin 741 -> 0 bytes .../default/icons/x16/tick_circle_frame.png | Bin 933 -> 0 bytes .../themes/default/icons/x16/tick_shield.png | Bin 801 -> 0 bytes .../themes/default/icons/x16/tick_small.png | Bin 283 -> 0 bytes .../default/icons/x16/tick_small_circle.png | Bin 329 -> 0 bytes .../themes/default/icons/x16/ticket.png | Bin 730 -> 0 bytes .../themes/default/icons/x16/ticket_arrow.png | Bin 824 -> 0 bytes .../default/icons/x16/ticket_exclamation.png | Bin 817 -> 0 bytes .../themes/default/icons/x16/ticket_minus.png | Bin 763 -> 0 bytes .../default/icons/x16/ticket_pencil.png | Bin 904 -> 0 bytes .../themes/default/icons/x16/ticket_plus.png | Bin 799 -> 0 bytes .../themes/default/icons/x16/ticket_small.png | Bin 408 -> 0 bytes .../themes/default/icons/x16/trophy.png | Bin 882 -> 0 bytes .../themes/default/icons/x16/trophy_arrow.png | Bin 963 -> 0 bytes .../default/icons/x16/trophy_exclamation.png | Bin 953 -> 0 bytes .../themes/default/icons/x16/trophy_minus.png | Bin 887 -> 0 bytes .../default/icons/x16/trophy_pencil.png | Bin 976 -> 0 bytes .../themes/default/icons/x16/trophy_plus.png | Bin 920 -> 0 bytes .../themes/default/icons/x16/tux.png | Bin 696 -> 0 bytes .../themes/default/icons/x16/user.png | Bin 741 -> 0 bytes .../themes/default/icons/x16/user_add.png | Bin 746 -> 0 bytes .../themes/default/icons/x16/user_comment.png | Bin 743 -> 0 bytes .../themes/default/icons/x16/user_delete.png | Bin 767 -> 0 bytes .../themes/default/icons/x16/user_edit.png | Bin 833 -> 0 bytes .../themes/default/icons/x16/user_female.png | Bin 663 -> 0 bytes .../themes/default/icons/x16/user_go.png | Bin 793 -> 0 bytes .../themes/default/icons/x16/user_gray.png | Bin 706 -> 0 bytes .../themes/default/icons/x16/user_green.png | Bin 722 -> 0 bytes .../themes/default/icons/x16/user_orange.png | Bin 723 -> 0 bytes .../themes/default/icons/x16/user_red.png | Bin 717 -> 0 bytes .../themes/default/icons/x16/user_suit.png | Bin 748 -> 0 bytes .../themes/default/icons/x16/vcard.png | Bin 533 -> 0 bytes .../themes/default/icons/x16/vcard_add.png | Bin 661 -> 0 bytes .../themes/default/icons/x16/vcard_delete.png | Bin 651 -> 0 bytes .../themes/default/icons/x16/vcard_edit.png | Bin 775 -> 0 bytes .../themes/default/icons/x16/wall.png | Bin 547 -> 0 bytes .../themes/default/icons/x16/wall__arrow.png | Bin 675 -> 0 bytes .../default/icons/x16/wall__exclamation.png | Bin 712 -> 0 bytes .../themes/default/icons/x16/wall__minus.png | Bin 582 -> 0 bytes .../themes/default/icons/x16/wall__pencil.png | Bin 687 -> 0 bytes .../themes/default/icons/x16/wall__plus.png | Bin 654 -> 0 bytes .../themes/default/icons/x16/wall_brick.png | Bin 442 -> 0 bytes .../themes/default/icons/x16/wall_disable.png | Bin 415 -> 0 bytes .../themes/default/icons/x16/wall_small.png | Bin 420 -> 0 bytes .../default/icons/x16/wall_small_brick.png | Bin 360 -> 0 bytes .../themes/default/icons/x16/wallet.png | Bin 490 -> 0 bytes .../themes/default/icons/x16/wallet_arrow.png | Bin 638 -> 0 bytes .../default/icons/x16/wallet_exclamation.png | Bin 695 -> 0 bytes .../themes/default/icons/x16/wallet_minus.png | Bin 520 -> 0 bytes .../default/icons/x16/wallet_pencil.png | Bin 633 -> 0 bytes .../themes/default/icons/x16/wallet_plus.png | Bin 607 -> 0 bytes .../themes/default/icons/x16/wand.png | Bin 597 -> 0 bytes .../themes/default/icons/x16/wand_arrow.png | Bin 804 -> 0 bytes .../default/icons/x16/wand_exclamation.png | Bin 819 -> 0 bytes .../themes/default/icons/x16/wand_minus.png | Bin 665 -> 0 bytes .../themes/default/icons/x16/wand_pencil.png | Bin 706 -> 0 bytes .../themes/default/icons/x16/wand_plus.png | Bin 737 -> 0 bytes .../themes/default/icons/x16/wrench.png | Bin 687 -> 0 bytes .../themes/default/icons/x16/wrench_arrow.png | Bin 845 -> 0 bytes .../default/icons/x16/wrench_exclamation.png | Bin 889 -> 0 bytes .../themes/default/icons/x16/wrench_minus.png | Bin 733 -> 0 bytes .../default/icons/x16/wrench_pencil.png | Bin 824 -> 0 bytes .../themes/default/icons/x16/wrench_plus.png | Bin 805 -> 0 bytes .../default/icons/x16/wrench_screwdriver.png | Bin 913 -> 0 bytes .../default/icons/x32/state_critical.png | Bin 2409 -> 0 bytes .../themes/default/icons/x32/state_error.png | Bin 2212 -> 0 bytes .../themes/default/icons/x32/state_info.png | Bin 2184 -> 0 bytes .../themes/default/icons/x32/state_ok.png | Bin 1518 -> 0 bytes .../default/icons/x32/state_unknown.png | Bin 2832 -> 0 bytes .../default/icons/x32/state_warning.png | Bin 1931 -> 0 bytes .../themes/default/icons/x64/network.png | Bin 7481 -> 0 bytes .../themes/default/icons/x64/server.png | Bin 7475 -> 0 bytes .../themes/default/images/buttonHolder_bg.gif | Bin 609 -> 0 bytes .../themes/default/images/favicon.ico | Bin 1406 -> 0 bytes .../themes/default/images/header_bg.png | Bin 322 -> 0 bytes .../themes/default/images/header_logo.png | Bin 2452 -> 0 bytes .../themes/default/images/header_logo.png.old | Bin 36266 -> 0 bytes .../themes/default/images/lists_tfoot_bg.png | Bin 167 -> 0 bytes .../themes/default/images/lists_thead_bg.png | Bin 222 -> 0 bytes .../themes/default/images/meter_bg.gif | Bin 80 -> 0 bytes .../themes/default/images/screen_bg.png | Bin 206 -> 0 bytes .../interface/themes/default/licences.txt | 8 - .../themes/default/templates/form.tpl.htm | 1 - .../themes/default/templates/listpage.tpl.htm | 1 - .../themes/default/templates/main.tpl.htm | 111 - .../themes/default/templates/module.tpl.htm | 37 - .../default/templates/module_tree.tpl.htm | 38 - .../themes/default/templates/sidenav.tpl.htm | 24 - .../default/templates/tabbed_form.tpl.htm | 28 - .../themes/default/templates/topnav.tpl.htm | 9 - .../themes/default/yaml/!important.txt | 4 - .../themes/default/yaml/core/base.css | 229 - .../themes/default/yaml/core/iehacks.css | 310 - .../themes/default/yaml/core/print_base.css | 120 - .../themes/default/yaml/core/slim_base.css | 50 - .../themes/default/yaml/core/slim_iehacks.css | 36 - .../default/yaml/core/slim_print_base.css | 21 - .../themes/default/yaml/debug/debug.css | 157 - .../yaml/debug/images/grid_pattern.png | Bin 29833 -> 0 bytes .../yaml/debug/images/warning_iehacks.gif | Bin 2912 -> 0 bytes .../default/yaml/debug/images/yaml_debug.gif | Bin 2842 -> 0 bytes .../default/yaml/navigation/nav_vlist.css | 109 - .../yaml/patches/patch_layout_draft.css | 29 - .../default/yaml/patches/patch_nav_vlist.css | 61 - .../default/yaml/print/print_003_draft.css | 32 - .../default/yaml/print/print_020_draft.css | 31 - .../default/yaml/print/print_023_draft.css | 40 - .../default/yaml/print/print_100_draft.css | 31 - .../default/yaml/print/print_103_draft.css | 38 - .../default/yaml/print/print_120_draft.css | 39 - .../default/yaml/print/print_123_draft.css | 40 - .../default/yaml/screen/basemod_draft.css | 70 - .../default/yaml/screen/content_default.css | 170 - .../web/tools/form/user_settings.tform.php | 144 - .../ispconfig/interface/web/tools/index.php | 50 - .../interface/web/tools/lib/lang/bg.lng | 6 - .../web/tools/lib/lang/bg_usersettings.lng | 8 - .../interface/web/tools/lib/lang/br.lng | 6 - .../web/tools/lib/lang/br_usersettings.lng | 8 - .../interface/web/tools/lib/lang/de.lng | 6 - .../web/tools/lib/lang/de_usersettings.lng | 8 - .../interface/web/tools/lib/lang/en.lng | 6 - .../web/tools/lib/lang/en_usersettings.lng | 8 - .../interface/web/tools/lib/lang/es.lng | 6 - .../web/tools/lib/lang/es_usersettings.lng | 8 - .../interface/web/tools/lib/lang/fi.lng | 6 - .../web/tools/lib/lang/fi_usersettings.lng | 8 - .../interface/web/tools/lib/lang/fr.lng | 6 - .../web/tools/lib/lang/fr_usersettings.lng | 8 - .../interface/web/tools/lib/lang/hu.lng | 6 - .../web/tools/lib/lang/hu_usersettings.lng | 8 - .../interface/web/tools/lib/lang/it.lng | 6 - .../web/tools/lib/lang/it_usersettings.lng | 8 - .../interface/web/tools/lib/lang/ja.lng | 6 - .../web/tools/lib/lang/ja_usersettings.lng | 8 - .../interface/web/tools/lib/lang/nl.lng | 6 - .../web/tools/lib/lang/nl_usersettings.lng | 8 - .../interface/web/tools/lib/lang/pl.lng | 6 - .../web/tools/lib/lang/pl_usersettings.lng | 8 - .../interface/web/tools/lib/lang/pt.lng | 7 - .../web/tools/lib/lang/pt_usersettings.lng | 9 - .../interface/web/tools/lib/lang/ro.lng | 6 - .../web/tools/lib/lang/ro_usersettings.lng | 8 - .../interface/web/tools/lib/lang/ru.lng | 7 - .../web/tools/lib/lang/ru_usersettings.lng | 9 - .../interface/web/tools/lib/lang/se.lng | 6 - .../web/tools/lib/lang/se_usersettings.lng | 8 - .../interface/web/tools/lib/lang/sk.lng | 6 - .../web/tools/lib/lang/sk_usersettings.lng | 8 - .../interface/web/tools/lib/lang/tr.lng | 6 - .../web/tools/lib/lang/tr_usersettings.lng | 8 - .../web/tools/lib/menu.d/statistics.menu.php | 25 - .../interface/web/tools/lib/module.conf.php | 38 - .../web/tools/templates/user_settings.htm | 36 - .../interface/web/tools/user_settings.php | 97 - .../ispconfig/nbproject/project.properties | 8 - interface/ispconfig/nbproject/project.xml | 9 - .../server/conf/apache_apps.vhost.master | 42 - .../server/conf/apache_ispconfig.conf.master | 43 - .../server/conf/autoresponder.master | 23 - .../ispconfig/server/conf/bash.bashrc.master | 65 - .../server/conf/bastille-firewall.cfg.master | 320 - .../server/conf/bind_named.conf.local.master | 9 - .../server/conf/bind_pri.domain.master | 48 - .../conf/debian_network_interfaces.master | 27 - .../ispconfig/server/conf/error/br/400.html | 63 - .../ispconfig/server/conf/error/br/401.html | 61 - .../ispconfig/server/conf/error/br/403.html | 61 - .../ispconfig/server/conf/error/br/404.html | 61 - .../ispconfig/server/conf/error/br/405.html | 61 - .../ispconfig/server/conf/error/br/500.html | 61 - .../ispconfig/server/conf/error/br/503.html | 61 - .../ispconfig/server/conf/error/cz/400.html | 61 - .../ispconfig/server/conf/error/cz/401.html | 61 - .../ispconfig/server/conf/error/cz/403.html | 61 - .../ispconfig/server/conf/error/cz/404.html | 61 - .../ispconfig/server/conf/error/cz/405.html | 61 - .../ispconfig/server/conf/error/cz/500.html | 61 - .../ispconfig/server/conf/error/cz/503.html | 61 - .../ispconfig/server/conf/error/de/400.html | 61 - .../ispconfig/server/conf/error/de/401.html | 61 - .../ispconfig/server/conf/error/de/403.html | 61 - .../ispconfig/server/conf/error/de/404.html | 61 - .../ispconfig/server/conf/error/de/405.html | 61 - .../ispconfig/server/conf/error/de/500.html | 61 - .../ispconfig/server/conf/error/de/503.html | 62 - .../ispconfig/server/conf/error/en/400.html | 61 - .../ispconfig/server/conf/error/en/401.html | 61 - .../ispconfig/server/conf/error/en/403.html | 61 - .../ispconfig/server/conf/error/en/404.html | 61 - .../ispconfig/server/conf/error/en/405.html | 61 - .../ispconfig/server/conf/error/en/500.html | 61 - .../ispconfig/server/conf/error/en/503.html | 61 - .../ispconfig/server/conf/error/es/400.html | 61 - .../ispconfig/server/conf/error/es/401.html | 61 - .../ispconfig/server/conf/error/es/403.html | 61 - .../ispconfig/server/conf/error/es/404.html | 61 - .../ispconfig/server/conf/error/es/405.html | 61 - .../ispconfig/server/conf/error/es/500.html | 61 - .../ispconfig/server/conf/error/es/503.html | 61 - .../ispconfig/server/conf/error/fi/400.html | 61 - .../ispconfig/server/conf/error/fi/401.html | 61 - .../ispconfig/server/conf/error/fi/403.html | 61 - .../ispconfig/server/conf/error/fi/404.html | 61 - .../ispconfig/server/conf/error/fi/405.html | 61 - .../ispconfig/server/conf/error/fi/500.html | 61 - .../ispconfig/server/conf/error/fi/503.html | 61 - .../ispconfig/server/conf/error/fr/400.html | 61 - .../ispconfig/server/conf/error/fr/401.html | 61 - .../ispconfig/server/conf/error/fr/403.html | 61 - .../ispconfig/server/conf/error/fr/404.html | 61 - .../ispconfig/server/conf/error/fr/405.html | 61 - .../ispconfig/server/conf/error/fr/500.html | 61 - .../ispconfig/server/conf/error/fr/503.html | 61 - .../ispconfig/server/conf/error/gr/400.html | 61 - .../ispconfig/server/conf/error/gr/401.html | 61 - .../ispconfig/server/conf/error/gr/403.html | 61 - .../ispconfig/server/conf/error/gr/404.html | 61 - .../ispconfig/server/conf/error/gr/405.html | 61 - .../ispconfig/server/conf/error/gr/500.html | 61 - .../ispconfig/server/conf/error/gr/503.html | 61 - .../ispconfig/server/conf/error/hu/400.html | 61 - .../ispconfig/server/conf/error/hu/401.html | 61 - .../ispconfig/server/conf/error/hu/403.html | 61 - .../ispconfig/server/conf/error/hu/404.html | 61 - .../ispconfig/server/conf/error/hu/405.html | 61 - .../ispconfig/server/conf/error/hu/500.html | 61 - .../ispconfig/server/conf/error/hu/503.html | 61 - .../ispconfig/server/conf/error/it/400.html | 61 - .../ispconfig/server/conf/error/it/401.html | 61 - .../ispconfig/server/conf/error/it/403.html | 61 - .../ispconfig/server/conf/error/it/404.html | 61 - .../ispconfig/server/conf/error/it/405.html | 61 - .../ispconfig/server/conf/error/it/500.html | 61 - .../ispconfig/server/conf/error/it/503.html | 61 - .../ispconfig/server/conf/error/nl/400.html | 61 - .../ispconfig/server/conf/error/nl/401.html | 61 - .../ispconfig/server/conf/error/nl/403.html | 61 - .../ispconfig/server/conf/error/nl/404.html | 61 - .../ispconfig/server/conf/error/nl/405.html | 61 - .../ispconfig/server/conf/error/nl/500.html | 61 - .../ispconfig/server/conf/error/nl/503.html | 61 - .../ispconfig/server/conf/error/pl/400.html | 61 - .../ispconfig/server/conf/error/pl/401.html | 61 - .../ispconfig/server/conf/error/pl/403.html | 61 - .../ispconfig/server/conf/error/pl/404.html | 61 - .../ispconfig/server/conf/error/pl/405.html | 61 - .../ispconfig/server/conf/error/pl/500.html | 61 - .../ispconfig/server/conf/error/pl/503.html | 61 - .../ispconfig/server/conf/error/se/400.html | 61 - .../ispconfig/server/conf/error/se/401.html | 61 - .../ispconfig/server/conf/error/se/403.html | 61 - .../ispconfig/server/conf/error/se/404.html | 61 - .../ispconfig/server/conf/error/se/405.html | 61 - .../ispconfig/server/conf/error/se/500.html | 61 - .../ispconfig/server/conf/error/se/503.html | 61 - .../ispconfig/server/conf/error/si/400.html | 61 - .../ispconfig/server/conf/error/si/401.html | 61 - .../ispconfig/server/conf/error/si/403.html | 61 - .../ispconfig/server/conf/error/si/404.html | 61 - .../ispconfig/server/conf/error/si/405.html | 61 - .../ispconfig/server/conf/error/si/500.html | 61 - .../ispconfig/server/conf/error/si/503.html | 61 - .../ispconfig/server/conf/error/sr/400.html | 61 - .../ispconfig/server/conf/error/sr/401.html | 61 - .../ispconfig/server/conf/error/sr/403.html | 61 - .../ispconfig/server/conf/error/sr/404.html | 61 - .../ispconfig/server/conf/error/sr/405.html | 61 - .../ispconfig/server/conf/error/sr/500.html | 61 - .../ispconfig/server/conf/error/sr/503.html | 61 - .../conf/gentoo_network_interfaces.master | 13 - .../ispconfig/server/conf/getmail.conf.master | 16 - .../ispconfig/server/conf/index/.htaccess | 0 .../ispconfig/server/conf/index/favicon.ico | Bin 1406 -> 0 bytes .../ispconfig/server/conf/index/robots.txt | 2 - .../server/conf/index/standard_index.html_br | 60 - .../server/conf/index/standard_index.html_cz | 60 - .../server/conf/index/standard_index.html_de | 60 - .../server/conf/index/standard_index.html_en | 60 - .../server/conf/index/standard_index.html_es | 60 - .../server/conf/index/standard_index.html_fi | 60 - .../server/conf/index/standard_index.html_fr | 60 - .../server/conf/index/standard_index.html_gr | 60 - .../server/conf/index/standard_index.html_hu | 60 - .../server/conf/index/standard_index.html_it | 60 - .../server/conf/index/standard_index.html_nl | 60 - .../server/conf/index/standard_index.html_pl | 60 - .../server/conf/index/standard_index.html_se | 60 - .../server/conf/index/standard_index.html_sr | 60 - .../conf/index/user_standard_index.html_br | 60 - .../conf/index/user_standard_index.html_cz | 60 - .../conf/index/user_standard_index.html_de | 60 - .../conf/index/user_standard_index.html_en | 60 - .../conf/index/user_standard_index.html_es | 60 - .../conf/index/user_standard_index.html_fi | 60 - .../conf/index/user_standard_index.html_fr | 60 - .../conf/index/user_standard_index.html_gr | 60 - .../conf/index/user_standard_index.html_hu | 60 - .../conf/index/user_standard_index.html_it | 60 - .../conf/index/user_standard_index.html_nl | 60 - .../conf/index/user_standard_index.html_pl | 60 - .../conf/index/user_standard_index.html_se | 60 - .../conf/index/user_standard_index.html_sr | 60 - .../server/conf/mailfilter_move_junk.master | 19 - interface/ispconfig/server/conf/motd.master | 4 - .../server/conf/php-cgi-starter.master | 7 - .../server/conf/php-fcgi-starter.master | 16 - .../ispconfig/server/conf/sieve_filter.master | 30 - .../ispconfig/server/conf/vhost.conf.master | 350 - interface/ispconfig/server/cron_daily.php | 303 - interface/ispconfig/server/cron_daily.sh | 5 - interface/ispconfig/server/lib/app.inc.php | 181 - .../server/lib/classes/db_mysql.inc.php | 612 -- .../ispconfig/server/lib/classes/file.inc.php | 319 - .../server/lib/classes/getconf.inc.php | 65 - .../server/lib/classes/ini_parser.inc.php | 69 - .../server/lib/classes/mod_mail_base.inc.php | 76 - .../server/lib/classes/modules.inc.php | 250 - .../server/lib/classes/plugins.inc.php | 130 - .../server/lib/classes/services.inc.php | 80 - .../server/lib/classes/system.inc.php | 1232 --- .../ispconfig/server/lib/classes/tpl.inc.php | 1501 --- .../server/lib/classes/tpl_cache.inc.php | 186 - .../server/lib/classes/tpl_error.inc.php | 92 - .../server/lib/classes/tpl_ini.inc.php | 116 - interface/ispconfig/server/lib/config.inc.php | 154 - .../ispconfig/server/lib/mysql_clientdb.conf | 7 - .../mods-available/client_module.inc.php | 96 - .../server/mods-available/cron_module.inc.php | 97 - .../mods-available/database_module.inc.php | 103 - .../server/mods-available/dns_module.inc.php | 128 - .../server/mods-available/mail_module.inc.php | 153 - .../monitor_core_module.inc.php | 1465 --- .../mods-available/server_module.inc.php | 137 - .../server/mods-available/web_module.inc.php | 140 - .../mods-core/monitor_core_module.inc.php | 1465 --- .../server/mods-enabled/client_module.inc.php | 96 - .../server/mods-enabled/cron_module.inc.php | 97 - .../mods-enabled/database_module.inc.php | 103 - .../server/mods-enabled/dns_module.inc.php | 128 - .../server/mods-enabled/mail_module.inc.php | 153 - .../mods-enabled/monitor_core_module.inc.php | 1465 --- .../server/mods-enabled/server_module.inc.php | 137 - .../server/mods-enabled/web_module.inc.php | 140 - .../plugins-available/apache2_plugin.inc.php | 987 -- .../apps_vhost_plugin.inc.php | 114 - .../plugins-available/bind_dlz_plugin.inc.php | 352 - .../plugins-available/bind_plugin.inc.php | 224 - .../cron_jailkit_plugin.inc.php | 328 - .../plugins-available/cron_plugin.inc.php | 239 - .../plugins-available/firewall_plugin.inc.php | 145 - .../ftpuser_base_plugin.inc.php | 112 - .../plugins-available/getmail_plugin.inc.php | 163 - .../plugins-available/mail_plugin.inc.php | 311 - .../maildeliver_plugin.inc.php | 131 - .../plugins-available/maildrop_plugin.inc.php | 240 - .../mysql_clientdb_plugin.inc.php | 305 - .../network_settings_plugin.inc.php | 289 - .../pma_symlink_plugin.inc.php | 121 - .../postfix_filter_plugin.inc.php | 153 - .../postfix_server_plugin.inc.php | 116 - .../plugins-available/powerdns_plugin.inc.php | 345 - .../shelluser_base_plugin.inc.php | 189 - .../shelluser_jailkit_plugin.inc.php | 303 - .../software_update_plugin.inc.php | 178 - .../webmail_symlink_plugin.inc.php | 121 - .../plugins-enabled/apache2_plugin.inc.php | 987 -- .../plugins-enabled/apps_vhost_plugin.inc.php | 114 - .../cron_jailkit_plugin.inc.php | 328 - .../plugins-enabled/cron_plugin.inc.php | 239 - .../plugins-enabled/firewall_plugin.inc.php | 145 - .../ftpuser_base_plugin.inc.php | 112 - .../plugins-enabled/getmail_plugin.inc.php | 163 - .../plugins-enabled/mail_plugin.inc.php | 311 - .../maildeliver_plugin.inc.php | 131 - .../mysql_clientdb_plugin.inc.php | 305 - .../network_settings_plugin.inc.php | 289 - .../postfix_filter_plugin.inc.php | 153 - .../postfix_server_plugin.inc.php | 116 - .../shelluser_base_plugin.inc.php | 189 - .../shelluser_jailkit_plugin.inc.php | 303 - .../software_update_plugin.inc.php | 178 - .../server/scripts/create_jailkit_chroot.sh | 43 - .../server/scripts/create_jailkit_programs.sh | 20 - .../server/scripts/create_jailkit_user.sh | 33 - .../server/scripts/ispconfig_update.php | 109 - .../server/scripts/ispconfig_update.sh | 3 - .../server/scripts/update_from_svn.sh | 10 - .../server/scripts/update_from_tgz.sh | 22 - interface/ispconfig/server/scripts/vlogger | 574 -- interface/ispconfig/server/server.php | 148 - interface/ispconfig/server/server.sh | 7 - .../ispconfig/vpproject/ispconfig.vpppath | 1 - 4526 files changed, 221119 deletions(-) delete mode 100644 interface/ispconfig/interface/admin/firewall_del.php delete mode 100644 interface/ispconfig/interface/admin/firewall_edit.php delete mode 100644 interface/ispconfig/interface/admin/firewall_list.php delete mode 100644 interface/ispconfig/interface/admin/form/dbsync.tform.php delete mode 100644 interface/ispconfig/interface/admin/form/filesync.tform.php delete mode 100644 interface/ispconfig/interface/admin/form/firewall.tform.php delete mode 100644 interface/ispconfig/interface/admin/form/groups.tform.php delete mode 100644 interface/ispconfig/interface/admin/form/remote_user.tform.php delete mode 100644 interface/ispconfig/interface/admin/form/server.tform.php delete mode 100644 interface/ispconfig/interface/admin/form/server_config.tform.php delete mode 100644 interface/ispconfig/interface/admin/form/server_ip.tform.php delete mode 100644 interface/ispconfig/interface/admin/form/software_repo.tform.php delete mode 100644 interface/ispconfig/interface/admin/form/system_config.tform.php delete mode 100644 interface/ispconfig/interface/admin/form/users.tform.php delete mode 100644 interface/ispconfig/interface/admin/groups_del.php delete mode 100644 interface/ispconfig/interface/admin/groups_edit.php delete mode 100644 interface/ispconfig/interface/admin/groups_list.php delete mode 100644 interface/ispconfig/interface/admin/index.php delete mode 100644 interface/ispconfig/interface/admin/language_add.php delete mode 100644 interface/ispconfig/interface/admin/language_complete.php delete mode 100644 interface/ispconfig/interface/admin/language_edit.php delete mode 100644 interface/ispconfig/interface/admin/language_export.php delete mode 100644 interface/ispconfig/interface/admin/language_import.php delete mode 100644 interface/ispconfig/interface/admin/language_list.php delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_firewall.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_firewall_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_groups.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_groups_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_language_add.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_language_complete.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_language_edit.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_language_export.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_language_import.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_language_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_remote_user.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_remote_user_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_server.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_server_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_server_config_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_server_ip.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_server_ip_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_server_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_software_package_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_software_repo.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_software_repo_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_software_update_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_system_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_users.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/bg_users_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_firewall.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_firewall_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_groups.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_groups_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_language_add.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_language_complete.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_language_edit.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_language_export.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_language_import.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_language_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_remote_user.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_remote_user_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_server.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_server_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_server_config_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_server_ip.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_server_ip_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_server_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_software_package_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_software_repo.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_software_repo_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_software_update_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_system_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_users.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/br_users_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_firewall.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_firewall_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_groups.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_groups_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_language_add.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_language_complete.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_language_edit.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_language_export.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_language_import.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_language_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_remote_user.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_remote_user_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_server.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_server_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_server_config_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_server_ip.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_server_ip_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_server_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_software_package_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_software_repo.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_software_repo_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_software_update_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_system_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_users.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/de_users_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_firewall.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_firewall_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_groups.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_groups_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_language_add.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_language_complete.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_language_edit.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_language_export.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_language_import.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_language_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_remote_user.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_remote_user_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_server.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_server_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_server_config_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_server_ip.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_server_ip_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_server_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_software_package_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_software_repo.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_software_repo_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_software_update_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_system_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_users.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/en_users_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_firewall.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_firewall_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_groups.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_groups_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_language_add.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_language_complete.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_language_edit.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_language_export.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_language_import.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_language_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_remote_user.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_remote_user_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_server.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_server_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_server_config_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_server_ip.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_server_ip_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_server_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_software_package_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_software_repo.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_software_repo_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_software_update_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_system_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_users.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/es_users_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_firewall.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_firewall_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_groups.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_groups_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_language_add.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_language_complete.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_language_edit.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_language_export.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_language_import.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_language_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_remote_user.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_remote_user_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_server.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_server_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_server_config_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_server_ip.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_server_ip_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_server_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_software_package_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_software_repo.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_software_repo_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_software_update_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_system_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_users.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fi_users_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_firewall.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_firewall_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_groups.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_groups_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_language_add.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_language_complete.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_language_edit.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_language_export.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_language_import.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_language_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_remote_user.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_remote_user_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_server.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_server_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_server_config_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_server_ip.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_server_ip_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_server_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_software_package_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_software_repo.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_software_repo_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_software_update_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_system_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_users.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/fr_users_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_firewall.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_firewall_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_groups.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_groups_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_language_add.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_language_complete.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_language_edit.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_language_export.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_language_import.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_language_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_remote_user.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_remote_user_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_server.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_server_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_server_config_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_server_ip.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_server_ip_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_server_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_software_package_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_software_repo.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_software_repo_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_software_update_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_system_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_users.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/hu_users_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_firewall.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_firewall_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_groups.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_groups_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_language_add.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_language_complete.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_language_edit.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_language_export.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_language_import.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_language_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_remote_user.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_remote_user_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_server.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_server_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_server_config_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_server_ip.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_server_ip_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_server_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_software_package_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_software_repo.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_software_repo_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_software_update_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_system_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_users.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/it_users_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_firewall.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_firewall_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_groups.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_groups_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_language_add.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_language_complete.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_language_edit.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_language_export.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_language_import.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_language_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_remote_user.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_remote_user_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_server.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_server_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_server_config_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_server_ip.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_server_ip_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_server_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_software_package_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_software_repo.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_software_repo_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_software_update_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_system_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_users.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ja_users_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_firewall.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_firewall_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_groups.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_groups_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_language_add.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_language_complete.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_language_edit.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_language_export.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_language_import.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_language_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_remote_user.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_remote_user_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_server.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_server_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_server_config_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_server_ip.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_server_ip_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_server_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_software_package_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_software_repo.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_software_repo_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_software_update_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_system_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_users.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/nl_users_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_firewall.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_firewall_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_groups.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_groups_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_language_add.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_language_complete.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_language_edit.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_language_export.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_language_import.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_language_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_remote_user.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_remote_user_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_server.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_server_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_server_config_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_server_ip.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_server_ip_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_server_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_software_package_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_software_repo.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_software_repo_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_software_update_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_system_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_users.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pl_users_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_firewall.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_firewall_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_groups.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_groups_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_language_add.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_language_complete.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_language_edit.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_language_export.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_language_import.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_language_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_remote_user.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_remote_user_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_server.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_server_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_server_config_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_server_ip.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_server_ip_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_server_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_software_package_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_software_repo.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_software_repo_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_software_update_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_system_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_users.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/pt_users_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_firewall.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_firewall_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_groups.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_groups_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_language_add.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_language_complete.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_language_edit.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_language_export.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_language_import.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_language_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_remote_user.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_remote_user_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_server.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_server_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_server_config_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_server_ip.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_server_ip_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_server_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_software_package_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_software_repo.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_software_repo_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_software_update_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_system_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_users.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ro_users_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_firewall.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_firewall_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_groups.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_groups_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_language_add.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_language_complete.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_language_edit.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_language_export.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_language_import.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_language_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_remote_user.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_remote_user_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_server.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_server_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_server_config_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_server_ip.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_server_ip_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_server_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_software_package_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_software_repo.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_software_repo_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_software_update_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_system_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_users.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/ru_users_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_firewall.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_firewall_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_groups.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_groups_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_language_add.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_language_complete.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_language_edit.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_language_export.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_language_import.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_language_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_remote_user.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_remote_user_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_server.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_server_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_server_config_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_server_ip.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_server_ip_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_server_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_software_package_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_software_repo.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_software_repo_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_software_update_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_system_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_users.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/se_users_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_firewall.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_firewall_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_groups.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_groups_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_language_add.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_language_complete.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_language_edit.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_language_export.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_language_import.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_language_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_remote_user.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_remote_user_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_server.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_server_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_server_config_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_server_ip.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_server_ip_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_server_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_software_package_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_software_repo.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_software_repo_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_software_update_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_system_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_users.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/sk_users_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_firewall.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_firewall_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_groups.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_groups_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_language_add.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_language_complete.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_language_edit.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_language_export.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_language_import.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_language_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_remote_user.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_remote_user_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_server.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_server_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_server_config_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_server_ip.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_server_ip_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_server_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_software_package_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_software_repo.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_software_repo_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_software_update_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_system_config.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_users.lng delete mode 100644 interface/ispconfig/interface/admin/lib/lang/tr_users_list.lng delete mode 100644 interface/ispconfig/interface/admin/lib/module.conf.php delete mode 100644 interface/ispconfig/interface/admin/list/firewall.list.php delete mode 100644 interface/ispconfig/interface/admin/list/groups.list.php delete mode 100644 interface/ispconfig/interface/admin/list/remote_user.list.php delete mode 100644 interface/ispconfig/interface/admin/list/server.list.php delete mode 100644 interface/ispconfig/interface/admin/list/server_config.list.php delete mode 100644 interface/ispconfig/interface/admin/list/server_ip.list.php delete mode 100644 interface/ispconfig/interface/admin/list/software_repo.list.php delete mode 100644 interface/ispconfig/interface/admin/list/users.list.php delete mode 100644 interface/ispconfig/interface/admin/login_as.php delete mode 100644 interface/ispconfig/interface/admin/remote_user_del.php delete mode 100644 interface/ispconfig/interface/admin/remote_user_edit.php delete mode 100644 interface/ispconfig/interface/admin/remote_user_list.php delete mode 100644 interface/ispconfig/interface/admin/server_config_del.php delete mode 100644 interface/ispconfig/interface/admin/server_config_edit.php delete mode 100644 interface/ispconfig/interface/admin/server_config_list.php delete mode 100644 interface/ispconfig/interface/admin/server_del.php delete mode 100644 interface/ispconfig/interface/admin/server_edit.php delete mode 100644 interface/ispconfig/interface/admin/server_ip_del.php delete mode 100644 interface/ispconfig/interface/admin/server_ip_edit.php delete mode 100644 interface/ispconfig/interface/admin/server_ip_list.php delete mode 100644 interface/ispconfig/interface/admin/server_list.php delete mode 100644 interface/ispconfig/interface/admin/software_package_list.php delete mode 100644 interface/ispconfig/interface/admin/software_repo_del.php delete mode 100644 interface/ispconfig/interface/admin/software_repo_edit.php delete mode 100644 interface/ispconfig/interface/admin/software_repo_list.php delete mode 100644 interface/ispconfig/interface/admin/software_update_list.php delete mode 100644 interface/ispconfig/interface/admin/system_config_edit.php delete mode 100644 interface/ispconfig/interface/admin/templates/firewall_edit.htm delete mode 100644 interface/ispconfig/interface/admin/templates/firewall_list.htm delete mode 100644 interface/ispconfig/interface/admin/templates/groups_edit.htm delete mode 100644 interface/ispconfig/interface/admin/templates/groups_list.htm delete mode 100644 interface/ispconfig/interface/admin/templates/language_add.htm delete mode 100644 interface/ispconfig/interface/admin/templates/language_complete.htm delete mode 100644 interface/ispconfig/interface/admin/templates/language_edit.htm delete mode 100644 interface/ispconfig/interface/admin/templates/language_export.htm delete mode 100644 interface/ispconfig/interface/admin/templates/language_import.htm delete mode 100644 interface/ispconfig/interface/admin/templates/language_list.htm delete mode 100644 interface/ispconfig/interface/admin/templates/remote_user_edit.htm delete mode 100644 interface/ispconfig/interface/admin/templates/remote_user_list.htm delete mode 100644 interface/ispconfig/interface/admin/templates/server_config_cron_edit.htm delete mode 100644 interface/ispconfig/interface/admin/templates/server_config_dns_edit.htm delete mode 100644 interface/ispconfig/interface/admin/templates/server_config_fastcgi_edit.htm delete mode 100644 interface/ispconfig/interface/admin/templates/server_config_getmail_edit.htm delete mode 100644 interface/ispconfig/interface/admin/templates/server_config_jailkit_edit.htm delete mode 100644 interface/ispconfig/interface/admin/templates/server_config_list.htm delete mode 100644 interface/ispconfig/interface/admin/templates/server_config_mail_edit.htm delete mode 100644 interface/ispconfig/interface/admin/templates/server_config_server_edit.htm delete mode 100644 interface/ispconfig/interface/admin/templates/server_config_vlogger_edit.htm delete mode 100644 interface/ispconfig/interface/admin/templates/server_config_web_edit.htm delete mode 100644 interface/ispconfig/interface/admin/templates/server_edit_config.htm delete mode 100644 interface/ispconfig/interface/admin/templates/server_edit_services.htm delete mode 100644 interface/ispconfig/interface/admin/templates/server_ip_edit.htm delete mode 100644 interface/ispconfig/interface/admin/templates/server_ip_list.htm delete mode 100644 interface/ispconfig/interface/admin/templates/server_list.htm delete mode 100644 interface/ispconfig/interface/admin/templates/software_package_list.htm delete mode 100644 interface/ispconfig/interface/admin/templates/software_repo_edit.htm delete mode 100644 interface/ispconfig/interface/admin/templates/software_repo_list.htm delete mode 100644 interface/ispconfig/interface/admin/templates/software_update_list.htm delete mode 100644 interface/ispconfig/interface/admin/templates/system_config_mail_edit.htm delete mode 100644 interface/ispconfig/interface/admin/templates/system_config_sites_edit.htm delete mode 100644 interface/ispconfig/interface/admin/templates/users_groups_edit.htm delete mode 100644 interface/ispconfig/interface/admin/templates/users_list.htm delete mode 100644 interface/ispconfig/interface/admin/templates/users_user_edit.htm delete mode 100644 interface/ispconfig/interface/admin/users_del.php delete mode 100644 interface/ispconfig/interface/admin/users_edit.php delete mode 100644 interface/ispconfig/interface/admin/users_list.php delete mode 100644 interface/ispconfig/interface/capp.php delete mode 100644 interface/ispconfig/interface/client/client_del.php delete mode 100644 interface/ispconfig/interface/client/client_edit.php delete mode 100644 interface/ispconfig/interface/client/client_list.php delete mode 100644 interface/ispconfig/interface/client/client_template_del.php delete mode 100644 interface/ispconfig/interface/client/client_template_edit.php delete mode 100644 interface/ispconfig/interface/client/client_template_list.php delete mode 100644 interface/ispconfig/interface/client/form/client.tform.php delete mode 100644 interface/ispconfig/interface/client/form/client_template.tform.php delete mode 100644 interface/ispconfig/interface/client/form/reseller.tform.php delete mode 100644 interface/ispconfig/interface/client/lib/admin.conf.php delete mode 100644 interface/ispconfig/interface/client/lib/lang/bg.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/bg_client.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/bg_client_del.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/bg_client_template.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/bg_client_template_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/bg_clients_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/bg_reseller.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/bg_resellers_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/br.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/br_client.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/br_client_del.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/br_client_template.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/br_client_template_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/br_clients_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/br_reseller.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/br_resellers_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/de.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/de_client.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/de_client_del.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/de_client_template.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/de_client_template_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/de_clients_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/de_reseller.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/de_resellers_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/en.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/en_client.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/en_client_del.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/en_client_template.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/en_client_template_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/en_clients_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/en_reseller.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/en_resellers_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/es.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/es_client.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/es_client_del.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/es_client_template.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/es_client_template_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/es_clients_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/es_reseller.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/es_resellers_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/fi.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/fi_client.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/fi_client_del.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/fi_client_template.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/fi_client_template_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/fi_clients_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/fi_reseller.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/fi_resellers_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/fr.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/fr_client.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/fr_client_del.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/fr_client_template.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/fr_client_template_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/fr_clients_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/fr_reseller.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/fr_resellers_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/hu.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/hu_client.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/hu_client_del.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/hu_client_template.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/hu_client_template_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/hu_clients_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/hu_reseller.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/hu_resellers_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/it.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/it_client.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/it_client_del.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/it_client_template.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/it_client_template_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/it_clients_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/it_reseller.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/it_resellers_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ja.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ja_client.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ja_client_del.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ja_client_template.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ja_client_template_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ja_clients_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ja_reseller.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ja_resellers_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/nl.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/nl_client.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/nl_client_del.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/nl_client_template.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/nl_client_template_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/nl_clients_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/nl_reseller.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/nl_resellers_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/pl.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/pl_client.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/pl_client_del.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/pl_client_template.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/pl_client_template_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/pl_clients_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/pl_reseller.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/pl_resellers_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/pt.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/pt_client.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/pt_client_del.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/pt_client_template.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/pt_client_template_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/pt_clients_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/pt_reseller.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/pt_resellers_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ro.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ro_client.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ro_client_del.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ro_client_template.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ro_client_template_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ro_clients_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ro_reseller.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ro_resellers_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ru.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ru_client.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ru_client_del.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ru_client_template.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ru_client_template_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ru_clients_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ru_reseller.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/ru_resellers_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/se.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/se_client.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/se_client_del.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/se_client_template.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/se_client_template_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/se_clients_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/se_reseller.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/se_resellers_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/sk.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/sk_client.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/sk_client_del.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/sk_client_template.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/sk_client_template_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/sk_clients_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/sk_reseller.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/sk_resellers_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/tr.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/tr_client.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/tr_client_del.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/tr_client_template.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/tr_client_template_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/tr_clients_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/tr_reseller.lng delete mode 100644 interface/ispconfig/interface/client/lib/lang/tr_resellers_list.lng delete mode 100644 interface/ispconfig/interface/client/lib/module.conf.php delete mode 100644 interface/ispconfig/interface/client/list/client.list.php delete mode 100644 interface/ispconfig/interface/client/list/client_template.list.php delete mode 100644 interface/ispconfig/interface/client/list/reseller.list.php delete mode 100644 interface/ispconfig/interface/client/reseller_del.php delete mode 100644 interface/ispconfig/interface/client/reseller_edit.php delete mode 100644 interface/ispconfig/interface/client/reseller_list.php delete mode 100644 interface/ispconfig/interface/client/templates/client_del.htm delete mode 100644 interface/ispconfig/interface/client/templates/client_edit_address.htm delete mode 100644 interface/ispconfig/interface/client/templates/client_edit_limits.htm delete mode 100644 interface/ispconfig/interface/client/templates/client_template_edit_limits.htm delete mode 100644 interface/ispconfig/interface/client/templates/client_template_edit_template.htm delete mode 100644 interface/ispconfig/interface/client/templates/client_template_list.htm delete mode 100644 interface/ispconfig/interface/client/templates/clients_list.htm delete mode 100644 interface/ispconfig/interface/client/templates/reseller_edit_address.htm delete mode 100644 interface/ispconfig/interface/client/templates/reseller_edit_limits.htm delete mode 100644 interface/ispconfig/interface/client/templates/resellers_list.htm delete mode 100644 interface/ispconfig/interface/client/tools.inc.php delete mode 100644 interface/ispconfig/interface/content.php delete mode 100644 interface/ispconfig/interface/designer/form_edit.php delete mode 100644 interface/ispconfig/interface/designer/form_list.php delete mode 100644 interface/ispconfig/interface/designer/form_show.php delete mode 100644 interface/ispconfig/interface/designer/index.php delete mode 100644 interface/ispconfig/interface/designer/lib/admin.conf.php delete mode 100644 interface/ispconfig/interface/designer/lib/lang/bg.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/bg_form_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/bg_form_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/bg_form_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/bg_module_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/bg_module_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/bg_module_nav_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/bg_module_nav_item_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/bg_module_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/br.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/br_form_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/br_form_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/br_form_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/br_module_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/br_module_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/br_module_nav_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/br_module_nav_item_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/br_module_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/de.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/de_form_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/de_form_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/de_form_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/de_module_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/de_module_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/de_module_nav_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/de_module_nav_item_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/de_module_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/en.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/en_form_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/en_form_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/en_form_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/en_module_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/en_module_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/en_module_nav_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/en_module_nav_item_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/en_module_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/es.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/es_form_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/es_form_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/es_form_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/es_module_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/es_module_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/es_module_nav_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/es_module_nav_item_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/es_module_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/fi.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/fi_form_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/fi_form_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/fi_form_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/fi_module_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/fi_module_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/fi_module_nav_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/fi_module_nav_item_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/fi_module_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/fr.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/fr_form_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/fr_form_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/fr_form_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/fr_module_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/fr_module_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/fr_module_nav_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/fr_module_nav_item_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/fr_module_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/hu.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/hu_form_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/hu_form_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/hu_form_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/hu_module_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/hu_module_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/hu_module_nav_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/hu_module_nav_item_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/hu_module_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/it.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/it_form_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/it_form_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/it_form_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/it_module_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/it_module_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/it_module_nav_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/it_module_nav_item_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/it_module_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ja.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ja_form_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ja_form_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ja_form_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ja_module_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ja_module_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ja_module_nav_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ja_module_nav_item_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ja_module_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/nl.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/nl_form_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/nl_form_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/nl_form_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/nl_module_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/nl_module_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/nl_module_nav_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/nl_module_nav_item_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/nl_module_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/pl.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/pl_form_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/pl_form_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/pl_form_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/pl_module_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/pl_module_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/pl_module_nav_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/pl_module_nav_item_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/pl_module_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/pt.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/pt_form_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/pt_form_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/pt_form_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/pt_module_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/pt_module_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/pt_module_nav_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/pt_module_nav_item_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/pt_module_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ro.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ro_form_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ro_form_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ro_form_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ro_module_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ro_module_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ro_module_nav_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ro_module_nav_item_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ro_module_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ru.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ru_form_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ru_form_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ru_form_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ru_module_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ru_module_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ru_module_nav_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ru_module_nav_item_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/ru_module_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/se.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/se_form_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/se_form_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/se_form_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/se_module_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/se_module_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/se_module_nav_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/se_module_nav_item_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/se_module_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/sk.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/sk_form_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/sk_form_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/sk_form_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/sk_module_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/sk_module_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/sk_module_nav_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/sk_module_nav_item_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/sk_module_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/tr.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/tr_form_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/tr_form_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/tr_form_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/tr_module_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/tr_module_list.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/tr_module_nav_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/tr_module_nav_item_edit.lng delete mode 100644 interface/ispconfig/interface/designer/lib/lang/tr_module_show.lng delete mode 100644 interface/ispconfig/interface/designer/lib/module.conf.php delete mode 100644 interface/ispconfig/interface/designer/module_edit.php delete mode 100644 interface/ispconfig/interface/designer/module_list.php delete mode 100644 interface/ispconfig/interface/designer/module_nav_del.php delete mode 100644 interface/ispconfig/interface/designer/module_nav_edit.php delete mode 100644 interface/ispconfig/interface/designer/module_nav_flip.php delete mode 100644 interface/ispconfig/interface/designer/module_nav_item_del.php delete mode 100644 interface/ispconfig/interface/designer/module_nav_item_edit.php delete mode 100644 interface/ispconfig/interface/designer/module_nav_item_flip.php delete mode 100644 interface/ispconfig/interface/designer/module_show.php delete mode 100644 interface/ispconfig/interface/designer/templates/form_edit.htm delete mode 100644 interface/ispconfig/interface/designer/templates/form_list.htm delete mode 100644 interface/ispconfig/interface/designer/templates/form_show.htm delete mode 100644 interface/ispconfig/interface/designer/templates/module_edit.htm delete mode 100644 interface/ispconfig/interface/designer/templates/module_list.htm delete mode 100644 interface/ispconfig/interface/designer/templates/module_nav_edit.htm delete mode 100644 interface/ispconfig/interface/designer/templates/module_nav_item_edit.htm delete mode 100644 interface/ispconfig/interface/designer/templates/module_show.htm delete mode 100644 interface/ispconfig/interface/designer/templates/paging.tpl.htm delete mode 100644 interface/ispconfig/interface/dns/dns_a_edit.php delete mode 100644 interface/ispconfig/interface/dns/dns_a_list.php delete mode 100644 interface/ispconfig/interface/dns/dns_aaaa_edit.php delete mode 100644 interface/ispconfig/interface/dns/dns_alias_edit.php delete mode 100644 interface/ispconfig/interface/dns/dns_cname_edit.php delete mode 100644 interface/ispconfig/interface/dns/dns_hinfo_edit.php delete mode 100644 interface/ispconfig/interface/dns/dns_mx_edit.php delete mode 100644 interface/ispconfig/interface/dns/dns_ns_edit.php delete mode 100644 interface/ispconfig/interface/dns/dns_ptr_edit.php delete mode 100644 interface/ispconfig/interface/dns/dns_rp_edit.php delete mode 100644 interface/ispconfig/interface/dns/dns_rr_del.php delete mode 100644 interface/ispconfig/interface/dns/dns_soa_del.php delete mode 100644 interface/ispconfig/interface/dns/dns_soa_edit.php delete mode 100644 interface/ispconfig/interface/dns/dns_soa_list.php delete mode 100644 interface/ispconfig/interface/dns/dns_srv_edit.php delete mode 100644 interface/ispconfig/interface/dns/dns_template_del.php delete mode 100644 interface/ispconfig/interface/dns/dns_template_edit.php delete mode 100644 interface/ispconfig/interface/dns/dns_template_list.php delete mode 100644 interface/ispconfig/interface/dns/dns_txt_edit.php delete mode 100644 interface/ispconfig/interface/dns/dns_wizard.php delete mode 100644 interface/ispconfig/interface/dns/form/dns_a.tform.php delete mode 100644 interface/ispconfig/interface/dns/form/dns_aaaa.tform.php delete mode 100644 interface/ispconfig/interface/dns/form/dns_alias.tform.php delete mode 100644 interface/ispconfig/interface/dns/form/dns_cname.tform.php delete mode 100644 interface/ispconfig/interface/dns/form/dns_hinfo.tform.php delete mode 100644 interface/ispconfig/interface/dns/form/dns_mx.tform.php delete mode 100644 interface/ispconfig/interface/dns/form/dns_ns.tform.php delete mode 100644 interface/ispconfig/interface/dns/form/dns_ptr.tform.php delete mode 100644 interface/ispconfig/interface/dns/form/dns_rp.tform.php delete mode 100644 interface/ispconfig/interface/dns/form/dns_soa.tform.php delete mode 100644 interface/ispconfig/interface/dns/form/dns_srv.tform.php delete mode 100644 interface/ispconfig/interface/dns/form/dns_template.tform.php delete mode 100644 interface/ispconfig/interface/dns/form/dns_txt.tform.php delete mode 100644 interface/ispconfig/interface/dns/lib/admin.conf.php delete mode 100644 interface/ispconfig/interface/dns/lib/lang/bg.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/bg_dns_a.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/bg_dns_a_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/bg_dns_aaaa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/bg_dns_alias.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/bg_dns_cname.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/bg_dns_hinfo.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/bg_dns_mx.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/bg_dns_ns.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/bg_dns_ptr.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/bg_dns_rp.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/bg_dns_soa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/bg_dns_soa_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/bg_dns_srv.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/bg_dns_template.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/bg_dns_template_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/bg_dns_txt.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/bg_dns_wizard.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/br.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/br_dns_a.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/br_dns_a_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/br_dns_aaaa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/br_dns_alias.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/br_dns_cname.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/br_dns_hinfo.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/br_dns_mx.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/br_dns_ns.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/br_dns_ptr.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/br_dns_rp.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/br_dns_soa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/br_dns_soa_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/br_dns_srv.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/br_dns_template.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/br_dns_template_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/br_dns_txt.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/br_dns_wizard.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/de.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/de_dns_a.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/de_dns_a_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/de_dns_aaaa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/de_dns_alias.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/de_dns_cname.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/de_dns_hinfo.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/de_dns_mx.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/de_dns_ns.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/de_dns_ptr.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/de_dns_rp.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/de_dns_soa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/de_dns_soa_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/de_dns_srv.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/de_dns_template.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/de_dns_template_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/de_dns_txt.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/de_dns_wizard.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/en.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/en_dns_a.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/en_dns_a_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/en_dns_aaaa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/en_dns_alias.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/en_dns_cname.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/en_dns_hinfo.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/en_dns_mx.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/en_dns_ns.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/en_dns_ptr.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/en_dns_rp.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/en_dns_soa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/en_dns_soa_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/en_dns_srv.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/en_dns_template.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/en_dns_template_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/en_dns_txt.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/en_dns_wizard.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/es.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/es_dns_a.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/es_dns_a_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/es_dns_aaaa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/es_dns_alias.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/es_dns_cname.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/es_dns_hinfo.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/es_dns_mx.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/es_dns_ns.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/es_dns_ptr.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/es_dns_rp.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/es_dns_soa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/es_dns_soa_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/es_dns_srv.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/es_dns_template.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/es_dns_template_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/es_dns_txt.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/es_dns_wizard.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fi.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fi_dns_a.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fi_dns_a_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fi_dns_aaaa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fi_dns_alias.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fi_dns_cname.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fi_dns_hinfo.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fi_dns_mx.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fi_dns_ns.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fi_dns_ptr.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fi_dns_rp.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fi_dns_soa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fi_dns_soa_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fi_dns_srv.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fi_dns_template.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fi_dns_template_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fi_dns_txt.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fi_dns_wizard.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fr.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fr_dns_a.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fr_dns_a_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fr_dns_aaaa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fr_dns_alias.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fr_dns_cname.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fr_dns_hinfo.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fr_dns_mx.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fr_dns_ns.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fr_dns_ptr.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fr_dns_rp.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fr_dns_soa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fr_dns_soa_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fr_dns_srv.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fr_dns_template.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fr_dns_template_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fr_dns_txt.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/fr_dns_wizard.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/hu.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/hu_dns_a.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/hu_dns_a_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/hu_dns_aaaa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/hu_dns_alias.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/hu_dns_cname.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/hu_dns_hinfo.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/hu_dns_mx.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/hu_dns_ns.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/hu_dns_ptr.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/hu_dns_rp.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/hu_dns_soa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/hu_dns_soa_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/hu_dns_srv.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/hu_dns_template.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/hu_dns_template_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/hu_dns_txt.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/hu_dns_wizard.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/it.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/it_dns_a.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/it_dns_a_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/it_dns_aaaa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/it_dns_alias.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/it_dns_cname.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/it_dns_hinfo.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/it_dns_mx.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/it_dns_ns.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/it_dns_ptr.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/it_dns_rp.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/it_dns_soa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/it_dns_soa_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/it_dns_srv.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/it_dns_template.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/it_dns_template_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/it_dns_txt.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/it_dns_wizard.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ja.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ja_dns_a.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ja_dns_a_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ja_dns_aaaa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ja_dns_alias.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ja_dns_cname.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ja_dns_hinfo.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ja_dns_mx.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ja_dns_ns.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ja_dns_ptr.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ja_dns_rp.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ja_dns_soa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ja_dns_soa_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ja_dns_srv.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ja_dns_template.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ja_dns_template_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ja_dns_txt.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ja_dns_wizard.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/nl.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/nl_dns_a.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/nl_dns_a_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/nl_dns_aaaa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/nl_dns_alias.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/nl_dns_cname.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/nl_dns_hinfo.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/nl_dns_mx.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/nl_dns_ns.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/nl_dns_ptr.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/nl_dns_rp.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/nl_dns_soa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/nl_dns_soa_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/nl_dns_srv.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/nl_dns_template.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/nl_dns_template_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/nl_dns_txt.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/nl_dns_wizard.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pl.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pl_dns_a.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pl_dns_a_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pl_dns_aaaa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pl_dns_alias.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pl_dns_cname.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pl_dns_hinfo.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pl_dns_mx.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pl_dns_ns.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pl_dns_ptr.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pl_dns_rp.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pl_dns_soa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pl_dns_soa_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pl_dns_srv.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pl_dns_template.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pl_dns_template_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pl_dns_txt.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pl_dns_wizard.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pt.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pt_dns_a.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pt_dns_a_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pt_dns_aaaa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pt_dns_alias.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pt_dns_cname.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pt_dns_hinfo.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pt_dns_mx.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pt_dns_ns.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pt_dns_ptr.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pt_dns_rp.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pt_dns_soa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pt_dns_soa_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pt_dns_srv.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pt_dns_template.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pt_dns_template_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pt_dns_txt.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/pt_dns_wizard.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ro.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ro_dns_a.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ro_dns_a_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ro_dns_aaaa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ro_dns_alias.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ro_dns_cname.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ro_dns_hinfo.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ro_dns_mx.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ro_dns_ns.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ro_dns_ptr.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ro_dns_rp.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ro_dns_soa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ro_dns_soa_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ro_dns_srv.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ro_dns_template.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ro_dns_template_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ro_dns_txt.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ro_dns_wizard.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ru.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ru_dns_a.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ru_dns_a_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ru_dns_aaaa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ru_dns_alias.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ru_dns_cname.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ru_dns_hinfo.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ru_dns_mx.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ru_dns_ns.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ru_dns_ptr.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ru_dns_rp.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ru_dns_soa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ru_dns_soa_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ru_dns_srv.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ru_dns_template.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ru_dns_template_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ru_dns_txt.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/ru_dns_wizard.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/se.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/se_dns_a.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/se_dns_a_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/se_dns_aaaa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/se_dns_alias.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/se_dns_cname.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/se_dns_hinfo.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/se_dns_mx.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/se_dns_ns.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/se_dns_ptr.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/se_dns_rp.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/se_dns_soa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/se_dns_soa_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/se_dns_srv.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/se_dns_template.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/se_dns_template_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/se_dns_txt.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/se_dns_wizard.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/sk.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/sk_dns_a.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/sk_dns_a_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/sk_dns_aaaa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/sk_dns_alias.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/sk_dns_cname.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/sk_dns_hinfo.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/sk_dns_mx.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/sk_dns_ns.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/sk_dns_ptr.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/sk_dns_rp.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/sk_dns_soa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/sk_dns_soa_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/sk_dns_srv.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/sk_dns_template.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/sk_dns_template_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/sk_dns_txt.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/sk_dns_wizard.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/tr.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/tr_dns_a.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/tr_dns_a_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/tr_dns_aaaa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/tr_dns_alias.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/tr_dns_cname.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/tr_dns_hinfo.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/tr_dns_mx.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/tr_dns_ns.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/tr_dns_ptr.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/tr_dns_rp.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/tr_dns_soa.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/tr_dns_soa_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/tr_dns_srv.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/tr_dns_template.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/tr_dns_template_list.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/tr_dns_txt.lng delete mode 100644 interface/ispconfig/interface/dns/lib/lang/tr_dns_wizard.lng delete mode 100644 interface/ispconfig/interface/dns/lib/module.conf.php delete mode 100644 interface/ispconfig/interface/dns/list/dns_a.list.php delete mode 100644 interface/ispconfig/interface/dns/list/dns_soa.list.php delete mode 100644 interface/ispconfig/interface/dns/list/dns_template.list.php delete mode 100644 interface/ispconfig/interface/dns/templates/dns_a_edit.htm delete mode 100644 interface/ispconfig/interface/dns/templates/dns_a_list.htm delete mode 100644 interface/ispconfig/interface/dns/templates/dns_aaaa_edit.htm delete mode 100644 interface/ispconfig/interface/dns/templates/dns_alias_edit.htm delete mode 100644 interface/ispconfig/interface/dns/templates/dns_cname_edit.htm delete mode 100644 interface/ispconfig/interface/dns/templates/dns_hinfo_edit.htm delete mode 100644 interface/ispconfig/interface/dns/templates/dns_mx_edit.htm delete mode 100644 interface/ispconfig/interface/dns/templates/dns_ns_edit.htm delete mode 100644 interface/ispconfig/interface/dns/templates/dns_ptr_edit.htm delete mode 100644 interface/ispconfig/interface/dns/templates/dns_records_edit.htm delete mode 100644 interface/ispconfig/interface/dns/templates/dns_rp_edit.htm delete mode 100644 interface/ispconfig/interface/dns/templates/dns_soa_edit.htm delete mode 100644 interface/ispconfig/interface/dns/templates/dns_soa_list.htm delete mode 100644 interface/ispconfig/interface/dns/templates/dns_srv_edit.htm delete mode 100644 interface/ispconfig/interface/dns/templates/dns_template_edit.htm delete mode 100644 interface/ispconfig/interface/dns/templates/dns_template_list.htm delete mode 100644 interface/ispconfig/interface/dns/templates/dns_txt_edit.htm delete mode 100644 interface/ispconfig/interface/dns/templates/dns_wizard.htm delete mode 100644 interface/ispconfig/interface/help/form/support_message.tform.php delete mode 100644 interface/ispconfig/interface/help/index.php delete mode 100644 interface/ispconfig/interface/help/lib/admin.conf.php delete mode 100644 interface/ispconfig/interface/help/lib/lang/bg.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/bg_support_message.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/bg_support_message_list.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/br.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/br_support_message.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/br_support_message_list.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/de.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/de_support_message.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/de_support_message_list.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/en.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/en_support_message.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/en_support_message_list.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/es.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/es_support_message.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/es_support_message_list.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/fi.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/fi_support_message.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/fi_support_message_list.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/fr.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/fr_support_message.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/fr_support_message_list.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/hu.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/hu_support_message.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/hu_support_message_list.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/it.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/it_support_message.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/it_support_message_list.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/ja.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/ja_support_message.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/ja_support_message_list.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/nl.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/nl_support_message.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/nl_support_message_list.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/pl.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/pl_support_message.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/pl_support_message_list.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/pt.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/pt_support_message.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/pt_support_message_list.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/ro.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/ro_support_message.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/ro_support_message_list.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/ru.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/ru_support_message.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/ru_support_message_list.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/se.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/se_support_message.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/se_support_message_list.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/sk.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/sk_support_message.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/sk_support_message_list.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/tr.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/tr_support_message.lng delete mode 100644 interface/ispconfig/interface/help/lib/lang/tr_support_message_list.lng delete mode 100644 interface/ispconfig/interface/help/lib/module.conf.php delete mode 100644 interface/ispconfig/interface/help/list/support_message.list.php delete mode 100644 interface/ispconfig/interface/help/support_message_del.php delete mode 100644 interface/ispconfig/interface/help/support_message_edit.php delete mode 100644 interface/ispconfig/interface/help/support_message_list.php delete mode 100644 interface/ispconfig/interface/help/templates/support_message_edit.htm delete mode 100644 interface/ispconfig/interface/help/templates/support_message_list.htm delete mode 100644 interface/ispconfig/interface/help/templates/support_message_view.htm delete mode 100644 interface/ispconfig/interface/help/version.php delete mode 100644 interface/ispconfig/interface/index.htm delete mode 100644 interface/ispconfig/interface/index.php delete mode 100644 interface/ispconfig/interface/js/scrigo.js.php delete mode 100644 interface/ispconfig/interface/js/uni-form/jquery.js delete mode 100644 interface/ispconfig/interface/js/uni-form/uni-form.jquery.js delete mode 100644 interface/ispconfig/interface/js/yui/animation/README delete mode 100644 interface/ispconfig/interface/js/yui/animation/animation-debug.js delete mode 100644 interface/ispconfig/interface/js/yui/animation/animation-min.js delete mode 100644 interface/ispconfig/interface/js/yui/animation/animation.js delete mode 100644 interface/ispconfig/interface/js/yui/autocomplete/README delete mode 100644 interface/ispconfig/interface/js/yui/autocomplete/autocomplete-debug.js delete mode 100644 interface/ispconfig/interface/js/yui/autocomplete/autocomplete-min.js delete mode 100644 interface/ispconfig/interface/js/yui/autocomplete/autocomplete.js delete mode 100644 interface/ispconfig/interface/js/yui/button/README delete mode 100644 interface/ispconfig/interface/js/yui/button/assets/background.png delete mode 100644 interface/ispconfig/interface/js/yui/button/assets/button.css delete mode 100644 interface/ispconfig/interface/js/yui/button/assets/menuarrow.gif delete mode 100644 interface/ispconfig/interface/js/yui/button/assets/splitarrow.gif delete mode 100644 interface/ispconfig/interface/js/yui/button/assets/splitarrow_active.gif delete mode 100644 interface/ispconfig/interface/js/yui/button/button-beta-debug.js delete mode 100644 interface/ispconfig/interface/js/yui/button/button-beta-min.js delete mode 100644 interface/ispconfig/interface/js/yui/button/button-beta.js delete mode 100644 interface/ispconfig/interface/js/yui/calendar/README delete mode 100644 interface/ispconfig/interface/js/yui/calendar/assets/calendar.css delete mode 100644 interface/ispconfig/interface/js/yui/calendar/assets/callt.gif delete mode 100644 interface/ispconfig/interface/js/yui/calendar/assets/calrt.gif delete mode 100644 interface/ispconfig/interface/js/yui/calendar/assets/calx.gif delete mode 100644 interface/ispconfig/interface/js/yui/calendar/calendar-debug.js delete mode 100644 interface/ispconfig/interface/js/yui/calendar/calendar-min.js delete mode 100644 interface/ispconfig/interface/js/yui/calendar/calendar.js delete mode 100644 interface/ispconfig/interface/js/yui/connection/README delete mode 100644 interface/ispconfig/interface/js/yui/connection/connection-debug.js delete mode 100644 interface/ispconfig/interface/js/yui/connection/connection-min.js delete mode 100644 interface/ispconfig/interface/js/yui/connection/connection.js delete mode 100644 interface/ispconfig/interface/js/yui/container/README delete mode 100644 interface/ispconfig/interface/js/yui/container/assets/alrt16_1.gif delete mode 100644 interface/ispconfig/interface/js/yui/container/assets/blck16_1.gif delete mode 100644 interface/ispconfig/interface/js/yui/container/assets/close12_1.gif delete mode 100644 interface/ispconfig/interface/js/yui/container/assets/container.css delete mode 100644 interface/ispconfig/interface/js/yui/container/assets/hlp16_1.gif delete mode 100644 interface/ispconfig/interface/js/yui/container/assets/info16_1.gif delete mode 100644 interface/ispconfig/interface/js/yui/container/assets/tip16_1.gif delete mode 100644 interface/ispconfig/interface/js/yui/container/assets/warn16_1.gif delete mode 100644 interface/ispconfig/interface/js/yui/container/container-debug.js delete mode 100644 interface/ispconfig/interface/js/yui/container/container-min.js delete mode 100644 interface/ispconfig/interface/js/yui/container/container.js delete mode 100644 interface/ispconfig/interface/js/yui/container/container_core-debug.js delete mode 100644 interface/ispconfig/interface/js/yui/container/container_core-min.js delete mode 100644 interface/ispconfig/interface/js/yui/container/container_core.js delete mode 100644 interface/ispconfig/interface/js/yui/datasource/README delete mode 100644 interface/ispconfig/interface/js/yui/datasource/datasource-beta-debug.js delete mode 100644 interface/ispconfig/interface/js/yui/datasource/datasource-beta-min.js delete mode 100644 interface/ispconfig/interface/js/yui/datasource/datasource-beta.js delete mode 100644 interface/ispconfig/interface/js/yui/datatable/README delete mode 100644 interface/ispconfig/interface/js/yui/datatable/assets/datatable.css delete mode 100644 interface/ispconfig/interface/js/yui/datatable/datatable-beta-debug.js delete mode 100644 interface/ispconfig/interface/js/yui/datatable/datatable-beta-min.js delete mode 100644 interface/ispconfig/interface/js/yui/datatable/datatable-beta.js delete mode 100644 interface/ispconfig/interface/js/yui/dom/README delete mode 100644 interface/ispconfig/interface/js/yui/dom/dom-debug.js delete mode 100644 interface/ispconfig/interface/js/yui/dom/dom-min.js delete mode 100644 interface/ispconfig/interface/js/yui/dom/dom.js delete mode 100644 interface/ispconfig/interface/js/yui/dragdrop/README delete mode 100644 interface/ispconfig/interface/js/yui/dragdrop/dragdrop-debug.js delete mode 100644 interface/ispconfig/interface/js/yui/dragdrop/dragdrop-min.js delete mode 100644 interface/ispconfig/interface/js/yui/dragdrop/dragdrop.js delete mode 100644 interface/ispconfig/interface/js/yui/element/README delete mode 100644 interface/ispconfig/interface/js/yui/element/element-beta-debug.js delete mode 100644 interface/ispconfig/interface/js/yui/element/element-beta-min.js delete mode 100644 interface/ispconfig/interface/js/yui/element/element-beta.js delete mode 100644 interface/ispconfig/interface/js/yui/event/README delete mode 100644 interface/ispconfig/interface/js/yui/event/event-debug.js delete mode 100644 interface/ispconfig/interface/js/yui/event/event-min.js delete mode 100644 interface/ispconfig/interface/js/yui/event/event.js delete mode 100644 interface/ispconfig/interface/js/yui/fonts/README delete mode 100644 interface/ispconfig/interface/js/yui/fonts/fonts-min.css delete mode 100644 interface/ispconfig/interface/js/yui/fonts/fonts.css delete mode 100644 interface/ispconfig/interface/js/yui/grids/README delete mode 100644 interface/ispconfig/interface/js/yui/grids/grids-min.css delete mode 100644 interface/ispconfig/interface/js/yui/grids/grids.css delete mode 100644 interface/ispconfig/interface/js/yui/history/README delete mode 100644 interface/ispconfig/interface/js/yui/history/assets/blank.html delete mode 100644 interface/ispconfig/interface/js/yui/history/history-experimental-debug.js delete mode 100644 interface/ispconfig/interface/js/yui/history/history-experimental-min.js delete mode 100644 interface/ispconfig/interface/js/yui/history/history-experimental.js delete mode 100644 interface/ispconfig/interface/js/yui/logger/README delete mode 100644 interface/ispconfig/interface/js/yui/logger/assets/logger.css delete mode 100644 interface/ispconfig/interface/js/yui/logger/logger-debug.js delete mode 100644 interface/ispconfig/interface/js/yui/logger/logger-min.js delete mode 100644 interface/ispconfig/interface/js/yui/logger/logger.js delete mode 100644 interface/ispconfig/interface/js/yui/menu/README delete mode 100644 interface/ispconfig/interface/js/yui/menu/assets/map.gif delete mode 100644 interface/ispconfig/interface/js/yui/menu/assets/menu.css delete mode 100644 interface/ispconfig/interface/js/yui/menu/assets/menuarodwn8_dim_1.gif delete mode 100644 interface/ispconfig/interface/js/yui/menu/assets/menuarodwn8_hov_1.gif delete mode 100644 interface/ispconfig/interface/js/yui/menu/assets/menuarodwn8_nrm_1.gif delete mode 100644 interface/ispconfig/interface/js/yui/menu/assets/menuarorght8_dim_1.gif delete mode 100644 interface/ispconfig/interface/js/yui/menu/assets/menuarorght8_hov_1.gif delete mode 100644 interface/ispconfig/interface/js/yui/menu/assets/menuarorght8_nrm_1.gif delete mode 100644 interface/ispconfig/interface/js/yui/menu/assets/menuaroup8_dim_1.gif delete mode 100644 interface/ispconfig/interface/js/yui/menu/assets/menuaroup8_nrm_1.gif delete mode 100644 interface/ispconfig/interface/js/yui/menu/assets/menuchk8_dim_1.gif delete mode 100644 interface/ispconfig/interface/js/yui/menu/assets/menuchk8_hov_1.gif delete mode 100644 interface/ispconfig/interface/js/yui/menu/assets/menuchk8_nrm_1.gif delete mode 100644 interface/ispconfig/interface/js/yui/menu/menu-debug.js delete mode 100644 interface/ispconfig/interface/js/yui/menu/menu-min.js delete mode 100644 interface/ispconfig/interface/js/yui/menu/menu.js delete mode 100644 interface/ispconfig/interface/js/yui/reset-fonts-grids/README delete mode 100644 interface/ispconfig/interface/js/yui/reset-fonts-grids/reset-fonts-grids.css delete mode 100644 interface/ispconfig/interface/js/yui/reset/README delete mode 100644 interface/ispconfig/interface/js/yui/reset/reset-min.css delete mode 100644 interface/ispconfig/interface/js/yui/reset/reset.css delete mode 100644 interface/ispconfig/interface/js/yui/slider/README delete mode 100644 interface/ispconfig/interface/js/yui/slider/slider-debug.js delete mode 100644 interface/ispconfig/interface/js/yui/slider/slider-min.js delete mode 100644 interface/ispconfig/interface/js/yui/slider/slider.js delete mode 100644 interface/ispconfig/interface/js/yui/tabview/README delete mode 100644 interface/ispconfig/interface/js/yui/tabview/assets/border_tabs.css delete mode 100644 interface/ispconfig/interface/js/yui/tabview/assets/tabview.css delete mode 100644 interface/ispconfig/interface/js/yui/tabview/tabview-debug.js delete mode 100644 interface/ispconfig/interface/js/yui/tabview/tabview-min.js delete mode 100644 interface/ispconfig/interface/js/yui/tabview/tabview.js delete mode 100644 interface/ispconfig/interface/js/yui/treeview/README delete mode 100644 interface/ispconfig/interface/js/yui/treeview/assets/lm.gif delete mode 100644 interface/ispconfig/interface/js/yui/treeview/assets/lmh.gif delete mode 100644 interface/ispconfig/interface/js/yui/treeview/assets/ln.gif delete mode 100644 interface/ispconfig/interface/js/yui/treeview/assets/loading.gif delete mode 100644 interface/ispconfig/interface/js/yui/treeview/assets/lp.gif delete mode 100644 interface/ispconfig/interface/js/yui/treeview/assets/lph.gif delete mode 100644 interface/ispconfig/interface/js/yui/treeview/assets/tm.gif delete mode 100644 interface/ispconfig/interface/js/yui/treeview/assets/tmh.gif delete mode 100644 interface/ispconfig/interface/js/yui/treeview/assets/tn.gif delete mode 100644 interface/ispconfig/interface/js/yui/treeview/assets/tp.gif delete mode 100644 interface/ispconfig/interface/js/yui/treeview/assets/tph.gif delete mode 100644 interface/ispconfig/interface/js/yui/treeview/assets/tree.css delete mode 100644 interface/ispconfig/interface/js/yui/treeview/assets/vline.gif delete mode 100644 interface/ispconfig/interface/js/yui/treeview/treeview-debug.js delete mode 100644 interface/ispconfig/interface/js/yui/treeview/treeview-min.js delete mode 100644 interface/ispconfig/interface/js/yui/treeview/treeview.js delete mode 100644 interface/ispconfig/interface/js/yui/utilities/README delete mode 100644 interface/ispconfig/interface/js/yui/utilities/utilities.js delete mode 100644 interface/ispconfig/interface/js/yui/yahoo-dom-event/README delete mode 100644 interface/ispconfig/interface/js/yui/yahoo-dom-event/yahoo-dom-event.js delete mode 100644 interface/ispconfig/interface/js/yui/yahoo/README delete mode 100644 interface/ispconfig/interface/js/yui/yahoo/yahoo-debug.js delete mode 100644 interface/ispconfig/interface/js/yui/yahoo/yahoo-min.js delete mode 100644 interface/ispconfig/interface/js/yui/yahoo/yahoo.js delete mode 100644 interface/ispconfig/interface/keepalive.php delete mode 100644 interface/ispconfig/interface/login/index.php delete mode 100644 interface/ispconfig/interface/login/lib/lang/bg.lng delete mode 100644 interface/ispconfig/interface/login/lib/lang/br.lng delete mode 100644 interface/ispconfig/interface/login/lib/lang/de.lng delete mode 100644 interface/ispconfig/interface/login/lib/lang/en.lng delete mode 100644 interface/ispconfig/interface/login/lib/lang/es.lng delete mode 100644 interface/ispconfig/interface/login/lib/lang/fi.lng delete mode 100644 interface/ispconfig/interface/login/lib/lang/fr.lng delete mode 100644 interface/ispconfig/interface/login/lib/lang/hu.lng delete mode 100644 interface/ispconfig/interface/login/lib/lang/it.lng delete mode 100644 interface/ispconfig/interface/login/lib/lang/ja.lng delete mode 100644 interface/ispconfig/interface/login/lib/lang/nl.lng delete mode 100644 interface/ispconfig/interface/login/lib/lang/pl.lng delete mode 100644 interface/ispconfig/interface/login/lib/lang/pt.lng delete mode 100644 interface/ispconfig/interface/login/lib/lang/ro.lng delete mode 100644 interface/ispconfig/interface/login/lib/lang/ru.lng delete mode 100644 interface/ispconfig/interface/login/lib/lang/se.lng delete mode 100644 interface/ispconfig/interface/login/lib/lang/sk.lng delete mode 100644 interface/ispconfig/interface/login/lib/lang/tr.lng delete mode 100644 interface/ispconfig/interface/login/lib/module.conf.php delete mode 100644 interface/ispconfig/interface/login/logout.php delete mode 100644 interface/ispconfig/interface/login/password_reset.php delete mode 100644 interface/ispconfig/interface/login/templates/index.htm delete mode 100644 interface/ispconfig/interface/login/templates/password_reset.htm delete mode 100644 interface/ispconfig/interface/mail/form/mail_alias.tform.php delete mode 100644 interface/ispconfig/interface/mail/form/mail_aliasdomain.tform.php delete mode 100644 interface/ispconfig/interface/mail/form/mail_blacklist.tform.php delete mode 100644 interface/ispconfig/interface/mail/form/mail_content_filter.tform.php delete mode 100644 interface/ispconfig/interface/mail/form/mail_domain.tform.php delete mode 100644 interface/ispconfig/interface/mail/form/mail_domain_catchall.tform.php delete mode 100644 interface/ispconfig/interface/mail/form/mail_forward.tform.php delete mode 100644 interface/ispconfig/interface/mail/form/mail_get.tform.php delete mode 100644 interface/ispconfig/interface/mail/form/mail_relay_recipient.tform.php delete mode 100644 interface/ispconfig/interface/mail/form/mail_spamfilter.tform.php delete mode 100644 interface/ispconfig/interface/mail/form/mail_transport.tform.php delete mode 100644 interface/ispconfig/interface/mail/form/mail_user.tform.php delete mode 100644 interface/ispconfig/interface/mail/form/mail_user.tform.php.orig delete mode 100644 interface/ispconfig/interface/mail/form/mail_user_filter.tform.php delete mode 100644 interface/ispconfig/interface/mail/form/mail_user_filter.tform.php.orig delete mode 100644 interface/ispconfig/interface/mail/form/mail_whitelist.tform.php delete mode 100644 interface/ispconfig/interface/mail/form/spamfilter_blacklist.tform.php delete mode 100644 interface/ispconfig/interface/mail/form/spamfilter_config.tform.php delete mode 100644 interface/ispconfig/interface/mail/form/spamfilter_policy.tform.php delete mode 100644 interface/ispconfig/interface/mail/form/spamfilter_users.tform.php delete mode 100644 interface/ispconfig/interface/mail/form/spamfilter_whitelist.tform.php delete mode 100644 interface/ispconfig/interface/mail/lib/admin.conf.php delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_alias.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_alias_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_aliasdomain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_content_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_content_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_domain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_domain_catchall.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_domain_catchall_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_domain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_forward.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_forward_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_get.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_get_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_relay_recipient.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_relay_recipient_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_spamfilter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_spamfilter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_transport.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_transport_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_user.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_user_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_user_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_user_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_user_stats_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_mail_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_config.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_config_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_policy.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_policy_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_users.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_users_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_alias.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_alias_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_aliasdomain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_content_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_content_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_domain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_domain_catchall.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_domain_catchall_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_domain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_forward.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_forward_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_get.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_get_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_relay_recipient.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_relay_recipient_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_spamfilter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_spamfilter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_transport.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_transport_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_user.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_user_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_user_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_user_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_user_stats_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_mail_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_spamfilter_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_spamfilter_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_spamfilter_config.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_spamfilter_config_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_spamfilter_policy.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_spamfilter_policy_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_spamfilter_users.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_spamfilter_users_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_spamfilter_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/br_spamfilter_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_alias.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_alias_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_aliasdomain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_content_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_content_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_domain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_domain_catchall.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_domain_catchall_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_domain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_forward.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_forward_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_get.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_get_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_relay_recipient.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_relay_recipient_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_spamfilter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_spamfilter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_transport.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_transport_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_user.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_user_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_user_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_user_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_user_stats_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_mail_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_spamfilter_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_spamfilter_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_spamfilter_config.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_spamfilter_config_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_spamfilter_policy.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_spamfilter_policy_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_spamfilter_users.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_spamfilter_users_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_spamfilter_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/de_spamfilter_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_alias.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_alias_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_aliasdomain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_content_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_content_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_domain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_domain_catchall.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_domain_catchall_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_domain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_forward.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_forward_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_get.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_get_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_relay_recipient.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_relay_recipient_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_spamfilter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_spamfilter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_transport.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_transport_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_user.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_user_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_user_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_user_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_user_stats_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_mail_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_spamfilter_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_spamfilter_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_spamfilter_config.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_spamfilter_config_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_spamfilter_policy.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_spamfilter_policy_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_spamfilter_users.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_spamfilter_users_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_spamfilter_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/en_spamfilter_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_alias.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_alias_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_aliasdomain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_content_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_content_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_domain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_domain_catchall.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_domain_catchall_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_domain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_forward.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_forward_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_get.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_get_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_relay_recipient.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_relay_recipient_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_spamfilter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_spamfilter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_transport.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_transport_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_user.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_user_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_user_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_user_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_user_stats_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_mail_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_spamfilter_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_spamfilter_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_spamfilter_config.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_spamfilter_config_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_spamfilter_policy.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_spamfilter_policy_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_spamfilter_users.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_spamfilter_users_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_spamfilter_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/es_spamfilter_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_alias.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_alias_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_aliasdomain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_content_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_content_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_domain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_domain_catchall.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_domain_catchall_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_domain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_forward.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_forward_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_get.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_get_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_relay_recipient.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_relay_recipient_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_spamfilter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_spamfilter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_transport.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_transport_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_user.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_user_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_user_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_user_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_user_stats_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_mail_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_config.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_config_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_policy.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_policy_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_users.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_users_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_alias.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_alias_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_aliasdomain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_content_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_content_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_domain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_domain_catchall.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_domain_catchall_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_domain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_forward.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_forward_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_get.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_get_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_relay_recipient.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_relay_recipient_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_spamfilter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_spamfilter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_transport.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_transport_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_user.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_user_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_user_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_user_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_user_stats_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_mail_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_config.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_config_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_policy.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_policy_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_users.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_users_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_alias.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_alias_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_aliasdomain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_content_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_content_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_domain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_domain_catchall.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_domain_catchall_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_domain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_forward.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_forward_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_get.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_get_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_relay_recipient.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_relay_recipient_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_spamfilter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_spamfilter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_transport.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_transport_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_user.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_user_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_user_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_user_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_user_stats_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_mail_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_config.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_config_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_policy.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_policy_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_users.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_users_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_alias.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_alias_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_aliasdomain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_content_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_content_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_domain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_domain_catchall.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_domain_catchall_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_domain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_forward.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_forward_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_get.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_get_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_relay_recipient.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_relay_recipient_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_spamfilter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_spamfilter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_transport.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_transport_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_user.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_user_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_user_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_user_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_user_stats_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_mail_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_spamfilter_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_spamfilter_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_spamfilter_config.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_spamfilter_config_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_spamfilter_policy.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_spamfilter_policy_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_spamfilter_users.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_spamfilter_users_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_spamfilter_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/it_spamfilter_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_alias.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_alias_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_aliasdomain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_content_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_content_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_domain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_domain_catchall.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_domain_catchall_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_domain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_forward.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_forward_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_get.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_get_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_relay_recipient.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_relay_recipient_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_spamfilter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_spamfilter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_transport.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_transport_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_user.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_user_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_user_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_user_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_user_stats_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_mail_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_config.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_config_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_policy.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_policy_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_users.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_users_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_alias.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_alias_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_aliasdomain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_content_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_content_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_domain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_domain_catchall.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_domain_catchall_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_domain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_forward.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_forward_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_get.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_get_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_relay_recipient.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_relay_recipient_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_spamfilter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_spamfilter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_transport.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_transport_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_user.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_user_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_user_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_user_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_user_stats_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_mail_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_config.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_config_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_policy.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_policy_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_users.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_users_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_alias.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_alias_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_aliasdomain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_content_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_content_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_domain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_domain_catchall.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_domain_catchall_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_domain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_forward.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_forward_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_get.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_get_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_relay_recipient.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_relay_recipient_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_spamfilter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_spamfilter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_transport.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_transport_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_user.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_user_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_user_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_user_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_user_stats_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_mail_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_config.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_config_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_policy.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_policy_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_users.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_users_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_alias.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_alias_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_aliasdomain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_content_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_content_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_domain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_domain_catchall.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_domain_catchall_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_domain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_forward.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_forward_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_get.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_get_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_relay_recipient.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_relay_recipient_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_spamfilter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_spamfilter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_transport.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_transport_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_user.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_user_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_user_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_user_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_user_stats_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_mail_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_config.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_config_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_policy.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_policy_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_users.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_users_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_alias.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_alias_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_aliasdomain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_content_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_content_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_domain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_domain_catchall.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_domain_catchall_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_domain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_forward.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_forward_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_get.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_get_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_relay_recipient.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_relay_recipient_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_spamfilter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_spamfilter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_transport.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_transport_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_user.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_user_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_user_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_user_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_user_stats_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_mail_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_config.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_config_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_policy.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_policy_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_users.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_users_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_alias.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_alias_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_aliasdomain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_content_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_content_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_domain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_domain_catchall.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_domain_catchall_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_domain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_forward.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_forward_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_get.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_get_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_relay_recipient.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_relay_recipient_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_spamfilter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_spamfilter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_transport.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_transport_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_user.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_user_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_user_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_user_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_user_stats_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_mail_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_config.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_config_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_policy.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_policy_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_users.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_users_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_alias.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_alias_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_aliasdomain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_content_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_content_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_domain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_domain_catchall.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_domain_catchall_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_domain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_forward.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_forward_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_get.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_get_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_relay_recipient.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_relay_recipient_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_spamfilter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_spamfilter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_transport.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_transport_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_user.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_user_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_user_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_user_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_user_stats_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_mail_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_spamfilter_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_spamfilter_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_spamfilter_config.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_spamfilter_config_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_spamfilter_policy.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_spamfilter_policy_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_spamfilter_users.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_spamfilter_users_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_spamfilter_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/se_spamfilter_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_alias.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_alias_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_aliasdomain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_content_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_content_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_domain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_domain_catchall.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_domain_catchall_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_domain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_forward.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_forward_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_get.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_get_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_relay_recipient.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_relay_recipient_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_spamfilter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_spamfilter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_transport.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_transport_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_user.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_user_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_user_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_user_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_user_stats_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_mail_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_config.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_config_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_policy.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_policy_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_users.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_users_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_alias.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_alias_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_aliasdomain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_content_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_content_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_domain.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_domain_catchall.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_domain_catchall_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_domain_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_forward.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_forward_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_get.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_get_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_relay_recipient.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_relay_recipient_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_spamfilter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_spamfilter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_transport.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_transport_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_user.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_user_filter.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_user_filter_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_user_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_user_stats_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_mail_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_blacklist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_blacklist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_config.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_config_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_policy.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_policy_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_users.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_users_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_whitelist.lng delete mode 100644 interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_whitelist_list.lng delete mode 100644 interface/ispconfig/interface/mail/lib/module.conf.php delete mode 100644 interface/ispconfig/interface/mail/list/mail_alias.list.php delete mode 100644 interface/ispconfig/interface/mail/list/mail_aliasdomain.list.php delete mode 100644 interface/ispconfig/interface/mail/list/mail_blacklist.list.php delete mode 100644 interface/ispconfig/interface/mail/list/mail_content_filter.list.php delete mode 100644 interface/ispconfig/interface/mail/list/mail_domain.list.php delete mode 100644 interface/ispconfig/interface/mail/list/mail_domain_catchall.list.php delete mode 100644 interface/ispconfig/interface/mail/list/mail_forward.list.php delete mode 100644 interface/ispconfig/interface/mail/list/mail_get.list.php delete mode 100644 interface/ispconfig/interface/mail/list/mail_relay_recipient.list.php delete mode 100644 interface/ispconfig/interface/mail/list/mail_spamfilter.list.php delete mode 100644 interface/ispconfig/interface/mail/list/mail_transport.list.php delete mode 100644 interface/ispconfig/interface/mail/list/mail_user.list.php delete mode 100644 interface/ispconfig/interface/mail/list/mail_user_filter.list.php delete mode 100644 interface/ispconfig/interface/mail/list/mail_user_stats.list.php delete mode 100644 interface/ispconfig/interface/mail/list/mail_whitelist.list.php delete mode 100644 interface/ispconfig/interface/mail/list/spamfilter_blacklist.list.php delete mode 100644 interface/ispconfig/interface/mail/list/spamfilter_config.list.php delete mode 100644 interface/ispconfig/interface/mail/list/spamfilter_policy.list.php delete mode 100644 interface/ispconfig/interface/mail/list/spamfilter_users.list.php delete mode 100644 interface/ispconfig/interface/mail/list/spamfilter_whitelist.list.php delete mode 100644 interface/ispconfig/interface/mail/mail_alias_del.php delete mode 100644 interface/ispconfig/interface/mail/mail_alias_edit.php delete mode 100644 interface/ispconfig/interface/mail/mail_alias_list.php delete mode 100644 interface/ispconfig/interface/mail/mail_aliasdomain_del.php delete mode 100644 interface/ispconfig/interface/mail/mail_aliasdomain_edit.php delete mode 100644 interface/ispconfig/interface/mail/mail_aliasdomain_list.php delete mode 100644 interface/ispconfig/interface/mail/mail_blacklist_del.php delete mode 100644 interface/ispconfig/interface/mail/mail_blacklist_edit.php delete mode 100644 interface/ispconfig/interface/mail/mail_blacklist_list.php delete mode 100644 interface/ispconfig/interface/mail/mail_content_filter_del.php delete mode 100644 interface/ispconfig/interface/mail/mail_content_filter_edit.php delete mode 100644 interface/ispconfig/interface/mail/mail_content_filter_list.php delete mode 100644 interface/ispconfig/interface/mail/mail_domain_catchall_del.php delete mode 100644 interface/ispconfig/interface/mail/mail_domain_catchall_edit.php delete mode 100644 interface/ispconfig/interface/mail/mail_domain_catchall_list.php delete mode 100644 interface/ispconfig/interface/mail/mail_domain_del.php delete mode 100644 interface/ispconfig/interface/mail/mail_domain_edit.php delete mode 100644 interface/ispconfig/interface/mail/mail_domain_list.php delete mode 100644 interface/ispconfig/interface/mail/mail_forward_del.php delete mode 100644 interface/ispconfig/interface/mail/mail_forward_edit.php delete mode 100644 interface/ispconfig/interface/mail/mail_forward_list.php delete mode 100644 interface/ispconfig/interface/mail/mail_get_del.php delete mode 100644 interface/ispconfig/interface/mail/mail_get_edit.php delete mode 100644 interface/ispconfig/interface/mail/mail_get_list.php delete mode 100644 interface/ispconfig/interface/mail/mail_relay_recipient_del.php delete mode 100644 interface/ispconfig/interface/mail/mail_relay_recipient_edit.php delete mode 100644 interface/ispconfig/interface/mail/mail_relay_recipient_list.php delete mode 100644 interface/ispconfig/interface/mail/mail_spamfilter_del.php delete mode 100644 interface/ispconfig/interface/mail/mail_spamfilter_edit.php delete mode 100644 interface/ispconfig/interface/mail/mail_spamfilter_list.php delete mode 100644 interface/ispconfig/interface/mail/mail_transport_del.php delete mode 100644 interface/ispconfig/interface/mail/mail_transport_edit.php delete mode 100644 interface/ispconfig/interface/mail/mail_transport_list.php delete mode 100644 interface/ispconfig/interface/mail/mail_user_del.php delete mode 100644 interface/ispconfig/interface/mail/mail_user_edit.php delete mode 100644 interface/ispconfig/interface/mail/mail_user_filter_del.php delete mode 100644 interface/ispconfig/interface/mail/mail_user_filter_edit.php delete mode 100644 interface/ispconfig/interface/mail/mail_user_list.php delete mode 100644 interface/ispconfig/interface/mail/mail_user_stats.php delete mode 100644 interface/ispconfig/interface/mail/mail_whitelist_del.php delete mode 100644 interface/ispconfig/interface/mail/mail_whitelist_edit.php delete mode 100644 interface/ispconfig/interface/mail/mail_whitelist_list.php delete mode 100644 interface/ispconfig/interface/mail/spamfilter_blacklist_del.php delete mode 100644 interface/ispconfig/interface/mail/spamfilter_blacklist_edit.php delete mode 100644 interface/ispconfig/interface/mail/spamfilter_blacklist_list.php delete mode 100644 interface/ispconfig/interface/mail/spamfilter_config_del.php delete mode 100644 interface/ispconfig/interface/mail/spamfilter_config_edit.php delete mode 100644 interface/ispconfig/interface/mail/spamfilter_config_list.php delete mode 100644 interface/ispconfig/interface/mail/spamfilter_policy_del.php delete mode 100644 interface/ispconfig/interface/mail/spamfilter_policy_edit.php delete mode 100644 interface/ispconfig/interface/mail/spamfilter_policy_list.php delete mode 100644 interface/ispconfig/interface/mail/spamfilter_users_del.php delete mode 100644 interface/ispconfig/interface/mail/spamfilter_users_edit.php delete mode 100644 interface/ispconfig/interface/mail/spamfilter_users_list.php delete mode 100644 interface/ispconfig/interface/mail/spamfilter_whitelist_del.php delete mode 100644 interface/ispconfig/interface/mail/spamfilter_whitelist_edit.php delete mode 100644 interface/ispconfig/interface/mail/spamfilter_whitelist_list.php delete mode 100644 interface/ispconfig/interface/mail/templates/mail_alias_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_alias_list.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_aliasdomain_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_aliasdomain_list.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_blacklist_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_blacklist_list.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_content_filter_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_content_filter_list.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_domain_catchall_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_domain_catchall_list.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_domain_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_domain_list.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_forward_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_forward_list.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_get_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_get_list.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_relay_recipient_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_relay_recipient_list.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_transport_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_transport_list.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_user_autoresponder_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_user_custom_rules_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_user_filter_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_user_filter_list.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_user_list.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_user_mailbox_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_user_mailfilter_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_user_stats_list.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_whitelist_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/mail_whitelist_list.htm delete mode 100644 interface/ispconfig/interface/mail/templates/spamfilter_blacklist_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/spamfilter_blacklist_list.htm delete mode 100644 interface/ispconfig/interface/mail/templates/spamfilter_config_getmail_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/spamfilter_config_list.htm delete mode 100644 interface/ispconfig/interface/mail/templates/spamfilter_config_mail_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/spamfilter_config_server_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/spamfilter_other_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/spamfilter_policy_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/spamfilter_policy_list.htm delete mode 100644 interface/ispconfig/interface/mail/templates/spamfilter_quarantine_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/spamfilter_taglevel_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/spamfilter_users_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/spamfilter_users_list.htm delete mode 100644 interface/ispconfig/interface/mail/templates/spamfilter_whitelist_edit.htm delete mode 100644 interface/ispconfig/interface/mail/templates/spamfilter_whitelist_list.htm delete mode 100644 interface/ispconfig/interface/mail/webmailer.php delete mode 100644 interface/ispconfig/interface/monitor/datalog_del.php delete mode 100644 interface/ispconfig/interface/monitor/datalog_list.php delete mode 100644 interface/ispconfig/interface/monitor/lib/admin.conf.php delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/bg.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/bg_datalog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/bg_syslog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/br.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/br_datalog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/br_syslog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/de.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/de_datalog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/de_syslog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/en.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/en_datalog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/en_syslog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/es.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/es_datalog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/es_syslog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/fi.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/fi_datalog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/fi_syslog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/fr.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/fr_datalog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/fr_syslog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/hu.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/hu_datalog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/hu_syslog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/it.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/it_datalog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/it_syslog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/ja.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/ja_datalog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/ja_syslog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/nl.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/nl_datalog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/nl_syslog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/pl.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/pl_datalog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/pl_syslog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/pt.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/pt_datalog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/pt_syslog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/ro.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/ro_datalog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/ro_syslog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/ru.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/ru_datalog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/ru_syslog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/se.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/se_datalog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/se_syslog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/sk.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/sk_datalog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/sk_syslog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/tr.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/tr_datalog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/lang/tr_syslog_list.lng delete mode 100644 interface/ispconfig/interface/monitor/lib/module.conf.php delete mode 100644 interface/ispconfig/interface/monitor/list/datalog.list.php delete mode 100644 interface/ispconfig/interface/monitor/list/log.list.php delete mode 100644 interface/ispconfig/interface/monitor/log_del.php delete mode 100644 interface/ispconfig/interface/monitor/log_list.php delete mode 100644 interface/ispconfig/interface/monitor/show_data.php delete mode 100644 interface/ispconfig/interface/monitor/show_log.php delete mode 100644 interface/ispconfig/interface/monitor/show_sys_state.php delete mode 100644 interface/ispconfig/interface/monitor/templates/datalog_list.htm delete mode 100644 interface/ispconfig/interface/monitor/templates/show_data.htm delete mode 100644 interface/ispconfig/interface/monitor/templates/show_log.htm delete mode 100644 interface/ispconfig/interface/monitor/templates/show_sys_state.htm delete mode 100644 interface/ispconfig/interface/monitor/templates/syslog_list.htm delete mode 100644 interface/ispconfig/interface/monitor/tools.inc.php delete mode 100644 interface/ispconfig/interface/mymodule/form/support_message.tform.php delete mode 100644 interface/ispconfig/interface/mymodule/lib/admin.conf.php delete mode 100644 interface/ispconfig/interface/mymodule/lib/mymodule.config.php delete mode 100644 interface/ispconfig/interface/mymodule/list/support_message.list.php delete mode 100644 interface/ispconfig/interface/mymodule/support_message_del.php delete mode 100644 interface/ispconfig/interface/mymodule/support_message_edit.php delete mode 100644 interface/ispconfig/interface/mymodule/support_message_list.php delete mode 100644 interface/ispconfig/interface/mymodule/templates/support_message_edit.html delete mode 100644 interface/ispconfig/interface/mymodule/templates/support_message_view.html delete mode 100644 interface/ispconfig/interface/nav.php delete mode 100644 interface/ispconfig/interface/remote/index.php delete mode 100644 interface/ispconfig/interface/robots.txt delete mode 100644 interface/ispconfig/interface/sites/ajax_get_ip.php delete mode 100644 interface/ispconfig/interface/sites/cron_del.php delete mode 100644 interface/ispconfig/interface/sites/cron_edit.php delete mode 100644 interface/ispconfig/interface/sites/cron_list.php delete mode 100644 interface/ispconfig/interface/sites/database_del.php delete mode 100644 interface/ispconfig/interface/sites/database_edit.php delete mode 100644 interface/ispconfig/interface/sites/database_list.php delete mode 100644 interface/ispconfig/interface/sites/database_phpmyadmin.php delete mode 100644 interface/ispconfig/interface/sites/form/cron.tform.php delete mode 100644 interface/ispconfig/interface/sites/form/database.tform.php delete mode 100644 interface/ispconfig/interface/sites/form/ftp_user.tform.php delete mode 100644 interface/ispconfig/interface/sites/form/shell_user.tform.php delete mode 100644 interface/ispconfig/interface/sites/form/web_aliasdomain.tform.php delete mode 100644 interface/ispconfig/interface/sites/form/web_domain.tform.php delete mode 100644 interface/ispconfig/interface/sites/form/web_subdomain.tform.php delete mode 100644 interface/ispconfig/interface/sites/ftp_user_del.php delete mode 100644 interface/ispconfig/interface/sites/ftp_user_edit.php delete mode 100644 interface/ispconfig/interface/sites/ftp_user_list.php delete mode 100644 interface/ispconfig/interface/sites/lib/admin.conf.php delete mode 100644 interface/ispconfig/interface/sites/lib/lang/bg.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/bg_cron.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/bg_cron_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/bg_database.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/bg_database_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/bg_ftp_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/bg_ftp_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/bg_shell_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/bg_shell_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/bg_web_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/bg_web_domain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/bg_web_domain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/bg_web_sites_stats_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/bg_web_subdomain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/bg_web_subdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/br.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/br_cron.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/br_cron_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/br_database.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/br_database_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/br_ftp_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/br_ftp_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/br_shell_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/br_shell_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/br_web_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/br_web_domain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/br_web_domain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/br_web_sites_stats_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/br_web_subdomain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/br_web_subdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/de.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/de_cron.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/de_cron_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/de_database.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/de_database_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/de_ftp_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/de_ftp_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/de_shell_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/de_shell_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/de_web_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/de_web_domain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/de_web_domain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/de_web_sites_stats_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/de_web_subdomain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/de_web_subdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/en.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/en_cron.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/en_cron_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/en_database.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/en_database_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/en_ftp_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/en_ftp_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/en_shell_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/en_shell_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/en_web_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/en_web_domain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/en_web_domain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/en_web_sites_stats_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/en_web_subdomain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/en_web_subdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/es.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/es_cron.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/es_cron_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/es_database.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/es_database_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/es_ftp_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/es_ftp_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/es_shell_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/es_shell_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/es_web_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/es_web_domain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/es_web_domain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/es_web_sites_stats_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/es_web_subdomain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/es_web_subdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fi.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fi_cron.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fi_cron_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fi_database.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fi_database_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fi_ftp_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fi_ftp_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fi_shell_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fi_shell_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fi_web_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fi_web_domain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fi_web_domain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fi_web_sites_stats_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fi_web_subdomain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fi_web_subdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fr.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fr_cron.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fr_cron_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fr_database.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fr_database_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fr_ftp_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fr_ftp_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fr_shell_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fr_shell_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fr_web_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fr_web_domain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fr_web_domain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fr_web_sites_stats_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fr_web_subdomain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/fr_web_subdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/hu.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/hu_cron.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/hu_cron_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/hu_database.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/hu_database_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/hu_ftp_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/hu_ftp_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/hu_shell_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/hu_shell_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/hu_web_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/hu_web_domain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/hu_web_domain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/hu_web_sites_stats_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/hu_web_subdomain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/hu_web_subdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/it.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/it_cron.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/it_cron_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/it_database.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/it_database_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/it_ftp_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/it_ftp_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/it_shell_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/it_shell_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/it_web_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/it_web_domain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/it_web_domain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/it_web_sites_stats_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/it_web_subdomain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/it_web_subdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ja.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ja_cron.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ja_cron_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ja_database.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ja_database_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ja_ftp_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ja_ftp_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ja_shell_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ja_shell_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ja_web_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ja_web_domain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ja_web_domain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ja_web_sites_stats_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ja_web_subdomain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ja_web_subdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/nl.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/nl_cron.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/nl_cron_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/nl_database.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/nl_database_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/nl_ftp_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/nl_ftp_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/nl_shell_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/nl_shell_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/nl_web_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/nl_web_domain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/nl_web_domain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/nl_web_sites_stats_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/nl_web_subdomain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/nl_web_subdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pl.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pl_cron.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pl_cron_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pl_database.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pl_database_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pl_ftp_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pl_ftp_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pl_shell_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pl_shell_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pl_web_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pl_web_domain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pl_web_domain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pl_web_sites_stats_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pl_web_subdomain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pl_web_subdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pt.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pt_cron.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pt_cron_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pt_database.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pt_database_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pt_ftp_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pt_ftp_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pt_shell_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pt_shell_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pt_web_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pt_web_domain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pt_web_domain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pt_web_sites_stats_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pt_web_subdomain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/pt_web_subdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ro.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ro_cron.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ro_cron_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ro_database.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ro_database_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ro_ftp_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ro_ftp_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ro_shell_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ro_shell_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ro_web_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ro_web_domain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ro_web_domain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ro_web_sites_stats_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ro_web_subdomain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ro_web_subdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ru.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ru_cron.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ru_cron_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ru_database.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ru_database_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ru_ftp_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ru_ftp_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ru_shell_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ru_shell_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ru_web_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ru_web_domain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ru_web_domain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ru_web_sites_stats_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ru_web_subdomain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/ru_web_subdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/se.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/se_cron.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/se_cron_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/se_database.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/se_database_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/se_ftp_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/se_ftp_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/se_shell_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/se_shell_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/se_web_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/se_web_domain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/se_web_domain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/se_web_sites_stats_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/se_web_subdomain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/se_web_subdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/sk.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/sk_cron.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/sk_cron_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/sk_database.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/sk_database_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/sk_ftp_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/sk_ftp_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/sk_shell_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/sk_shell_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/sk_web_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/sk_web_domain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/sk_web_domain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/sk_web_sites_stats_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/sk_web_subdomain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/sk_web_subdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/tr.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/tr_cron.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/tr_cron_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/tr_database.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/tr_database_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/tr_ftp_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/tr_ftp_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/tr_shell_user.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/tr_shell_user_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/tr_web_aliasdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/tr_web_domain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/tr_web_domain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/tr_web_sites_stats_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/tr_web_subdomain.lng delete mode 100644 interface/ispconfig/interface/sites/lib/lang/tr_web_subdomain_list.lng delete mode 100644 interface/ispconfig/interface/sites/lib/module.conf.php delete mode 100644 interface/ispconfig/interface/sites/list/cron.list.php delete mode 100644 interface/ispconfig/interface/sites/list/database.list.php delete mode 100644 interface/ispconfig/interface/sites/list/ftp_user.list.php delete mode 100644 interface/ispconfig/interface/sites/list/shell_user.list.php delete mode 100644 interface/ispconfig/interface/sites/list/web_aliasdomain.list.php delete mode 100644 interface/ispconfig/interface/sites/list/web_domain.list.php delete mode 100644 interface/ispconfig/interface/sites/list/web_sites_stats.list.php delete mode 100644 interface/ispconfig/interface/sites/list/web_subdomain.list.php delete mode 100644 interface/ispconfig/interface/sites/shell_user_del.php delete mode 100644 interface/ispconfig/interface/sites/shell_user_edit.php delete mode 100644 interface/ispconfig/interface/sites/shell_user_list.php delete mode 100644 interface/ispconfig/interface/sites/templates/cron_edit.htm delete mode 100644 interface/ispconfig/interface/sites/templates/cron_list.htm delete mode 100644 interface/ispconfig/interface/sites/templates/database_edit.htm delete mode 100644 interface/ispconfig/interface/sites/templates/database_list.htm delete mode 100644 interface/ispconfig/interface/sites/templates/ftp_user_advanced.htm delete mode 100644 interface/ispconfig/interface/sites/templates/ftp_user_advanced_client.htm delete mode 100644 interface/ispconfig/interface/sites/templates/ftp_user_edit.htm delete mode 100644 interface/ispconfig/interface/sites/templates/ftp_user_list.htm delete mode 100644 interface/ispconfig/interface/sites/templates/shell_user_advanced.htm delete mode 100644 interface/ispconfig/interface/sites/templates/shell_user_edit.htm delete mode 100644 interface/ispconfig/interface/sites/templates/shell_user_list.htm delete mode 100644 interface/ispconfig/interface/sites/templates/web_aliasdomain_edit.htm delete mode 100644 interface/ispconfig/interface/sites/templates/web_aliasdomain_list.htm delete mode 100644 interface/ispconfig/interface/sites/templates/web_domain_advanced.htm delete mode 100644 interface/ispconfig/interface/sites/templates/web_domain_edit.htm delete mode 100644 interface/ispconfig/interface/sites/templates/web_domain_list.htm delete mode 100644 interface/ispconfig/interface/sites/templates/web_domain_redirect.htm delete mode 100644 interface/ispconfig/interface/sites/templates/web_domain_ssl.htm delete mode 100644 interface/ispconfig/interface/sites/templates/web_domain_stats.htm delete mode 100644 interface/ispconfig/interface/sites/templates/web_sites_stats_list.htm delete mode 100644 interface/ispconfig/interface/sites/templates/web_subdomain_edit.htm delete mode 100644 interface/ispconfig/interface/sites/templates/web_subdomain_list.htm delete mode 100644 interface/ispconfig/interface/sites/tools.inc.php delete mode 100644 interface/ispconfig/interface/sites/web_aliasdomain_del.php delete mode 100644 interface/ispconfig/interface/sites/web_aliasdomain_edit.php delete mode 100644 interface/ispconfig/interface/sites/web_aliasdomain_list.php delete mode 100644 interface/ispconfig/interface/sites/web_domain_del.php delete mode 100644 interface/ispconfig/interface/sites/web_domain_edit.php delete mode 100644 interface/ispconfig/interface/sites/web_domain_list.php delete mode 100644 interface/ispconfig/interface/sites/web_sites_stats.php delete mode 100644 interface/ispconfig/interface/sites/web_subdomain_del.php delete mode 100644 interface/ispconfig/interface/sites/web_subdomain_edit.php delete mode 100644 interface/ispconfig/interface/sites/web_subdomain_list.php delete mode 100644 interface/ispconfig/interface/strengthmeter/lib/lang/bg_strengthmeter.lng delete mode 100644 interface/ispconfig/interface/strengthmeter/lib/lang/br_strengthmeter.lng delete mode 100644 interface/ispconfig/interface/strengthmeter/lib/lang/de_strengthmeter.lng delete mode 100644 interface/ispconfig/interface/strengthmeter/lib/lang/en_strengthmeter.lng delete mode 100644 interface/ispconfig/interface/strengthmeter/lib/lang/es_strengthmeter.lng delete mode 100644 interface/ispconfig/interface/strengthmeter/lib/lang/fi_strengthmeter.lng delete mode 100644 interface/ispconfig/interface/strengthmeter/lib/lang/fr_strengthmeter.lng delete mode 100644 interface/ispconfig/interface/strengthmeter/lib/lang/hu_strengthmeter.lng delete mode 100644 interface/ispconfig/interface/strengthmeter/lib/lang/it_strengthmeter.lng delete mode 100644 interface/ispconfig/interface/strengthmeter/lib/lang/ja_strengthmeter.lng delete mode 100644 interface/ispconfig/interface/strengthmeter/lib/lang/nl_strengthmeter.lng delete mode 100644 interface/ispconfig/interface/strengthmeter/lib/lang/pl_strengthmeter.lng delete mode 100644 interface/ispconfig/interface/strengthmeter/lib/lang/ro_strengthmeter.lng delete mode 100644 interface/ispconfig/interface/strengthmeter/lib/lang/ru_strengthmeter.lng delete mode 100644 interface/ispconfig/interface/strengthmeter/lib/lang/se_strengthmeter.lng delete mode 100644 interface/ispconfig/interface/strengthmeter/lib/lang/sk_strengthmeter.lng delete mode 100644 interface/ispconfig/interface/strengthmeter/lib/lang/tr_strengthmeter.lng delete mode 100644 interface/ispconfig/interface/temp/en.lng delete mode 100644 interface/ispconfig/interface/themes/default/css/central.css delete mode 100644 interface/ispconfig/interface/themes/default/css/navigation/nav_side.css delete mode 100644 interface/ispconfig/interface/themes/default/css/navigation/nav_top.css delete mode 100644 interface/ispconfig/interface/themes/default/css/patches/central.css delete mode 100644 interface/ispconfig/interface/themes/default/css/print/print_100.css delete mode 100644 interface/ispconfig/interface/themes/default/css/screen/basemod.css delete mode 100644 interface/ispconfig/interface/themes/default/css/screen/basemod_2col_left_seo.css delete mode 100644 interface/ispconfig/interface/themes/default/css/screen/content.css delete mode 100644 interface/ispconfig/interface/themes/default/css/screen/content_ispc.css delete mode 100644 interface/ispconfig/interface/themes/default/css/screen/uni-form-generic.css delete mode 100644 interface/ispconfig/interface/themes/default/css/screen/uni-form.css delete mode 100644 interface/ispconfig/interface/themes/default/header_logo.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ad.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ae.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/af.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ag.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ai.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/al.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/am.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/an.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ao.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/aq.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ar.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/as.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/at.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/au.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/aw.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ax.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/az.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ba.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/bb.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/bd.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/be.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/bf.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/bg.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/bh.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/bi.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/bj.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/bm.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/bn.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/bo.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/br.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/bs.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/bt.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/bv.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/bw.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/by.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/bz.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ca.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/catalonia.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/cc.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/cd.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/cf.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/cg.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ch.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ci.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ck.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/cl.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/cm.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/cn.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/co.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/cr.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/cs.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/cu.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/cv.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/cx.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/cy.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/cz.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/de.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/dj.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/dk.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/dm.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/do.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/dz.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ec.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ee.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/eg.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/eh.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/england.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/er.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/es.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/et.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/europeanunion.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/fam.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/fi.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/fj.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/fk.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/fm.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/fo.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/fr.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ga.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/gb.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/gd.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ge.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/gf.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/gh.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/gi.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/gl.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/gm.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/gn.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/gp.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/gq.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/gr.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/gs.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/gt.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/gu.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/gw.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/gy.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/hk.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/hm.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/hn.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/hr.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ht.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/hu.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/id.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ie.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/il.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/in.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/io.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/iq.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ir.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/is.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/it.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/jm.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/jo.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/jp.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ke.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/kg.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/kh.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ki.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/km.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/kn.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/kp.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/kr.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/kw.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ky.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/kz.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/la.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/lb.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/lc.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/li.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/lk.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/lr.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ls.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/lt.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/lu.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/lv.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ly.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ma.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/mc.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/md.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/me.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/mg.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/mh.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/mk.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ml.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/mm.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/mn.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/mo.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/mp.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/mq.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/mr.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ms.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/mt.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/mu.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/mv.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/mw.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/mx.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/my.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/mz.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/na.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/nc.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ne.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/nf.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ng.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ni.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/nl.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/no.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/np.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/nr.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/nu.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/nz.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/om.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/pa.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/pe.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/pf.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/pg.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ph.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/pk.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/pl.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/pm.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/pn.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/pr.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ps.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/pt.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/pw.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/py.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/qa.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/re.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ro.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/rs.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ru.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/rw.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/sa.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/sb.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/sc.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/scotland.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/sd.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/se.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/sg.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/sh.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/si.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/sj.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/sk.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/sl.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/sm.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/sn.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/so.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/sr.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/st.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/sv.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/sy.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/sz.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/tc.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/td.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/tf.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/tg.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/th.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/tj.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/tk.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/tl.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/tm.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/tn.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/to.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/tr.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/tt.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/tv.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/tw.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/tz.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ua.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ug.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/um.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/us.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/uy.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/uz.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/va.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/vc.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ve.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/vg.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/vi.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/vn.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/vu.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/wales.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/wf.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ws.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/ye.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/yt.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/za.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/zm.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/flags/zw.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/accept.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/accept_blue.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/accept_green.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/arrow_2_left_round.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/arrow_2_right_round.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/arrow_left_blue_round.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/arrow_right_blue_round.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/article.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/article_text.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/bar_graph.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/burst.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/calendar.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/calendar2.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/cancel.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/cancel_round.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/clock.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/code.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/comment_blue.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/dollar.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/double_comment.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/download.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/envelope.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/flag_black.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/flag_blue.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/flag_green.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/flag_orange.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/flag_red.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/flag_yellow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/folder.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/info.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/link.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/lock.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/magnify.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/minus_round.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/money.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/new.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/pictures.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/printer.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/question_blue.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/refresh.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/rss.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/rss_round.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/security_green.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/security_orange.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/security_red.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/star.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/star_blue.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/stop.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/stop_round.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/upload.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/world.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x12/world2.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/accept.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/accept_blue.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/accept_green.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/arrow_2_left_round.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/arrow_2_right_round.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/arrow_left_blue_round.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/arrow_right_blue_round.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/article.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/article_text.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/bar_graph.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/burst.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/calendar.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/calendar2.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/cancel.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/cancel_round.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/clock.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/code.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/comment_blue.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/dollar.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/double_comment.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/download.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/envelope.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/flag_black.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/flag_blue.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/flag_green.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/flag_orange.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/flag_red.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/flag_yellow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/folder.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/info.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/link.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/lock.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/magnify.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/minus_round.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/money.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/new.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/pictures.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/printer.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/question_blue.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/refresh.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/rss.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/rss_round.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/security_green.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/security_orange.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/security_red.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/star.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/star_blue.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/stop.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/stop_round.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/upload.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/world.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16-list/world2.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/address_book.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/address_book__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/address_book__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/address_book__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/address_book__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/address_book__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/address_book_blue.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_000_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_045.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_045_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_090.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_090_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_135.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_135_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_180.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_180_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_225.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_225_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_270.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_270_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_315.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_315_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_circle.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_circle_135.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_circle_225.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_circle_315.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_circle_double.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_circle_double_135.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_skip.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_skip_090.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_skip_180.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_skip_270.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_stop.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_stop_090.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_stop_180.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/arrow_stop_270.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/auction_hammer.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/auction_hammer__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/auction_hammer__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/auction_hammer__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/auction_hammer__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/auction_hammer__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/auction_hammer_gavel.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/balloon.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/balloon__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/balloon__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/balloon__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/balloon__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/balloon__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/balloon_left.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/balloon_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/balloon_small_left.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/balloons.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/balloons_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/balloons_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/balloons_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/balloons_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/balloons_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bandaid.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bandaid_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bandaid_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bandaid_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bandaid_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bandaid_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bandaid_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bank.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bank_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bank_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bank_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bank_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bank_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bell.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bell__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bell__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bell__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bell__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bell__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bell_disable.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bin.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bin__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bin__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bin__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bin__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bin__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bin_full.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/binocular.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/binocular_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/binocular_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/binocular_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/binocular_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/binocular_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/blog.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/blog__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/blog__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/blog__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/blog__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/blog__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/blog_blue.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/blogs.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/blogs_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/blogs_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/blogs_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/blogs_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/blogs_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/blogs_stack.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/book.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/book__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/book__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/book__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/book__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/book__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/book_brown.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/book_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/book_small_brown.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark__small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark_book.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark_book_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark_book_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark_book_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark_book_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark_book_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark_document.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark_document_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark_document_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark_document_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark_document_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark_document_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark_folder.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark_folder_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark_folder_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark_folder_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark_folder_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/bookmark_folder_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/books.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/books__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/books__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/books__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/books__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/books__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/books_brown.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/books_stack.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/box.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/box__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/box__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/box__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/box__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/box__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/box_label.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/briefcase.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/briefcase_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/briefcase_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/briefcase_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/briefcase_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/briefcase_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/broom.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/broom_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/broom_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/broom_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/broom_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/broom_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/calculator.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/calculator_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/calculator_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/calculator_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/calculator_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/calculator_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/calendar.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/calendar__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/calendar__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/calendar__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/calendar__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/calendar__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/calendar_day.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/calendar_month.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/camera.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/camera__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/camera__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/camera__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/camera__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/camera__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/camera_black.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/camera_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/camera_small_black.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/card.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/card__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/card__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/card__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/card__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/card__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/card_address.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/card_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/cards.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/cards__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/cards__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/cards__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/cards__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/cards__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/cards_address.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/cards_stack.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/cassette.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/cassette_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/cassette_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/cassette_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/cassette_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/cassette_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/cassette_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/chain.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/chain_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/chain_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/chain_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/chain_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/chain_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/chain_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/chain_unchain.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/clipboard.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/clipboard__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/clipboard__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/clipboard__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/clipboard__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/clipboard__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/clipboard_empty.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/clipboard_text.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/clock.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/clock__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/clock__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/clock__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/clock__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/clock__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/clock_fill.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/clock_frame.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/clock_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/color.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/color_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/color_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/color_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/color_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/color_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/color_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/contrast.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/contrast__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/contrast__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/contrast__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/contrast__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/contrast__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/contrast_low.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/contrast_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/contrast_small_low.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/cross.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/cross_circle.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/cross_circle_frame.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/cross_shield.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/cross_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/cross_small_circle.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/crown.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/crown__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/crown__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/crown__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/crown__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/crown__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/crown_bronze.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/crown_silver.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/database.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/database_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/database_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/database_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/database_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/database_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/database_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/databases.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/databases_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/databases_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/databases_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/databases_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/databases_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disc.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disc_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disc_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disc_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disc_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disc_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disc_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/discs.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/discs_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/discs_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/discs_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/discs_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/discs_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disk.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disk__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disk__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disk__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disk__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disk__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disk_black.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disk_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disk_small_black.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disks.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disks__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disks__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disks__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disks__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disks__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/disks_black.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/document.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/document__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/document__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/document__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/document__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/document__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/document_horizontal.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/document_horizontal_text.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/document_music.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/document_music_playlist.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/document_shred.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/document_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/document_text.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/document_text_image.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/document_zipper.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/documents.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/documents_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/documents_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/documents_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/documents_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/documents_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/documents_stack.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/documents_text.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/door.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/door_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/door_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/door_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/door_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/door_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/drawer.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/drawer_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/drawer_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/drawer_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/drawer_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/drawer_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/drill.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/drill_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/drill_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/drill_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/drill_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/drill_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/envelope.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/envelope_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/envelope_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/envelope_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/envelope_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/envelope_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/equalizer.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/equalizer_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/equalizer_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/equalizer_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/equalizer_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/equalizer_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/eraser.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/eraser_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/eraser_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/eraser_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/eraser_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/eraser_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/exclamation_frame.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/exclamation_shield.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/exclamation_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/feed.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/feed__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/feed__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/feed__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/feed__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/feed__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/feed_balloon.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/feed_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/film.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/film_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/film_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/film_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/film_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/film_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/film_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/films.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/films_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/films_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/films_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/films_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/films_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/flag.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/flag_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/flag_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/flag_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/flag_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/flag_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folder.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folder__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folder__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folder__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folder__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folder__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folder_open.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folder_open_document.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folder_open_document_music.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folder_open_document_music_playlist.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folder_open_document_text.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folder_open_film.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folder_open_image.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folder_shred.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folder_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folder_zipper.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folders.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folders_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folders_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folders_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folders_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folders_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/folders_stack.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/funnel.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/funnel_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/funnel_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/funnel_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/funnel_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/funnel_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/funnel_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/gear.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/gear__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/gear__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/gear__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/gear__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/gear__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/gear_disable.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/gear_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/hammer.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/hammer__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/hammer__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/hammer__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/hammer__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/hammer__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/hammer_left.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/hammer_screwdriver.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/heart.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/heart__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/heart__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/heart__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/heart__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/heart__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/heart_break.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/heart_empty.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/heart_half.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/heart_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/heart_small_empty.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/heart_small_half.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/home.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/home_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/home_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/home_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/home_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/home_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/home_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/image.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/image_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/image_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/image_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/image_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/image_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/image_resize.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/image_resize_actual.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/image_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/image_small_sunset.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/image_sunset.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/images.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/images_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/images_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/images_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/images_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/images_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/images_stack.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/inbox.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/inbox_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/inbox_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/inbox_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/inbox_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/inbox_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/information.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/information_frame.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/information_shield.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/information_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/key.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/key__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/key__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/key__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/key__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/key__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/key_disable.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/layout.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/layout_2.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/layout_2_equal.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/layout_3.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/layout_3_mix.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/layout_header.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/layout_header_2.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/layout_header_2_equal.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/layout_header_3.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/layout_header_3_mix.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/layout_header_footer.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/layout_header_footer_2.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/layout_header_footer_2_equal.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/layout_header_footer_3.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/layout_header_footer_3_mix.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/layout_join.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/layout_split.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lifebuoy.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lifebuoy_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lifebuoy_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lifebuoy_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lifebuoy_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lifebuoy_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/light_bulb.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/light_bulb__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/light_bulb__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/light_bulb__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/light_bulb__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/light_bulb__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/light_bulb_off.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/light_bulb_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/light_bulb_small_off.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lightning.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lightning__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lightning__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lightning__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lightning__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lightning__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lightning_disable.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lightning_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lock.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lock__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lock__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lock__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lock__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lock__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lock_disable.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lock_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/lock_unlock.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/logout.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/magnet.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/magnet__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/magnet__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/magnet__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/magnet__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/magnet__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/magnet_disable.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/magnet_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/magnifier.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/magnifier__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/magnifier__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/magnifier__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/magnifier__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/magnifier__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/magnifier_left.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/magnifier_medium.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/magnifier_medium_left.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/magnifier_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/magnifier_zoom.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/magnifier_zoom_actual.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/magnifier_zoom_fit.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/magnifier_zoom_out.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/mail.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/mail__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/mail__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/mail__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/mail__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/mail__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/mail_open.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/mail_open_document.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/mail_open_film.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/mail_open_image.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/mail_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/mails.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/mails_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/mails_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/mails_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/mails_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/mails_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/mails_stack.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_player.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_player__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_player__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_player__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_player__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_player__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_player_black.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_player_medium.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_player_medium_black.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_player_medium_blue.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_player_medium_green.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_player_medium_pink.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_player_medium_red.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_player_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_player_small_blue.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_player_small_green.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_player_small_purple.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_player_small_red.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_players.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_players_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_players_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_players_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_players_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/media_players_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/microphone.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/microphone_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/microphone_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/microphone_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/microphone_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/microphone_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/minus_circle.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/minus_circle_frame.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/minus_shield.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/minus_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/minus_small_circle.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/music.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/music_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/music_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/music_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/music_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/music_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/music_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/newspaper.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/newspaper_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/newspaper_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/newspaper_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/newspaper_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/newspaper_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/newspapers.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/newspapers_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/newspapers_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/newspapers_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/newspapers_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/newspapers_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/notebook.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/notebook_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/notebook_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/notebook_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/notebook_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/notebook_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/notebooks.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/notebooks_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/notebooks_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/notebooks_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/notebooks_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/notebooks_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/paint_can.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/paint_can_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/paint_can_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/paint_can_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/paint_can_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/paint_can_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/palette.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/palette_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/palette_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/palette_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/palette_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/palette_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/paper_bag.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/paper_bag_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/paper_bag_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/paper_bag_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/paper_bag_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/paper_bag_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pencil_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pencil_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pencil_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pencil_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pencil_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/photo_album.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/photo_album__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/photo_album__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/photo_album__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/photo_album__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/photo_album__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/photo_album_blue.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/piano.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/piano_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/piano_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/piano_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/piano_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/piano_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/picture.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/picture_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/picture_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/picture_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/picture_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/picture_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/picture_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/picture_small_sunset.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/picture_sunset.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pictures.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pictures_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pictures_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pictures_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pictures_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pictures_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pill.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pill_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pill_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pill_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pill_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pill_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pill_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pin.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pin_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pin_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pin_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pin_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pin_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pipette.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pipette_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pipette_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pipette_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pipette_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/pipette_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/playing_card.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/playing_card_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/playing_card_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/playing_card_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/playing_card_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/playing_card_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/plug.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/plug_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/plug_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/plug_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/plug_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/plug_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/plus_circle.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/plus_circle_frame.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/plus_shield.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/plus_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/plus_small_circle.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/printer.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/printer__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/printer__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/printer__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/printer__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/printer__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/printer_empty.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/printer_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/puzzle.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/puzzle__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/puzzle__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/puzzle__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/puzzle__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/puzzle__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/puzzle_disable.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/question.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/question_frame.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/question_shield.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/question_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/receipt.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/receipt_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/receipt_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/receipt_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/receipt_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/receipt_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/receipt_shred.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/receipt_text.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/receipts.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/receipts_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/receipts_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/receipts_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/receipts_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/receipts_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/receipts_text.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/report.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/report_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/report_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/report_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/report_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/report_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/ruler.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/ruler__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/ruler__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/ruler__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/ruler__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/ruler__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/ruler_crop.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/safe.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/safe_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/safe_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/safe_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/safe_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/safe_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/screwdriver.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/screwdriver_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/screwdriver_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/screwdriver_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/screwdriver_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/screwdriver_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/script.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/script__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/script__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/script__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/script__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/script__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/script_code.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/scripts.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/scripts__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/scripts__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/scripts__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/scripts__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/scripts__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/scripts_code.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/shield.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/shield__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/shield__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/shield__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/shield__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/shield__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/shield_disable.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/slash.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/slash_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/socket.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/socket_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/socket_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/socket_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/socket_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/socket_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sort.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sort__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sort__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sort__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sort__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sort__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sort_alphabet.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sort_alphabet_descending.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sort_date.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sort_date_descending.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sort_number.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sort_number_descending.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sort_quantity.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sort_quantity_descending.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sort_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/stamp.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/stamp_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/stamp_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/stamp_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/stamp_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/stamp_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/star.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/star__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/star__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/star__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/star__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/star__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/star_empty.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/star_half.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/star_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/star_small_empty.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/star_small_half.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sticky_note.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sticky_note__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sticky_note__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sticky_note__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sticky_note__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sticky_note__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sticky_note_pin.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sticky_note_shred.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sticky_note_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sticky_note_small_pin.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sticky_note_text.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sticky_notes.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sticky_notes__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sticky_notes__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sticky_notes__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sticky_notes__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sticky_notes__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sticky_notes_pin.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sticky_notes_stack.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/sticky_notes_text.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/switch.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/switch_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/switch_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/switch_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/switch_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/switch_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/table.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/table__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/table__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/table__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/table__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/table__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/table_delete.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/table_delete_column.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/table_insert.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/table_insert_column.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tables.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tables_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tables_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tables_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tables_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tables_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tables_stacks.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tag.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tag__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tag__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tag__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tag__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tag__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tag_label.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tag_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tags.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tags__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tags__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tags__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tags__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tags__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tags_label.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tick.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tick_circle.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tick_circle_frame.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tick_shield.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tick_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tick_small_circle.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/ticket.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/ticket_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/ticket_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/ticket_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/ticket_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/ticket_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/ticket_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/trophy.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/trophy_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/trophy_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/trophy_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/trophy_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/trophy_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/tux.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/user.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/user_add.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/user_comment.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/user_delete.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/user_edit.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/user_female.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/user_go.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/user_gray.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/user_green.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/user_orange.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/user_red.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/user_suit.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/vcard.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/vcard_add.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/vcard_delete.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/vcard_edit.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wall.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wall__arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wall__exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wall__minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wall__pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wall__plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wall_brick.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wall_disable.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wall_small.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wall_small_brick.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wallet.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wallet_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wallet_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wallet_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wallet_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wallet_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wand.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wand_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wand_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wand_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wand_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wand_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wrench.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wrench_arrow.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wrench_exclamation.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wrench_minus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wrench_pencil.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wrench_plus.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x16/wrench_screwdriver.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x32/state_critical.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x32/state_error.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x32/state_info.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x32/state_ok.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x32/state_unknown.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x32/state_warning.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x64/network.png delete mode 100644 interface/ispconfig/interface/themes/default/icons/x64/server.png delete mode 100644 interface/ispconfig/interface/themes/default/images/buttonHolder_bg.gif delete mode 100644 interface/ispconfig/interface/themes/default/images/favicon.ico delete mode 100644 interface/ispconfig/interface/themes/default/images/header_bg.png delete mode 100644 interface/ispconfig/interface/themes/default/images/header_logo.png delete mode 100644 interface/ispconfig/interface/themes/default/images/header_logo.png.old delete mode 100644 interface/ispconfig/interface/themes/default/images/lists_tfoot_bg.png delete mode 100644 interface/ispconfig/interface/themes/default/images/lists_thead_bg.png delete mode 100644 interface/ispconfig/interface/themes/default/images/meter_bg.gif delete mode 100644 interface/ispconfig/interface/themes/default/images/screen_bg.png delete mode 100644 interface/ispconfig/interface/themes/default/licences.txt delete mode 100644 interface/ispconfig/interface/themes/default/templates/form.tpl.htm delete mode 100644 interface/ispconfig/interface/themes/default/templates/listpage.tpl.htm delete mode 100644 interface/ispconfig/interface/themes/default/templates/main.tpl.htm delete mode 100644 interface/ispconfig/interface/themes/default/templates/module.tpl.htm delete mode 100644 interface/ispconfig/interface/themes/default/templates/module_tree.tpl.htm delete mode 100644 interface/ispconfig/interface/themes/default/templates/sidenav.tpl.htm delete mode 100644 interface/ispconfig/interface/themes/default/templates/tabbed_form.tpl.htm delete mode 100644 interface/ispconfig/interface/themes/default/templates/topnav.tpl.htm delete mode 100644 interface/ispconfig/interface/themes/default/yaml/!important.txt delete mode 100644 interface/ispconfig/interface/themes/default/yaml/core/base.css delete mode 100644 interface/ispconfig/interface/themes/default/yaml/core/iehacks.css delete mode 100644 interface/ispconfig/interface/themes/default/yaml/core/print_base.css delete mode 100644 interface/ispconfig/interface/themes/default/yaml/core/slim_base.css delete mode 100644 interface/ispconfig/interface/themes/default/yaml/core/slim_iehacks.css delete mode 100644 interface/ispconfig/interface/themes/default/yaml/core/slim_print_base.css delete mode 100644 interface/ispconfig/interface/themes/default/yaml/debug/debug.css delete mode 100644 interface/ispconfig/interface/themes/default/yaml/debug/images/grid_pattern.png delete mode 100644 interface/ispconfig/interface/themes/default/yaml/debug/images/warning_iehacks.gif delete mode 100644 interface/ispconfig/interface/themes/default/yaml/debug/images/yaml_debug.gif delete mode 100644 interface/ispconfig/interface/themes/default/yaml/navigation/nav_vlist.css delete mode 100644 interface/ispconfig/interface/themes/default/yaml/patches/patch_layout_draft.css delete mode 100644 interface/ispconfig/interface/themes/default/yaml/patches/patch_nav_vlist.css delete mode 100644 interface/ispconfig/interface/themes/default/yaml/print/print_003_draft.css delete mode 100644 interface/ispconfig/interface/themes/default/yaml/print/print_020_draft.css delete mode 100644 interface/ispconfig/interface/themes/default/yaml/print/print_023_draft.css delete mode 100644 interface/ispconfig/interface/themes/default/yaml/print/print_100_draft.css delete mode 100644 interface/ispconfig/interface/themes/default/yaml/print/print_103_draft.css delete mode 100644 interface/ispconfig/interface/themes/default/yaml/print/print_120_draft.css delete mode 100644 interface/ispconfig/interface/themes/default/yaml/print/print_123_draft.css delete mode 100644 interface/ispconfig/interface/themes/default/yaml/screen/basemod_draft.css delete mode 100644 interface/ispconfig/interface/themes/default/yaml/screen/content_default.css delete mode 100644 interface/ispconfig/interface/web/tools/form/user_settings.tform.php delete mode 100644 interface/ispconfig/interface/web/tools/index.php delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/bg.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/bg_usersettings.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/br.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/br_usersettings.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/de.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/de_usersettings.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/en.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/en_usersettings.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/es.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/es_usersettings.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/fi.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/fi_usersettings.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/fr.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/fr_usersettings.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/hu.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/hu_usersettings.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/it.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/it_usersettings.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/ja.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/ja_usersettings.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/nl.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/nl_usersettings.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/pl.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/pl_usersettings.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/pt.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/pt_usersettings.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/ro.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/ro_usersettings.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/ru.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/ru_usersettings.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/se.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/se_usersettings.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/sk.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/sk_usersettings.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/tr.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/lang/tr_usersettings.lng delete mode 100644 interface/ispconfig/interface/web/tools/lib/menu.d/statistics.menu.php delete mode 100644 interface/ispconfig/interface/web/tools/lib/module.conf.php delete mode 100644 interface/ispconfig/interface/web/tools/templates/user_settings.htm delete mode 100644 interface/ispconfig/interface/web/tools/user_settings.php delete mode 100644 interface/ispconfig/nbproject/project.properties delete mode 100644 interface/ispconfig/nbproject/project.xml delete mode 100644 interface/ispconfig/server/conf/apache_apps.vhost.master delete mode 100644 interface/ispconfig/server/conf/apache_ispconfig.conf.master delete mode 100644 interface/ispconfig/server/conf/autoresponder.master delete mode 100644 interface/ispconfig/server/conf/bash.bashrc.master delete mode 100644 interface/ispconfig/server/conf/bastille-firewall.cfg.master delete mode 100644 interface/ispconfig/server/conf/bind_named.conf.local.master delete mode 100644 interface/ispconfig/server/conf/bind_pri.domain.master delete mode 100644 interface/ispconfig/server/conf/debian_network_interfaces.master delete mode 100644 interface/ispconfig/server/conf/error/br/400.html delete mode 100644 interface/ispconfig/server/conf/error/br/401.html delete mode 100644 interface/ispconfig/server/conf/error/br/403.html delete mode 100644 interface/ispconfig/server/conf/error/br/404.html delete mode 100644 interface/ispconfig/server/conf/error/br/405.html delete mode 100644 interface/ispconfig/server/conf/error/br/500.html delete mode 100644 interface/ispconfig/server/conf/error/br/503.html delete mode 100644 interface/ispconfig/server/conf/error/cz/400.html delete mode 100644 interface/ispconfig/server/conf/error/cz/401.html delete mode 100644 interface/ispconfig/server/conf/error/cz/403.html delete mode 100644 interface/ispconfig/server/conf/error/cz/404.html delete mode 100644 interface/ispconfig/server/conf/error/cz/405.html delete mode 100644 interface/ispconfig/server/conf/error/cz/500.html delete mode 100644 interface/ispconfig/server/conf/error/cz/503.html delete mode 100644 interface/ispconfig/server/conf/error/de/400.html delete mode 100644 interface/ispconfig/server/conf/error/de/401.html delete mode 100644 interface/ispconfig/server/conf/error/de/403.html delete mode 100644 interface/ispconfig/server/conf/error/de/404.html delete mode 100644 interface/ispconfig/server/conf/error/de/405.html delete mode 100644 interface/ispconfig/server/conf/error/de/500.html delete mode 100644 interface/ispconfig/server/conf/error/de/503.html delete mode 100644 interface/ispconfig/server/conf/error/en/400.html delete mode 100644 interface/ispconfig/server/conf/error/en/401.html delete mode 100644 interface/ispconfig/server/conf/error/en/403.html delete mode 100644 interface/ispconfig/server/conf/error/en/404.html delete mode 100644 interface/ispconfig/server/conf/error/en/405.html delete mode 100644 interface/ispconfig/server/conf/error/en/500.html delete mode 100644 interface/ispconfig/server/conf/error/en/503.html delete mode 100644 interface/ispconfig/server/conf/error/es/400.html delete mode 100644 interface/ispconfig/server/conf/error/es/401.html delete mode 100644 interface/ispconfig/server/conf/error/es/403.html delete mode 100644 interface/ispconfig/server/conf/error/es/404.html delete mode 100644 interface/ispconfig/server/conf/error/es/405.html delete mode 100644 interface/ispconfig/server/conf/error/es/500.html delete mode 100644 interface/ispconfig/server/conf/error/es/503.html delete mode 100644 interface/ispconfig/server/conf/error/fi/400.html delete mode 100644 interface/ispconfig/server/conf/error/fi/401.html delete mode 100644 interface/ispconfig/server/conf/error/fi/403.html delete mode 100644 interface/ispconfig/server/conf/error/fi/404.html delete mode 100644 interface/ispconfig/server/conf/error/fi/405.html delete mode 100644 interface/ispconfig/server/conf/error/fi/500.html delete mode 100644 interface/ispconfig/server/conf/error/fi/503.html delete mode 100644 interface/ispconfig/server/conf/error/fr/400.html delete mode 100644 interface/ispconfig/server/conf/error/fr/401.html delete mode 100644 interface/ispconfig/server/conf/error/fr/403.html delete mode 100644 interface/ispconfig/server/conf/error/fr/404.html delete mode 100644 interface/ispconfig/server/conf/error/fr/405.html delete mode 100644 interface/ispconfig/server/conf/error/fr/500.html delete mode 100644 interface/ispconfig/server/conf/error/fr/503.html delete mode 100644 interface/ispconfig/server/conf/error/gr/400.html delete mode 100644 interface/ispconfig/server/conf/error/gr/401.html delete mode 100644 interface/ispconfig/server/conf/error/gr/403.html delete mode 100644 interface/ispconfig/server/conf/error/gr/404.html delete mode 100644 interface/ispconfig/server/conf/error/gr/405.html delete mode 100644 interface/ispconfig/server/conf/error/gr/500.html delete mode 100644 interface/ispconfig/server/conf/error/gr/503.html delete mode 100644 interface/ispconfig/server/conf/error/hu/400.html delete mode 100644 interface/ispconfig/server/conf/error/hu/401.html delete mode 100644 interface/ispconfig/server/conf/error/hu/403.html delete mode 100644 interface/ispconfig/server/conf/error/hu/404.html delete mode 100644 interface/ispconfig/server/conf/error/hu/405.html delete mode 100644 interface/ispconfig/server/conf/error/hu/500.html delete mode 100644 interface/ispconfig/server/conf/error/hu/503.html delete mode 100644 interface/ispconfig/server/conf/error/it/400.html delete mode 100644 interface/ispconfig/server/conf/error/it/401.html delete mode 100644 interface/ispconfig/server/conf/error/it/403.html delete mode 100644 interface/ispconfig/server/conf/error/it/404.html delete mode 100644 interface/ispconfig/server/conf/error/it/405.html delete mode 100644 interface/ispconfig/server/conf/error/it/500.html delete mode 100644 interface/ispconfig/server/conf/error/it/503.html delete mode 100644 interface/ispconfig/server/conf/error/nl/400.html delete mode 100644 interface/ispconfig/server/conf/error/nl/401.html delete mode 100644 interface/ispconfig/server/conf/error/nl/403.html delete mode 100644 interface/ispconfig/server/conf/error/nl/404.html delete mode 100644 interface/ispconfig/server/conf/error/nl/405.html delete mode 100644 interface/ispconfig/server/conf/error/nl/500.html delete mode 100644 interface/ispconfig/server/conf/error/nl/503.html delete mode 100644 interface/ispconfig/server/conf/error/pl/400.html delete mode 100644 interface/ispconfig/server/conf/error/pl/401.html delete mode 100644 interface/ispconfig/server/conf/error/pl/403.html delete mode 100644 interface/ispconfig/server/conf/error/pl/404.html delete mode 100644 interface/ispconfig/server/conf/error/pl/405.html delete mode 100644 interface/ispconfig/server/conf/error/pl/500.html delete mode 100644 interface/ispconfig/server/conf/error/pl/503.html delete mode 100644 interface/ispconfig/server/conf/error/se/400.html delete mode 100644 interface/ispconfig/server/conf/error/se/401.html delete mode 100644 interface/ispconfig/server/conf/error/se/403.html delete mode 100644 interface/ispconfig/server/conf/error/se/404.html delete mode 100644 interface/ispconfig/server/conf/error/se/405.html delete mode 100644 interface/ispconfig/server/conf/error/se/500.html delete mode 100644 interface/ispconfig/server/conf/error/se/503.html delete mode 100644 interface/ispconfig/server/conf/error/si/400.html delete mode 100644 interface/ispconfig/server/conf/error/si/401.html delete mode 100644 interface/ispconfig/server/conf/error/si/403.html delete mode 100644 interface/ispconfig/server/conf/error/si/404.html delete mode 100644 interface/ispconfig/server/conf/error/si/405.html delete mode 100644 interface/ispconfig/server/conf/error/si/500.html delete mode 100644 interface/ispconfig/server/conf/error/si/503.html delete mode 100644 interface/ispconfig/server/conf/error/sr/400.html delete mode 100644 interface/ispconfig/server/conf/error/sr/401.html delete mode 100644 interface/ispconfig/server/conf/error/sr/403.html delete mode 100644 interface/ispconfig/server/conf/error/sr/404.html delete mode 100644 interface/ispconfig/server/conf/error/sr/405.html delete mode 100644 interface/ispconfig/server/conf/error/sr/500.html delete mode 100644 interface/ispconfig/server/conf/error/sr/503.html delete mode 100644 interface/ispconfig/server/conf/gentoo_network_interfaces.master delete mode 100644 interface/ispconfig/server/conf/getmail.conf.master delete mode 100644 interface/ispconfig/server/conf/index/.htaccess delete mode 100644 interface/ispconfig/server/conf/index/favicon.ico delete mode 100644 interface/ispconfig/server/conf/index/robots.txt delete mode 100644 interface/ispconfig/server/conf/index/standard_index.html_br delete mode 100644 interface/ispconfig/server/conf/index/standard_index.html_cz delete mode 100644 interface/ispconfig/server/conf/index/standard_index.html_de delete mode 100644 interface/ispconfig/server/conf/index/standard_index.html_en delete mode 100644 interface/ispconfig/server/conf/index/standard_index.html_es delete mode 100644 interface/ispconfig/server/conf/index/standard_index.html_fi delete mode 100644 interface/ispconfig/server/conf/index/standard_index.html_fr delete mode 100644 interface/ispconfig/server/conf/index/standard_index.html_gr delete mode 100644 interface/ispconfig/server/conf/index/standard_index.html_hu delete mode 100644 interface/ispconfig/server/conf/index/standard_index.html_it delete mode 100644 interface/ispconfig/server/conf/index/standard_index.html_nl delete mode 100644 interface/ispconfig/server/conf/index/standard_index.html_pl delete mode 100644 interface/ispconfig/server/conf/index/standard_index.html_se delete mode 100644 interface/ispconfig/server/conf/index/standard_index.html_sr delete mode 100644 interface/ispconfig/server/conf/index/user_standard_index.html_br delete mode 100644 interface/ispconfig/server/conf/index/user_standard_index.html_cz delete mode 100644 interface/ispconfig/server/conf/index/user_standard_index.html_de delete mode 100644 interface/ispconfig/server/conf/index/user_standard_index.html_en delete mode 100644 interface/ispconfig/server/conf/index/user_standard_index.html_es delete mode 100644 interface/ispconfig/server/conf/index/user_standard_index.html_fi delete mode 100644 interface/ispconfig/server/conf/index/user_standard_index.html_fr delete mode 100644 interface/ispconfig/server/conf/index/user_standard_index.html_gr delete mode 100644 interface/ispconfig/server/conf/index/user_standard_index.html_hu delete mode 100644 interface/ispconfig/server/conf/index/user_standard_index.html_it delete mode 100644 interface/ispconfig/server/conf/index/user_standard_index.html_nl delete mode 100644 interface/ispconfig/server/conf/index/user_standard_index.html_pl delete mode 100644 interface/ispconfig/server/conf/index/user_standard_index.html_se delete mode 100644 interface/ispconfig/server/conf/index/user_standard_index.html_sr delete mode 100644 interface/ispconfig/server/conf/mailfilter_move_junk.master delete mode 100644 interface/ispconfig/server/conf/motd.master delete mode 100644 interface/ispconfig/server/conf/php-cgi-starter.master delete mode 100644 interface/ispconfig/server/conf/php-fcgi-starter.master delete mode 100644 interface/ispconfig/server/conf/sieve_filter.master delete mode 100644 interface/ispconfig/server/conf/vhost.conf.master delete mode 100644 interface/ispconfig/server/cron_daily.php delete mode 100644 interface/ispconfig/server/cron_daily.sh delete mode 100644 interface/ispconfig/server/lib/app.inc.php delete mode 100644 interface/ispconfig/server/lib/classes/db_mysql.inc.php delete mode 100644 interface/ispconfig/server/lib/classes/file.inc.php delete mode 100644 interface/ispconfig/server/lib/classes/getconf.inc.php delete mode 100644 interface/ispconfig/server/lib/classes/ini_parser.inc.php delete mode 100644 interface/ispconfig/server/lib/classes/mod_mail_base.inc.php delete mode 100644 interface/ispconfig/server/lib/classes/modules.inc.php delete mode 100644 interface/ispconfig/server/lib/classes/plugins.inc.php delete mode 100644 interface/ispconfig/server/lib/classes/services.inc.php delete mode 100644 interface/ispconfig/server/lib/classes/system.inc.php delete mode 100644 interface/ispconfig/server/lib/classes/tpl.inc.php delete mode 100644 interface/ispconfig/server/lib/classes/tpl_cache.inc.php delete mode 100644 interface/ispconfig/server/lib/classes/tpl_error.inc.php delete mode 100644 interface/ispconfig/server/lib/classes/tpl_ini.inc.php delete mode 100644 interface/ispconfig/server/lib/config.inc.php delete mode 100644 interface/ispconfig/server/lib/mysql_clientdb.conf delete mode 100644 interface/ispconfig/server/mods-available/client_module.inc.php delete mode 100644 interface/ispconfig/server/mods-available/cron_module.inc.php delete mode 100644 interface/ispconfig/server/mods-available/database_module.inc.php delete mode 100644 interface/ispconfig/server/mods-available/dns_module.inc.php delete mode 100644 interface/ispconfig/server/mods-available/mail_module.inc.php delete mode 100644 interface/ispconfig/server/mods-available/monitor_core_module.inc.php delete mode 100644 interface/ispconfig/server/mods-available/server_module.inc.php delete mode 100644 interface/ispconfig/server/mods-available/web_module.inc.php delete mode 100644 interface/ispconfig/server/mods-core/monitor_core_module.inc.php delete mode 100644 interface/ispconfig/server/mods-enabled/client_module.inc.php delete mode 100644 interface/ispconfig/server/mods-enabled/cron_module.inc.php delete mode 100644 interface/ispconfig/server/mods-enabled/database_module.inc.php delete mode 100644 interface/ispconfig/server/mods-enabled/dns_module.inc.php delete mode 100644 interface/ispconfig/server/mods-enabled/mail_module.inc.php delete mode 100644 interface/ispconfig/server/mods-enabled/monitor_core_module.inc.php delete mode 100644 interface/ispconfig/server/mods-enabled/server_module.inc.php delete mode 100644 interface/ispconfig/server/mods-enabled/web_module.inc.php delete mode 100644 interface/ispconfig/server/plugins-available/apache2_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-available/apps_vhost_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-available/bind_dlz_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-available/bind_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-available/cron_jailkit_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-available/cron_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-available/firewall_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-available/ftpuser_base_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-available/getmail_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-available/mail_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-available/maildeliver_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-available/maildrop_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-available/mysql_clientdb_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-available/network_settings_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-available/pma_symlink_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-available/postfix_filter_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-available/postfix_server_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-available/powerdns_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-available/shelluser_base_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-available/shelluser_jailkit_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-available/software_update_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-available/webmail_symlink_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-enabled/apache2_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-enabled/apps_vhost_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-enabled/cron_jailkit_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-enabled/cron_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-enabled/firewall_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-enabled/ftpuser_base_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-enabled/getmail_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-enabled/mail_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-enabled/maildeliver_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-enabled/mysql_clientdb_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-enabled/network_settings_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-enabled/postfix_filter_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-enabled/postfix_server_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-enabled/shelluser_base_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-enabled/shelluser_jailkit_plugin.inc.php delete mode 100644 interface/ispconfig/server/plugins-enabled/software_update_plugin.inc.php delete mode 100644 interface/ispconfig/server/scripts/create_jailkit_chroot.sh delete mode 100644 interface/ispconfig/server/scripts/create_jailkit_programs.sh delete mode 100644 interface/ispconfig/server/scripts/create_jailkit_user.sh delete mode 100644 interface/ispconfig/server/scripts/ispconfig_update.php delete mode 100644 interface/ispconfig/server/scripts/ispconfig_update.sh delete mode 100644 interface/ispconfig/server/scripts/update_from_svn.sh delete mode 100644 interface/ispconfig/server/scripts/update_from_tgz.sh delete mode 100644 interface/ispconfig/server/scripts/vlogger delete mode 100644 interface/ispconfig/server/server.php delete mode 100644 interface/ispconfig/server/server.sh delete mode 100644 interface/ispconfig/vpproject/ispconfig.vpppath diff --git a/interface/ispconfig/interface/admin/firewall_del.php b/interface/ispconfig/interface/admin/firewall_del.php deleted file mode 100644 index 5f4dc9172..000000000 --- a/interface/ispconfig/interface/admin/firewall_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('admin'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/firewall_edit.php b/interface/ispconfig/interface/admin/firewall_edit.php deleted file mode 100644 index 0401143dc..000000000 --- a/interface/ispconfig/interface/admin/firewall_edit.php +++ /dev/null @@ -1,72 +0,0 @@ -auth->check_module_permissions('admin'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - function onBeforeUpdate() { - global $app, $conf; - - //* Check if the server has been changed - // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway - if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - $rec = $app->db->queryOneRecord("SELECT server_id from firewall WHERE firewall_id = ".$this->id); - if($rec['server_id'] != $this->dataRecord["server_id"]) { - //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The Server can not be changed.'); - $this->dataRecord["server_id"] = $rec['server_id']; - } - unset($rec); - } - } -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/firewall_list.php b/interface/ispconfig/interface/admin/firewall_list.php deleted file mode 100644 index f95c570c2..000000000 --- a/interface/ispconfig/interface/admin/firewall_list.php +++ /dev/null @@ -1,52 +0,0 @@ -auth->check_module_permissions('admin'); - -$app->uses('listform_actions'); - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/form/dbsync.tform.php b/interface/ispconfig/interface/admin/form/dbsync.tform.php deleted file mode 100644 index 363c916f2..000000000 --- a/interface/ispconfig/interface/admin/form/dbsync.tform.php +++ /dev/null @@ -1,264 +0,0 @@ - 'DB sync', - 'width' => 80, - 'template' => 'templates/dbsync_edit.htm', - 'fields' => array ( - ################################## - # Beginn Datenbankfelder - ################################## - 'jobname' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '/^.{1,30}$/', - 'errmsg' => 'jobname_err', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '15', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'sync_interval_minutes' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '15', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'db_type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => array('mysql' => 'mysql'), - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'db_host' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'db_name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'db_username' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'db_password' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'db_tables' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOXARRAY', - 'regex' => '', - 'errmsg' => '', - 'default' => 'admin,forms', - 'value' => $db_tables, - 'separator' => ',', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'empty_datalog' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'CHECKBOX', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => array(0 => 0,1 => 1), - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'sync_datalog_external' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'CHECKBOX', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => array(0 => 0,1 => 1), - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'active' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'CHECKBOX', - 'regex' => '', - 'errmsg' => '', - 'default' => '1', - 'value' => array(0 => 0,1 => 1), - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ) - ################################## - # ENDE Datenbankfelder - ################################## - ) -); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/form/filesync.tform.php b/interface/ispconfig/interface/admin/form/filesync.tform.php deleted file mode 100644 index c252b1a29..000000000 --- a/interface/ispconfig/interface/admin/form/filesync.tform.php +++ /dev/null @@ -1,205 +0,0 @@ - "Datei sync", - 'width' => 80, - 'template' => "templates/filesync_edit.htm", - 'fields' => array ( - ################################## - # Beginn Datenbankfelder - ################################## - 'jobname' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '/^.{1,30}$/', - 'errmsg' => 'jobname_err', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '15', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'sync_interval_minutes' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '15', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'ftp_host' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'ftp_path' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'ftp_username' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'ftp_password' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'local_path' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'wput_options' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '--timestamping --dont-continue', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'active' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'CHECKBOX', - 'regex' => '', - 'errmsg' => '', - 'default' => '1', - 'value' => array(0 => 0,1 => 1), - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ) - ################################## - # ENDE Datenbankfelder - ################################## - ) -); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/form/firewall.tform.php b/interface/ispconfig/interface/admin/form/firewall.tform.php deleted file mode 100644 index edbe89ce4..000000000 --- a/interface/ispconfig/interface/admin/form/firewall.tform.php +++ /dev/null @@ -1,112 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['firewall'] = array ( - 'title' => "Firewall", - 'width' => 100, - 'template' => "templates/firewall_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'firewall_error_unique'), - ), - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'tcp_port' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[\s0-9\,\:]{0,255}$/', - 'errmsg'=> 'tcp_ports_error_regex'), - ), - 'default' => '20,21,22,25,53,80,110,143,443,3306,8080,10000', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'udp_port' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[\s0-9\,\:]{0,255}$/', - 'errmsg'=> 'tcp_ports_error_regex'), - ), - 'default' => '53,3306', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/form/groups.tform.php b/interface/ispconfig/interface/admin/form/groups.tform.php deleted file mode 100644 index c27cfad63..000000000 --- a/interface/ispconfig/interface/admin/form/groups.tform.php +++ /dev/null @@ -1,112 +0,0 @@ - "Groups", - 'width' => 80, - 'template' => "templates/groups_edit.htm", - 'fields' => array ( - ################################## - # Beginn Datenbankfelder - ################################## - 'name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '/^.{1,30}$/', - 'errmsg' => 'name_err', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'description' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'TEXTAREA', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '', - 'maxlength' => '', - 'rows' => '5', - 'cols' => '30' - ) - ################################## - # ENDE Datenbankfelder - ################################## - ) -); -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/form/remote_user.tform.php b/interface/ispconfig/interface/admin/form/remote_user.tform.php deleted file mode 100644 index 265765624..000000000 --- a/interface/ispconfig/interface/admin/form/remote_user.tform.php +++ /dev/null @@ -1,160 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['remote_user'] = array ( - 'title' => "Remote User", - 'width' => 100, - 'template' => "templates/remote_user_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'remote_userid' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT remote_userid,remote_username FROM remote_user WHERE {AUTHSQL} ORDER BY remote_username', - 'keyfield'=> 'remote_userid', - 'valuefield'=> 'remote_username' - ), - 'value' => '' - ), - - 'remote_username' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'username_error_unique'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{0,64}$/', - 'errmsg'=> 'username_error_regex'), -2 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'username_error_empty'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'remote_password' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'PASSWORD', - 'encryption' => 'MD5', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'remote_functions' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'CHECKBOXARRAY', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => $function_list, - 'separator' => ';', - 'width' => '', - 'maxlength' => '', - 'rows' => '5', - 'cols' => '30' - ) - - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - - - -?> diff --git a/interface/ispconfig/interface/admin/form/server.tform.php b/interface/ispconfig/interface/admin/form/server.tform.php deleted file mode 100644 index 9c0138bb7..000000000 --- a/interface/ispconfig/interface/admin/form/server.tform.php +++ /dev/null @@ -1,157 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 1; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['services'] = array ( - 'title' => "Services", - 'width' => 100, - 'template' => "templates/server_edit_services.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'mail_server' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'CHECKBOX', - 'default' => '0', - 'value' => array(0 => 0,1 => 1) - ), - 'web_server' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'CHECKBOX', - 'default' => '0', - 'value' => array(0 => 0,1 => 1) - ), - 'dns_server' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'CHECKBOX', - 'default' => '0', - 'value' => array(0 => 0,1 => 1) - ), - 'file_server' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'CHECKBOX', - 'default' => '0', - 'value' => array(0 => 0,1 => 1) - ), - 'db_server' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'CHECKBOX', - 'default' => '0', - 'value' => array(0 => 0,1 => 1) - ), - 'vserver_server' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'CHECKBOX', - 'default' => '0', - 'value' => array(0 => 0,1 => 1) - ), - 'mirror_server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '' - ), - /* - 'update' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'value' => array(0 => 'No', 1 => 'Yes') - ), - */ - 'active' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'value' => array(0 => 'No', 1 => 'Yes') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -/* -$form["tabs"]['config'] = array ( - 'title' => "Config", - 'width' => 100, - 'template' => "templates/server_edit_config.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'config' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'TEXTAREA', - 'default' => '', - 'value' => '', - 'width' => '', - 'cols' => '40', - 'rows' => '20', - 'maxlength' => '' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); -*/ - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/form/server_config.tform.php b/interface/ispconfig/interface/admin/form/server_config.tform.php deleted file mode 100644 index b16f9234f..000000000 --- a/interface/ispconfig/interface/admin/form/server_config.tform.php +++ /dev/null @@ -1,750 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['server'] = array ( - 'title' => "Server", - 'width' => 70, - 'template' => "templates/server_config_server_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'auto_network_configuration' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n',1 => 'y') - ), - 'ip_address' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '192.168.0.105', - 'validators' => array ( 0 => array ( 'type' => 'ISIPV4', - 'errmsg'=> 'ip_address_error_wrong'), - ), - 'value' => '', - 'width' => '15', - 'maxlength' => '255' - ), - 'netmask' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '255.255.255.0', - 'validators' => array ( 0 => array ( 'type' => 'ISIPV4', - 'errmsg'=> 'netmask_error_wrong'), - ), - 'value' => '', - 'width' => '15', - 'maxlength' => '255' - ), - 'gateway' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '192.168.0.1', - 'validators' => array ( 0 => array ( 'type' => 'ISIPV4', - 'errmsg'=> 'gateway_error_wrong'), - ), - 'value' => '', - 'width' => '15', - 'maxlength' => '255' - ), - 'hostname' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'server1.domain.tld', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'hostname_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'nameservers' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '192.168.0.1,192.168.0.2', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'nameservers_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'loglevel' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '2', - 'value' => array('0' => 'Debug', '1' => 'Warnings', '2' => 'Errors'), - 'width' => '40', - 'maxlength' => '255' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -$form["tabs"]['mail'] = array ( - 'title' => "Mail", - 'width' => 60, - 'template' => "templates/server_config_mail_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'module' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('postfix_mysql' => 'postfix_mysql') - ), - 'maildir_path' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '/home/vmail/[domain]/[localpart]/', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'maildir_path_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'homedir_path' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '/home/vmail/', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'homedir_path_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'pop3_imap_daemon' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '20', - 'value' => array('courier' => 'Courier', 'dovecot' => 'Dovecot') - ), - 'mail_filter_syntax' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '20', - 'value' => array('maildrop' => 'Maildrop', 'sieve' => 'Sieve') - ), - 'mailuser_uid' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '5000', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'mailuser_uid_error_empty'), - ), - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'mailuser_gid' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '5000', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'mailuser_gid_error_empty'), - ), - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'mailuser_name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'vmail', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'mailuser_name_error_empty'), - ), - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'mailuser_group' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'vmail', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'mailuser_group_error_empty'), - ), - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'relayhost' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'relayhost_user' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'relayhost_password' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'mailbox_size_limit' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '15' - ), - 'message_size_limit' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '15' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -$form["tabs"]['getmail'] = array ( - 'title' => "Getmail", - 'width' => 80, - 'template' => "templates/server_config_getmail_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'getmail_config_dir' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'getmail_config_dir_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -$form["tabs"]['web'] = array ( - 'title' => "Web", - 'width' => 60, - 'template' => "templates/server_config_web_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'website_basedir' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'website_basedir_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'website_path' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'website_path_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'website_symlinks' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'website_symlinks_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'vhost_conf_dir' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'vhost_conf_dir_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'vhost_conf_enabled_dir' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'vhost_conf_enabled_dir_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'security_level' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '20', - 'value' => array('10' => 'Medium', '20' => 'High') - ), - 'user' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'apache_user_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'group' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'apache_group_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'php_open_basedir' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'php_open_basedir_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'htaccess_allow_override' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'htaccess_allow_override_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'apps_vhost_port' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '8081', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'apps_vhost_port_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'apps_vhost_ip' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '_default_', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'apps_vhost_ip_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'apps_vhost_servername' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -$form["tabs"]['dns'] = array ( - 'title' => "DNS", - 'width' => 60, - 'template' => "templates/server_config_dns_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'bind_user' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'bind_user_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'bind_group' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'bind_group_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'bind_zonefiles_dir' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'bind_zonefiles_dir_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'named_conf_path' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'named_conf_path_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'named_conf_local_path' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'named_conf_local_path_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -$form["tabs"]['fastcgi'] = array ( - 'title' => "FastCGI", - 'width' => 80, - 'template' => "templates/server_config_fastcgi_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'fastcgi_starter_path' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'fastcgi_starter_path_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'fastcgi_starter_script' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'fastcgi_starter_script_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'fastcgi_alias' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'fastcgi_alias_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'fastcgi_phpini_path' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'fastcgi_phpini_path_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'fastcgi_children' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'fastcgi_children_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'fastcgi_max_requests' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'fastcgi_max_requests_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'fastcgi_bin' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'fastcgi_bin_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - -$form["tabs"]['jailkit'] = array ( - 'title' => "Jailkit", - 'width' => 80, - 'template' => "templates/server_config_jailkit_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'jailkit_chroot_home' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'jailkit_chroot_home_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'jailkit_chroot_app_sections' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'jailkit_chroot_app_sections_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '1000' - ), - 'jailkit_chroot_app_programs' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'jailkit_chroot_app_programs_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '1000' - ), - 'jailkit_chroot_cron_programs' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'jailkit_chroot_cron_programs_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '1000' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - -$form["tabs"]['vlogger'] = array ( - 'title' => "vlogger", - 'width' => 80, - 'template' => "templates/server_config_vlogger_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'config_dir' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'vlogger_config_dir_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -$form["tabs"]['cron'] = array ( - 'title' => "Cron", - 'width' => 80, - 'template' => "templates/server_config_cron_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'init_script' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'cron_init_script_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'crontab_dir' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'crontab_dir_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'wget' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'cron_wget_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - - - - - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/form/server_ip.tform.php b/interface/ispconfig/interface/admin/form/server_ip.tform.php deleted file mode 100644 index d0f12dae8..000000000 --- a/interface/ispconfig/interface/admin/form/server_ip.tform.php +++ /dev/null @@ -1,125 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['server_ip'] = array ( - 'title' => "IP Address", - 'width' => 80, - 'template' => "templates/server_ip_edit.htm", - 'fields' => array ( - ################################## - # Beginn Datenbankfelder - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'ip_address' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISIPV4', - 'errmsg'=> 'ip_error_wrong'), - 1 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'ip_error_unique'), - ), - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '15', - 'maxlength' => '15', - 'rows' => '', - 'cols' => '' - ), - 'virtualhost' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datenbankfelder - ################################## - ) -); -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/form/software_repo.tform.php b/interface/ispconfig/interface/admin/form/software_repo.tform.php deleted file mode 100644 index 361d93c79..000000000 --- a/interface/ispconfig/interface/admin/form/software_repo.tform.php +++ /dev/null @@ -1,153 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['software_repo'] = array ( - 'title' => "Repository", - 'width' => 80, - 'template' => "templates/software_repo_edit.htm", - 'fields' => array ( - ################################## - # Beginn Datenbankfelder - ################################## - 'repo_name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'repo_name_empty'), - 1 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'repo_name_unique'), - ), - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '40', - 'maxlength' => '40', - 'rows' => '', - 'cols' => '' - ), - 'repo_url' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'repo_name_empty'), - 1 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'repo_name_unique'), - ), - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '40', - 'maxlength' => '40', - 'rows' => '', - 'cols' => '' - ), - 'repo_username' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '30', - 'rows' => '', - 'cols' => '' - ), - 'repo_password' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'PASSWORD', - 'encryption' => 'CLEARTEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '30', - 'rows' => '', - 'cols' => '' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datenbankfelder - ################################## - ) -); -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/form/system_config.tform.php b/interface/ispconfig/interface/admin/form/system_config.tform.php deleted file mode 100644 index 2ce24c52f..000000000 --- a/interface/ispconfig/interface/admin/form/system_config.tform.php +++ /dev/null @@ -1,167 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['sites'] = array ( - 'title' => "Sites", - 'width' => 70, - 'template' => "templates/system_config_sites_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'dbname_prefix' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-0\-\_\[\]]{0,50}$/', - 'errmsg'=> 'dbname_prefix_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'dbuser_prefix' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-0\-\_\[\]]{0,50}$/', - 'errmsg'=> 'dbuser_prefix_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'ftpuser_prefix' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-0\-\_\[\]]{0,50}$/', - 'errmsg'=> 'ftpuser_prefix_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'shelluser_prefix' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-0\-\_\[\]]{0,50}$/', - 'errmsg'=> 'shelluser_prefix_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'dblist_phpmyadmin_link' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n',1 => 'y') - ), - 'phpmyadmin_url' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[0-9a-zA-Z\:\/\-\.]{0,255}$/', - 'errmsg'=> 'phpmyadmin_url_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -$form["tabs"]['mail'] = array ( - 'title' => "Mail", - 'width' => 70, - 'template' => "templates/system_config_mail_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'mailboxlist_webmail_link' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n',1 => 'y') - ), - 'webmail_url' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[0-9a-zA-Z\:\/\-\.]{0,255}$/', - 'errmsg'=> 'webmail_url_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/form/users.tform.php b/interface/ispconfig/interface/admin/form/users.tform.php deleted file mode 100644 index 1edbb0cc4..000000000 --- a/interface/ispconfig/interface/admin/form/users.tform.php +++ /dev/null @@ -1,456 +0,0 @@ - 0 id must match with id of current user -$form['auth_preset']['userid'] = 0; -//* 0 = default groupid of the user, > 0 id must match with groupid of current user -$form['auth_preset']['groupid'] = 0; - -//** Permissions are: r = read, i = insert, u = update, d = delete -$form['auth_preset']['perm_user'] = 'riud'; -$form['auth_preset']['perm_group'] = 'riud'; -$form['auth_preset']['perm_other'] = ''; - -//* Pick out modules -$modules_list = array(); -$handle = @opendir(ISPC_WEB_PATH); -while ($file = @readdir ($handle)) { - if ($file != '.' && $file != '..') { - if(@is_dir(ISPC_WEB_PATH."/$file")) { - if(is_file(ISPC_WEB_PATH."/$file/lib/module.conf.php") and $file != 'login' && $file != 'designer') { - $modules_list[$file] = $file; - } - } - } -} - -//* Load themes -$themes_list = array(); -$handle = @opendir(ISPC_THEMES_PATH); -while ($file = @readdir ($handle)) { - if (substr($file, 0, 1) != '.') { - if(@is_dir(ISPC_THEMES_PATH."/$file")) { - $themes_list[$file] = $file; - } - } -} - -//* Languages -$language_list = array(); -$handle = @opendir(ISPC_ROOT_PATH.'/lib/lang'); -while ($file = @readdir ($handle)) { - if ($file != '.' && $file != '..') { - if(@is_file(ISPC_ROOT_PATH.'/lib/lang/'.$file) and substr($file,-4,4) == '.lng') { - $tmp = substr($file, 0, 2); - $language_list[$tmp] = $tmp; - } - } -} - -//* Pick out groups -$groups_list = array(); -$tmp_records = $app->db->queryAllRecords('SELECT groupid, name FROM sys_group ORDER BY name'); -if(is_array($tmp_records)) { - foreach($tmp_records as $tmp_rec) { - $groups_list[$tmp_rec['groupid']] = $tmp_rec['name']; - } -} - -$form['tabs']['users'] = array ( - 'title' => 'Users', - 'width' => 80, - 'template' => 'templates/users_user_edit.htm', - 'fields' => array ( - ################################## - # Beginn Datenbankfelder - ################################## - 'username' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'username_empty'), - 1 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'username_unique'), - 2 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-\_]{0,64}$/', - 'errmsg'=> 'username_err'), - ), - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '15', - 'maxlength' => '30', - 'rows' => '', - 'cols' => '' - ), - 'passwort' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'PASSWORD', - 'encryption'=> 'CRYPT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '15', - 'maxlength' => '100', - 'rows' => '', - 'cols' => '' - ), - 'modules' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOXARRAY', - 'regex' => '', - 'errmsg' => '', - 'default' => 'admin,forms', - 'value' => $modules_list, - 'separator' => ',', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'startmodule' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => $modules_list, - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'app_theme' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'RADIO', - 'regex' => '', - 'errmsg' => '', - 'default' => 'default', - 'value' => $themes_list, - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'typ' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'RADIO', - 'regex' => '', - 'errmsg' => '', - 'default' => 'user', - 'value' => array ('user' => 'user', 'admin' => 'admin'), - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'active' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'CHECKBOX', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => array(0 => 0,1 => 1), - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'language' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => $language_list, - 'separator' => '', - 'width' => '30', - 'maxlength' => '2', - 'rows' => '', - 'cols' => '' - ) - ################################## - # ENDE Datenbankfelder - ################################## - ) -); -/* -$form['tabs']['address'] = array ( - 'title' => 'Address', - 'width' => 80, - 'template' => 'templates/users_address_edit.htm', - 'fields' => array ( - ################################## - # Beginn Datenbankfelder - ################################## - 'name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'vorname' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'unternehmen' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'strasse' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'ort' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'plz' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'land' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'email' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'url' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'telefon' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'fax' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ) - - ################################## - # ENDE Datenbankfelder - ################################## - ) -); -*/ - -$form['tabs']['groups'] = array ( - 'title' => 'Groups', - 'width' => 80, - 'template' => 'templates/users_groups_edit.htm', - 'fields' => array ( - ################################## - # Beginn Datenbankfelder - ################################## - 'default_group' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => $groups_list, - 'separator' => ',', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'groups' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOXARRAY', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => $groups_list, - 'separator' => ',', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ) - - ################################## - # ENDE Datenbankfelder - ################################## - ) -); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/groups_del.php b/interface/ispconfig/interface/admin/groups_del.php deleted file mode 100644 index a7a804db5..000000000 --- a/interface/ispconfig/interface/admin/groups_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('admin'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/groups_edit.php b/interface/ispconfig/interface/admin/groups_edit.php deleted file mode 100644 index bee5976db..000000000 --- a/interface/ispconfig/interface/admin/groups_edit.php +++ /dev/null @@ -1,53 +0,0 @@ -auth->check_module_permissions('admin'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); - -// let tform_actions handle the page -$app->tform_actions->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/groups_list.php b/interface/ispconfig/interface/admin/groups_list.php deleted file mode 100644 index fee6a17bb..000000000 --- a/interface/ispconfig/interface/admin/groups_list.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('admin'); - -$app->uses('listform_actions'); -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/index.php b/interface/ispconfig/interface/admin/index.php deleted file mode 100644 index 50afd7bca..000000000 --- a/interface/ispconfig/interface/admin/index.php +++ /dev/null @@ -1,78 +0,0 @@ -uses('tpl'); - $app->tpl->newTemplate("form.tpl.htm"); - - $app->tpl->setVar('error',$error); - $app->tpl->setInclude('content_tpl','admin/templates/index.htm'); - return $app->tpl->grab(); - /* - $filename = 'test.txt'; -$somecontent = $app->tpl->grab(); - -// Sichergehen, dass die Datei existiert und beschreibbar ist - - - // Wir öffnen $filename im "Anhänge" - Modus. - // Der Dateizeiger befindet sich am Ende der Datei, und - // dort wird $somecontent später mit fwrite() geschrieben. - if (!$handle = fopen($filename, "w")) { - print "Kann die Datei $filename nicht öffnen"; - exit; - } - - // Schreibe $somecontent in die geöffnete Datei. - if (!fwrite($handle, $somecontent)) { - print "Kann in die Datei $filename nicht schreiben"; - exit; - } - - - fclose($handle); - - - - - return 'dd'; - */ - } -} - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/language_add.php b/interface/ispconfig/interface/admin/language_add.php deleted file mode 100644 index 9ab9adccc..000000000 --- a/interface/ispconfig/interface/admin/language_add.php +++ /dev/null @@ -1,104 +0,0 @@ -auth->check_module_permissions('admin'); - -//* This is only allowed for administrators -if(!$app->auth->is_admin()) die('only allowed for administrators.'); - -$app->uses('tpl'); - -$app->tpl->newTemplate('form.tpl.htm'); -$app->tpl->setInclude('content_tpl', 'templates/language_add.htm'); - -//* reading languages -$language_option = ''; -$error = ''; -$msg = ''; -$selected_language = (isset($_REQUEST['lng_select']))?substr($_REQUEST['lng_select'],0,2):'en'; -if(!preg_match("/^[a-z]{2}$/i", $selected_language)) die('unallowed characters in selected language name.'); - -$handle = opendir(ISPC_ROOT_PATH.'/lib/lang/'); -while ($file = readdir ($handle)) { - if ($file != '.' && $file != '..') { - $tmp_lng = substr($file,0,-4); - if($tmp_lng !='') { - $selected = ($tmp_lng == $selected_language)?'SELECTED':''; - $language_option .= ""; - if(isset($_POST['lng_new']) && $_POST['lng_new'] == $tmp_lng) $error = 'Language exists already.'; - } - } -} -$app->tpl->setVar('language_option',$language_option); -$app->tpl->setVar('error',$error); - -if(isset($_POST['lng_new']) && strlen($_POST['lng_new']) == 2 && $error == '') { - $lng_new = $_POST['lng_new']; - if(!preg_match("/^[a-z]{2}$/i", $lng_new)) die('unallowed characters in language name.'); - - //* Copy the main language file - copy(ISPC_LIB_PATH."/lang/$selected_language.lng",ISPC_LIB_PATH."/lang/$lng_new.lng"); - - //* Make a copy of every language file - $bgcolor = '#FFFFFF'; - $language_files_list = array(); - $handle = @opendir(ISPC_WEB_PATH); - while ($file = @readdir ($handle)) { - if ($file != '.' && $file != '..') { - if(@is_dir(ISPC_WEB_PATH.'/'.$file.'/lib/lang')) { - $handle2 = opendir(ISPC_WEB_PATH.'/'.$file.'/lib/lang'); - while ($lang_file = @readdir ($handle2)) { - if ($lang_file != '.' && $lang_file != '..' && substr($lang_file,0,2) == $selected_language) { - $new_lang_file = $lng_new.substr($lang_file,2); - //echo ISPC_WEB_PATH.'/'.$file.'/lib/lang/'.$lang_file.' ## '.ISPC_WEB_PATH.'/'.$file.'/lib/lang/'.$new_lang_file; - copy(ISPC_WEB_PATH.'/'.$file.'/lib/lang/'.$lang_file,ISPC_WEB_PATH.'/'.$file.'/lib/lang/'.$new_lang_file); - $msg = 'Added new language '.$lng_new; - } - } - } - } - } -} - -$app->tpl->setVar('msg',$msg); - -//* load language file -$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_language_add.lng'; -include($lng_file); -$app->tpl->setVar($wb); - -$app->tpl_defaults(); -$app->tpl->pparse(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/language_complete.php b/interface/ispconfig/interface/admin/language_complete.php deleted file mode 100644 index 0906a52b5..000000000 --- a/interface/ispconfig/interface/admin/language_complete.php +++ /dev/null @@ -1,167 +0,0 @@ -auth->check_module_permissions('admin'); - -//* This is only allowed for administrators -if(!$app->auth->is_admin()) die('only allowed for administrators.'); - -$app->uses('tpl'); - -$app->tpl->newTemplate('form.tpl.htm'); -$app->tpl->setInclude('content_tpl', 'templates/language_complete.htm'); - -//* reading languages -$language_option = ''; -$error = ''; -$msg = ''; -$selected_language = (isset($_REQUEST['lng_select']))?substr($_REQUEST['lng_select'],0,2):'en'; -if(!preg_match("/^[a-z]{2}$/i", $selected_language)) die('unallowed characters in selected language name.'); - -$handle = opendir(ISPC_ROOT_PATH.'/lib/lang/'); -while ($file = readdir ($handle)) { - if ($file != '.' && $file != '..') { - $tmp_lng = substr($file,0,-4); - if($tmp_lng !='' && $tmp_lng != 'en') { - $selected = ($tmp_lng == $selected_language)?'SELECTED':''; - $language_option .= ""; - //if(isset($_POST['lng_new']) && $_POST['lng_new'] == $tmp_lng) $error = 'Language exists already.'; - } - } -} -$app->tpl->setVar('language_option',$language_option); -$app->tpl->setVar('error',$error); - -// Export the language file -if(isset($_POST['lng_select']) && $error == '') { - - // complete the global langauge file - merge_langfile(ISPC_LIB_PATH."/lang/".$selected_language.".lng",ISPC_LIB_PATH."/lang/en.lng"); - - // Go trough all language files - $bgcolor = '#FFFFFF'; - $language_files_list = array(); - $handle = @opendir(ISPC_WEB_PATH); - while ($file = @readdir ($handle)) { - if ($file != '.' && $file != '..') { - if(@is_dir(ISPC_WEB_PATH.'/'.$file.'/lib/lang')) { - $handle2 = opendir(ISPC_WEB_PATH.'/'.$file.'/lib/lang'); - while ($lang_file = @readdir ($handle2)) { - if ($lang_file != '.' && $lang_file != '..' && substr($lang_file,0,2) == 'en') { - $target_lang_file = $selected_language.substr($lang_file,2); - merge_langfile(ISPC_WEB_PATH.'/'.$file.'/lib/lang/'.$target_lang_file,ISPC_WEB_PATH.'/'.$file.'/lib/lang/'.$lang_file); - } - } - $handle2 = opendir(ISPC_WEB_PATH.'/'.$file.'/lib/lang'); - while ($lang_file = @readdir ($handle2)) { - if ($lang_file != '.' && $lang_file != '..' && substr($lang_file,0,2) == $selected_language) { - $master_lang_file=ISPC_WEB_PATH.'/'.$file.'/lib/lang/en'.substr($lang_file,2); - $target_lang_file=ISPC_WEB_PATH.'/'.$file.'/lib/lang/'.$lang_file; - if(!file_exists($master_lang_file)){ - unlink($target_lang_file); - $msg.="File $target_lang_file removed because does not exist in master language
"; - } - } - }//Finish of remove the files how not exists in master language - } - } - } -if($msg=='') -$msg="No files created, removed or modified
"; -} - -function merge_langfile($langfile,$masterfile) { - global $msg; - - if(is_file($langfile)) { - - // Load the english language file - include($masterfile); - if(isset($wb) && is_array($wb)) { - $wb_master = $wb; - unset($wb); - } else { - $wb_master = array(); - } - - // Load the incomplete language file - $wb = array(); - include($langfile); - - $n = 0; - foreach($wb_master as $key => $val) { - if(!isset($wb[$key])) { - $wb[$key] = $val; - $n++; - } - } - - $r = 0; - foreach($wb as $key => $val) { - if(!isset($wb_master[$key])) { - unset($wb[$key]); - $r++; - } - } - - $file_content = " $val) { - $val = str_replace("'",'',$val); - $val = str_replace('"','',$val); - $file_content .= '$wb['."'$key'".'] = '."'$val';\n"; - } - $file_content .= "?>\n"; - - if($n!=0) - $msg .= "Added $n lines to the file $langfile
"; - if($r!=0) - $msg .= "Removed $r lines to the file $langfile
"; - file_put_contents($langfile ,$file_content); - } else { - $msg .= "File does not exist yet. Copied file $masterfile to $langfile
"; - copy($masterfile,$langfile); - } -} - -$app->tpl->setVar('msg',$msg); - -//* load language file -$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_language_complete.lng'; -include($lng_file); -$app->tpl->setVar($wb); - -$app->tpl_defaults(); -$app->tpl->pparse(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/language_edit.php b/interface/ispconfig/interface/admin/language_edit.php deleted file mode 100644 index d76dc62a8..000000000 --- a/interface/ispconfig/interface/admin/language_edit.php +++ /dev/null @@ -1,104 +0,0 @@ -auth->check_module_permissions('admin'); - -//* This is only allowed for administrators -if(!$app->auth->is_admin()) die('only allowed for administrators.'); - -$app->uses('tpl'); - -$app->tpl->newTemplate('form.tpl.htm'); -$app->tpl->setInclude('content_tpl', 'templates/language_edit.htm'); - -$lang = $_REQUEST['lang']; -$module = $_REQUEST['module']; -$lang_file = $_REQUEST['lang_file']; - -if(!preg_match("/^[a-z]+$/i", $lang)) die('unallowed characters in language name.'); -if(!preg_match("/^[a-z_]+$/i", $module)) die('unallowed characters in module name.'); -if(!preg_match("/^[a-z\._]+$/i", $lang_file)) die('unallowed characters in language file name.'); - -$msg = ''; - -//* Save data -if(isset($_POST['records']) && is_array($_POST['records'])) { - $file_content = " $val) { - $val = stripslashes($val); - $val = str_replace('"','\"',$val); - $val = str_replace('$','',$val); - $file_content .= '$wb['."'$key'".'] = "'.$val.'";'."\n"; - $msg = 'File saved.'; - } - $file_content .= "?>\n"; - if($module == 'global') { - file_put_contents(ISPC_LIB_PATH."/lang/$lang_file" ,$file_content); - } else { - file_put_contents(ISPC_WEB_PATH."/$module/lib/lang/$lang_file" ,$file_content); - } -} - - -$app->tpl->setVar(array('module' => $module,'lang_file' => $lang_file, 'lang' => $lang, 'msg' => $msg)); - -if($module == 'global') { - include(ISPC_LIB_PATH."/lang/$lang_file"); - $file_path = ISPC_LIB_PATH."/lang/$lang_file"; -} else { - include(ISPC_WEB_PATH."/$module/lib/lang/$lang_file"); - $file_path = ISPC_WEB_PATH."/$module/lib/lang/$lang_file"; -} -$app->tpl->setVar("file_path", $file_path); - -$keyword_list = array(); -if(isset($wb) && is_array($wb)) { - foreach($wb as $key => $val) { - $keyword_list[] = array('key' => $key, 'val' => $val); - } - - $app->tpl->setLoop('records', $keyword_list); - unset($wb); -} - - -//* load language file -$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_language_edit.lng'; -include($lng_file); -$app->tpl->setVar($wb); - -$app->tpl_defaults(); -$app->tpl->pparse(); - - -?> diff --git a/interface/ispconfig/interface/admin/language_export.php b/interface/ispconfig/interface/admin/language_export.php deleted file mode 100644 index eb5790bf1..000000000 --- a/interface/ispconfig/interface/admin/language_export.php +++ /dev/null @@ -1,120 +0,0 @@ -auth->check_module_permissions('admin'); - -//* This is only allowed for administrators -if(!$app->auth->is_admin()) die('only allowed for administrators.'); - -$app->uses('tpl'); - -$app->tpl->newTemplate('form.tpl.htm'); -$app->tpl->setInclude('content_tpl', 'templates/language_export.htm'); - -//* reading languages -$language_option = ''; -$error = ''; -$msg = ''; -$selected_language = (isset($_REQUEST['lng_select']))?substr($_REQUEST['lng_select'],0,2):'en'; -if(!preg_match("/^[a-z]{2}$/i", $selected_language)) die('unallowed characters in selected language name.'); - -$handle = opendir(ISPC_ROOT_PATH.'/lib/lang/'); -while ($file = readdir ($handle)) { - if ($file != '.' && $file != '..') { - $tmp_lng = substr($file,0,-4); - if($tmp_lng !='') { - $selected = ($tmp_lng == $selected_language)?'SELECTED':''; - $language_option .= ""; - //if(isset($_POST['lng_new']) && $_POST['lng_new'] == $tmp_lng) $error = 'Language exists already.'; - } - } -} -$app->tpl->setVar('language_option',$language_option); -$app->tpl->setVar('error',$error); - -// Export the language file -if(isset($_POST['lng_select']) && $error == '') { - //$lng_select = $_POST['lng_select']; - //if(!preg_match("/^[a-z]{2}$/i", $lng_select)) die('unallowed characters in language name.'); - - // This variable contains the content of the language files - $content = ''; - $content .= "---|ISPConfig Language File|".$conf["app_version"]."|".$selected_language."\n"; - - //* get the global language file - $content .= "--|global|".$selected_language."|".$selected_language.".lng\n"; - $content .= file_get_contents(ISPC_LIB_PATH."/lang/".$selected_language.".lng")."\n"; - - //* Get the global file of the module - //$content .= "---|$module|$selected_language|\n"; - //copy(ISPC_WEB_PATH."/$module/lib/lang/$selected_language.lng",ISPC_WEB_PATH."/$module/lib/lang/$lng_new.lng"); - $bgcolor = '#FFFFFF'; - $language_files_list = array(); - $handle = @opendir(ISPC_WEB_PATH); - while ($file = @readdir ($handle)) { - if ($file != '.' && $file != '..') { - if(@is_dir(ISPC_WEB_PATH.'/'.$file.'/lib/lang')) { - $handle2 = opendir(ISPC_WEB_PATH.'/'.$file.'/lib/lang'); - while ($lang_file = @readdir ($handle2)) { - if ($lang_file != '.' && $lang_file != '..' && substr($lang_file,0,2) == $selected_language) { - $content .= "--|".$file."|".$selected_language."|".$lang_file."\n"; - $content .= file_get_contents(ISPC_WEB_PATH.'/'.$file.'/lib/lang/'.$lang_file)."\n"; - $msg .= 'Exported language file '.$lang_file.'
'; - } - } - } - } - } - - $content .= '---|EOF'; - - // Write the language file - file_put_contents(ISPC_WEB_TEMP_PATH.'/'.$selected_language.'.lng', $content); - - $msg = "Exported language file to: /temp/".$selected_language.'.lng'; - - //$msg = nl2br($content); -} - -$app->tpl->setVar('msg',$msg); - -//* load language file -$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_language_export.lng'; -include($lng_file); -$app->tpl->setVar($wb); - -$app->tpl_defaults(); -$app->tpl->pparse(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/language_import.php b/interface/ispconfig/interface/admin/language_import.php deleted file mode 100644 index 12eb86d4a..000000000 --- a/interface/ispconfig/interface/admin/language_import.php +++ /dev/null @@ -1,105 +0,0 @@ -auth->check_module_permissions('admin'); - -//* This is only allowed for administrators -if(!$app->auth->is_admin()) die('only allowed for administrators.'); - -$app->uses('tpl'); - -$app->tpl->newTemplate('form.tpl.htm'); -$app->tpl->setInclude('content_tpl', 'templates/language_import.htm'); -$msg = ''; -$error = ''; - -// Export the language file -if(isset($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name'])) { - $lines = file($_FILES['file']['tmp_name']); - // initial check - $parts = explode('|',$lines[0]); - if($parts[0] == '---' && $parts[1] == 'ISPConfig Language File') { - if($_POST['ignore_version'] != 1 && $parts[2] != $conf["app_version"]) { - $error .= 'Application version does not match. Appversion: '.$conf["app_version"].' Lanfile version: '.$parts[2]; - } else { - unset($lines[0]); - - $buffer = ''; - $langfile_path = ''; - // all other lines - foreach($lines as $line) { - $parts = explode('|',$line); - if(is_array($parts) && count($parts) > 0 && $parts[0] == '--') { - // Write language file, if its not the first file - if($buffer != '' && $langfile_path != '') { - if(@$_REQUEST['overwrite'] != 1 && @is_file($langfile_path)) { - $error .= "File exists, not written: $langfile_path
"; - } else { - $msg .= "File written: $langfile_path
"; - file_put_contents($langfile_path,$buffer); - } - } - // empty buffer and set variables - $buffer = ''; - $module_name = trim($parts[1]); - $selected_language = trim($parts[2]); - $file_name = trim($parts[3]); - if(!preg_match("/^[a-z]{2}$/i", $selected_language)) die("unallowed characters in selected language name: $selected_language"); - if(!preg_match("/^[a-z_]+$/i", $module_name)) die('unallowed characters in module name.'); - if(!preg_match("/^[a-z\._]+$/i", $file_name) || stristr($file_name,'..')) die("unallowed characters in language file name: '$file_name'"); - if($module_name == 'global') { - $langfile_path = trim(ISPC_LIB_PATH."/lang/".$selected_language.".lng"); - } else { - $langfile_path = trim(ISPC_WEB_PATH.'/'.$module_name.'/lib/lang/'.$file_name); - } - } else { - $buffer .= $line; - } - } - } - } -} - -$app->tpl->setVar('msg',$msg); -$app->tpl->setVar('error',$error); - -//* load language file -$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_language_import.lng'; -include($lng_file); -$app->tpl->setVar($wb); - -$app->tpl_defaults(); -$app->tpl->pparse(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/language_list.php b/interface/ispconfig/interface/admin/language_list.php deleted file mode 100644 index f423be4cc..000000000 --- a/interface/ispconfig/interface/admin/language_list.php +++ /dev/null @@ -1,108 +0,0 @@ -auth->check_module_permissions('admin'); - -//* This is only allowed for administrators -if(!$app->auth->is_admin()) die('only allowed for administrators.'); - -$app->uses('tpl'); - -$app->tpl->newTemplate('form.tpl.htm'); -$app->tpl->setInclude('content_tpl', 'templates/language_list.htm'); - -$language_files_list = array(); -$bgcolor = '#FFFFFF'; - -//* reading languages -$language_option = ''; -$selected_language = (isset($_REQUEST['lng_select']))?substr($_REQUEST['lng_select'],0,2):$_SESSION['s']['language']; -$handle = opendir(ISPC_ROOT_PATH.'/lib/lang/'); -while ($file = readdir ($handle)) { - if ($file != '.' && $file != '..') { - $tmp_lng = substr($file,0,-4); - if($tmp_lng !='') { - $selected = ($tmp_lng == $selected_language)?'SELECTED':''; - $language_option .= ""; - - //$bgcolor = ($bgcolor == '#FFFFFF') ? '#EEEEEE' : '#FFFFFF'; - if($file == $selected_language.'.lng') { - $language_files_list[] = array( 'module' => 'global', - 'lang_file' => $file, - 'lang_file_date' => date("Y-m-d H:i:s", filectime(ISPC_ROOT_PATH.'/lib/lang/'.$file)), - 'bgcolor' => $bgcolor, - 'lang' => $selected_language); - } - - - } - } -} -$app->tpl->setVar('language_option',$language_option); -// $app->tpl->setLoop('records', $language_list); - -//* list all language files of the selected language -$handle = @opendir(ISPC_WEB_PATH); -while ($file = @readdir ($handle)) { - if ($file != '.' && $file != '..') { - if(@is_dir(ISPC_WEB_PATH.'/'.$file.'/lib/lang')) { - $handle2 = opendir(ISPC_WEB_PATH.'/'.$file.'/lib/lang'); - while ($lang_file = @readdir ($handle2)) { - if ($lang_file != '.' && $lang_file != '..' && substr($lang_file,0,2) == $selected_language) { - $bgcolor = ($bgcolor == '#FFFFFF') ? '#EEEEEE' : '#FFFFFF'; - $language_files_list[] = array( 'module' => $file, - 'lang_file' => $lang_file, - 'lang_file_date' => date("Y-m-d H:i:s", filectime(ISPC_WEB_PATH.'/'.$file.'/lib/lang/'.$lang_file)), - 'bgcolor' => $bgcolor, - 'lang' => $selected_language); - } - } - } - } -} - -$app->tpl->setLoop('records', $language_files_list); - - - - -//* load language file -$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_language_list.lng'; -include($lng_file); -$app->tpl->setVar($wb); - -$app->tpl_defaults(); -$app->tpl->pparse(); - - -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/bg.lng b/interface/ispconfig/interface/admin/lib/lang/bg.lng deleted file mode 100644 index 8a1c30b48..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_firewall.lng b/interface/ispconfig/interface/admin/lib/lang/bg_firewall.lng deleted file mode 100644 index e626345d3..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_firewall.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_firewall_list.lng b/interface/ispconfig/interface/admin/lib/lang/bg_firewall_list.lng deleted file mode 100644 index 24a34be1c..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_firewall_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_groups.lng b/interface/ispconfig/interface/admin/lib/lang/bg_groups.lng deleted file mode 100644 index b59c2102c..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_groups.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_groups_list.lng b/interface/ispconfig/interface/admin/lib/lang/bg_groups_list.lng deleted file mode 100644 index fcf73a118..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_groups_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_language_add.lng b/interface/ispconfig/interface/admin/lib/lang/bg_language_add.lng deleted file mode 100644 index 2dd36894e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_language_add.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_language_complete.lng b/interface/ispconfig/interface/admin/lib/lang/bg_language_complete.lng deleted file mode 100644 index 30c51c292..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_language_complete.lng +++ /dev/null @@ -1,7 +0,0 @@ -Към Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¸Ñ ÐµÐ·Ð¸Ðº ще бъдат добавени файлове и отделни запиÑи, които липÑват в него, но ÑъщеÑтвуват в английÑкиÑ.'; -$wb['language_select_txt'] = 'Изберете език'; -$wb['btn_save_txt'] = 'Сливане'; -$wb['btn_cancel_txt'] = 'Отказ'; -$wb['list_desc_txt'] = 'Merge the selected language file with the english master language file.
This adds missing strings from the english master language files to the selected language.'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_language_edit.lng b/interface/ispconfig/interface/admin/lib/lang/bg_language_edit.lng deleted file mode 100644 index ce30b66fc..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_language_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_language_export.lng b/interface/ispconfig/interface/admin/lib/lang/bg_language_export.lng deleted file mode 100644 index d8e91de25..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_language_export.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_language_import.lng b/interface/ispconfig/interface/admin/lib/lang/bg_language_import.lng deleted file mode 100644 index 4d3922ed7..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_language_import.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_language_list.lng b/interface/ispconfig/interface/admin/lib/lang/bg_language_list.lng deleted file mode 100644 index 2a096aa61..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_language_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_remote_user.lng b/interface/ispconfig/interface/admin/lib/lang/bg_remote_user.lng deleted file mode 100644 index cc9335bc5..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_remote_user.lng +++ /dev/null @@ -1,42 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_remote_user_list.lng b/interface/ispconfig/interface/admin/lib/lang/bg_remote_user_list.lng deleted file mode 100644 index 152a75fba..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_remote_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_server.lng b/interface/ispconfig/interface/admin/lib/lang/bg_server.lng deleted file mode 100644 index 1b42f22c8..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_server.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_server_config.lng b/interface/ispconfig/interface/admin/lib/lang/bg_server_config.lng deleted file mode 100644 index 16803a9f5..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_server_config.lng +++ /dev/null @@ -1,68 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_server_config_list.lng b/interface/ispconfig/interface/admin/lib/lang/bg_server_config_list.lng deleted file mode 100644 index 636c2e050..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_server_config_list.lng +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_server_ip.lng b/interface/ispconfig/interface/admin/lib/lang/bg_server_ip.lng deleted file mode 100644 index 6d451f5b2..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_server_ip.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_server_ip_list.lng b/interface/ispconfig/interface/admin/lib/lang/bg_server_ip_list.lng deleted file mode 100644 index 81ae8f01d..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_server_ip_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_server_list.lng b/interface/ispconfig/interface/admin/lib/lang/bg_server_list.lng deleted file mode 100644 index 7b42c497e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_server_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_software_package_list.lng b/interface/ispconfig/interface/admin/lib/lang/bg_software_package_list.lng deleted file mode 100644 index 03917cabc..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_software_package_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_software_repo.lng b/interface/ispconfig/interface/admin/lib/lang/bg_software_repo.lng deleted file mode 100644 index 574dd1162..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_software_repo.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_software_repo_list.lng b/interface/ispconfig/interface/admin/lib/lang/bg_software_repo_list.lng deleted file mode 100644 index b7a219ffa..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_software_update_list.lng b/interface/ispconfig/interface/admin/lib/lang/bg_software_update_list.lng deleted file mode 100644 index ebf4e6fbc..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_software_update_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_system_config.lng b/interface/ispconfig/interface/admin/lib/lang/bg_system_config.lng deleted file mode 100644 index e7f5d9365..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_system_config.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_users.lng b/interface/ispconfig/interface/admin/lib/lang/bg_users.lng deleted file mode 100644 index 8e70364aa..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_users.lng +++ /dev/null @@ -1,28 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/bg_users_list.lng b/interface/ispconfig/interface/admin/lib/lang/bg_users_list.lng deleted file mode 100644 index 0de8cdc3e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/bg_users_list.lng +++ /dev/null @@ -1,9 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/br.lng b/interface/ispconfig/interface/admin/lib/lang/br.lng deleted file mode 100644 index 9debee0b4..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_firewall.lng b/interface/ispconfig/interface/admin/lib/lang/br_firewall.lng deleted file mode 100644 index 40a7496af..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_firewall.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_firewall_list.lng b/interface/ispconfig/interface/admin/lib/lang/br_firewall_list.lng deleted file mode 100644 index d29995712..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_firewall_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_groups.lng b/interface/ispconfig/interface/admin/lib/lang/br_groups.lng deleted file mode 100644 index 41afadbfe..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_groups.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_groups_list.lng b/interface/ispconfig/interface/admin/lib/lang/br_groups_list.lng deleted file mode 100644 index 73a6f438f..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_groups_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -AVISO: Não modifique ou edite qualquer configuração de usuário aqui. Use o módulo de cliente ou revendedor. Modificar ou alterar usuários e grupos aqui pode ocasionar perda de dados!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/br_language_add.lng b/interface/ispconfig/interface/admin/lib/lang/br_language_add.lng deleted file mode 100644 index 064b9eaf0..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_language_add.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_language_complete.lng b/interface/ispconfig/interface/admin/lib/lang/br_language_complete.lng deleted file mode 100644 index c4c0b1453..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_language_complete.lng +++ /dev/null @@ -1,7 +0,0 @@ -Isto permite completar qualquer falha de tradução, com o arquivo principal original em inglês.'; -$wb['language_select_txt'] = 'Selecionar Idioma'; -$wb['btn_save_txt'] = 'Mesclar arquivos agora'; -$wb['btn_cancel_txt'] = 'Voltar'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/br_language_edit.lng b/interface/ispconfig/interface/admin/lib/lang/br_language_edit.lng deleted file mode 100644 index 2a3f572d1..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_language_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_language_export.lng b/interface/ispconfig/interface/admin/lib/lang/br_language_export.lng deleted file mode 100644 index d48466138..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_language_export.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_language_import.lng b/interface/ispconfig/interface/admin/lib/lang/br_language_import.lng deleted file mode 100644 index 290335b6f..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_language_import.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_language_list.lng b/interface/ispconfig/interface/admin/lib/lang/br_language_list.lng deleted file mode 100644 index 348b94aaf..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_language_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_remote_user.lng b/interface/ispconfig/interface/admin/lib/lang/br_remote_user.lng deleted file mode 100644 index c87397978..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_remote_user.lng +++ /dev/null @@ -1,42 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_remote_user_list.lng b/interface/ispconfig/interface/admin/lib/lang/br_remote_user_list.lng deleted file mode 100644 index d84321ddb..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_remote_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_server.lng b/interface/ispconfig/interface/admin/lib/lang/br_server.lng deleted file mode 100644 index 899104f61..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_server.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_server_config.lng b/interface/ispconfig/interface/admin/lib/lang/br_server_config.lng deleted file mode 100644 index 6791ea1da..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_server_config.lng +++ /dev/null @@ -1,68 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_server_config_list.lng b/interface/ispconfig/interface/admin/lib/lang/br_server_config_list.lng deleted file mode 100644 index 60047d5c1..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_server_config_list.lng +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_server_ip.lng b/interface/ispconfig/interface/admin/lib/lang/br_server_ip.lng deleted file mode 100644 index b062dbbf1..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_server_ip.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_server_ip_list.lng b/interface/ispconfig/interface/admin/lib/lang/br_server_ip_list.lng deleted file mode 100644 index 864464e22..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_server_ip_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_server_list.lng b/interface/ispconfig/interface/admin/lib/lang/br_server_list.lng deleted file mode 100644 index 5a1266c64..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_server_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_software_package_list.lng b/interface/ispconfig/interface/admin/lib/lang/br_software_package_list.lng deleted file mode 100644 index 893cc4cc3..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_software_package_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_software_repo.lng b/interface/ispconfig/interface/admin/lib/lang/br_software_repo.lng deleted file mode 100644 index 5b54c3080..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_software_repo.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_software_repo_list.lng b/interface/ispconfig/interface/admin/lib/lang/br_software_repo_list.lng deleted file mode 100644 index 6941c7f14..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_software_update_list.lng b/interface/ispconfig/interface/admin/lib/lang/br_software_update_list.lng deleted file mode 100644 index e6af8ec63..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_software_update_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_system_config.lng b/interface/ispconfig/interface/admin/lib/lang/br_system_config.lng deleted file mode 100644 index 5fa32abd9..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_system_config.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_users.lng b/interface/ispconfig/interface/admin/lib/lang/br_users.lng deleted file mode 100644 index 28369f7a6..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_users.lng +++ /dev/null @@ -1,28 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/br_users_list.lng b/interface/ispconfig/interface/admin/lib/lang/br_users_list.lng deleted file mode 100644 index d21054a08..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/br_users_list.lng +++ /dev/null @@ -1,9 +0,0 @@ -AVISO: Não modifique ou edite qualquer configuração de usuário aqui. Use o módulo de cliente ou revendedor. Modificar ou alterar usuários e grupos aqui pode ocasionar perda de dados!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/de.lng b/interface/ispconfig/interface/admin/lib/lang/de.lng deleted file mode 100644 index c5fd284ee..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_firewall.lng b/interface/ispconfig/interface/admin/lib/lang/de_firewall.lng deleted file mode 100644 index 0f58d7c3d..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_firewall.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_firewall_list.lng b/interface/ispconfig/interface/admin/lib/lang/de_firewall_list.lng deleted file mode 100644 index aefad619b..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_firewall_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_groups.lng b/interface/ispconfig/interface/admin/lib/lang/de_groups.lng deleted file mode 100644 index 25f81b1f3..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_groups.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_groups_list.lng b/interface/ispconfig/interface/admin/lib/lang/de_groups_list.lng deleted file mode 100644 index 244743177..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_groups_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -WARNUNG: Bitte hier keine Benutzereinstellungen verändern. Benutzen Sie die Kunden- und Resellereinstellungen im Kundenmodul. Modifizieren der Benutzer oder Gruppen hier könnte zum Datenverlust führen!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/de_language_add.lng b/interface/ispconfig/interface/admin/lib/lang/de_language_add.lng deleted file mode 100644 index 118bdee04..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_language_add.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_language_complete.lng b/interface/ispconfig/interface/admin/lib/lang/de_language_complete.lng deleted file mode 100644 index 1376e0c8a..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_language_complete.lng +++ /dev/null @@ -1,7 +0,0 @@ -Dies fügt fehlende Sätze aus der englischen Master Sprachdatei in der gewählten Sprache ein.'; -$wb['language_select_txt'] = 'Sprache auswählen'; -$wb['btn_save_txt'] = 'Dateien jetzt zusammenführen'; -$wb['btn_cancel_txt'] = 'Zurück'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/de_language_edit.lng b/interface/ispconfig/interface/admin/lib/lang/de_language_edit.lng deleted file mode 100644 index 30ab21b28..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_language_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_language_export.lng b/interface/ispconfig/interface/admin/lib/lang/de_language_export.lng deleted file mode 100644 index 70eb466d4..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_language_export.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_language_import.lng b/interface/ispconfig/interface/admin/lib/lang/de_language_import.lng deleted file mode 100644 index 698213e43..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_language_import.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_language_list.lng b/interface/ispconfig/interface/admin/lib/lang/de_language_list.lng deleted file mode 100644 index 074eab9e8..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_language_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_remote_user.lng b/interface/ispconfig/interface/admin/lib/lang/de_remote_user.lng deleted file mode 100644 index c6fddd9a6..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_remote_user.lng +++ /dev/null @@ -1,42 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_remote_user_list.lng b/interface/ispconfig/interface/admin/lib/lang/de_remote_user_list.lng deleted file mode 100644 index 163b7e847..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_remote_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_server.lng b/interface/ispconfig/interface/admin/lib/lang/de_server.lng deleted file mode 100644 index f01116a58..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_server.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_server_config.lng b/interface/ispconfig/interface/admin/lib/lang/de_server_config.lng deleted file mode 100644 index f0caa43f2..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_server_config.lng +++ /dev/null @@ -1,68 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_server_config_list.lng b/interface/ispconfig/interface/admin/lib/lang/de_server_config_list.lng deleted file mode 100644 index 191b2c8d3..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_server_config_list.lng +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_server_ip.lng b/interface/ispconfig/interface/admin/lib/lang/de_server_ip.lng deleted file mode 100644 index 8210037c5..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_server_ip.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_server_ip_list.lng b/interface/ispconfig/interface/admin/lib/lang/de_server_ip_list.lng deleted file mode 100644 index 0d0727cd1..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_server_ip_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_server_list.lng b/interface/ispconfig/interface/admin/lib/lang/de_server_list.lng deleted file mode 100644 index 332a603cc..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_server_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_software_package_list.lng b/interface/ispconfig/interface/admin/lib/lang/de_software_package_list.lng deleted file mode 100644 index ca797d3cc..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_software_package_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_software_repo.lng b/interface/ispconfig/interface/admin/lib/lang/de_software_repo.lng deleted file mode 100644 index 6e54c4a6b..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_software_repo.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_software_repo_list.lng b/interface/ispconfig/interface/admin/lib/lang/de_software_repo_list.lng deleted file mode 100644 index db6f49fd4..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_software_update_list.lng b/interface/ispconfig/interface/admin/lib/lang/de_software_update_list.lng deleted file mode 100644 index 6f01c1f08..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_software_update_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_system_config.lng b/interface/ispconfig/interface/admin/lib/lang/de_system_config.lng deleted file mode 100644 index 2c10f2567..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_system_config.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_users.lng b/interface/ispconfig/interface/admin/lib/lang/de_users.lng deleted file mode 100644 index 436cff547..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_users.lng +++ /dev/null @@ -1,28 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/de_users_list.lng b/interface/ispconfig/interface/admin/lib/lang/de_users_list.lng deleted file mode 100644 index 73a619517..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/de_users_list.lng +++ /dev/null @@ -1,9 +0,0 @@ -WARNUNG: Bitte hier keine Benutzereinstellungen verändern. Benutzen Sie die Kunden- und Resellereinstellungen im Kundenmodul. Modifizieren der Benutzer oder Gruppen hier könnte zum Datenverlust führen!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/en.lng b/interface/ispconfig/interface/admin/lib/lang/en.lng deleted file mode 100644 index 06a3b45bf..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en.lng +++ /dev/null @@ -1,42 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/lib/lang/en_firewall.lng b/interface/ispconfig/interface/admin/lib/lang/en_firewall.lng deleted file mode 100644 index 025108beb..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_firewall.lng +++ /dev/null @@ -1,12 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/lib/lang/en_firewall_list.lng b/interface/ispconfig/interface/admin/lib/lang/en_firewall_list.lng deleted file mode 100644 index d16e1c7df..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_firewall_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/lib/lang/en_groups.lng b/interface/ispconfig/interface/admin/lib/lang/en_groups.lng deleted file mode 100644 index a504f9913..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_groups.lng +++ /dev/null @@ -1,5 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/lib/lang/en_groups_list.lng b/interface/ispconfig/interface/admin/lib/lang/en_groups_list.lng deleted file mode 100644 index ba1831836..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_groups_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/lib/lang/en_language_add.lng b/interface/ispconfig/interface/admin/lib/lang/en_language_add.lng deleted file mode 100644 index 2b5e5a40f..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_language_add.lng +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/lib/lang/en_language_complete.lng b/interface/ispconfig/interface/admin/lib/lang/en_language_complete.lng deleted file mode 100644 index 15438775f..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_language_complete.lng +++ /dev/null @@ -1,7 +0,0 @@ -This adds missing strings from the english master language files to the selected language.'; -$wb["language_select_txt"] = 'Select language'; -$wb['btn_save_txt'] = 'Merge files now'; -$wb['btn_cancel_txt'] = 'Back'; -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/lib/lang/en_language_edit.lng b/interface/ispconfig/interface/admin/lib/lang/en_language_edit.lng deleted file mode 100644 index 4c50e883e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_language_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/en_language_export.lng b/interface/ispconfig/interface/admin/lib/lang/en_language_export.lng deleted file mode 100644 index 791fc894d..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_language_export.lng +++ /dev/null @@ -1,6 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/lib/lang/en_language_import.lng b/interface/ispconfig/interface/admin/lib/lang/en_language_import.lng deleted file mode 100644 index a554c6c22..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_language_import.lng +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/lib/lang/en_language_list.lng b/interface/ispconfig/interface/admin/lib/lang/en_language_list.lng deleted file mode 100644 index e70f09f8e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_language_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/en_remote_user.lng b/interface/ispconfig/interface/admin/lib/lang/en_remote_user.lng deleted file mode 100644 index cc9335bc5..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_remote_user.lng +++ /dev/null @@ -1,42 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/en_remote_user_list.lng b/interface/ispconfig/interface/admin/lib/lang/en_remote_user_list.lng deleted file mode 100644 index 56c6fac4b..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_remote_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/en_server.lng b/interface/ispconfig/interface/admin/lib/lang/en_server.lng deleted file mode 100644 index dcd46c582..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_server.lng +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/lib/lang/en_server_config.lng b/interface/ispconfig/interface/admin/lib/lang/en_server_config.lng deleted file mode 100644 index 603245d7d..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_server_config.lng +++ /dev/null @@ -1,68 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/lib/lang/en_server_config_list.lng b/interface/ispconfig/interface/admin/lib/lang/en_server_config_list.lng deleted file mode 100644 index 4d8a3f6a5..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_server_config_list.lng +++ /dev/null @@ -1,4 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/lib/lang/en_server_ip.lng b/interface/ispconfig/interface/admin/lib/lang/en_server_ip.lng deleted file mode 100644 index ae4717c53..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_server_ip.lng +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/lib/lang/en_server_ip_list.lng b/interface/ispconfig/interface/admin/lib/lang/en_server_ip_list.lng deleted file mode 100644 index 008dfc4e0..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_server_ip_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/lib/lang/en_server_list.lng b/interface/ispconfig/interface/admin/lib/lang/en_server_list.lng deleted file mode 100644 index d15701e80..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_server_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/lib/lang/en_software_package_list.lng b/interface/ispconfig/interface/admin/lib/lang/en_software_package_list.lng deleted file mode 100644 index 03917cabc..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_software_package_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/en_software_repo.lng b/interface/ispconfig/interface/admin/lib/lang/en_software_repo.lng deleted file mode 100644 index 7968b000f..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_software_repo.lng +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/lib/lang/en_software_repo_list.lng b/interface/ispconfig/interface/admin/lib/lang/en_software_repo_list.lng deleted file mode 100644 index f0a0b3092..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/lib/lang/en_software_update_list.lng b/interface/ispconfig/interface/admin/lib/lang/en_software_update_list.lng deleted file mode 100644 index ec4af23a4..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_software_update_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/en_system_config.lng b/interface/ispconfig/interface/admin/lib/lang/en_system_config.lng deleted file mode 100644 index 450222722..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_system_config.lng +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/lib/lang/en_users.lng b/interface/ispconfig/interface/admin/lib/lang/en_users.lng deleted file mode 100644 index 0f9a1c5b5..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_users.lng +++ /dev/null @@ -1,28 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/en_users_list.lng b/interface/ispconfig/interface/admin/lib/lang/en_users_list.lng deleted file mode 100644 index 1042cd35b..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/en_users_list.lng +++ /dev/null @@ -1,9 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/lib/lang/es.lng b/interface/ispconfig/interface/admin/lib/lang/es.lng deleted file mode 100644 index 3e3566f6e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_firewall.lng b/interface/ispconfig/interface/admin/lib/lang/es_firewall.lng deleted file mode 100644 index 2b31cf5aa..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_firewall.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_firewall_list.lng b/interface/ispconfig/interface/admin/lib/lang/es_firewall_list.lng deleted file mode 100644 index 8332c413a..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_firewall_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_groups.lng b/interface/ispconfig/interface/admin/lib/lang/es_groups.lng deleted file mode 100644 index 37e6cd8eb..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_groups.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_groups_list.lng b/interface/ispconfig/interface/admin/lib/lang/es_groups_list.lng deleted file mode 100644 index f36c4d858..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_groups_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/es_language_add.lng b/interface/ispconfig/interface/admin/lib/lang/es_language_add.lng deleted file mode 100644 index d0f057aef..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_language_add.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_language_complete.lng b/interface/ispconfig/interface/admin/lib/lang/es_language_complete.lng deleted file mode 100644 index 0e3e183f3..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_language_complete.lng +++ /dev/null @@ -1,7 +0,0 @@ -Esto añade las cadenas perdidas desde el fichero maestro en inglés.'; -$wb['language_select_txt'] = 'Elegir idioma'; -$wb['btn_save_txt'] = 'Mezclar los ficheros ahora'; -$wb['btn_cancel_txt'] = 'Atrás'; -$wb['list_desc_txt'] = 'Mezclar el fichero de idioma seleccionado con el fichero de idioma maestro en inglés.
Esto añade cadenas perdidas desde el fichero de idioma maestro en inglés al idioma seleccionado.'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/es_language_edit.lng b/interface/ispconfig/interface/admin/lib/lang/es_language_edit.lng deleted file mode 100644 index f471c4d40..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_language_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_language_export.lng b/interface/ispconfig/interface/admin/lib/lang/es_language_export.lng deleted file mode 100644 index 2883a7e20..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_language_export.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_language_import.lng b/interface/ispconfig/interface/admin/lib/lang/es_language_import.lng deleted file mode 100644 index 87b465e14..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_language_import.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_language_list.lng b/interface/ispconfig/interface/admin/lib/lang/es_language_list.lng deleted file mode 100644 index dfa2caecc..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_language_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_remote_user.lng b/interface/ispconfig/interface/admin/lib/lang/es_remote_user.lng deleted file mode 100644 index f3d3a9a12..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_remote_user.lng +++ /dev/null @@ -1,42 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_remote_user_list.lng b/interface/ispconfig/interface/admin/lib/lang/es_remote_user_list.lng deleted file mode 100644 index e73f8002d..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_remote_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_server.lng b/interface/ispconfig/interface/admin/lib/lang/es_server.lng deleted file mode 100644 index e38ccfc92..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_server.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_server_config.lng b/interface/ispconfig/interface/admin/lib/lang/es_server_config.lng deleted file mode 100644 index a76a5cfe2..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_server_config.lng +++ /dev/null @@ -1,68 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_server_config_list.lng b/interface/ispconfig/interface/admin/lib/lang/es_server_config_list.lng deleted file mode 100644 index 6dd827ae0..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_server_config_list.lng +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_server_ip.lng b/interface/ispconfig/interface/admin/lib/lang/es_server_ip.lng deleted file mode 100644 index 6358c5d38..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_server_ip.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_server_ip_list.lng b/interface/ispconfig/interface/admin/lib/lang/es_server_ip_list.lng deleted file mode 100644 index 9ae983415..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_server_ip_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_server_list.lng b/interface/ispconfig/interface/admin/lib/lang/es_server_list.lng deleted file mode 100644 index 11a8e6f10..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_server_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_software_package_list.lng b/interface/ispconfig/interface/admin/lib/lang/es_software_package_list.lng deleted file mode 100644 index d4482d59e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_software_package_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_software_repo.lng b/interface/ispconfig/interface/admin/lib/lang/es_software_repo.lng deleted file mode 100644 index 3b9a89e88..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_software_repo.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_software_repo_list.lng b/interface/ispconfig/interface/admin/lib/lang/es_software_repo_list.lng deleted file mode 100644 index 59f97903e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_software_update_list.lng b/interface/ispconfig/interface/admin/lib/lang/es_software_update_list.lng deleted file mode 100644 index adbe6d8c9..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_software_update_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_system_config.lng b/interface/ispconfig/interface/admin/lib/lang/es_system_config.lng deleted file mode 100644 index 7ce9dbebe..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_system_config.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_users.lng b/interface/ispconfig/interface/admin/lib/lang/es_users.lng deleted file mode 100644 index 156106051..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_users.lng +++ /dev/null @@ -1,28 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/es_users_list.lng b/interface/ispconfig/interface/admin/lib/lang/es_users_list.lng deleted file mode 100644 index ec368916f..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/es_users_list.lng +++ /dev/null @@ -1,9 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/fi.lng b/interface/ispconfig/interface/admin/lib/lang/fi.lng deleted file mode 100644 index 545a3bfa8..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_firewall.lng b/interface/ispconfig/interface/admin/lib/lang/fi_firewall.lng deleted file mode 100644 index 63cc2f7e7..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_firewall.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_firewall_list.lng b/interface/ispconfig/interface/admin/lib/lang/fi_firewall_list.lng deleted file mode 100644 index 96ff2dc63..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_firewall_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_groups.lng b/interface/ispconfig/interface/admin/lib/lang/fi_groups.lng deleted file mode 100644 index 141322bc0..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_groups.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_groups_list.lng b/interface/ispconfig/interface/admin/lib/lang/fi_groups_list.lng deleted file mode 100644 index 71d938399..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_groups_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_language_add.lng b/interface/ispconfig/interface/admin/lib/lang/fi_language_add.lng deleted file mode 100644 index 24efb7e4e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_language_add.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_language_complete.lng b/interface/ispconfig/interface/admin/lib/lang/fi_language_complete.lng deleted file mode 100644 index b1776c921..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_language_complete.lng +++ /dev/null @@ -1,7 +0,0 @@ -Tämä lisää puuttuvat käännöskohdat valittuun kielitiedostoon.'; -$wb['language_select_txt'] = 'Valitse täydennettävä kieli'; -$wb['btn_save_txt'] = 'Yhdistä kielitiedostot nyt'; -$wb['btn_cancel_txt'] = 'Keskeytä'; -$wb['list_desc_txt'] = 'Yhdistää valitun kielitiedoston englannin kielisen päätiedoston kanssa.
Tämä lisää puuttuvat käännöstiedot valittuun kielitiedostoon.'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_language_edit.lng b/interface/ispconfig/interface/admin/lib/lang/fi_language_edit.lng deleted file mode 100644 index cdf73da64..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_language_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_language_export.lng b/interface/ispconfig/interface/admin/lib/lang/fi_language_export.lng deleted file mode 100644 index b1ff06c4e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_language_export.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_language_import.lng b/interface/ispconfig/interface/admin/lib/lang/fi_language_import.lng deleted file mode 100644 index ca60528e0..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_language_import.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_language_list.lng b/interface/ispconfig/interface/admin/lib/lang/fi_language_list.lng deleted file mode 100644 index 85e7b70e1..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_language_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_remote_user.lng b/interface/ispconfig/interface/admin/lib/lang/fi_remote_user.lng deleted file mode 100644 index 1876872ed..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_remote_user.lng +++ /dev/null @@ -1,42 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_remote_user_list.lng b/interface/ispconfig/interface/admin/lib/lang/fi_remote_user_list.lng deleted file mode 100644 index 6aa4bd775..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_remote_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_server.lng b/interface/ispconfig/interface/admin/lib/lang/fi_server.lng deleted file mode 100644 index 10058aa76..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_server.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_server_config.lng b/interface/ispconfig/interface/admin/lib/lang/fi_server_config.lng deleted file mode 100644 index 3ef8fd691..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_server_config.lng +++ /dev/null @@ -1,68 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_server_config_list.lng b/interface/ispconfig/interface/admin/lib/lang/fi_server_config_list.lng deleted file mode 100644 index ed1cbed5b..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_server_config_list.lng +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_server_ip.lng b/interface/ispconfig/interface/admin/lib/lang/fi_server_ip.lng deleted file mode 100644 index 9c330fc45..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_server_ip.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_server_ip_list.lng b/interface/ispconfig/interface/admin/lib/lang/fi_server_ip_list.lng deleted file mode 100644 index a297a62bf..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_server_ip_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_server_list.lng b/interface/ispconfig/interface/admin/lib/lang/fi_server_list.lng deleted file mode 100644 index 30863bdf2..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_server_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_software_package_list.lng b/interface/ispconfig/interface/admin/lib/lang/fi_software_package_list.lng deleted file mode 100644 index a8957cc9f..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_software_package_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_software_repo.lng b/interface/ispconfig/interface/admin/lib/lang/fi_software_repo.lng deleted file mode 100644 index c89969445..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_software_repo.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_software_repo_list.lng b/interface/ispconfig/interface/admin/lib/lang/fi_software_repo_list.lng deleted file mode 100644 index bde844c99..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_software_update_list.lng b/interface/ispconfig/interface/admin/lib/lang/fi_software_update_list.lng deleted file mode 100644 index 9d9a2d2f7..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_software_update_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_system_config.lng b/interface/ispconfig/interface/admin/lib/lang/fi_system_config.lng deleted file mode 100644 index 254801e73..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_system_config.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_users.lng b/interface/ispconfig/interface/admin/lib/lang/fi_users.lng deleted file mode 100644 index 08bada037..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_users.lng +++ /dev/null @@ -1,28 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fi_users_list.lng b/interface/ispconfig/interface/admin/lib/lang/fi_users_list.lng deleted file mode 100644 index fe58f3b3b..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fi_users_list.lng +++ /dev/null @@ -1,9 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/fr.lng b/interface/ispconfig/interface/admin/lib/lang/fr.lng deleted file mode 100644 index 929c46ef1..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_firewall.lng b/interface/ispconfig/interface/admin/lib/lang/fr_firewall.lng deleted file mode 100644 index 128000a32..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_firewall.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_firewall_list.lng b/interface/ispconfig/interface/admin/lib/lang/fr_firewall_list.lng deleted file mode 100644 index 965eb0109..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_firewall_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_groups.lng b/interface/ispconfig/interface/admin/lib/lang/fr_groups.lng deleted file mode 100644 index e0a92d734..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_groups.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_groups_list.lng b/interface/ispconfig/interface/admin/lib/lang/fr_groups_list.lng deleted file mode 100644 index 2ebbc365a..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_groups_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_language_add.lng b/interface/ispconfig/interface/admin/lib/lang/fr_language_add.lng deleted file mode 100644 index 7db36eb7c..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_language_add.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_language_complete.lng b/interface/ispconfig/interface/admin/lib/lang/fr_language_complete.lng deleted file mode 100644 index ede6ca5d0..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_language_complete.lng +++ /dev/null @@ -1,7 +0,0 @@ -Ceci ajoute les élements manquant en anglais au fichier sélectionné.'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_language_edit.lng b/interface/ispconfig/interface/admin/lib/lang/fr_language_edit.lng deleted file mode 100644 index 021acb440..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_language_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_language_export.lng b/interface/ispconfig/interface/admin/lib/lang/fr_language_export.lng deleted file mode 100644 index b8196967c..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_language_export.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_language_import.lng b/interface/ispconfig/interface/admin/lib/lang/fr_language_import.lng deleted file mode 100644 index 8f765458a..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_language_import.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_language_list.lng b/interface/ispconfig/interface/admin/lib/lang/fr_language_list.lng deleted file mode 100644 index 8e9f26a7b..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_language_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_remote_user.lng b/interface/ispconfig/interface/admin/lib/lang/fr_remote_user.lng deleted file mode 100644 index cc9335bc5..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_remote_user.lng +++ /dev/null @@ -1,42 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_remote_user_list.lng b/interface/ispconfig/interface/admin/lib/lang/fr_remote_user_list.lng deleted file mode 100644 index 152a75fba..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_remote_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_server.lng b/interface/ispconfig/interface/admin/lib/lang/fr_server.lng deleted file mode 100644 index e8ab79753..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_server.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_server_config.lng b/interface/ispconfig/interface/admin/lib/lang/fr_server_config.lng deleted file mode 100644 index 0c228902f..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_server_config.lng +++ /dev/null @@ -1,68 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_server_config_list.lng b/interface/ispconfig/interface/admin/lib/lang/fr_server_config_list.lng deleted file mode 100644 index 850cdd120..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_server_config_list.lng +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_server_ip.lng b/interface/ispconfig/interface/admin/lib/lang/fr_server_ip.lng deleted file mode 100644 index 39ae21c60..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_server_ip.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_server_ip_list.lng b/interface/ispconfig/interface/admin/lib/lang/fr_server_ip_list.lng deleted file mode 100644 index 6bef5a373..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_server_ip_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_server_list.lng b/interface/ispconfig/interface/admin/lib/lang/fr_server_list.lng deleted file mode 100644 index 32637a350..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_server_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_software_package_list.lng b/interface/ispconfig/interface/admin/lib/lang/fr_software_package_list.lng deleted file mode 100644 index f3d2c87b7..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_software_package_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_software_repo.lng b/interface/ispconfig/interface/admin/lib/lang/fr_software_repo.lng deleted file mode 100644 index 7b3ec481a..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_software_repo.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_software_repo_list.lng b/interface/ispconfig/interface/admin/lib/lang/fr_software_repo_list.lng deleted file mode 100644 index 56749896b..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_software_update_list.lng b/interface/ispconfig/interface/admin/lib/lang/fr_software_update_list.lng deleted file mode 100644 index e630b6741..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_software_update_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_system_config.lng b/interface/ispconfig/interface/admin/lib/lang/fr_system_config.lng deleted file mode 100644 index 9c7f7d907..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_system_config.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_users.lng b/interface/ispconfig/interface/admin/lib/lang/fr_users.lng deleted file mode 100644 index 9bef687fb..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_users.lng +++ /dev/null @@ -1,28 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/fr_users_list.lng b/interface/ispconfig/interface/admin/lib/lang/fr_users_list.lng deleted file mode 100644 index 6d70fd85c..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/fr_users_list.lng +++ /dev/null @@ -1,9 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/hu.lng b/interface/ispconfig/interface/admin/lib/lang/hu.lng deleted file mode 100644 index d9e925f83..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_firewall.lng b/interface/ispconfig/interface/admin/lib/lang/hu_firewall.lng deleted file mode 100644 index e626345d3..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_firewall.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_firewall_list.lng b/interface/ispconfig/interface/admin/lib/lang/hu_firewall_list.lng deleted file mode 100644 index 24a34be1c..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_firewall_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_groups.lng b/interface/ispconfig/interface/admin/lib/lang/hu_groups.lng deleted file mode 100644 index 61c3dc538..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_groups.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_groups_list.lng b/interface/ispconfig/interface/admin/lib/lang/hu_groups_list.lng deleted file mode 100644 index f1d8e2c1a..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_groups_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_language_add.lng b/interface/ispconfig/interface/admin/lib/lang/hu_language_add.lng deleted file mode 100644 index 8236c4851..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_language_add.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_language_complete.lng b/interface/ispconfig/interface/admin/lib/lang/hu_language_complete.lng deleted file mode 100644 index b5200ff9d..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_language_complete.lng +++ /dev/null @@ -1,7 +0,0 @@ -This adds missing strings from the english master language files to the selected language.'; -$wb['language_select_txt'] = 'Select language'; -$wb['btn_save_txt'] = 'Merge files now'; -$wb['btn_cancel_txt'] = 'Back'; -$wb['list_desc_txt'] = 'Merge the selected language file with the english master language file.
This adds missing strings from the english master language files to the selected language.'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_language_edit.lng b/interface/ispconfig/interface/admin/lib/lang/hu_language_edit.lng deleted file mode 100644 index 06ec606b0..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_language_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_language_export.lng b/interface/ispconfig/interface/admin/lib/lang/hu_language_export.lng deleted file mode 100644 index 64c537f60..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_language_export.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_language_import.lng b/interface/ispconfig/interface/admin/lib/lang/hu_language_import.lng deleted file mode 100644 index 811100182..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_language_import.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_language_list.lng b/interface/ispconfig/interface/admin/lib/lang/hu_language_list.lng deleted file mode 100644 index 658bd4125..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_language_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_remote_user.lng b/interface/ispconfig/interface/admin/lib/lang/hu_remote_user.lng deleted file mode 100644 index cc9335bc5..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_remote_user.lng +++ /dev/null @@ -1,42 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_remote_user_list.lng b/interface/ispconfig/interface/admin/lib/lang/hu_remote_user_list.lng deleted file mode 100644 index 152a75fba..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_remote_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_server.lng b/interface/ispconfig/interface/admin/lib/lang/hu_server.lng deleted file mode 100644 index 1d61a372b..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_server.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_server_config.lng b/interface/ispconfig/interface/admin/lib/lang/hu_server_config.lng deleted file mode 100644 index 39f006e6f..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_server_config.lng +++ /dev/null @@ -1,68 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_server_config_list.lng b/interface/ispconfig/interface/admin/lib/lang/hu_server_config_list.lng deleted file mode 100644 index ade34c78c..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_server_config_list.lng +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_server_ip.lng b/interface/ispconfig/interface/admin/lib/lang/hu_server_ip.lng deleted file mode 100644 index 5ffcd04db..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_server_ip.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_server_ip_list.lng b/interface/ispconfig/interface/admin/lib/lang/hu_server_ip_list.lng deleted file mode 100644 index df533bca2..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_server_ip_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_server_list.lng b/interface/ispconfig/interface/admin/lib/lang/hu_server_list.lng deleted file mode 100644 index e0e9d1384..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_server_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_software_package_list.lng b/interface/ispconfig/interface/admin/lib/lang/hu_software_package_list.lng deleted file mode 100644 index 6f71f7515..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_software_package_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_software_repo.lng b/interface/ispconfig/interface/admin/lib/lang/hu_software_repo.lng deleted file mode 100644 index 574dd1162..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_software_repo.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_software_repo_list.lng b/interface/ispconfig/interface/admin/lib/lang/hu_software_repo_list.lng deleted file mode 100644 index 8d2d43005..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_software_update_list.lng b/interface/ispconfig/interface/admin/lib/lang/hu_software_update_list.lng deleted file mode 100644 index db6ade2c4..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_software_update_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_system_config.lng b/interface/ispconfig/interface/admin/lib/lang/hu_system_config.lng deleted file mode 100644 index e7f5d9365..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_system_config.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_users.lng b/interface/ispconfig/interface/admin/lib/lang/hu_users.lng deleted file mode 100644 index f9b525e99..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_users.lng +++ /dev/null @@ -1,28 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/hu_users_list.lng b/interface/ispconfig/interface/admin/lib/lang/hu_users_list.lng deleted file mode 100644 index 1cfe243f7..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/hu_users_list.lng +++ /dev/null @@ -1,9 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/it.lng b/interface/ispconfig/interface/admin/lib/lang/it.lng deleted file mode 100644 index 1628a4ef7..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_firewall.lng b/interface/ispconfig/interface/admin/lib/lang/it_firewall.lng deleted file mode 100644 index c58341df8..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_firewall.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_firewall_list.lng b/interface/ispconfig/interface/admin/lib/lang/it_firewall_list.lng deleted file mode 100644 index 24a34be1c..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_firewall_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_groups.lng b/interface/ispconfig/interface/admin/lib/lang/it_groups.lng deleted file mode 100644 index 61c3dc538..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_groups.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_groups_list.lng b/interface/ispconfig/interface/admin/lib/lang/it_groups_list.lng deleted file mode 100644 index f1d8e2c1a..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_groups_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/it_language_add.lng b/interface/ispconfig/interface/admin/lib/lang/it_language_add.lng deleted file mode 100644 index d157e08f6..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_language_add.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_language_complete.lng b/interface/ispconfig/interface/admin/lib/lang/it_language_complete.lng deleted file mode 100644 index b5200ff9d..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_language_complete.lng +++ /dev/null @@ -1,7 +0,0 @@ -This adds missing strings from the english master language files to the selected language.'; -$wb['language_select_txt'] = 'Select language'; -$wb['btn_save_txt'] = 'Merge files now'; -$wb['btn_cancel_txt'] = 'Back'; -$wb['list_desc_txt'] = 'Merge the selected language file with the english master language file.
This adds missing strings from the english master language files to the selected language.'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/it_language_edit.lng b/interface/ispconfig/interface/admin/lib/lang/it_language_edit.lng deleted file mode 100644 index 4c50e883e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_language_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_language_export.lng b/interface/ispconfig/interface/admin/lib/lang/it_language_export.lng deleted file mode 100644 index f45d47b17..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_language_export.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_language_import.lng b/interface/ispconfig/interface/admin/lib/lang/it_language_import.lng deleted file mode 100644 index 4c31ec3de..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_language_import.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_language_list.lng b/interface/ispconfig/interface/admin/lib/lang/it_language_list.lng deleted file mode 100644 index c63fb0f57..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_language_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_remote_user.lng b/interface/ispconfig/interface/admin/lib/lang/it_remote_user.lng deleted file mode 100644 index cc9335bc5..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_remote_user.lng +++ /dev/null @@ -1,42 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_remote_user_list.lng b/interface/ispconfig/interface/admin/lib/lang/it_remote_user_list.lng deleted file mode 100644 index 152a75fba..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_remote_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_server.lng b/interface/ispconfig/interface/admin/lib/lang/it_server.lng deleted file mode 100644 index 922eae179..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_server.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_server_config.lng b/interface/ispconfig/interface/admin/lib/lang/it_server_config.lng deleted file mode 100644 index dfe9ce657..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_server_config.lng +++ /dev/null @@ -1,68 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_server_config_list.lng b/interface/ispconfig/interface/admin/lib/lang/it_server_config_list.lng deleted file mode 100644 index 10a3e1731..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_server_config_list.lng +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_server_ip.lng b/interface/ispconfig/interface/admin/lib/lang/it_server_ip.lng deleted file mode 100644 index 6d451f5b2..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_server_ip.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_server_ip_list.lng b/interface/ispconfig/interface/admin/lib/lang/it_server_ip_list.lng deleted file mode 100644 index c2c4ab9e0..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_server_ip_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_server_list.lng b/interface/ispconfig/interface/admin/lib/lang/it_server_list.lng deleted file mode 100644 index 79ec28fbb..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_server_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_software_package_list.lng b/interface/ispconfig/interface/admin/lib/lang/it_software_package_list.lng deleted file mode 100644 index 03917cabc..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_software_package_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_software_repo.lng b/interface/ispconfig/interface/admin/lib/lang/it_software_repo.lng deleted file mode 100644 index 574dd1162..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_software_repo.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_software_repo_list.lng b/interface/ispconfig/interface/admin/lib/lang/it_software_repo_list.lng deleted file mode 100644 index 4db52118e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_software_update_list.lng b/interface/ispconfig/interface/admin/lib/lang/it_software_update_list.lng deleted file mode 100644 index d45ee9ac4..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_software_update_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_system_config.lng b/interface/ispconfig/interface/admin/lib/lang/it_system_config.lng deleted file mode 100644 index e7f5d9365..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_system_config.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_users.lng b/interface/ispconfig/interface/admin/lib/lang/it_users.lng deleted file mode 100644 index 8e70364aa..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_users.lng +++ /dev/null @@ -1,28 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/it_users_list.lng b/interface/ispconfig/interface/admin/lib/lang/it_users_list.lng deleted file mode 100644 index 35598d33f..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/it_users_list.lng +++ /dev/null @@ -1,9 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/ja.lng b/interface/ispconfig/interface/admin/lib/lang/ja.lng deleted file mode 100644 index 338f02404..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_firewall.lng b/interface/ispconfig/interface/admin/lib/lang/ja_firewall.lng deleted file mode 100644 index 1f567b6b0..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_firewall.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_firewall_list.lng b/interface/ispconfig/interface/admin/lib/lang/ja_firewall_list.lng deleted file mode 100644 index 738c3e83f..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_firewall_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_groups.lng b/interface/ispconfig/interface/admin/lib/lang/ja_groups.lng deleted file mode 100644 index 7fa2d9fa1..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_groups.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_groups_list.lng b/interface/ispconfig/interface/admin/lib/lang/ja_groups_list.lng deleted file mode 100644 index ced6ab2c4..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_groups_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_language_add.lng b/interface/ispconfig/interface/admin/lib/lang/ja_language_add.lng deleted file mode 100644 index c704242c9..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_language_add.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_language_complete.lng b/interface/ispconfig/interface/admin/lib/lang/ja_language_complete.lng deleted file mode 100644 index a5da8806f..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_language_complete.lng +++ /dev/null @@ -1,7 +0,0 @@ -é¸ã‚“ã è¨€èªžãƒ•ã‚¡ã‚¤ãƒ«ã«æ¬ ã‘ã¦ã„ã‚‹è¦ç´ ãŒã‚ã‚‹å ´åˆã€è‹±èªžç‰ˆã‹ã‚‰æŠœã出ã—ã¦è¿½åŠ ã—ã¾ã™ã€‚'; -$wb['language_select_txt'] = '言語をé¸ã‚“ã§ãã ã•ã„'; -$wb['btn_save_txt'] = 'ファイルをマージã™ã‚‹'; -$wb['btn_cancel_txt'] = '戻る'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_language_edit.lng b/interface/ispconfig/interface/admin/lib/lang/ja_language_edit.lng deleted file mode 100644 index f913997b9..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_language_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_language_export.lng b/interface/ispconfig/interface/admin/lib/lang/ja_language_export.lng deleted file mode 100644 index fc5d3845b..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_language_export.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_language_import.lng b/interface/ispconfig/interface/admin/lib/lang/ja_language_import.lng deleted file mode 100644 index 4c5551495..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_language_import.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_language_list.lng b/interface/ispconfig/interface/admin/lib/lang/ja_language_list.lng deleted file mode 100644 index 7fe018edb..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_language_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_remote_user.lng b/interface/ispconfig/interface/admin/lib/lang/ja_remote_user.lng deleted file mode 100644 index 4a01d4c56..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_remote_user.lng +++ /dev/null @@ -1,42 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_remote_user_list.lng b/interface/ispconfig/interface/admin/lib/lang/ja_remote_user_list.lng deleted file mode 100644 index 4631fbbdb..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_remote_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_server.lng b/interface/ispconfig/interface/admin/lib/lang/ja_server.lng deleted file mode 100644 index 8eb0ef74d..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_server.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_server_config.lng b/interface/ispconfig/interface/admin/lib/lang/ja_server_config.lng deleted file mode 100644 index 5ef759a3a..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_server_config.lng +++ /dev/null @@ -1,68 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_server_config_list.lng b/interface/ispconfig/interface/admin/lib/lang/ja_server_config_list.lng deleted file mode 100644 index c77cfc9bc..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_server_config_list.lng +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_server_ip.lng b/interface/ispconfig/interface/admin/lib/lang/ja_server_ip.lng deleted file mode 100644 index db52f249d..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_server_ip.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_server_ip_list.lng b/interface/ispconfig/interface/admin/lib/lang/ja_server_ip_list.lng deleted file mode 100644 index 7879f5127..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_server_ip_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_server_list.lng b/interface/ispconfig/interface/admin/lib/lang/ja_server_list.lng deleted file mode 100644 index 1fa42e8ef..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_server_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_software_package_list.lng b/interface/ispconfig/interface/admin/lib/lang/ja_software_package_list.lng deleted file mode 100644 index 5718b756e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_software_package_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_software_repo.lng b/interface/ispconfig/interface/admin/lib/lang/ja_software_repo.lng deleted file mode 100644 index fba63e998..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_software_repo.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_software_repo_list.lng b/interface/ispconfig/interface/admin/lib/lang/ja_software_repo_list.lng deleted file mode 100644 index a7d06d8fd..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_software_update_list.lng b/interface/ispconfig/interface/admin/lib/lang/ja_software_update_list.lng deleted file mode 100644 index b37528035..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_software_update_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_system_config.lng b/interface/ispconfig/interface/admin/lib/lang/ja_system_config.lng deleted file mode 100644 index 673ef189d..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_system_config.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_users.lng b/interface/ispconfig/interface/admin/lib/lang/ja_users.lng deleted file mode 100644 index 040c2692a..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_users.lng +++ /dev/null @@ -1,28 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ja_users_list.lng b/interface/ispconfig/interface/admin/lib/lang/ja_users_list.lng deleted file mode 100644 index 2ab8d227f..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ja_users_list.lng +++ /dev/null @@ -1,9 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/nl.lng b/interface/ispconfig/interface/admin/lib/lang/nl.lng deleted file mode 100644 index 41071ac33..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_firewall.lng b/interface/ispconfig/interface/admin/lib/lang/nl_firewall.lng deleted file mode 100644 index 26001af2b..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_firewall.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_firewall_list.lng b/interface/ispconfig/interface/admin/lib/lang/nl_firewall_list.lng deleted file mode 100644 index 37f78048c..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_firewall_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_groups.lng b/interface/ispconfig/interface/admin/lib/lang/nl_groups.lng deleted file mode 100644 index 0454a672e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_groups.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_groups_list.lng b/interface/ispconfig/interface/admin/lib/lang/nl_groups_list.lng deleted file mode 100644 index 43e2729a0..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_groups_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -LET OP: Uitgevoerde wijzigingen in deze module kunnen gevolgen hebben voor gebruikers gekoppeld aan deze groepen!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_language_add.lng b/interface/ispconfig/interface/admin/lib/lang/nl_language_add.lng deleted file mode 100644 index 8a5c5db5f..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_language_add.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_language_complete.lng b/interface/ispconfig/interface/admin/lib/lang/nl_language_complete.lng deleted file mode 100644 index 611637131..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_language_complete.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_language_edit.lng b/interface/ispconfig/interface/admin/lib/lang/nl_language_edit.lng deleted file mode 100644 index 9656b36a0..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_language_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_language_export.lng b/interface/ispconfig/interface/admin/lib/lang/nl_language_export.lng deleted file mode 100644 index 2c1d78f7d..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_language_export.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_language_import.lng b/interface/ispconfig/interface/admin/lib/lang/nl_language_import.lng deleted file mode 100644 index f1d5fa51a..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_language_import.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_language_list.lng b/interface/ispconfig/interface/admin/lib/lang/nl_language_list.lng deleted file mode 100644 index dc5843af2..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_language_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_remote_user.lng b/interface/ispconfig/interface/admin/lib/lang/nl_remote_user.lng deleted file mode 100644 index 4f9dc1de3..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_remote_user.lng +++ /dev/null @@ -1,42 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_remote_user_list.lng b/interface/ispconfig/interface/admin/lib/lang/nl_remote_user_list.lng deleted file mode 100644 index 664ea756e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_remote_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_server.lng b/interface/ispconfig/interface/admin/lib/lang/nl_server.lng deleted file mode 100644 index f348c7962..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_server.lng +++ /dev/null @@ -1,13 +0,0 @@ -
Wijzigen? Zie: Server configuratie'; -$wb['server_name_txt'] = 'Servernaam'; -$wb['mail_server_txt'] = 'Mailserver'; -$wb['web_server_txt'] = 'Webserver'; -$wb['dns_server_txt'] = 'DNS server'; -$wb['file_server_txt'] = 'Fileserver'; -$wb['db_server_txt'] = 'Database server'; -$wb['vserver_server_txt'] = 'VServer-server'; -$wb['active_txt'] = 'Actief?'; -$wb['mirror_server_id_txt'] = 'Deze server is mirror van server'; -$wb['- None -'] = '- niet van toepassing -'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_server_config.lng b/interface/ispconfig/interface/admin/lib/lang/nl_server_config.lng deleted file mode 100644 index 8293bb813..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_server_config.lng +++ /dev/null @@ -1,68 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_server_config_list.lng b/interface/ispconfig/interface/admin/lib/lang/nl_server_config_list.lng deleted file mode 100644 index 3d376e5f1..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_server_config_list.lng +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_server_ip.lng b/interface/ispconfig/interface/admin/lib/lang/nl_server_ip.lng deleted file mode 100644 index ef8079ada..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_server_ip.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_server_ip_list.lng b/interface/ispconfig/interface/admin/lib/lang/nl_server_ip_list.lng deleted file mode 100644 index acbd83e29..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_server_ip_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_server_list.lng b/interface/ispconfig/interface/admin/lib/lang/nl_server_list.lng deleted file mode 100644 index 05e7aac6c..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_server_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_software_package_list.lng b/interface/ispconfig/interface/admin/lib/lang/nl_software_package_list.lng deleted file mode 100644 index 177e1b82c..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_software_package_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_software_repo.lng b/interface/ispconfig/interface/admin/lib/lang/nl_software_repo.lng deleted file mode 100644 index bd4c93119..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_software_repo.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_software_repo_list.lng b/interface/ispconfig/interface/admin/lib/lang/nl_software_repo_list.lng deleted file mode 100644 index 737e5cf43..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_software_update_list.lng b/interface/ispconfig/interface/admin/lib/lang/nl_software_update_list.lng deleted file mode 100644 index 7c8dc7623..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_software_update_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_system_config.lng b/interface/ispconfig/interface/admin/lib/lang/nl_system_config.lng deleted file mode 100644 index 6d6d4f9a1..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_system_config.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_users.lng b/interface/ispconfig/interface/admin/lib/lang/nl_users.lng deleted file mode 100644 index 4ab27372c..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_users.lng +++ /dev/null @@ -1,28 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/nl_users_list.lng b/interface/ispconfig/interface/admin/lib/lang/nl_users_list.lng deleted file mode 100644 index 143593400..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/nl_users_list.lng +++ /dev/null @@ -1,9 +0,0 @@ -LET OP: Verander hier geen gegevens. Gebruik daarvoor de functie Wijzig klant/Wijzig reseller onder de Klanten-module van ISPConfig. Het veranderen van gebruikers in deze module kan dataverlies opleveren!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/pl.lng b/interface/ispconfig/interface/admin/lib/lang/pl.lng deleted file mode 100644 index 939bffb3d..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_firewall.lng b/interface/ispconfig/interface/admin/lib/lang/pl_firewall.lng deleted file mode 100644 index a216af6b1..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_firewall.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_firewall_list.lng b/interface/ispconfig/interface/admin/lib/lang/pl_firewall_list.lng deleted file mode 100644 index f7e164040..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_firewall_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_groups.lng b/interface/ispconfig/interface/admin/lib/lang/pl_groups.lng deleted file mode 100644 index b3c8b9ca7..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_groups.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_groups_list.lng b/interface/ispconfig/interface/admin/lib/lang/pl_groups_list.lng deleted file mode 100644 index 14565b0c7..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_groups_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_language_add.lng b/interface/ispconfig/interface/admin/lib/lang/pl_language_add.lng deleted file mode 100644 index 82e42ef72..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_language_add.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_language_complete.lng b/interface/ispconfig/interface/admin/lib/lang/pl_language_complete.lng deleted file mode 100644 index 0096c69ef..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_language_complete.lng +++ /dev/null @@ -1,7 +0,0 @@ -Ta opcja dodaje do wybranego jÄ™zyka brakujÄ…ce zmienne jÄ™zykowe z plików jÄ™zyka angielskiego.'; -$wb['language_select_txt'] = 'Wybierz jÄ™zyk'; -$wb['btn_save_txt'] = 'PoÅ‚Ä…cz pliki teraz'; -$wb['btn_cancel_txt'] = 'Wróć'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_language_edit.lng b/interface/ispconfig/interface/admin/lib/lang/pl_language_edit.lng deleted file mode 100644 index 3a5e70693..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_language_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_language_export.lng b/interface/ispconfig/interface/admin/lib/lang/pl_language_export.lng deleted file mode 100644 index 82666fcb7..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_language_export.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_language_import.lng b/interface/ispconfig/interface/admin/lib/lang/pl_language_import.lng deleted file mode 100644 index 83e988116..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_language_import.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_language_list.lng b/interface/ispconfig/interface/admin/lib/lang/pl_language_list.lng deleted file mode 100644 index 68f710be0..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_language_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_remote_user.lng b/interface/ispconfig/interface/admin/lib/lang/pl_remote_user.lng deleted file mode 100644 index cc9335bc5..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_remote_user.lng +++ /dev/null @@ -1,42 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_remote_user_list.lng b/interface/ispconfig/interface/admin/lib/lang/pl_remote_user_list.lng deleted file mode 100644 index 152a75fba..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_remote_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_server.lng b/interface/ispconfig/interface/admin/lib/lang/pl_server.lng deleted file mode 100644 index c027c0b31..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_server.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_server_config.lng b/interface/ispconfig/interface/admin/lib/lang/pl_server_config.lng deleted file mode 100644 index 76c3589c7..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_server_config.lng +++ /dev/null @@ -1,68 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_server_config_list.lng b/interface/ispconfig/interface/admin/lib/lang/pl_server_config_list.lng deleted file mode 100644 index f9e8dcf1b..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_server_config_list.lng +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_server_ip.lng b/interface/ispconfig/interface/admin/lib/lang/pl_server_ip.lng deleted file mode 100644 index 41e0b9416..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_server_ip.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_server_ip_list.lng b/interface/ispconfig/interface/admin/lib/lang/pl_server_ip_list.lng deleted file mode 100644 index 6ab81c1e5..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_server_ip_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_server_list.lng b/interface/ispconfig/interface/admin/lib/lang/pl_server_list.lng deleted file mode 100644 index f61ba5fc8..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_server_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_software_package_list.lng b/interface/ispconfig/interface/admin/lib/lang/pl_software_package_list.lng deleted file mode 100644 index 9549333b1..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_software_package_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_software_repo.lng b/interface/ispconfig/interface/admin/lib/lang/pl_software_repo.lng deleted file mode 100644 index d11a1b3b3..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_software_repo.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_software_repo_list.lng b/interface/ispconfig/interface/admin/lib/lang/pl_software_repo_list.lng deleted file mode 100644 index 7ca6af9f9..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_software_update_list.lng b/interface/ispconfig/interface/admin/lib/lang/pl_software_update_list.lng deleted file mode 100644 index e38bdf8a3..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_software_update_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_system_config.lng b/interface/ispconfig/interface/admin/lib/lang/pl_system_config.lng deleted file mode 100644 index adaffcaa6..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_system_config.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_users.lng b/interface/ispconfig/interface/admin/lib/lang/pl_users.lng deleted file mode 100644 index 3b2472dfe..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_users.lng +++ /dev/null @@ -1,28 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/pl_users_list.lng b/interface/ispconfig/interface/admin/lib/lang/pl_users_list.lng deleted file mode 100644 index b628eae87..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pl_users_list.lng +++ /dev/null @@ -1,9 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/pt.lng b/interface/ispconfig/interface/admin/lib/lang/pt.lng deleted file mode 100644 index 81bcba098..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt.lng +++ /dev/null @@ -1,41 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_firewall.lng b/interface/ispconfig/interface/admin/lib/lang/pt_firewall.lng deleted file mode 100644 index 9c1fb784b..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_firewall.lng +++ /dev/null @@ -1,12 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_firewall_list.lng b/interface/ispconfig/interface/admin/lib/lang/pt_firewall_list.lng deleted file mode 100644 index d1dd50b71..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_firewall_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_groups.lng b/interface/ispconfig/interface/admin/lib/lang/pt_groups.lng deleted file mode 100644 index ee7577627..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_groups.lng +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_groups_list.lng b/interface/ispconfig/interface/admin/lib/lang/pt_groups_list.lng deleted file mode 100644 index 6e61aef91..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_groups_list.lng +++ /dev/null @@ -1,8 +0,0 @@ -AVISO: Não modifique ou edite qualquer configuração de utilizador aqui. Use o módulo de cliente ou revendedor. Modificar ou alterar utilizadors e grupos aqui pode ocasionar perda de dados!'; -?> - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_language_add.lng b/interface/ispconfig/interface/admin/lib/lang/pt_language_add.lng deleted file mode 100644 index fb1a41ad6..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_language_add.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_language_complete.lng b/interface/ispconfig/interface/admin/lib/lang/pt_language_complete.lng deleted file mode 100644 index 54f44d014..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_language_complete.lng +++ /dev/null @@ -1,8 +0,0 @@ -Isto permite completar qualquer falha de tradução, com o ficheiro principal original em inglês.'; -$wb['language_select_txt'] = 'Seleccionar Idioma'; -$wb['btn_save_txt'] = 'Mesclar ficheiros agora'; -$wb['btn_cancel_txt'] = 'Voltar'; -?> - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_language_edit.lng b/interface/ispconfig/interface/admin/lib/lang/pt_language_edit.lng deleted file mode 100644 index 0c6e29a33..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_language_edit.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_language_export.lng b/interface/ispconfig/interface/admin/lib/lang/pt_language_export.lng deleted file mode 100644 index b4630e5e4..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_language_export.lng +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_language_import.lng b/interface/ispconfig/interface/admin/lib/lang/pt_language_import.lng deleted file mode 100644 index 0d0967b49..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_language_import.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_language_list.lng b/interface/ispconfig/interface/admin/lib/lang/pt_language_list.lng deleted file mode 100644 index 649cd9d2f..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_language_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_remote_user.lng b/interface/ispconfig/interface/admin/lib/lang/pt_remote_user.lng deleted file mode 100644 index 1db840050..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_remote_user.lng +++ /dev/null @@ -1,43 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_remote_user_list.lng b/interface/ispconfig/interface/admin/lib/lang/pt_remote_user_list.lng deleted file mode 100644 index 850b5ed2e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_remote_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_server.lng b/interface/ispconfig/interface/admin/lib/lang/pt_server.lng deleted file mode 100644 index a7cc7cbfa..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_server.lng +++ /dev/null @@ -1,14 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_server_config.lng b/interface/ispconfig/interface/admin/lib/lang/pt_server_config.lng deleted file mode 100644 index 8c281b919..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_server_config.lng +++ /dev/null @@ -1,69 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_server_config_list.lng b/interface/ispconfig/interface/admin/lib/lang/pt_server_config_list.lng deleted file mode 100644 index 551867db8..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_server_config_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_server_ip.lng b/interface/ispconfig/interface/admin/lib/lang/pt_server_ip.lng deleted file mode 100644 index 3fab26386..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_server_ip.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_server_ip_list.lng b/interface/ispconfig/interface/admin/lib/lang/pt_server_ip_list.lng deleted file mode 100644 index a9c4ffe2c..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_server_ip_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_server_list.lng b/interface/ispconfig/interface/admin/lib/lang/pt_server_list.lng deleted file mode 100644 index e3c3c8ad6..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_server_list.lng +++ /dev/null @@ -1,12 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_software_package_list.lng b/interface/ispconfig/interface/admin/lib/lang/pt_software_package_list.lng deleted file mode 100644 index cba1c698e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_software_package_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_software_repo.lng b/interface/ispconfig/interface/admin/lib/lang/pt_software_repo.lng deleted file mode 100644 index 257e0b5b8..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_software_repo_list.lng b/interface/ispconfig/interface/admin/lib/lang/pt_software_repo_list.lng deleted file mode 100644 index 5b60ee24d..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_software_repo_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_software_update_list.lng b/interface/ispconfig/interface/admin/lib/lang/pt_software_update_list.lng deleted file mode 100644 index 163731ba7..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_system_config.lng b/interface/ispconfig/interface/admin/lib/lang/pt_system_config.lng deleted file mode 100644 index 9a662a9a2..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_system_config.lng +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_users.lng b/interface/ispconfig/interface/admin/lib/lang/pt_users.lng deleted file mode 100644 index fdf07aa3e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_users.lng +++ /dev/null @@ -1,29 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/pt_users_list.lng b/interface/ispconfig/interface/admin/lib/lang/pt_users_list.lng deleted file mode 100644 index 6ebec0a12..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/pt_users_list.lng +++ /dev/null @@ -1,10 +0,0 @@ -AVISO: Não modifique ou edite qualquer configuração de utilizador aqui. Use o módulo de cliente ou revendedor. Modificar ou alterar utilizadors e grupos aqui pode resultar na perda de dados!'; -?> - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro.lng b/interface/ispconfig/interface/admin/lib/lang/ro.lng deleted file mode 100644 index 77d07ab2d..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_firewall.lng b/interface/ispconfig/interface/admin/lib/lang/ro_firewall.lng deleted file mode 100644 index e626345d3..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_firewall.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_firewall_list.lng b/interface/ispconfig/interface/admin/lib/lang/ro_firewall_list.lng deleted file mode 100644 index 24a34be1c..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_firewall_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_groups.lng b/interface/ispconfig/interface/admin/lib/lang/ro_groups.lng deleted file mode 100644 index 61c3dc538..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_groups.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_groups_list.lng b/interface/ispconfig/interface/admin/lib/lang/ro_groups_list.lng deleted file mode 100644 index f1d8e2c1a..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_groups_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_language_add.lng b/interface/ispconfig/interface/admin/lib/lang/ro_language_add.lng deleted file mode 100644 index dc6b2d1b7..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_language_add.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_language_complete.lng b/interface/ispconfig/interface/admin/lib/lang/ro_language_complete.lng deleted file mode 100644 index db7c05bb2..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_language_complete.lng +++ /dev/null @@ -1,7 +0,0 @@ -This adds missing strings from the english master language files to the selected language.'; -$wb['language_select_txt'] = 'Select language'; -$wb['btn_save_txt'] = 'Merge files now'; -$wb['btn_cancel_txt'] = 'Back'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_language_edit.lng b/interface/ispconfig/interface/admin/lib/lang/ro_language_edit.lng deleted file mode 100644 index 4c50e883e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_language_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_language_export.lng b/interface/ispconfig/interface/admin/lib/lang/ro_language_export.lng deleted file mode 100644 index f45d47b17..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_language_export.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_language_import.lng b/interface/ispconfig/interface/admin/lib/lang/ro_language_import.lng deleted file mode 100644 index fefae80d0..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_language_import.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_language_list.lng b/interface/ispconfig/interface/admin/lib/lang/ro_language_list.lng deleted file mode 100644 index 1c784edf6..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_language_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_remote_user.lng b/interface/ispconfig/interface/admin/lib/lang/ro_remote_user.lng deleted file mode 100644 index cc9335bc5..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_remote_user.lng +++ /dev/null @@ -1,42 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_remote_user_list.lng b/interface/ispconfig/interface/admin/lib/lang/ro_remote_user_list.lng deleted file mode 100644 index 56c6fac4b..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_remote_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_server.lng b/interface/ispconfig/interface/admin/lib/lang/ro_server.lng deleted file mode 100644 index 1b42f22c8..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_server.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_server_config.lng b/interface/ispconfig/interface/admin/lib/lang/ro_server_config.lng deleted file mode 100644 index 36899fd02..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_server_config.lng +++ /dev/null @@ -1,68 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_server_config_list.lng b/interface/ispconfig/interface/admin/lib/lang/ro_server_config_list.lng deleted file mode 100644 index 636c2e050..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_server_config_list.lng +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_server_ip.lng b/interface/ispconfig/interface/admin/lib/lang/ro_server_ip.lng deleted file mode 100644 index 6d451f5b2..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_server_ip.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_server_ip_list.lng b/interface/ispconfig/interface/admin/lib/lang/ro_server_ip_list.lng deleted file mode 100644 index 4e9831666..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_server_ip_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_server_list.lng b/interface/ispconfig/interface/admin/lib/lang/ro_server_list.lng deleted file mode 100644 index 5cea9d216..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_server_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_software_package_list.lng b/interface/ispconfig/interface/admin/lib/lang/ro_software_package_list.lng deleted file mode 100644 index 3bcf7bcea..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_software_package_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_software_repo.lng b/interface/ispconfig/interface/admin/lib/lang/ro_software_repo.lng deleted file mode 100644 index 574dd1162..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_software_repo.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_software_repo_list.lng b/interface/ispconfig/interface/admin/lib/lang/ro_software_repo_list.lng deleted file mode 100644 index b7a219ffa..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_software_update_list.lng b/interface/ispconfig/interface/admin/lib/lang/ro_software_update_list.lng deleted file mode 100644 index fc96ffa18..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_software_update_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_system_config.lng b/interface/ispconfig/interface/admin/lib/lang/ro_system_config.lng deleted file mode 100644 index e7f5d9365..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_system_config.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_users.lng b/interface/ispconfig/interface/admin/lib/lang/ro_users.lng deleted file mode 100644 index 8e70364aa..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_users.lng +++ /dev/null @@ -1,28 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/ro_users_list.lng b/interface/ispconfig/interface/admin/lib/lang/ro_users_list.lng deleted file mode 100644 index 16d8179fa..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ro_users_list.lng +++ /dev/null @@ -1,9 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/ru.lng b/interface/ispconfig/interface/admin/lib/lang/ru.lng deleted file mode 100644 index 19d632edf..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru.lng +++ /dev/null @@ -1,41 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_firewall.lng b/interface/ispconfig/interface/admin/lib/lang/ru_firewall.lng deleted file mode 100644 index dfe0c10d1..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_firewall.lng +++ /dev/null @@ -1,12 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_firewall_list.lng b/interface/ispconfig/interface/admin/lib/lang/ru_firewall_list.lng deleted file mode 100644 index fc2fffad4..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_firewall_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_groups.lng b/interface/ispconfig/interface/admin/lib/lang/ru_groups.lng deleted file mode 100644 index d377f5f88..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_groups.lng +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_groups_list.lng b/interface/ispconfig/interface/admin/lib/lang/ru_groups_list.lng deleted file mode 100644 index 1495e6900..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_groups_list.lng +++ /dev/null @@ -1,8 +0,0 @@ -Ð’ÐИМÐÐИЕ:Ðе удалÑйте и не менÑйте никаких наÑтроек здеÑÑŒ. ИÑпользуйте наÑтройки клиента и реÑеллера в модуле КЛИЕÐТ. Изменение пользователей или групп здеÑÑŒ может вызвать потерю данных!'; -?> - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_language_add.lng b/interface/ispconfig/interface/admin/lib/lang/ru_language_add.lng deleted file mode 100644 index 5d1d154c8..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_language_add.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_language_complete.lng b/interface/ispconfig/interface/admin/lib/lang/ru_language_complete.lng deleted file mode 100644 index c7ade3cd7..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_language_complete.lng +++ /dev/null @@ -1,8 +0,0 @@ -Это добавит пропущенные Ñтроки из маÑтер-Ñзыка.'; -?> - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_language_edit.lng b/interface/ispconfig/interface/admin/lib/lang/ru_language_edit.lng deleted file mode 100644 index b5cbb1669..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_language_edit.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_language_export.lng b/interface/ispconfig/interface/admin/lib/lang/ru_language_export.lng deleted file mode 100644 index 9a4a929af..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_language_export.lng +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_language_import.lng b/interface/ispconfig/interface/admin/lib/lang/ru_language_import.lng deleted file mode 100644 index f0b767e4d..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_language_import.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_language_list.lng b/interface/ispconfig/interface/admin/lib/lang/ru_language_list.lng deleted file mode 100644 index 72561a7af..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_language_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_remote_user.lng b/interface/ispconfig/interface/admin/lib/lang/ru_remote_user.lng deleted file mode 100644 index ceee7b9ee..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_remote_user.lng +++ /dev/null @@ -1,43 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_remote_user_list.lng b/interface/ispconfig/interface/admin/lib/lang/ru_remote_user_list.lng deleted file mode 100644 index f1bcdf968..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_remote_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_server.lng b/interface/ispconfig/interface/admin/lib/lang/ru_server.lng deleted file mode 100644 index 5575e6582..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_server.lng +++ /dev/null @@ -1,14 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_server_config.lng b/interface/ispconfig/interface/admin/lib/lang/ru_server_config.lng deleted file mode 100644 index c0530b62c..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_server_config.lng +++ /dev/null @@ -1,69 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_server_config_list.lng b/interface/ispconfig/interface/admin/lib/lang/ru_server_config_list.lng deleted file mode 100644 index 351caaf57..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_server_config_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_server_ip.lng b/interface/ispconfig/interface/admin/lib/lang/ru_server_ip.lng deleted file mode 100644 index a835da047..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_server_ip.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_server_ip_list.lng b/interface/ispconfig/interface/admin/lib/lang/ru_server_ip_list.lng deleted file mode 100644 index 8e06c0a91..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_server_ip_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_server_list.lng b/interface/ispconfig/interface/admin/lib/lang/ru_server_list.lng deleted file mode 100644 index 4290a6979..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_server_list.lng +++ /dev/null @@ -1,12 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_software_package_list.lng b/interface/ispconfig/interface/admin/lib/lang/ru_software_package_list.lng deleted file mode 100644 index 7c4fbd8ba..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_software_package_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_software_repo.lng b/interface/ispconfig/interface/admin/lib/lang/ru_software_repo.lng deleted file mode 100644 index 7d5abbcf9..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_software_repo_list.lng b/interface/ispconfig/interface/admin/lib/lang/ru_software_repo_list.lng deleted file mode 100644 index 7989ba49e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_software_repo_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_software_update_list.lng b/interface/ispconfig/interface/admin/lib/lang/ru_software_update_list.lng deleted file mode 100644 index 41fcbd414..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_system_config.lng b/interface/ispconfig/interface/admin/lib/lang/ru_system_config.lng deleted file mode 100644 index 823cb7445..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_system_config.lng +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_users.lng b/interface/ispconfig/interface/admin/lib/lang/ru_users.lng deleted file mode 100644 index b29c02035..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_users.lng +++ /dev/null @@ -1,29 +0,0 @@ - - diff --git a/interface/ispconfig/interface/admin/lib/lang/ru_users_list.lng b/interface/ispconfig/interface/admin/lib/lang/ru_users_list.lng deleted file mode 100644 index 62f17c600..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/ru_users_list.lng +++ /dev/null @@ -1,10 +0,0 @@ -Ð’ÐИМÐÐИЕ:Ðе удалÑйте и не менÑйте никаких наÑтроек здеÑÑŒ. ИÑпользуйте наÑтройки клиента и реÑеллера в модуле КЛИЕÐТ. Изменение пользователей или групп здеÑÑŒ может вызвать потерю данных!'; -?> - diff --git a/interface/ispconfig/interface/admin/lib/lang/se.lng b/interface/ispconfig/interface/admin/lib/lang/se.lng deleted file mode 100644 index 4b86cbba6..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_firewall.lng b/interface/ispconfig/interface/admin/lib/lang/se_firewall.lng deleted file mode 100644 index e626345d3..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_firewall.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_firewall_list.lng b/interface/ispconfig/interface/admin/lib/lang/se_firewall_list.lng deleted file mode 100644 index 24a34be1c..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_firewall_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_groups.lng b/interface/ispconfig/interface/admin/lib/lang/se_groups.lng deleted file mode 100644 index cfe856507..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_groups.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_groups_list.lng b/interface/ispconfig/interface/admin/lib/lang/se_groups_list.lng deleted file mode 100644 index 5b025e08a..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_groups_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/se_language_add.lng b/interface/ispconfig/interface/admin/lib/lang/se_language_add.lng deleted file mode 100644 index 27bb0eeb6..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_language_add.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_language_complete.lng b/interface/ispconfig/interface/admin/lib/lang/se_language_complete.lng deleted file mode 100644 index b5200ff9d..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_language_complete.lng +++ /dev/null @@ -1,7 +0,0 @@ -This adds missing strings from the english master language files to the selected language.'; -$wb['language_select_txt'] = 'Select language'; -$wb['btn_save_txt'] = 'Merge files now'; -$wb['btn_cancel_txt'] = 'Back'; -$wb['list_desc_txt'] = 'Merge the selected language file with the english master language file.
This adds missing strings from the english master language files to the selected language.'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/se_language_edit.lng b/interface/ispconfig/interface/admin/lib/lang/se_language_edit.lng deleted file mode 100644 index 4c50e883e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_language_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_language_export.lng b/interface/ispconfig/interface/admin/lib/lang/se_language_export.lng deleted file mode 100644 index f45d47b17..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_language_export.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_language_import.lng b/interface/ispconfig/interface/admin/lib/lang/se_language_import.lng deleted file mode 100644 index 4c31ec3de..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_language_import.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_language_list.lng b/interface/ispconfig/interface/admin/lib/lang/se_language_list.lng deleted file mode 100644 index 1c784edf6..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_language_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_remote_user.lng b/interface/ispconfig/interface/admin/lib/lang/se_remote_user.lng deleted file mode 100644 index cc9335bc5..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_remote_user.lng +++ /dev/null @@ -1,42 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_remote_user_list.lng b/interface/ispconfig/interface/admin/lib/lang/se_remote_user_list.lng deleted file mode 100644 index 152a75fba..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_remote_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_server.lng b/interface/ispconfig/interface/admin/lib/lang/se_server.lng deleted file mode 100644 index f1c044bb6..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_server.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_server_config.lng b/interface/ispconfig/interface/admin/lib/lang/se_server_config.lng deleted file mode 100644 index 16803a9f5..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_server_config.lng +++ /dev/null @@ -1,68 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_server_config_list.lng b/interface/ispconfig/interface/admin/lib/lang/se_server_config_list.lng deleted file mode 100644 index 636c2e050..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_server_config_list.lng +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_server_ip.lng b/interface/ispconfig/interface/admin/lib/lang/se_server_ip.lng deleted file mode 100644 index 6d451f5b2..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_server_ip.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_server_ip_list.lng b/interface/ispconfig/interface/admin/lib/lang/se_server_ip_list.lng deleted file mode 100644 index 81ae8f01d..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_server_ip_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_server_list.lng b/interface/ispconfig/interface/admin/lib/lang/se_server_list.lng deleted file mode 100644 index ff7bd6e9d..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_server_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_software_package_list.lng b/interface/ispconfig/interface/admin/lib/lang/se_software_package_list.lng deleted file mode 100644 index 03917cabc..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_software_package_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_software_repo.lng b/interface/ispconfig/interface/admin/lib/lang/se_software_repo.lng deleted file mode 100644 index 574dd1162..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_software_repo.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_software_repo_list.lng b/interface/ispconfig/interface/admin/lib/lang/se_software_repo_list.lng deleted file mode 100644 index b7a219ffa..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_software_update_list.lng b/interface/ispconfig/interface/admin/lib/lang/se_software_update_list.lng deleted file mode 100644 index ebf4e6fbc..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_software_update_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_system_config.lng b/interface/ispconfig/interface/admin/lib/lang/se_system_config.lng deleted file mode 100644 index e7f5d9365..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_system_config.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_users.lng b/interface/ispconfig/interface/admin/lib/lang/se_users.lng deleted file mode 100644 index 3708eff32..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_users.lng +++ /dev/null @@ -1,28 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/se_users_list.lng b/interface/ispconfig/interface/admin/lib/lang/se_users_list.lng deleted file mode 100644 index de5d63e2f..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/se_users_list.lng +++ /dev/null @@ -1,9 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/sk.lng b/interface/ispconfig/interface/admin/lib/lang/sk.lng deleted file mode 100644 index a4eab1490..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_firewall.lng b/interface/ispconfig/interface/admin/lib/lang/sk_firewall.lng deleted file mode 100644 index 581b4384c..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_firewall.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_firewall_list.lng b/interface/ispconfig/interface/admin/lib/lang/sk_firewall_list.lng deleted file mode 100644 index 657d6ca14..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_firewall_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_groups.lng b/interface/ispconfig/interface/admin/lib/lang/sk_groups.lng deleted file mode 100644 index f43077cea..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_groups.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_groups_list.lng b/interface/ispconfig/interface/admin/lib/lang/sk_groups_list.lng deleted file mode 100644 index 1b067b7f8..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_groups_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_language_add.lng b/interface/ispconfig/interface/admin/lib/lang/sk_language_add.lng deleted file mode 100644 index 5b21d003d..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_language_add.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_language_complete.lng b/interface/ispconfig/interface/admin/lib/lang/sk_language_complete.lng deleted file mode 100644 index 4b076136c..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_language_complete.lng +++ /dev/null @@ -1,7 +0,0 @@ - dop??a chýbajúce re?azce z anglického súboru jazyka do zvoleného jazyka.'; -$wb['language_select_txt'] = 'Vyber jazyk'; -$wb['btn_save_txt'] = 'Zlú?i? súbory teraz'; -$wb['btn_cancel_txt'] = 'Spä?'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_language_edit.lng b/interface/ispconfig/interface/admin/lib/lang/sk_language_edit.lng deleted file mode 100644 index 51c2c0a40..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_language_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_language_export.lng b/interface/ispconfig/interface/admin/lib/lang/sk_language_export.lng deleted file mode 100644 index 6bdfbc194..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_language_export.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_language_import.lng b/interface/ispconfig/interface/admin/lib/lang/sk_language_import.lng deleted file mode 100644 index 94c708af3..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_language_import.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_language_list.lng b/interface/ispconfig/interface/admin/lib/lang/sk_language_list.lng deleted file mode 100644 index 034b23aa8..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_language_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_remote_user.lng b/interface/ispconfig/interface/admin/lib/lang/sk_remote_user.lng deleted file mode 100644 index fae2654b4..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_remote_user.lng +++ /dev/null @@ -1,42 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_remote_user_list.lng b/interface/ispconfig/interface/admin/lib/lang/sk_remote_user_list.lng deleted file mode 100644 index 7e4661d7a..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_remote_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_server.lng b/interface/ispconfig/interface/admin/lib/lang/sk_server.lng deleted file mode 100644 index 667996c8b..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_server.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_server_config.lng b/interface/ispconfig/interface/admin/lib/lang/sk_server_config.lng deleted file mode 100644 index 2fc861857..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_server_config.lng +++ /dev/null @@ -1,68 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_server_config_list.lng b/interface/ispconfig/interface/admin/lib/lang/sk_server_config_list.lng deleted file mode 100644 index 73e7bac4e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_server_config_list.lng +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_server_ip.lng b/interface/ispconfig/interface/admin/lib/lang/sk_server_ip.lng deleted file mode 100644 index f6dfa75fe..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_server_ip.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_server_ip_list.lng b/interface/ispconfig/interface/admin/lib/lang/sk_server_ip_list.lng deleted file mode 100644 index de065f707..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_server_ip_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_server_list.lng b/interface/ispconfig/interface/admin/lib/lang/sk_server_list.lng deleted file mode 100644 index aff432880..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_server_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_software_package_list.lng b/interface/ispconfig/interface/admin/lib/lang/sk_software_package_list.lng deleted file mode 100644 index bcb6acbac..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_software_package_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_software_repo.lng b/interface/ispconfig/interface/admin/lib/lang/sk_software_repo.lng deleted file mode 100644 index a3cb3feeb..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_software_repo.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_software_repo_list.lng b/interface/ispconfig/interface/admin/lib/lang/sk_software_repo_list.lng deleted file mode 100644 index 52d468a16..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_software_update_list.lng b/interface/ispconfig/interface/admin/lib/lang/sk_software_update_list.lng deleted file mode 100644 index 01d07727f..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_software_update_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_system_config.lng b/interface/ispconfig/interface/admin/lib/lang/sk_system_config.lng deleted file mode 100644 index 90049de8e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_system_config.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_users.lng b/interface/ispconfig/interface/admin/lib/lang/sk_users.lng deleted file mode 100644 index 4376aa19f..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_users.lng +++ /dev/null @@ -1,28 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/sk_users_list.lng b/interface/ispconfig/interface/admin/lib/lang/sk_users_list.lng deleted file mode 100644 index a04f71621..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/sk_users_list.lng +++ /dev/null @@ -1,9 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/tr.lng b/interface/ispconfig/interface/admin/lib/lang/tr.lng deleted file mode 100644 index 7e47b6c69..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_firewall.lng b/interface/ispconfig/interface/admin/lib/lang/tr_firewall.lng deleted file mode 100644 index d379841b1..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_firewall.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_firewall_list.lng b/interface/ispconfig/interface/admin/lib/lang/tr_firewall_list.lng deleted file mode 100644 index 5fcff6396..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_firewall_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_groups.lng b/interface/ispconfig/interface/admin/lib/lang/tr_groups.lng deleted file mode 100644 index 5bad5a7e7..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_groups.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_groups_list.lng b/interface/ispconfig/interface/admin/lib/lang/tr_groups_list.lng deleted file mode 100644 index 5e7f0ebc2..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_groups_list.lng +++ /dev/null @@ -1,7 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_language_add.lng b/interface/ispconfig/interface/admin/lib/lang/tr_language_add.lng deleted file mode 100644 index fa712eba8..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_language_add.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_language_complete.lng b/interface/ispconfig/interface/admin/lib/lang/tr_language_complete.lng deleted file mode 100644 index 176d93b23..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_language_complete.lng +++ /dev/null @@ -1,7 +0,0 @@ -Bu olay kayıp metinleri ingilizce dil dosyasından seçili dil dosyasına ekler'; -$wb['language_select_txt'] = 'Dil seç'; -$wb['btn_save_txt'] = 'Dosyaları ÅŸimdi birleÅŸtir'; -$wb['btn_cancel_txt'] = 'Geri'; -?> diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_language_edit.lng b/interface/ispconfig/interface/admin/lib/lang/tr_language_edit.lng deleted file mode 100644 index 412b1b495..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_language_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_language_export.lng b/interface/ispconfig/interface/admin/lib/lang/tr_language_export.lng deleted file mode 100644 index d0205cb94..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_language_export.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_language_import.lng b/interface/ispconfig/interface/admin/lib/lang/tr_language_import.lng deleted file mode 100644 index 2caaa0798..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_language_import.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_language_list.lng b/interface/ispconfig/interface/admin/lib/lang/tr_language_list.lng deleted file mode 100644 index 833ce5955..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_language_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_remote_user.lng b/interface/ispconfig/interface/admin/lib/lang/tr_remote_user.lng deleted file mode 100644 index 5d918effa..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_remote_user.lng +++ /dev/null @@ -1,42 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_remote_user_list.lng b/interface/ispconfig/interface/admin/lib/lang/tr_remote_user_list.lng deleted file mode 100644 index eec9ef59e..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_remote_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_server.lng b/interface/ispconfig/interface/admin/lib/lang/tr_server.lng deleted file mode 100644 index 73ae1df70..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_server.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_server_config.lng b/interface/ispconfig/interface/admin/lib/lang/tr_server_config.lng deleted file mode 100644 index 40f08d527..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_server_config.lng +++ /dev/null @@ -1,68 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_server_config_list.lng b/interface/ispconfig/interface/admin/lib/lang/tr_server_config_list.lng deleted file mode 100644 index b3c74bd5f..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_server_config_list.lng +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_server_ip.lng b/interface/ispconfig/interface/admin/lib/lang/tr_server_ip.lng deleted file mode 100644 index 7112f4ef1..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_server_ip.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_server_ip_list.lng b/interface/ispconfig/interface/admin/lib/lang/tr_server_ip_list.lng deleted file mode 100644 index c931986bd..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_server_ip_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_server_list.lng b/interface/ispconfig/interface/admin/lib/lang/tr_server_list.lng deleted file mode 100644 index 7d689ced9..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_server_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_software_package_list.lng b/interface/ispconfig/interface/admin/lib/lang/tr_software_package_list.lng deleted file mode 100644 index 46726f740..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_software_package_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_software_repo.lng b/interface/ispconfig/interface/admin/lib/lang/tr_software_repo.lng deleted file mode 100644 index 67ce387eb..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_software_repo.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_software_repo_list.lng b/interface/ispconfig/interface/admin/lib/lang/tr_software_repo_list.lng deleted file mode 100644 index a37f2afe2..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_software_update_list.lng b/interface/ispconfig/interface/admin/lib/lang/tr_software_update_list.lng deleted file mode 100644 index 3f77e5486..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_software_update_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_system_config.lng b/interface/ispconfig/interface/admin/lib/lang/tr_system_config.lng deleted file mode 100644 index 980811dfc..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_system_config.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_users.lng b/interface/ispconfig/interface/admin/lib/lang/tr_users.lng deleted file mode 100644 index 3b8f05961..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_users.lng +++ /dev/null @@ -1,28 +0,0 @@ - diff --git a/interface/ispconfig/interface/admin/lib/lang/tr_users_list.lng b/interface/ispconfig/interface/admin/lib/lang/tr_users_list.lng deleted file mode 100644 index 8d1e03850..000000000 --- a/interface/ispconfig/interface/admin/lib/lang/tr_users_list.lng +++ /dev/null @@ -1,9 +0,0 @@ -WARNING: Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> diff --git a/interface/ispconfig/interface/admin/lib/module.conf.php b/interface/ispconfig/interface/admin/lib/module.conf.php deleted file mode 100644 index b6a6c57dd..000000000 --- a/interface/ispconfig/interface/admin/lib/module.conf.php +++ /dev/null @@ -1,174 +0,0 @@ - 'Add user', - 'target' => 'content', - 'link' => 'admin/users_edit.php'); - -$items[] = array( 'title' => 'Edit user', - 'target' => 'content', - 'link' => 'admin/users_list.php'); - - -$module['nav'][] = array( 'title' => 'CP Users', - 'open' => 1, - 'items' => $items); - - -// cleanup -unset($items); -/* -$items[] = array( 'title' => 'Add group', - 'target' => 'content', - 'link' => 'admin/groups_edit.php'); - -$items[] = array( 'title' => 'Edit group', - 'target' => 'content', - 'link' => 'admin/groups_list.php'); - - -$module['nav'][] = array( 'title' => 'Groups', - 'open' => 1, - 'items' => $items); - - -// cleanup -unset($items); -*/ -/* -$items[] = array( 'title' => 'Add server', - 'target' => 'content', - 'link' => 'admin/server_edit.php'); -*/ -$items[] = array( 'title' => 'Server Services', - 'target' => 'content', - 'link' => 'admin/server_list.php'); - -$items[] = array( 'title' => 'Server Config', - 'target' => 'content', - 'link' => 'admin/server_config_list.php'); - -/* -$items[] = array( 'title' => 'Add Server IP', - 'target' => 'content', - 'link' => 'admin/server_ip_edit.php'); -*/ -$items[] = array( 'title' => 'Edit Server IP', - 'target' => 'content', - 'link' => 'admin/server_ip_list.php'); - - -$items[] = array( 'title' => 'Interface Config', - 'target' => 'content', - 'link' => 'admin/system_config_edit.php?id=1'); - -$module['nav'][] = array( 'title' => 'System', - 'open' => 1, - 'items' => $items); -// cleanup -unset($items); - - -$items[] = array( 'title' => 'Firewall', - 'target' => 'content', - 'link' => 'admin/firewall_list.php'); - - -$module['nav'][] = array( 'title' => 'Firewall', - 'open' => 1, - 'items' => $items); - - -// cleanup -unset($items); - - -$items[] = array( 'title' => 'Repositories', - 'target' => 'content', - 'link' => 'admin/software_repo_list.php'); - -$items[] = array( 'title' => 'Packages', - 'target' => 'content', - 'link' => 'admin/software_package_list.php'); - -$items[] = array( 'title' => 'Updates', - 'target' => 'content', - 'link' => 'admin/software_update_list.php'); - -$module['nav'][] = array( 'title' => 'Software', - 'open' => 1, - 'items' => $items); - - -// cleanup -unset($items); - -$items[] = array( 'title' => 'Languages', - 'target' => 'content', - 'link' => 'admin/language_list.php'); - -$items[] = array( 'title' => 'New Language', - 'target' => 'content', - 'link' => 'admin/language_add.php'); - -$items[] = array( 'title' => 'Merge', - 'target' => 'content', - 'link' => 'admin/language_complete.php'); - -$items[] = array( 'title' => 'Export', - 'target' => 'content', - 'link' => 'admin/language_export.php'); - -$items[] = array( 'title' => 'Import', - 'target' => 'content', - 'link' => 'admin/language_import.php'); - -$module['nav'][] = array( 'title' => 'Language Editor', - 'open' => 1, - 'items' => $items); - - -// cleanup -unset($items); - -$items[] = array( 'title' => 'Add user', - 'target' => 'content', - 'link' => 'admin/remote_user_edit.php'); - -$items[] = array( 'title' => 'Edit user', - 'target' => 'content', - 'link' => 'admin/remote_user_list.php'); - - -$module['nav'][] = array( 'title' => 'Remote Users', - 'open' => 1, - 'items' => $items); - -// cleanup -unset($items); - -// Getting the admin options from other modules -$modules = explode(',', $_SESSION['s']['user']['modules']); -if(is_array($modules)) { - foreach($modules as $mt) { - if(is_file($mt.'/lib/admin.conf.php')) { - $options = array(); - include_once(ISPC_WEB_PATH."/$mt/lib/admin.conf.php"); - if(is_array($options)) { - foreach($options as $opt) { - $module['nav'][] = $opt; - } - } - } - } -} - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/list/firewall.list.php b/interface/ispconfig/interface/admin/list/firewall.list.php deleted file mode 100644 index ba3fb0633..000000000 --- a/interface/ispconfig/interface/admin/list/firewall.list.php +++ /dev/null @@ -1,93 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
Yes
",'n' => "
No
")); - -$liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} AND db_server = 1 ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => "", - 'value' => ""); - - -$liste["item"][] = array( 'field' => "tcp_port", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -$liste["item"][] = array( 'field' => "udp_port", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/list/groups.list.php b/interface/ispconfig/interface/admin/list/groups.list.php deleted file mode 100644 index c5e8c4d11..000000000 --- a/interface/ispconfig/interface/admin/list/groups.list.php +++ /dev/null @@ -1,61 +0,0 @@ - 'name', - 'datatype' => 'VARCHAR', - 'op' => 'like', - 'prefix' => '%', - 'suffix' => '%', - 'width' => ''); - -$liste['item'][] = array( 'field' => 'description', - 'datatype' => 'VARCHAR', - 'op' => 'like', - 'prefix' => '%', - 'suffix' => '%', - 'width' => ''); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/list/remote_user.list.php b/interface/ispconfig/interface/admin/list/remote_user.list.php deleted file mode 100644 index 31ef652a9..000000000 --- a/interface/ispconfig/interface/admin/list/remote_user.list.php +++ /dev/null @@ -1,65 +0,0 @@ - 'remote_userid', - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'op' => '=', - 'prefix' => '', - 'suffix' => '', - 'width' => '', - 'datasource' => array( - 'type' => 'SQL', - 'querystring' => 'SELECT remote_userid,remote_username FROM remote_user WHERE {AUTHSQL} ORDER BY remote_username', - 'keyfield' => 'remote_userid', - 'valuefield' => 'remote_userid' - ), - 'value' => '' - ); - -$liste['item'][] = array( - 'field' => 'remote_username', - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'op' => 'like', - 'prefix' => '%', - 'suffix' => '%', - 'width' => '', - 'value' => '' - ); - -?> - diff --git a/interface/ispconfig/interface/admin/list/server.list.php b/interface/ispconfig/interface/admin/list/server.list.php deleted file mode 100644 index 90bccf1ec..000000000 --- a/interface/ispconfig/interface/admin/list/server.list.php +++ /dev/null @@ -1,110 +0,0 @@ - 'server_name', - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'op' => 'like', - 'prefix' => '%', - 'suffix' => '%', - 'width' => '', - 'value' => ''); - -$liste['item'][] = array( 'field' => 'mail_server', - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'op' => 'like', - 'prefix' => '%', - 'suffix' => '%', - 'width' => '', - 'value' => array('1' => "
Yes
",'0' => "
No
")); - -$liste['item'][] = array( 'field' => 'web_server', - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'op' => 'like', - 'prefix' => '%', - 'suffix' => '%', - 'width' => '', - 'value' => array('1' => "
Yes
",'0' => "
No
")); - -$liste['item'][] = array( 'field' => 'dns_server', - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'op' => 'like', - 'prefix' => '%', - 'suffix' => '%', - 'width' => '', - 'value' => array('1' => "
Yes
",'0' => "
No
")); - -$liste['item'][] = array( 'field' => 'file_server', - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'op' => 'like', - 'prefix' => '%', - 'suffix' => '%', - 'width' => '', - 'value' => array('1' => "
Yes
",'0' => "
No
")); - -$liste['item'][] = array( 'field' => 'db_server', - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'op' => 'like', - 'prefix' => '%', - 'suffix' => '%', - 'width' => '', - 'value' => array('1' => "
Yes
",'0' => "
No
")); - -$liste['item'][] = array( 'field' => 'vserver_server', - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'op' => 'like', - 'prefix' => '%', - 'suffix' => '%', - 'width' => '', - 'value' => array('1' => "
Yes
",'0' => "
No
")); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/list/server_config.list.php b/interface/ispconfig/interface/admin/list/server_config.list.php deleted file mode 100644 index c0c20e500..000000000 --- a/interface/ispconfig/interface/admin/list/server_config.list.php +++ /dev/null @@ -1,60 +0,0 @@ - "server_name", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/list/server_ip.list.php b/interface/ispconfig/interface/admin/list/server_ip.list.php deleted file mode 100644 index aacebc0b7..000000000 --- a/interface/ispconfig/interface/admin/list/server_ip.list.php +++ /dev/null @@ -1,68 +0,0 @@ - 'server_id', - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'op' => 'like', - 'prefix' => '%', - 'suffix' => '%', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => '', - 'value' => ''); - -$liste['item'][] = array( 'field' => 'ip_address', - 'datatype' => 'VARCHAR', - 'op' => '=', - 'prefix' => '', - 'suffix' => '', - 'width' => ''); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/list/software_repo.list.php b/interface/ispconfig/interface/admin/list/software_repo.list.php deleted file mode 100644 index a9be62deb..000000000 --- a/interface/ispconfig/interface/admin/list/software_repo.list.php +++ /dev/null @@ -1,78 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
Yes
",'n' => "
No
")); - -$liste["item"][] = array( 'field' => "repo_name", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -$liste["item"][] = array( 'field' => "repo_url", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/list/users.list.php b/interface/ispconfig/interface/admin/list/users.list.php deleted file mode 100644 index f53e03be6..000000000 --- a/interface/ispconfig/interface/admin/list/users.list.php +++ /dev/null @@ -1,75 +0,0 @@ - 'username', - 'datatype' => 'VARCHAR', - 'op' => 'like', - 'prefix' => '%', - 'suffix' => '%', - 'width' => ''); - -$liste['item'][] = array( 'field' => 'vorname', - 'datatype' => 'VARCHAR', - 'op' => 'like', - 'prefix' => '%', - 'suffix' => '%', - 'width' => ''); - -$liste['item'][] = array( 'field' => 'name', - 'datatype' => 'VARCHAR', - 'op' => 'like', - 'prefix' => '%', - 'suffix' => '%', - 'width' => ''); - -$liste['item'][] = array( 'field' => 'ort', - 'datatype' => 'VARCHAR', - 'op' => 'like', - 'prefix' => '%', - 'suffix' => '%', - 'width' => ''); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/login_as.php b/interface/ispconfig/interface/admin/login_as.php deleted file mode 100644 index 0745c62cd..000000000 --- a/interface/ispconfig/interface/admin/login_as.php +++ /dev/null @@ -1,84 +0,0 @@ -auth->check_module_permissions('admin'); - -/* for security reasons ONLY the admin can login as other user */ -if ($_SESSION["s"]["user"]["typ"] != 'admin') { - die ("You don't have the right to login as other user!"); -} - -/* get the id of the user (must be int!) */ -if (!isset($_GET['id']) && !isset($_GET['cid'])){ - die ("No user selected!"); -} - -if(isset($_GET['id'])) { - $userId = intval($_GET['id']); - $backlink = 'admin/users_list.php'; -} else { - $client_id = intval($_GET['cid']); - $tmp_client = $app->db->queryOneRecord("SELECT username FROM client WHERE client_id = $client_id"); - $tmp_sys_user = $app->db->queryOneRecord("SELECT userid FROM sys_user WHERE username = '".$app->db->quote($tmp_client['username'])."'"); - $userId = $tmp_sys_user['userid']; - unset($tmp_client); - unset($tmp_sys_user); - $backlink = 'client/client_list.php'; -} - -/* - * Get the data to login as user x - */ -$dbData = $app->db->queryOneRecord( - "SELECT username, passwort FROM sys_user WHERE userid = " . $userId); - -/* - * Now generate the login-Form - */ -echo ' -



- Do you want to login as user ' . $dbData['username'] . '?
- If you do so, you can "go back" by clicking at logout.
-
- - -
- - -
- - -
-'; -?> diff --git a/interface/ispconfig/interface/admin/remote_user_del.php b/interface/ispconfig/interface/admin/remote_user_del.php deleted file mode 100644 index 74352ca6c..000000000 --- a/interface/ispconfig/interface/admin/remote_user_del.php +++ /dev/null @@ -1,62 +0,0 @@ -auth->check_module_permissions('admin'); - -$app->uses('tpl,tform'); -$app->load('tform_actions'); - -// Create a class page_action that extends the tform_actions base class - -class page_action extends tform_actions { - - - // Customisations for the page actions will be defined here - -} -$page = new page_action; -$page->onDelete(); - -?> diff --git a/interface/ispconfig/interface/admin/remote_user_edit.php b/interface/ispconfig/interface/admin/remote_user_edit.php deleted file mode 100644 index 5a3fc7000..000000000 --- a/interface/ispconfig/interface/admin/remote_user_edit.php +++ /dev/null @@ -1,43 +0,0 @@ -uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -// Create a class page_action that extends the tform_actions base class -class page_action extends tform_actions { - - //* Customisations for the page actions will be defined here - function onShow() { - global $app; - - // Translate the items, very bad trick... :( because the language file is not loaded yet when the form file gets parsed - foreach($app->tform->formDef["tabs"]['remote_user']['fields']['remote_functions']['value'] as $key => $val) { - $app->tform->formDef["tabs"]['remote_user']['fields']['remote_functions']['value'][$key] = $app->tform->lng($val).'
'; - } - - parent::onShow(); - } - -} - -// Create the new page object -$page = new page_action(); - -// Start the page rendering and action handling -$page->onLoad(); - -?> diff --git a/interface/ispconfig/interface/admin/remote_user_list.php b/interface/ispconfig/interface/admin/remote_user_list.php deleted file mode 100644 index 6976112af..000000000 --- a/interface/ispconfig/interface/admin/remote_user_list.php +++ /dev/null @@ -1,24 +0,0 @@ -uses('listform_actions'); - -// Optional limit -// $app->listform_actions->SQLExtWhere = 'type = 'alias''; - -// Start the form rendering and action ahndling -$app->listform_actions->onLoad(); - -?> diff --git a/interface/ispconfig/interface/admin/server_config_del.php b/interface/ispconfig/interface/admin/server_config_del.php deleted file mode 100644 index 8c0d0ab77..000000000 --- a/interface/ispconfig/interface/admin/server_config_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('admin'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/server_config_edit.php b/interface/ispconfig/interface/admin/server_config_edit.php deleted file mode 100644 index bb853b5e8..000000000 --- a/interface/ispconfig/interface/admin/server_config_edit.php +++ /dev/null @@ -1,95 +0,0 @@ -auth->check_module_permissions('admin'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowEdit() { - global $app, $conf; - - if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); - - if($app->tform->errorMessage == '') { - $app->uses('ini_parser,getconf'); - - $section = $this->active_tab; - $server_id = $this->id; - - $this->dataRecord = $app->getconf->get_server_config($server_id,$section); - } - - $record = $app->tform->getHTML($this->dataRecord, $this->active_tab,'EDIT'); - - $record['id'] = $this->id; - $app->tpl->setVar($record); - } - - function onUpdateSave($sql) { - global $app; - - if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); - $app->uses('ini_parser,getconf'); - - $section = $app->tform->getCurrentTab(); - $server_id = $this->id; - - $server_config_array = $app->getconf->get_server_config($server_id); - $server_config_array[$section] = $app->tform->encode($this->dataRecord,$section); - $server_config_str = $app->ini_parser->get_ini_string($server_config_array); - - $app->db->datalogUpdate('server', "config = '".$app->db->quote($server_config_str)."'", 'server_id', $server_id); - } - -} - -$app->tform_actions = new page_action; -$app->tform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/server_config_list.php b/interface/ispconfig/interface/admin/server_config_list.php deleted file mode 100644 index 5edfba4d4..000000000 --- a/interface/ispconfig/interface/admin/server_config_list.php +++ /dev/null @@ -1,53 +0,0 @@ -auth->check_module_permissions('admin'); - -$app->uses('listform_actions'); -//$app->listform_actions->SQLExtWhere = "wb = 'W'"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/server_del.php b/interface/ispconfig/interface/admin/server_del.php deleted file mode 100644 index 373bb7d40..000000000 --- a/interface/ispconfig/interface/admin/server_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('admin'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/server_edit.php b/interface/ispconfig/interface/admin/server_edit.php deleted file mode 100644 index 376b0f026..000000000 --- a/interface/ispconfig/interface/admin/server_edit.php +++ /dev/null @@ -1,86 +0,0 @@ -auth->check_module_permissions('admin'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowEnd() { - global $app, $conf; - - // Getting Servers - $sql = "SELECT server_id,server_name FROM server WHERE 1 ORDER BY server_name"; - $mirror_servers = $app->db->queryAllRecords($sql); - $mirror_server_select = ''; - if(is_array($mirror_servers)) { - foreach( $mirror_servers as $mirror_server) { - $selected = ($mirror_server["server_id"] == $this->dataRecord['mirror_server_id'])?'SELECTED':''; - $mirror_server_select .= "\r\n"; - } - } - $app->tpl->setVar("mirror_server_id",$mirror_server_select); - - parent::onShowEnd(); - } - - function onSubmit() { - global $app; - - //* We do not want to mirror the the server itself - if($this->id == $this->dataRecord['mirror_server_id']) $this->dataRecord['mirror_server_id'] = 0; - - parent::onSubmit(); - - } - -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/server_ip_del.php b/interface/ispconfig/interface/admin/server_ip_del.php deleted file mode 100644 index 38da1706c..000000000 --- a/interface/ispconfig/interface/admin/server_ip_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('admin'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/server_ip_edit.php b/interface/ispconfig/interface/admin/server_ip_edit.php deleted file mode 100644 index eee5b35a5..000000000 --- a/interface/ispconfig/interface/admin/server_ip_edit.php +++ /dev/null @@ -1,73 +0,0 @@ -auth->check_module_permissions('admin'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onBeforeUpdate() { - global $app, $conf; - - //* Check if the server has been changed - // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway - if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - $rec = $app->db->queryOneRecord("SELECT server_id from server_ip WHERE server_ip_id = ".$this->id); - if($rec['server_id'] != $this->dataRecord["server_id"]) { - //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The Server can not be changed.'); - $this->dataRecord["server_id"] = $rec['server_id']; - } - unset($rec); - } - } -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/server_ip_list.php b/interface/ispconfig/interface/admin/server_ip_list.php deleted file mode 100644 index 28c3f85cb..000000000 --- a/interface/ispconfig/interface/admin/server_ip_list.php +++ /dev/null @@ -1,54 +0,0 @@ -auth->check_module_permissions('admin'); - -$app->uses('listform_actions'); - -$app->listform_actions->SQLOrderBy = "ORDER BY server_id, ip_address"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/server_list.php b/interface/ispconfig/interface/admin/server_list.php deleted file mode 100644 index 458aee0ea..000000000 --- a/interface/ispconfig/interface/admin/server_list.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('admin'); - -$app->uses('listform_actions'); -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/software_package_list.php b/interface/ispconfig/interface/admin/software_package_list.php deleted file mode 100644 index a44463dd0..000000000 --- a/interface/ispconfig/interface/admin/software_package_list.php +++ /dev/null @@ -1,169 +0,0 @@ -auth->check_module_permissions('admin'); - -//* This is only allowed for administrators -if(!$app->auth->is_admin()) die('only allowed for administrators.'); - -//* Get the latest packages from the repositorys and insert them in the local database -$packages_added = 0; -$repos = $app->db->queryAllRecords("SELECT software_repo_id, repo_url, repo_username, repo_password FROM software_repo WHERE active = 'y'"); -if(is_array($repos)) { - foreach($repos as $repo) { - $client = new SoapClient(null, array('location' => $repo['repo_url'], - 'uri' => $repo['repo_url'])); - - $packages = $client->get_packages($repo['repo_username'], $repo['repo_password']); - if(is_array($packages)) { - foreach($packages as $p) { - $package_name = $app->db->quote($p['name']); - $tmp = $app->db->queryOneRecord("SELECT package_id FROM software_package WHERE package_name = '$package_name'"); - if(empty($tmp['package_id'])) { - - $package_title = $app->db->quote($p['title']); - $package_description = $app->db->quote($p['description']); - $software_repo_id = intval($repo['software_repo_id']); - $package_type = $app->db->quote($p['type']); - - $sql = "INSERT INTO software_package (software_repo_id, package_name, package_title, package_description,package_type) VALUES ($software_repo_id, '$package_name', '$package_title', '$package_description','$package_type')"; - $app->db->query($sql); - $packages_added++; - } - } - } - - $packages = $app->db->queryAllRecords("SELECT software_package.package_name, v1, v2, v3, v4 FROM software_package LEFT JOIN software_update ON ( software_package.package_name = software_update.package_name ) GROUP BY package_name ORDER BY v1 DESC , v2 DESC , v3 DESC , v4 DESC"); - if(is_array($packages)) { - foreach($packages as $p) { - - $version = $p['v1'].'.'.$p['v2'].'.'.$p['v3'].'.'.$p['v4']; - $updates = $client->get_updates($p['package_name'], $version,$repo['repo_username'], $repo['repo_password']); - - if(is_array($updates)) { - foreach($updates as $u) { - - $version_array = explode('.',$u['version']); - $v1 = intval($version_array[0]); - $v2 = intval($version_array[1]); - $v3 = intval($version_array[2]); - $v4 = intval($version_array[3]); - - $package_name = $app->db->quote($u['package_name']); - $software_repo_id = intval($repo['software_repo_id']); - $update_url = $app->db->quote($u['url']); - $update_md5 = $app->db->quote($u['md5']); - $update_dependencies = (isset($u['dependencies']))?$app->db->quote($u['dependencies']):''; - $update_title = $app->db->quote($u['title']); - $type = $app->db->quote($u['type']); - - // Check that we do not have this update in the database yet - $sql = "SELECT * FROM software_update WHERE package_name = '$package_name' and v1 = '$v1' and v2 = '$v2' and v3 = '$v3' and v4 = '$v4'"; - $tmp = $app->db->queryOneRecord($sql); - if(!isset($tmp['software_update_id'])) { - // Insert the update in the datbase - $sql = "INSERT INTO software_update (software_repo_id, package_name, update_url, update_md5, update_dependencies, update_title, v1, v2, v3, v4, type) - VALUES ($software_repo_id, '$package_name', '$update_url', '$update_md5', '$update_dependencies', '$update_title', '$v1', '$v2', '$v3', '$v4', '$type')"; - //die($sql); - $app->db->query($sql); - } - - } - } - } - } - } -} - -//* Install packages, if GET Request -if(isset($_GET['action']) && $_GET['action'] == 'install' && $_GET['package'] != '' && $_GET['server_id'] > 0) { - $package_name = $app->db->quote($_GET['package']); - $server_id = intval($_GET['server_id']); - $sql = "SELECT software_update_id, package_name, update_title FROM software_update WHERE type = 'full' AND package_name = '$package_name' ORDER BY v1 DESC, v2 DESC, v3 DESC, v4 DESC LIMIT 0,1"; - $tmp = $app->db->queryOneRecord($sql); - $software_update_id = $tmp['software_update_id']; - - $insert_data = "(package_name, server_id, software_update_id, status) VALUES ('$package_name', '$server_id', '$software_update_id','installing')"; - // $insert_data = "(package_name, server_id, software_update_id, status) VALUES ('$package_name', '$server_id', '$software_update_id','installed')"; - $app->db->datalogInsert('software_update_inst', $insert_data, 'software_update_inst_id'); - -} - - - -// Show the list in the interface -// Loading the template -$app->uses('tpl'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl','templates/software_package_list.htm'); - - -$servers = $app->db->queryAllRecords('SELECT server_id, server_name FROM server ORDER BY server_name'); -$packages = $app->db->queryAllRecords('SELECT * FROM software_package'); -if(is_array($packages)) { - foreach($packages as $key => $p) { - $installed_txt = ''; - foreach($servers as $s) { - $inst = $app->db->queryOneRecord("SELECT * FROM software_update, software_update_inst WHERE software_update_inst.software_update_id = software_update.software_update_id AND software_update_inst.package_name = '".addslashes($p["package_name"])."' AND server_id = '".$s["server_id"]."'"); - $version = $inst['v1'].'.'.$inst['v2'].'.'.$inst['v3'].'.'.$inst['v4']; - - if($inst['status'] == 'installed') { - $installed_txt .= $s['server_name'].": Installed version $version
"; - } elseif ($inst['status'] == 'installing') { - $installed_txt .= $s['server_name'].": Installation in progress
"; - } elseif ($inst['status'] == 'failed') { - $installed_txt .= $s['server_name'].": Installation failed
"; - } elseif ($inst['status'] == 'deleting') { - $installed_txt .= $s['server_name'].": Deletion in progress
"; - } else { - $installed_txt .= $s['server_name'].": Install now
"; - } - } - $packages[$key]['installed'] = $installed_txt; - } -} - - - -$app->tpl->setLoop('records',$packages); - -include_once('lib/lang/en_software_package_list.lng'); -$app->tpl->setVar($wb); - - -$app->tpl_defaults(); -$app->tpl->pparse(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/software_repo_del.php b/interface/ispconfig/interface/admin/software_repo_del.php deleted file mode 100644 index 6ee0e9d50..000000000 --- a/interface/ispconfig/interface/admin/software_repo_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('admin'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/software_repo_edit.php b/interface/ispconfig/interface/admin/software_repo_edit.php deleted file mode 100644 index 4839812d8..000000000 --- a/interface/ispconfig/interface/admin/software_repo_edit.php +++ /dev/null @@ -1,58 +0,0 @@ -auth->check_module_permissions('admin'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/software_repo_list.php b/interface/ispconfig/interface/admin/software_repo_list.php deleted file mode 100644 index 0f7bd8ac7..000000000 --- a/interface/ispconfig/interface/admin/software_repo_list.php +++ /dev/null @@ -1,52 +0,0 @@ -auth->check_module_permissions('admin'); - -$app->uses('listform_actions'); - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/software_update_list.php b/interface/ispconfig/interface/admin/software_update_list.php deleted file mode 100644 index 4c7da37e6..000000000 --- a/interface/ispconfig/interface/admin/software_update_list.php +++ /dev/null @@ -1,222 +0,0 @@ -auth->check_module_permissions('admin'); - -//* This is only allowed for administrators -if(!$app->auth->is_admin()) die('only allowed for administrators.'); - -//* Get the latest updates from the repositorys and insert them in the local database -$updates_added = 0; -$repos = $app->db->queryAllRecords("SELECT software_repo_id, repo_url, repo_username, repo_password FROM software_repo WHERE active = 'y'"); -if(is_array($repos)) { - foreach($repos as $repo) { - - /* - SELECT software_package.package_name, v1, v2, v3, v4 - FROM software_package - LEFT JOIN software_update ON ( software_package.package_name = software_update.package_name ) - LEFT JOIN software_update_inst ON ( software_update.software_update_id = software_update_inst.software_update_id ) - GROUP BY package_name - ORDER BY v1 DESC , v2 DESC , v3 DESC , v4 DESC - */ - - $client = new SoapClient(null, array('location' => $repo['repo_url'], - 'uri' => $repo['repo_url'])); - - $packages = $app->db->queryAllRecords("SELECT software_package.package_name, v1, v2, v3, v4 FROM software_package LEFT JOIN software_update ON ( software_package.package_name = software_update.package_name ) GROUP BY package_name ORDER BY v1 DESC , v2 DESC , v3 DESC , v4 DESC"); - if(is_array($packages)) { - foreach($packages as $p) { - - $version = $p['v1'].'.'.$p['v2'].'.'.$p['v3'].'.'.$p['v4']; - $updates = $client->get_updates($p['package_name'], $version,$repo['repo_username'], $repo['repo_password']); - - if(is_array($updates)) { - foreach($updates as $u) { - - $version_array = explode('.',$u['version']); - $v1 = intval($version_array[0]); - $v2 = intval($version_array[1]); - $v3 = intval($version_array[2]); - $v4 = intval($version_array[3]); - - $package_name = $app->db->quote($u['package_name']); - $software_repo_id = intval($repo['software_repo_id']); - $update_url = $app->db->quote($u['url']); - $update_md5 = $app->db->quote($u['md5']); - $update_dependencies = (isset($u['dependencies']))?$app->db->quote($u['dependencies']):''; - $update_title = $app->db->quote($u['title']); - $type = $app->db->quote($u['type']); - - // Check that we do not have this update in the database yet - $sql = "SELECT * FROM software_update WHERE package_name = '$package_name' and v1 = '$v1' and v2 = '$v2' and v3 = '$v3' and v4 = '$v4'"; - $tmp = $app->db->queryOneRecord($sql); - if(!isset($tmp['software_update_id'])) { - // Insert the update in the datbase - $sql = "INSERT INTO software_update (software_repo_id, package_name, update_url, update_md5, update_dependencies, update_title, v1, v2, v3, v4, type) - VALUES ($software_repo_id, '$package_name', '$update_url', '$update_md5', '$update_dependencies', '$update_title', '$v1', '$v2', '$v3', '$v4', '$type')"; - //die($sql); - $app->db->query($sql); - } - - } - } - } - } - } -} - - -//* Install packages, if GET Request -if(isset($_GET['action']) && $_GET['action'] == 'install' && $_GET['package'] != '' && $_GET['server_id'] > 0) { - $package_name = $app->db->quote($_GET['package']); - $server_id = intval($_GET['server_id']); - $software_update_id = intval($_GET['id']); - - $insert_data = "(package_name, server_id, software_update_id, status) VALUES ('$package_name', '$server_id', '$software_update_id','installing')"; - // $insert_data = "(package_name, server_id, software_update_id, status) VALUES ('$package_name', '$server_id', '$software_update_id','installed')"; - $app->db->datalogInsert('software_update_inst', $insert_data, 'software_update_inst_id'); - -} - - - -// Show the list in the interface -// Loading the template -$app->uses('tpl'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl','templates/software_update_list.htm'); - -/* -SELECT software_package.package_name, software_package.package_title, software_update.update_title, v1, v2, v3, v4, software_update_inst.status - FROM software_package - LEFT JOIN software_update ON ( software_package.package_name = software_update.package_name ) - LEFT JOIN software_update_inst ON ( software_update.software_update_id = software_update_inst.software_update_id ) -GROUP BY software_update.software_update_id - ORDER BY v1 DESC , v2 DESC , v3 DESC , v4 DESC -*/ - - - -if(isset($_POST["server_id"]) && $_POST["server_id"] > 0) { - $server_id = intval($_POST["server_id"]); -} else { - $server_id = 1; -} - -$servers = $app->db->queryAllRecords('SELECT server_id, server_name FROM server ORDER BY server_name'); -foreach($servers as $key => $server) { - if($server['server_id'] == $server_id) { - $servers[$key]['selected'] = 'selected'; - } else { - $servers[$key]['selected'] = ''; - } -} - -$app->tpl->setLoop('servers',$servers); - -$sql = "SELECT v1, v2, v3, v4, software_update.update_title, software_update.software_update_id, software_update.package_name, v1, v2, v3, v4, software_update_inst.status - FROM software_update LEFT JOIN software_update_inst ON ( software_update.software_update_id = software_update_inst.software_update_id ) - WHERE server_id = $server_id - GROUP BY software_update.package_name - ORDER BY software_update.package_name ASC, v1 DESC , v2 DESC , v3 DESC , v4 DESC"; - -$installed_packages = $app->db->queryAllRecords($sql); - - -$records_out = array(); - -if(is_array($installed_packages)) { - foreach($installed_packages as $ip) { - - // Get version number of the latest installed version - $sql = "SELECT v1, v2, v3, v4 FROM software_update, software_update_inst WHERE software_update.software_update_id = software_update_inst.software_update_id AND server_id = 1 ORDER BY v1 DESC , v2 DESC , v3 DESC , v4 DESC LIMIT 0,1"; - $lu = $app->db->queryOneRecord($sql); - - // Get all installable updates - $sql = "SELECT * FROM software_update WHERE v1 >= $lu[v1] AND v2 >= $lu[v2] AND v3 >= $lu[v3] AND v4 >= $lu[v4] AND package_name = '$ip[package_name]' ORDER BY v1 DESC , v2 DESC , v3 DESC , v4 DESC"; - $updates = $app->db->queryAllRecords($sql); - //die($sql); - - if(is_array($updates)) { - // Delete the last record as it is already installed - unset($updates[count($updates)-1]); - - foreach($updates as $key => $u) { - $version = $u['v1'].'.'.$u['v2'].'.'.$u['v3'].'.'.$u['v4']; - $installed_txt = "Install Update
"; - $records_out[] = array('version' => $version, 'update_title' => $u["update_title"], 'installed' => $installed_txt); - - } - } - } -} - -/* -$updates = $app->db->queryAllRecords('SELECT software_update.update_title, software_update.software_update_id, software_update.package_name, v1, v2, v3, v4, software_update_inst.status - FROM software_update LEFT JOIN software_update_inst ON ( software_update.software_update_id = software_update_inst.software_update_id ) - WHERE server_id = '.$server_id.' - GROUP BY software_update.package_name - ORDER BY software_update.package_name ASC, v1 DESC , v2 DESC , v3 DESC , v4 DESC'); - -if(is_array($updates)) { - foreach($updates as $key => $u) { - $installed_txt = ''; - - $version = $u['v1'].'.'.$u['v2'].'.'.$u['v3'].'.'.$u['v4']; - $updates[$key]['version'] = $version; - if($u['status'] == 'installed' || $u['status'] == 'installing' || $u['status'] == 'deleting') { - $installed_txt .= "Installed version $version
"; - } else { - $installed_txt .= "Install now
"; - } - $updates[$key]['installed'] = $installed_txt; - - } -} -*/ - - - -$app->tpl->setLoop('records',$records_out); - -include_once('lib/lang/en_software_update_list.lng'); -$app->tpl->setVar($wb); - - -$app->tpl_defaults(); -$app->tpl->pparse(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/system_config_edit.php b/interface/ispconfig/interface/admin/system_config_edit.php deleted file mode 100644 index 14b7fcbc0..000000000 --- a/interface/ispconfig/interface/admin/system_config_edit.php +++ /dev/null @@ -1,97 +0,0 @@ -auth->check_module_permissions('admin'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowEdit() { - global $app, $conf; - - if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); - - if($app->tform->errorMessage == '') { - $app->uses('ini_parser,getconf'); - - $section = $this->active_tab; - $server_id = $this->id; - - $this->dataRecord = $app->getconf->get_global_config($section); - - } - - $record = $app->tform->getHTML($this->dataRecord, $this->active_tab,'EDIT'); - - $record['warning'] = $app->tform->lng('warning'); - $record['id'] = $this->id; - $app->tpl->setVar($record); - } - - function onUpdateSave($sql) { - global $app; - - if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); - $app->uses('ini_parser,getconf'); - - $section = $app->tform->getCurrentTab(); - - $server_config_array = $app->getconf->get_global_config(); - $server_config_array[$section] = $app->tform->encode($this->dataRecord,$section); - $server_config_str = $app->ini_parser->get_ini_string($server_config_array); - - $sql = "UPDATE sys_ini SET config = '".$app->db->quote($server_config_str)."' WHERE sysini_id = 1"; - $app->db->query($sql); - } - -} - -$app->tform_actions = new page_action; -$app->tform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/templates/firewall_edit.htm b/interface/ispconfig/interface/admin/templates/firewall_edit.htm deleted file mode 100644 index 554f7d0a0..000000000 --- a/interface/ispconfig/interface/admin/templates/firewall_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -

-

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

{tmpl_var name='active_txt'}

-
- {tmpl_var name='active'} -
-
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/firewall_list.htm b/interface/ispconfig/interface/admin/templates/firewall_list.htm deleted file mode 100644 index 53228c8af..000000000 --- a/interface/ispconfig/interface/admin/templates/firewall_list.htm +++ /dev/null @@ -1,60 +0,0 @@ -

-

- -
- -
-
{tmpl_var name="toolsarea_head_txt"} -
- -
-
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
{tmpl_var name="active"}{tmpl_var name="server_id"}{tmpl_var name="tcp_port"}{tmpl_var name="udp_port"} - -
-
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/groups_edit.htm b/interface/ispconfig/interface/admin/templates/groups_edit.htm deleted file mode 100644 index 6a3434714..000000000 --- a/interface/ispconfig/interface/admin/templates/groups_edit.htm +++ /dev/null @@ -1,26 +0,0 @@ -

-

- -
- -
-
-
- - -
-
- - -
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/groups_list.htm b/interface/ispconfig/interface/admin/templates/groups_list.htm deleted file mode 100644 index 0ae6ccb75..000000000 --- a/interface/ispconfig/interface/admin/templates/groups_list.htm +++ /dev/null @@ -1,55 +0,0 @@ -

-

- -
- -
-
{tmpl_var name="toolsarea_head_txt"} -
- -

-
-
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
{tmpl_var name="name"}{tmpl_var name="description"} - -
-
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/language_add.htm b/interface/ispconfig/interface/admin/templates/language_add.htm deleted file mode 100644 index d2254c289..000000000 --- a/interface/ispconfig/interface/admin/templates/language_add.htm +++ /dev/null @@ -1,29 +0,0 @@ -

-

- -
- -
-
Language Add -
- - -
-
- - -

{tmpl_var name='language_new_hint_txt'}

-
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/language_complete.htm b/interface/ispconfig/interface/admin/templates/language_complete.htm deleted file mode 100644 index f3492bb6e..000000000 --- a/interface/ispconfig/interface/admin/templates/language_complete.htm +++ /dev/null @@ -1,29 +0,0 @@ -

-

- -
- - -
-
- -
-
- -
-
Language Complete -
- - -
-
- -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/language_edit.htm b/interface/ispconfig/interface/admin/templates/language_edit.htm deleted file mode 100644 index a0ef32ec7..000000000 --- a/interface/ispconfig/interface/admin/templates/language_edit.htm +++ /dev/null @@ -1,29 +0,0 @@ -

-

- -
- -
-
Language File Edit: {tmpl_var name="file_path"} - - - - - - - - -
- - - - - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/language_export.htm b/interface/ispconfig/interface/admin/templates/language_export.htm deleted file mode 100644 index 95c05208e..000000000 --- a/interface/ispconfig/interface/admin/templates/language_export.htm +++ /dev/null @@ -1,28 +0,0 @@ -

-

- -
- -
-
Language Export -
- - -
-
- - -

-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/language_import.htm b/interface/ispconfig/interface/admin/templates/language_import.htm deleted file mode 100644 index 70f44ce2f..000000000 --- a/interface/ispconfig/interface/admin/templates/language_import.htm +++ /dev/null @@ -1,41 +0,0 @@ -

-

- -
- -
-
Language Import -
- - -
-
-

{tmpl_var name='language_overwrite_txt'}

-
- -
-
-
-

{tmpl_var name='ignore_version_txt'}

-
- -
-
-
- - -

-
- -

ERROR

-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/language_list.htm b/interface/ispconfig/interface/admin/templates/language_list.htm deleted file mode 100644 index 9568bef10..000000000 --- a/interface/ispconfig/interface/admin/templates/language_list.htm +++ /dev/null @@ -1,47 +0,0 @@ -

-

- -
- -
-
Tools -
-
- - -
-
-
-
- - - -
diff --git a/interface/ispconfig/interface/admin/templates/remote_user_edit.htm b/interface/ispconfig/interface/admin/templates/remote_user_edit.htm deleted file mode 100644 index 5d2c4785c..000000000 --- a/interface/ispconfig/interface/admin/templates/remote_user_edit.htm +++ /dev/null @@ -1,41 +0,0 @@ -

-

- -
- -
-
-
- -
{tmpl_var name='username_prefix'}
- -
- -
- - -
-
-

{tmpl_var name='password_strength_txt'}

-
-

 

-
-
-

{tmpl_var name='function_txt'}

-
-   {tmpl_var name='remote_functions'} -
-
- -
- - - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/remote_user_list.htm b/interface/ispconfig/interface/admin/templates/remote_user_list.htm deleted file mode 100644 index 972581f73..000000000 --- a/interface/ispconfig/interface/admin/templates/remote_user_list.htm +++ /dev/null @@ -1,54 +0,0 @@ -

-

-
-
- -
- -
- -
- -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
{tmpl_var name="remote_userid"}{tmpl_var name="remote_username"} - -
-
-
- -
- diff --git a/interface/ispconfig/interface/admin/templates/server_config_cron_edit.htm b/interface/ispconfig/interface/admin/templates/server_config_cron_edit.htm deleted file mode 100644 index 066693ed8..000000000 --- a/interface/ispconfig/interface/admin/templates/server_config_cron_edit.htm +++ /dev/null @@ -1,30 +0,0 @@ -

-

- -
- -
-
-
- - -
-
- - -
-
- - -
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/server_config_dns_edit.htm b/interface/ispconfig/interface/admin/templates/server_config_dns_edit.htm deleted file mode 100644 index 63fae8a03..000000000 --- a/interface/ispconfig/interface/admin/templates/server_config_dns_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -

-

- -
- -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/server_config_fastcgi_edit.htm b/interface/ispconfig/interface/admin/templates/server_config_fastcgi_edit.htm deleted file mode 100644 index 8551d87ab..000000000 --- a/interface/ispconfig/interface/admin/templates/server_config_fastcgi_edit.htm +++ /dev/null @@ -1,46 +0,0 @@ -

-

- -
- -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/server_config_getmail_edit.htm b/interface/ispconfig/interface/admin/templates/server_config_getmail_edit.htm deleted file mode 100644 index fc86eb4ca..000000000 --- a/interface/ispconfig/interface/admin/templates/server_config_getmail_edit.htm +++ /dev/null @@ -1,22 +0,0 @@ -

-

- -
- -
-
-
- - -
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/server_config_jailkit_edit.htm b/interface/ispconfig/interface/admin/templates/server_config_jailkit_edit.htm deleted file mode 100644 index 320fb8754..000000000 --- a/interface/ispconfig/interface/admin/templates/server_config_jailkit_edit.htm +++ /dev/null @@ -1,34 +0,0 @@ -

-

- -
- -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/server_config_list.htm b/interface/ispconfig/interface/admin/templates/server_config_list.htm deleted file mode 100644 index 487a39708..000000000 --- a/interface/ispconfig/interface/admin/templates/server_config_list.htm +++ /dev/null @@ -1,40 +0,0 @@ -

-

- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
 
{tmpl_var name="server_name"} - -
-
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/server_config_mail_edit.htm b/interface/ispconfig/interface/admin/templates/server_config_mail_edit.htm deleted file mode 100644 index 4f35abcc9..000000000 --- a/interface/ispconfig/interface/admin/templates/server_config_mail_edit.htm +++ /dev/null @@ -1,84 +0,0 @@ -

-

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

{tmpl_var name='pop3_imap_daemon_txt'}

-
- -
-
-
-

{tmpl_var name='mail_filter_syntax_txt'}

-
- -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/server_config_server_edit.htm b/interface/ispconfig/interface/admin/templates/server_config_server_edit.htm deleted file mode 100644 index 361b2c7bd..000000000 --- a/interface/ispconfig/interface/admin/templates/server_config_server_edit.htm +++ /dev/null @@ -1,51 +0,0 @@ -

-

- -
- -
-
-
-

{tmpl_var name='auto_network_configuration_txt'}

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

{tmpl_var name='nameservers_hint_txt'}

-
-
- - -
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/server_config_vlogger_edit.htm b/interface/ispconfig/interface/admin/templates/server_config_vlogger_edit.htm deleted file mode 100644 index bf6a82ab3..000000000 --- a/interface/ispconfig/interface/admin/templates/server_config_vlogger_edit.htm +++ /dev/null @@ -1,22 +0,0 @@ -

-

- -
- -
-
-
- - -
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/server_config_web_edit.htm b/interface/ispconfig/interface/admin/templates/server_config_web_edit.htm deleted file mode 100644 index 6ab287b9f..000000000 --- a/interface/ispconfig/interface/admin/templates/server_config_web_edit.htm +++ /dev/null @@ -1,74 +0,0 @@ -

-

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

{tmpl_var name='security_level_txt'}

-
- -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/server_edit_config.htm b/interface/ispconfig/interface/admin/templates/server_edit_config.htm deleted file mode 100644 index 02f6ef34d..000000000 --- a/interface/ispconfig/interface/admin/templates/server_edit_config.htm +++ /dev/null @@ -1,22 +0,0 @@ -

-

- -
- -
-
-
- - -
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/server_edit_services.htm b/interface/ispconfig/interface/admin/templates/server_edit_services.htm deleted file mode 100644 index 470a10ef1..000000000 --- a/interface/ispconfig/interface/admin/templates/server_edit_services.htm +++ /dev/null @@ -1,70 +0,0 @@ -

-

- -
- -
-
-
- - -
-
-

{tmpl_var name='mail_server_txt'}

-
- {tmpl_var name='mail_server'} -
-
-
-

{tmpl_var name='web_server_txt'}

-
- {tmpl_var name='web_server'} -
-
-
-

{tmpl_var name='dns_server_txt'}

-
- {tmpl_var name='dns_server'} -
-
-
-

{tmpl_var name='file_server_txt'}

-
- {tmpl_var name='file_server'} -
-
-
-

{tmpl_var name='db_server_txt'}

-
- {tmpl_var name='db_server'} -
-
-
-

{tmpl_var name='vserver_server_txt'}

-
- {tmpl_var name='vserver_server'} -
-
-
- - -
-
- - -
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/server_ip_edit.htm b/interface/ispconfig/interface/admin/templates/server_ip_edit.htm deleted file mode 100644 index 1ebe8bd91..000000000 --- a/interface/ispconfig/interface/admin/templates/server_ip_edit.htm +++ /dev/null @@ -1,34 +0,0 @@ -

-

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

{tmpl_var name='virtualhost_txt'}

-
- {tmpl_var name='virtualhost'} -
-
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/server_ip_list.htm b/interface/ispconfig/interface/admin/templates/server_ip_list.htm deleted file mode 100644 index f35e84a06..000000000 --- a/interface/ispconfig/interface/admin/templates/server_ip_list.htm +++ /dev/null @@ -1,53 +0,0 @@ -

-

- -
- -
-
{tmpl_var name="toolsarea_head_txt"} -
- -
-
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
{tmpl_var name="server_id"}{tmpl_var name="ip_address"} - -
-
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/server_list.htm b/interface/ispconfig/interface/admin/templates/server_list.htm deleted file mode 100644 index acfa54140..000000000 --- a/interface/ispconfig/interface/admin/templates/server_list.htm +++ /dev/null @@ -1,58 +0,0 @@ -

-

- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
{tmpl_var name="server_name"}{tmpl_var name="mail_server"}{tmpl_var name="web_server"}{tmpl_var name="dns_server"}{tmpl_var name="file_server"}{tmpl_var name="db_server"}{tmpl_var name="vserver_server"} - -
-
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/software_package_list.htm b/interface/ispconfig/interface/admin/templates/software_package_list.htm deleted file mode 100644 index dd465ac6b..000000000 --- a/interface/ispconfig/interface/admin/templates/software_package_list.htm +++ /dev/null @@ -1,34 +0,0 @@ -

-

- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - -
{tmpl_var name="installed"}{tmpl_var name="package_title"}{tmpl_var name="package_description"}
-
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/software_repo_edit.htm b/interface/ispconfig/interface/admin/templates/software_repo_edit.htm deleted file mode 100644 index af335ecf5..000000000 --- a/interface/ispconfig/interface/admin/templates/software_repo_edit.htm +++ /dev/null @@ -1,40 +0,0 @@ -

-

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

{tmpl_var name='active_txt'}

-
- {tmpl_var name='active'} -
-
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/software_repo_list.htm b/interface/ispconfig/interface/admin/templates/software_repo_list.htm deleted file mode 100644 index 05adca9d9..000000000 --- a/interface/ispconfig/interface/admin/templates/software_repo_list.htm +++ /dev/null @@ -1,56 +0,0 @@ -

-

- -
- -
-
{tmpl_var name="toolsarea_head_txt"} -
- -
-
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
{tmpl_var name="active"}{tmpl_var name="repo_name"}{tmpl_var name="repo_url"} - -
-
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/software_update_list.htm b/interface/ispconfig/interface/admin/templates/software_update_list.htm deleted file mode 100644 index 10a0acf12..000000000 --- a/interface/ispconfig/interface/admin/templates/software_update_list.htm +++ /dev/null @@ -1,49 +0,0 @@ -

-

- -
- -
-
Tools -
-
- - -
-
-
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - -
{tmpl_var name="installed"}{tmpl_var name="update_title"}{tmpl_var name="version"}
-
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/system_config_mail_edit.htm b/interface/ispconfig/interface/admin/templates/system_config_mail_edit.htm deleted file mode 100644 index b905e2d08..000000000 --- a/interface/ispconfig/interface/admin/templates/system_config_mail_edit.htm +++ /dev/null @@ -1,28 +0,0 @@ -

-

- -
- -
-
-
-

{tmpl_var name='mailboxlist_webmail_link_txt'}

-
- {tmpl_var name='mailboxlist_webmail_link'} -
-
-
- - -
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/system_config_sites_edit.htm b/interface/ispconfig/interface/admin/templates/system_config_sites_edit.htm deleted file mode 100644 index c81977652..000000000 --- a/interface/ispconfig/interface/admin/templates/system_config_sites_edit.htm +++ /dev/null @@ -1,44 +0,0 @@ -

-

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

{tmpl_var name='dblist_phpmyadmin_link_txt'}

-
- {tmpl_var name='dblist_phpmyadmin_link'} -
-
-
- - -
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/users_groups_edit.htm b/interface/ispconfig/interface/admin/templates/users_groups_edit.htm deleted file mode 100644 index 004c7dbd6..000000000 --- a/interface/ispconfig/interface/admin/templates/users_groups_edit.htm +++ /dev/null @@ -1,30 +0,0 @@ -

-

- -
- -
-
-
- - -
-
-

{tmpl_var name='groups_txt'}

-
- {tmpl_var name='groups'} -
-
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/users_list.htm b/interface/ispconfig/interface/admin/templates/users_list.htm deleted file mode 100644 index 6634201a7..000000000 --- a/interface/ispconfig/interface/admin/templates/users_list.htm +++ /dev/null @@ -1,61 +0,0 @@ -

-

- -
- -
-
{tmpl_var name="toolsarea_head_txt"} -
- -

-
-
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
{tmpl_var name="username"}{tmpl_var name="vorname"}{tmpl_var name="name"}{tmpl_var name="ort"} - -
-
-
- -
diff --git a/interface/ispconfig/interface/admin/templates/users_user_edit.htm b/interface/ispconfig/interface/admin/templates/users_user_edit.htm deleted file mode 100644 index ce0017823..000000000 --- a/interface/ispconfig/interface/admin/templates/users_user_edit.htm +++ /dev/null @@ -1,67 +0,0 @@ -

-

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

{tmpl_var name='password_strength_txt'}

-
-

 

-
-
-

{tmpl_var name='modules_txt'}

-
- {tmpl_var name='modules'} -
-
-
- - -
-
-

{tmpl_var name='app_theme_txt'}

-
- {tmpl_var name='app_theme'} -
-
-
-

{tmpl_var name='typ_txt'}

-
- {tmpl_var name='typ'} -
-
-
-

{tmpl_var name='active_txt'}

-
- {tmpl_var name='active'} -
-
-
- - -
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/admin/users_del.php b/interface/ispconfig/interface/admin/users_del.php deleted file mode 100644 index 97c3154c8..000000000 --- a/interface/ispconfig/interface/admin/users_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('admin'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/users_edit.php b/interface/ispconfig/interface/admin/users_edit.php deleted file mode 100644 index 4344e3c95..000000000 --- a/interface/ispconfig/interface/admin/users_edit.php +++ /dev/null @@ -1,74 +0,0 @@ -auth->check_module_permissions('admin'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onBeforeInsert() { - global $app, $conf; - - if(!in_array($this->dataRecord['startmodule'],$this->dataRecord['modules'])) { - $app->tform->errorMessage .= $app->tform->wordbook['startmodule_err']; - } - } - - function onBeforeUpdate() { - global $app, $conf; - - if(@is_array($this->dataRecord['modules']) && !in_array($this->dataRecord['startmodule'],$this->dataRecord['modules'])) { - $app->tform->errorMessage .= $app->tform->wordbook['startmodule_err']; - } - } - -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/admin/users_list.php b/interface/ispconfig/interface/admin/users_list.php deleted file mode 100644 index d2e2c8675..000000000 --- a/interface/ispconfig/interface/admin/users_list.php +++ /dev/null @@ -1,52 +0,0 @@ -auth->check_module_permissions('admin'); - -$app->uses('listform_actions'); -$app->listform_actions->SQLOrderBy = 'ORDER BY username'; -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/capp.php b/interface/ispconfig/interface/capp.php deleted file mode 100644 index 354652ce3..000000000 --- a/interface/ispconfig/interface/capp.php +++ /dev/null @@ -1,56 +0,0 @@ -error($app->lng(301)); - -// lade Moduldaten in Session -if(is_file($mod."/lib/module.conf.php")) { - include_once($mod."/lib/module.conf.php"); - $_SESSION["s"]["module"] = $module; - echo "HEADER_REDIRECT:".$_SESSION["s"]["module"]["startpage"]; -} else { - $app->error($app->lng(302)); -} -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/client/client_del.php b/interface/ispconfig/interface/client/client_del.php deleted file mode 100644 index db1790c06..000000000 --- a/interface/ispconfig/interface/client/client_del.php +++ /dev/null @@ -1,166 +0,0 @@ -auth->check_module_permissions('client'); - -$app->uses('tpl,tform'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onDelete() { - global $app, $conf,$list_def_file,$tform_def_file; - - if($_POST["confirm"] == 'yes') { - parent::onDelete(); - } else { - - $app->uses('tpl'); - $app->tpl->newTemplate("form.tpl.htm"); - $app->tpl->setInclude('content_tpl', 'templates/client_del.htm'); - - include_once($list_def_file); - - // Loading tform framework - if(!is_object($app->tform)) $app->uses('tform'); - - // Load table definition from file - $app->tform->loadFormDef($tform_def_file); - - $this->id = intval($_REQUEST["id"]); - - $this->dataRecord = $app->tform->getDataRecord($this->id); - $client_id = intval($this->dataRecord['client_id']); - //$parent_client_id = intval($this->dataRecord['parent_client_id']); - //$parent_user = $app->db->queryOneRecord("SELECT userid FROM sys_user WHERE client_id = $parent_client_id"); - $client_group = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = $client_id"); - - // Get all records (sub-clients, mail, web, etc....) of this client. - $tables = 'client,dns_rr,dns_soa,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_domain,web_traffic'; - $tables_array = explode(',',$tables); - $client_group_id = intval($client_group['groupid']); - $table_list = array(); - if($client_group_id > 1) { - foreach($tables_array as $table) { - if($table != '') { - $records = $app->db->queryAllRecords("SELECT * FROM $table WHERE sys_groupid = ".$client_group_id); - $number = count($records); - if($number > 0) $table_list[] = array('table' => $table."(".$number.")"); - } - } - } - - $app->tpl->setVar('id',$this->id); - $app->tpl->setLoop('records', $table_list); - - //* load language file - $lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_client_del.lng'; - include($lng_file); - $app->tpl->setVar($wb); - - $app->tpl_defaults(); - $app->tpl->pparse(); - } - } - - - - - function onAfterDelete() { - global $app, $conf; - - $client_id = intval($this->dataRecord['client_id']); - - if($client_id > 0) { - // remove the group of the client from the resellers group - $parent_client_id = intval($this->dataRecord['parent_client_id']); - $parent_user = $app->db->queryOneRecord("SELECT userid FROM sys_user WHERE client_id = $parent_client_id"); - $client_group = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = $client_id"); - $app->auth->remove_group_from_user($parent_user['userid'],$client_group['groupid']); - - // delete the group of the client - $app->db->query("DELETE FROM sys_group WHERE client_id = $client_id"); - - // delete the sys user(s) of the client - $app->db->query("DELETE FROM sys_user WHERE client_id = $client_id"); - - // Delete all records (sub-clients, mail, web, etc....) of this client. - $tables = 'client,dns_rr,dns_soa,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_domain,web_traffic'; - $tables_array = explode(',',$tables); - $client_group_id = intval($client_group['groupid']); - if($client_group_id > 1) { - foreach($tables_array as $table) { - if($table != '') { - $records = $app->db->queryAllRecords("SELECT * FROM $table WHERE sys_groupid = ".$client_group_id); - // find the primary ID of the table - $table_info = $app->db->tableInfo($table); - $index_field = ''; - foreach($table_info as $tmp) { - if($tmp['option'] == 'primary') $index_field = $tmp['name']; - } - // Delete the records - if($index_field != '') { - if(is_array($records)) { - foreach($records as $rec) { - $app->db->datalogDelete($table, $index_field, $rec[$index_field]); - } - } - } - - } - } - } - - - - } - - } -} - -$page = new page_action; -$page->onDelete() - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/client/client_edit.php b/interface/ispconfig/interface/client/client_edit.php deleted file mode 100644 index 9073ec9c2..000000000 --- a/interface/ispconfig/interface/client/client_edit.php +++ /dev/null @@ -1,228 +0,0 @@ -auth->check_module_permissions('client'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_client FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another website. - if($client["limit_client"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(client_id) as number FROM client WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_client"]) { - $app->error($app->tform->wordbook["limit_client_txt"]); - } - } - } - - parent::onShowNew(); - } - - - function onSubmit() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user' && $this->id == 0) { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_client FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another website. - if($client["limit_client"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(client_id) as number FROM client WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_client"]) { - $app->error($app->tform->wordbook["limit_client_txt"]); - } - } - } - - parent::onSubmit(); - } - - - function onShowEnd() { - - global $app; - - $sql = "SELECT template_id,template_name FROM client_template WHERE template_type = 'a'"; - $tpls = $app->db->queryAllRecords($sql); - $option = ''; - $tpl = array(); - foreach($tpls as $item){ - $option .= ''; - $tpl[$item['template_id']] = $item['template_name']; - } - $app->tpl->setVar('tpl_add_select',$option); - - $sql = "SELECT template_additional FROM client WHERE client_id = " . $this->id; - $result = $app->db->queryOneRecord($sql); - $tplAdd = explode("/", $result['template_additional']); - $text = ''; - foreach($tplAdd as $item){ - if (trim($item) != ''){ - if ($text != '') $text .= '
'; - $text .= $tpl[$item]; - } - } - - $app->tpl->setVar('template_additional_list', $text); - - parent::onShowEnd(); - - } - - /* - This function is called automatically right after - the data was successful inserted in the database. - */ - function onAfterInsert() { - global $app; - // Create the group for the client - $groupid = $app->db->datalogInsert('sys_group', "(name,description,client_id) VALUES ('".mysql_real_escape_string($this->dataRecord["username"])."','',".$this->id.")", 'groupid'); - $groups = $groupid; - - $username = $app->db->quote($this->dataRecord["username"]); - $password = $app->db->quote($this->dataRecord["password"]); - $modules = ISPC_INTERFACE_MODULES_ENABLED; - if($this->dataRecord["limit_client"] > 0) $modules .= ',client'; - $startmodule = 'mail'; - $usertheme = $app->db->quote($this->dataRecord["usertheme"]); - $type = 'user'; - $active = 1; - $language = $app->db->quote($this->dataRecord["language"]); - - // Create the controlpaneluser for the client - $sql = "INSERT INTO sys_user (username,passwort,modules,startmodule,app_theme,typ,active,language,groups,default_group,client_id) - VALUES ('$username',md5('$password'),'$modules','$startmodule','$usertheme','$type','$active','$language',$groups,$groupid,".$this->id.")"; - $app->db->query($sql); - - //* If the user who inserted the client is a reseller (not admin), we will have to add this new client group - //* to his groups, so he can administrate the records of this client. - if($_SESSION['s']['user']['typ'] == 'user') { - $app->auth->add_group_to_user($_SESSION['s']['user']['userid'],$groupid); - $app->db->query("UPDATE client SET parent_client_id = ".intval($_SESSION['s']['user']['client_id'])." WHERE client_id = ".$this->id); - } - - $app->db->query("UPDATE client SET created_at = ".time()." WHERE client_id = ".$this->id); - - /* If there is a client-template, process it */ - applyClientTemplates($this->id); - - parent::onAfterInsert(); - } - - - /* - This function is called automatically right after - the data was successful updated in the database. - */ - function onAfterUpdate() { - global $app; - - // username changed - if(isset($this->dataRecord['username']) && $this->dataRecord['username'] != '' && $this->oldDataRecord['username'] != $this->dataRecord['username']) { - $username = $app->db->quote($this->dataRecord["username"]); - $client_id = $this->id; - $sql = "UPDATE sys_user SET username = '$username' WHERE client_id = $client_id"; - $app->db->query($sql); - - $tmp = $app->db->queryOneRecord("SELECT * FROM sys_group WHERE client_id = $client_id"); - $app->db->datalogUpdate("sys_group", "name = '$username'", 'groupid', $tmp['groupid']); - unset($tmp); - } - - // password changed - if(isset($this->dataRecord["password"]) && $this->dataRecord["password"] != '') { - $password = $app->db->quote($this->dataRecord["password"]); - $client_id = $this->id; - $sql = "UPDATE sys_user SET passwort = md5('$password') WHERE client_id = $client_id"; - $app->db->query($sql); - } - - // language changed - if(isset($this->dataRecord['language']) && $this->dataRecord['language'] != '' && $this->oldDataRecord['language'] != $this->dataRecord['language']) { - $language = $app->db->quote($this->dataRecord["language"]); - $client_id = $this->id; - $sql = "UPDATE sys_user SET language = '$language' WHERE client_id = $client_id"; - $app->db->query($sql); - } - - // reseller status changed - if(isset($this->dataRecord["limit_client"]) && $this->dataRecord["limit_client"] != $this->oldDataRecord["limit_client"]) { - $modules = ISPC_INTERFACE_MODULES_ENABLED; - if($this->dataRecord["limit_client"] > 0) $modules .= ',client'; - $modules = $app->db->quote($modules); - $client_id = $this->id; - $sql = "UPDATE sys_user SET modules = '$modules' WHERE client_id = $client_id"; - $app->db->query($sql); - } - /* - * If there is a client-template, process it */ - applyClientTemplates($this->id); - - parent::onAfterUpdate(); - } -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/client/client_list.php b/interface/ispconfig/interface/client/client_list.php deleted file mode 100644 index dd98e29a1..000000000 --- a/interface/ispconfig/interface/client/client_list.php +++ /dev/null @@ -1,25 +0,0 @@ -auth->check_module_permissions('client'); - -$app->uses('listform_actions'); - -$app->listform_actions->SQLOrderBy = 'ORDER BY company_name, contact_name, client_id'; -$app->listform_actions->SQLExtWhere = "limit_client = 0"; -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/client/client_template_del.php b/interface/ispconfig/interface/client/client_template_del.php deleted file mode 100644 index 6d8e8348f..000000000 --- a/interface/ispconfig/interface/client/client_template_del.php +++ /dev/null @@ -1,67 +0,0 @@ -auth->check_module_permissions('client'); -if(!$_SESSION["s"]["user"]["typ"] == 'admin') die('Client-Templates are for Admins only.'); - -$app->uses('tpl,tform'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - function onBeforeDelete() { - global $app; - - $rec = $app->db->queryOneRecord("SELECT count(client_id) as number FROM client WHERE template_master = ".$this->id." OR template_additional like '%/".$this->id."/%'"); - if($rec['number'] > 0) { - $app->error($app->tform->lng('template_del_aborted_txt')); - } - - } -} - -$page = new page_action; -$page->onDelete() - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/client/client_template_edit.php b/interface/ispconfig/interface/client/client_template_edit.php deleted file mode 100644 index f032ded7c..000000000 --- a/interface/ispconfig/interface/client/client_template_edit.php +++ /dev/null @@ -1,97 +0,0 @@ -auth->check_module_permissions('client'); -if(!$_SESSION["s"]["user"]["typ"] == 'admin') die('Client-Templates are only for Admins.'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onBeforeUpdate() { - global $app; - - if(isset($this->dataRecord['template_type'])) { - //* Check if the template_type has been changed - $rec = $app->db->queryOneRecord("SELECT template_type from client_template WHERE template_id = ".$this->id); - if($rec['template_type'] != $this->dataRecord['template_type']) { - //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The template type can not be changed.'); - $this->dataRecord['template_type'] = $rec['template_type']; - } - unset($rec); - } - } - - - /* - This function is called automatically right after - the data was successful updated in the database. - */ - function onAfterUpdate() { - global $app; - - /* - * the template has changed. apply the new data to all clients - */ - if ($this->dataRecord["template_type"] == 'm'){ - $sql = "SELECT client_id FROM client WHERE template_master = " . $this->id; - } else { - $sql = "SELECT client_id FROM client WHERE template_additional LIKE '%/" . $this->id . '/%"'; - } - $clients = $app->db->queryAllRecords($sql); - if (is_array($clients)){ - foreach ($clients as $client){ - applyClientTemplates($client['client_id']); - } - } - } -} - -$page = new page_action; -$page->onLoad(); -?> diff --git a/interface/ispconfig/interface/client/client_template_list.php b/interface/ispconfig/interface/client/client_template_list.php deleted file mode 100644 index d9a916374..000000000 --- a/interface/ispconfig/interface/client/client_template_list.php +++ /dev/null @@ -1,21 +0,0 @@ -auth->check_module_permissions('client'); -if(!$_SESSION["s"]["user"]["typ"] == 'admin') die('Client-Templates are only for Admins.'); - -$app->uses('listform_actions'); -$app->listform_actions->onLoad(); -?> diff --git a/interface/ispconfig/interface/client/form/client.tform.php b/interface/ispconfig/interface/client/form/client.tform.php deleted file mode 100644 index 01f616e53..000000000 --- a/interface/ispconfig/interface/client/form/client.tform.php +++ /dev/null @@ -1,785 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -//* Languages -$language_list = array(); -$handle = @opendir(ISPC_ROOT_PATH.'/lib/lang'); -while ($file = @readdir ($handle)) { - if ($file != '.' && $file != '..') { - if(@is_file(ISPC_ROOT_PATH.'/lib/lang/'.$file) and substr($file,-4,4) == '.lng') { - $tmp = substr($file, 0, 2); - $language_list[$tmp] = $tmp; - } - } -} - -//* Load themes -$themes_list = array(); -$handle = @opendir(ISPC_THEMES_PATH); -while ($file = @readdir ($handle)) { - if (substr($file, 0, 1) != '.') { - if(@is_dir(ISPC_THEMES_PATH."/$file")) { - $themes_list[$file] = $file; - } - } -} - -$form["tabs"]['address'] = array ( - 'title' => "Address", - 'width' => 100, - 'template' => "templates/client_edit_address.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'company_name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'contact_name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'contact_error_empty'), - ), - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'username' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'username_error_empty'), - 1 => array ( 'type' => 'CUSTOM', - 'class' => 'validate_client', - 'function' => 'username_unique', - 'errmsg'=> 'username_error_unique'), - 2 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-\_]{0,64}$/', - 'errmsg'=> 'username_error_regex'), - ), - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'password' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'PASSWORD', - 'encryption'=> 'CRYPT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'language' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => $conf["language"], - 'value' => $language_list, - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'usertheme' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'default', - 'value' => $themes_list, - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'street' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'zip' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'city' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'state' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'country' => array ( - 'datatype' => 'VARCHAR', - - 'formtype' => 'SELECT', - 'default' => 'DE', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT iso,printable_name FROM country ORDER BY printable_name', - 'keyfield'=> 'iso', - 'valuefield'=> 'printable_name' - ), - 'value' => '' - ), - 'telephone' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'mobile' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'fax' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'email' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'internet' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'http://', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'icq' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'notes' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'TEXTAREA', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '', - 'maxlength' => '', - 'rows' => '10', - 'cols' => '30' - ), - ################################## - # END Datatable fields - ################################## - ) -); - -$form["tabs"]['limits'] = array ( - 'title' => "Limits", - 'width' => 80, - 'template' => "templates/client_edit_limits.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'template_master' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'datasource' => array ( 'type' => 'CUSTOM', - 'class'=> 'custom_datasource', - 'function'=> 'master_templates' - ), - 'value' => '' - ), - 'template_additional' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - ), - 'default_mailserver' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'datasource' => array ( 'type' => 'CUSTOM', - 'class'=> 'custom_datasource', - 'function'=> 'client_servers' - ), - 'value' => '', - 'name' => 'default_mailserver' - ), - 'limit_maildomain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_maildomain_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailbox' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailbox_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailalias' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailalias_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailaliasdomain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailaliasdomain_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailforward' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailforward_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailcatchall' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailcatchall_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailrouting' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailrouting_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailfilter' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailfilter_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_fetchmail' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailfetchmail_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailquota' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailquota_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_spamfilter_wblist' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_spamfilter_wblist_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_spamfilter_user' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_spamfilter_user_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_spamfilter_policy' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_spamfilter_policy_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'default_webserver' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'datasource' => array ( 'type' => 'CUSTOM', - 'class'=> 'custom_datasource', - 'function'=> 'client_servers' - ), - 'value' => '', - 'name' => 'default_webserver' - ), - 'limit_web_domain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_domain_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_web_quota' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_quota_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'web_php_options' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOXARRAY', - 'default' => '', - 'separator' => ',', - 'valuelimit' => 'client:web_php_options', - 'value' => array('no' => 'Disabled', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP') - ), - 'limit_web_aliasdomain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_aliasdomain_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_web_subdomain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_subdomain_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_ftp_user' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_ftp_user_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_shell_user' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_shell_user_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'ssh_chroot' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOXARRAY', - 'default' => '', - 'separator' => ',', - 'valuelimit' => 'client:ssh_chroot', - 'value' => array('no' => 'None', 'jailkit' => 'Jailkit') - ), - 'default_dnsserver' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'datasource' => array ( 'type' => 'CUSTOM', - 'class'=> 'custom_datasource', - 'function'=> 'client_servers' - ), - 'value' => '', - 'name' => 'default_dnsserver' - ), - 'limit_dns_zone' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_dns_zone_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_dns_record' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_dns_record_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_client' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_client_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'default_dbserver' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'datasource' => array ( 'type' => 'CUSTOM', - 'class'=> 'custom_datasource', - 'function'=> 'client_servers' - ), - 'value' => '', - 'name' => 'default_dbserver' - ), - 'limit_database' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_database_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_cron' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_cron_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_cron_type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('full' => 'Full Cron','chrooted' => 'Chrooted Cron','url' => 'URL Cron') - ), - 'limit_cron_frequency' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_cron_error_frequency'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_traffic_quota' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_traffic_quota_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - ################################## - # END Datatable fields - ################################## - ) -); - -/* -$form["tabs"]['ipaddress'] = array ( - 'title' => "IP Addresses", - 'width' => 100, - 'template' => "templates/client_edit_ipaddress.htm", - 'fields' => array ( - ################################## - # Beginn Datatable fields - ################################## - 'ip_address' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'CHECKBOXARRAY', - 'default' => '', - 'value' => array('192.168.0.1' => '192.168.0.1', '192.168.0.2' => '192.168.0.2'), - 'separator' => ';' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); -*/ - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/client/form/client_template.tform.php b/interface/ispconfig/interface/client/form/client_template.tform.php deleted file mode 100644 index d1db4bae0..000000000 --- a/interface/ispconfig/interface/client/form/client_template.tform.php +++ /dev/null @@ -1,482 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -//* Languages -$language_list = array(); -$handle = @opendir(ISPC_ROOT_PATH.'/lib/lang'); -while ($file = @readdir ($handle)) { - if ($file != '.' && $file != '..') { - if(@is_file(ISPC_ROOT_PATH.'/lib/lang/'.$file) and substr($file,-4,4) == '.lng') { - $tmp = substr($file, 0, 2); - $language_list[$tmp] = $tmp; - } - } -} - -$form["tabs"]['template'] = array ( - 'title' => "Template", - 'width' => 80, - 'template' => "templates/client_template_edit_template.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'template_type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'm', - 'value' => array('m' => "Main Template",'a' => "Additional Template"), - ), - 'template_name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'error_template_name_empty'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - ################################## - # END Datatable fields - ################################## - ) -); - -$form["tabs"]['limits'] = array ( - 'title' => "Limits", - 'width' => 80, - 'template' => "templates/client_template_edit_limits.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'limit_maildomain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_maildomain_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailbox' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailbox_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailalias' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailalias_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailaliasdomain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailaliasdomain_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailforward' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailforward_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailcatchall' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailcatchall_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailrouting' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailrouting_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailfilter' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailfilter_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_fetchmail' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailfetchmail_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailquota' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailquota_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_spamfilter_wblist' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_spamfilter_wblist_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_spamfilter_user' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_spamfilter_user_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_spamfilter_policy' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_spamfilter_policy_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_web_domain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_domain_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_web_quota' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_quota_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_web_aliasdomain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_aliasdomain_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_web_subdomain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_subdomain_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_ftp_user' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_ftp_user_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_shell_user' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_shell_user_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_dns_zone' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_dns_zone_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_dns_record' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_dns_record_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - /* - 'limit_client' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_client_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - */ - 'limit_database' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_database_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_cron' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_cron_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_cron_type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('full' => 'Full Cron','chrooted' => 'Chrooted Cron','url' => 'URL Cron') - ), - 'limit_cron_frequency' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_cron_error_frequency'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_traffic_quota' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_traffic_quota_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - ################################## - # END Datatable fields - ################################## - ) -); - -?> diff --git a/interface/ispconfig/interface/client/form/reseller.tform.php b/interface/ispconfig/interface/client/form/reseller.tform.php deleted file mode 100644 index a987a9f98..000000000 --- a/interface/ispconfig/interface/client/form/reseller.tform.php +++ /dev/null @@ -1,761 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -//* Languages -$language_list = array(); -$handle = @opendir(ISPC_ROOT_PATH.'/lib/lang'); -while ($file = @readdir ($handle)) { - if ($file != '.' && $file != '..') { - if(@is_file(ISPC_ROOT_PATH.'/lib/lang/'.$file) and substr($file,-4,4) == '.lng') { - $tmp = substr($file, 0, 2); - $language_list[$tmp] = $tmp; - } - } -} - -$form["tabs"]['address'] = array ( - 'title' => "Address", - 'width' => 100, - 'template' => "templates/reseller_edit_address.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'company_name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'contact_name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'contact_error_empty'), - ), - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'username' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'username_error_empty'), - 1 => array ( 'type' => 'CUSTOM', - 'class' => 'validate_client', - 'function' => 'username_unique', - 'errmsg'=> 'username_error_unique'), - 2 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-\_]{0,64}$/', - 'errmsg'=> 'username_error_regex'), - ), - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'password' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'PASSWORD', - 'encryption'=> 'CRYPT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'language' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => $conf["language"], - 'value' => $language_list, - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'usertheme' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'default', - 'value' => array('default' => 'default'), - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'street' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'zip' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'city' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'state' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'country' => array ( - 'datatype' => 'VARCHAR', - - 'formtype' => 'SELECT', - 'default' => 'DE', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT iso,printable_name FROM country ORDER BY printable_name', - 'keyfield'=> 'iso', - 'valuefield'=> 'printable_name' - ), - 'value' => '' - ), - 'telephone' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'mobile' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'fax' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'email' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'internet' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'http://', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'icq' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'notes' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'TEXTAREA', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '', - 'maxlength' => '', - 'rows' => '10', - 'cols' => '30' - ), - ################################## - # END Datatable fields - ################################## - ) -); - -$form["tabs"]['limits'] = array ( - 'title' => "Limits", - 'width' => 80, - 'template' => "templates/reseller_edit_limits.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'template_master' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'datasource' => array ( 'type' => 'CUSTOM', - 'class'=> 'custom_datasource', - 'function'=> 'master_templates' - ), - 'value' => '' - ), - 'template_additional' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - ), - 'default_mailserver' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE mail_server = 1 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'limit_maildomain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_maildomain_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailbox' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailbox_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailalias' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailalias_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailforward' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailforward_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailcatchall' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailcatchall_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailrouting' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailrouting_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailfilter' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailfilter_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_fetchmail' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailfetchmail_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_mailquota' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_mailquota_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_spamfilter_wblist' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_spamfilter_wblist_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_spamfilter_user' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_spamfilter_user_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_spamfilter_policy' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_spamfilter_policy_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'default_webserver' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE web_server = 1 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'limit_web_domain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_domain_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_web_quota' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_quota_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'web_php_options' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOXARRAY', - 'default' => '', - 'separator' => ',', - 'value' => array('no' => 'Disabled', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP') - ), - 'limit_web_aliasdomain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_aliasdomain_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_web_subdomain' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_web_subdomain_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_ftp_user' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_ftp_user_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_shell_user' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_shell_user_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'ssh_chroot' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOXARRAY', - 'default' => '', - 'separator' => ',', - 'value' => array('no' => 'None', 'jailkit' => 'Jailkit') - ), - 'default_dnsserver' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE dns_server = 1 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'limit_dns_zone' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_dns_zone_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_dns_record' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_dns_record_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_client' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_client_error_notint'), - 1 => array ( 'type' => 'CUSTOM', - 'class' => 'validate_reseller', - 'function' => 'limit_client'), - ), - 'default' => '1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'default_dbserver' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE db_server = 1 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'limit_database' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_database_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_cron' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_cron_error_notint'), - ), - 'default' => '0', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_cron_type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('full' => 'Full Cron','chrooted' => 'Chrooted Cron','url' => 'URL Cron') - ), - 'limit_cron_frequency' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_cron_error_frequency'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - 'limit_traffic_quota' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'limit_traffic_quota_error_notint'), - ), - 'default' => '-1', - 'value' => '', - 'separator' => '', - 'width' => '10', - 'maxlength' => '10', - 'rows' => '', - 'cols' => '' - ), - ################################## - # END Datatable fields - ################################## - ) -); - -/* -$form["tabs"]['ipaddress'] = array ( - 'title' => "IP Addresses", - 'width' => 100, - 'template' => "templates/client_edit_ipaddress.htm", - 'fields' => array ( - ################################## - # Beginn Datatable fields - ################################## - 'ip_address' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'CHECKBOXARRAY', - 'default' => '', - 'value' => array('192.168.0.1' => '192.168.0.1', '192.168.0.2' => '192.168.0.2'), - 'separator' => ';' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); -*/ - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/client/lib/admin.conf.php b/interface/ispconfig/interface/client/lib/admin.conf.php deleted file mode 100644 index a45d44034..000000000 --- a/interface/ispconfig/interface/client/lib/admin.conf.php +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/client/lib/lang/bg.lng b/interface/ispconfig/interface/client/lib/lang/bg.lng deleted file mode 100644 index f835dfd5f..000000000 --- a/interface/ispconfig/interface/client/lib/lang/bg.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/bg_client.lng b/interface/ispconfig/interface/client/lib/lang/bg_client.lng deleted file mode 100644 index 35b3519da..000000000 --- a/interface/ispconfig/interface/client/lib/lang/bg_client.lng +++ /dev/null @@ -1,94 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/bg_client_del.lng b/interface/ispconfig/interface/client/lib/lang/bg_client_del.lng deleted file mode 100644 index a826d64e1..000000000 --- a/interface/ispconfig/interface/client/lib/lang/bg_client_del.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/bg_client_template.lng b/interface/ispconfig/interface/client/lib/lang/bg_client_template.lng deleted file mode 100644 index 2f6e9ba30..000000000 --- a/interface/ispconfig/interface/client/lib/lang/bg_client_template.lng +++ /dev/null @@ -1,57 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/bg_client_template_list.lng b/interface/ispconfig/interface/client/lib/lang/bg_client_template_list.lng deleted file mode 100644 index b93a5f97b..000000000 --- a/interface/ispconfig/interface/client/lib/lang/bg_client_template_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/bg_clients_list.lng b/interface/ispconfig/interface/client/lib/lang/bg_clients_list.lng deleted file mode 100644 index f412b7802..000000000 --- a/interface/ispconfig/interface/client/lib/lang/bg_clients_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/bg_reseller.lng b/interface/ispconfig/interface/client/lib/lang/bg_reseller.lng deleted file mode 100644 index f0dc7ca05..000000000 --- a/interface/ispconfig/interface/client/lib/lang/bg_reseller.lng +++ /dev/null @@ -1,93 +0,0 @@ - 0'; -$wb['limit_web_quota_txt'] = 'Web Quota'; -$wb['limit_traffic_quota_txt'] = 'Traffic Quota'; -$wb['limit_trafficquota_error_notint'] = 'Traffic Quota must be a number.'; -?> diff --git a/interface/ispconfig/interface/client/lib/lang/bg_resellers_list.lng b/interface/ispconfig/interface/client/lib/lang/bg_resellers_list.lng deleted file mode 100644 index 34d089669..000000000 --- a/interface/ispconfig/interface/client/lib/lang/bg_resellers_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/br.lng b/interface/ispconfig/interface/client/lib/lang/br.lng deleted file mode 100644 index 3dcb5e343..000000000 --- a/interface/ispconfig/interface/client/lib/lang/br.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/br_client.lng b/interface/ispconfig/interface/client/lib/lang/br_client.lng deleted file mode 100644 index 6e2b67cfa..000000000 --- a/interface/ispconfig/interface/client/lib/lang/br_client.lng +++ /dev/null @@ -1,94 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/br_client_del.lng b/interface/ispconfig/interface/client/lib/lang/br_client_del.lng deleted file mode 100644 index 57788b035..000000000 --- a/interface/ispconfig/interface/client/lib/lang/br_client_del.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/br_client_template.lng b/interface/ispconfig/interface/client/lib/lang/br_client_template.lng deleted file mode 100644 index b3b15e250..000000000 --- a/interface/ispconfig/interface/client/lib/lang/br_client_template.lng +++ /dev/null @@ -1,57 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/br_client_template_list.lng b/interface/ispconfig/interface/client/lib/lang/br_client_template_list.lng deleted file mode 100644 index 231f7fdea..000000000 --- a/interface/ispconfig/interface/client/lib/lang/br_client_template_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/br_clients_list.lng b/interface/ispconfig/interface/client/lib/lang/br_clients_list.lng deleted file mode 100644 index a6d54ecc8..000000000 --- a/interface/ispconfig/interface/client/lib/lang/br_clients_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/br_reseller.lng b/interface/ispconfig/interface/client/lib/lang/br_reseller.lng deleted file mode 100644 index a9724bf48..000000000 --- a/interface/ispconfig/interface/client/lib/lang/br_reseller.lng +++ /dev/null @@ -1,93 +0,0 @@ - 0'; -$wb['limit_web_quota_txt'] = 'Cota Web'; -$wb['limit_traffic_quota_txt'] = 'Cota de Tráfego'; -$wb['limit_trafficquota_error_notint'] = 'Traffic Quota must be a number.'; -?> diff --git a/interface/ispconfig/interface/client/lib/lang/br_resellers_list.lng b/interface/ispconfig/interface/client/lib/lang/br_resellers_list.lng deleted file mode 100644 index 053d7229d..000000000 --- a/interface/ispconfig/interface/client/lib/lang/br_resellers_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/de.lng b/interface/ispconfig/interface/client/lib/lang/de.lng deleted file mode 100644 index 2ab45de2f..000000000 --- a/interface/ispconfig/interface/client/lib/lang/de.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/de_client.lng b/interface/ispconfig/interface/client/lib/lang/de_client.lng deleted file mode 100644 index 6237798fb..000000000 --- a/interface/ispconfig/interface/client/lib/lang/de_client.lng +++ /dev/null @@ -1,94 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/de_client_del.lng b/interface/ispconfig/interface/client/lib/lang/de_client_del.lng deleted file mode 100644 index 4fb2aacdb..000000000 --- a/interface/ispconfig/interface/client/lib/lang/de_client_del.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/de_client_template.lng b/interface/ispconfig/interface/client/lib/lang/de_client_template.lng deleted file mode 100644 index 1fcce0050..000000000 --- a/interface/ispconfig/interface/client/lib/lang/de_client_template.lng +++ /dev/null @@ -1,57 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/de_client_template_list.lng b/interface/ispconfig/interface/client/lib/lang/de_client_template_list.lng deleted file mode 100644 index 98195fed1..000000000 --- a/interface/ispconfig/interface/client/lib/lang/de_client_template_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/de_clients_list.lng b/interface/ispconfig/interface/client/lib/lang/de_clients_list.lng deleted file mode 100644 index 515d7dbe0..000000000 --- a/interface/ispconfig/interface/client/lib/lang/de_clients_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/de_reseller.lng b/interface/ispconfig/interface/client/lib/lang/de_reseller.lng deleted file mode 100644 index f3a3ec87b..000000000 --- a/interface/ispconfig/interface/client/lib/lang/de_reseller.lng +++ /dev/null @@ -1,93 +0,0 @@ - 0 sein'; -$wb['limit_web_quota_txt'] = 'Web Quota'; -$wb['limit_traffic_quota_txt'] = 'Traffic Quota'; -$wb['limit_trafficquota_error_notint'] = 'Traffic Quota muss eine Zahl sein.'; -?> diff --git a/interface/ispconfig/interface/client/lib/lang/de_resellers_list.lng b/interface/ispconfig/interface/client/lib/lang/de_resellers_list.lng deleted file mode 100644 index f6f736cf3..000000000 --- a/interface/ispconfig/interface/client/lib/lang/de_resellers_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/en.lng b/interface/ispconfig/interface/client/lib/lang/en.lng deleted file mode 100644 index 2c598f3e2..000000000 --- a/interface/ispconfig/interface/client/lib/lang/en.lng +++ /dev/null @@ -1,14 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/client/lib/lang/en_client.lng b/interface/ispconfig/interface/client/lib/lang/en_client.lng deleted file mode 100644 index e87ba45e0..000000000 --- a/interface/ispconfig/interface/client/lib/lang/en_client.lng +++ /dev/null @@ -1,97 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/en_client_del.lng b/interface/ispconfig/interface/client/lib/lang/en_client_del.lng deleted file mode 100644 index 4d16af6af..000000000 --- a/interface/ispconfig/interface/client/lib/lang/en_client_del.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/en_client_template.lng b/interface/ispconfig/interface/client/lib/lang/en_client_template.lng deleted file mode 100644 index 39726634e..000000000 --- a/interface/ispconfig/interface/client/lib/lang/en_client_template.lng +++ /dev/null @@ -1,61 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/client/lib/lang/en_client_template_list.lng b/interface/ispconfig/interface/client/lib/lang/en_client_template_list.lng deleted file mode 100644 index ac5218686..000000000 --- a/interface/ispconfig/interface/client/lib/lang/en_client_template_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/en_clients_list.lng b/interface/ispconfig/interface/client/lib/lang/en_clients_list.lng deleted file mode 100644 index 86671aef4..000000000 --- a/interface/ispconfig/interface/client/lib/lang/en_clients_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/client/lib/lang/en_reseller.lng b/interface/ispconfig/interface/client/lib/lang/en_reseller.lng deleted file mode 100644 index 2b06c33d3..000000000 --- a/interface/ispconfig/interface/client/lib/lang/en_reseller.lng +++ /dev/null @@ -1,96 +0,0 @@ - 0'; -$wb["limit_web_quota_txt"] = 'Web Quota'; -$wb["limit_traffic_quota_txt"] = 'Traffic Quota'; -$wb["limit_trafficquota_error_notint"] = 'Traffic Quota must be a number.'; -?> diff --git a/interface/ispconfig/interface/client/lib/lang/en_resellers_list.lng b/interface/ispconfig/interface/client/lib/lang/en_resellers_list.lng deleted file mode 100644 index 523a467c5..000000000 --- a/interface/ispconfig/interface/client/lib/lang/en_resellers_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/client/lib/lang/es.lng b/interface/ispconfig/interface/client/lib/lang/es.lng deleted file mode 100644 index f1b1d758e..000000000 --- a/interface/ispconfig/interface/client/lib/lang/es.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/es_client.lng b/interface/ispconfig/interface/client/lib/lang/es_client.lng deleted file mode 100644 index e42a54818..000000000 --- a/interface/ispconfig/interface/client/lib/lang/es_client.lng +++ /dev/null @@ -1,94 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/es_client_del.lng b/interface/ispconfig/interface/client/lib/lang/es_client_del.lng deleted file mode 100644 index a826d64e1..000000000 --- a/interface/ispconfig/interface/client/lib/lang/es_client_del.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/es_client_template.lng b/interface/ispconfig/interface/client/lib/lang/es_client_template.lng deleted file mode 100644 index 3e51956c8..000000000 --- a/interface/ispconfig/interface/client/lib/lang/es_client_template.lng +++ /dev/null @@ -1,57 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/es_client_template_list.lng b/interface/ispconfig/interface/client/lib/lang/es_client_template_list.lng deleted file mode 100644 index 9bbe98d0f..000000000 --- a/interface/ispconfig/interface/client/lib/lang/es_client_template_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/es_clients_list.lng b/interface/ispconfig/interface/client/lib/lang/es_clients_list.lng deleted file mode 100644 index 1b3999311..000000000 --- a/interface/ispconfig/interface/client/lib/lang/es_clients_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/es_reseller.lng b/interface/ispconfig/interface/client/lib/lang/es_reseller.lng deleted file mode 100644 index f0dc7ca05..000000000 --- a/interface/ispconfig/interface/client/lib/lang/es_reseller.lng +++ /dev/null @@ -1,93 +0,0 @@ - 0'; -$wb['limit_web_quota_txt'] = 'Web Quota'; -$wb['limit_traffic_quota_txt'] = 'Traffic Quota'; -$wb['limit_trafficquota_error_notint'] = 'Traffic Quota must be a number.'; -?> diff --git a/interface/ispconfig/interface/client/lib/lang/es_resellers_list.lng b/interface/ispconfig/interface/client/lib/lang/es_resellers_list.lng deleted file mode 100644 index 797d9d07a..000000000 --- a/interface/ispconfig/interface/client/lib/lang/es_resellers_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/fi.lng b/interface/ispconfig/interface/client/lib/lang/fi.lng deleted file mode 100644 index 9b7a982f9..000000000 --- a/interface/ispconfig/interface/client/lib/lang/fi.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/fi_client.lng b/interface/ispconfig/interface/client/lib/lang/fi_client.lng deleted file mode 100644 index 87842b1c3..000000000 --- a/interface/ispconfig/interface/client/lib/lang/fi_client.lng +++ /dev/null @@ -1,94 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/fi_client_del.lng b/interface/ispconfig/interface/client/lib/lang/fi_client_del.lng deleted file mode 100644 index a826d64e1..000000000 --- a/interface/ispconfig/interface/client/lib/lang/fi_client_del.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/fi_client_template.lng b/interface/ispconfig/interface/client/lib/lang/fi_client_template.lng deleted file mode 100644 index e3b55ddaf..000000000 --- a/interface/ispconfig/interface/client/lib/lang/fi_client_template.lng +++ /dev/null @@ -1,57 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/fi_client_template_list.lng b/interface/ispconfig/interface/client/lib/lang/fi_client_template_list.lng deleted file mode 100644 index 094c3c70c..000000000 --- a/interface/ispconfig/interface/client/lib/lang/fi_client_template_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/fi_clients_list.lng b/interface/ispconfig/interface/client/lib/lang/fi_clients_list.lng deleted file mode 100644 index 8b20cc4cc..000000000 --- a/interface/ispconfig/interface/client/lib/lang/fi_clients_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/fi_reseller.lng b/interface/ispconfig/interface/client/lib/lang/fi_reseller.lng deleted file mode 100644 index f0dc7ca05..000000000 --- a/interface/ispconfig/interface/client/lib/lang/fi_reseller.lng +++ /dev/null @@ -1,93 +0,0 @@ - 0'; -$wb['limit_web_quota_txt'] = 'Web Quota'; -$wb['limit_traffic_quota_txt'] = 'Traffic Quota'; -$wb['limit_trafficquota_error_notint'] = 'Traffic Quota must be a number.'; -?> diff --git a/interface/ispconfig/interface/client/lib/lang/fi_resellers_list.lng b/interface/ispconfig/interface/client/lib/lang/fi_resellers_list.lng deleted file mode 100644 index 34d089669..000000000 --- a/interface/ispconfig/interface/client/lib/lang/fi_resellers_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/fr.lng b/interface/ispconfig/interface/client/lib/lang/fr.lng deleted file mode 100644 index b8f4d8f50..000000000 --- a/interface/ispconfig/interface/client/lib/lang/fr.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/fr_client.lng b/interface/ispconfig/interface/client/lib/lang/fr_client.lng deleted file mode 100644 index 7afb6e0cf..000000000 --- a/interface/ispconfig/interface/client/lib/lang/fr_client.lng +++ /dev/null @@ -1,94 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/fr_client_del.lng b/interface/ispconfig/interface/client/lib/lang/fr_client_del.lng deleted file mode 100644 index a826d64e1..000000000 --- a/interface/ispconfig/interface/client/lib/lang/fr_client_del.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/fr_client_template.lng b/interface/ispconfig/interface/client/lib/lang/fr_client_template.lng deleted file mode 100644 index d984acc14..000000000 --- a/interface/ispconfig/interface/client/lib/lang/fr_client_template.lng +++ /dev/null @@ -1,57 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/fr_client_template_list.lng b/interface/ispconfig/interface/client/lib/lang/fr_client_template_list.lng deleted file mode 100644 index 3405427d2..000000000 --- a/interface/ispconfig/interface/client/lib/lang/fr_client_template_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/fr_clients_list.lng b/interface/ispconfig/interface/client/lib/lang/fr_clients_list.lng deleted file mode 100644 index e5a0c1727..000000000 --- a/interface/ispconfig/interface/client/lib/lang/fr_clients_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/fr_reseller.lng b/interface/ispconfig/interface/client/lib/lang/fr_reseller.lng deleted file mode 100644 index 24926d454..000000000 --- a/interface/ispconfig/interface/client/lib/lang/fr_reseller.lng +++ /dev/null @@ -1,93 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/fr_resellers_list.lng b/interface/ispconfig/interface/client/lib/lang/fr_resellers_list.lng deleted file mode 100644 index e5a0c1727..000000000 --- a/interface/ispconfig/interface/client/lib/lang/fr_resellers_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/hu.lng b/interface/ispconfig/interface/client/lib/lang/hu.lng deleted file mode 100644 index 74a7c722d..000000000 --- a/interface/ispconfig/interface/client/lib/lang/hu.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/hu_client.lng b/interface/ispconfig/interface/client/lib/lang/hu_client.lng deleted file mode 100644 index 35be91f2c..000000000 --- a/interface/ispconfig/interface/client/lib/lang/hu_client.lng +++ /dev/null @@ -1,94 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/hu_client_del.lng b/interface/ispconfig/interface/client/lib/lang/hu_client_del.lng deleted file mode 100644 index a826d64e1..000000000 --- a/interface/ispconfig/interface/client/lib/lang/hu_client_del.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/hu_client_template.lng b/interface/ispconfig/interface/client/lib/lang/hu_client_template.lng deleted file mode 100644 index 45930a084..000000000 --- a/interface/ispconfig/interface/client/lib/lang/hu_client_template.lng +++ /dev/null @@ -1,57 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/hu_client_template_list.lng b/interface/ispconfig/interface/client/lib/lang/hu_client_template_list.lng deleted file mode 100644 index b93a5f97b..000000000 --- a/interface/ispconfig/interface/client/lib/lang/hu_client_template_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/hu_clients_list.lng b/interface/ispconfig/interface/client/lib/lang/hu_clients_list.lng deleted file mode 100644 index 09105a01a..000000000 --- a/interface/ispconfig/interface/client/lib/lang/hu_clients_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/hu_reseller.lng b/interface/ispconfig/interface/client/lib/lang/hu_reseller.lng deleted file mode 100644 index f0dc7ca05..000000000 --- a/interface/ispconfig/interface/client/lib/lang/hu_reseller.lng +++ /dev/null @@ -1,93 +0,0 @@ - 0'; -$wb['limit_web_quota_txt'] = 'Web Quota'; -$wb['limit_traffic_quota_txt'] = 'Traffic Quota'; -$wb['limit_trafficquota_error_notint'] = 'Traffic Quota must be a number.'; -?> diff --git a/interface/ispconfig/interface/client/lib/lang/hu_resellers_list.lng b/interface/ispconfig/interface/client/lib/lang/hu_resellers_list.lng deleted file mode 100644 index 34d089669..000000000 --- a/interface/ispconfig/interface/client/lib/lang/hu_resellers_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/it.lng b/interface/ispconfig/interface/client/lib/lang/it.lng deleted file mode 100644 index 17552563e..000000000 --- a/interface/ispconfig/interface/client/lib/lang/it.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/it_client.lng b/interface/ispconfig/interface/client/lib/lang/it_client.lng deleted file mode 100644 index 7dbc06cd9..000000000 --- a/interface/ispconfig/interface/client/lib/lang/it_client.lng +++ /dev/null @@ -1,94 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/it_client_del.lng b/interface/ispconfig/interface/client/lib/lang/it_client_del.lng deleted file mode 100644 index a826d64e1..000000000 --- a/interface/ispconfig/interface/client/lib/lang/it_client_del.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/it_client_template.lng b/interface/ispconfig/interface/client/lib/lang/it_client_template.lng deleted file mode 100644 index abc74f493..000000000 --- a/interface/ispconfig/interface/client/lib/lang/it_client_template.lng +++ /dev/null @@ -1,57 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/it_client_template_list.lng b/interface/ispconfig/interface/client/lib/lang/it_client_template_list.lng deleted file mode 100644 index 03aa10e5c..000000000 --- a/interface/ispconfig/interface/client/lib/lang/it_client_template_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/it_clients_list.lng b/interface/ispconfig/interface/client/lib/lang/it_clients_list.lng deleted file mode 100644 index d3bd8cdb7..000000000 --- a/interface/ispconfig/interface/client/lib/lang/it_clients_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/it_reseller.lng b/interface/ispconfig/interface/client/lib/lang/it_reseller.lng deleted file mode 100644 index f0dc7ca05..000000000 --- a/interface/ispconfig/interface/client/lib/lang/it_reseller.lng +++ /dev/null @@ -1,93 +0,0 @@ - 0'; -$wb['limit_web_quota_txt'] = 'Web Quota'; -$wb['limit_traffic_quota_txt'] = 'Traffic Quota'; -$wb['limit_trafficquota_error_notint'] = 'Traffic Quota must be a number.'; -?> diff --git a/interface/ispconfig/interface/client/lib/lang/it_resellers_list.lng b/interface/ispconfig/interface/client/lib/lang/it_resellers_list.lng deleted file mode 100644 index 34d089669..000000000 --- a/interface/ispconfig/interface/client/lib/lang/it_resellers_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/ja.lng b/interface/ispconfig/interface/client/lib/lang/ja.lng deleted file mode 100644 index a6edbc168..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ja.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/ja_client.lng b/interface/ispconfig/interface/client/lib/lang/ja_client.lng deleted file mode 100644 index 2289f94ac..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ja_client.lng +++ /dev/null @@ -1,94 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/ja_client_del.lng b/interface/ispconfig/interface/client/lib/lang/ja_client_del.lng deleted file mode 100644 index a826d64e1..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ja_client_del.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/ja_client_template.lng b/interface/ispconfig/interface/client/lib/lang/ja_client_template.lng deleted file mode 100644 index 0291b2e4a..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ja_client_template.lng +++ /dev/null @@ -1,57 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/ja_client_template_list.lng b/interface/ispconfig/interface/client/lib/lang/ja_client_template_list.lng deleted file mode 100644 index 05d3358c4..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ja_client_template_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/ja_clients_list.lng b/interface/ispconfig/interface/client/lib/lang/ja_clients_list.lng deleted file mode 100644 index f5b39e150..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ja_clients_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/ja_reseller.lng b/interface/ispconfig/interface/client/lib/lang/ja_reseller.lng deleted file mode 100644 index fbb4380f8..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ja_reseller.lng +++ /dev/null @@ -1,93 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/ja_resellers_list.lng b/interface/ispconfig/interface/client/lib/lang/ja_resellers_list.lng deleted file mode 100644 index 2f6e6ec94..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ja_resellers_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/nl.lng b/interface/ispconfig/interface/client/lib/lang/nl.lng deleted file mode 100644 index 0071fa28f..000000000 --- a/interface/ispconfig/interface/client/lib/lang/nl.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/nl_client.lng b/interface/ispconfig/interface/client/lib/lang/nl_client.lng deleted file mode 100644 index a50da4538..000000000 --- a/interface/ispconfig/interface/client/lib/lang/nl_client.lng +++ /dev/null @@ -1,94 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/nl_client_del.lng b/interface/ispconfig/interface/client/lib/lang/nl_client_del.lng deleted file mode 100644 index a896cbd3c..000000000 --- a/interface/ispconfig/interface/client/lib/lang/nl_client_del.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/nl_client_template.lng b/interface/ispconfig/interface/client/lib/lang/nl_client_template.lng deleted file mode 100644 index 2abcc0cf6..000000000 --- a/interface/ispconfig/interface/client/lib/lang/nl_client_template.lng +++ /dev/null @@ -1,57 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/nl_client_template_list.lng b/interface/ispconfig/interface/client/lib/lang/nl_client_template_list.lng deleted file mode 100644 index 333aeb5bb..000000000 --- a/interface/ispconfig/interface/client/lib/lang/nl_client_template_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/nl_clients_list.lng b/interface/ispconfig/interface/client/lib/lang/nl_clients_list.lng deleted file mode 100644 index 0309a475d..000000000 --- a/interface/ispconfig/interface/client/lib/lang/nl_clients_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/nl_reseller.lng b/interface/ispconfig/interface/client/lib/lang/nl_reseller.lng deleted file mode 100644 index 4fa2bdcf6..000000000 --- a/interface/ispconfig/interface/client/lib/lang/nl_reseller.lng +++ /dev/null @@ -1,93 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/nl_resellers_list.lng b/interface/ispconfig/interface/client/lib/lang/nl_resellers_list.lng deleted file mode 100644 index dd5fd53db..000000000 --- a/interface/ispconfig/interface/client/lib/lang/nl_resellers_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/pl.lng b/interface/ispconfig/interface/client/lib/lang/pl.lng deleted file mode 100644 index 771c3b2c2..000000000 --- a/interface/ispconfig/interface/client/lib/lang/pl.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/pl_client.lng b/interface/ispconfig/interface/client/lib/lang/pl_client.lng deleted file mode 100644 index 42f73b83b..000000000 --- a/interface/ispconfig/interface/client/lib/lang/pl_client.lng +++ /dev/null @@ -1,94 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/pl_client_del.lng b/interface/ispconfig/interface/client/lib/lang/pl_client_del.lng deleted file mode 100644 index a826d64e1..000000000 --- a/interface/ispconfig/interface/client/lib/lang/pl_client_del.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/pl_client_template.lng b/interface/ispconfig/interface/client/lib/lang/pl_client_template.lng deleted file mode 100644 index 5c7c0f857..000000000 --- a/interface/ispconfig/interface/client/lib/lang/pl_client_template.lng +++ /dev/null @@ -1,57 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/pl_client_template_list.lng b/interface/ispconfig/interface/client/lib/lang/pl_client_template_list.lng deleted file mode 100644 index 06a39761f..000000000 --- a/interface/ispconfig/interface/client/lib/lang/pl_client_template_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/pl_clients_list.lng b/interface/ispconfig/interface/client/lib/lang/pl_clients_list.lng deleted file mode 100644 index 81f0bd855..000000000 --- a/interface/ispconfig/interface/client/lib/lang/pl_clients_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/pl_reseller.lng b/interface/ispconfig/interface/client/lib/lang/pl_reseller.lng deleted file mode 100644 index f08ca1c9e..000000000 --- a/interface/ispconfig/interface/client/lib/lang/pl_reseller.lng +++ /dev/null @@ -1,93 +0,0 @@ - 0'; -$wb['limit_web_quota_txt'] = 'Web Quota'; -$wb['limit_traffic_quota_txt'] = 'Traffic Quota'; -$wb['limit_trafficquota_error_notint'] = 'Traffic Quota must be a number.'; -?> diff --git a/interface/ispconfig/interface/client/lib/lang/pl_resellers_list.lng b/interface/ispconfig/interface/client/lib/lang/pl_resellers_list.lng deleted file mode 100644 index 51abc411a..000000000 --- a/interface/ispconfig/interface/client/lib/lang/pl_resellers_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/pt.lng b/interface/ispconfig/interface/client/lib/lang/pt.lng deleted file mode 100644 index e8313728e..000000000 --- a/interface/ispconfig/interface/client/lib/lang/pt.lng +++ /dev/null @@ -1,14 +0,0 @@ - - diff --git a/interface/ispconfig/interface/client/lib/lang/pt_client.lng b/interface/ispconfig/interface/client/lib/lang/pt_client.lng deleted file mode 100644 index 0f7d32ab4..000000000 --- a/interface/ispconfig/interface/client/lib/lang/pt_client.lng +++ /dev/null @@ -1,95 +0,0 @@ - - diff --git a/interface/ispconfig/interface/client/lib/lang/pt_client_del.lng b/interface/ispconfig/interface/client/lib/lang/pt_client_del.lng deleted file mode 100644 index 769975296..000000000 --- a/interface/ispconfig/interface/client/lib/lang/pt_client_del.lng +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/interface/ispconfig/interface/client/lib/lang/pt_client_template.lng b/interface/ispconfig/interface/client/lib/lang/pt_client_template.lng deleted file mode 100644 index 153cc5bd0..000000000 --- a/interface/ispconfig/interface/client/lib/lang/pt_client_template.lng +++ /dev/null @@ -1,58 +0,0 @@ - - diff --git a/interface/ispconfig/interface/client/lib/lang/pt_client_template_list.lng b/interface/ispconfig/interface/client/lib/lang/pt_client_template_list.lng deleted file mode 100644 index 0587b04f3..000000000 --- a/interface/ispconfig/interface/client/lib/lang/pt_client_template_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/interface/ispconfig/interface/client/lib/lang/pt_clients_list.lng b/interface/ispconfig/interface/client/lib/lang/pt_clients_list.lng deleted file mode 100644 index 53ceab053..000000000 --- a/interface/ispconfig/interface/client/lib/lang/pt_clients_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/client/lib/lang/pt_reseller.lng b/interface/ispconfig/interface/client/lib/lang/pt_reseller.lng deleted file mode 100644 index 9aa64e0a7..000000000 --- a/interface/ispconfig/interface/client/lib/lang/pt_reseller.lng +++ /dev/null @@ -1,94 +0,0 @@ - 0'; -$wb['limit_web_quota_txt'] = 'Cota Web'; -$wb['limit_traffic_quota_txt'] = 'Cota de Tráfego'; -$wb['limit_trafficquota_error_notint'] = 'Traffic Quota must be a number.'; -?> - diff --git a/interface/ispconfig/interface/client/lib/lang/pt_resellers_list.lng b/interface/ispconfig/interface/client/lib/lang/pt_resellers_list.lng deleted file mode 100644 index 8df917d4f..000000000 --- a/interface/ispconfig/interface/client/lib/lang/pt_resellers_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/client/lib/lang/ro.lng b/interface/ispconfig/interface/client/lib/lang/ro.lng deleted file mode 100644 index 38bbbb501..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ro.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/ro_client.lng b/interface/ispconfig/interface/client/lib/lang/ro_client.lng deleted file mode 100644 index 6dbfadb43..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ro_client.lng +++ /dev/null @@ -1,94 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/ro_client_del.lng b/interface/ispconfig/interface/client/lib/lang/ro_client_del.lng deleted file mode 100644 index 4d16af6af..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ro_client_del.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/ro_client_template.lng b/interface/ispconfig/interface/client/lib/lang/ro_client_template.lng deleted file mode 100644 index 276e0817c..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ro_client_template.lng +++ /dev/null @@ -1,57 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/ro_client_template_list.lng b/interface/ispconfig/interface/client/lib/lang/ro_client_template_list.lng deleted file mode 100644 index b19f5d43c..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ro_client_template_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/ro_clients_list.lng b/interface/ispconfig/interface/client/lib/lang/ro_clients_list.lng deleted file mode 100644 index 33bde68e1..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ro_clients_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/ro_reseller.lng b/interface/ispconfig/interface/client/lib/lang/ro_reseller.lng deleted file mode 100644 index 2b06c33d3..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ro_reseller.lng +++ /dev/null @@ -1,96 +0,0 @@ - 0'; -$wb["limit_web_quota_txt"] = 'Web Quota'; -$wb["limit_traffic_quota_txt"] = 'Traffic Quota'; -$wb["limit_trafficquota_error_notint"] = 'Traffic Quota must be a number.'; -?> diff --git a/interface/ispconfig/interface/client/lib/lang/ro_resellers_list.lng b/interface/ispconfig/interface/client/lib/lang/ro_resellers_list.lng deleted file mode 100644 index 523a467c5..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ro_resellers_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/client/lib/lang/ru.lng b/interface/ispconfig/interface/client/lib/lang/ru.lng deleted file mode 100644 index a2679b2a6..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ru.lng +++ /dev/null @@ -1,14 +0,0 @@ - - diff --git a/interface/ispconfig/interface/client/lib/lang/ru_client.lng b/interface/ispconfig/interface/client/lib/lang/ru_client.lng deleted file mode 100644 index e1a38d4e7..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ru_client.lng +++ /dev/null @@ -1,95 +0,0 @@ - - diff --git a/interface/ispconfig/interface/client/lib/lang/ru_client_del.lng b/interface/ispconfig/interface/client/lib/lang/ru_client_del.lng deleted file mode 100644 index d79261720..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ru_client_del.lng +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/interface/ispconfig/interface/client/lib/lang/ru_client_template.lng b/interface/ispconfig/interface/client/lib/lang/ru_client_template.lng deleted file mode 100644 index d630f3457..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ru_client_template.lng +++ /dev/null @@ -1,58 +0,0 @@ - - diff --git a/interface/ispconfig/interface/client/lib/lang/ru_client_template_list.lng b/interface/ispconfig/interface/client/lib/lang/ru_client_template_list.lng deleted file mode 100644 index 9aab2f589..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ru_client_template_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/interface/ispconfig/interface/client/lib/lang/ru_clients_list.lng b/interface/ispconfig/interface/client/lib/lang/ru_clients_list.lng deleted file mode 100644 index 3621300ae..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ru_clients_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/client/lib/lang/ru_reseller.lng b/interface/ispconfig/interface/client/lib/lang/ru_reseller.lng deleted file mode 100644 index 097634481..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ru_reseller.lng +++ /dev/null @@ -1,94 +0,0 @@ - 0'; -$wb['limit_web_quota_txt'] = 'Квота Web'; -$wb['limit_traffic_quota_txt'] = 'Квота трафика'; -$wb['limit_trafficquota_error_notint'] = 'Квота трафика должна быть чиÑлом.'; -?> - diff --git a/interface/ispconfig/interface/client/lib/lang/ru_resellers_list.lng b/interface/ispconfig/interface/client/lib/lang/ru_resellers_list.lng deleted file mode 100644 index 3d8976721..000000000 --- a/interface/ispconfig/interface/client/lib/lang/ru_resellers_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/client/lib/lang/se.lng b/interface/ispconfig/interface/client/lib/lang/se.lng deleted file mode 100644 index 38bbbb501..000000000 --- a/interface/ispconfig/interface/client/lib/lang/se.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/se_client.lng b/interface/ispconfig/interface/client/lib/lang/se_client.lng deleted file mode 100644 index 2bcea5cc4..000000000 --- a/interface/ispconfig/interface/client/lib/lang/se_client.lng +++ /dev/null @@ -1,94 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/se_client_del.lng b/interface/ispconfig/interface/client/lib/lang/se_client_del.lng deleted file mode 100644 index a826d64e1..000000000 --- a/interface/ispconfig/interface/client/lib/lang/se_client_del.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/se_client_template.lng b/interface/ispconfig/interface/client/lib/lang/se_client_template.lng deleted file mode 100644 index 2f6e9ba30..000000000 --- a/interface/ispconfig/interface/client/lib/lang/se_client_template.lng +++ /dev/null @@ -1,57 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/se_client_template_list.lng b/interface/ispconfig/interface/client/lib/lang/se_client_template_list.lng deleted file mode 100644 index b93a5f97b..000000000 --- a/interface/ispconfig/interface/client/lib/lang/se_client_template_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/se_clients_list.lng b/interface/ispconfig/interface/client/lib/lang/se_clients_list.lng deleted file mode 100644 index 81f0bd855..000000000 --- a/interface/ispconfig/interface/client/lib/lang/se_clients_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/se_reseller.lng b/interface/ispconfig/interface/client/lib/lang/se_reseller.lng deleted file mode 100644 index f0dc7ca05..000000000 --- a/interface/ispconfig/interface/client/lib/lang/se_reseller.lng +++ /dev/null @@ -1,93 +0,0 @@ - 0'; -$wb['limit_web_quota_txt'] = 'Web Quota'; -$wb['limit_traffic_quota_txt'] = 'Traffic Quota'; -$wb['limit_trafficquota_error_notint'] = 'Traffic Quota must be a number.'; -?> diff --git a/interface/ispconfig/interface/client/lib/lang/se_resellers_list.lng b/interface/ispconfig/interface/client/lib/lang/se_resellers_list.lng deleted file mode 100644 index 34d089669..000000000 --- a/interface/ispconfig/interface/client/lib/lang/se_resellers_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/sk.lng b/interface/ispconfig/interface/client/lib/lang/sk.lng deleted file mode 100644 index fea38589d..000000000 --- a/interface/ispconfig/interface/client/lib/lang/sk.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/sk_client.lng b/interface/ispconfig/interface/client/lib/lang/sk_client.lng deleted file mode 100644 index 6daf5769a..000000000 --- a/interface/ispconfig/interface/client/lib/lang/sk_client.lng +++ /dev/null @@ -1,94 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/sk_client_del.lng b/interface/ispconfig/interface/client/lib/lang/sk_client_del.lng deleted file mode 100644 index a826d64e1..000000000 --- a/interface/ispconfig/interface/client/lib/lang/sk_client_del.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/sk_client_template.lng b/interface/ispconfig/interface/client/lib/lang/sk_client_template.lng deleted file mode 100644 index 938c43646..000000000 --- a/interface/ispconfig/interface/client/lib/lang/sk_client_template.lng +++ /dev/null @@ -1,57 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/sk_client_template_list.lng b/interface/ispconfig/interface/client/lib/lang/sk_client_template_list.lng deleted file mode 100644 index 6160cc834..000000000 --- a/interface/ispconfig/interface/client/lib/lang/sk_client_template_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/sk_clients_list.lng b/interface/ispconfig/interface/client/lib/lang/sk_clients_list.lng deleted file mode 100644 index 780be1c6e..000000000 --- a/interface/ispconfig/interface/client/lib/lang/sk_clients_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/sk_reseller.lng b/interface/ispconfig/interface/client/lib/lang/sk_reseller.lng deleted file mode 100644 index 5b17a8067..000000000 --- a/interface/ispconfig/interface/client/lib/lang/sk_reseller.lng +++ /dev/null @@ -1,93 +0,0 @@ - 0'; -$wb['limit_web_quota_txt'] = 'Web Quota'; -$wb['limit_traffic_quota_txt'] = 'Traffic Quota'; -$wb['limit_trafficquota_error_notint'] = 'Traffic Quota must be a number.'; -?> diff --git a/interface/ispconfig/interface/client/lib/lang/sk_resellers_list.lng b/interface/ispconfig/interface/client/lib/lang/sk_resellers_list.lng deleted file mode 100644 index 2fbaecd19..000000000 --- a/interface/ispconfig/interface/client/lib/lang/sk_resellers_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/tr.lng b/interface/ispconfig/interface/client/lib/lang/tr.lng deleted file mode 100644 index f8f1e5072..000000000 --- a/interface/ispconfig/interface/client/lib/lang/tr.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/tr_client.lng b/interface/ispconfig/interface/client/lib/lang/tr_client.lng deleted file mode 100644 index 35e6cd57d..000000000 --- a/interface/ispconfig/interface/client/lib/lang/tr_client.lng +++ /dev/null @@ -1,94 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/tr_client_del.lng b/interface/ispconfig/interface/client/lib/lang/tr_client_del.lng deleted file mode 100644 index a826d64e1..000000000 --- a/interface/ispconfig/interface/client/lib/lang/tr_client_del.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/tr_client_template.lng b/interface/ispconfig/interface/client/lib/lang/tr_client_template.lng deleted file mode 100644 index 2d038e0bc..000000000 --- a/interface/ispconfig/interface/client/lib/lang/tr_client_template.lng +++ /dev/null @@ -1,57 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/tr_client_template_list.lng b/interface/ispconfig/interface/client/lib/lang/tr_client_template_list.lng deleted file mode 100644 index af5c1c74e..000000000 --- a/interface/ispconfig/interface/client/lib/lang/tr_client_template_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/tr_clients_list.lng b/interface/ispconfig/interface/client/lib/lang/tr_clients_list.lng deleted file mode 100644 index 9c0215a24..000000000 --- a/interface/ispconfig/interface/client/lib/lang/tr_clients_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/tr_reseller.lng b/interface/ispconfig/interface/client/lib/lang/tr_reseller.lng deleted file mode 100644 index 63077c02c..000000000 --- a/interface/ispconfig/interface/client/lib/lang/tr_reseller.lng +++ /dev/null @@ -1,93 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/lang/tr_resellers_list.lng b/interface/ispconfig/interface/client/lib/lang/tr_resellers_list.lng deleted file mode 100644 index ccb8fd154..000000000 --- a/interface/ispconfig/interface/client/lib/lang/tr_resellers_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/client/lib/module.conf.php b/interface/ispconfig/interface/client/lib/module.conf.php deleted file mode 100644 index 543fc892d..000000000 --- a/interface/ispconfig/interface/client/lib/module.conf.php +++ /dev/null @@ -1,63 +0,0 @@ - "Add Client", - 'target' => 'content', - 'link' => 'client/client_edit.php'); - -$items[] = array( 'title' => "Edit Client", - 'target' => 'content', - 'link' => 'client/client_list.php'); - -if($_SESSION["s"]["user"]["typ"] == 'admin'){ - $items[] = array( 'title' => "Edit Client-Templates", - 'target' => 'content', - 'link' => 'client/client_template_list.php'); -} - -$module["nav"][] = array( 'title' => 'Clients', - 'open' => 1, - 'items' => $items); - -unset($items); - - -if($_SESSION["s"]["user"]["typ"] == 'admin'){ - -$items[] = array( 'title' => "Add Reseller", - 'target' => 'content', - 'link' => 'client/reseller_edit.php'); - -$items[] = array( 'title' => "Edit Reseller", - 'target' => 'content', - 'link' => 'client/reseller_list.php'); - -$module["nav"][] = array( 'title' => 'Resellers', - 'open' => 1, - 'items' => $items); -} - - - - - - - - - - - - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/client/list/client.list.php b/interface/ispconfig/interface/client/list/client.list.php deleted file mode 100644 index 3ace4fb18..000000000 --- a/interface/ispconfig/interface/client/list/client.list.php +++ /dev/null @@ -1,87 +0,0 @@ - "company_name", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "contact_name", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "city", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "country", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/client/list/client_template.list.php b/interface/ispconfig/interface/client/list/client_template.list.php deleted file mode 100644 index 679759e41..000000000 --- a/interface/ispconfig/interface/client/list/client_template.list.php +++ /dev/null @@ -1,65 +0,0 @@ - "template_type", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('m' => "Main Template",'a' => "Additional Template")); - -$liste["item"][] = array( 'field' => "template_name", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); -?> diff --git a/interface/ispconfig/interface/client/list/reseller.list.php b/interface/ispconfig/interface/client/list/reseller.list.php deleted file mode 100644 index 6d08cc8c8..000000000 --- a/interface/ispconfig/interface/client/list/reseller.list.php +++ /dev/null @@ -1,87 +0,0 @@ - "company_name", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "contact_name", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "city", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "country", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/client/reseller_del.php b/interface/ispconfig/interface/client/reseller_del.php deleted file mode 100644 index 855652a73..000000000 --- a/interface/ispconfig/interface/client/reseller_del.php +++ /dev/null @@ -1,92 +0,0 @@ -auth->check_module_permissions('client'); - -if($_SESSION["s"]["user"]["typ"] != 'admin') die('Access only for administrators.'); - -$app->uses('tpl,tform'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onBeforeDelete() { - global $app, $conf; - - $client_id = intval($this->dataRecord['client_id']); - - $tmp = $app->db->queryOneRecord("SELECT count(client_id) as number FROM client WHERE parent_client_id = ".$client_id); - if($tmp["number"] > 0) $app->error($app->lng('error_has_clients')); - - } - - function onAfterDelete() { - global $app, $conf; - - $client_id = intval($this->dataRecord['client_id']); - - if($client_id > 0) { - // TODO: Delete all records (sub-clients, mail, web, etc....) of this client. - - // remove the group of the client from the resellers group - $parent_client_id = intval($this->dataRecord['parent_client_id']); - $parent_user = $app->db->queryOneRecord("SELECT userid FROM sys_user WHERE client_id = $parent_client_id"); - $client_group = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = $client_id"); - $app->auth->remove_group_from_user($parent_user['userid'],$client_group['groupid']); - - // delete the group of the client - $app->db->query("DELETE FROM sys_group WHERE client_id = $client_id"); - - // delete the sys user(s) of the client - $app->db->query("DELETE FROM sys_user WHERE client_id = $client_id"); - } - - } -} - -$page = new page_action; -$page->onDelete() - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/client/reseller_edit.php b/interface/ispconfig/interface/client/reseller_edit.php deleted file mode 100644 index 949baae29..000000000 --- a/interface/ispconfig/interface/client/reseller_edit.php +++ /dev/null @@ -1,222 +0,0 @@ -auth->check_module_permissions('client'); - -if($_SESSION["s"]["user"]["typ"] != 'admin') die('Access only for administrators.'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_client FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another website. - if($client["limit_client"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(client_id) as number FROM client WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_client"]) { - $app->error($app->tform->wordbook["limit_client_txt"]); - } - } - } - - parent::onShowNew(); - } - - - function onSubmit() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user' && $this->id == 0) { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_client FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another website. - if($client["limit_client"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(client_id) as number FROM client WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_client"]) { - $app->error($app->tform->wordbook["limit_client_txt"]); - } - } - } - - parent::onSubmit(); - } - - - function onShowEnd() { - - global $app; - - $sql = "SELECT template_id,template_name FROM client_template WHERE template_type = 'a'"; - $tpls = $app->db->queryAllRecords($sql); - $option = ''; - $tpl = array(); - foreach($tpls as $item){ - $option .= ''; - $tpl[$item['template_id']] = $item['template_name']; - } - $app->tpl->setVar('tpl_add_select',$option); - - $sql = "SELECT template_additional FROM client WHERE client_id = " . $this->id; - $result = $app->db->queryOneRecord($sql); - $tplAdd = explode("/", $result['template_additional']); - $text = ''; - foreach($tplAdd as $item){ - if (trim($item) != ''){ - if ($text != '') $text .= '
'; - $text .= $tpl[$item]; - } - } - - $app->tpl->setVar('template_additional_list', $text); - - parent::onShowEnd(); - - } - - /* - This function is called automatically right after - the data was successful inserted in the database. - */ - function onAfterInsert() { - global $app; - // Create the group for the reseller - $groupid = $app->db->datalogInsert('sys_group', "(name,description,client_id) VALUES ('".mysql_real_escape_string($this->dataRecord["username"])."','',".$this->id.")", 'groupid'); - $groups = $groupid; - - $username = $app->db->quote($this->dataRecord["username"]); - $password = $app->db->quote($this->dataRecord["password"]); - $modules = ISPC_INTERFACE_MODULES_ENABLED.',client'; - $startmodule = 'client'; - $usertheme = $app->db->quote($this->dataRecord["usertheme"]); - $type = 'user'; - $active = 1; - $language = $app->db->quote($this->dataRecord["language"]); - - // Create the controlpaneluser for the reseller - $sql = "INSERT INTO sys_user (username,passwort,modules,startmodule,app_theme,typ,active,language,groups,default_group,client_id) - VALUES ('$username',md5('$password'),'$modules','$startmodule','$usertheme','$type','$active','$language',$groups,$groupid,".$this->id.")"; - $app->db->query($sql); - - //* set the number of clients to 1 - $app->db->query("UPDATE client SET limit_client = 1 WHERE client_id = ".$this->id); - - /* If there is a client-template, process it */ - applyClientTemplates($this->id); - - parent::onAfterInsert(); - } - - - /* - This function is called automatically right after - the data was successful updated in the database. - */ - function onAfterUpdate() { - global $app; - - // username changed - if(isset($this->dataRecord['username']) && $this->dataRecord['username'] != '' && $this->oldDataRecord['username'] != $this->dataRecord['username']) { - $username = $app->db->quote($this->dataRecord["username"]); - $client_id = $this->id; - $sql = "UPDATE sys_user SET username = '$username' WHERE client_id = $client_id"; - $app->db->query($sql); - - $tmp = $app->db->queryOneRecord("SELECT * FROM sys_group WHERE client_id = $client_id"); - $app->db->datalogUpdate("sys_group", "name = '$username'", 'groupid', $tmp['groupid']); - unset($tmp); - } - - // password changed - if(isset($this->dataRecord["password"]) && $this->dataRecord["password"] != '') { - $password = $app->db->quote($this->dataRecord["password"]); - $client_id = $this->id; - $sql = "UPDATE sys_user SET passwort = md5('$password') WHERE client_id = $client_id"; - $app->db->query($sql); - } - - // language changed - if(isset($this->dataRecord['language']) && $this->dataRecord['language'] != '' && $this->oldDataRecord['language'] != $this->dataRecord['language']) { - $language = $app->db->quote($this->dataRecord["language"]); - $client_id = $this->id; - $sql = "UPDATE sys_user SET language = '$language' WHERE client_id = $client_id"; - $app->db->query($sql); - } - - // reseller status changed - if(isset($this->dataRecord["limit_client"]) && $this->dataRecord["limit_client"] != $this->oldDataRecord["limit_client"]) { - $modules = ISPC_INTERFACE_MODULES_ENABLED.',client'; - $modules = $app->db->quote($modules); - $client_id = $this->id; - $sql = "UPDATE sys_user SET modules = '$modules' WHERE client_id = $client_id"; - $app->db->query($sql); - } - /* - * If there is a client-template, process it */ - applyClientTemplates($this->id); - - parent::onAfterUpdate(); - } -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/client/reseller_list.php b/interface/ispconfig/interface/client/reseller_list.php deleted file mode 100644 index 49a8c8516..000000000 --- a/interface/ispconfig/interface/client/reseller_list.php +++ /dev/null @@ -1,55 +0,0 @@ -auth->check_module_permissions('client'); - -if($_SESSION["s"]["user"]["typ"] != 'admin') die('Access only for administrators.'); - -$app->uses('listform_actions'); - -$app->listform_actions->SQLOrderBy = 'ORDER BY company_name, contact_name, client_id'; -$app->listform_actions->SQLExtWhere = "(limit_client > 0 or limit_client = -1)"; -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/client/templates/client_del.htm b/interface/ispconfig/interface/client/templates/client_del.htm deleted file mode 100644 index 1167b30e3..000000000 --- a/interface/ispconfig/interface/client/templates/client_del.htm +++ /dev/null @@ -1,25 +0,0 @@ -

-

- -
- -
- -
- :

- - , - -
- - - - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/client/templates/client_edit_address.htm b/interface/ispconfig/interface/client/templates/client_edit_address.htm deleted file mode 100644 index 6d2625028..000000000 --- a/interface/ispconfig/interface/client/templates/client_edit_address.htm +++ /dev/null @@ -1,101 +0,0 @@ -

-

- -
- -
-
Address -
- - -
-
- - -
-
- - -
-
- - -
-
-

{tmpl_var name='password_strength_txt'}

-
-

 

-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/client/templates/client_edit_limits.htm b/interface/ispconfig/interface/client/templates/client_edit_limits.htm deleted file mode 100644 index 200629eb3..000000000 --- a/interface/ispconfig/interface/client/templates/client_edit_limits.htm +++ /dev/null @@ -1,190 +0,0 @@ -

-

- -
- - -
-
{tmpl_var name="toolsarea_head_txt"} -
- - -
-
-
-
- -
-
Limits - -
- - -
-
- - -


{tmpl_var name='template_additional_list'}
- -
-
-   -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- -  MB -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- -  MB -
-
-

{tmpl_var name='web_php_options_txt'}

-
- {tmpl_var name='web_php_options'} -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
-

{tmpl_var name='ssh_chroot_txt'}

-
- {tmpl_var name='ssh_chroot'} -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- -  MB -
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/client/templates/client_template_edit_limits.htm b/interface/ispconfig/interface/client/templates/client_template_edit_limits.htm deleted file mode 100644 index 390f1f5b0..000000000 --- a/interface/ispconfig/interface/client/templates/client_template_edit_limits.htm +++ /dev/null @@ -1,124 +0,0 @@ -

-

- -
- -
-
Limits -
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- -  MB -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- -  MB -
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/client/templates/client_template_edit_template.htm b/interface/ispconfig/interface/client/templates/client_template_edit_template.htm deleted file mode 100644 index 6c9d90534..000000000 --- a/interface/ispconfig/interface/client/templates/client_template_edit_template.htm +++ /dev/null @@ -1,28 +0,0 @@ -

-

- -
- -
-
Template -
- - -
-
- - -
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/client/templates/client_template_list.htm b/interface/ispconfig/interface/client/templates/client_template_list.htm deleted file mode 100644 index 5892a9614..000000000 --- a/interface/ispconfig/interface/client/templates/client_template_list.htm +++ /dev/null @@ -1,53 +0,0 @@ -

-

- -
- -
-
{tmpl_var name="toolsarea_head_txt"} -
- -
-
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
{tmpl_var name="template_type"}{tmpl_var name="template_name"} - -
-
-
- -
\ No newline at end of file diff --git a/interface/ispconfig/interface/client/templates/clients_list.htm b/interface/ispconfig/interface/client/templates/clients_list.htm deleted file mode 100644 index f8447712d..000000000 --- a/interface/ispconfig/interface/client/templates/clients_list.htm +++ /dev/null @@ -1,63 +0,0 @@ -

-

- -
- -
-
{tmpl_var name="toolsarea_head_txt"} -
- -
-
-
- - - -
diff --git a/interface/ispconfig/interface/client/templates/reseller_edit_address.htm b/interface/ispconfig/interface/client/templates/reseller_edit_address.htm deleted file mode 100644 index 798fdf98a..000000000 --- a/interface/ispconfig/interface/client/templates/reseller_edit_address.htm +++ /dev/null @@ -1,101 +0,0 @@ -

-

- -
- -
-
Address -
- - -
-
- - -
-
- - -
-
- - -
-
-

{tmpl_var name='password_strength_txt'}

-
-

 

-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/client/templates/reseller_edit_limits.htm b/interface/ispconfig/interface/client/templates/reseller_edit_limits.htm deleted file mode 100644 index 8acaf4bd7..000000000 --- a/interface/ispconfig/interface/client/templates/reseller_edit_limits.htm +++ /dev/null @@ -1,179 +0,0 @@ -

-

- -
- -
-
Limits - -
- - -
-
- - - {tmpl_var name='template_additional_list'} - -
-
-   -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- -  MB -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- -  MB -
-
-

{tmpl_var name='web_php_options_txt'}

-
- {tmpl_var name='web_php_options'} -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
-

{tmpl_var name='ssh_chroot_txt'}

-
- {tmpl_var name='ssh_chroot'} -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- -  MB -
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/client/templates/resellers_list.htm b/interface/ispconfig/interface/client/templates/resellers_list.htm deleted file mode 100644 index fbe90a6f9..000000000 --- a/interface/ispconfig/interface/client/templates/resellers_list.htm +++ /dev/null @@ -1,63 +0,0 @@ -

-

- -
- -
-
{tmpl_var name="toolsarea_head_txt"} -
- -
-
-
- - - -
diff --git a/interface/ispconfig/interface/client/tools.inc.php b/interface/ispconfig/interface/client/tools.inc.php deleted file mode 100644 index c9bfdead3..000000000 --- a/interface/ispconfig/interface/client/tools.inc.php +++ /dev/null @@ -1,88 +0,0 @@ -db->queryOneRecord($sql); - $masterTemplateId = $record['template_master']; - $additionalTemplateStr = $record['template_additional']; - - /* - * if the master-Template is custom there is NO changing - */ - if ($masterTemplateId > 0){ - $sql = "SELECT * FROM client_template WHERE template_id = " . intval($masterTemplateId); - $limits = $app->db->queryOneRecord($sql); - } else { - $limits = $page->dataRecord; - } - - /* - * Process the additional tempaltes here (add them to the limits - * if != -1) - */ - $addTpl = explode('/', $additionalTemplateStr); - foreach ($addTpl as $item){ - if (trim($item) != ''){ - $sql = "SELECT * FROM client_template WHERE template_id = " . intval($item); - $addLimits = $app->db->queryOneRecord($sql); - /* maybe the template is deleted in the meantime */ - if (is_array($addLimits)){ - foreach($addLimits as $k => $v){ - if ($limits[$k] > -1){ - if ($v == -1) { - $limits[$k] = -1; - } - else { - $limits[$k] += $v; - } - } - } - } - } - } - - /* - * Write all back to the database - */ - $update = ''; - foreach($limits as $k => $v){ - if (strpos($k, 'limit') !== false && !is_array($v)){ - if ($update != '') $update .= ', '; - $update .= '`' . $k . "`='" . $v . "'"; - } - } - $sql = 'UPDATE client SET ' . $update . " WHERE client_id = " . intval($clientId); - $app->db->query($sql); -} -?> diff --git a/interface/ispconfig/interface/content.php b/interface/ispconfig/interface/content.php deleted file mode 100644 index bcc4525ac..000000000 --- a/interface/ispconfig/interface/content.php +++ /dev/null @@ -1,83 +0,0 @@ -render(); - if($page->status == 'OK') { - echo $content; - } elseif($page->status == 'REDIRECT') { - $target_parts = explode(':',$page->target); - $module = $target_parts[0]; - $page = $target_parts[1]; - if(!preg_match("/^[a-z]{2,20}$/i", $module)) die('target module name contains unallowed chars.'); - if(!preg_match("/^[a-z]{2,20}$/i", $page)) die('target page name contains unallowed chars.'); - - if(is_file(ISPC_WEB_PATH."/$module/$page.php")) { - include_once(ISPC_WEB_PATH."/$module/$page.php"); - - $classname = $module.'_'.$page; - $page = new $classname(); - - $content = $page->render(); - if($page->status == 'OK') { - echo $content; - } - } - - } - -} elseif (is_array($_SESSION["s"]['user']) or is_array($_SESSION["s"]["module"])) { - // If the user is logged in, we try to load the default page of the module - die('- error -'); -} else { - die('Page does not exist.'); -} - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/form_edit.php b/interface/ispconfig/interface/designer/form_edit.php deleted file mode 100644 index ad89ae350..000000000 --- a/interface/ispconfig/interface/designer/form_edit.php +++ /dev/null @@ -1,152 +0,0 @@ -auth->check_module_permissions('designer'); - -// Lade Template -$app->uses('tpl'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl','templates/form_edit.htm'); - -// Importing variables -$module_name = $_REQUEST["module_name"]; -$form_name = $_REQUEST["form_name"]; - -// Checking imported variables -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/',$module_name)) die("module_name contains invalid chars."); -if(!preg_match('/^[A-Za-z0-9_]{0,50}$/',$form_name)) die("form_name contains invalid chars."); - -$id = $form_name; - -if(count($_POST) > 1) { - // Bestimme aktion - if($id != '') { - $action = 'UPDATE'; - } else { - $action = 'INSERT'; - } - - - if($error == '') { - - $filename = "../".$module_name."/form/".$form_name.".tform.php"; - $form_new = $_POST["form"]; - - if(@is_file($filename)) { - include_once($filename); - $tabs = $form["tabs"]; - unset($form["tabs"]); - $form_new["tabs"] = $tabs; - } - - $file_content = ""; - - die($file_content); - - // writing module.conf - if (!$handle = fopen($filename, 'w')) { - print "Cannot open file ($filename)"; - exit; - } - - if (!fwrite($handle, $file_content)) { - print "Cannot write to file ($filename)"; - exit; - } - - fclose($handle); - - // zu Liste springen - header("Location: form_list.php"); - exit; - - } else { - $app->tpl->setVar("error","Fehler:
".$error); - $app->tpl->setVar($_POST); - } -} - -if($id != '') { -// Datensatz besteht bereits - // bestehenden Datensatz anzeigen - if($error == '') { - // es liegt ein Fehler vor - include_once("../".$module_name."/form/".$form_name.".tform.php"); - //$tabs = $form["tabs"]; - unset($form["tabs"]); - $record = $form; - $record["form_name"] = $form_name; - $record["module_name"] = $module_name; - $record["auth_preset_userid"] = $form["auth_preset"]["userid"]; - $record["auth_preset_groupid"] = $form["auth_preset"]["groupid"]; - $record["auth_preset_perm_user"] = $form["auth_preset"]["perm_user"]; - $record["auth_preset_perm_group"] = $form["auth_preset"]["perm_group"]; - $record["auth_preset_perm_other"] = $form["auth_preset"]["perm_other"]; - } else { - // ein Fehler - $record = $_POST; - //$navi = $_POST["nav"]; - unset($_POST["tabs"]); - } - $record["readonly"] = 'style="background-color: #EEEEEE;" readonly'; -} else { -// neuer datensatz - if($error == '') { - // es liegt kein Fehler vor - // Pewsets - $record["template"] = "module.tpl.htm"; - } else { - // ein Fehler - $record = $_POST; - unset($_POST["tabs"]); - - } - $record["readonly"] = ''; -} - -$record["id"] = $form_name; - -$app->tpl->setVar($record); - -include_once("lib/lang/".$_SESSION["s"]["language"]."_form_edit.lng"); -$app->tpl->setVar($wb); - -// Defaultwerte setzen -$app->tpl_defaults(); - -// Template parsen -$app->tpl->pparse(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/form_list.php b/interface/ispconfig/interface/designer/form_list.php deleted file mode 100644 index c0d0a3d31..000000000 --- a/interface/ispconfig/interface/designer/form_list.php +++ /dev/null @@ -1,89 +0,0 @@ -auth->check_module_permissions('designer'); - -$app->uses('tpl'); - -$app->tpl->newTemplate('form.tpl.htm'); -$app->tpl->setInclude('content_tpl', 'templates/form_list.htm'); - -function getinfo($file, $form_file, $bgcolor) { - $module_name = $file; - include(ISPC_WEB_PATH."/$file/form/$form_file"); - return array( 'name' => $form['name'], - 'title' => $form['title'], - 'description' => $form['description'], - 'module_name' => $module_name, - 'bgcolor' => $bgcolor - ); -} - -// lese Module aus -$bgcolor = '#FFFFFF'; -$modules_list = array(); -$handle = @opendir(ISPC_WEB_PATH); -while ($file = @readdir ($handle)) { - if ($file != '.' && $file != '..') { - if(@is_dir(ISPC_WEB_PATH."/$file")) { - if(is_file(ISPC_WEB_PATH.'/'.$file.'/lib/module.conf.php') and $file != 'login') { - if(@is_dir(ISPC_WEB_PATH."/$file/form")) { - $handle2 = opendir(ISPC_WEB_PATH."/$file/form"); - while ($form_file = @readdir ($handle2)) { - if (substr($form_file,0,1) != ".") { - //echo ISPC_ROOT_PATH."/web/".$file."/form/$form_file
"; - //include_once(ISPC_ROOT_PATH."/web/".$file."/form/$form_file"); - // Farbwechsel - $bgcolor = ($bgcolor == '#FFFFFF') ? '#EEEEEE' : '#FFFFFF'; - $modules_list[] = getinfo($file, $form_file, $bgcolor); - - } - } - } - } - } - } -} - -$app->tpl->setLoop('records', $modules_list); - -//* load language file -$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_form_list.lng'; -include($lng_file); -$app->tpl->setVar($wb); - -$app->tpl_defaults(); -$app->tpl->pparse(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/form_show.php b/interface/ispconfig/interface/designer/form_show.php deleted file mode 100644 index c90178b4f..000000000 --- a/interface/ispconfig/interface/designer/form_show.php +++ /dev/null @@ -1,119 +0,0 @@ -auth->check_module_permissions('designer'); - -if($_SESSION["s"]["user"]["typ"] != "admin") die("Admin permissions required."); - -$app->uses('tpl'); - -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl','templates/form_show.htm'); - - -// TODO: Check ID for malicius chars -$module_name = $_REQUEST["module_name"]; -$form_name = $_REQUEST["form_name"]; - -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/',$module_name)) die("module_name contains invalid chars."); -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/',$form_name)) die("form_name contains invalid chars."); - -include_once("../".$module_name."/form/".$form_name.".tform.php"); -$tabs = $form["tabs"]; -unset($form["tabs"]); -$record = $form; -$record["form_name"] = $form_name; -$record["module_name"] = $module_name; - -// loading language file -$lng_file = "lib/lang/".$_SESSION["s"]["language"]."_form_show.lng"; -include($lng_file); -$app->tpl->setVar($wb); - -// baue Tabs navi -$content = ""; -$n1 = 0; -$n2 = 0; -if(is_array($tabs)) { -foreach($tabs as $tab_id => $tab) { - $content .= " - - - - - - "; - //$content .= "\r\n"; - foreach($tab["fields"] as $field_id => $field) { - //$content .= "\r\n"; - //$content .= "\r\n"; - //$content .= "\r\n"; - $content .= " - - - "; - $n2++; - } - $content .= " -
$tab[title] - - - - - -
Bereich:
Titel:
Ziel:       
Link:       
$field_id - - - - -
 
- - "; - $n1++; -} -} - -$record["nav"] = $content; - - -$app->tpl->setVar($record); - - -$app->tpl->setLoop('records',$modules_list); - -$app->tpl_defaults(); -$app->tpl->pparse(); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/index.php b/interface/ispconfig/interface/designer/index.php deleted file mode 100644 index e69de29bb..000000000 diff --git a/interface/ispconfig/interface/designer/lib/admin.conf.php b/interface/ispconfig/interface/designer/lib/admin.conf.php deleted file mode 100644 index 8dce5a573..000000000 --- a/interface/ispconfig/interface/designer/lib/admin.conf.php +++ /dev/null @@ -1,4 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/lib/lang/bg.lng b/interface/ispconfig/interface/designer/lib/lang/bg.lng deleted file mode 100644 index acb6c3546..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/bg.lng +++ /dev/null @@ -1,2 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/bg_form_edit.lng b/interface/ispconfig/interface/designer/lib/lang/bg_form_edit.lng deleted file mode 100644 index 2138e0416..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/bg_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/bg_form_list.lng b/interface/ispconfig/interface/designer/lib/lang/bg_form_list.lng deleted file mode 100644 index 4a053a3c5..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/bg_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/bg_form_show.lng b/interface/ispconfig/interface/designer/lib/lang/bg_form_show.lng deleted file mode 100644 index 78cf0edda..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/bg_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/bg_module_edit.lng b/interface/ispconfig/interface/designer/lib/lang/bg_module_edit.lng deleted file mode 100644 index 50f0309f7..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/bg_module_edit.lng +++ /dev/null @@ -1,12 +0,0 @@ -Description

Modulename: Name of the module directory. Only numbers, chars and underscore allowed.
Moduletitle: Will be shown in the (upper) main navigation.
Template file: Template file of the module. Currently'; -?> diff --git a/interface/ispconfig/interface/designer/lib/lang/bg_module_list.lng b/interface/ispconfig/interface/designer/lib/lang/bg_module_list.lng deleted file mode 100644 index 31209a075..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/bg_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/bg_module_nav_edit.lng b/interface/ispconfig/interface/designer/lib/lang/bg_module_nav_edit.lng deleted file mode 100644 index 7698aac73..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/bg_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/bg_module_nav_item_edit.lng b/interface/ispconfig/interface/designer/lib/lang/bg_module_nav_item_edit.lng deleted file mode 100644 index 9a928f5cb..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/bg_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/bg_module_show.lng b/interface/ispconfig/interface/designer/lib/lang/bg_module_show.lng deleted file mode 100644 index 3cbe96358..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/bg_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/br.lng b/interface/ispconfig/interface/designer/lib/lang/br.lng deleted file mode 100644 index acb6c3546..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/br.lng +++ /dev/null @@ -1,2 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/br_form_edit.lng b/interface/ispconfig/interface/designer/lib/lang/br_form_edit.lng deleted file mode 100644 index 7d7534a4e..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/br_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/br_form_list.lng b/interface/ispconfig/interface/designer/lib/lang/br_form_list.lng deleted file mode 100644 index b16ce554b..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/br_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/br_form_show.lng b/interface/ispconfig/interface/designer/lib/lang/br_form_show.lng deleted file mode 100644 index 5b68a3165..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/br_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/br_module_edit.lng b/interface/ispconfig/interface/designer/lib/lang/br_module_edit.lng deleted file mode 100644 index 34471acd2..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/br_module_edit.lng +++ /dev/null @@ -1,22 +0,0 @@ -Descrição -

-Nome do Módulo: Nome do diretório do módulo. Somente números, letras e underscores são permitidos.
-Título do Módulo: Será exibido em caixa alta no menu de navegação.
-Arquivo de Gabarito: Arquivo de Gabarito do Módulo Disponível: modulo.tpl.htm e modulo_tree.tpl.htm. O padrão é modulo.tpl.htm.
-Frame de Navegação: Se modulo_tree.tpl.htm foi selecionado como arquivo de gabarito, insira aqui o caminho do script para o frame a esquerda.
-Página Padrão: Esta página será exibida quando o módulo for aberto.
-Tamanho da Aba: Tamanho das abas na navegação principal. Este campo fica em branco por padrão. Você pode informar valores absolutos em pixels (ex.: 20) ou valores relativos (ex.: 20%).
-Dica: Todos os caminhos são relativos ao diretório web. -'; -?> diff --git a/interface/ispconfig/interface/designer/lib/lang/br_module_list.lng b/interface/ispconfig/interface/designer/lib/lang/br_module_list.lng deleted file mode 100644 index 822263a4a..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/br_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/br_module_nav_edit.lng b/interface/ispconfig/interface/designer/lib/lang/br_module_nav_edit.lng deleted file mode 100644 index c5e3266a7..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/br_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/br_module_nav_item_edit.lng b/interface/ispconfig/interface/designer/lib/lang/br_module_nav_item_edit.lng deleted file mode 100644 index 5eafa775a..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/br_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/br_module_show.lng b/interface/ispconfig/interface/designer/lib/lang/br_module_show.lng deleted file mode 100644 index 1fb180071..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/br_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/de.lng b/interface/ispconfig/interface/designer/lib/lang/de.lng deleted file mode 100644 index acb6c3546..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/de.lng +++ /dev/null @@ -1,2 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/de_form_edit.lng b/interface/ispconfig/interface/designer/lib/lang/de_form_edit.lng deleted file mode 100644 index 74bf458d9..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/de_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/de_form_list.lng b/interface/ispconfig/interface/designer/lib/lang/de_form_list.lng deleted file mode 100644 index 998a64f70..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/de_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/de_form_show.lng b/interface/ispconfig/interface/designer/lib/lang/de_form_show.lng deleted file mode 100644 index b19fd3445..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/de_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/de_module_edit.lng b/interface/ispconfig/interface/designer/lib/lang/de_module_edit.lng deleted file mode 100644 index 6eacd64b1..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/de_module_edit.lng +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/de_module_list.lng b/interface/ispconfig/interface/designer/lib/lang/de_module_list.lng deleted file mode 100644 index 604063020..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/de_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/de_module_nav_edit.lng b/interface/ispconfig/interface/designer/lib/lang/de_module_nav_edit.lng deleted file mode 100644 index d5142f03c..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/de_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/de_module_nav_item_edit.lng b/interface/ispconfig/interface/designer/lib/lang/de_module_nav_item_edit.lng deleted file mode 100644 index 8c0c33c1a..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/de_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/de_module_show.lng b/interface/ispconfig/interface/designer/lib/lang/de_module_show.lng deleted file mode 100644 index f4b2ad11f..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/de_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/en.lng b/interface/ispconfig/interface/designer/lib/lang/en.lng deleted file mode 100644 index 15c5adc7f..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/en.lng +++ /dev/null @@ -1,3 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/lib/lang/en_form_edit.lng b/interface/ispconfig/interface/designer/lib/lang/en_form_edit.lng deleted file mode 100644 index f55e0f4ca..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/en_form_edit.lng +++ /dev/null @@ -1,26 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/lib/lang/en_form_list.lng b/interface/ispconfig/interface/designer/lib/lang/en_form_list.lng deleted file mode 100644 index 21a76877d..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/en_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/lib/lang/en_form_show.lng b/interface/ispconfig/interface/designer/lib/lang/en_form_show.lng deleted file mode 100644 index 54b14f6e1..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/en_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/lib/lang/en_module_edit.lng b/interface/ispconfig/interface/designer/lib/lang/en_module_edit.lng deleted file mode 100644 index 285a363df..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/en_module_edit.lng +++ /dev/null @@ -1,23 +0,0 @@ -Description -

-Modulename: Name of the module directory. Only numbers, chars and underscore allowed.
-Moduletitle: Will be shown in the (upper) main navigation.
-Template file: Template file of the module. Currently available: module.tpl.htm and module_tree.tpl.htm. Default is module.tpl.htm.
-NaviFrame: If module_tree.tpl.htm selected as template file, enter here the path to the script file for the left frame.
-Default page: These page will be shown when the module is opened.
-Tab width: Width of the Tabs in the main navigation. The field is empty by default. You can enter values absolute in pixel (e.g 20) or relative (e.g 20%).
-Hint: All paths are relative to the directory "web". -'; - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/lib/lang/en_module_list.lng b/interface/ispconfig/interface/designer/lib/lang/en_module_list.lng deleted file mode 100644 index 45260fd9a..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/en_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/lib/lang/en_module_nav_edit.lng b/interface/ispconfig/interface/designer/lib/lang/en_module_nav_edit.lng deleted file mode 100644 index 3600238f7..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/en_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/lib/lang/en_module_nav_item_edit.lng b/interface/ispconfig/interface/designer/lib/lang/en_module_nav_item_edit.lng deleted file mode 100644 index 56eee32de..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/en_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/lib/lang/en_module_show.lng b/interface/ispconfig/interface/designer/lib/lang/en_module_show.lng deleted file mode 100644 index e76f5f332..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/en_module_show.lng +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/lib/lang/es.lng b/interface/ispconfig/interface/designer/lib/lang/es.lng deleted file mode 100644 index acb6c3546..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/es.lng +++ /dev/null @@ -1,2 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/es_form_edit.lng b/interface/ispconfig/interface/designer/lib/lang/es_form_edit.lng deleted file mode 100644 index c5312559b..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/es_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/es_form_list.lng b/interface/ispconfig/interface/designer/lib/lang/es_form_list.lng deleted file mode 100644 index 3334d0b29..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/es_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/es_form_show.lng b/interface/ispconfig/interface/designer/lib/lang/es_form_show.lng deleted file mode 100644 index 4cac14529..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/es_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/es_module_edit.lng b/interface/ispconfig/interface/designer/lib/lang/es_module_edit.lng deleted file mode 100644 index c126365a5..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/es_module_edit.lng +++ /dev/null @@ -1,12 +0,0 @@ -Descripción

Nombre del módulo: Nombre del directorio del módulo. Sólo se permiten números, carácteres y subrayados.
Título del módulo: Se mostrará en la barra de navegación principal.
Fichero de plantilla: Fichero de la plantilla del módulo. Disponibles actualmente: module.tpl.htm y module_tree.tpl.htm. Por defecto: module.tpl.htm.
Marco de navegación: Si el fichero de plantilla module_tree.tpl.htm está seleccionado, introduzca aquí la ruta al fichero del script del marco de la izquierda.
Página por defecto: Esta página se mostrará cuando el módulo se abra.
Ancho de pestaña: Ancho de las pestañas en la barra de navegación. El campo está vacío por defecto. Puede introducir valores absolutos en píxeles (p.ej. 20) o relativos (p.ej. 20%).
Pista: Todas las rutas son relativas al directorio.'; -?> diff --git a/interface/ispconfig/interface/designer/lib/lang/es_module_list.lng b/interface/ispconfig/interface/designer/lib/lang/es_module_list.lng deleted file mode 100644 index 2805a07bc..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/es_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/es_module_nav_edit.lng b/interface/ispconfig/interface/designer/lib/lang/es_module_nav_edit.lng deleted file mode 100644 index 22688b6e1..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/es_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/es_module_nav_item_edit.lng b/interface/ispconfig/interface/designer/lib/lang/es_module_nav_item_edit.lng deleted file mode 100644 index ec39e5f89..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/es_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/es_module_show.lng b/interface/ispconfig/interface/designer/lib/lang/es_module_show.lng deleted file mode 100644 index 1f1199de5..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/es_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/fi.lng b/interface/ispconfig/interface/designer/lib/lang/fi.lng deleted file mode 100644 index acb6c3546..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/fi.lng +++ /dev/null @@ -1,2 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/fi_form_edit.lng b/interface/ispconfig/interface/designer/lib/lang/fi_form_edit.lng deleted file mode 100644 index c9a13038a..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/fi_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/fi_form_list.lng b/interface/ispconfig/interface/designer/lib/lang/fi_form_list.lng deleted file mode 100644 index 9052c8f0c..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/fi_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/fi_form_show.lng b/interface/ispconfig/interface/designer/lib/lang/fi_form_show.lng deleted file mode 100644 index 247a95be5..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/fi_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/fi_module_edit.lng b/interface/ispconfig/interface/designer/lib/lang/fi_module_edit.lng deleted file mode 100644 index 8bb4a5c09..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/fi_module_edit.lng +++ /dev/null @@ -1,22 +0,0 @@ -Kuvaus -

-Modulename: Ohjelmaosion kansion nimi. Vain numerot,kirjaimet ja alaviiva on sallittu.
-Moduletitle: Tulee näkymään ylemmässä päävalikossa.
-Template file: Ohjelmaosion mallitiedosto. Käytettävissä tällä hetkellä: module.tpl.htm ja module_tree.tpl.htm. Oletus on module.tpl.htm.
-NaviFrame: Jos module_tree.tpl.htm valittiin mallitiedostoksi, kirjoita tähän vasemman kehyksen skriptitiedoston polku.
-Default page: Tämä sivu näytetetään kun ohjelmaosio avataan.
-Tab width: Päälikon painikkeiden leveys. Kenttä on oletuksenä tyhjä. Voit antaa arvon pikseleinää tai prosentteina. (esim. 20 tai 20%).
-Vihje: Kaikki polut ovat suhteellisia web-kansioon, eivät absoluuttisia. -'; -?> diff --git a/interface/ispconfig/interface/designer/lib/lang/fi_module_list.lng b/interface/ispconfig/interface/designer/lib/lang/fi_module_list.lng deleted file mode 100644 index f07c9a377..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/fi_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/fi_module_nav_edit.lng b/interface/ispconfig/interface/designer/lib/lang/fi_module_nav_edit.lng deleted file mode 100644 index b7c03eafb..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/fi_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/fi_module_nav_item_edit.lng b/interface/ispconfig/interface/designer/lib/lang/fi_module_nav_item_edit.lng deleted file mode 100644 index 5f32d5848..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/fi_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/fi_module_show.lng b/interface/ispconfig/interface/designer/lib/lang/fi_module_show.lng deleted file mode 100644 index 066d92f58..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/fi_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/fr.lng b/interface/ispconfig/interface/designer/lib/lang/fr.lng deleted file mode 100644 index acb6c3546..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/fr.lng +++ /dev/null @@ -1,2 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/fr_form_edit.lng b/interface/ispconfig/interface/designer/lib/lang/fr_form_edit.lng deleted file mode 100644 index 4ef20b0b2..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/fr_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/fr_form_list.lng b/interface/ispconfig/interface/designer/lib/lang/fr_form_list.lng deleted file mode 100644 index b20b84727..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/fr_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/fr_form_show.lng b/interface/ispconfig/interface/designer/lib/lang/fr_form_show.lng deleted file mode 100644 index 9c9580ce1..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/fr_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/fr_module_edit.lng b/interface/ispconfig/interface/designer/lib/lang/fr_module_edit.lng deleted file mode 100644 index c2eab9481..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/fr_module_edit.lng +++ /dev/null @@ -1,14 +0,0 @@ -Description
Nom du Module: Nom du rpertoire du module. Seulement nombres, lettres et underscore sont autoriss.Titre du Module: Seras affich dans le menu de navigation (suprieur).Fichier Template: Fichier Template du module. Disponible actuellement: module.tpl.htm et module_tree.tpl.htm. Par dfaut module.tpl.htm.Frame de Navigation: Si module_tree.tpl.htm est choisi comme fichier template, entrer ici le chemin vers le script de la frame de gauche.Page par Dfaut: Cette page seras affiche quand le module seras ouvert.Largeur tableau: Largeur des tableau dans la frame principale. Le champ est vide par defaut. Vous pouvez entrer une valeur absolue en pixel (e.g 20) ou relative (e.g 20%).Note: Tous les paths sont relatifs par rapport au dossier web. -'; -?> diff --git a/interface/ispconfig/interface/designer/lib/lang/fr_module_list.lng b/interface/ispconfig/interface/designer/lib/lang/fr_module_list.lng deleted file mode 100644 index 5389ac945..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/fr_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/fr_module_nav_edit.lng b/interface/ispconfig/interface/designer/lib/lang/fr_module_nav_edit.lng deleted file mode 100644 index 423588c93..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/fr_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/fr_module_nav_item_edit.lng b/interface/ispconfig/interface/designer/lib/lang/fr_module_nav_item_edit.lng deleted file mode 100644 index ada5f4ee8..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/fr_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/fr_module_show.lng b/interface/ispconfig/interface/designer/lib/lang/fr_module_show.lng deleted file mode 100644 index da09511d7..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/fr_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/hu.lng b/interface/ispconfig/interface/designer/lib/lang/hu.lng deleted file mode 100644 index acb6c3546..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/hu.lng +++ /dev/null @@ -1,2 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/hu_form_edit.lng b/interface/ispconfig/interface/designer/lib/lang/hu_form_edit.lng deleted file mode 100644 index 54fe173ec..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/hu_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/hu_form_list.lng b/interface/ispconfig/interface/designer/lib/lang/hu_form_list.lng deleted file mode 100644 index 47432257f..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/hu_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/hu_form_show.lng b/interface/ispconfig/interface/designer/lib/lang/hu_form_show.lng deleted file mode 100644 index 12be609a1..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/hu_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/hu_module_edit.lng b/interface/ispconfig/interface/designer/lib/lang/hu_module_edit.lng deleted file mode 100644 index 592ccd76b..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/hu_module_edit.lng +++ /dev/null @@ -1,22 +0,0 @@ -Description -

-Modulename: Name of the module directory. Only numbers, chars and underscore allowed.
-Moduletitle: Will be shown in the (upper) main navigation.
-Template file: Template file of the module. Currently available: module.tpl.htm and module_tree.tpl.htm. Default is module.tpl.htm.
-NaviFrame: If module_tree.tpl.htm selected as template file, enter here the path to the script file for the left frame.
-Default page: These page will be shown when the module is opened.
-Tab width: Width of the Tabs in the main navigation. The field is empty by default. You can enter values absolute in pixel (e.g 20) or relative (e.g 20%).
-Hint: All paths are relative to the directory web. -'; -?> diff --git a/interface/ispconfig/interface/designer/lib/lang/hu_module_list.lng b/interface/ispconfig/interface/designer/lib/lang/hu_module_list.lng deleted file mode 100644 index bc9ebed58..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/hu_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/hu_module_nav_edit.lng b/interface/ispconfig/interface/designer/lib/lang/hu_module_nav_edit.lng deleted file mode 100644 index fa5f15aa9..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/hu_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/hu_module_nav_item_edit.lng b/interface/ispconfig/interface/designer/lib/lang/hu_module_nav_item_edit.lng deleted file mode 100644 index 23f7d1592..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/hu_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/hu_module_show.lng b/interface/ispconfig/interface/designer/lib/lang/hu_module_show.lng deleted file mode 100644 index 357fca149..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/hu_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/it.lng b/interface/ispconfig/interface/designer/lib/lang/it.lng deleted file mode 100644 index acb6c3546..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/it.lng +++ /dev/null @@ -1,2 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/it_form_edit.lng b/interface/ispconfig/interface/designer/lib/lang/it_form_edit.lng deleted file mode 100644 index 54fe173ec..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/it_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/it_form_list.lng b/interface/ispconfig/interface/designer/lib/lang/it_form_list.lng deleted file mode 100644 index 47432257f..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/it_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/it_form_show.lng b/interface/ispconfig/interface/designer/lib/lang/it_form_show.lng deleted file mode 100644 index 12be609a1..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/it_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/it_module_edit.lng b/interface/ispconfig/interface/designer/lib/lang/it_module_edit.lng deleted file mode 100644 index 592ccd76b..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/it_module_edit.lng +++ /dev/null @@ -1,22 +0,0 @@ -Description -

-Modulename: Name of the module directory. Only numbers, chars and underscore allowed.
-Moduletitle: Will be shown in the (upper) main navigation.
-Template file: Template file of the module. Currently available: module.tpl.htm and module_tree.tpl.htm. Default is module.tpl.htm.
-NaviFrame: If module_tree.tpl.htm selected as template file, enter here the path to the script file for the left frame.
-Default page: These page will be shown when the module is opened.
-Tab width: Width of the Tabs in the main navigation. The field is empty by default. You can enter values absolute in pixel (e.g 20) or relative (e.g 20%).
-Hint: All paths are relative to the directory web. -'; -?> diff --git a/interface/ispconfig/interface/designer/lib/lang/it_module_list.lng b/interface/ispconfig/interface/designer/lib/lang/it_module_list.lng deleted file mode 100644 index bc9ebed58..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/it_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/it_module_nav_edit.lng b/interface/ispconfig/interface/designer/lib/lang/it_module_nav_edit.lng deleted file mode 100644 index fa5f15aa9..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/it_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/it_module_nav_item_edit.lng b/interface/ispconfig/interface/designer/lib/lang/it_module_nav_item_edit.lng deleted file mode 100644 index 23f7d1592..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/it_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/it_module_show.lng b/interface/ispconfig/interface/designer/lib/lang/it_module_show.lng deleted file mode 100644 index e295047b0..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/it_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/ja.lng b/interface/ispconfig/interface/designer/lib/lang/ja.lng deleted file mode 100644 index acb6c3546..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ja.lng +++ /dev/null @@ -1,2 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/ja_form_edit.lng b/interface/ispconfig/interface/designer/lib/lang/ja_form_edit.lng deleted file mode 100644 index 130ca0788..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ja_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/ja_form_list.lng b/interface/ispconfig/interface/designer/lib/lang/ja_form_list.lng deleted file mode 100644 index 47432257f..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ja_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/ja_form_show.lng b/interface/ispconfig/interface/designer/lib/lang/ja_form_show.lng deleted file mode 100644 index 37017fa4a..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ja_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/ja_module_edit.lng b/interface/ispconfig/interface/designer/lib/lang/ja_module_edit.lng deleted file mode 100644 index 592ccd76b..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ja_module_edit.lng +++ /dev/null @@ -1,22 +0,0 @@ -Description -

-Modulename: Name of the module directory. Only numbers, chars and underscore allowed.
-Moduletitle: Will be shown in the (upper) main navigation.
-Template file: Template file of the module. Currently available: module.tpl.htm and module_tree.tpl.htm. Default is module.tpl.htm.
-NaviFrame: If module_tree.tpl.htm selected as template file, enter here the path to the script file for the left frame.
-Default page: These page will be shown when the module is opened.
-Tab width: Width of the Tabs in the main navigation. The field is empty by default. You can enter values absolute in pixel (e.g 20) or relative (e.g 20%).
-Hint: All paths are relative to the directory web. -'; -?> diff --git a/interface/ispconfig/interface/designer/lib/lang/ja_module_list.lng b/interface/ispconfig/interface/designer/lib/lang/ja_module_list.lng deleted file mode 100644 index bc9ebed58..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ja_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/ja_module_nav_edit.lng b/interface/ispconfig/interface/designer/lib/lang/ja_module_nav_edit.lng deleted file mode 100644 index fa5f15aa9..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ja_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/ja_module_nav_item_edit.lng b/interface/ispconfig/interface/designer/lib/lang/ja_module_nav_item_edit.lng deleted file mode 100644 index 23f7d1592..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ja_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/ja_module_show.lng b/interface/ispconfig/interface/designer/lib/lang/ja_module_show.lng deleted file mode 100644 index 6fe8d45be..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ja_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/nl.lng b/interface/ispconfig/interface/designer/lib/lang/nl.lng deleted file mode 100644 index acb6c3546..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/nl.lng +++ /dev/null @@ -1,2 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/nl_form_edit.lng b/interface/ispconfig/interface/designer/lib/lang/nl_form_edit.lng deleted file mode 100644 index bdc764237..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/nl_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/nl_form_list.lng b/interface/ispconfig/interface/designer/lib/lang/nl_form_list.lng deleted file mode 100644 index 2da972504..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/nl_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/nl_form_show.lng b/interface/ispconfig/interface/designer/lib/lang/nl_form_show.lng deleted file mode 100644 index 1c82ea156..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/nl_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/nl_module_edit.lng b/interface/ispconfig/interface/designer/lib/lang/nl_module_edit.lng deleted file mode 100644 index f4234dc28..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/nl_module_edit.lng +++ /dev/null @@ -1,22 +0,0 @@ -Description -

-Modulename: Naam van de module directory. Alleen cijfers, letters en underscore zijn toegestaan.
-Moduletitle: Zal worden getoond in de hoofdnavigatie (bovenaan).
-Template file: Template bestand van de module. Momenteel beschikbaar: module.tpl.htm en module_tree.tpl.htm. Standaard is de module.tpl.htm.
-NaviFrame: Als de module_tree.tpl.htm geselecteerd is als template bestand, geef het pad op dat verwijst naar het scriptbestand voor het linker frame.
-Default page: Deze pagina wordt getoont wanneer de module is geopend.
-Tab width: Tabbreedte in de hoofdnavigatie. Het veld is standaard leeg. U kunt absolute waarden opgeven in pixels (bijv. 20) of relatieve (bijv. 20%).
-Hint: Alle paden zijn relatief aan de directorie web. -'; -?> diff --git a/interface/ispconfig/interface/designer/lib/lang/nl_module_list.lng b/interface/ispconfig/interface/designer/lib/lang/nl_module_list.lng deleted file mode 100644 index 19ea5e944..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/nl_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/nl_module_nav_edit.lng b/interface/ispconfig/interface/designer/lib/lang/nl_module_nav_edit.lng deleted file mode 100644 index 504b7f754..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/nl_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/nl_module_nav_item_edit.lng b/interface/ispconfig/interface/designer/lib/lang/nl_module_nav_item_edit.lng deleted file mode 100644 index 4c2bddd61..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/nl_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/nl_module_show.lng b/interface/ispconfig/interface/designer/lib/lang/nl_module_show.lng deleted file mode 100644 index 8f605e40f..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/nl_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/pl.lng b/interface/ispconfig/interface/designer/lib/lang/pl.lng deleted file mode 100644 index acb6c3546..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/pl.lng +++ /dev/null @@ -1,2 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/pl_form_edit.lng b/interface/ispconfig/interface/designer/lib/lang/pl_form_edit.lng deleted file mode 100644 index ee4f4c410..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/pl_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/pl_form_list.lng b/interface/ispconfig/interface/designer/lib/lang/pl_form_list.lng deleted file mode 100644 index ac8572277..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/pl_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/pl_form_show.lng b/interface/ispconfig/interface/designer/lib/lang/pl_form_show.lng deleted file mode 100644 index db62af16b..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/pl_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/pl_module_edit.lng b/interface/ispconfig/interface/designer/lib/lang/pl_module_edit.lng deleted file mode 100644 index 691e55052..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/pl_module_edit.lng +++ /dev/null @@ -1,22 +0,0 @@ -Opis -

-Nazwa modułu: Nazwa katalogu z modułem. Tylko liczby, litery (bez polskich) i podkreślenie są dozwolone.
-Tytuł modułu: Będzie wyświetlaby w głównym menu nawigacyjnym.
-Plik szablonu: Plik szablonu modułu. Aktualnie dostępne: module.tpl.htm oraz module_tree.tpl.htm. Domyślnie jest module.tpl.htm.
-Ramka nawigacyjna: Jeśli module_tree.tpl.htm wybrano jako plik szablonu, wpisz tutaj ścieżkę do pliku ze skryptem dla lewej ramki.
-Strona domyślna: Ta strona będzie otwierana na początku podczas otwarcia modułu.
-Szerokość zakładki: Szerokość zakładek w głownym menu nawigacyjnym. To pole jest domyślnie puste. Możesz podać wartość w pikselach (np.: 20) lub procentach (np.: 20%).
-Podpowiedź: Wszystkie ścieżki są względne według strony www.. -'; -?> diff --git a/interface/ispconfig/interface/designer/lib/lang/pl_module_list.lng b/interface/ispconfig/interface/designer/lib/lang/pl_module_list.lng deleted file mode 100644 index 308d1c688..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/pl_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/pl_module_nav_edit.lng b/interface/ispconfig/interface/designer/lib/lang/pl_module_nav_edit.lng deleted file mode 100644 index 5ace229a9..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/pl_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/pl_module_nav_item_edit.lng b/interface/ispconfig/interface/designer/lib/lang/pl_module_nav_item_edit.lng deleted file mode 100644 index 779b3b4b3..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/pl_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/pl_module_show.lng b/interface/ispconfig/interface/designer/lib/lang/pl_module_show.lng deleted file mode 100644 index 9b98c4948..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/pl_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/pt.lng b/interface/ispconfig/interface/designer/lib/lang/pt.lng deleted file mode 100644 index 29f4a51ef..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/pt.lng +++ /dev/null @@ -1,3 +0,0 @@ - - diff --git a/interface/ispconfig/interface/designer/lib/lang/pt_form_edit.lng b/interface/ispconfig/interface/designer/lib/lang/pt_form_edit.lng deleted file mode 100644 index 75869ca5c..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/pt_form_edit.lng +++ /dev/null @@ -1,25 +0,0 @@ - - diff --git a/interface/ispconfig/interface/designer/lib/lang/pt_form_list.lng b/interface/ispconfig/interface/designer/lib/lang/pt_form_list.lng deleted file mode 100644 index 01d0f28e9..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/pt_form_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/designer/lib/lang/pt_form_show.lng b/interface/ispconfig/interface/designer/lib/lang/pt_form_show.lng deleted file mode 100644 index 76e748790..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/pt_form_show.lng +++ /dev/null @@ -1,19 +0,0 @@ - - diff --git a/interface/ispconfig/interface/designer/lib/lang/pt_module_edit.lng b/interface/ispconfig/interface/designer/lib/lang/pt_module_edit.lng deleted file mode 100644 index b04975d26..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/pt_module_edit.lng +++ /dev/null @@ -1,23 +0,0 @@ -Descrição -

-Nome do Módulo: Nome da pasta do módulo. Apenas números, letras e underscores são permitidos.
-Título do Módulo: Será exibido em caixa alta no menu de navegação.
-Ficheiro de Template: Ficheiros de Template do Módulo Disponível: modulo.tpl.htm e modulo_tree.tpl.htm. O padrão é modulo.tpl.htm.
-Frame de Navegação: Se modulo_tree.tpl.htm foi seleccionado como ficheiro de template, insira aqui a pasta do script para o frame a esquerda.
-Página Padrão: Esta página será exibida quando o módulo for aberto.
-Tamanho da Aba: Tamanho das abas na navegação principal. Este campo fica em branco por padrão. Pode fornecer valores absolutos em pixels (ex.: 20) ou valores relativos (ex.: 20%).
-Dica: Todos as pastas são relativas à pasta web. -'; -?> - diff --git a/interface/ispconfig/interface/designer/lib/lang/pt_module_list.lng b/interface/ispconfig/interface/designer/lib/lang/pt_module_list.lng deleted file mode 100644 index 8b8f24775..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/pt_module_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/interface/ispconfig/interface/designer/lib/lang/pt_module_nav_edit.lng b/interface/ispconfig/interface/designer/lib/lang/pt_module_nav_edit.lng deleted file mode 100644 index 3a9823598..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/pt_module_nav_edit.lng +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/interface/ispconfig/interface/designer/lib/lang/pt_module_nav_item_edit.lng b/interface/ispconfig/interface/designer/lib/lang/pt_module_nav_item_edit.lng deleted file mode 100644 index 4cb7df1af..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/pt_module_nav_item_edit.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/designer/lib/lang/pt_module_show.lng b/interface/ispconfig/interface/designer/lib/lang/pt_module_show.lng deleted file mode 100644 index 606181de6..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/pt_module_show.lng +++ /dev/null @@ -1,17 +0,0 @@ - - diff --git a/interface/ispconfig/interface/designer/lib/lang/ro.lng b/interface/ispconfig/interface/designer/lib/lang/ro.lng deleted file mode 100644 index acb6c3546..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ro.lng +++ /dev/null @@ -1,2 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/ro_form_edit.lng b/interface/ispconfig/interface/designer/lib/lang/ro_form_edit.lng deleted file mode 100644 index a99b975f0..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ro_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/ro_form_list.lng b/interface/ispconfig/interface/designer/lib/lang/ro_form_list.lng deleted file mode 100644 index 49b9d5eaf..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ro_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/ro_form_show.lng b/interface/ispconfig/interface/designer/lib/lang/ro_form_show.lng deleted file mode 100644 index 9cc5e71d9..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ro_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/ro_module_edit.lng b/interface/ispconfig/interface/designer/lib/lang/ro_module_edit.lng deleted file mode 100644 index 327550f20..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ro_module_edit.lng +++ /dev/null @@ -1,12 +0,0 @@ -Description

Modulename: Name of the module directory. Only numbers, chars and underscore allowed.
Moduletitle: Will be shown in the (upper) main navigation.
Template file: Template file of the module. Currently available: module.tpl.htm and module_tree.tpl.htm. Default is module.tpl.htm.
NaviFrame: If module_tree.tpl.htm selected as template file, enter here the path to the script file for the left frame.
Default page: These page will be shown when the module is opened.
Tab width: Width of the Tabs in the main navigation. The field is empty by default. You can enter values absolute in pixel (e.g 20) or relative (e.g 20%).
Hint: All paths are relative to the directory '; -?> diff --git a/interface/ispconfig/interface/designer/lib/lang/ro_module_list.lng b/interface/ispconfig/interface/designer/lib/lang/ro_module_list.lng deleted file mode 100644 index c53b556a4..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ro_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/ro_module_nav_edit.lng b/interface/ispconfig/interface/designer/lib/lang/ro_module_nav_edit.lng deleted file mode 100644 index ee6bf5426..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ro_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/ro_module_nav_item_edit.lng b/interface/ispconfig/interface/designer/lib/lang/ro_module_nav_item_edit.lng deleted file mode 100644 index 9b7d60df9..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ro_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/ro_module_show.lng b/interface/ispconfig/interface/designer/lib/lang/ro_module_show.lng deleted file mode 100644 index 2fb748c3d..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ro_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/ru.lng b/interface/ispconfig/interface/designer/lib/lang/ru.lng deleted file mode 100644 index 29f4a51ef..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ru.lng +++ /dev/null @@ -1,3 +0,0 @@ - - diff --git a/interface/ispconfig/interface/designer/lib/lang/ru_form_edit.lng b/interface/ispconfig/interface/designer/lib/lang/ru_form_edit.lng deleted file mode 100644 index f1f67688b..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ru_form_edit.lng +++ /dev/null @@ -1,25 +0,0 @@ - - diff --git a/interface/ispconfig/interface/designer/lib/lang/ru_form_list.lng b/interface/ispconfig/interface/designer/lib/lang/ru_form_list.lng deleted file mode 100644 index d29fdbe86..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ru_form_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/designer/lib/lang/ru_form_show.lng b/interface/ispconfig/interface/designer/lib/lang/ru_form_show.lng deleted file mode 100644 index 204f86635..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ru_form_show.lng +++ /dev/null @@ -1,19 +0,0 @@ - - diff --git a/interface/ispconfig/interface/designer/lib/lang/ru_module_edit.lng b/interface/ispconfig/interface/designer/lib/lang/ru_module_edit.lng deleted file mode 100644 index 0b6078410..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ru_module_edit.lng +++ /dev/null @@ -1,23 +0,0 @@ -ОпиÑание -

-Ð˜Ð¼Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ: Ð˜Ð¼Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ð¸ модулÑ. ДопуÑтимо иÑпользовать латинÑкие Ñимволы, чиÑла и подчеркивание.
-Заголовок модулÑ: Будет отображатьÑÑ Ð²Ð²ÐµÑ€Ñ…Ñƒ радом Ñ Ð½Ð°Ð²Ð¸Ð³Ð°Ñ†Ð¸ÐµÐ¹.
-Файл шаблона: Файл шаблона Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ. Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð´Ð¾Ñтупны: module.tpl.htm и module_tree.tpl.htm. По-умолчанию Ñтоит module.tpl.htm.
-Ðавигационный фрейм: ЕÑли module_tree.tpl.htm выбран как шаблон, введите здеÑÑŒ путь до Ñкрипта Ð´Ð»Ñ Ð»ÐµÐ²Ð¾Ð³Ð¾ фрейма.
-Страница по-умолчанию: Эта Ñтраница будет показана, когда открываетÑÑ Ð¼Ð¾Ð´ÑƒÐ»ÑŒ.
-Ширина таба: Ширина таба в главной навигации. По-умолчанию поле пуÑтое. Ð’Ñ‹ можете ввеÑти значение в пикÑелÑÑ… или в процентах.
-ПодÑказка: Ð’Ñе пути в директории web отноÑительные. -'; -?> - diff --git a/interface/ispconfig/interface/designer/lib/lang/ru_module_list.lng b/interface/ispconfig/interface/designer/lib/lang/ru_module_list.lng deleted file mode 100644 index e305b4014..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ru_module_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/interface/ispconfig/interface/designer/lib/lang/ru_module_nav_edit.lng b/interface/ispconfig/interface/designer/lib/lang/ru_module_nav_edit.lng deleted file mode 100644 index ad02af8e7..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ru_module_nav_edit.lng +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/interface/ispconfig/interface/designer/lib/lang/ru_module_nav_item_edit.lng b/interface/ispconfig/interface/designer/lib/lang/ru_module_nav_item_edit.lng deleted file mode 100644 index f42aafdb8..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ru_module_nav_item_edit.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/designer/lib/lang/ru_module_show.lng b/interface/ispconfig/interface/designer/lib/lang/ru_module_show.lng deleted file mode 100644 index ddb1a5f84..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/ru_module_show.lng +++ /dev/null @@ -1,17 +0,0 @@ - - diff --git a/interface/ispconfig/interface/designer/lib/lang/se.lng b/interface/ispconfig/interface/designer/lib/lang/se.lng deleted file mode 100644 index acb6c3546..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/se.lng +++ /dev/null @@ -1,2 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/se_form_edit.lng b/interface/ispconfig/interface/designer/lib/lang/se_form_edit.lng deleted file mode 100644 index d047ad393..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/se_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/se_form_list.lng b/interface/ispconfig/interface/designer/lib/lang/se_form_list.lng deleted file mode 100644 index 8e9268e4a..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/se_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/se_form_show.lng b/interface/ispconfig/interface/designer/lib/lang/se_form_show.lng deleted file mode 100644 index ebd3dd9cf..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/se_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/se_module_edit.lng b/interface/ispconfig/interface/designer/lib/lang/se_module_edit.lng deleted file mode 100644 index ee8361d13..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/se_module_edit.lng +++ /dev/null @@ -1,22 +0,0 @@ -Description -

-Modulename: Namn på modul mappen. Endast siffror, bokstäver och understreck är tillåtna.
-Moduletitle: Kommer att visas i (övre) huvud navigerigsramen.
-Template file: Mall fil för modulen. Just nu finns: module.tpl.htm och module_tree.tpl.htm. Standard är module.tpl.htm.
-NaviFrame: Om module module_tree.tpl.htm väljs som mall file, skriv här sökvägen till skriptfilen för den vänstra ramen.
-Default page: Dessa sidor kommer att visas när modulen öppnas.
-Tab width: Bredd på Flikarna i huvud navigerings ramen. Detta fält är tomt som standard. Du kan skriva in ett absolutvärde i pixlar (ex. 20) eller relativt värde (ex. 20%).
-Hint: Alla sökvägar är relativa till mappen web. -'; -?> diff --git a/interface/ispconfig/interface/designer/lib/lang/se_module_list.lng b/interface/ispconfig/interface/designer/lib/lang/se_module_list.lng deleted file mode 100644 index 0fe0187b7..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/se_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/se_module_nav_edit.lng b/interface/ispconfig/interface/designer/lib/lang/se_module_nav_edit.lng deleted file mode 100644 index 17e1563ef..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/se_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/se_module_nav_item_edit.lng b/interface/ispconfig/interface/designer/lib/lang/se_module_nav_item_edit.lng deleted file mode 100644 index 3bbbfbd1a..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/se_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/se_module_show.lng b/interface/ispconfig/interface/designer/lib/lang/se_module_show.lng deleted file mode 100644 index c58df7ac4..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/se_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/sk.lng b/interface/ispconfig/interface/designer/lib/lang/sk.lng deleted file mode 100644 index acb6c3546..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/sk.lng +++ /dev/null @@ -1,2 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/sk_form_edit.lng b/interface/ispconfig/interface/designer/lib/lang/sk_form_edit.lng deleted file mode 100644 index 3c72e8819..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/sk_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/sk_form_list.lng b/interface/ispconfig/interface/designer/lib/lang/sk_form_list.lng deleted file mode 100644 index 0e0c2cb27..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/sk_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/sk_form_show.lng b/interface/ispconfig/interface/designer/lib/lang/sk_form_show.lng deleted file mode 100644 index 042e10600..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/sk_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/sk_module_edit.lng b/interface/ispconfig/interface/designer/lib/lang/sk_module_edit.lng deleted file mode 100644 index 320bd1429..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/sk_module_edit.lng +++ /dev/null @@ -1,12 +0,0 @@ - Popis

Modulename: Názov modulu adresár. Len ?ísla, znaky a podtržítko povolené.
Moduletitle: sa objaví v (hornej) navigáciu.
Šablóna súboru: Šablóna súboru modulu. V sú?asnej dobe sú k dispozícii'; -?> diff --git a/interface/ispconfig/interface/designer/lib/lang/sk_module_list.lng b/interface/ispconfig/interface/designer/lib/lang/sk_module_list.lng deleted file mode 100644 index 4d9cd1e2c..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/sk_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/sk_module_nav_edit.lng b/interface/ispconfig/interface/designer/lib/lang/sk_module_nav_edit.lng deleted file mode 100644 index 69d4d161c..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/sk_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/sk_module_nav_item_edit.lng b/interface/ispconfig/interface/designer/lib/lang/sk_module_nav_item_edit.lng deleted file mode 100644 index 23f7d1592..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/sk_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/sk_module_show.lng b/interface/ispconfig/interface/designer/lib/lang/sk_module_show.lng deleted file mode 100644 index 3d62509ea..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/sk_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/tr.lng b/interface/ispconfig/interface/designer/lib/lang/tr.lng deleted file mode 100644 index acb6c3546..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/tr.lng +++ /dev/null @@ -1,2 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/tr_form_edit.lng b/interface/ispconfig/interface/designer/lib/lang/tr_form_edit.lng deleted file mode 100644 index 8288ce84b..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/tr_form_edit.lng +++ /dev/null @@ -1,24 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/tr_form_list.lng b/interface/ispconfig/interface/designer/lib/lang/tr_form_list.lng deleted file mode 100644 index 54aa1f453..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/tr_form_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/tr_form_show.lng b/interface/ispconfig/interface/designer/lib/lang/tr_form_show.lng deleted file mode 100644 index 8efa1df5a..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/tr_form_show.lng +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/tr_module_edit.lng b/interface/ispconfig/interface/designer/lib/lang/tr_module_edit.lng deleted file mode 100644 index 92bf93d2c..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/tr_module_edit.lng +++ /dev/null @@ -1,22 +0,0 @@ -Açıklama -

-Modül adı: Modül klasörünün adı. Sadece sayı, rakam ve alttan çizgi kullanabilirsiniz.
-Modül başlığı: Üst ana menüde gösterilecek olan isim.
-Şablon dosyası: Şablon dosyası veya modülü. Şu anda geçerli olan dosyalar: module.tpl.htm ve module_tree.tpl.htm. Varsayılan dosya: module.tpl.htm.
-NaviFrame: Eğer module_tree.tpl.htm dosyası şablon dosyası olarak seçilirse, buraya sol frame için betik dosyası yolu girebilirsiniz.
-Varsayılan sayfa: Modül açıldığı zaman görünecek sayfa.
-Sekme Genişliği: Temel navigasyonun genişliği. Bu alan varsayılan olarak boştur. Siz bir piksel değeri(20 gibi) veya bir oran(20%) değeri girebilirsiniz.
-İşaret: Tüm yollar web klasörüyle ilişkilidir.. -'; -?> diff --git a/interface/ispconfig/interface/designer/lib/lang/tr_module_list.lng b/interface/ispconfig/interface/designer/lib/lang/tr_module_list.lng deleted file mode 100644 index 08c57875f..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/tr_module_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/tr_module_nav_edit.lng b/interface/ispconfig/interface/designer/lib/lang/tr_module_nav_edit.lng deleted file mode 100644 index fd10993d6..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/tr_module_nav_edit.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/tr_module_nav_item_edit.lng b/interface/ispconfig/interface/designer/lib/lang/tr_module_nav_item_edit.lng deleted file mode 100644 index 06fe57e84..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/tr_module_nav_item_edit.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/lang/tr_module_show.lng b/interface/ispconfig/interface/designer/lib/lang/tr_module_show.lng deleted file mode 100644 index a40c0743b..000000000 --- a/interface/ispconfig/interface/designer/lib/lang/tr_module_show.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/designer/lib/module.conf.php b/interface/ispconfig/interface/designer/lib/module.conf.php deleted file mode 100644 index 16e13c5e8..000000000 --- a/interface/ispconfig/interface/designer/lib/module.conf.php +++ /dev/null @@ -1,95 +0,0 @@ - 'designer', - 'title' => 'BE Designer', - 'template' => 'module.tpl.htm', - 'navframe_page' => '', - 'startpage' => 'designer/module_list.php', - 'tab_width' => '', - 'nav' => - array ( - 0 => - array ( - 'title' => 'Modules', - 'open' => '1', - 'items' => - array ( - 0 => - array ( - 'title' => 'Add', - 'target' => 'content', - 'link' => 'designer/module_edit.php', - ), - 1 => - array ( - 'title' => 'Edit', - 'target' => 'content', - 'link' => 'designer/module_list.php', - ), - ), - ), - /* - 1 => - array ( - 'title' => 'Formulare', - 'open' => '1', - 'items' => - array ( - 2 => - array ( - 'title' => 'Add', - 'target' => 'content', - 'link' => 'designer/form_edit.php', - ), - 3 => - array ( - 'title' => 'Edit', - 'target' => 'content', - 'link' => 'designer/form_list.php', - ), - ), - ), - 2 => - array ( - 'title' => 'Lists', - 'open' => '1', - 'items' => - array ( - 4 => - array ( - 'title' => 'Add', - 'target' => 'content', - 'link' => 'designer/list_edit.php', - ), - 5 => - array ( - 'title' => 'Edit', - 'target' => 'content', - 'link' => 'designer/list_list.php', - ), - ), - ), - 3 => - array ( - 'title' => 'Languages', - 'open' => '1', - 'items' => - array ( - 6 => - array ( - 'title' => 'Add', - 'target' => 'content', - 'link' => 'designer/lang_edit.php', - ), - 7 => - array ( - 'title' => 'Edit', - 'target' => 'content', - 'link' => 'designer/lang_list.php', - ), - ), - ), - */ - ), -) -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/module_edit.php b/interface/ispconfig/interface/designer/module_edit.php deleted file mode 100644 index 9d0a556f4..000000000 --- a/interface/ispconfig/interface/designer/module_edit.php +++ /dev/null @@ -1,183 +0,0 @@ -auth->check_module_permissions('designer'); - -// Lade Template -$app->uses('tpl'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl','templates/module_edit.htm'); - -// ID importieren -$id = $_REQUEST["id"]; -if(!preg_match('/^[A-Za-z0-9_]{0,50}$/',$id)) die("id contains invalid chars."); - -if(count($_POST) > 1) { - // Bestimme aktion - if($id != '') { - $action = 'UPDATE'; - } else { - $action = 'INSERT'; - } - - - if($error == '') { - - $id = $_POST["module"]["name"]; - if(!preg_match('/^[A-Za-z0-9_]{0,50}$/',$id)) die("id contains invalid chars."); - - $filename = "../".$id."/lib/module.conf.php"; - $module_new = $_POST["module"]; - - if(@is_file($filename)) { - include_once($filename); - $navi = $module["nav"]; - unset($module); - $module_new["nav"] = $navi; - } - - $m = ""; - - // creating the module directories - if(!@is_dir("../".$id)) mkdir("../".$id) or die("Cannot make directory: ../".$id); - if(!@is_dir("../".$id."/lib")) mkdir("../".$id."/lib") or die("Cannot make directory: ../".$id."/lib"); - if(!@is_dir("../".$id."/lib/lang")) mkdir("../".$id."/lib/lang") or die("Cannot make directory: ../".$id."/lib/lang"); - if(!@is_dir("../".$id."/form")) mkdir("../".$id."/form") or die("Cannot make directory: ../".$id."/form"); - if(!@is_dir("../".$id."/list")) mkdir("../".$id."/list") or die("Cannot make directory: ../".$id."/list"); - if(!@is_dir("../".$id."/templates")) mkdir("../".$id."/templates") or die("Cannot make directory: ../".$id."/templates"); - - // writing module.conf - if (!$handle = fopen($filename, 'w')) { - print "Cannot open file ($filename)"; - exit; - } - - if (!fwrite($handle, $m)) { - print "Cannot write to file ($filename)"; - exit; - } - - fclose($handle); - - // writing admin conf - $admin_conf_filename = "../".$id."/lib/admin.conf.php"; - if(!is_file($admin_conf_filename)) { - if (!$handle = fopen($admin_conf_filename, 'w')) { - print "Cannot open file ($admin_conf_filename)"; - exit; - } - - if (!fwrite($handle, "")) { - print "Cannot write to file ($admin_conf_filename)"; - exit; - } - - fclose($handle); - } - - // zu Liste springen - header("Location: module_list.php"); - exit; - - } else { - $app->tpl->setVar("error","Fehler:
".$error); - $app->tpl->setVar($_POST); - } -} - -if($id != '') { -// Datensatz besteht bereits - // bestehenden Datensatz anzeigen - if($error == '') { - // es liegt ein Fehler vor - include_once("../".$id."/lib/module.conf.php"); - //$navi = $module["nav"]; - unset($module["nav"]); - $record = $module; - } else { - // ein Fehler - $record = $_POST; - //$navi = $_POST["nav"]; - unset($_POST["nav"]); - } - $record["readonly"] = 'style="background-color: #EEEEEE;" readonly'; -} else { -// neuer datensatz - if($error == '') { - // es liegt ein Fehler vor - $record["template"] = "module.tpl.htm"; - } else { - // ein Fehler - $record = $_POST; - //$navi = $_POST["nav"]; - unset($_POST["nav"]); - - } - $record["readonly"] = ''; -} - -$record["id"] = $id; - -/* -// baue Modul navi -$content = ""; -$n1 = 0; -$n2 = 0; -foreach($navi as $section) { - $content .= "Bereich:\r\n"; - foreach($section["items"] as $item) { - $content .= "Titel:\r\n"; - $content .= "Ziel:       \r\n"; - $content .= "Link:       \r\n"; - $n2++; - } - $n1++; -} - -$record["nav"] = $content; -*/ - -$app->tpl->setVar($record); - -include_once("lib/lang/".$_SESSION["s"]["language"]."_module_edit.lng"); -$app->tpl->setVar($wb); - -// Defaultwerte setzen -$app->tpl_defaults(); - -// Template parsen -$app->tpl->pparse(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/module_list.php b/interface/ispconfig/interface/designer/module_list.php deleted file mode 100644 index 4806f079d..000000000 --- a/interface/ispconfig/interface/designer/module_list.php +++ /dev/null @@ -1,69 +0,0 @@ -auth->check_module_permissions('designer'); - -$app->uses('tpl'); - -$app->tpl->newTemplate('form.tpl.htm'); -$app->tpl->setInclude('content_tpl','templates/module_list.htm'); - -//* Pick out modules -$bgcolor = '#FFFFFF'; -$modules_list = array(); -$handle = @opendir(ISPC_WEB_PATH); -while ($file = @readdir ($handle)) { - if ($file != '.' && $file != '..') { - if(@is_dir(ISPC_WEB_PATH."/$file")) { - if(is_file(ISPC_WEB_PATH."/$file/lib/module.conf.php") and $file != 'login') { - include_once(ISPC_WEB_PATH."/$file/lib/module.conf.php"); - $modules_list[] = array( 'module' => $module['name'], - 'title' => $module['title'], - 'bgcolor' => ($bgcolor == '#FFFFFF') ? '#EEEEEE' : '#FFFFFF' - ); - } - } - } -} - -$app->tpl->setLoop('records', $modules_list); - -//* loading language file -$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_module_list.lng'; -include($lng_file); -$app->tpl->setVar($wb); - -$app->tpl_defaults(); -$app->tpl->pparse(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/module_nav_del.php b/interface/ispconfig/interface/designer/module_nav_del.php deleted file mode 100644 index dfbe761bb..000000000 --- a/interface/ispconfig/interface/designer/module_nav_del.php +++ /dev/null @@ -1,80 +0,0 @@ -auth->check_module_permissions('designer'); - -// Lade Template -$app->uses('tpl'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl','templates/module_nav_edit.htm'); - -// ID importieren -$module_name = $_REQUEST["module_name"]; -$nav_id = $_REQUEST["nav_id"]; - -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/',$module_name)) die("module_name contains invalid chars."); -if(!preg_match('/^[A-Za-z0-9_]{0,50}$/',$nav_id)) die("nav_id contains invalid chars."); - -if(empty($module_name)) die("module is empty."); - -if($nav_id != '') { - - $filename = "../".$module_name."/lib/module.conf.php"; - - if(!@is_file($filename)) die("File not found: $filename"); - include_once($filename); - - unset($module["nav"][$nav_id]); - - $m = ""; - - // writing module.conf - if (!$handle = fopen($filename, 'w')) { - print "Cannot open file ($filename)"; - exit; - } - if (!fwrite($handle, $m)) { - print "Cannot write to file ($filename)"; - exit; - } - - fclose($handle); - - - // zu Liste springen - header("Location: module_show.php?id=$module_name"); - exit; -} -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/module_nav_edit.php b/interface/ispconfig/interface/designer/module_nav_edit.php deleted file mode 100644 index d97cd5e4b..000000000 --- a/interface/ispconfig/interface/designer/module_nav_edit.php +++ /dev/null @@ -1,146 +0,0 @@ -auth->check_module_permissions('designer'); - -//* Load template -$app->uses('tpl'); -$app->tpl->newTemplate('form.tpl.htm'); -$app->tpl->setInclude('content_tpl', 'templates/module_nav_edit.htm'); - -// TODO: Check module and nav_id for malicius chars, nav_id can be empty or any number, even 0 -$module_name = $_REQUEST['module_name']; -$nav_id = $_REQUEST['nav_id']; - -//** Sanity checks of module -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/', $module_name)){ - die('module_name contains invalid chars.'); -} -if(!preg_match('/^[A-Za-z0-9_]{0,50}$/', $nav_id)){ - die('nav_id contains invalid chars.'); -} -if(empty($module_name)){ - die('module is empty.'); -} - -if(count($_POST) > 0) { - //* Determine Action - $action = ($nav_id != '') ? 'UPDATE' : 'INSERT'; - $error = ''; - - // TODO: Check variables - - if($error == '') { - - $filename = '../'.$module_name.'/lib/module.conf.php'; - - if(!@is_file($filename)){ - die("File not found: $filename"); - } - include_once($filename); - - $items = ($action == 'UPDATE') ? $module['nav'][$nav_id]['items'] : array(); - - $tmp = array('title' => $_POST['nav']['title'], - 'open' => 1, - 'items' => $items); - - if($action == 'UPDATE') { - $module['nav'][$nav_id] = $tmp; - } else { - $module['nav'][] = $tmp; - } - - $m = ""; - - //* writing module.conf - if (!$handle = fopen($filename, 'w')) { - die("Cannot open file ($filename)"); - } - - if (!fwrite($handle, $m)) { - die("Cannot write to file ($filename)"); - } - - fclose($handle); - - - //* Jump to list - header('Location: module_show.php?id='.urlencode($module_name)); - exit; - - } else { - $app->tpl->setVar('error', 'Fehler:
'.$error); - $app->tpl->setVar($_POST); - } -} - -if($nav_id != '') { - //* Data record exists - if($error == '') { - include_once('../'.$module_name.'/lib/module.conf.php'); - $record = $module['nav'][$nav_id]; - } else { - //* error - $record = $_POST; - } - //$record["readonly"] = 'style="background-color: #EEEEEE;" readonly'; -} else { - //* New data record - if($error == '') { - //* es liegt kein Fehler vor - } else { - //* error - $record = $_POST; - - } - //$record["readonly"] = ''; -} - -$record['nav_id'] = $nav_id; -$record['module_name'] = $module_name; - -$app->tpl->setVar($record); - -include_once('lib/lang/'.$_SESSION['s']['language'].'_module_nav_edit.lng'); -$app->tpl->setVar($wb); - -$app->tpl_defaults(); -$app->tpl->pparse(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/module_nav_flip.php b/interface/ispconfig/interface/designer/module_nav_flip.php deleted file mode 100644 index f20dd6306..000000000 --- a/interface/ispconfig/interface/designer/module_nav_flip.php +++ /dev/null @@ -1,91 +0,0 @@ -auth->check_module_permissions('designer'); - -// Lade Template -$app->uses('tpl'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl','templates/module_nav_edit.htm'); - -// ID importieren -$module_name = $_REQUEST["module_name"]; -$nav_id = $_REQUEST["nav_id"]; -$dir = $_REQUEST["dir"]; - -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/',$module_name)) die("module_name contains invalid chars."); -if(!preg_match('/^[A-Za-z0-9_]{0,50}$/',$nav_id)) die("nav_id contains invalid chars."); - -if(empty($module_name)) die("module is empty."); - -if($nav_id != '') { - - $filename = "../".$module_name."/lib/module.conf.php"; - - if(!@is_file($filename)) die("File not found: $filename"); - include_once($filename); - - if($dir == 'up' and $nav_id > 0) { - $tmp = $module["nav"][$nav_id - 1]; - $module["nav"][$nav_id - 1] = $module["nav"][$nav_id]; - $module["nav"][$nav_id] = $tmp; - } - - if($dir == 'down' and $nav_id < count($module["nav"]) -1) { - $tmp = $module["nav"][$nav_id + 1]; - $module["nav"][$nav_id + 1] = $module["nav"][$nav_id]; - $module["nav"][$nav_id] = $tmp; - } - - $m = ""; - - // writing module.conf - if (!$handle = fopen($filename, 'w')) { - print "Cannot open file ($filename)"; - exit; - } - if (!fwrite($handle, $m)) { - print "Cannot write to file ($filename)"; - exit; - } - - fclose($handle); - - - // zu Liste springen - echo "HEADER_REDIRECT:designer/module_show.php?id=$module_name"; - exit; -} -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/module_nav_item_del.php b/interface/ispconfig/interface/designer/module_nav_item_del.php deleted file mode 100644 index d941f5bb8..000000000 --- a/interface/ispconfig/interface/designer/module_nav_item_del.php +++ /dev/null @@ -1,82 +0,0 @@ -auth->check_module_permissions('designer'); - -// Lade Template -$app->uses('tpl'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl','templates/module_nav_edit.htm'); - -// ID importieren -$module_name = $_REQUEST["module_name"]; -$nav_id = $_REQUEST["nav_id"]; -$item_id = $_REQUEST["item_id"]; - -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/',$module_name)) die("module_name contains invalid chars."); -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/',$nav_id)) die("nav_id contains invalid chars."); -if(!preg_match('/^[A-Za-z0-9_]{0,50}$/',$item_id)) die("item_id contains invalid chars."); - -if(empty($module_name)) die("module is empty."); - -if($nav_id != '') { - - $filename = "../".$module_name."/lib/module.conf.php"; - - if(!@is_file($filename)) die("File not found: $filename"); - include_once($filename); - - unset($module["nav"][$nav_id]["items"][$item_id]); - - $m = ""; - - // writing module.conf - if (!$handle = fopen($filename, 'w')) { - print "Cannot open file ($filename)"; - exit; - } - if (!fwrite($handle, $m)) { - print "Cannot write to file ($filename)"; - exit; - } - - fclose($handle); - - - // zu Liste springen - header("Location: module_show.php?id=$module_name"); - exit; -} -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/module_nav_item_edit.php b/interface/ispconfig/interface/designer/module_nav_item_edit.php deleted file mode 100644 index d270d99b4..000000000 --- a/interface/ispconfig/interface/designer/module_nav_item_edit.php +++ /dev/null @@ -1,150 +0,0 @@ -auth->check_module_permissions('designer'); - -// Lade Template -$app->uses('tpl'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl','templates/module_nav_item_edit.htm'); - -// ID importieren -$module_name = $_REQUEST["module_name"]; -$nav_id = $_REQUEST["nav_id"]; -$item_id = $_REQUEST["item_id"]; - -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/',$module_name)) die("module_name contains invalid chars."); -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/',$nav_id)) die("nav_id contains invalid chars."); -if(!preg_match('/^[A-Za-z0-9_]{0,50}$/',$item_id)) die("item_id contains invalid chars."); - -if(empty($module_name)) die("module is empty."); - -if(count($_POST) > 0) { - // Bestimme aktion - if($item_id != '') { - $action = 'UPDATE'; - } else { - $action = 'INSERT'; - } - - $error = ''; - - // TODO: Check variables - - - if($error == '') { - - $filename = "../".$module_name."/lib/module.conf.php"; - - if(!@is_file($filename)) die("File not found: $filename"); - include_once($filename); - - $tmp = array('title' =>$_POST["title"], - 'target' => $_POST["target"], - 'link' => $_POST["link"]); - - if($action == 'UPDATE') { - $module["nav"][$nav_id]["items"][$item_id] = $tmp; - } else { - $module["nav"][$nav_id]["items"][] = $tmp; - } - - $m = ""; - - // writing module.conf - if (!$handle = fopen($filename, 'w')) { - print "Cannot open file ($filename)"; - exit; - } - - if (!fwrite($handle, $m)) { - print "Cannot write to file ($filename)"; - exit; - } - - fclose($handle); - - - // zu Liste springen - header("Location: module_show.php?id=$module_name"); - exit; - - } else { - $app->tpl->setVar("error","Fehler:
".$error); - $app->tpl->setVar($_POST); - } -} - -if($item_id != '') { -// Datensatz besteht bereits - // bestehenden Datensatz anzeigen - if($error == '') { - // es liegt ein Fehler vor - include_once("../".$module_name."/lib/module.conf.php"); - $record = $module["nav"][$nav_id]["items"][$item_id]; - } else { - // ein Fehler - $record = $_POST; - } - //$record["readonly"] = 'style="background-color: #EEEEEE;" readonly'; -} else { -// neuer datensatz - if($error == '') { - // es liegt kein Fehler vor - $record["target"] = "content"; - } else { - // ein Fehler - $record = $_POST; - - } - //$record["readonly"] = ''; -} - -$record["item_id"] = $item_id; -$record["nav_id"] = $nav_id; -$record["module_name"] = $module_name; - -$app->tpl->setVar($record); - -include_once("lib/lang/".$_SESSION["s"]["language"]."_module_nav_item_edit.lng"); -$app->tpl->setVar($wb); - -// Defaultwerte setzen -$app->tpl_defaults(); - -// Template parsen -$app->tpl->pparse(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/module_nav_item_flip.php b/interface/ispconfig/interface/designer/module_nav_item_flip.php deleted file mode 100644 index 21bc68cee..000000000 --- a/interface/ispconfig/interface/designer/module_nav_item_flip.php +++ /dev/null @@ -1,93 +0,0 @@ -auth->check_module_permissions('designer'); - -// Lade Template -$app->uses('tpl'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl','templates/module_nav_edit.htm'); - -// ID importieren -$module_name = $_REQUEST["module_name"]; -$nav_id = $_REQUEST["nav_id"]; -$item_id = $_REQUEST["item_id"]; -$dir = $_REQUEST["dir"]; - -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/',$module_name)) die("module_name contains invalid chars."); -if(!preg_match('/^[A-Za-z0-9_]{1,50}$/',$nav_id)) die("nav_id contains invalid chars."); -if(!preg_match('/^[A-Za-z0-9_]{0,50}$/',$item_id)) die("item_id contains invalid chars."); - -if(empty($module_name)) die("module is empty."); - -if($nav_id != '') { - - $filename = "../".$module_name."/lib/module.conf.php"; - - if(!@is_file($filename)) die("File not found: $filename"); - include_once($filename); - - if($dir == 'up' and $item_id > 0) { - $tmp = $module["nav"][$nav_id]["items"][$item_id - 1]; - $module["nav"][$nav_id]["items"][$item_id -1] = $module["nav"][$nav_id]["items"][$item_id]; - $module["nav"][$nav_id]["items"][$item_id] = $tmp; - } - - if($dir == 'down' and $item_id < count($module["nav"][$nav_id]["items"]) -1) { - $tmp = $module["nav"][$nav_id]["items"][$item_id + 1]; - $module["nav"][$nav_id]["items"][$item_id + 1] = $module["nav"][$nav_id]["items"][$item_id]; - $module["nav"][$nav_id]["items"][$item_id] = $tmp; - } - - $m = ""; - - // writing module.conf - if (!$handle = fopen($filename, 'w')) { - print "Cannot open file ($filename)"; - exit; - } - if (!fwrite($handle, $m)) { - print "Cannot write to file ($filename)"; - exit; - } - - fclose($handle); - - - // zu Liste springen - header("Location: module_show.php?id=$module_name"); - exit; -} -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/module_show.php b/interface/ispconfig/interface/designer/module_show.php deleted file mode 100644 index a8a3b3e65..000000000 --- a/interface/ispconfig/interface/designer/module_show.php +++ /dev/null @@ -1,113 +0,0 @@ -auth->check_module_permissions('designer'); - -if($_SESSION["s"]["user"]["typ"] != "admin") die("Admin permissions required."); - -$app->uses('tpl'); - -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl','templates/module_show.htm'); - - -$module_name = $_REQUEST["id"]; -if(!preg_match('/^[A-Za-z0-9_]{0,50}$/',$module_name)) die("id contains invalid chars."); - -include_once("../".$module_name."/lib/module.conf.php"); -$navi = $module["nav"]; -unset($module["nav"]); -$record = $module; - -// loading language file -$lng_file = "lib/lang/".$_SESSION["s"]["user"]["language"]."_module_show.lng"; -include($lng_file); -$app->tpl->setVar($wb); - -// baue Modul navi -$content = ""; -$n1 = 0; -$n2 = 0; -if(is_array($navi)) { -foreach($navi as $nav_id => $section) { - $content .= " - - - - - - "; - //$content .= "\r\n"; - foreach($section["items"] as $item_id => $item) { - //$content .= "\r\n"; - //$content .= "\r\n"; - //$content .= "\r\n"; - $content .= " - - - "; - $n2++; - } - $content .= " -
$section[title] -
-
-
-
-
-
Bereich:
Titel:
Ziel:       
Link:       
$item[title] -
-
-
-
-
 
- - "; - $n1++; -} -} - -$record["nav"] = $content; - - -$app->tpl->setVar($record); - - -$app->tpl->setLoop('records',$modules_list); - -$app->tpl_defaults(); -$app->tpl->pparse(); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/templates/form_edit.htm b/interface/ispconfig/interface/designer/templates/form_edit.htm deleted file mode 100644 index 4d1c991ab..000000000 --- a/interface/ispconfig/interface/designer/templates/form_edit.htm +++ /dev/null @@ -1,79 +0,0 @@ -
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
:
:
:
:
:
:
: yes / no
:
:
: yes / no
 
:
:
: r = read, i = insert, u = update, d = delete
: r = read, i = insert, u = update, d = delete
: r = read, i = insert, u = update, d = delete
 
  - -
- - -
\ No newline at end of file diff --git a/interface/ispconfig/interface/designer/templates/form_list.htm b/interface/ispconfig/interface/designer/templates/form_list.htm deleted file mode 100644 index 57506e8d4..000000000 --- a/interface/ispconfig/interface/designer/templates/form_list.htm +++ /dev/null @@ -1,24 +0,0 @@ -
-

- - - - - - - - - - - - - - - - - - - - -
 
{tmpl_var name="name"}{tmpl_var name="title"}{tmpl_var name="module_name"}{tmpl_var name="description"}[Delete]
-
\ No newline at end of file diff --git a/interface/ispconfig/interface/designer/templates/form_show.htm b/interface/ispconfig/interface/designer/templates/form_show.htm deleted file mode 100644 index b10407018..000000000 --- a/interface/ispconfig/interface/designer/templates/form_show.htm +++ /dev/null @@ -1,61 +0,0 @@ - -
-

-
{tmpl_var name='form_txt'} - - - - - - - - - - - - - - - - - - - - - - - -
:{tmpl_var name='title'}
:{tmpl_var name='form_name'}
:{tmpl_var name='module_name'}
:{tmpl_var name='description'}
 
- - -
-
- - - - - - - - -
 
 
-
\ No newline at end of file diff --git a/interface/ispconfig/interface/designer/templates/module_edit.htm b/interface/ispconfig/interface/designer/templates/module_edit.htm deleted file mode 100644 index 2464f5f7e..000000000 --- a/interface/ispconfig/interface/designer/templates/module_edit.htm +++ /dev/null @@ -1,43 +0,0 @@ -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
:
:
:
:
:
:
  -
 
-
-
 
- \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/templates/module_list.htm b/interface/ispconfig/interface/designer/templates/module_list.htm deleted file mode 100644 index 1198d1c8c..000000000 --- a/interface/ispconfig/interface/designer/templates/module_list.htm +++ /dev/null @@ -1,18 +0,0 @@ -

- - - - - - - - - - - - - - - - -
 
{tmpl_var name="module"}{tmpl_var name="title"}[Delete]
\ No newline at end of file diff --git a/interface/ispconfig/interface/designer/templates/module_nav_edit.htm b/interface/ispconfig/interface/designer/templates/module_nav_edit.htm deleted file mode 100644 index 5c46350b3..000000000 --- a/interface/ispconfig/interface/designer/templates/module_nav_edit.htm +++ /dev/null @@ -1,24 +0,0 @@ -

- - - - - - - - - - - - - - - - - -
:
  -
 
-
-
 
- - \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/templates/module_nav_item_edit.htm b/interface/ispconfig/interface/designer/templates/module_nav_item_edit.htm deleted file mode 100644 index 7ddcd19c0..000000000 --- a/interface/ispconfig/interface/designer/templates/module_nav_item_edit.htm +++ /dev/null @@ -1,33 +0,0 @@ -

- - - - - - - - - - - - - - - - - - - - - - - - - -
:
:
:
  -
 
-
-
 
- - - \ No newline at end of file diff --git a/interface/ispconfig/interface/designer/templates/module_show.htm b/interface/ispconfig/interface/designer/templates/module_show.htm deleted file mode 100644 index 8b261720f..000000000 --- a/interface/ispconfig/interface/designer/templates/module_show.htm +++ /dev/null @@ -1,31 +0,0 @@ -

-
{tmpl_var name='module_txt'} - - - - - - - - - - - - - - - -
:{tmpl_var name='title'}
:{tmpl_var name='name'}
 
-
-
-
-
- - - - - - - - -
 
 
\ No newline at end of file diff --git a/interface/ispconfig/interface/designer/templates/paging.tpl.htm b/interface/ispconfig/interface/designer/templates/paging.tpl.htm deleted file mode 100644 index cb8270404..000000000 --- a/interface/ispconfig/interface/designer/templates/paging.tpl.htm +++ /dev/null @@ -1,9 +0,0 @@ -[ |<< ] - - [<< Zurück] - - Seite {tmpl_var name="next_page"} von {tmpl_var name="max_pages"} - - [Weiter >>] - - [ >>| ] \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/dns_a_edit.php b/interface/ispconfig/interface/dns/dns_a_edit.php deleted file mode 100644 index 3bd8dec20..000000000 --- a/interface/ispconfig/interface/dns/dns_a_edit.php +++ /dev/null @@ -1,144 +0,0 @@ -auth->check_module_permissions('dns'); - -// Loading classes -$app->uses('tpl,tform,tform_actions,validate_dns'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($client["limit_dns_record"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_record"]) { - $app->error($app->tform->wordbook["limit_dns_record_txt"]); - } - } - } - - parent::onShowNew(); - } - - function onSubmit() { - global $app, $conf; - - // Get the parent soa record of the domain - $soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = '".intval($_POST["zone"])."' AND ".$app->tform->getAuthSQL('r')); - - // Check if Domain belongs to user - if($soa["id"] != $_POST["zone"]) $app->tform->errorMessage .= $app->tform->wordbook["no_zone_perm"]; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($this->id == 0 && $client["limit_dns_record"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_record"]) { - $app->error($app->tform->wordbook["limit_dns_record_txt"]); - } - } - } // end if user is not admin - - //* Check for duplicates where IP and hostname are the same - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE type = 'A' AND name = '".$this->dataRecord["name"]."' AND zone = '".$this->dataRecord["zone"]."' and data = '".$this->dataRecord["data"]."' and id != ".$this->id); - if($tmp['number'] > 0) $app->tform->errorMessage .= $app->tform->lng("data_error_duplicate")."
"; - unset($tmp); - - - // Set the server ID of the rr record to the same server ID as the parent record. - $this->dataRecord["server_id"] = $soa["server_id"]; - - // Update the serial number and timestamp of the RR record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_rr WHERE id = ".$this->id); - $this->dataRecord["serial"] = $app->validate_dns->increase_serial($soa["serial"]); - $this->dataRecord["stamp"] = date('Y-m-d H:i:s'); - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app, $conf; - - //* Set the sys_groupid of the rr record to be the same then the sys_groupid of the soa record - $soa = $app->db->queryOneRecord("SELECT sys_groupid,serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $app->db->datalogUpdate('dns_rr', "sys_groupid = ".$soa['sys_groupid'], 'id', $this->id); - - //* Update the serial number of the SOA record - $soa_id = intval($_POST["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } - - function onAfterUpdate() { - global $app, $conf; - - //* Update the serial number of the SOA record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $soa_id = intval($_POST["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } - -} - -$page = new page_action; -$page->onLoad(); - -?> diff --git a/interface/ispconfig/interface/dns/dns_a_list.php b/interface/ispconfig/interface/dns/dns_a_list.php deleted file mode 100644 index 681e15839..000000000 --- a/interface/ispconfig/interface/dns/dns_a_list.php +++ /dev/null @@ -1,24 +0,0 @@ -auth->check_module_permissions('dns'); - -$app->uses('listform_actions'); -$app->listform_actions->SQLExtWhere = "type = 'A'"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/dns_aaaa_edit.php b/interface/ispconfig/interface/dns/dns_aaaa_edit.php deleted file mode 100644 index 97a3565eb..000000000 --- a/interface/ispconfig/interface/dns/dns_aaaa_edit.php +++ /dev/null @@ -1,139 +0,0 @@ -auth->check_module_permissions('dns'); - -// Loading classes -$app->uses('tpl,tform,tform_actions,validate_dns'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($client["limit_dns_record"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_record"]) { - $app->error($app->tform->wordbook["limit_dns_record_txt"]); - } - } - } - - parent::onShowNew(); - } - - function onSubmit() { - global $app, $conf; - - // Get the parent soa record of the domain - $soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = '".intval($_POST["zone"])."' AND ".$app->tform->getAuthSQL('r')); - - // Check if Domain belongs to user - if($soa["id"] != $_POST["zone"]) $app->tform->errorMessage .= $app->tform->wordbook["no_zone_perm"]; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($this->id == 0 && $client["limit_dns_record"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_record"]) { - $app->error($app->tform->wordbook["limit_dns_record_txt"]); - } - } - } // end if user is not admin - - - // Set the server ID of the rr record to the same server ID as the parent record. - $this->dataRecord["server_id"] = $soa["server_id"]; - - // Update the serial number and timestamp of the RR record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_rr WHERE id = ".$this->id); - $this->dataRecord["serial"] = $app->validate_dns->increase_serial($soa["serial"]); - $this->dataRecord["stamp"] = date('Y-m-d H:i:s'); - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app, $conf; - - //* Set the sys_groupid of the rr record to be the same then the sys_groupid of the soa record - $soa = $app->db->queryOneRecord("SELECT sys_groupid,serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $app->db->datalogUpdate('dns_rr', "sys_groupid = ".$soa['sys_groupid'], 'id', $this->id); - - //* Update the serial number of the SOA record - $soa_id = intval($_POST["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } - - function onAfterUpdate() { - global $app, $conf; - - //* Update the serial number of the SOA record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $soa_id = intval($_POST["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } - -} - -$page = new page_action; -$page->onLoad(); - -?> diff --git a/interface/ispconfig/interface/dns/dns_alias_edit.php b/interface/ispconfig/interface/dns/dns_alias_edit.php deleted file mode 100644 index 676d439a6..000000000 --- a/interface/ispconfig/interface/dns/dns_alias_edit.php +++ /dev/null @@ -1,138 +0,0 @@ -auth->check_module_permissions('dns'); - -// Loading classes -$app->uses('tpl,tform,tform_actions,validate_dns'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($client["limit_dns_record"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_record"]) { - $app->error($app->tform->wordbook["limit_dns_record_txt"]); - } - } - } - - parent::onShowNew(); - } - - function onSubmit() { - global $app, $conf; - - // Get the parent soa record of the domain - $soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = '".intval($_POST["zone"])."' AND ".$app->tform->getAuthSQL('r')); - - // Check if Domain belongs to user - if($soa["id"] != $_POST["zone"]) $app->tform->errorMessage .= $app->tform->wordbook["no_zone_perm"]; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($client["limit_dns_record"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_record"]) { - $app->error($app->tform->wordbook["limit_dns_record_txt"]); - } - } - } // end if user is not admin - - - // Set the server ID of the rr record to the same server ID as the parent record. - $this->dataRecord["server_id"] = $soa["server_id"]; - - // Update the serial number and timestamp of the RR record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_rr WHERE id = ".$this->id); - $this->dataRecord["serial"] = $app->validate_dns->increase_serial($soa["serial"]); - $this->dataRecord["stamp"] = date('Y-m-d H:i:s'); - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app, $conf; - - //* Set the sys_groupid of the rr record to be the same then the sys_groupid of the soa record - $soa = $app->db->queryOneRecord("SELECT sys_groupid,serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $app->db->datalogUpdate('dns_rr', "sys_groupid = ".$soa['sys_groupid'], 'id', $this->id); - - //* Update the serial number of the SOA record - $soa_id = intval($_POST["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } - - function onAfterUpdate() { - global $app, $conf; - - //* Update the serial number of the SOA record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $soa_id = intval($_POST["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } -} - -$page = new page_action; -$page->onLoad(); - -?> diff --git a/interface/ispconfig/interface/dns/dns_cname_edit.php b/interface/ispconfig/interface/dns/dns_cname_edit.php deleted file mode 100644 index 96e645348..000000000 --- a/interface/ispconfig/interface/dns/dns_cname_edit.php +++ /dev/null @@ -1,138 +0,0 @@ -auth->check_module_permissions('dns'); - -// Loading classes -$app->uses('tpl,tform,tform_actions,validate_dns'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($client["limit_dns_record"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_record"]) { - $app->error($app->tform->wordbook["limit_dns_record_txt"]); - } - } - } - - parent::onShowNew(); - } - - function onSubmit() { - global $app, $conf; - - // Get the parent soa record of the domain - $soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = '".intval($_POST["zone"])."' AND ".$app->tform->getAuthSQL('r')); - - // Check if Domain belongs to user - if($soa["id"] != $_POST["zone"]) $app->tform->errorMessage .= $app->tform->wordbook["no_zone_perm"]; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($this->id == 0 && $client["limit_dns_record"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_record"]) { - $app->error($app->tform->wordbook["limit_dns_record_txt"]); - } - } - } // end if user is not admin - - - // Set the server ID of the rr record to the same server ID as the parent record. - $this->dataRecord["server_id"] = $soa["server_id"]; - - // Update the serial number and timestamp of the RR record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_rr WHERE id = ".$this->id); - $this->dataRecord["serial"] = $app->validate_dns->increase_serial($soa["serial"]); - $this->dataRecord["stamp"] = date('Y-m-d H:i:s'); - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app, $conf; - - //* Set the sys_groupid of the rr record to be the same then the sys_groupid of the soa record - $soa = $app->db->queryOneRecord("SELECT sys_groupid,serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $app->db->datalogUpdate('dns_rr', "sys_groupid = ".$soa['sys_groupid'], 'id', $this->id); - - //* Update the serial number of the SOA record - $soa_id = intval($_POST["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } - - function onAfterUpdate() { - global $app, $conf; - - //* Update the serial number of the SOA record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $soa_id = intval($_POST["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } -} - -$page = new page_action; -$page->onLoad(); - -?> diff --git a/interface/ispconfig/interface/dns/dns_hinfo_edit.php b/interface/ispconfig/interface/dns/dns_hinfo_edit.php deleted file mode 100644 index cafbedef9..000000000 --- a/interface/ispconfig/interface/dns/dns_hinfo_edit.php +++ /dev/null @@ -1,138 +0,0 @@ -auth->check_module_permissions('dns'); - -// Loading classes -$app->uses('tpl,tform,tform_actions,validate_dns'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($client["limit_dns_record"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_record"]) { - $app->error($app->tform->wordbook["limit_dns_record_txt"]); - } - } - } - - parent::onShowNew(); - } - - function onSubmit() { - global $app, $conf; - - // Get the parent soa record of the domain - $soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = '".intval($_POST["zone"])."' AND ".$app->tform->getAuthSQL('r')); - - // Check if Domain belongs to user - if($soa["id"] != $_POST["zone"]) $app->tform->errorMessage .= $app->tform->wordbook["no_zone_perm"]; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($this->id == 0 && $client["limit_dns_record"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_record"]) { - $app->error($app->tform->wordbook["limit_dns_record_txt"]); - } - } - } // end if user is not admin - - - // Set the server ID of the rr record to the same server ID as the parent record. - $this->dataRecord["server_id"] = $soa["server_id"]; - - // Update the serial number and timestamp of the RR record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_rr WHERE id = ".$this->id); - $this->dataRecord["serial"] = $app->validate_dns->increase_serial($soa["serial"]); - $this->dataRecord["stamp"] = date('Y-m-d H:i:s'); - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app, $conf; - - //* Set the sys_groupid of the rr record to be the same then the sys_groupid of the soa record - $soa = $app->db->queryOneRecord("SELECT sys_groupid,serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $app->db->datalogUpdate('dns_rr', "sys_groupid = ".$soa['sys_groupid'], 'id', $this->id); - - //* Update the serial number of the SOA record - $soa_id = intval($_POST["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } - - function onAfterUpdate() { - global $app, $conf; - - //* Update the serial number of the SOA record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $soa_id = intval($_POST["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } -} - -$page = new page_action; -$page->onLoad(); - -?> diff --git a/interface/ispconfig/interface/dns/dns_mx_edit.php b/interface/ispconfig/interface/dns/dns_mx_edit.php deleted file mode 100644 index 889d795e1..000000000 --- a/interface/ispconfig/interface/dns/dns_mx_edit.php +++ /dev/null @@ -1,138 +0,0 @@ -auth->check_module_permissions('dns'); - -// Loading classes -$app->uses('tpl,tform,tform_actions,validate_dns'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($client["limit_dns_record"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_record"]) { - $app->error($app->tform->wordbook["limit_dns_record_txt"]); - } - } - } - - parent::onShowNew(); - } - - function onSubmit() { - global $app, $conf; - - // Get the parent soa record of the domain - $soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = '".intval($_POST["zone"])."' AND ".$app->tform->getAuthSQL('r')); - - // Check if Domain belongs to user - if($soa["id"] != $_POST["zone"]) $app->tform->errorMessage .= $app->tform->wordbook["no_zone_perm"]; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($this->id == 0 && $client["limit_dns_record"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_record"]) { - $app->error($app->tform->wordbook["limit_dns_record_txt"]); - } - } - } // end if user is not admin - - - // Set the server ID of the rr record to the same server ID as the parent record. - $this->dataRecord["server_id"] = $soa["server_id"]; - - // Update the serial number and timestamp of the RR record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_rr WHERE id = ".$this->id); - $this->dataRecord["serial"] = $app->validate_dns->increase_serial($soa["serial"]); - $this->dataRecord["stamp"] = date('Y-m-d H:i:s'); - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app, $conf; - - //* Set the sys_groupid of the rr record to be the same then the sys_groupid of the soa record - $soa = $app->db->queryOneRecord("SELECT sys_groupid,serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $app->db->datalogUpdate('dns_rr', "sys_groupid = ".$soa['sys_groupid'], 'id', $this->id); - - //* Update the serial number of the SOA record - $soa_id = intval($_POST["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } - - function onAfterUpdate() { - global $app, $conf; - - //* Update the serial number of the SOA record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $soa_id = intval($_POST["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } -} - -$page = new page_action; -$page->onLoad(); - -?> diff --git a/interface/ispconfig/interface/dns/dns_ns_edit.php b/interface/ispconfig/interface/dns/dns_ns_edit.php deleted file mode 100644 index 5fa65c9d0..000000000 --- a/interface/ispconfig/interface/dns/dns_ns_edit.php +++ /dev/null @@ -1,138 +0,0 @@ -auth->check_module_permissions('dns'); - -// Loading classes -$app->uses('tpl,tform,tform_actions,validate_dns'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($client["limit_dns_record"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_record"]) { - $app->error($app->tform->wordbook["limit_dns_record_txt"]); - } - } - } - - parent::onShowNew(); - } - - function onSubmit() { - global $app, $conf; - - // Get the parent soa record of the domain - $soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = '".intval($_POST["zone"])."' AND ".$app->tform->getAuthSQL('r')); - - // Check if Domain belongs to user - if($soa["id"] != $_POST["zone"]) $app->tform->errorMessage .= $app->tform->wordbook["no_zone_perm"]; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($this->id == 0 && $client["limit_dns_record"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_record"]) { - $app->error($app->tform->wordbook["limit_dns_record_txt"]); - } - } - } // end if user is not admin - - - // Set the server ID of the rr record to the same server ID as the parent record. - $this->dataRecord["server_id"] = $soa["server_id"]; - - // Update the serial number and timestamp of the RR record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_rr WHERE id = ".$this->id); - $this->dataRecord["serial"] = $app->validate_dns->increase_serial($soa["serial"]); - $this->dataRecord["stamp"] = date('Y-m-d H:i:s'); - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app, $conf; - - //* Set the sys_groupid of the rr record to be the same then the sys_groupid of the soa record - $soa = $app->db->queryOneRecord("SELECT sys_groupid,serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $app->db->datalogUpdate('dns_rr', "sys_groupid = ".$soa['sys_groupid'], 'id', $this->id); - - //* Update the serial number of the SOA record - $soa_id = intval($_POST["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } - - function onAfterUpdate() { - global $app, $conf; - - //* Update the serial number of the SOA record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $soa_id = intval($_POST["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } -} - -$page = new page_action; -$page->onLoad(); - -?> diff --git a/interface/ispconfig/interface/dns/dns_ptr_edit.php b/interface/ispconfig/interface/dns/dns_ptr_edit.php deleted file mode 100644 index 04f1b2ef4..000000000 --- a/interface/ispconfig/interface/dns/dns_ptr_edit.php +++ /dev/null @@ -1,138 +0,0 @@ -auth->check_module_permissions('dns'); - -// Loading classes -$app->uses('tpl,tform,tform_actions,validate_dns'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($client["limit_dns_record"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_record"]) { - $app->error($app->tform->wordbook["limit_dns_record_txt"]); - } - } - } - - parent::onShowNew(); - } - - function onSubmit() { - global $app, $conf; - - // Get the parent soa record of the domain - $soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = '".intval($_POST["zone"])."' AND ".$app->tform->getAuthSQL('r')); - - // Check if Domain belongs to user - if($soa["id"] != $_POST["zone"]) $app->tform->errorMessage .= $app->tform->wordbook["no_zone_perm"]; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($this->id == 0 && $client["limit_dns_record"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_record"]) { - $app->error($app->tform->wordbook["limit_dns_record_txt"]); - } - } - } // end if user is not admin - - - // Set the server ID of the rr record to the same server ID as the parent record. - $this->dataRecord["server_id"] = $soa["server_id"]; - - // Update the serial number and timestamp of the RR record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_rr WHERE id = ".$this->id); - $this->dataRecord["serial"] = $app->validate_dns->increase_serial($soa["serial"]); - $this->dataRecord["stamp"] = date('Y-m-d H:i:s'); - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app, $conf; - - //* Set the sys_groupid of the rr record to be the same then the sys_groupid of the soa record - $soa = $app->db->queryOneRecord("SELECT sys_groupid,serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $app->db->datalogUpdate('dns_rr', "sys_groupid = ".$soa['sys_groupid'], 'id', $this->id); - - //* Update the serial number of the SOA record - $soa_id = intval($_POST["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } - - function onAfterUpdate() { - global $app, $conf; - - //* Update the serial number of the SOA record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $soa_id = intval($_POST["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } -} - -$page = new page_action; -$page->onLoad(); - -?> diff --git a/interface/ispconfig/interface/dns/dns_rp_edit.php b/interface/ispconfig/interface/dns/dns_rp_edit.php deleted file mode 100644 index 10c61122f..000000000 --- a/interface/ispconfig/interface/dns/dns_rp_edit.php +++ /dev/null @@ -1,138 +0,0 @@ -auth->check_module_permissions('dns'); - -// Loading classes -$app->uses('tpl,tform,tform_actions,validate_dns'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($client["limit_dns_record"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_record"]) { - $app->error($app->tform->wordbook["limit_dns_record_txt"]); - } - } - } - - parent::onShowNew(); - } - - function onSubmit() { - global $app, $conf; - - // Get the parent soa record of the domain - $soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = '".intval($_POST["zone"])."' AND ".$app->tform->getAuthSQL('r')); - - // Check if Domain belongs to user - if($soa["id"] != $_POST["zone"]) $app->tform->errorMessage .= $app->tform->wordbook["no_zone_perm"]; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($this->id == 0 && $client["limit_dns_record"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_record"]) { - $app->error($app->tform->wordbook["limit_dns_record_txt"]); - } - } - } // end if user is not admin - - - // Set the server ID of the rr record to the same server ID as the parent record. - $this->dataRecord["server_id"] = $soa["server_id"]; - - // Update the serial number and timestamp of the RR record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_rr WHERE id = ".$this->id); - $this->dataRecord["serial"] = $app->validate_dns->increase_serial($soa["serial"]); - $this->dataRecord["stamp"] = date('Y-m-d H:i:s'); - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app, $conf; - - //* Set the sys_groupid of the rr record to be the same then the sys_groupid of the soa record - $soa = $app->db->queryOneRecord("SELECT sys_groupid,serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $app->db->datalogUpdate('dns_rr', "sys_groupid = ".$soa['sys_groupid'], 'id', $this->id); - - //* Update the serial number of the SOA record - $soa_id = intval($_POST["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } - - function onAfterUpdate() { - global $app, $conf; - - //* Update the serial number of the SOA record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $soa_id = intval($_POST["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } -} - -$page = new page_action; -$page->onLoad(); - -?> diff --git a/interface/ispconfig/interface/dns/dns_rr_del.php b/interface/ispconfig/interface/dns/dns_rr_del.php deleted file mode 100644 index 7a0b92d14..000000000 --- a/interface/ispconfig/interface/dns/dns_rr_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('dns'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/dns_soa_del.php b/interface/ispconfig/interface/dns/dns_soa_del.php deleted file mode 100644 index 38e35bd67..000000000 --- a/interface/ispconfig/interface/dns/dns_soa_del.php +++ /dev/null @@ -1,69 +0,0 @@ -auth->check_module_permissions('dns'); - -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onBeforeDelete() { - global $app; $conf; - - if($app->tform->checkPerm($this->id,'d') == false) $app->error($app->lng('error_no_delete_permission')); - - // Delete all records that belog to this zone. - $records = $app->db->queryAllRecords("SELECT id FROM dns_rr WHERE zone = '".intval($this->id)."'"); - foreach($records as $rec) { - $app->db->datalogDelete('dns_rr','id',$rec['id']); - } - } -} - -$page = new page_action; -$page->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/dns_soa_edit.php b/interface/ispconfig/interface/dns/dns_soa_edit.php deleted file mode 100644 index 6bfad6912..000000000 --- a/interface/ispconfig/interface/dns/dns_soa_edit.php +++ /dev/null @@ -1,222 +0,0 @@ -auth->check_module_permissions('dns'); - -// Loading classes -$app->uses('tpl,tform,tform_actions,validate_dns'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_dns_zone')) { - $app->error($app->tform->wordbook["limit_dns_zone_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_dns_zone')) { - $app->error('Reseller: '.$app->tform->wordbook["limit_dns_zone_txt"]); - } - } - - parent::onShowNew(); - } - - function onShowEnd() { - global $app, $conf; - - // If user is admin, we will allow him to select to whom this record belongs - if($_SESSION["s"]["user"]["typ"] == 'admin') { - // Getting Domains of the user - $sql = "SELECT groupid, name FROM sys_group WHERE client_id > 0 ORDER by name"; - $clients = $app->db->queryAllRecords($sql); - $client_select = ''; - if($_SESSION["s"]["user"]["typ"] == 'admin') $client_select .= ""; - $tmp_data_record = $app->tform->getDataRecord($this->id); - if(is_array($clients)) { - foreach( $clients as $client) { - $selected = ($client["groupid"] == @$tmp_data_record["sys_groupid"])?'SELECTED':''; - $client_select .= "\r\n"; - } - } - $app->tpl->setVar("client_group_id",$client_select); - } else if($app->auth->has_clients($_SESSION['s']['user']['userid'])) { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT client.client_id, client.contact_name FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Fill the client select field - $sql = "SELECT groupid, name FROM sys_group, client WHERE sys_group.client_id = client.client_id AND client.parent_client_id = ".$client['client_id']." ORDER BY name"; - $clients = $app->db->queryAllRecords($sql); - $tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$client['client_id']); - $client_select = ''; - $tmp_data_record = $app->tform->getDataRecord($this->id); - if(is_array($clients)) { - foreach( $clients as $client) { - $selected = @($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':''; - $client_select .= "\r\n"; - } - } - $app->tpl->setVar("client_group_id",$client_select); - - } - - parent::onShowEnd(); - } - - function onSubmit() { - global $app, $conf; - - if($_SESSION["s"]["user"]["typ"] != 'admin') { - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_zone, default_dnsserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // When the record is updated - if($this->id > 0) { - // restore the server ID if the user is not admin and record is edited - $tmp = $app->db->queryOneRecord("SELECT server_id FROM dns_soa WHERE id = ".intval($this->id)); - $this->dataRecord["server_id"] = $tmp["server_id"]; - unset($tmp); - // When the record is inserted - } else { - // set the server ID to the default dnsserver of the client - $this->dataRecord["server_id"] = $client["default_dnsserver"]; - - // Check if the user may add another maildomain. - if($client["limit_dns_zone"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_soa WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_zone"]) { - $app->error($app->tform->wordbook["limit_dns_zone_txt"]); - } - } - } - } - - /* - // Update the serial number of the SOA record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = ".$this->id); - $this->dataRecord["serial"] = $app->validate_dns->increase_serial($soa["serial"]); - */ - - - //* Check if soa, ns and mbox have a dot at the end - if(strlen($this->dataRecord["origin"]) > 0 && substr($this->dataRecord["origin"],-1,1) != '.') $this->dataRecord["origin"] .= '.'; - if(strlen($this->dataRecord["ns"]) > 0 && substr($this->dataRecord["ns"],-1,1) != '.') $this->dataRecord["ns"] .= '.'; - if(strlen($this->dataRecord["mbox"]) > 0 && substr($this->dataRecord["mbox"],-1,1) != '.') $this->dataRecord["mbox"] .= '.'; - - //* Replace @ in mbox - if(stristr($this->dataRecord["mbox"],'@')) { - $this->dataRecord["mbox"] = str_replace('@','.',$this->dataRecord["mbox"]); - } - - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app, $conf; - - // make sure that the record belongs to the client group and not the admin group when a dmin inserts it - if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE dns_soa SET sys_groupid = $client_group_id WHERE id = ".$this->id); - // And we want to update all rr records too, that belong to this record - $app->db->query("UPDATE dns_rr SET sys_groupid = $client_group_id WHERE zone = ".$this->id); - } - if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE dns_soa SET sys_groupid = $client_group_id WHERE id = ".$this->id); - // And we want to update all rr records too, that belong to this record - $app->db->query("UPDATE dns_rr SET sys_groupid = $client_group_id WHERE zone = ".$this->id); - } - - } - - function onAfterUpdate() { - global $app, $conf; - - $tmp = $app->db->diffrec($this->oldDataRecord,$app->tform->getDataRecord($this->id)); - if($tmp['diff_num'] > 0) { - // Update the serial number of the SOA record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = ".$this->id); - $app->db->query("UPDATE dns_soa SET serial = '".$app->validate_dns->increase_serial($soa["serial"])."' WHERE id = ".$this->id); - } - - // make sure that the record belongs to the client group and not the admin group when a dmin inserts it - if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE dns_soa SET sys_groupid = $client_group_id WHERE id = ".$this->id); - // And we want to update all rr records too, that belong to this record - $app->db->query("UPDATE dns_rr SET sys_groupid = $client_group_id WHERE zone = ".$this->id); - } - if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE dns_soa SET sys_groupid = $client_group_id WHERE id = ".$this->id); - // And we want to update all rr records too, that belong to this record - $app->db->query("UPDATE dns_rr SET sys_groupid = $client_group_id WHERE zone = ".$this->id); - } - - //** When the client group has changed, change also the owner of the record if the owner is not the admin user - if($this->oldDataRecord["client_group_id"] != $this->dataRecord["client_group_id"] && $this->dataRecord["sys_userid"] != 1) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $tmp = $app->db->queryOneREcord("SELECT userid FROM sys_user WHERE default_group = ".$client_group_id); - if($tmp["userid"] > 0) { - $app->db->query("UPDATE dns_soa SET sys_userid = ".$tmp["userid"]." WHERE id = ".$this->id); - $app->db->query("UPDATE dns_rr SET sys_userid = ".$tmp["userid"]." WHERE zone = ".$this->id); - } - } - - } - -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/dns_soa_list.php b/interface/ispconfig/interface/dns/dns_soa_list.php deleted file mode 100644 index 7b2981a5b..000000000 --- a/interface/ispconfig/interface/dns/dns_soa_list.php +++ /dev/null @@ -1,25 +0,0 @@ -auth->check_module_permissions('dns'); - -$app->uses('listform_actions'); -// $app->listform_actions->SQLExtWhere = "access = 'REJECT'"; - -$app->listform_actions->SQLOrderBy = 'ORDER BY origin'; -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/dns_srv_edit.php b/interface/ispconfig/interface/dns/dns_srv_edit.php deleted file mode 100644 index 15af1e207..000000000 --- a/interface/ispconfig/interface/dns/dns_srv_edit.php +++ /dev/null @@ -1,138 +0,0 @@ -auth->check_module_permissions('dns'); - -// Loading classes -$app->uses('tpl,tform,tform_actions,validate_dns'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($client["limit_dns_record"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_record"]) { - $app->error($app->tform->wordbook["limit_dns_record_txt"]); - } - } - } - - parent::onShowNew(); - } - - function onSubmit() { - global $app, $conf; - - // Get the parent soa record of the domain - $soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = '".intval($_POST["zone"])."' AND ".$app->tform->getAuthSQL('r')); - - // Check if Domain belongs to user - if($soa["id"] != $_POST["zone"]) $app->tform->errorMessage .= $app->tform->wordbook["no_zone_perm"]; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($this->id == 0 && $client["limit_dns_record"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_record"]) { - $app->error($app->tform->wordbook["limit_dns_record_txt"]); - } - } - } // end if user is not admin - - - // Set the server ID of the rr record to the same server ID as the parent record. - $this->dataRecord["server_id"] = $soa["server_id"]; - - // Update the serial number and timestamp of the RR record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_rr WHERE id = ".$this->id); - $this->dataRecord["serial"] = $app->validate_dns->increase_serial($soa["serial"]); - $this->dataRecord["stamp"] = date('Y-m-d H:i:s'); - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app, $conf; - - //* Set the sys_groupid of the rr record to be the same then the sys_groupid of the soa record - $soa = $app->db->queryOneRecord("SELECT sys_groupid,serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $app->db->datalogUpdate('dns_rr', "sys_groupid = ".$soa['sys_groupid'], 'id', $this->id); - - //* Update the serial number of the SOA record - $soa_id = intval($_POST["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } - - function onAfterUpdate() { - global $app, $conf; - - //* Update the serial number of the SOA record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $soa_id = intval($_POST["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } -} - -$page = new page_action; -$page->onLoad(); - -?> diff --git a/interface/ispconfig/interface/dns/dns_template_del.php b/interface/ispconfig/interface/dns/dns_template_del.php deleted file mode 100644 index 5aa1ff748..000000000 --- a/interface/ispconfig/interface/dns/dns_template_del.php +++ /dev/null @@ -1,58 +0,0 @@ -auth->check_module_permissions('dns'); - -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - -} - -$page = new page_action; -$page->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/dns_template_edit.php b/interface/ispconfig/interface/dns/dns_template_edit.php deleted file mode 100644 index 7d84d5ca8..000000000 --- a/interface/ispconfig/interface/dns/dns_template_edit.php +++ /dev/null @@ -1,60 +0,0 @@ -auth->check_module_permissions('dns'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -if($_SESSION["s"]["user"]["typ"] != 'admin') die('Access denied for non admin users.'); - -class page_action extends tform_actions { - -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/dns_template_list.php b/interface/ispconfig/interface/dns/dns_template_list.php deleted file mode 100644 index 4cde9a013..000000000 --- a/interface/ispconfig/interface/dns/dns_template_list.php +++ /dev/null @@ -1,24 +0,0 @@ -auth->check_module_permissions('dns'); - -$app->uses('listform_actions'); -// $app->listform_actions->SQLExtWhere = "access = 'REJECT'"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/dns_txt_edit.php b/interface/ispconfig/interface/dns/dns_txt_edit.php deleted file mode 100644 index 2d5cecdc9..000000000 --- a/interface/ispconfig/interface/dns/dns_txt_edit.php +++ /dev/null @@ -1,138 +0,0 @@ -auth->check_module_permissions('dns'); - -// Loading classes -$app->uses('tpl,tform,tform_actions,validate_dns'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($client["limit_dns_record"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_record"]) { - $app->error($app->tform->wordbook["limit_dns_record_txt"]); - } - } - } - - parent::onShowNew(); - } - - function onSubmit() { - global $app, $conf; - - // Get the parent soa record of the domain - $soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = '".intval($_POST["zone"])."' AND ".$app->tform->getAuthSQL('r')); - - // Check if Domain belongs to user - if($soa["id"] != $_POST["zone"]) $app->tform->errorMessage .= $app->tform->wordbook["no_zone_perm"]; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($this->id == 0 && $client["limit_dns_record"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_dns_record"]) { - $app->error($app->tform->wordbook["limit_dns_record_txt"]); - } - } - } // end if user is not admin - - - // Set the server ID of the rr record to the same server ID as the parent record. - $this->dataRecord["server_id"] = $soa["server_id"]; - - // Update the serial number and timestamp of the RR record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_rr WHERE id = ".$this->id); - $this->dataRecord["serial"] = $app->validate_dns->increase_serial($soa["serial"]); - $this->dataRecord["stamp"] = date('Y-m-d H:i:s'); - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app, $conf; - - //* Set the sys_groupid of the rr record to be the same then the sys_groupid of the soa record - $soa = $app->db->queryOneRecord("SELECT sys_groupid,serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $app->db->datalogUpdate('dns_rr', "sys_groupid = ".$soa['sys_groupid'], 'id', $this->id); - - //* Update the serial number of the SOA record - $soa_id = intval($_POST["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } - - function onAfterUpdate() { - global $app, $conf; - - //* Update the serial number of the SOA record - $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = '".intval($this->dataRecord["zone"])."' AND ".$app->tform->getAuthSQL('r')); - $soa_id = intval($_POST["zone"]); - $serial = $app->validate_dns->increase_serial($soa["serial"]); - $app->db->datalogUpdate('dns_soa', "serial = $serial", 'id', $soa_id); - } -} - -$page = new page_action; -$page->onLoad(); - -?> diff --git a/interface/ispconfig/interface/dns/dns_wizard.php b/interface/ispconfig/interface/dns/dns_wizard.php deleted file mode 100644 index 2c985eb94..000000000 --- a/interface/ispconfig/interface/dns/dns_wizard.php +++ /dev/null @@ -1,274 +0,0 @@ -auth->check_module_permissions('dns'); - - -// Loading the template -$app->uses('tpl,validate_dns'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl','templates/dns_wizard.htm'); -$app->load_language_file('/web/dns/lib/lang/'.$_SESSION['s']['language'].'_dns_wizard.lng'); - -// import variables -$template_id = (isset($_POST['template_id']))?intval($_POST['template_id']):0; -$sys_groupid = (isset($_POST['client_group_id']))?intval($_POST['client_group_id']):0; - -// get the correct server_id -if($_SESSION['s']['user']['typ'] == 'admin') { - $server_id = (isset($_POST['server_id']))?intval($_POST['server_id']):1; -} else { - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT default_dnsserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - $server_id = $client["default_dnsserver"]; -} - - -// Load the templates -$records = $app->db->queryAllRecords("SELECT * FROM dns_template WHERE visible = 'Y'"); -$template_id_option = ''; -$n = 0; -foreach($records as $rec){ - $checked = ($rec['template_id'] == $template_id)?' SELECTED':''; - $template_id_option .= ''; - if($n == 0 && $template_id == 0) $template_id = $rec['template_id']; - $n++; -} -unset($n); -$app->tpl->setVar("template_id_option",$template_id_option); - -// If the user is administrator -if($_SESSION['s']['user']['typ'] == 'admin') { - - // Load the list of servers - $records = $app->db->queryAllRecords("SELECT server_id, server_name FROM server WHERE dns_server = 1 ORDER BY server_name"); - $server_id_option = ''; - foreach($records as $rec){ - $checked = ($rec['server_id'] == $server_id)?' SELECTED':''; - $server_id_option .= ''; - } - $app->tpl->setVar("server_id",$server_id_option); - - // load the list of clients - $sql = "SELECT groupid, name FROM sys_group WHERE client_id > 0 ORDER BY name"; - $clients = $app->db->queryAllRecords($sql); - $client_select = ''; - if($_SESSION["s"]["user"]["typ"] == 'admin') $client_select .= ""; - if(is_array($clients)) { - foreach( $clients as $client) { - $selected = ($client["groupid"] == $sys_groupid)?'SELECTED':''; - $client_select .= "\r\n"; - } - } - - $app->tpl->setVar("client_group_id",$client_select); -} - -if ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT client.client_id, contact_name FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - - // load the list of clients - $sql = "SELECT groupid, name FROM sys_group, client WHERE sys_group.client_id = client.client_id AND client.parent_client_id = ".$client['client_id']; - $clients = $app->db->queryAllRecords($sql); - $tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$client['client_id']); - $client_select = ''; - if(is_array($clients)) { - foreach( $clients as $client) { - $selected = ($client["groupid"] == $sys_groupid)?'SELECTED':''; - $client_select .= "\r\n"; - } - } - - $app->tpl->setVar("client_group_id",$client_select); -} - - -$template_record = $app->db->queryOneRecord("SELECT * FROM dns_template WHERE template_id = '$template_id'"); -$fields = explode(',',$template_record['fields']); -if(is_array($fields)) { - foreach($fields as $field) { - $app->tpl->setVar($field."_VISIBLE",1); - $field = strtolower($field); - $app->tpl->setVar($field,$_POST[$field]); - } -} - -if($_POST['create'] == 1) { - - $error = ''; - - if(isset($_POST['domain']) && $_POST['domain'] == '') $error .= $app->lng('error_domain_empty').'
'; - if(isset($_POST['ip']) && $_POST['ip'] == '') $error .= $app->lng('error_ip_empty').'
'; - if(isset($_POST['ns1']) && $_POST['ns1'] == '') $error .= $app->lng('error_ns1_empty').'
'; - if(isset($_POST['ns2']) && $_POST['ns2'] == '') $error .= $app->lng('error_ns2_empty').'
'; - if(isset($_POST['email']) && $_POST['email'] == '') $error .= $app->lng('error_email_empty').'
'; - - if(isset($_POST['domain']) && !preg_match('/^[\w\.\-]{2,64}\.[a-zA-Z]{2,10}[\.]{0,1}$/',$_POST['domain'])) $error .= $app->lng('error_domain_regex').'
'; - if(isset($_POST['ns1']) && !preg_match('/^[\w\.\-]{2,64}\.[a-zA-Z]{2,10}[\.]{0,1}$/',$_POST['ns1'])) $error .= $app->lng('error_ns1_regex').'
'; - if(isset($_POST['ns2']) && !preg_match('/^[\w\.\-]{2,64}\.[a-zA-Z]{2,10}[\.]{0,1}$/',$_POST['ns2'])) $error .= $app->lng('error_ns2_regex').'
'; - if(isset($_POST['email']) && !preg_match('/^\w+[\w.-]*\w+@\w+[\w.-]*\w+\.[a-z]{2,10}$/i',$_POST['email'])) $error .= $app->lng('error_email_regex').'
'; - - // make sure that the record belongs to the clinet group and not the admin group when a dmin inserts it - if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($_POST['client_group_id'])) { - $sys_groupid = intval($_POST['client_group_id']); - } elseif($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($_POST['client_group_id'])) { - $sys_groupid = intval($_POST['client_group_id']); - } else { - $sys_groupid = $_SESSION["s"]["user"]["default_group"]; - } - - $tform_def_file = "form/dns_soa.tform.php"; - $app->uses('tform'); - $app->tform->loadFormDef($tform_def_file); - - if($_SESSION['s']['user']['typ'] != 'admin') { - if(!$app->tform->checkClientLimit('limit_dns_zone')) { - $error .= $app->tform->wordbook["limit_dns_zone_txt"]; - } - if(!$app->tform->checkResellerLimit('limit_dns_zone')) { - $error .= $app->tform->wordbook["limit_dns_zone_txt"]; - } - } - - - // replace template placeholders - $tpl_content = $template_record['template']; - if($_POST['domain'] != '') $tpl_content = str_replace('{DOMAIN}',$_POST['domain'],$tpl_content); - if($_POST['ip'] != '') $tpl_content = str_replace('{IP}',$_POST['ip'],$tpl_content); - if($_POST['ns1'] != '') $tpl_content = str_replace('{NS1}',$_POST['ns1'],$tpl_content); - if($_POST['ns2'] != '') $tpl_content = str_replace('{NS2}',$_POST['ns2'],$tpl_content); - if($_POST['email'] != '') $tpl_content = str_replace('{EMAIL}',$_POST['email'],$tpl_content); - - // Parse the template - $tpl_rows = explode("\n",$tpl_content); - $section = ''; - $vars = array(); - $dns_rr = array(); - foreach($tpl_rows as $row) { - $row = trim($row); - if(substr($row,0,1) == '[') { - if($row == '[ZONE]') { - $section = 'zone'; - } elseif($row == '[DNS_RECORDS]') { - $section = 'dns_records'; - } else { - die('Unknown section type'); - } - } else { - if($row != '') { - // Handle zone section - if($section == 'zone') { - $parts = explode('=',$row); - $key = trim($parts[0]); - $val = trim($parts[1]); - if($key != '') $vars[$key] = $val; - } - // Handle DNS Record rows - if($section == 'dns_records') { - $parts = explode('|',$row); - $dns_rr[] = array( - 'name' => $app->db->quote($parts[1]), - 'type' => $app->db->quote($parts[0]), - 'data' => $app->db->quote($parts[2]), - 'aux' => $app->db->quote($parts[3]), - 'ttl' => $app->db->quote($parts[4]) - ); - } - } - } - - } // end foreach - - if($vars['origin'] == '') $error .= $app->lng('error_origin_empty').'
'; - if($vars['ns'] == '') $error .= $app->lng('error_ns_empty').'
'; - if($vars['mbox'] == '') $error .= $app->lng('error_mbox_empty').'
'; - if($vars['refresh'] == '') $error .= $app->lng('error_refresh_empty').'
'; - if($vars['retry'] == '') $error .= $app->lng('error_retry_empty').'
'; - if($vars['expire'] == '') $error .= $app->lng('error_expire_empty').'
'; - if($vars['minimum'] == '') $error .= $app->lng('error_minimum_empty').'
'; - if($vars['ttl'] == '') $error .= $app->lng('error_ttl_empty').'
'; - - if($error == '') { - // Insert the soa record - $sys_userid = $_SESSION['s']['user']['userid']; - $origin = $app->db->quote($vars['origin']); - $ns = $app->db->quote($vars['ns']); - $mbox = $app->db->quote(str_replace('@','.',$vars['mbox'])); - $refresh = $app->db->quote($vars['refresh']); - $retry = $app->db->quote($vars['retry']); - $expire = $app->db->quote($vars['expire']); - $minimum = $app->db->quote($vars['minimum']); - $ttl = $app->db->quote($vars['ttl']); - $xfer = $app->db->quote($vars['xfer']); - $serial = $app->validate_dns->increase_serial(0); - - $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `origin`, `ns`, `mbox`, `serial`, `refresh`, `retry`, `expire`, `minimum`, `ttl`, `active`, `xfer`) VALUES - ('$sys_userid', '$sys_groupid', 'riud', 'riud', '', '$server_id', '$origin', '$ns', '$mbox', '$serial', '$refresh', '$retry', '$expire', '$minimum', '$ttl', 'Y', '$xfer')"; - $dns_soa_id = $app->db->datalogInsert('dns_soa', $insert_data, 'id'); - - // Insert the dns_rr records - if(is_array($dns_rr) && $dns_soa_id > 0) { - foreach($dns_rr as $rr) { - $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `zone`, `name`, `type`, `data`, `aux`, `ttl`, `active`) VALUES - ('$sys_userid', '$sys_groupid', 'riud', 'riud', '', '$server_id', '$dns_soa_id', '$rr[name]', '$rr[type]', '$rr[data]', '$rr[aux]', '$rr[ttl]', 'Y')"; - $dns_rr_id = $app->db->datalogInsert('dns_rr', $insert_data, 'id'); - } - } - - header("Location: dns_soa_list.php"); - exit; - - } else { - $app->tpl->setVar("error",$error); - } - -} - - - -$app->tpl->setVar("title",'DNS Wizard'); - -$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_dns_wizard.lng'; -include($lng_file); -$app->tpl->setVar($wb); - -$app->tpl_defaults(); -$app->tpl->pparse(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/form/dns_a.tform.php b/interface/ispconfig/interface/dns/form/dns_a.tform.php deleted file mode 100644 index 5cb747570..000000000 --- a/interface/ispconfig/interface/dns/form/dns_a.tform.php +++ /dev/null @@ -1,159 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['dns'] = array ( - 'title' => "DNS A", - 'width' => 100, - 'template' => "templates/dns_a_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'zone' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => @intval($_REQUEST["zone"]), - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-\*]{0,64}$/', - 'errmsg'=> 'name_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'A', - 'value' => '', - 'width' => '5', - 'maxlength' => '5' - ), - 'data' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'data_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^([1-9]{1}|[1-9]\d|[1]\d\d|2[0-4]\d|25[0-5])\.(\d{1}|[1-9]\d|[1]\d\d|2[0-4]\d|25[0-5])\.(\d{1}|[1-9]\d|[1]\d\d|2[0-4]\d|25[0-5])\.(\d{1}|[1-9]\d|[1]\d\d|2[0-4]\d|25[0-5])$/', - 'errmsg'=> 'data_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - /* - 'aux' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - */ - 'ttl' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '86400', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'Y', - 'value' => array(0 => 'N',1 => 'Y') - ), - 'stamp' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'serial' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/form/dns_aaaa.tform.php b/interface/ispconfig/interface/dns/form/dns_aaaa.tform.php deleted file mode 100644 index 0a9e02123..000000000 --- a/interface/ispconfig/interface/dns/form/dns_aaaa.tform.php +++ /dev/null @@ -1,159 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['dns'] = array ( - 'title' => "DNS AAAA", - 'width' => 100, - 'template' => "templates/dns_aaaa_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'zone' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => @intval($_REQUEST["zone"]), - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-\*]{0,64}$/', - 'errmsg'=> 'name_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'AAAA', - 'value' => '', - 'width' => '5', - 'maxlength' => '5' - ), - 'data' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'data_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\s*((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}(:|((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:)(:[0-9A-Fa-f]{1,4}){0,4}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(:(:[0-9A-Fa-f]{1,4}){0,5}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})))(%.+)?\s*$/', - 'errmsg'=> 'data_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - /* - 'aux' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - */ - 'ttl' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '86400', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'Y', - 'value' => array(0 => 'N',1 => 'Y') - ), - 'stamp' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'serial' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/form/dns_alias.tform.php b/interface/ispconfig/interface/dns/form/dns_alias.tform.php deleted file mode 100644 index 37ebc7793..000000000 --- a/interface/ispconfig/interface/dns/form/dns_alias.tform.php +++ /dev/null @@ -1,161 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['dns'] = array ( - 'title' => "DNS ALIAS", - 'width' => 100, - 'template' => "templates/dns_alias_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'zone' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => @intval($_REQUEST["zone"]), - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'name_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{1,64}$/', - 'errmsg'=> 'name_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'ALIAS', - 'value' => '', - 'width' => '5', - 'maxlength' => '5' - ), - 'data' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'data_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{1,64}$/', - 'errmsg'=> 'data_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - /* - 'aux' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - */ - 'ttl' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '86400', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'Y', - 'value' => array(0 => 'N',1 => 'Y') - ), - 'stamp' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'serial' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/form/dns_cname.tform.php b/interface/ispconfig/interface/dns/form/dns_cname.tform.php deleted file mode 100644 index 6409b9750..000000000 --- a/interface/ispconfig/interface/dns/form/dns_cname.tform.php +++ /dev/null @@ -1,159 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['dns'] = array ( - 'title' => "DNS CNAME", - 'width' => 100, - 'template' => "templates/dns_cname_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'zone' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => @intval($_REQUEST["zone"]), - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-\*]{0,64}$/', - 'errmsg'=> 'name_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'CNAME', - 'value' => '', - 'width' => '5', - 'maxlength' => '5' - ), - 'data' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'data_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{1,64}$/', - 'errmsg'=> 'data_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - /* - 'aux' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - */ - 'ttl' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '86400', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'Y', - 'value' => array(0 => 'N',1 => 'Y') - ), - 'stamp' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'serial' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/form/dns_hinfo.tform.php b/interface/ispconfig/interface/dns/form/dns_hinfo.tform.php deleted file mode 100644 index fd8facf2c..000000000 --- a/interface/ispconfig/interface/dns/form/dns_hinfo.tform.php +++ /dev/null @@ -1,158 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['dns'] = array ( - 'title' => "DNS HINFO", - 'width' => 100, - 'template' => "templates/dns_hinfo_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'zone' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => @intval($_REQUEST["zone"]), - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'name_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{1,64}$/', - 'errmsg'=> 'name_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'HINFO', - 'value' => '', - 'width' => '5', - 'maxlength' => '5' - ), - 'data' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'data_error_empty'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - /* - 'aux' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - */ - 'ttl' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '86400', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'Y', - 'value' => array(0 => 'N',1 => 'Y') - ), - 'stamp' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'serial' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/form/dns_mx.tform.php b/interface/ispconfig/interface/dns/form/dns_mx.tform.php deleted file mode 100644 index 7a30d4e41..000000000 --- a/interface/ispconfig/interface/dns/form/dns_mx.tform.php +++ /dev/null @@ -1,159 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['dns'] = array ( - 'title' => "DNS mx", - 'width' => 100, - 'template' => "templates/dns_mx_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'zone' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => @intval($_REQUEST["zone"]), - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{0,255}$/', - 'errmsg'=> 'name_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'MX', - 'value' => '', - 'width' => '5', - 'maxlength' => '5' - ), - 'data' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'data_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{1,255}$/', - 'errmsg'=> 'data_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - - 'aux' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '10', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - - 'ttl' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '86400', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'Y', - 'value' => array(0 => 'N',1 => 'Y') - ), - 'stamp' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'serial' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/form/dns_ns.tform.php b/interface/ispconfig/interface/dns/form/dns_ns.tform.php deleted file mode 100644 index 2229bac37..000000000 --- a/interface/ispconfig/interface/dns/form/dns_ns.tform.php +++ /dev/null @@ -1,159 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['dns'] = array ( - 'title' => "DNS ns", - 'width' => 100, - 'template' => "templates/dns_ns_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'zone' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => @intval($_REQUEST["zone"]), - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{0,64}$/', - 'errmsg'=> 'name_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'NS', - 'value' => '', - 'width' => '5', - 'maxlength' => '5' - ), - 'data' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'data_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{1,64}$/', - 'errmsg'=> 'data_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - /* - 'aux' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - */ - 'ttl' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '86400', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'Y', - 'value' => array(0 => 'N',1 => 'Y') - ), - 'stamp' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'serial' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/form/dns_ptr.tform.php b/interface/ispconfig/interface/dns/form/dns_ptr.tform.php deleted file mode 100644 index c7521e7f8..000000000 --- a/interface/ispconfig/interface/dns/form/dns_ptr.tform.php +++ /dev/null @@ -1,159 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['dns'] = array ( - 'title' => "DNS ptr", - 'width' => 100, - 'template' => "templates/dns_ptr_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'zone' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => @intval($_REQUEST["zone"]), - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{1,64}$/', - 'errmsg'=> 'name_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'PTR', - 'value' => '', - 'width' => '5', - 'maxlength' => '5' - ), - 'data' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'data_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{1,64}$/', - 'errmsg'=> 'data_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - /* - 'aux' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - */ - 'ttl' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '86400', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'Y', - 'value' => array(0 => 'N',1 => 'Y') - ), - 'stamp' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'serial' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/form/dns_rp.tform.php b/interface/ispconfig/interface/dns/form/dns_rp.tform.php deleted file mode 100644 index 02a43196f..000000000 --- a/interface/ispconfig/interface/dns/form/dns_rp.tform.php +++ /dev/null @@ -1,159 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['dns'] = array ( - 'title' => "DNS RP", - 'width' => 100, - 'template' => "templates/dns_rp_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'zone' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => @intval($_REQUEST["zone"]), - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{0,64}$/', - 'errmsg'=> 'name_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'RP', - 'value' => '', - 'width' => '5', - 'maxlength' => '5' - ), - 'data' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'data_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-\s]{1,128}$/', - 'errmsg'=> 'data_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - /* - 'aux' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - */ - 'ttl' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '86400', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'Y', - 'value' => array(0 => 'N',1 => 'Y') - ), - 'stamp' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'serial' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/form/dns_soa.tform.php b/interface/ispconfig/interface/dns/form/dns_soa.tform.php deleted file mode 100644 index 605679f16..000000000 --- a/interface/ispconfig/interface/dns/form/dns_soa.tform.php +++ /dev/null @@ -1,230 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['dns_soa'] = array ( - 'title' => "DNS Zone", - 'width' => 100, - 'template' => "templates/dns_soa_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND dns_server = 1 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'server_id_error_empty'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'origin' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'origin_error_empty'), - 1 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'origin_error_unique'), - 2 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-\/]{2,255}\.[a-zA-Z]{2,10}[\.]{0,1}$/', - 'errmsg'=> 'origin_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'ns' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{1,64}$/', - 'errmsg'=> 'ns_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'mbox' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'mbox_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[[a-zA-Z0-9\.\-]{0,64}\.$/', - 'errmsg'=> 'mbox_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'serial' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'refresh' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '28800', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'retry' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '7200', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'expire' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '604800', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'minimum' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '86400', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'ttl' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '86400', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'xfer' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'also_notify' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'update_acl' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'Y', - 'value' => array(0 => 'N',1 => 'Y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -$form["tabs"]['dns_records'] = array ( - 'title' => "Records", - 'width' => 100, - 'template' => "templates/dns_records_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - - ################################## - # ENDE Datatable fields - ################################## - ), - 'plugins' => array ( - 'dns_records' => array ( - 'class' => 'plugin_listview', - 'options' => array( - 'listdef' => 'list/dns_a.list.php', - 'sqlextwhere' => "zone = ".@intval(@$_REQUEST['id']), - 'sql_order_by' => "ORDER BY type, name" - ) - ) - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/form/dns_srv.tform.php b/interface/ispconfig/interface/dns/form/dns_srv.tform.php deleted file mode 100644 index 4cc2f55c2..000000000 --- a/interface/ispconfig/interface/dns/form/dns_srv.tform.php +++ /dev/null @@ -1,159 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['dns'] = array ( - 'title' => "DNS SRV", - 'width' => 100, - 'template' => "templates/dns_srv_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'zone' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => @intval($_REQUEST["zone"]), - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{0,64}$/', - 'errmsg'=> 'name_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'SRV', - 'value' => '', - 'width' => '5', - 'maxlength' => '5' - ), - 'data' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'data_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{0,64}\s[\w\.\-]{0,64}\s[\w\.\-]{0,64}$/', - 'errmsg'=> 'srv_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - /* - 'aux' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - */ - 'ttl' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '86400', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'Y', - 'value' => array(0 => 'N',1 => 'Y') - ), - 'stamp' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'serial' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/form/dns_template.tform.php b/interface/ispconfig/interface/dns/form/dns_template.tform.php deleted file mode 100644 index a648fd43c..000000000 --- a/interface/ispconfig/interface/dns/form/dns_template.tform.php +++ /dev/null @@ -1,101 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['template'] = array ( - 'title' => "DNS Template", - 'width' => 100, - 'template' => "templates/dns_template_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'name_error_empty'), - ), - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'fields' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOXARRAY', - 'default' => '', - 'separator' => ',', - 'value' => array('DOMAIN' => 'Domain','IP' => 'IP Address','NS1' => 'NS 1','NS2' => 'NS 2','EMAIL' => 'Email') - ), - 'template' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'TEXTAREA', - 'default' => '', - 'value' => '', - 'cols' => '40', - 'rows' => '15' - ), - 'visible' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'Y', - 'value' => array(0 => 'N',1 => 'Y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/form/dns_txt.tform.php b/interface/ispconfig/interface/dns/form/dns_txt.tform.php deleted file mode 100644 index 153bcc8ea..000000000 --- a/interface/ispconfig/interface/dns/form/dns_txt.tform.php +++ /dev/null @@ -1,156 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['dns'] = array ( - 'title' => "DNS TXT", - 'width' => 100, - 'template' => "templates/dns_txt_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'zone' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => @intval($_REQUEST["zone"]), - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{0,64}$/', - 'errmsg'=> 'name_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'TXT', - 'value' => '', - 'width' => '5', - 'maxlength' => '5' - ), - 'data' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'data_error_empty'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - /* - 'aux' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - */ - 'ttl' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '86400', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'Y', - 'value' => array(0 => 'N',1 => 'Y') - ), - 'stamp' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'serial' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/lib/admin.conf.php b/interface/ispconfig/interface/dns/lib/admin.conf.php deleted file mode 100644 index a45d44034..000000000 --- a/interface/ispconfig/interface/dns/lib/admin.conf.php +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/lib/lang/bg.lng b/interface/ispconfig/interface/dns/lib/lang/bg.lng deleted file mode 100644 index 36def8e93..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/bg.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/bg_dns_a.lng b/interface/ispconfig/interface/dns/lib/lang/bg_dns_a.lng deleted file mode 100644 index 880213951..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/bg_dns_a.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/bg_dns_a_list.lng b/interface/ispconfig/interface/dns/lib/lang/bg_dns_a_list.lng deleted file mode 100644 index 87c9cd818..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/bg_dns_a_list.lng +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/bg_dns_aaaa.lng b/interface/ispconfig/interface/dns/lib/lang/bg_dns_aaaa.lng deleted file mode 100644 index 31ef0da15..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/bg_dns_aaaa.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/bg_dns_alias.lng b/interface/ispconfig/interface/dns/lib/lang/bg_dns_alias.lng deleted file mode 100644 index 827e5a89e..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/bg_dns_alias.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/bg_dns_cname.lng b/interface/ispconfig/interface/dns/lib/lang/bg_dns_cname.lng deleted file mode 100644 index 827e5a89e..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/bg_dns_cname.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/bg_dns_hinfo.lng b/interface/ispconfig/interface/dns/lib/lang/bg_dns_hinfo.lng deleted file mode 100644 index 0d90bcf40..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/bg_dns_hinfo.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/bg_dns_mx.lng b/interface/ispconfig/interface/dns/lib/lang/bg_dns_mx.lng deleted file mode 100644 index 648827f04..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/bg_dns_mx.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/bg_dns_ns.lng b/interface/ispconfig/interface/dns/lib/lang/bg_dns_ns.lng deleted file mode 100644 index 713ec2858..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/bg_dns_ns.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/bg_dns_ptr.lng b/interface/ispconfig/interface/dns/lib/lang/bg_dns_ptr.lng deleted file mode 100644 index c02638406..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/bg_dns_ptr.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/bg_dns_rp.lng b/interface/ispconfig/interface/dns/lib/lang/bg_dns_rp.lng deleted file mode 100644 index d38efd163..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/bg_dns_rp.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/bg_dns_soa.lng b/interface/ispconfig/interface/dns/lib/lang/bg_dns_soa.lng deleted file mode 100644 index e63ffb70f..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/bg_dns_soa.lng +++ /dev/null @@ -1,26 +0,0 @@ -these IPs (comma separated list)'; -$wb['active_txt'] = 'Active'; -$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.'; -$wb['client_txt'] = 'Client'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; -$wb['server_id_error_empty'] = 'No server selected'; -$wb['origin_error_empty'] = 'Zone empty.'; -$wb['origin_error_unique'] = 'There is already a record for this zone.'; -$wb['origin_error_regex'] = 'Zone has a invalid format.'; -$wb['ns_error_regex'] = 'NS has a invalid format.'; -$wb['mbox_error_empty'] = 'Email is empty.'; -$wb['mbox_error_regex'] = 'Email format invalid.'; -$wb['also_notify_txt'] = 'Also Notify'; -$wb['update_acl_txt'] = 'Update ACL'; -?> diff --git a/interface/ispconfig/interface/dns/lib/lang/bg_dns_soa_list.lng b/interface/ispconfig/interface/dns/lib/lang/bg_dns_soa_list.lng deleted file mode 100644 index 42bb32920..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/bg_dns_soa_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/bg_dns_srv.lng b/interface/ispconfig/interface/dns/lib/lang/bg_dns_srv.lng deleted file mode 100644 index d4ea60be9..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/bg_dns_srv.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/bg_dns_template.lng b/interface/ispconfig/interface/dns/lib/lang/bg_dns_template.lng deleted file mode 100644 index 3a09e3bb7..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/bg_dns_template.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/bg_dns_template_list.lng b/interface/ispconfig/interface/dns/lib/lang/bg_dns_template_list.lng deleted file mode 100644 index 8d9d730e5..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/bg_dns_template_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/bg_dns_txt.lng b/interface/ispconfig/interface/dns/lib/lang/bg_dns_txt.lng deleted file mode 100644 index 8e6c417d0..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/bg_dns_txt.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/bg_dns_wizard.lng b/interface/ispconfig/interface/dns/lib/lang/bg_dns_wizard.lng deleted file mode 100644 index ffceabb53..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/bg_dns_wizard.lng +++ /dev/null @@ -1,29 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/br.lng b/interface/ispconfig/interface/dns/lib/lang/br.lng deleted file mode 100644 index de70fdb27..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/br.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/br_dns_a.lng b/interface/ispconfig/interface/dns/lib/lang/br_dns_a.lng deleted file mode 100644 index 137af7c18..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/br_dns_a.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/br_dns_a_list.lng b/interface/ispconfig/interface/dns/lib/lang/br_dns_a_list.lng deleted file mode 100644 index b231c8342..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/br_dns_a_list.lng +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/br_dns_aaaa.lng b/interface/ispconfig/interface/dns/lib/lang/br_dns_aaaa.lng deleted file mode 100644 index 17e77b215..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/br_dns_aaaa.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/br_dns_alias.lng b/interface/ispconfig/interface/dns/lib/lang/br_dns_alias.lng deleted file mode 100644 index d026ddfaa..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/br_dns_alias.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/br_dns_cname.lng b/interface/ispconfig/interface/dns/lib/lang/br_dns_cname.lng deleted file mode 100644 index 881cb6376..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/br_dns_cname.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/br_dns_hinfo.lng b/interface/ispconfig/interface/dns/lib/lang/br_dns_hinfo.lng deleted file mode 100644 index ac6e13b06..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/br_dns_hinfo.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/br_dns_mx.lng b/interface/ispconfig/interface/dns/lib/lang/br_dns_mx.lng deleted file mode 100644 index 0dfd536a2..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/br_dns_mx.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/br_dns_ns.lng b/interface/ispconfig/interface/dns/lib/lang/br_dns_ns.lng deleted file mode 100644 index ef9966fca..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/br_dns_ns.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/br_dns_ptr.lng b/interface/ispconfig/interface/dns/lib/lang/br_dns_ptr.lng deleted file mode 100644 index 728ea0731..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/br_dns_ptr.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/br_dns_rp.lng b/interface/ispconfig/interface/dns/lib/lang/br_dns_rp.lng deleted file mode 100644 index d1854700f..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/br_dns_rp.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/br_dns_soa.lng b/interface/ispconfig/interface/dns/lib/lang/br_dns_soa.lng deleted file mode 100644 index 486d05afb..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/br_dns_soa.lng +++ /dev/null @@ -1,26 +0,0 @@ -estes IPs (lista separada por ponto e vírgula)'; -$wb['active_txt'] = 'Ativo'; -$wb['limit_dns_zone_txt'] = 'O número máximo de zonas DNS para sua conta foi atingido.'; -$wb['client_txt'] = 'Cliente'; -$wb['no_zone_perm'] = 'Você não tem permição para adcionar registros a está zona DNS.'; -$wb['server_id_error_empty'] = 'Servidor não selecionado'; -$wb['origin_error_empty'] = 'Zona vazia.'; -$wb['origin_error_unique'] = 'Este registro já existe nesta zona.'; -$wb['origin_error_regex'] = 'Formato de zona inválido.'; -$wb['ns_error_regex'] = 'NS tem um formato inválido.'; -$wb['mbox_error_empty'] = 'Correio está em branco.'; -$wb['mbox_error_regex'] = 'Correio com formato inválido.'; -$wb['also_notify_txt'] = 'Also Notify'; -$wb['update_acl_txt'] = 'Atualizar ACL'; -?> diff --git a/interface/ispconfig/interface/dns/lib/lang/br_dns_soa_list.lng b/interface/ispconfig/interface/dns/lib/lang/br_dns_soa_list.lng deleted file mode 100644 index ef0c93fa2..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/br_dns_soa_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/br_dns_srv.lng b/interface/ispconfig/interface/dns/lib/lang/br_dns_srv.lng deleted file mode 100644 index 8a389f58d..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/br_dns_srv.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/br_dns_template.lng b/interface/ispconfig/interface/dns/lib/lang/br_dns_template.lng deleted file mode 100644 index 9d7331b79..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/br_dns_template.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/br_dns_template_list.lng b/interface/ispconfig/interface/dns/lib/lang/br_dns_template_list.lng deleted file mode 100644 index a4602aec9..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/br_dns_template_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/br_dns_txt.lng b/interface/ispconfig/interface/dns/lib/lang/br_dns_txt.lng deleted file mode 100644 index f73ada31d..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/br_dns_txt.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/br_dns_wizard.lng b/interface/ispconfig/interface/dns/lib/lang/br_dns_wizard.lng deleted file mode 100644 index 6a94ec29d..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/br_dns_wizard.lng +++ /dev/null @@ -1,29 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/de.lng b/interface/ispconfig/interface/dns/lib/lang/de.lng deleted file mode 100644 index 319b221fb..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/de.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/de_dns_a.lng b/interface/ispconfig/interface/dns/lib/lang/de_dns_a.lng deleted file mode 100644 index ea6d02178..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/de_dns_a.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/de_dns_a_list.lng b/interface/ispconfig/interface/dns/lib/lang/de_dns_a_list.lng deleted file mode 100644 index 0481c2b67..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/de_dns_a_list.lng +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/de_dns_aaaa.lng b/interface/ispconfig/interface/dns/lib/lang/de_dns_aaaa.lng deleted file mode 100644 index 768e67056..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/de_dns_aaaa.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/de_dns_alias.lng b/interface/ispconfig/interface/dns/lib/lang/de_dns_alias.lng deleted file mode 100644 index 9475644b2..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/de_dns_alias.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/de_dns_cname.lng b/interface/ispconfig/interface/dns/lib/lang/de_dns_cname.lng deleted file mode 100644 index 4c3d5a0a5..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/de_dns_cname.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/de_dns_hinfo.lng b/interface/ispconfig/interface/dns/lib/lang/de_dns_hinfo.lng deleted file mode 100644 index 245480f3b..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/de_dns_hinfo.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/de_dns_mx.lng b/interface/ispconfig/interface/dns/lib/lang/de_dns_mx.lng deleted file mode 100644 index ab21cc498..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/de_dns_mx.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/de_dns_ns.lng b/interface/ispconfig/interface/dns/lib/lang/de_dns_ns.lng deleted file mode 100644 index 845da9dc1..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/de_dns_ns.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/de_dns_ptr.lng b/interface/ispconfig/interface/dns/lib/lang/de_dns_ptr.lng deleted file mode 100644 index aee415596..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/de_dns_ptr.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/de_dns_rp.lng b/interface/ispconfig/interface/dns/lib/lang/de_dns_rp.lng deleted file mode 100644 index 86f3fc02b..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/de_dns_rp.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/de_dns_soa.lng b/interface/ispconfig/interface/dns/lib/lang/de_dns_soa.lng deleted file mode 100644 index d619a3cce..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/de_dns_soa.lng +++ /dev/null @@ -1,26 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/de_dns_soa_list.lng b/interface/ispconfig/interface/dns/lib/lang/de_dns_soa_list.lng deleted file mode 100644 index 92f098c84..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/de_dns_soa_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/de_dns_srv.lng b/interface/ispconfig/interface/dns/lib/lang/de_dns_srv.lng deleted file mode 100644 index 352e9598c..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/de_dns_srv.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/de_dns_template.lng b/interface/ispconfig/interface/dns/lib/lang/de_dns_template.lng deleted file mode 100644 index 33d1090cb..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/de_dns_template.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/de_dns_template_list.lng b/interface/ispconfig/interface/dns/lib/lang/de_dns_template_list.lng deleted file mode 100644 index 45f0c5c5a..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/de_dns_template_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/de_dns_txt.lng b/interface/ispconfig/interface/dns/lib/lang/de_dns_txt.lng deleted file mode 100644 index 182e9945a..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/de_dns_txt.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/de_dns_wizard.lng b/interface/ispconfig/interface/dns/lib/lang/de_dns_wizard.lng deleted file mode 100644 index 6f1bfbe3a..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/de_dns_wizard.lng +++ /dev/null @@ -1,29 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/en.lng b/interface/ispconfig/interface/dns/lib/lang/en.lng deleted file mode 100644 index c4a5beaad..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/en.lng +++ /dev/null @@ -1,22 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/lib/lang/en_dns_a.lng b/interface/ispconfig/interface/dns/lib/lang/en_dns_a.lng deleted file mode 100644 index 599de5cf9..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/en_dns_a.lng +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/lib/lang/en_dns_a_list.lng b/interface/ispconfig/interface/dns/lib/lang/en_dns_a_list.lng deleted file mode 100644 index 88a2366a5..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/en_dns_a_list.lng +++ /dev/null @@ -1,14 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/lib/lang/en_dns_aaaa.lng b/interface/ispconfig/interface/dns/lib/lang/en_dns_aaaa.lng deleted file mode 100644 index c56d55863..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/en_dns_aaaa.lng +++ /dev/null @@ -1,15 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/lib/lang/en_dns_alias.lng b/interface/ispconfig/interface/dns/lib/lang/en_dns_alias.lng deleted file mode 100644 index 46f73a387..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/en_dns_alias.lng +++ /dev/null @@ -1,15 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/lib/lang/en_dns_cname.lng b/interface/ispconfig/interface/dns/lib/lang/en_dns_cname.lng deleted file mode 100644 index 46f73a387..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/en_dns_cname.lng +++ /dev/null @@ -1,15 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/lib/lang/en_dns_hinfo.lng b/interface/ispconfig/interface/dns/lib/lang/en_dns_hinfo.lng deleted file mode 100644 index 0fb7f4597..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/en_dns_hinfo.lng +++ /dev/null @@ -1,15 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/lib/lang/en_dns_mx.lng b/interface/ispconfig/interface/dns/lib/lang/en_dns_mx.lng deleted file mode 100644 index d0bee5eba..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/en_dns_mx.lng +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/lib/lang/en_dns_ns.lng b/interface/ispconfig/interface/dns/lib/lang/en_dns_ns.lng deleted file mode 100644 index 9e0e1e149..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/en_dns_ns.lng +++ /dev/null @@ -1,15 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/lib/lang/en_dns_ptr.lng b/interface/ispconfig/interface/dns/lib/lang/en_dns_ptr.lng deleted file mode 100644 index 1219a96e1..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/en_dns_ptr.lng +++ /dev/null @@ -1,15 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/lib/lang/en_dns_rp.lng b/interface/ispconfig/interface/dns/lib/lang/en_dns_rp.lng deleted file mode 100644 index e705d9fff..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/en_dns_rp.lng +++ /dev/null @@ -1,15 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/lib/lang/en_dns_soa.lng b/interface/ispconfig/interface/dns/lib/lang/en_dns_soa.lng deleted file mode 100644 index 3c9a5b0a5..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/en_dns_soa.lng +++ /dev/null @@ -1,26 +0,0 @@ -these IPs (comma separated list)'; -$wb["active_txt"] = 'Active'; -$wb["limit_dns_zone_txt"] = 'The max. number of DNS zones for your account is reached.'; -$wb["client_txt"] = 'Client'; -$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; -$wb["server_id_error_empty"] = 'No server selected'; -$wb["origin_error_empty"] = 'Zone empty.'; -$wb["origin_error_unique"] = 'There is already a record for this zone.'; -$wb["origin_error_regex"] = 'Zone has a invalid format.'; -$wb["ns_error_regex"] = 'NS has a invalid format.'; -$wb["mbox_error_empty"] = 'Email is empty.'; -$wb["mbox_error_regex"] = 'Email format invalid.'; -$wb["also_notify_txt"] = 'Also Notify'; -$wb["update_acl_txt"] = 'Update ACL'; -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/lib/lang/en_dns_soa_list.lng b/interface/ispconfig/interface/dns/lib/lang/en_dns_soa_list.lng deleted file mode 100644 index 6213bdb1d..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/en_dns_soa_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/lib/lang/en_dns_srv.lng b/interface/ispconfig/interface/dns/lib/lang/en_dns_srv.lng deleted file mode 100644 index d0dcd1eb2..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/en_dns_srv.lng +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/lib/lang/en_dns_template.lng b/interface/ispconfig/interface/dns/lib/lang/en_dns_template.lng deleted file mode 100644 index 37643e119..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/en_dns_template.lng +++ /dev/null @@ -1,6 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/lib/lang/en_dns_template_list.lng b/interface/ispconfig/interface/dns/lib/lang/en_dns_template_list.lng deleted file mode 100644 index 33460a20a..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/en_dns_template_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/lib/lang/en_dns_txt.lng b/interface/ispconfig/interface/dns/lib/lang/en_dns_txt.lng deleted file mode 100644 index af4360590..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/en_dns_txt.lng +++ /dev/null @@ -1,15 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/lib/lang/en_dns_wizard.lng b/interface/ispconfig/interface/dns/lib/lang/en_dns_wizard.lng deleted file mode 100644 index 2f9f91421..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/en_dns_wizard.lng +++ /dev/null @@ -1,30 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/lib/lang/es.lng b/interface/ispconfig/interface/dns/lib/lang/es.lng deleted file mode 100644 index 4fd59f49d..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/es.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/es_dns_a.lng b/interface/ispconfig/interface/dns/lib/lang/es_dns_a.lng deleted file mode 100644 index 36f318c86..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/es_dns_a.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/es_dns_a_list.lng b/interface/ispconfig/interface/dns/lib/lang/es_dns_a_list.lng deleted file mode 100644 index 1cbe6d305..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/es_dns_a_list.lng +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/es_dns_aaaa.lng b/interface/ispconfig/interface/dns/lib/lang/es_dns_aaaa.lng deleted file mode 100644 index 15ee1d2f3..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/es_dns_aaaa.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/es_dns_alias.lng b/interface/ispconfig/interface/dns/lib/lang/es_dns_alias.lng deleted file mode 100644 index 705b5cf0d..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/es_dns_alias.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/es_dns_cname.lng b/interface/ispconfig/interface/dns/lib/lang/es_dns_cname.lng deleted file mode 100644 index 7c3f7b7f1..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/es_dns_cname.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/es_dns_hinfo.lng b/interface/ispconfig/interface/dns/lib/lang/es_dns_hinfo.lng deleted file mode 100644 index d5412cac4..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/es_dns_hinfo.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/es_dns_mx.lng b/interface/ispconfig/interface/dns/lib/lang/es_dns_mx.lng deleted file mode 100644 index e7c377d66..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/es_dns_mx.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/es_dns_ns.lng b/interface/ispconfig/interface/dns/lib/lang/es_dns_ns.lng deleted file mode 100644 index 568700987..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/es_dns_ns.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/es_dns_ptr.lng b/interface/ispconfig/interface/dns/lib/lang/es_dns_ptr.lng deleted file mode 100644 index f8ef426e4..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/es_dns_ptr.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/es_dns_rp.lng b/interface/ispconfig/interface/dns/lib/lang/es_dns_rp.lng deleted file mode 100644 index fece32a2b..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/es_dns_rp.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/es_dns_soa.lng b/interface/ispconfig/interface/dns/lib/lang/es_dns_soa.lng deleted file mode 100644 index c4143bc63..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/es_dns_soa.lng +++ /dev/null @@ -1,26 +0,0 @@ -estas IPs (lista separada por comas)'; -$wb['active_txt'] = 'Activar'; -$wb['limit_dns_zone_txt'] = 'Se ha alcanzado el número máximo de zonas DNS para esta cuenta.'; -$wb['client_txt'] = 'Cliente'; -$wb['no_zone_perm'] = 'No tiene permisos para añadir registros a esta zona DNS.'; -$wb['server_id_error_empty'] = 'No se ha seleccionado el servidor.'; -$wb['origin_error_empty'] = 'Zona vacía.'; -$wb['origin_error_unique'] = 'Ya hay un registro para esta zona.'; -$wb['origin_error_regex'] = 'Formato de zona no válido.'; -$wb['ns_error_regex'] = 'Formato de NS no válido.'; -$wb['mbox_error_empty'] = 'Correo vacío.'; -$wb['mbox_error_regex'] = 'Formato de correo no válido.'; -$wb['also_notify_txt'] = 'Also Notify'; -$wb['update_acl_txt'] = 'Update ACL'; -?> diff --git a/interface/ispconfig/interface/dns/lib/lang/es_dns_soa_list.lng b/interface/ispconfig/interface/dns/lib/lang/es_dns_soa_list.lng deleted file mode 100644 index ab942dd50..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/es_dns_soa_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/es_dns_srv.lng b/interface/ispconfig/interface/dns/lib/lang/es_dns_srv.lng deleted file mode 100644 index 8e524ee4d..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/es_dns_srv.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/es_dns_template.lng b/interface/ispconfig/interface/dns/lib/lang/es_dns_template.lng deleted file mode 100644 index 79ac234a0..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/es_dns_template.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/es_dns_template_list.lng b/interface/ispconfig/interface/dns/lib/lang/es_dns_template_list.lng deleted file mode 100644 index 388a4c156..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/es_dns_template_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/es_dns_txt.lng b/interface/ispconfig/interface/dns/lib/lang/es_dns_txt.lng deleted file mode 100644 index 55bde142d..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/es_dns_txt.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/es_dns_wizard.lng b/interface/ispconfig/interface/dns/lib/lang/es_dns_wizard.lng deleted file mode 100644 index 0713bcc0a..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/es_dns_wizard.lng +++ /dev/null @@ -1,29 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fi.lng b/interface/ispconfig/interface/dns/lib/lang/fi.lng deleted file mode 100644 index bdca8cd96..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fi.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fi_dns_a.lng b/interface/ispconfig/interface/dns/lib/lang/fi_dns_a.lng deleted file mode 100644 index 3a4af610e..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fi_dns_a.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fi_dns_a_list.lng b/interface/ispconfig/interface/dns/lib/lang/fi_dns_a_list.lng deleted file mode 100644 index 0cc82874b..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fi_dns_a_list.lng +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fi_dns_aaaa.lng b/interface/ispconfig/interface/dns/lib/lang/fi_dns_aaaa.lng deleted file mode 100644 index b87d7ac29..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fi_dns_aaaa.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fi_dns_alias.lng b/interface/ispconfig/interface/dns/lib/lang/fi_dns_alias.lng deleted file mode 100644 index 20da599c7..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fi_dns_alias.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fi_dns_cname.lng b/interface/ispconfig/interface/dns/lib/lang/fi_dns_cname.lng deleted file mode 100644 index a58f0d2f2..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fi_dns_cname.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fi_dns_hinfo.lng b/interface/ispconfig/interface/dns/lib/lang/fi_dns_hinfo.lng deleted file mode 100644 index ea2fb93a3..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fi_dns_hinfo.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fi_dns_mx.lng b/interface/ispconfig/interface/dns/lib/lang/fi_dns_mx.lng deleted file mode 100644 index e4b4a60d5..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fi_dns_mx.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fi_dns_ns.lng b/interface/ispconfig/interface/dns/lib/lang/fi_dns_ns.lng deleted file mode 100644 index 8f97c53cb..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fi_dns_ns.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fi_dns_ptr.lng b/interface/ispconfig/interface/dns/lib/lang/fi_dns_ptr.lng deleted file mode 100644 index 9885c2be9..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fi_dns_ptr.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fi_dns_rp.lng b/interface/ispconfig/interface/dns/lib/lang/fi_dns_rp.lng deleted file mode 100644 index d47cdcfbd..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fi_dns_rp.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fi_dns_soa.lng b/interface/ispconfig/interface/dns/lib/lang/fi_dns_soa.lng deleted file mode 100644 index 7e70915d7..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fi_dns_soa.lng +++ /dev/null @@ -1,26 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fi_dns_soa_list.lng b/interface/ispconfig/interface/dns/lib/lang/fi_dns_soa_list.lng deleted file mode 100644 index 95d104443..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fi_dns_soa_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fi_dns_srv.lng b/interface/ispconfig/interface/dns/lib/lang/fi_dns_srv.lng deleted file mode 100644 index 68f4c859e..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fi_dns_srv.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fi_dns_template.lng b/interface/ispconfig/interface/dns/lib/lang/fi_dns_template.lng deleted file mode 100644 index b34a92d6a..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fi_dns_template.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fi_dns_template_list.lng b/interface/ispconfig/interface/dns/lib/lang/fi_dns_template_list.lng deleted file mode 100644 index 47c892423..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fi_dns_template_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fi_dns_txt.lng b/interface/ispconfig/interface/dns/lib/lang/fi_dns_txt.lng deleted file mode 100644 index d1235ba07..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fi_dns_txt.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fi_dns_wizard.lng b/interface/ispconfig/interface/dns/lib/lang/fi_dns_wizard.lng deleted file mode 100644 index dba630674..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fi_dns_wizard.lng +++ /dev/null @@ -1,29 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fr.lng b/interface/ispconfig/interface/dns/lib/lang/fr.lng deleted file mode 100644 index fe6ece558..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fr.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fr_dns_a.lng b/interface/ispconfig/interface/dns/lib/lang/fr_dns_a.lng deleted file mode 100644 index 731c3e4fa..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fr_dns_a.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fr_dns_a_list.lng b/interface/ispconfig/interface/dns/lib/lang/fr_dns_a_list.lng deleted file mode 100644 index 081782615..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fr_dns_a_list.lng +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fr_dns_aaaa.lng b/interface/ispconfig/interface/dns/lib/lang/fr_dns_aaaa.lng deleted file mode 100644 index 503795f0e..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fr_dns_aaaa.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fr_dns_alias.lng b/interface/ispconfig/interface/dns/lib/lang/fr_dns_alias.lng deleted file mode 100644 index 1ae97aecd..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fr_dns_alias.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fr_dns_cname.lng b/interface/ispconfig/interface/dns/lib/lang/fr_dns_cname.lng deleted file mode 100644 index 87fc49ea0..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fr_dns_cname.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fr_dns_hinfo.lng b/interface/ispconfig/interface/dns/lib/lang/fr_dns_hinfo.lng deleted file mode 100644 index f26ed7dd5..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fr_dns_hinfo.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fr_dns_mx.lng b/interface/ispconfig/interface/dns/lib/lang/fr_dns_mx.lng deleted file mode 100644 index e3904207a..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fr_dns_mx.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fr_dns_ns.lng b/interface/ispconfig/interface/dns/lib/lang/fr_dns_ns.lng deleted file mode 100644 index a6edc6eaa..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fr_dns_ns.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fr_dns_ptr.lng b/interface/ispconfig/interface/dns/lib/lang/fr_dns_ptr.lng deleted file mode 100644 index 4318e000e..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fr_dns_ptr.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fr_dns_rp.lng b/interface/ispconfig/interface/dns/lib/lang/fr_dns_rp.lng deleted file mode 100644 index fe37f3e79..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fr_dns_rp.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fr_dns_soa.lng b/interface/ispconfig/interface/dns/lib/lang/fr_dns_soa.lng deleted file mode 100644 index 28c81c41c..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fr_dns_soa.lng +++ /dev/null @@ -1,26 +0,0 @@ -ces IP (liste séparée par des virgules)'; -$wb['active_txt'] = 'Actif'; -$wb['client_txt'] = 'Client'; -$wb['no_zone_perm'] = 'Vous navez pas la permissions dajouter un enregistrement dans cette zone DNS.'; -$wb['server_id_error_empty'] = 'Pas de serveur sélectionné'; -$wb['origin_error_empty'] = 'Zone vide.'; -$wb['origin_error_unique'] = 'Il y a déja un enregistrement pour cette zone.'; -$wb['origin_error_regex'] = 'La zone est dun format invalide.'; -$wb['ns_error_regex'] = 'Le serveur de nom est dun format invalide.'; -$wb['mbox_error_empty'] = 'Ladresse e-mail est vide.'; -$wb['mbox_error_regex'] = 'Ladresse e-mail est dun format invalide.'; -$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.'; -$wb['also_notify_txt'] = 'Also Notify'; -$wb['update_acl_txt'] = 'Update ACL'; -?> diff --git a/interface/ispconfig/interface/dns/lib/lang/fr_dns_soa_list.lng b/interface/ispconfig/interface/dns/lib/lang/fr_dns_soa_list.lng deleted file mode 100644 index a828044a0..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fr_dns_soa_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fr_dns_srv.lng b/interface/ispconfig/interface/dns/lib/lang/fr_dns_srv.lng deleted file mode 100644 index de8776354..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fr_dns_srv.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fr_dns_template.lng b/interface/ispconfig/interface/dns/lib/lang/fr_dns_template.lng deleted file mode 100644 index 1202cfd76..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fr_dns_template.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fr_dns_template_list.lng b/interface/ispconfig/interface/dns/lib/lang/fr_dns_template_list.lng deleted file mode 100644 index 52455b2ca..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fr_dns_template_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fr_dns_txt.lng b/interface/ispconfig/interface/dns/lib/lang/fr_dns_txt.lng deleted file mode 100644 index 2126a3f24..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fr_dns_txt.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/fr_dns_wizard.lng b/interface/ispconfig/interface/dns/lib/lang/fr_dns_wizard.lng deleted file mode 100644 index b828acd2c..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/fr_dns_wizard.lng +++ /dev/null @@ -1,29 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/hu.lng b/interface/ispconfig/interface/dns/lib/lang/hu.lng deleted file mode 100644 index 36def8e93..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/hu.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/hu_dns_a.lng b/interface/ispconfig/interface/dns/lib/lang/hu_dns_a.lng deleted file mode 100644 index 880213951..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/hu_dns_a.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/hu_dns_a_list.lng b/interface/ispconfig/interface/dns/lib/lang/hu_dns_a_list.lng deleted file mode 100644 index acab15029..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/hu_dns_a_list.lng +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/hu_dns_aaaa.lng b/interface/ispconfig/interface/dns/lib/lang/hu_dns_aaaa.lng deleted file mode 100644 index 31ef0da15..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/hu_dns_aaaa.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/hu_dns_alias.lng b/interface/ispconfig/interface/dns/lib/lang/hu_dns_alias.lng deleted file mode 100644 index 827e5a89e..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/hu_dns_alias.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/hu_dns_cname.lng b/interface/ispconfig/interface/dns/lib/lang/hu_dns_cname.lng deleted file mode 100644 index 827e5a89e..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/hu_dns_cname.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/hu_dns_hinfo.lng b/interface/ispconfig/interface/dns/lib/lang/hu_dns_hinfo.lng deleted file mode 100644 index 0d90bcf40..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/hu_dns_hinfo.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/hu_dns_mx.lng b/interface/ispconfig/interface/dns/lib/lang/hu_dns_mx.lng deleted file mode 100644 index 648827f04..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/hu_dns_mx.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/hu_dns_ns.lng b/interface/ispconfig/interface/dns/lib/lang/hu_dns_ns.lng deleted file mode 100644 index 713ec2858..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/hu_dns_ns.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/hu_dns_ptr.lng b/interface/ispconfig/interface/dns/lib/lang/hu_dns_ptr.lng deleted file mode 100644 index c02638406..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/hu_dns_ptr.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/hu_dns_rp.lng b/interface/ispconfig/interface/dns/lib/lang/hu_dns_rp.lng deleted file mode 100644 index d38efd163..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/hu_dns_rp.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/hu_dns_soa.lng b/interface/ispconfig/interface/dns/lib/lang/hu_dns_soa.lng deleted file mode 100644 index e63ffb70f..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/hu_dns_soa.lng +++ /dev/null @@ -1,26 +0,0 @@ -these IPs (comma separated list)'; -$wb['active_txt'] = 'Active'; -$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.'; -$wb['client_txt'] = 'Client'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; -$wb['server_id_error_empty'] = 'No server selected'; -$wb['origin_error_empty'] = 'Zone empty.'; -$wb['origin_error_unique'] = 'There is already a record for this zone.'; -$wb['origin_error_regex'] = 'Zone has a invalid format.'; -$wb['ns_error_regex'] = 'NS has a invalid format.'; -$wb['mbox_error_empty'] = 'Email is empty.'; -$wb['mbox_error_regex'] = 'Email format invalid.'; -$wb['also_notify_txt'] = 'Also Notify'; -$wb['update_acl_txt'] = 'Update ACL'; -?> diff --git a/interface/ispconfig/interface/dns/lib/lang/hu_dns_soa_list.lng b/interface/ispconfig/interface/dns/lib/lang/hu_dns_soa_list.lng deleted file mode 100644 index 42bb32920..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/hu_dns_soa_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/hu_dns_srv.lng b/interface/ispconfig/interface/dns/lib/lang/hu_dns_srv.lng deleted file mode 100644 index d4ea60be9..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/hu_dns_srv.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/hu_dns_template.lng b/interface/ispconfig/interface/dns/lib/lang/hu_dns_template.lng deleted file mode 100644 index 3a09e3bb7..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/hu_dns_template.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/hu_dns_template_list.lng b/interface/ispconfig/interface/dns/lib/lang/hu_dns_template_list.lng deleted file mode 100644 index 8d9d730e5..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/hu_dns_template_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/hu_dns_txt.lng b/interface/ispconfig/interface/dns/lib/lang/hu_dns_txt.lng deleted file mode 100644 index 8e6c417d0..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/hu_dns_txt.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/hu_dns_wizard.lng b/interface/ispconfig/interface/dns/lib/lang/hu_dns_wizard.lng deleted file mode 100644 index ffceabb53..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/hu_dns_wizard.lng +++ /dev/null @@ -1,29 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/it.lng b/interface/ispconfig/interface/dns/lib/lang/it.lng deleted file mode 100644 index 36def8e93..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/it.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/it_dns_a.lng b/interface/ispconfig/interface/dns/lib/lang/it_dns_a.lng deleted file mode 100644 index 880213951..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/it_dns_a.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/it_dns_a_list.lng b/interface/ispconfig/interface/dns/lib/lang/it_dns_a_list.lng deleted file mode 100644 index 87c9cd818..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/it_dns_a_list.lng +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/it_dns_aaaa.lng b/interface/ispconfig/interface/dns/lib/lang/it_dns_aaaa.lng deleted file mode 100644 index 31ef0da15..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/it_dns_aaaa.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/it_dns_alias.lng b/interface/ispconfig/interface/dns/lib/lang/it_dns_alias.lng deleted file mode 100644 index 827e5a89e..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/it_dns_alias.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/it_dns_cname.lng b/interface/ispconfig/interface/dns/lib/lang/it_dns_cname.lng deleted file mode 100644 index 827e5a89e..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/it_dns_cname.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/it_dns_hinfo.lng b/interface/ispconfig/interface/dns/lib/lang/it_dns_hinfo.lng deleted file mode 100644 index 0d90bcf40..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/it_dns_hinfo.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/it_dns_mx.lng b/interface/ispconfig/interface/dns/lib/lang/it_dns_mx.lng deleted file mode 100644 index 648827f04..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/it_dns_mx.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/it_dns_ns.lng b/interface/ispconfig/interface/dns/lib/lang/it_dns_ns.lng deleted file mode 100644 index 713ec2858..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/it_dns_ns.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/it_dns_ptr.lng b/interface/ispconfig/interface/dns/lib/lang/it_dns_ptr.lng deleted file mode 100644 index c02638406..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/it_dns_ptr.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/it_dns_rp.lng b/interface/ispconfig/interface/dns/lib/lang/it_dns_rp.lng deleted file mode 100644 index d38efd163..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/it_dns_rp.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/it_dns_soa.lng b/interface/ispconfig/interface/dns/lib/lang/it_dns_soa.lng deleted file mode 100644 index e63ffb70f..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/it_dns_soa.lng +++ /dev/null @@ -1,26 +0,0 @@ -these IPs (comma separated list)'; -$wb['active_txt'] = 'Active'; -$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.'; -$wb['client_txt'] = 'Client'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; -$wb['server_id_error_empty'] = 'No server selected'; -$wb['origin_error_empty'] = 'Zone empty.'; -$wb['origin_error_unique'] = 'There is already a record for this zone.'; -$wb['origin_error_regex'] = 'Zone has a invalid format.'; -$wb['ns_error_regex'] = 'NS has a invalid format.'; -$wb['mbox_error_empty'] = 'Email is empty.'; -$wb['mbox_error_regex'] = 'Email format invalid.'; -$wb['also_notify_txt'] = 'Also Notify'; -$wb['update_acl_txt'] = 'Update ACL'; -?> diff --git a/interface/ispconfig/interface/dns/lib/lang/it_dns_soa_list.lng b/interface/ispconfig/interface/dns/lib/lang/it_dns_soa_list.lng deleted file mode 100644 index 42bb32920..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/it_dns_soa_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/it_dns_srv.lng b/interface/ispconfig/interface/dns/lib/lang/it_dns_srv.lng deleted file mode 100644 index d4ea60be9..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/it_dns_srv.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/it_dns_template.lng b/interface/ispconfig/interface/dns/lib/lang/it_dns_template.lng deleted file mode 100644 index 3a09e3bb7..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/it_dns_template.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/it_dns_template_list.lng b/interface/ispconfig/interface/dns/lib/lang/it_dns_template_list.lng deleted file mode 100644 index 8d9d730e5..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/it_dns_template_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/it_dns_txt.lng b/interface/ispconfig/interface/dns/lib/lang/it_dns_txt.lng deleted file mode 100644 index 8e6c417d0..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/it_dns_txt.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/it_dns_wizard.lng b/interface/ispconfig/interface/dns/lib/lang/it_dns_wizard.lng deleted file mode 100644 index ffceabb53..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/it_dns_wizard.lng +++ /dev/null @@ -1,29 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ja.lng b/interface/ispconfig/interface/dns/lib/lang/ja.lng deleted file mode 100644 index f96696bc8..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ja.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ja_dns_a.lng b/interface/ispconfig/interface/dns/lib/lang/ja_dns_a.lng deleted file mode 100644 index 50f551627..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ja_dns_a.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ja_dns_a_list.lng b/interface/ispconfig/interface/dns/lib/lang/ja_dns_a_list.lng deleted file mode 100644 index e2297bbbb..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ja_dns_a_list.lng +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ja_dns_aaaa.lng b/interface/ispconfig/interface/dns/lib/lang/ja_dns_aaaa.lng deleted file mode 100644 index 2ca0650fe..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ja_dns_aaaa.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ja_dns_alias.lng b/interface/ispconfig/interface/dns/lib/lang/ja_dns_alias.lng deleted file mode 100644 index 4e469a104..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ja_dns_alias.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ja_dns_cname.lng b/interface/ispconfig/interface/dns/lib/lang/ja_dns_cname.lng deleted file mode 100644 index 4e469a104..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ja_dns_cname.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ja_dns_hinfo.lng b/interface/ispconfig/interface/dns/lib/lang/ja_dns_hinfo.lng deleted file mode 100644 index a0df197ca..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ja_dns_hinfo.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ja_dns_mx.lng b/interface/ispconfig/interface/dns/lib/lang/ja_dns_mx.lng deleted file mode 100644 index 648827f04..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ja_dns_mx.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ja_dns_ns.lng b/interface/ispconfig/interface/dns/lib/lang/ja_dns_ns.lng deleted file mode 100644 index b9070d831..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ja_dns_ns.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ja_dns_ptr.lng b/interface/ispconfig/interface/dns/lib/lang/ja_dns_ptr.lng deleted file mode 100644 index 8f5f3da20..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ja_dns_ptr.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ja_dns_rp.lng b/interface/ispconfig/interface/dns/lib/lang/ja_dns_rp.lng deleted file mode 100644 index c43a721e6..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ja_dns_rp.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ja_dns_soa.lng b/interface/ispconfig/interface/dns/lib/lang/ja_dns_soa.lng deleted file mode 100644 index d00e8afb6..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ja_dns_soa.lng +++ /dev/null @@ -1,26 +0,0 @@ -(, ã§åŒºåˆ‡ã£ã¦ãã ã•ã„)'; -$wb['active_txt'] = '有効'; -$wb['limit_dns_zone_txt'] = 'DNSゾーンãŒæœ€å¤§æ•°ã«é”ã—ã¾ã—ãŸã€‚'; -$wb['client_txt'] = 'クライアント'; -$wb['no_zone_perm'] = 'ã“ã®DNSゾーンã«ãƒ¬ã‚³ãƒ¼ãƒ‰ã‚’追加ã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“。'; -$wb['server_id_error_empty'] = 'サーãƒãƒ¼ã‚’é¸æŠžã—ã¦ãã ã•ã„。'; -$wb['origin_error_empty'] = 'Zone を指定ã—ã¦ãã ã•ã„。'; -$wb['origin_error_unique'] = 'åŒåã® Zone ãŒæ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚'; -$wb['origin_error_regex'] = 'ZoneåãŒä¸æ­£ãªæ–‡å­—ã‚’å«ã‚“ã§ã„ã¾ã™ã€‚'; -$wb['ns_error_regex'] = 'NS ãŒä¸æ­£ãªæ–‡å­—ã‚’å«ã‚“ã§ã„ã¾ã™ã€‚'; -$wb['mbox_error_empty'] = 'メールアドレスを指定ã—ã¦ãã ã•ã„'; -$wb['mbox_error_regex'] = 'メールアドレスã®å½¢å¼ãŒä¸æ­£ã§ã™ã€‚'; -$wb['also_notify_txt'] = 'Also Notify'; -$wb['update_acl_txt'] = 'Update ACL'; -?> diff --git a/interface/ispconfig/interface/dns/lib/lang/ja_dns_soa_list.lng b/interface/ispconfig/interface/dns/lib/lang/ja_dns_soa_list.lng deleted file mode 100644 index d6660d9e0..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ja_dns_soa_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ja_dns_srv.lng b/interface/ispconfig/interface/dns/lib/lang/ja_dns_srv.lng deleted file mode 100644 index 94a7f3786..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ja_dns_srv.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ja_dns_template.lng b/interface/ispconfig/interface/dns/lib/lang/ja_dns_template.lng deleted file mode 100644 index 7c05ae1cc..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ja_dns_template.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ja_dns_template_list.lng b/interface/ispconfig/interface/dns/lib/lang/ja_dns_template_list.lng deleted file mode 100644 index 2ed5746fa..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ja_dns_template_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ja_dns_txt.lng b/interface/ispconfig/interface/dns/lib/lang/ja_dns_txt.lng deleted file mode 100644 index 3af17ab25..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ja_dns_txt.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ja_dns_wizard.lng b/interface/ispconfig/interface/dns/lib/lang/ja_dns_wizard.lng deleted file mode 100644 index 508911da6..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ja_dns_wizard.lng +++ /dev/null @@ -1,29 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/nl.lng b/interface/ispconfig/interface/dns/lib/lang/nl.lng deleted file mode 100644 index 56e5386c5..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/nl.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/nl_dns_a.lng b/interface/ispconfig/interface/dns/lib/lang/nl_dns_a.lng deleted file mode 100644 index 32bab7464..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/nl_dns_a.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/nl_dns_a_list.lng b/interface/ispconfig/interface/dns/lib/lang/nl_dns_a_list.lng deleted file mode 100644 index 9ffacd242..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/nl_dns_a_list.lng +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/nl_dns_aaaa.lng b/interface/ispconfig/interface/dns/lib/lang/nl_dns_aaaa.lng deleted file mode 100644 index c40ae84d9..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/nl_dns_aaaa.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/nl_dns_alias.lng b/interface/ispconfig/interface/dns/lib/lang/nl_dns_alias.lng deleted file mode 100644 index 2f9cccf72..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/nl_dns_alias.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/nl_dns_cname.lng b/interface/ispconfig/interface/dns/lib/lang/nl_dns_cname.lng deleted file mode 100644 index c5891e427..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/nl_dns_cname.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/nl_dns_hinfo.lng b/interface/ispconfig/interface/dns/lib/lang/nl_dns_hinfo.lng deleted file mode 100644 index a7287c423..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/nl_dns_hinfo.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/nl_dns_mx.lng b/interface/ispconfig/interface/dns/lib/lang/nl_dns_mx.lng deleted file mode 100644 index f93195c1b..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/nl_dns_mx.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/nl_dns_ns.lng b/interface/ispconfig/interface/dns/lib/lang/nl_dns_ns.lng deleted file mode 100644 index 75a91b41d..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/nl_dns_ns.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/nl_dns_ptr.lng b/interface/ispconfig/interface/dns/lib/lang/nl_dns_ptr.lng deleted file mode 100644 index 4bd156388..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/nl_dns_ptr.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/nl_dns_rp.lng b/interface/ispconfig/interface/dns/lib/lang/nl_dns_rp.lng deleted file mode 100644 index 1195406a1..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/nl_dns_rp.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/nl_dns_soa.lng b/interface/ispconfig/interface/dns/lib/lang/nl_dns_soa.lng deleted file mode 100644 index e1d149aec..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/nl_dns_soa.lng +++ /dev/null @@ -1,26 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/nl_dns_soa_list.lng b/interface/ispconfig/interface/dns/lib/lang/nl_dns_soa_list.lng deleted file mode 100644 index e6474cb1b..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/nl_dns_soa_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/nl_dns_srv.lng b/interface/ispconfig/interface/dns/lib/lang/nl_dns_srv.lng deleted file mode 100644 index 202d62d48..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/nl_dns_srv.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/nl_dns_template.lng b/interface/ispconfig/interface/dns/lib/lang/nl_dns_template.lng deleted file mode 100644 index a6f8e0e9b..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/nl_dns_template.lng +++ /dev/null @@ -1,6 +0,0 @@ -
Voorbeeld (in nieuw venster)'; -$wb['visible_txt'] = 'Geactiveerd voor DNS wizard?'; -?> diff --git a/interface/ispconfig/interface/dns/lib/lang/nl_dns_template_list.lng b/interface/ispconfig/interface/dns/lib/lang/nl_dns_template_list.lng deleted file mode 100644 index 6ca214c55..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/nl_dns_template_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/nl_dns_txt.lng b/interface/ispconfig/interface/dns/lib/lang/nl_dns_txt.lng deleted file mode 100644 index 94dbb3f47..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/nl_dns_txt.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/nl_dns_wizard.lng b/interface/ispconfig/interface/dns/lib/lang/nl_dns_wizard.lng deleted file mode 100644 index e7093f01e..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/nl_dns_wizard.lng +++ /dev/null @@ -1,29 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/pl.lng b/interface/ispconfig/interface/dns/lib/lang/pl.lng deleted file mode 100644 index 0a3f1a9fb..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pl.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/pl_dns_a.lng b/interface/ispconfig/interface/dns/lib/lang/pl_dns_a.lng deleted file mode 100644 index 4ad0a7c41..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pl_dns_a.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/pl_dns_a_list.lng b/interface/ispconfig/interface/dns/lib/lang/pl_dns_a_list.lng deleted file mode 100644 index 3d0db059b..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pl_dns_a_list.lng +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/pl_dns_aaaa.lng b/interface/ispconfig/interface/dns/lib/lang/pl_dns_aaaa.lng deleted file mode 100644 index 983fae1a8..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pl_dns_aaaa.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/pl_dns_alias.lng b/interface/ispconfig/interface/dns/lib/lang/pl_dns_alias.lng deleted file mode 100644 index a950805e3..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pl_dns_alias.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/pl_dns_cname.lng b/interface/ispconfig/interface/dns/lib/lang/pl_dns_cname.lng deleted file mode 100644 index 92cb4ac97..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pl_dns_cname.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/pl_dns_hinfo.lng b/interface/ispconfig/interface/dns/lib/lang/pl_dns_hinfo.lng deleted file mode 100644 index 53b6da226..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pl_dns_hinfo.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/pl_dns_mx.lng b/interface/ispconfig/interface/dns/lib/lang/pl_dns_mx.lng deleted file mode 100644 index 4a3936a1b..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pl_dns_mx.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/pl_dns_ns.lng b/interface/ispconfig/interface/dns/lib/lang/pl_dns_ns.lng deleted file mode 100644 index 18d7efd6c..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pl_dns_ns.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/pl_dns_ptr.lng b/interface/ispconfig/interface/dns/lib/lang/pl_dns_ptr.lng deleted file mode 100644 index eae39817a..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pl_dns_ptr.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/pl_dns_rp.lng b/interface/ispconfig/interface/dns/lib/lang/pl_dns_rp.lng deleted file mode 100644 index ece9346e3..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pl_dns_rp.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/pl_dns_soa.lng b/interface/ispconfig/interface/dns/lib/lang/pl_dns_soa.lng deleted file mode 100644 index 868615e08..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pl_dns_soa.lng +++ /dev/null @@ -1,26 +0,0 @@ -tych adresów IP (adresy rozdzielaj przecinkiem)'; -$wb['active_txt'] = 'Aktywny'; -$wb['limit_dns_zone_txt'] = 'Maksymalna ilość stref DNS dla Twojego konta zostaÅ‚a przekroczona.'; -$wb['client_txt'] = 'Klient'; -$wb['no_zone_perm'] = 'Nie masz uprawnieÅ„, aby dodać nowy wpis dla tej strefy DNS.'; -$wb['server_id_error_empty'] = 'Nie wybrano serwera'; -$wb['origin_error_empty'] = 'Strefa jest pusta.'; -$wb['origin_error_unique'] = 'Istnieje już wpis dla tej strefy.'; -$wb['origin_error_regex'] = 'Strefa ma niepoprawny format.'; -$wb['ns_error_regex'] = 'NS ma niepoprawny format.'; -$wb['mbox_error_empty'] = 'E-mail jest pusty.'; -$wb['mbox_error_regex'] = 'E-mail ma niepoprawny format.'; -$wb['also_notify_txt'] = 'Also Notify'; -$wb['update_acl_txt'] = 'Update ACL'; -?> diff --git a/interface/ispconfig/interface/dns/lib/lang/pl_dns_soa_list.lng b/interface/ispconfig/interface/dns/lib/lang/pl_dns_soa_list.lng deleted file mode 100644 index 126209eda..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pl_dns_soa_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/pl_dns_srv.lng b/interface/ispconfig/interface/dns/lib/lang/pl_dns_srv.lng deleted file mode 100644 index 633962132..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pl_dns_srv.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/pl_dns_template.lng b/interface/ispconfig/interface/dns/lib/lang/pl_dns_template.lng deleted file mode 100644 index f3e756357..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pl_dns_template.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/pl_dns_template_list.lng b/interface/ispconfig/interface/dns/lib/lang/pl_dns_template_list.lng deleted file mode 100644 index 7deac3b2f..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pl_dns_template_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/pl_dns_txt.lng b/interface/ispconfig/interface/dns/lib/lang/pl_dns_txt.lng deleted file mode 100644 index 628d5c047..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pl_dns_txt.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/pl_dns_wizard.lng b/interface/ispconfig/interface/dns/lib/lang/pl_dns_wizard.lng deleted file mode 100644 index a5d6a9099..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pl_dns_wizard.lng +++ /dev/null @@ -1,29 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/pt.lng b/interface/ispconfig/interface/dns/lib/lang/pt.lng deleted file mode 100644 index 9f1ccffb4..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pt.lng +++ /dev/null @@ -1,21 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/pt_dns_a.lng b/interface/ispconfig/interface/dns/lib/lang/pt_dns_a.lng deleted file mode 100644 index 3774b1a74..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pt_dns_a.lng +++ /dev/null @@ -1,17 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/pt_dns_a_list.lng b/interface/ispconfig/interface/dns/lib/lang/pt_dns_a_list.lng deleted file mode 100644 index d7d55f21a..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pt_dns_a_list.lng +++ /dev/null @@ -1,15 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/pt_dns_aaaa.lng b/interface/ispconfig/interface/dns/lib/lang/pt_dns_aaaa.lng deleted file mode 100644 index 4b4524b60..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pt_dns_aaaa.lng +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/pt_dns_alias.lng b/interface/ispconfig/interface/dns/lib/lang/pt_dns_alias.lng deleted file mode 100644 index d7e91e685..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pt_dns_alias.lng +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/pt_dns_cname.lng b/interface/ispconfig/interface/dns/lib/lang/pt_dns_cname.lng deleted file mode 100644 index bb75bcc21..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pt_dns_cname.lng +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/pt_dns_hinfo.lng b/interface/ispconfig/interface/dns/lib/lang/pt_dns_hinfo.lng deleted file mode 100644 index 668291727..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pt_dns_hinfo.lng +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/pt_dns_mx.lng b/interface/ispconfig/interface/dns/lib/lang/pt_dns_mx.lng deleted file mode 100644 index d8b59a765..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pt_dns_mx.lng +++ /dev/null @@ -1,17 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/pt_dns_ns.lng b/interface/ispconfig/interface/dns/lib/lang/pt_dns_ns.lng deleted file mode 100644 index 2e16d94de..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pt_dns_ns.lng +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/pt_dns_ptr.lng b/interface/ispconfig/interface/dns/lib/lang/pt_dns_ptr.lng deleted file mode 100644 index 298872ad1..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pt_dns_ptr.lng +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/pt_dns_rp.lng b/interface/ispconfig/interface/dns/lib/lang/pt_dns_rp.lng deleted file mode 100644 index ba45e858c..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pt_dns_rp.lng +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/pt_dns_soa.lng b/interface/ispconfig/interface/dns/lib/lang/pt_dns_soa.lng deleted file mode 100644 index 5d10de28d..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pt_dns_soa.lng +++ /dev/null @@ -1,27 +0,0 @@ -estes IPs (lista separada por ponto e vírgula)'; -$wb['active_txt'] = 'Activo'; -$wb['limit_dns_zone_txt'] = 'O número máximo de zonas DNS para a conta foi atingido.'; -$wb['client_txt'] = 'Cliente'; -$wb['no_zone_perm'] = 'Não tem permissão para adicionar registos a está zona DNS.'; -$wb['server_id_error_empty'] = 'Servidor não seleccionado'; -$wb['origin_error_empty'] = 'Zona vazia.'; -$wb['origin_error_unique'] = 'Este registo já existe nesta zona.'; -$wb['origin_error_regex'] = 'Formato de zona inválido.'; -$wb['ns_error_regex'] = 'NS tem um formato inválido.'; -$wb['mbox_error_empty'] = 'Correio está em branco.'; -$wb['mbox_error_regex'] = 'Correio com formato inválido.'; -$wb['also_notify_txt'] = 'Also Notify'; -$wb['update_acl_txt'] = 'Actualizar ACL'; -?> - diff --git a/interface/ispconfig/interface/dns/lib/lang/pt_dns_soa_list.lng b/interface/ispconfig/interface/dns/lib/lang/pt_dns_soa_list.lng deleted file mode 100644 index 1345fafe3..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pt_dns_soa_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/pt_dns_srv.lng b/interface/ispconfig/interface/dns/lib/lang/pt_dns_srv.lng deleted file mode 100644 index 853bcf5aa..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pt_dns_srv.lng +++ /dev/null @@ -1,17 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/pt_dns_template.lng b/interface/ispconfig/interface/dns/lib/lang/pt_dns_template.lng deleted file mode 100644 index 9ee4e7222..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pt_dns_template.lng +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/pt_dns_template_list.lng b/interface/ispconfig/interface/dns/lib/lang/pt_dns_template_list.lng deleted file mode 100644 index 1c89fd515..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pt_dns_template_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/pt_dns_txt.lng b/interface/ispconfig/interface/dns/lib/lang/pt_dns_txt.lng deleted file mode 100644 index 8e731078a..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pt_dns_txt.lng +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/pt_dns_wizard.lng b/interface/ispconfig/interface/dns/lib/lang/pt_dns_wizard.lng deleted file mode 100644 index 8e1663c1e..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/pt_dns_wizard.lng +++ /dev/null @@ -1,30 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/ro.lng b/interface/ispconfig/interface/dns/lib/lang/ro.lng deleted file mode 100644 index 908f2aa49..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ro.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ro_dns_a.lng b/interface/ispconfig/interface/dns/lib/lang/ro_dns_a.lng deleted file mode 100644 index 617c9d6ba..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ro_dns_a.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ro_dns_a_list.lng b/interface/ispconfig/interface/dns/lib/lang/ro_dns_a_list.lng deleted file mode 100644 index a17f698ea..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ro_dns_a_list.lng +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ro_dns_aaaa.lng b/interface/ispconfig/interface/dns/lib/lang/ro_dns_aaaa.lng deleted file mode 100644 index c56d55863..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ro_dns_aaaa.lng +++ /dev/null @@ -1,15 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/lib/lang/ro_dns_alias.lng b/interface/ispconfig/interface/dns/lib/lang/ro_dns_alias.lng deleted file mode 100644 index defa63ac0..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ro_dns_alias.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ro_dns_cname.lng b/interface/ispconfig/interface/dns/lib/lang/ro_dns_cname.lng deleted file mode 100644 index 199d1f431..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ro_dns_cname.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ro_dns_hinfo.lng b/interface/ispconfig/interface/dns/lib/lang/ro_dns_hinfo.lng deleted file mode 100644 index 598f7ab1a..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ro_dns_hinfo.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ro_dns_mx.lng b/interface/ispconfig/interface/dns/lib/lang/ro_dns_mx.lng deleted file mode 100644 index 3c5b54892..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ro_dns_mx.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ro_dns_ns.lng b/interface/ispconfig/interface/dns/lib/lang/ro_dns_ns.lng deleted file mode 100644 index 0bf8e7ed3..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ro_dns_ns.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ro_dns_ptr.lng b/interface/ispconfig/interface/dns/lib/lang/ro_dns_ptr.lng deleted file mode 100644 index cda046dd9..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ro_dns_ptr.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ro_dns_rp.lng b/interface/ispconfig/interface/dns/lib/lang/ro_dns_rp.lng deleted file mode 100644 index b77bab2e2..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ro_dns_rp.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ro_dns_soa.lng b/interface/ispconfig/interface/dns/lib/lang/ro_dns_soa.lng deleted file mode 100644 index a70d730b3..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ro_dns_soa.lng +++ /dev/null @@ -1,26 +0,0 @@ -aceste IP-uri (comma separated list)'; -$wb['active_txt'] = 'Active'; -$wb['limit_dns_zone_txt'] = 'numar max DNS zone pentru contul dumnevoastra a fost atins.'; -$wb['client_txt'] = 'Client'; -$wb['no_zone_perm'] = 'Nu aveti permisiunea de a adauga aceasta inregistrare in zona DNS .'; -$wb['server_id_error_empty'] = 'Nu a fost ales serverul'; -$wb['origin_error_empty'] = 'Zone goale'; -$wb['origin_error_unique'] = 'Exista deja o inregistrare pentru aceasta zona'; -$wb['origin_error_regex'] = 'Zona are un format invalid'; -$wb['ns_error_regex'] = 'NS are un format invalid'; -$wb['mbox_error_empty'] = 'Email-ul este gol'; -$wb['mbox_error_regex'] = 'Format email invalid.'; -$wb['also_notify_txt'] = 'Also Notify'; -$wb['update_acl_txt'] = 'Update ACL'; -?> diff --git a/interface/ispconfig/interface/dns/lib/lang/ro_dns_soa_list.lng b/interface/ispconfig/interface/dns/lib/lang/ro_dns_soa_list.lng deleted file mode 100644 index e17045622..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ro_dns_soa_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ro_dns_srv.lng b/interface/ispconfig/interface/dns/lib/lang/ro_dns_srv.lng deleted file mode 100644 index a8b501156..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ro_dns_srv.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ro_dns_template.lng b/interface/ispconfig/interface/dns/lib/lang/ro_dns_template.lng deleted file mode 100644 index f097bb3a0..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ro_dns_template.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ro_dns_template_list.lng b/interface/ispconfig/interface/dns/lib/lang/ro_dns_template_list.lng deleted file mode 100644 index 0a14156d2..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ro_dns_template_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ro_dns_txt.lng b/interface/ispconfig/interface/dns/lib/lang/ro_dns_txt.lng deleted file mode 100644 index b3f781da0..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ro_dns_txt.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ro_dns_wizard.lng b/interface/ispconfig/interface/dns/lib/lang/ro_dns_wizard.lng deleted file mode 100644 index 71d3497c6..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ro_dns_wizard.lng +++ /dev/null @@ -1,29 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/ru.lng b/interface/ispconfig/interface/dns/lib/lang/ru.lng deleted file mode 100644 index b47936efb..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ru.lng +++ /dev/null @@ -1,21 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/ru_dns_a.lng b/interface/ispconfig/interface/dns/lib/lang/ru_dns_a.lng deleted file mode 100644 index 81647b9a1..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ru_dns_a.lng +++ /dev/null @@ -1,17 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/ru_dns_a_list.lng b/interface/ispconfig/interface/dns/lib/lang/ru_dns_a_list.lng deleted file mode 100644 index 803d4d685..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ru_dns_a_list.lng +++ /dev/null @@ -1,15 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/ru_dns_aaaa.lng b/interface/ispconfig/interface/dns/lib/lang/ru_dns_aaaa.lng deleted file mode 100644 index 869206924..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ru_dns_aaaa.lng +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/ru_dns_alias.lng b/interface/ispconfig/interface/dns/lib/lang/ru_dns_alias.lng deleted file mode 100644 index 784f99ea3..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ru_dns_alias.lng +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/ru_dns_cname.lng b/interface/ispconfig/interface/dns/lib/lang/ru_dns_cname.lng deleted file mode 100644 index 6089373fe..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ru_dns_cname.lng +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/ru_dns_hinfo.lng b/interface/ispconfig/interface/dns/lib/lang/ru_dns_hinfo.lng deleted file mode 100644 index 986891e80..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ru_dns_hinfo.lng +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/ru_dns_mx.lng b/interface/ispconfig/interface/dns/lib/lang/ru_dns_mx.lng deleted file mode 100644 index d1bcbb2d1..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ru_dns_mx.lng +++ /dev/null @@ -1,17 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/ru_dns_ns.lng b/interface/ispconfig/interface/dns/lib/lang/ru_dns_ns.lng deleted file mode 100644 index 8e9f7d611..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ru_dns_ns.lng +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/ru_dns_ptr.lng b/interface/ispconfig/interface/dns/lib/lang/ru_dns_ptr.lng deleted file mode 100644 index 2e5e0007c..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ru_dns_ptr.lng +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/ru_dns_rp.lng b/interface/ispconfig/interface/dns/lib/lang/ru_dns_rp.lng deleted file mode 100644 index 22015068f..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ru_dns_rp.lng +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/ru_dns_soa.lng b/interface/ispconfig/interface/dns/lib/lang/ru_dns_soa.lng deleted file mode 100644 index 03dfdeb4c..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ru_dns_soa.lng +++ /dev/null @@ -1,27 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/ru_dns_soa_list.lng b/interface/ispconfig/interface/dns/lib/lang/ru_dns_soa_list.lng deleted file mode 100644 index 250f49a99..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ru_dns_soa_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/ru_dns_srv.lng b/interface/ispconfig/interface/dns/lib/lang/ru_dns_srv.lng deleted file mode 100644 index dece24af9..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ru_dns_srv.lng +++ /dev/null @@ -1,17 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/ru_dns_template.lng b/interface/ispconfig/interface/dns/lib/lang/ru_dns_template.lng deleted file mode 100644 index 9b9b0c177..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ru_dns_template.lng +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/ru_dns_template_list.lng b/interface/ispconfig/interface/dns/lib/lang/ru_dns_template_list.lng deleted file mode 100644 index b9c4fc38e..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ru_dns_template_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/ru_dns_txt.lng b/interface/ispconfig/interface/dns/lib/lang/ru_dns_txt.lng deleted file mode 100644 index 98e342f9a..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ru_dns_txt.lng +++ /dev/null @@ -1,16 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/ru_dns_wizard.lng b/interface/ispconfig/interface/dns/lib/lang/ru_dns_wizard.lng deleted file mode 100644 index 62f275909..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/ru_dns_wizard.lng +++ /dev/null @@ -1,30 +0,0 @@ - - diff --git a/interface/ispconfig/interface/dns/lib/lang/se.lng b/interface/ispconfig/interface/dns/lib/lang/se.lng deleted file mode 100644 index 36def8e93..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/se.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/se_dns_a.lng b/interface/ispconfig/interface/dns/lib/lang/se_dns_a.lng deleted file mode 100644 index 880213951..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/se_dns_a.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/se_dns_a_list.lng b/interface/ispconfig/interface/dns/lib/lang/se_dns_a_list.lng deleted file mode 100644 index 87c9cd818..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/se_dns_a_list.lng +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/se_dns_aaaa.lng b/interface/ispconfig/interface/dns/lib/lang/se_dns_aaaa.lng deleted file mode 100644 index 31ef0da15..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/se_dns_aaaa.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/se_dns_alias.lng b/interface/ispconfig/interface/dns/lib/lang/se_dns_alias.lng deleted file mode 100644 index 827e5a89e..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/se_dns_alias.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/se_dns_cname.lng b/interface/ispconfig/interface/dns/lib/lang/se_dns_cname.lng deleted file mode 100644 index 827e5a89e..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/se_dns_cname.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/se_dns_hinfo.lng b/interface/ispconfig/interface/dns/lib/lang/se_dns_hinfo.lng deleted file mode 100644 index 0d90bcf40..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/se_dns_hinfo.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/se_dns_mx.lng b/interface/ispconfig/interface/dns/lib/lang/se_dns_mx.lng deleted file mode 100644 index 648827f04..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/se_dns_mx.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/se_dns_ns.lng b/interface/ispconfig/interface/dns/lib/lang/se_dns_ns.lng deleted file mode 100644 index 713ec2858..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/se_dns_ns.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/se_dns_ptr.lng b/interface/ispconfig/interface/dns/lib/lang/se_dns_ptr.lng deleted file mode 100644 index c02638406..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/se_dns_ptr.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/se_dns_rp.lng b/interface/ispconfig/interface/dns/lib/lang/se_dns_rp.lng deleted file mode 100644 index d38efd163..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/se_dns_rp.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/se_dns_soa.lng b/interface/ispconfig/interface/dns/lib/lang/se_dns_soa.lng deleted file mode 100644 index e63ffb70f..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/se_dns_soa.lng +++ /dev/null @@ -1,26 +0,0 @@ -these IPs (comma separated list)'; -$wb['active_txt'] = 'Active'; -$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.'; -$wb['client_txt'] = 'Client'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; -$wb['server_id_error_empty'] = 'No server selected'; -$wb['origin_error_empty'] = 'Zone empty.'; -$wb['origin_error_unique'] = 'There is already a record for this zone.'; -$wb['origin_error_regex'] = 'Zone has a invalid format.'; -$wb['ns_error_regex'] = 'NS has a invalid format.'; -$wb['mbox_error_empty'] = 'Email is empty.'; -$wb['mbox_error_regex'] = 'Email format invalid.'; -$wb['also_notify_txt'] = 'Also Notify'; -$wb['update_acl_txt'] = 'Update ACL'; -?> diff --git a/interface/ispconfig/interface/dns/lib/lang/se_dns_soa_list.lng b/interface/ispconfig/interface/dns/lib/lang/se_dns_soa_list.lng deleted file mode 100644 index 42bb32920..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/se_dns_soa_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/se_dns_srv.lng b/interface/ispconfig/interface/dns/lib/lang/se_dns_srv.lng deleted file mode 100644 index d4ea60be9..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/se_dns_srv.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/se_dns_template.lng b/interface/ispconfig/interface/dns/lib/lang/se_dns_template.lng deleted file mode 100644 index 3a09e3bb7..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/se_dns_template.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/se_dns_template_list.lng b/interface/ispconfig/interface/dns/lib/lang/se_dns_template_list.lng deleted file mode 100644 index 8d9d730e5..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/se_dns_template_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/se_dns_txt.lng b/interface/ispconfig/interface/dns/lib/lang/se_dns_txt.lng deleted file mode 100644 index 8e6c417d0..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/se_dns_txt.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/se_dns_wizard.lng b/interface/ispconfig/interface/dns/lib/lang/se_dns_wizard.lng deleted file mode 100644 index ffceabb53..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/se_dns_wizard.lng +++ /dev/null @@ -1,29 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/sk.lng b/interface/ispconfig/interface/dns/lib/lang/sk.lng deleted file mode 100644 index a7f983618..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/sk.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/sk_dns_a.lng b/interface/ispconfig/interface/dns/lib/lang/sk_dns_a.lng deleted file mode 100644 index ce9974d2f..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/sk_dns_a.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/sk_dns_a_list.lng b/interface/ispconfig/interface/dns/lib/lang/sk_dns_a_list.lng deleted file mode 100644 index d1124a953..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/sk_dns_a_list.lng +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/sk_dns_aaaa.lng b/interface/ispconfig/interface/dns/lib/lang/sk_dns_aaaa.lng deleted file mode 100644 index 03dfe3fc6..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/sk_dns_aaaa.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/sk_dns_alias.lng b/interface/ispconfig/interface/dns/lib/lang/sk_dns_alias.lng deleted file mode 100644 index a7b4cb228..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/sk_dns_alias.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/sk_dns_cname.lng b/interface/ispconfig/interface/dns/lib/lang/sk_dns_cname.lng deleted file mode 100644 index dc768706b..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/sk_dns_cname.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/sk_dns_hinfo.lng b/interface/ispconfig/interface/dns/lib/lang/sk_dns_hinfo.lng deleted file mode 100644 index 33b814fe2..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/sk_dns_hinfo.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/sk_dns_mx.lng b/interface/ispconfig/interface/dns/lib/lang/sk_dns_mx.lng deleted file mode 100644 index d179568ae..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/sk_dns_mx.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/sk_dns_ns.lng b/interface/ispconfig/interface/dns/lib/lang/sk_dns_ns.lng deleted file mode 100644 index 5df4592eb..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/sk_dns_ns.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/sk_dns_ptr.lng b/interface/ispconfig/interface/dns/lib/lang/sk_dns_ptr.lng deleted file mode 100644 index cac489d05..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/sk_dns_ptr.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/sk_dns_rp.lng b/interface/ispconfig/interface/dns/lib/lang/sk_dns_rp.lng deleted file mode 100644 index 582b61c12..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/sk_dns_rp.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/sk_dns_soa.lng b/interface/ispconfig/interface/dns/lib/lang/sk_dns_soa.lng deleted file mode 100644 index 98de52e15..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/sk_dns_soa.lng +++ /dev/null @@ -1,26 +0,0 @@ -tieto IP (comma separated list)'; -$wb['active_txt'] = 'Actívova?'; -$wb['limit_dns_zone_txt'] = 'Max. po?et zón DNS pre váš ú?et je dosiahnutý.'; -$wb['client_txt'] = 'Klient'; -$wb['no_zone_perm'] = 'Nemáte oprávnenie prida? záznam do tejto zóny DNS.'; -$wb['server_id_error_empty'] = 'Žiaden vybraný server'; -$wb['origin_error_empty'] = 'Prazdna zóna.'; -$wb['origin_error_unique'] = 'V sú?asnosti už existuje záznam pre túto zónu.'; -$wb['origin_error_regex'] = 'Zóna má neplatný formát.'; -$wb['ns_error_regex'] = 'NS má neplatný formát.'; -$wb['mbox_error_empty'] = 'Email je prázdny.'; -$wb['mbox_error_regex'] = 'Email má neplatný formát.'; -$wb['also_notify_txt'] = 'Also Notify'; -$wb['update_acl_txt'] = 'Update ACL'; -?> diff --git a/interface/ispconfig/interface/dns/lib/lang/sk_dns_soa_list.lng b/interface/ispconfig/interface/dns/lib/lang/sk_dns_soa_list.lng deleted file mode 100644 index 91a978802..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/sk_dns_soa_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/sk_dns_srv.lng b/interface/ispconfig/interface/dns/lib/lang/sk_dns_srv.lng deleted file mode 100644 index 7f867d3af..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/sk_dns_srv.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/sk_dns_template.lng b/interface/ispconfig/interface/dns/lib/lang/sk_dns_template.lng deleted file mode 100644 index 4dd637f58..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/sk_dns_template.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/sk_dns_template_list.lng b/interface/ispconfig/interface/dns/lib/lang/sk_dns_template_list.lng deleted file mode 100644 index 0a7c5d7e9..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/sk_dns_template_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/sk_dns_txt.lng b/interface/ispconfig/interface/dns/lib/lang/sk_dns_txt.lng deleted file mode 100644 index e0137c0dc..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/sk_dns_txt.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/sk_dns_wizard.lng b/interface/ispconfig/interface/dns/lib/lang/sk_dns_wizard.lng deleted file mode 100644 index 7c845c7e9..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/sk_dns_wizard.lng +++ /dev/null @@ -1,29 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/tr.lng b/interface/ispconfig/interface/dns/lib/lang/tr.lng deleted file mode 100644 index 36def8e93..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/tr.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/tr_dns_a.lng b/interface/ispconfig/interface/dns/lib/lang/tr_dns_a.lng deleted file mode 100644 index 097833f02..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/tr_dns_a.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/tr_dns_a_list.lng b/interface/ispconfig/interface/dns/lib/lang/tr_dns_a_list.lng deleted file mode 100644 index 77dcb8397..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/tr_dns_a_list.lng +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/tr_dns_aaaa.lng b/interface/ispconfig/interface/dns/lib/lang/tr_dns_aaaa.lng deleted file mode 100644 index 3bcf25061..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/tr_dns_aaaa.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/tr_dns_alias.lng b/interface/ispconfig/interface/dns/lib/lang/tr_dns_alias.lng deleted file mode 100644 index da1e6e616..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/tr_dns_alias.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/tr_dns_cname.lng b/interface/ispconfig/interface/dns/lib/lang/tr_dns_cname.lng deleted file mode 100644 index d74cfebc9..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/tr_dns_cname.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/tr_dns_hinfo.lng b/interface/ispconfig/interface/dns/lib/lang/tr_dns_hinfo.lng deleted file mode 100644 index 7585d1365..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/tr_dns_hinfo.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/tr_dns_mx.lng b/interface/ispconfig/interface/dns/lib/lang/tr_dns_mx.lng deleted file mode 100644 index 201f686ec..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/tr_dns_mx.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/tr_dns_ns.lng b/interface/ispconfig/interface/dns/lib/lang/tr_dns_ns.lng deleted file mode 100644 index 0a5ef9338..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/tr_dns_ns.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/tr_dns_ptr.lng b/interface/ispconfig/interface/dns/lib/lang/tr_dns_ptr.lng deleted file mode 100644 index e34394522..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/tr_dns_ptr.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/tr_dns_rp.lng b/interface/ispconfig/interface/dns/lib/lang/tr_dns_rp.lng deleted file mode 100644 index f444fb0e1..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/tr_dns_rp.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/tr_dns_soa.lng b/interface/ispconfig/interface/dns/lib/lang/tr_dns_soa.lng deleted file mode 100644 index 756ea05d2..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/tr_dns_soa.lng +++ /dev/null @@ -1,26 +0,0 @@ -these IPs (comma separated list)'; -$wb['active_txt'] = 'Aktif'; -$wb['limit_dns_zone_txt'] = 'Hesabınızdaki max. DNS zone kaydına ulaşıldı.'; -$wb['client_txt'] = 'Müşteri'; -$wb['no_zone_perm'] = 'Bu DNS Zone kaydını eklemek için yetkiniz yok.'; -$wb['server_id_error_empty'] = 'Seçili sunucu yok'; -$wb['origin_error_empty'] = 'Zone boÅŸ.'; -$wb['origin_error_unique'] = 'Bu zone için bir kayıt zaten var.'; -$wb['origin_error_regex'] = 'Zone geçersiz formatta.'; -$wb['ns_error_regex'] = 'NS geçersiz formatta.'; -$wb['mbox_error_empty'] = 'Email boÅŸ.'; -$wb['mbox_error_regex'] = 'Email geçersiz formatta.'; -$wb['also_notify_txt'] = 'Also Notify'; -$wb['update_acl_txt'] = 'Update ACL'; -?> diff --git a/interface/ispconfig/interface/dns/lib/lang/tr_dns_soa_list.lng b/interface/ispconfig/interface/dns/lib/lang/tr_dns_soa_list.lng deleted file mode 100644 index 4670b20f5..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/tr_dns_soa_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/tr_dns_srv.lng b/interface/ispconfig/interface/dns/lib/lang/tr_dns_srv.lng deleted file mode 100644 index c56d06eda..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/tr_dns_srv.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/tr_dns_template.lng b/interface/ispconfig/interface/dns/lib/lang/tr_dns_template.lng deleted file mode 100644 index 1c973fa6d..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/tr_dns_template.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/tr_dns_template_list.lng b/interface/ispconfig/interface/dns/lib/lang/tr_dns_template_list.lng deleted file mode 100644 index 9bc064c76..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/tr_dns_template_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/tr_dns_txt.lng b/interface/ispconfig/interface/dns/lib/lang/tr_dns_txt.lng deleted file mode 100644 index b2475219e..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/tr_dns_txt.lng +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/lang/tr_dns_wizard.lng b/interface/ispconfig/interface/dns/lib/lang/tr_dns_wizard.lng deleted file mode 100644 index dbd4d5a88..000000000 --- a/interface/ispconfig/interface/dns/lib/lang/tr_dns_wizard.lng +++ /dev/null @@ -1,29 +0,0 @@ - diff --git a/interface/ispconfig/interface/dns/lib/module.conf.php b/interface/ispconfig/interface/dns/lib/module.conf.php deleted file mode 100644 index ae7e8c456..000000000 --- a/interface/ispconfig/interface/dns/lib/module.conf.php +++ /dev/null @@ -1,57 +0,0 @@ - "Add DNS Zone", - 'target' => 'content', - 'link' => 'dns/dns_wizard.php'); - -if($_SESSION["s"]["user"]["typ"] == 'admin') { - - $items[] = array( 'title' => "Templates", - 'target' => 'content', - 'link' => 'dns/dns_template_list.php'); -} - - -$module["nav"][] = array( 'title' => 'DNS Wizard', - 'open' => 1, - 'items' => $items); - - -unset($items); - -/* - Email accounts menu -*/ - - -$items[] = array( 'title' => "Zones", - 'target' => 'content', - 'link' => 'dns/dns_soa_list.php'); -/* -$items[] = array( 'title' => "A-Records", - 'target' => 'content', - 'link' => 'dns/dns_a_list.php'); -*/ - - -$module["nav"][] = array( 'title' => 'DNS', - 'open' => 1, - 'items' => $items); - -unset($items); - - - - - - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/list/dns_a.list.php b/interface/ispconfig/interface/dns/list/dns_a.list.php deleted file mode 100644 index 54470cfc1..000000000 --- a/interface/ispconfig/interface/dns/list/dns_a.list.php +++ /dev/null @@ -1,127 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
Yes
",'n' => "
No
")); - - -$liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "zone", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT id,origin FROM dns_soa WHERE {AUTHSQL} ORDER BY origin', - 'keyfield'=> 'id', - 'valuefield'=> 'origin' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "name", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "data", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "aux", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -$liste["item"][] = array( 'field' => "type", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('A'=>'A','AAAA' => 'AAAA','ALIAS'=>'ALIAS','CNAME'=>'CNAME','HINFO'=>'HINFO','MX'=>'MX','NS'=>'NS','PTR'=>'PTR','RP'=>'RP','SRV'=>'SRV','TXT'=>'TXT')); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/list/dns_soa.list.php b/interface/ispconfig/interface/dns/list/dns_soa.list.php deleted file mode 100644 index 3e5fae6a9..000000000 --- a/interface/ispconfig/interface/dns/list/dns_soa.list.php +++ /dev/null @@ -1,111 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
Yes
",'n' => "
No
")); - - -$liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'CUSTOM', - 'class'=> 'custom_datasource', - 'function'=> 'dns_servers' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "origin", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -$liste["item"][] = array( 'field' => "ns", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -$liste["item"][] = array( 'field' => "mbox", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - - - - - - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/list/dns_template.list.php b/interface/ispconfig/interface/dns/list/dns_template.list.php deleted file mode 100644 index 11a1919b1..000000000 --- a/interface/ispconfig/interface/dns/list/dns_template.list.php +++ /dev/null @@ -1,80 +0,0 @@ - "visible", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('Y' => "
Yes
",'N' => "
No
")); - - -$liste["item"][] = array( 'field' => "name", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - - - - - - - - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/dns/templates/dns_a_edit.htm b/interface/ispconfig/interface/dns/templates/dns_a_edit.htm deleted file mode 100644 index 4bf2bd259..000000000 --- a/interface/ispconfig/interface/dns/templates/dns_a_edit.htm +++ /dev/null @@ -1,39 +0,0 @@ -

-

- -
- -
-
-
- - -

{tmpl_var name='name_hint_txt'}

-
-
- - -
-
- - -
-
-

{tmpl_var name='active_txt'}

-
- {tmpl_var name='active'} -
-
-
- - - - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/dns/templates/dns_a_list.htm b/interface/ispconfig/interface/dns/templates/dns_a_list.htm deleted file mode 100644 index 19d35c21b..000000000 --- a/interface/ispconfig/interface/dns/templates/dns_a_list.htm +++ /dev/null @@ -1,85 +0,0 @@ -
-
{tmpl_var name="toolsarea_head_txt"} -
- - - - - - - - - - - -
-
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
{tmpl_var name="type"}{tmpl_var name="name"}{tmpl_var name="data"}{tmpl_var name="aux"} - -
-
-
diff --git a/interface/ispconfig/interface/dns/templates/dns_aaaa_edit.htm b/interface/ispconfig/interface/dns/templates/dns_aaaa_edit.htm deleted file mode 100644 index 85085327a..000000000 --- a/interface/ispconfig/interface/dns/templates/dns_aaaa_edit.htm +++ /dev/null @@ -1,39 +0,0 @@ -

-

- -
- -
-
-
- - -

{tmpl_var name='name_hint_txt'}

-
-
- - -
-
- - -
-
-

{tmpl_var name='active_txt'}

-
- {tmpl_var name='active'} -
-
-
- - - - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/dns/templates/dns_alias_edit.htm b/interface/ispconfig/interface/dns/templates/dns_alias_edit.htm deleted file mode 100644 index 4300af42c..000000000 --- a/interface/ispconfig/interface/dns/templates/dns_alias_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -

-

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

{tmpl_var name='active_txt'}

-
- {tmpl_var name='active'} -
-
-
- - - - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/dns/templates/dns_cname_edit.htm b/interface/ispconfig/interface/dns/templates/dns_cname_edit.htm deleted file mode 100644 index 103b743fc..000000000 --- a/interface/ispconfig/interface/dns/templates/dns_cname_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -

-

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

{tmpl_var name='active_txt'}

-
- {tmpl_var name='active'} -
-
-
- - - - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/dns/templates/dns_hinfo_edit.htm b/interface/ispconfig/interface/dns/templates/dns_hinfo_edit.htm deleted file mode 100644 index 902911119..000000000 --- a/interface/ispconfig/interface/dns/templates/dns_hinfo_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -

-

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

{tmpl_var name='active_txt'}

-
- {tmpl_var name='active'} -
-
-
- - - - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/dns/templates/dns_mx_edit.htm b/interface/ispconfig/interface/dns/templates/dns_mx_edit.htm deleted file mode 100644 index f8547245d..000000000 --- a/interface/ispconfig/interface/dns/templates/dns_mx_edit.htm +++ /dev/null @@ -1,42 +0,0 @@ -

-

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

{tmpl_var name='active_txt'}

-
- {tmpl_var name='active'} -
-
-
- - - - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/dns/templates/dns_ns_edit.htm b/interface/ispconfig/interface/dns/templates/dns_ns_edit.htm deleted file mode 100644 index 9141b3b1e..000000000 --- a/interface/ispconfig/interface/dns/templates/dns_ns_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -

-

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

{tmpl_var name='active_txt'}

-
- {tmpl_var name='active'} -
-
-
- - - - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/dns/templates/dns_ptr_edit.htm b/interface/ispconfig/interface/dns/templates/dns_ptr_edit.htm deleted file mode 100644 index 58901cdc9..000000000 --- a/interface/ispconfig/interface/dns/templates/dns_ptr_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -

-

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

{tmpl_var name='active_txt'}

-
- {tmpl_var name='active'} -
-
-
- - - - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/dns/templates/dns_records_edit.htm b/interface/ispconfig/interface/dns/templates/dns_records_edit.htm deleted file mode 100644 index 1feb3f970..000000000 --- a/interface/ispconfig/interface/dns/templates/dns_records_edit.htm +++ /dev/null @@ -1,12 +0,0 @@ -

-

- -
- - {tmpl_var name='dns_records'} - -
- -
- -
diff --git a/interface/ispconfig/interface/dns/templates/dns_rp_edit.htm b/interface/ispconfig/interface/dns/templates/dns_rp_edit.htm deleted file mode 100644 index 93f1e89e9..000000000 --- a/interface/ispconfig/interface/dns/templates/dns_rp_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -

-

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

{tmpl_var name='active_txt'}

-
- {tmpl_var name='active'} -
-
-
- - - - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/dns/templates/dns_soa_edit.htm b/interface/ispconfig/interface/dns/templates/dns_soa_edit.htm deleted file mode 100644 index ef855a836..000000000 --- a/interface/ispconfig/interface/dns/templates/dns_soa_edit.htm +++ /dev/null @@ -1,95 +0,0 @@ -

-

- -
- -
-
DNS Zone - -
- - -
-
- - -
-
- -
- - -
-
-
- - -

e.g. domain.tld.

-
-
- - -

e.g. ns1.domain.tld.

-
-
- - -

e.g. webmaster.domain.tld.

-
-
- -  Seconds -
-
- -  Seconds -
-
- -  Seconds -
-
- -  Seconds -
-
- -  Seconds -
-
- - -
-
- - -
-
- - -
- -
-

{tmpl_var name='active_txt'}

-
- {tmpl_var name='active'} -
-
-
- - - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/dns/templates/dns_soa_list.htm b/interface/ispconfig/interface/dns/templates/dns_soa_list.htm deleted file mode 100644 index 46d0160ca..000000000 --- a/interface/ispconfig/interface/dns/templates/dns_soa_list.htm +++ /dev/null @@ -1,62 +0,0 @@ -

-

- -
- -
-
{tmpl_var name="toolsarea_head_txt"} -
- -
-
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
{tmpl_var name="server_id"}{tmpl_var name="origin"}{tmpl_var name="ns"}{tmpl_var name="mbox"} - -
-
-
- -
diff --git a/interface/ispconfig/interface/dns/templates/dns_srv_edit.htm b/interface/ispconfig/interface/dns/templates/dns_srv_edit.htm deleted file mode 100644 index bfa35fd7f..000000000 --- a/interface/ispconfig/interface/dns/templates/dns_srv_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -

-

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

{tmpl_var name='active_txt'}

-
- {tmpl_var name='active'} -
-
-
- - - - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/dns/templates/dns_template_edit.htm b/interface/ispconfig/interface/dns/templates/dns_template_edit.htm deleted file mode 100644 index 34cf3b1e0..000000000 --- a/interface/ispconfig/interface/dns/templates/dns_template_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -

-

- -
- -
-
-
- - -
-
-

{tmpl_var name='fields_txt'}

-
- {tmpl_var name='fields'} -
-
-
- - -
-
-

{tmpl_var name='visible_txt'}

-
- {tmpl_var name='visible'} -
-
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/dns/templates/dns_template_list.htm b/interface/ispconfig/interface/dns/templates/dns_template_list.htm deleted file mode 100644 index a698a9738..000000000 --- a/interface/ispconfig/interface/dns/templates/dns_template_list.htm +++ /dev/null @@ -1,53 +0,0 @@ -

-

- -
- -
-
{tmpl_var name="toolsarea_head_txt"} -
- -
-
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
{tmpl_var name="visible"}{tmpl_var name="name"} - -
-
-
- -
diff --git a/interface/ispconfig/interface/dns/templates/dns_txt_edit.htm b/interface/ispconfig/interface/dns/templates/dns_txt_edit.htm deleted file mode 100644 index d1408a9dc..000000000 --- a/interface/ispconfig/interface/dns/templates/dns_txt_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -

-

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

{tmpl_var name='active_txt'}

-
- {tmpl_var name='active'} -
-
-
- - - - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/dns/templates/dns_wizard.htm b/interface/ispconfig/interface/dns/templates/dns_wizard.htm deleted file mode 100644 index f8cd6021f..000000000 --- a/interface/ispconfig/interface/dns/templates/dns_wizard.htm +++ /dev/null @@ -1,80 +0,0 @@ -

-

- - -

ERROR

-
- -
- -
-
DNS Zone -
- - -
- -
- - -
-
- - -
-
- -
- - -
-
- -
- - -
-
- -
- - -
-
- -
- - -
-
- -
- - -
-
- -
- - -
-
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/help/form/support_message.tform.php b/interface/ispconfig/interface/help/form/support_message.tform.php deleted file mode 100644 index b48dce242..000000000 --- a/interface/ispconfig/interface/help/form/support_message.tform.php +++ /dev/null @@ -1,120 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - - -//* Begin of the form definition of the first tab. The name of the tab is called "message". We refer -//* to this name in the $form["tab_default"] setting above. -$form["tabs"]['message'] = array ( - 'title' => "Message", // Title of the Tab - 'width' => 100, // Tab width - 'template' => "templates/support_message_edit.htm", // Template file name - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'recipient_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT userid,username FROM sys_user WHERE {AUTHSQL} ORDER BY username', - 'keyfield' => 'userid', - 'valuefield' => 'username' - ), - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'recipient_id_is_not_integer'), - ), - 'value' => '' - ), - 'sender_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT userid,username FROM sys_user WHERE {AUTHSQL} ORDER BY username', - 'keyfield' => 'userid', - 'valuefield' => 'username' - ), - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'recipient_id_is_not_integer'), - ), - 'value' => '' - ), - 'subject' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'subject_is_empty'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'message' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXTAREA', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'message_is_empty'), - ), - 'default' => '', - 'value' => '', - 'cols' => '30', - 'rows' => '10', - 'maxlength' => '255' - ), - 'tstamp' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => time(), - 'value' => '', - 'width' => '30', - 'maxlength' => '30' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/help/index.php b/interface/ispconfig/interface/help/index.php deleted file mode 100644 index 36a23159b..000000000 --- a/interface/ispconfig/interface/help/index.php +++ /dev/null @@ -1,16 +0,0 @@ - - - -ISPConfig Help - - - -
-

 

-

 

-

 

-

 

-

 

-
- - \ No newline at end of file diff --git a/interface/ispconfig/interface/help/lib/admin.conf.php b/interface/ispconfig/interface/help/lib/admin.conf.php deleted file mode 100644 index 58a17b038..000000000 --- a/interface/ispconfig/interface/help/lib/admin.conf.php +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/help/lib/lang/bg.lng b/interface/ispconfig/interface/help/lib/lang/bg.lng deleted file mode 100644 index b93106e6c..000000000 --- a/interface/ispconfig/interface/help/lib/lang/bg.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/bg_support_message.lng b/interface/ispconfig/interface/help/lib/lang/bg_support_message.lng deleted file mode 100644 index b6d979ad0..000000000 --- a/interface/ispconfig/interface/help/lib/lang/bg_support_message.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/bg_support_message_list.lng b/interface/ispconfig/interface/help/lib/lang/bg_support_message_list.lng deleted file mode 100644 index 1a5c21c50..000000000 --- a/interface/ispconfig/interface/help/lib/lang/bg_support_message_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/br.lng b/interface/ispconfig/interface/help/lib/lang/br.lng deleted file mode 100644 index 3f45599aa..000000000 --- a/interface/ispconfig/interface/help/lib/lang/br.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/br_support_message.lng b/interface/ispconfig/interface/help/lib/lang/br_support_message.lng deleted file mode 100644 index 99dcf309f..000000000 --- a/interface/ispconfig/interface/help/lib/lang/br_support_message.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/br_support_message_list.lng b/interface/ispconfig/interface/help/lib/lang/br_support_message_list.lng deleted file mode 100644 index d5ba95829..000000000 --- a/interface/ispconfig/interface/help/lib/lang/br_support_message_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/de.lng b/interface/ispconfig/interface/help/lib/lang/de.lng deleted file mode 100644 index 2627e48e9..000000000 --- a/interface/ispconfig/interface/help/lib/lang/de.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/de_support_message.lng b/interface/ispconfig/interface/help/lib/lang/de_support_message.lng deleted file mode 100644 index b026b17a8..000000000 --- a/interface/ispconfig/interface/help/lib/lang/de_support_message.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/de_support_message_list.lng b/interface/ispconfig/interface/help/lib/lang/de_support_message_list.lng deleted file mode 100644 index 72734756a..000000000 --- a/interface/ispconfig/interface/help/lib/lang/de_support_message_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/en.lng b/interface/ispconfig/interface/help/lib/lang/en.lng deleted file mode 100644 index 369cbb9a8..000000000 --- a/interface/ispconfig/interface/help/lib/lang/en.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/en_support_message.lng b/interface/ispconfig/interface/help/lib/lang/en_support_message.lng deleted file mode 100644 index 25e3221e7..000000000 --- a/interface/ispconfig/interface/help/lib/lang/en_support_message.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/en_support_message_list.lng b/interface/ispconfig/interface/help/lib/lang/en_support_message_list.lng deleted file mode 100644 index 9f2b3fd37..000000000 --- a/interface/ispconfig/interface/help/lib/lang/en_support_message_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/help/lib/lang/es.lng b/interface/ispconfig/interface/help/lib/lang/es.lng deleted file mode 100644 index dc4e98582..000000000 --- a/interface/ispconfig/interface/help/lib/lang/es.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/es_support_message.lng b/interface/ispconfig/interface/help/lib/lang/es_support_message.lng deleted file mode 100644 index 80a7d97cb..000000000 --- a/interface/ispconfig/interface/help/lib/lang/es_support_message.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/es_support_message_list.lng b/interface/ispconfig/interface/help/lib/lang/es_support_message_list.lng deleted file mode 100644 index 0ff8eb931..000000000 --- a/interface/ispconfig/interface/help/lib/lang/es_support_message_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/fi.lng b/interface/ispconfig/interface/help/lib/lang/fi.lng deleted file mode 100644 index cd13f9c03..000000000 --- a/interface/ispconfig/interface/help/lib/lang/fi.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/fi_support_message.lng b/interface/ispconfig/interface/help/lib/lang/fi_support_message.lng deleted file mode 100644 index 1e693bc6e..000000000 --- a/interface/ispconfig/interface/help/lib/lang/fi_support_message.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/fi_support_message_list.lng b/interface/ispconfig/interface/help/lib/lang/fi_support_message_list.lng deleted file mode 100644 index 4bbc1de79..000000000 --- a/interface/ispconfig/interface/help/lib/lang/fi_support_message_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/fr.lng b/interface/ispconfig/interface/help/lib/lang/fr.lng deleted file mode 100644 index 124280678..000000000 --- a/interface/ispconfig/interface/help/lib/lang/fr.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/fr_support_message.lng b/interface/ispconfig/interface/help/lib/lang/fr_support_message.lng deleted file mode 100644 index 690a91254..000000000 --- a/interface/ispconfig/interface/help/lib/lang/fr_support_message.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/fr_support_message_list.lng b/interface/ispconfig/interface/help/lib/lang/fr_support_message_list.lng deleted file mode 100644 index ac63d3f6e..000000000 --- a/interface/ispconfig/interface/help/lib/lang/fr_support_message_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/hu.lng b/interface/ispconfig/interface/help/lib/lang/hu.lng deleted file mode 100644 index 0dc1ac1a3..000000000 --- a/interface/ispconfig/interface/help/lib/lang/hu.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/hu_support_message.lng b/interface/ispconfig/interface/help/lib/lang/hu_support_message.lng deleted file mode 100644 index 65a327645..000000000 --- a/interface/ispconfig/interface/help/lib/lang/hu_support_message.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/hu_support_message_list.lng b/interface/ispconfig/interface/help/lib/lang/hu_support_message_list.lng deleted file mode 100644 index 7e71ebc1e..000000000 --- a/interface/ispconfig/interface/help/lib/lang/hu_support_message_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/it.lng b/interface/ispconfig/interface/help/lib/lang/it.lng deleted file mode 100644 index a5da077c9..000000000 --- a/interface/ispconfig/interface/help/lib/lang/it.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/it_support_message.lng b/interface/ispconfig/interface/help/lib/lang/it_support_message.lng deleted file mode 100644 index 240e6f20d..000000000 --- a/interface/ispconfig/interface/help/lib/lang/it_support_message.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/it_support_message_list.lng b/interface/ispconfig/interface/help/lib/lang/it_support_message_list.lng deleted file mode 100644 index 95f3558a2..000000000 --- a/interface/ispconfig/interface/help/lib/lang/it_support_message_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/ja.lng b/interface/ispconfig/interface/help/lib/lang/ja.lng deleted file mode 100644 index 57fa64e0f..000000000 --- a/interface/ispconfig/interface/help/lib/lang/ja.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/ja_support_message.lng b/interface/ispconfig/interface/help/lib/lang/ja_support_message.lng deleted file mode 100644 index b4e6e0227..000000000 --- a/interface/ispconfig/interface/help/lib/lang/ja_support_message.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/ja_support_message_list.lng b/interface/ispconfig/interface/help/lib/lang/ja_support_message_list.lng deleted file mode 100644 index 0a68de95b..000000000 --- a/interface/ispconfig/interface/help/lib/lang/ja_support_message_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/nl.lng b/interface/ispconfig/interface/help/lib/lang/nl.lng deleted file mode 100644 index 170c3d6ad..000000000 --- a/interface/ispconfig/interface/help/lib/lang/nl.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/nl_support_message.lng b/interface/ispconfig/interface/help/lib/lang/nl_support_message.lng deleted file mode 100644 index d2aed4cb6..000000000 --- a/interface/ispconfig/interface/help/lib/lang/nl_support_message.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/nl_support_message_list.lng b/interface/ispconfig/interface/help/lib/lang/nl_support_message_list.lng deleted file mode 100644 index 0d7b2cb74..000000000 --- a/interface/ispconfig/interface/help/lib/lang/nl_support_message_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/pl.lng b/interface/ispconfig/interface/help/lib/lang/pl.lng deleted file mode 100644 index 51ca7ccc8..000000000 --- a/interface/ispconfig/interface/help/lib/lang/pl.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/pl_support_message.lng b/interface/ispconfig/interface/help/lib/lang/pl_support_message.lng deleted file mode 100644 index b21539af2..000000000 --- a/interface/ispconfig/interface/help/lib/lang/pl_support_message.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/pl_support_message_list.lng b/interface/ispconfig/interface/help/lib/lang/pl_support_message_list.lng deleted file mode 100644 index bc3285694..000000000 --- a/interface/ispconfig/interface/help/lib/lang/pl_support_message_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/pt.lng b/interface/ispconfig/interface/help/lib/lang/pt.lng deleted file mode 100644 index adace22c8..000000000 --- a/interface/ispconfig/interface/help/lib/lang/pt.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/help/lib/lang/pt_support_message.lng b/interface/ispconfig/interface/help/lib/lang/pt_support_message.lng deleted file mode 100644 index ce48ca9d2..000000000 --- a/interface/ispconfig/interface/help/lib/lang/pt_support_message.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/help/lib/lang/pt_support_message_list.lng b/interface/ispconfig/interface/help/lib/lang/pt_support_message_list.lng deleted file mode 100644 index ffd7d85ce..000000000 --- a/interface/ispconfig/interface/help/lib/lang/pt_support_message_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/interface/ispconfig/interface/help/lib/lang/ro.lng b/interface/ispconfig/interface/help/lib/lang/ro.lng deleted file mode 100644 index b97df1de6..000000000 --- a/interface/ispconfig/interface/help/lib/lang/ro.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/ro_support_message.lng b/interface/ispconfig/interface/help/lib/lang/ro_support_message.lng deleted file mode 100644 index 8769c8527..000000000 --- a/interface/ispconfig/interface/help/lib/lang/ro_support_message.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/ro_support_message_list.lng b/interface/ispconfig/interface/help/lib/lang/ro_support_message_list.lng deleted file mode 100644 index 34aebb877..000000000 --- a/interface/ispconfig/interface/help/lib/lang/ro_support_message_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/ru.lng b/interface/ispconfig/interface/help/lib/lang/ru.lng deleted file mode 100644 index be5e01da8..000000000 --- a/interface/ispconfig/interface/help/lib/lang/ru.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/help/lib/lang/ru_support_message.lng b/interface/ispconfig/interface/help/lib/lang/ru_support_message.lng deleted file mode 100644 index d59eb1f55..000000000 --- a/interface/ispconfig/interface/help/lib/lang/ru_support_message.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/help/lib/lang/ru_support_message_list.lng b/interface/ispconfig/interface/help/lib/lang/ru_support_message_list.lng deleted file mode 100644 index 679d55c34..000000000 --- a/interface/ispconfig/interface/help/lib/lang/ru_support_message_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/interface/ispconfig/interface/help/lib/lang/se.lng b/interface/ispconfig/interface/help/lib/lang/se.lng deleted file mode 100644 index 16a245dc0..000000000 --- a/interface/ispconfig/interface/help/lib/lang/se.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/se_support_message.lng b/interface/ispconfig/interface/help/lib/lang/se_support_message.lng deleted file mode 100644 index 25e3221e7..000000000 --- a/interface/ispconfig/interface/help/lib/lang/se_support_message.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/se_support_message_list.lng b/interface/ispconfig/interface/help/lib/lang/se_support_message_list.lng deleted file mode 100644 index d6bc2aac3..000000000 --- a/interface/ispconfig/interface/help/lib/lang/se_support_message_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/sk.lng b/interface/ispconfig/interface/help/lib/lang/sk.lng deleted file mode 100644 index f359d0c4a..000000000 --- a/interface/ispconfig/interface/help/lib/lang/sk.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/sk_support_message.lng b/interface/ispconfig/interface/help/lib/lang/sk_support_message.lng deleted file mode 100644 index 08d0eae6c..000000000 --- a/interface/ispconfig/interface/help/lib/lang/sk_support_message.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/sk_support_message_list.lng b/interface/ispconfig/interface/help/lib/lang/sk_support_message_list.lng deleted file mode 100644 index 9d432bf89..000000000 --- a/interface/ispconfig/interface/help/lib/lang/sk_support_message_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/tr.lng b/interface/ispconfig/interface/help/lib/lang/tr.lng deleted file mode 100644 index b38ed5ff7..000000000 --- a/interface/ispconfig/interface/help/lib/lang/tr.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/tr_support_message.lng b/interface/ispconfig/interface/help/lib/lang/tr_support_message.lng deleted file mode 100644 index 25e3221e7..000000000 --- a/interface/ispconfig/interface/help/lib/lang/tr_support_message.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/lang/tr_support_message_list.lng b/interface/ispconfig/interface/help/lib/lang/tr_support_message_list.lng deleted file mode 100644 index acdb363da..000000000 --- a/interface/ispconfig/interface/help/lib/lang/tr_support_message_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/help/lib/module.conf.php b/interface/ispconfig/interface/help/lib/module.conf.php deleted file mode 100644 index 9211aed06..000000000 --- a/interface/ispconfig/interface/help/lib/module.conf.php +++ /dev/null @@ -1,60 +0,0 @@ - 'Send message', - 'target' => 'content', - 'link' => 'help/support_message_edit.php'); - -//* Add a menu item with the label 'View messages' -$items[] = array( 'title' => 'View messages', - 'target' => 'content', - 'link' => 'help/support_message_list.php'); - - -//* Add the menu items defined above to a menu section labeled 'Support' -$module['nav'][] = array( 'title' => 'Support', - 'open' => 1, - 'items' => $items); - - -if($_SESSION['s']['user']['typ'] == 'admin') { -//* make sure that the items array is empty -$items = array(); - -//* Add a menu item with the label 'View messages' -$items[] = array( 'title' => 'Version', - 'target' => 'content', - 'link' => 'help/version.php'); - - -//* Add the menu items defined above to a menu section labeled 'Support' -$module['nav'][] = array( 'title' => 'About ISPConfig', - 'open' => 1, - 'items' => $items); - -} - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/help/list/support_message.list.php b/interface/ispconfig/interface/help/list/support_message.list.php deleted file mode 100644 index c6975d2cb..000000000 --- a/interface/ispconfig/interface/help/list/support_message.list.php +++ /dev/null @@ -1,62 +0,0 @@ - 'sender_id', - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'op' => '=', - 'prefix' => '', - 'suffix' => '', - 'width' => '', - 'datasource'=> array ( 'type' => 'SQL', - 'querystring' => 'SELECT userid,username FROM sys_user WHERE {AUTHSQL} ORDER BY username', - 'keyfield' => 'userid', - 'valuefield' => 'username' - ), - 'value' => ''); - -$liste['item'][] = array( 'field' => 'subject', - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'op' => 'like', - 'prefix' => '%', - 'suffix' => '%', - 'width' => '', - 'value' => ''); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/help/support_message_del.php b/interface/ispconfig/interface/help/support_message_del.php deleted file mode 100644 index 16db6040a..000000000 --- a/interface/ispconfig/interface/help/support_message_del.php +++ /dev/null @@ -1,48 +0,0 @@ -auth->check_module_permissions('help'); - -//* Load the form -$app->uses('tform_actions'); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/help/support_message_edit.php b/interface/ispconfig/interface/help/support_message_edit.php deleted file mode 100644 index 8223a0000..000000000 --- a/interface/ispconfig/interface/help/support_message_edit.php +++ /dev/null @@ -1,71 +0,0 @@ -auth->check_module_permissions('help'); - -//* Loading the templating and form classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -//* Creating a class page_action that extends the tform_actions base class -class page_action extends tform_actions { - - //* Custom onSubmit Event handler - function onSubmit() - { - global $app, $conf; - - //* If the current user is not the admin user - if($_SESSION['s']['user']['typ'] != 'admin') { - //* Set the admin as recipient - $this->dataRecord['recipient_id'] = 1; - } - - //* Set the sender_id field to the ID of the current user - $this->dataRecord['sender_id'] = $_SESSION['s']['user']['userid']; - - //* call the onSubmit function of the parent class - parent::onSubmit(); - } - - //* Custom onShow Event handler - function onShow() - { - global $app, $conf; - - //* We do not want that messages get edited, so we switch to a - //* read only template if a existing message is loaded - if($this->id > 0) { - $app->tform->formDef['tabs']['message']['template'] = 'templates/support_message_view.htm'; - } - - //* call the onShow function of the parent class - parent::onShow(); - } - - function onAfterInsert() - { - global $app, $conf; - - if($_SESSION['s']['user']['typ'] == 'admin') { - $app->db->query("UPDATE support_message SET sys_userid = ".$this->dataRecord['recipient_id']." WHERE support_message_id = ".$this->id); - } - - } - -} - -//* Create the new page object -$page = new page_action(); - -//* Start the page rendering and action handling -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/help/support_message_list.php b/interface/ispconfig/interface/help/support_message_list.php deleted file mode 100644 index c03bcde77..000000000 --- a/interface/ispconfig/interface/help/support_message_list.php +++ /dev/null @@ -1,20 +0,0 @@ -auth->check_module_permissions('help'); - -//* Loading the class -$app->uses('listform_actions'); - -//* Optional limit -$app->listform_actions->SQLExtWhere = "recipient_id = ".$_SESSION['s']['user']['userid']; - -//* Start the form rendering and action ahndling -$app->listform_actions->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/help/templates/support_message_edit.htm b/interface/ispconfig/interface/help/templates/support_message_edit.htm deleted file mode 100644 index 305a47a2b..000000000 --- a/interface/ispconfig/interface/help/templates/support_message_edit.htm +++ /dev/null @@ -1,33 +0,0 @@ -

-

- -
- -
-
Message -
- - -
-
- - -
-
- - -
-
- - - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/help/templates/support_message_list.htm b/interface/ispconfig/interface/help/templates/support_message_list.htm deleted file mode 100644 index 02662ad29..000000000 --- a/interface/ispconfig/interface/help/templates/support_message_list.htm +++ /dev/null @@ -1,53 +0,0 @@ -

-

- -
- -
-
{tmpl_var name="toolsarea_head_txt"} -
- -
-
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
{tmpl_var name="sender_id"}{tmpl_var name="subject"} - -
-
-
- -
diff --git a/interface/ispconfig/interface/help/templates/support_message_view.htm b/interface/ispconfig/interface/help/templates/support_message_view.htm deleted file mode 100644 index 37cb1e4b3..000000000 --- a/interface/ispconfig/interface/help/templates/support_message_view.htm +++ /dev/null @@ -1,26 +0,0 @@ -

-

- -
- -
-
Message -
- - -
-
- - -
-
- - - -
- - -
-
- -
diff --git a/interface/ispconfig/interface/help/version.php b/interface/ispconfig/interface/help/version.php deleted file mode 100644 index 45120f800..000000000 --- a/interface/ispconfig/interface/help/version.php +++ /dev/null @@ -1,50 +0,0 @@ -auth->check_module_permissions('admin'); - -echo '

 

 

'.$app->lng('ISPConfig Version:').' '.ISPC_APP_VERSION.'

'; - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/index.htm b/interface/ispconfig/interface/index.htm deleted file mode 100644 index 39606dbb3..000000000 --- a/interface/ispconfig/interface/index.htm +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/interface/ispconfig/interface/index.php b/interface/ispconfig/interface/index.php deleted file mode 100644 index 9c312824e..000000000 --- a/interface/ispconfig/interface/index.php +++ /dev/null @@ -1,41 +0,0 @@ -uses('tpl'); -$app->tpl->newTemplate('main.tpl.htm'); - -$app->tpl_defaults(); -$app->tpl->pparse(); -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/js/scrigo.js.php b/interface/ispconfig/interface/js/scrigo.js.php deleted file mode 100644 index 1d468de5d..000000000 --- a/interface/ispconfig/interface/js/scrigo.js.php +++ /dev/null @@ -1,503 +0,0 @@ - - -redirect = ''; - -function loadContentfRefresh(pagename) { - var pageContentCallbackRefresh = { - success: function(o) { - document.getElementById('pageContent').innerHTML = o.responseText; - }, - failure: function(o) { - alert('Ajax Request was not successful.'+pagename); - } - } - - if(document.getElementById('refreshinterval').value > 0) { - var pageContentObject2 = YAHOO.util.Connect.asyncRequest('GET', pagename+"&refresh="+document.getElementById('refreshinterval').value, pageContentCallbackRefresh); - setTimeout( "loadContentRefresh('"+pagename+"&refresh="+document.getElementById('refreshinterval').value+"')", document.getElementById('refreshinterval').value*1000 ); - } -} - -function capp(module) { - var cappCallback = { - success: function(o) { - if(o.responseText != '') { - if(o.responseText.indexOf('HEADER_REDIRECT:') > -1) { - var parts = o.responseText.split(':'); - loadContent(parts[1]); - } else { - alert(o.responseText); - } - } - loadMenus(); - }, - failure: function(o) { - alert('Ajax Request was not successful.'); - } - } - var submitFormObj = YAHOO.util.Connect.asyncRequest('GET', 'capp.php?mod='+module, cappCallback); -} - -function submitLoginForm(formname) { - - var submitFormCallback = { - success: function(o) { - if(o.responseText.indexOf('HEADER_REDIRECT:') > -1) { - var parts = o.responseText.split(':'); - //alert(parts[1]); - loadContent(parts[1]); - //redirect = parts[1]; - //window.setTimeout('loadContent(redirect)', 1000); - } else if (o.responseText.indexOf('LOGIN_REDIRECT:') > -1) { - // Go to the login page - document.location.href = 'index.php'; - } else { - document.getElementById('pageContent').innerHTML = o.responseText; - } - loadMenus(); - }, - failure: function(o) { - alert('Ajax Request was not successful.'); - } - } - - //* Validate form. TODO: username and password with strip(); - var frm = document.getElementById(formname); - var userNameObj = frm.username; - if(userNameObj.value == ''){ - userNameObj.focus(); - return; - } - var passwordObj = frm.passwort; - if(passwordObj.value == ''){ - passwordObj.focus(); - return; - } - YAHOO.util.Connect.setForm(formname); - var submitFormObj = YAHOO.util.Connect.asyncRequest('POST', 'content.php', submitFormCallback); - /* - if(redirect != '') { - loadContent(redirect); - redirect = ''; - } - document.getElementById('footer').innerHTML = 'Powered by ISPConfig'; - */ - -} - -function submitForm(formname,target) { - - var submitFormCallback = { - success: function(o) { - if(o.responseText.indexOf('HEADER_REDIRECT:') > -1) { - var parts = o.responseText.split(':'); - //alert(parts[1]); - loadContent(parts[1]); - //redirect = parts[1]; - //window.setTimeout('loadContent(redirect)', 1000); - } else { - document.getElementById('pageContent').innerHTML = o.responseText; - } - }, - failure: function(o) { - var parts = o.responseText.split(':'); - alert('Ajax Request was not successful. '+parts[1]); - } - } - - YAHOO.util.Connect.setForm(formname); - var submitFormObj = YAHOO.util.Connect.asyncRequest('POST', target, submitFormCallback); - /* - if(redirect != '') { - loadContent(redirect); - redirect = ''; - } - */ -} - -function submitUploadForm(formname,target) { - - var submitFormCallback = { - success: function(o) { - if(o.responseText.indexOf('HEADER_REDIRECT:') > -1) { - var parts = o.responseText.split(':'); - //alert(parts[1]); - loadContent(parts[1]); - //redirect = parts[1]; - //window.setTimeout('loadContent(redirect)', 1000); - } else { - document.getElementById('pageContent').innerHTML = o.responseText; - } - }, - upload: function(o) { - if(o.responseText.indexOf('HEADER_REDIRECT:') > -1) { - var parts = o.responseText.split(':'); - //alert(parts[1]); - loadContent(parts[1]); - //redirect = parts[1]; - //window.setTimeout('loadContent(redirect)', 1000); - } else { - document.getElementById('pageContent').innerHTML = o.responseText; - } - }, - failure: function(o) { - alert('Ajax Request was not successful. 1'); - } - } - - YAHOO.util.Connect.setForm(formname,true); - var submitFormObj = YAHOO.util.Connect.asyncRequest('POST', target, submitFormCallback); - /* - if(redirect != '') { - loadContent(redirect); - redirect = ''; - } - */ -} - -function loadContent(pagename) { - var pageContentCallback2 = { - success: function(o) { - if(o.responseText.indexOf('HEADER_REDIRECT:') > -1) { - var parts = o.responseText.split(':'); - loadContent(parts[1]); - } else if (o.responseText.indexOf('URL_REDIRECT:') > -1) { - var newUrl= o.responseText.substr(o.responseText.indexOf('URL_REDIRECT:') + "URL_REDIRECT:".length); - document.location.href = newUrl; - } else { - document.getElementById('pageContent').innerHTML = o.responseText; - } - }, - failure: function(o) { - alert('Ajax Request was not successful.'); - } - } - - - var pageContentObject2 = YAHOO.util.Connect.asyncRequest('GET', pagename, pageContentCallback2); -} - - -function loadInitContent() { - - var pageContentCallback = { - success: function(o) { - if(o.responseText.indexOf('HEADER_REDIRECT:') > -1) { - var parts = o.responseText.split(":"); - loadContent(parts[1]); - } else { - document.getElementById('pageContent').innerHTML = o.responseText; - } - - /* - var items = document.getElementsByTagName('input'); - for(i=0;i,<\" ")) { - points += 1; - } - - if (points == 0) { - if (length >= 5 && length <=6) { - pass_result(1); - } else if (length >= 7 && length <=8) { - pass_result(2); - } else { - pass_result(3); - } - } else if (points == 1) { - if (length >= 5 && length <=6) { - pass_result(2); - } else if (length >= 7 && length <=10) { - pass_result(3); - } else { - pass_result(4); - } - } else if (points == 2) { - if (length >= 5 && length <=8) { - pass_result(3); - } else if (length >= 9 && length <=10) { - pass_result(4); - } else { - pass_result(5); - } - } else if (points == 3) { - if (length >= 5 && length <=6) { - pass_result(3); - } else if (length >= 7 && length <=8) { - pass_result(4); - } else { - pass_result(5); - } - } else if (points >= 4) { - if (length >= 5 && length <=6) { - pass_result(4); - } else { - pass_result(5); - } - } -} - - - -function pass_result(points, message) { - if (points == 0) { - width = 10; - } else { - width = points*20; - } - document.getElementById("passBar").innerHTML = '
'; - document.getElementById("passText").innerHTML = pass_messages[points]['text']; -} -function pass_contains(pass, check) { - for (i = 0; i < pass.length; i++) { - if (check.indexOf(pass.charAt(i)) > -1) { - return true; - } - } - return false; -} - -function addAdditionalTemplate(){ - var tpl_add = document.getElementById('template_additional').value; - - var tpl_list = document.getElementById('template_additional_list').innerHTML; - var addTemplate = document.getElementById('tpl_add_select').value.split('|',2); - var addTplId = addTemplate[0]; - var addTplText = addTemplate[1]; - if(addTplId > 0) { - var newVal = tpl_add + '/' + addTplId + '/'; - newVal = newVal.replace('//', '/'); - var newList = tpl_list + '
' + addTplText; - newList = newList.replace('

', '
'); - document.getElementById('template_additional').value = newVal; - document.getElementById('template_additional_list').innerHTML = newList; - alert('additional template ' + addTplText + ' added to customer'); - } else { - alert('no additional template selcted'); - } -} - -function delAdditionalTemplate(){ - var tpl_add = document.getElementById('template_additional').value; - if(tpl_add != '') { - var tpl_list = document.getElementById('template_additional_list').innerHTML; - var addTemplate = document.getElementById('tpl_add_select').value.split('|',2); - var addTplId = addTemplate[0]; - var addTplText = addTemplate[1]; - var newVal = tpl_add; - newVal = newVal.replace(addTplId, ''); - newVal = newVal.replace('//', '/'); - var newList = tpl_list.replace(addTplText, ''); - newList = newList.replace('

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

Usage: var myAnim = new YAHOO.util.Anim(el, { width: { from: 10, to: 100 } }, 1, YAHOO.util.Easing.easeOut);

- * @class Anim - * @namespace YAHOO.util - * @requires YAHOO.util.AnimMgr - * @requires YAHOO.util.Easing - * @requires YAHOO.util.Dom - * @requires YAHOO.util.Event - * @requires YAHOO.util.CustomEvent - * @constructor - * @param {String | HTMLElement} el Reference to the element that will be animated - * @param {Object} attributes The attribute(s) to be animated. - * Each attribute is an object with at minimum a "to" or "by" member defined. - * Additional optional members are "from" (defaults to current value), "units" (defaults to "px"). - * All attribute names use camelCase. - * @param {Number} duration (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based - * @param {Function} method (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method) - */ - -YAHOO.util.Anim = function(el, attributes, duration, method) { - if (el) { - this.init(el, attributes, duration, method); - } -}; - -YAHOO.util.Anim.prototype = { - /** - * Provides a readable name for the Anim instance. - * @method toString - * @return {String} - */ - toString: function() { - var el = this.getEl(); - var id = el.id || el.tagName; - return ("Anim " + id); - }, - - patterns: { // cached for performance - noNegatives: /width|height|opacity|padding/i, // keep at zero or above - offsetAttribute: /^((width|height)|(top|left))$/, // use offsetValue as default - defaultUnit: /width|height|top$|bottom$|left$|right$/i, // use 'px' by default - offsetUnit: /\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i // IE may return these, so convert these to offset - }, - - /** - * Returns the value computed by the animation's "method". - * @method doMethod - * @param {String} attr The name of the attribute. - * @param {Number} start The value this attribute should start from for this animation. - * @param {Number} end The value this attribute should end at for this animation. - * @return {Number} The Value to be applied to the attribute. - */ - doMethod: function(attr, start, end) { - return this.method(this.currentFrame, start, end - start, this.totalFrames); - }, - - /** - * Applies a value to an attribute. - * @method setAttribute - * @param {String} attr The name of the attribute. - * @param {Number} val The value to be applied to the attribute. - * @param {String} unit The unit ('px', '%', etc.) of the value. - */ - setAttribute: function(attr, val, unit) { - if ( this.patterns.noNegatives.test(attr) ) { - val = (val > 0) ? val : 0; - } - - YAHOO.util.Dom.setStyle(this.getEl(), attr, val + unit); - }, - - /** - * Returns current value of the attribute. - * @method getAttribute - * @param {String} attr The name of the attribute. - * @return {Number} val The current value of the attribute. - */ - getAttribute: function(attr) { - var el = this.getEl(); - var val = YAHOO.util.Dom.getStyle(el, attr); - - if (val !== 'auto' && !this.patterns.offsetUnit.test(val)) { - return parseFloat(val); - } - - var a = this.patterns.offsetAttribute.exec(attr) || []; - var pos = !!( a[3] ); // top or left - var box = !!( a[2] ); // width or height - - // use offsets for width/height and abs pos top/left - if ( box || (YAHOO.util.Dom.getStyle(el, 'position') == 'absolute' && pos) ) { - val = el['offset' + a[0].charAt(0).toUpperCase() + a[0].substr(1)]; - } else { // default to zero for other 'auto' - val = 0; - } - - return val; - }, - - /** - * Returns the unit to use when none is supplied. - * @method getDefaultUnit - * @param {attr} attr The name of the attribute. - * @return {String} The default unit to be used. - */ - getDefaultUnit: function(attr) { - if ( this.patterns.defaultUnit.test(attr) ) { - return 'px'; - } - - return ''; - }, - - /** - * Sets the actual values to be used during the animation. Should only be needed for subclass use. - * @method setRuntimeAttribute - * @param {Object} attr The attribute object - * @private - */ - setRuntimeAttribute: function(attr) { - var start; - var end; - var attributes = this.attributes; - - this.runtimeAttributes[attr] = {}; - - var isset = function(prop) { - return (typeof prop !== 'undefined'); - }; - - if ( !isset(attributes[attr]['to']) && !isset(attributes[attr]['by']) ) { - return false; // note return; nothing to animate to - } - - start = ( isset(attributes[attr]['from']) ) ? attributes[attr]['from'] : this.getAttribute(attr); - - // To beats by, per SMIL 2.1 spec - if ( isset(attributes[attr]['to']) ) { - end = attributes[attr]['to']; - } else if ( isset(attributes[attr]['by']) ) { - if (start.constructor == Array) { - end = []; - for (var i = 0, len = start.length; i < len; ++i) { - end[i] = start[i] + attributes[attr]['by'][i]; - } - } else { - end = start + attributes[attr]['by']; - } - } - - this.runtimeAttributes[attr].start = start; - this.runtimeAttributes[attr].end = end; - - // set units if needed - this.runtimeAttributes[attr].unit = ( isset(attributes[attr].unit) ) ? attributes[attr]['unit'] : this.getDefaultUnit(attr); - }, - - /** - * Constructor for Anim instance. - * @method init - * @param {String | HTMLElement} el Reference to the element that will be animated - * @param {Object} attributes The attribute(s) to be animated. - * Each attribute is an object with at minimum a "to" or "by" member defined. - * Additional optional members are "from" (defaults to current value), "units" (defaults to "px"). - * All attribute names use camelCase. - * @param {Number} duration (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based - * @param {Function} method (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method) - */ - init: function(el, attributes, duration, method) { - /** - * Whether or not the animation is running. - * @property isAnimated - * @private - * @type Boolean - */ - var isAnimated = false; - - /** - * A Date object that is created when the animation begins. - * @property startTime - * @private - * @type Date - */ - var startTime = null; - - /** - * The number of frames this animation was able to execute. - * @property actualFrames - * @private - * @type Int - */ - var actualFrames = 0; - - /** - * The element to be animated. - * @property el - * @private - * @type HTMLElement - */ - el = YAHOO.util.Dom.get(el); - - /** - * The collection of attributes to be animated. - * Each attribute must have at least a "to" or "by" defined in order to animate. - * If "to" is supplied, the animation will end with the attribute at that value. - * If "by" is supplied, the animation will end at that value plus its starting value. - * If both are supplied, "to" is used, and "by" is ignored. - * Optional additional member include "from" (the value the attribute should start animating from, defaults to current value), and "unit" (the units to apply to the values). - * @property attributes - * @type Object - */ - this.attributes = attributes || {}; - - /** - * The length of the animation. Defaults to "1" (second). - * @property duration - * @type Number - */ - this.duration = duration || 1; - - /** - * The method that will provide values to the attribute(s) during the animation. - * Defaults to "YAHOO.util.Easing.easeNone". - * @property method - * @type Function - */ - this.method = method || YAHOO.util.Easing.easeNone; - - /** - * Whether or not the duration should be treated as seconds. - * Defaults to true. - * @property useSeconds - * @type Boolean - */ - this.useSeconds = true; // default to seconds - - /** - * The location of the current animation on the timeline. - * In time-based animations, this is used by AnimMgr to ensure the animation finishes on time. - * @property currentFrame - * @type Int - */ - this.currentFrame = 0; - - /** - * The total number of frames to be executed. - * In time-based animations, this is used by AnimMgr to ensure the animation finishes on time. - * @property totalFrames - * @type Int - */ - this.totalFrames = YAHOO.util.AnimMgr.fps; - - - /** - * Returns a reference to the animated element. - * @method getEl - * @return {HTMLElement} - */ - this.getEl = function() { return el; }; - - /** - * Checks whether the element is currently animated. - * @method isAnimated - * @return {Boolean} current value of isAnimated. - */ - this.isAnimated = function() { - return isAnimated; - }; - - /** - * Returns the animation start time. - * @method getStartTime - * @return {Date} current value of startTime. - */ - this.getStartTime = function() { - return startTime; - }; - - this.runtimeAttributes = {}; - - var logger = {}; - logger.log = function() {YAHOO.log.apply(window, arguments)}; - - logger.log('creating new instance of ' + this); - - /** - * Starts the animation by registering it with the animation manager. - * @method animate - */ - this.animate = function() { - if ( this.isAnimated() ) { - return false; - } - - this.currentFrame = 0; - - this.totalFrames = ( this.useSeconds ) ? Math.ceil(YAHOO.util.AnimMgr.fps * this.duration) : this.duration; - - YAHOO.util.AnimMgr.registerElement(this); - }; - - /** - * Stops the animation. Normally called by AnimMgr when animation completes. - * @method stop - * @param {Boolean} finish (optional) If true, animation will jump to final frame. - */ - this.stop = function(finish) { - if (finish) { - this.currentFrame = this.totalFrames; - this._onTween.fire(); - } - YAHOO.util.AnimMgr.stop(this); - }; - - var onStart = function() { - this.onStart.fire(); - - this.runtimeAttributes = {}; - for (var attr in this.attributes) { - this.setRuntimeAttribute(attr); - } - - isAnimated = true; - actualFrames = 0; - startTime = new Date(); - }; - - /** - * Feeds the starting and ending values for each animated attribute to doMethod once per frame, then applies the resulting value to the attribute(s). - * @private - */ - - var onTween = function() { - var data = { - duration: new Date() - this.getStartTime(), - currentFrame: this.currentFrame - }; - - data.toString = function() { - return ( - 'duration: ' + data.duration + - ', currentFrame: ' + data.currentFrame - ); - }; - - this.onTween.fire(data); - - var runtimeAttributes = this.runtimeAttributes; - - for (var attr in runtimeAttributes) { - this.setAttribute(attr, this.doMethod(attr, runtimeAttributes[attr].start, runtimeAttributes[attr].end), runtimeAttributes[attr].unit); - } - - actualFrames += 1; - }; - - var onComplete = function() { - var actual_duration = (new Date() - startTime) / 1000 ; - - var data = { - duration: actual_duration, - frames: actualFrames, - fps: actualFrames / actual_duration - }; - - data.toString = function() { - return ( - 'duration: ' + data.duration + - ', frames: ' + data.frames + - ', fps: ' + data.fps - ); - }; - - isAnimated = false; - actualFrames = 0; - this.onComplete.fire(data); - }; - - /** - * Custom event that fires after onStart, useful in subclassing - * @private - */ - this._onStart = new YAHOO.util.CustomEvent('_start', this, true); - - /** - * Custom event that fires when animation begins - * Listen via subscribe method (e.g. myAnim.onStart.subscribe(someFunction) - * @event onStart - */ - this.onStart = new YAHOO.util.CustomEvent('start', this); - - /** - * Custom event that fires between each frame - * Listen via subscribe method (e.g. myAnim.onTween.subscribe(someFunction) - * @event onTween - */ - this.onTween = new YAHOO.util.CustomEvent('tween', this); - - /** - * Custom event that fires after onTween - * @private - */ - this._onTween = new YAHOO.util.CustomEvent('_tween', this, true); - - /** - * Custom event that fires when animation ends - * Listen via subscribe method (e.g. myAnim.onComplete.subscribe(someFunction) - * @event onComplete - */ - this.onComplete = new YAHOO.util.CustomEvent('complete', this); - /** - * Custom event that fires after onComplete - * @private - */ - this._onComplete = new YAHOO.util.CustomEvent('_complete', this, true); - - this._onStart.subscribe(onStart); - this._onTween.subscribe(onTween); - this._onComplete.subscribe(onComplete); - } -}; - -/** - * Handles animation queueing and threading. - * Used by Anim and subclasses. - * @class AnimMgr - * @namespace YAHOO.util - */ -YAHOO.util.AnimMgr = new function() { - /** - * Reference to the animation Interval. - * @property thread - * @private - * @type Int - */ - var thread = null; - - /** - * The current queue of registered animation objects. - * @property queue - * @private - * @type Array - */ - var queue = []; - - /** - * The number of active animations. - * @property tweenCount - * @private - * @type Int - */ - var tweenCount = 0; - - /** - * Base frame rate (frames per second). - * Arbitrarily high for better x-browser calibration (slower browsers drop more frames). - * @property fps - * @type Int - * - */ - this.fps = 1000; - - /** - * Interval delay in milliseconds, defaults to fastest possible. - * @property delay - * @type Int - * - */ - this.delay = 1; - - /** - * Adds an animation instance to the animation queue. - * All animation instances must be registered in order to animate. - * @method registerElement - * @param {object} tween The Anim instance to be be registered - */ - this.registerElement = function(tween) { - queue[queue.length] = tween; - tweenCount += 1; - tween._onStart.fire(); - this.start(); - }; - - /** - * removes an animation instance from the animation queue. - * All animation instances must be registered in order to animate. - * @method unRegister - * @param {object} tween The Anim instance to be be registered - * @param {Int} index The index of the Anim instance - * @private - */ - this.unRegister = function(tween, index) { - tween._onComplete.fire(); - index = index || getIndex(tween); - if (index != -1) { - queue.splice(index, 1); - } - - tweenCount -= 1; - if (tweenCount <= 0) { - this.stop(); - } - }; - - /** - * Starts the animation thread. - * Only one thread can run at a time. - * @method start - */ - this.start = function() { - if (thread === null) { - thread = setInterval(this.run, this.delay); - } - }; - - /** - * Stops the animation thread or a specific animation instance. - * @method stop - * @param {object} tween A specific Anim instance to stop (optional) - * If no instance given, Manager stops thread and all animations. - */ - this.stop = function(tween) { - if (!tween) { - clearInterval(thread); - - for (var i = 0, len = queue.length; i < len; ++i) { - if ( queue[0].isAnimated() ) { - this.unRegister(queue[0], 0); - } - } - - queue = []; - thread = null; - tweenCount = 0; - } - else { - this.unRegister(tween); - } - }; - - /** - * Called per Interval to handle each animation frame. - * @method run - */ - this.run = function() { - for (var i = 0, len = queue.length; i < len; ++i) { - var tween = queue[i]; - if ( !tween || !tween.isAnimated() ) { continue; } - - if (tween.currentFrame < tween.totalFrames || tween.totalFrames === null) - { - tween.currentFrame += 1; - - if (tween.useSeconds) { - correctFrame(tween); - } - tween._onTween.fire(); - } - else { YAHOO.util.AnimMgr.stop(tween, i); } - } - }; - - var getIndex = function(anim) { - for (var i = 0, len = queue.length; i < len; ++i) { - if (queue[i] == anim) { - return i; // note return; - } - } - return -1; - }; - - /** - * On the fly frame correction to keep animation on time. - * @method correctFrame - * @private - * @param {Object} tween The Anim instance being corrected. - */ - var correctFrame = function(tween) { - var frames = tween.totalFrames; - var frame = tween.currentFrame; - var expected = (tween.currentFrame * tween.duration * 1000 / tween.totalFrames); - var elapsed = (new Date() - tween.getStartTime()); - var tweak = 0; - - if (elapsed < tween.duration * 1000) { // check if falling behind - tweak = Math.round((elapsed / expected - 1) * tween.currentFrame); - } else { // went over duration, so jump to end - tweak = frames - (frame + 1); - } - if (tweak > 0 && isFinite(tweak)) { // adjust if needed - if (tween.currentFrame + tweak >= frames) {// dont go past last frame - tweak = frames - (frame + 1); - } - - tween.currentFrame += tweak; - } - }; -}; -/** - * Used to calculate Bezier splines for any number of control points. - * @class Bezier - * @namespace YAHOO.util - * - */ -YAHOO.util.Bezier = new function() { - /** - * Get the current position of the animated element based on t. - * Each point is an array of "x" and "y" values (0 = x, 1 = y) - * At least 2 points are required (start and end). - * First point is start. Last point is end. - * Additional control points are optional. - * @method getPosition - * @param {Array} points An array containing Bezier points - * @param {Number} t A number between 0 and 1 which is the basis for determining current position - * @return {Array} An array containing int x and y member data - */ - this.getPosition = function(points, t) { - var n = points.length; - var tmp = []; - - for (var i = 0; i < n; ++i){ - tmp[i] = [points[i][0], points[i][1]]; // save input - } - - for (var j = 1; j < n; ++j) { - for (i = 0; i < n - j; ++i) { - tmp[i][0] = (1 - t) * tmp[i][0] + t * tmp[parseInt(i + 1, 10)][0]; - tmp[i][1] = (1 - t) * tmp[i][1] + t * tmp[parseInt(i + 1, 10)][1]; - } - } - - return [ tmp[0][0], tmp[0][1] ]; - - }; -}; -(function() { -/** - * Anim subclass for color transitions. - *

Usage: var myAnim = new Y.ColorAnim(el, { backgroundColor: { from: '#FF0000', to: '#FFFFFF' } }, 1, Y.Easing.easeOut); Color values can be specified with either 112233, #112233, - * [255,255,255], or rgb(255,255,255)

- * @class ColorAnim - * @namespace YAHOO.util - * @requires YAHOO.util.Anim - * @requires YAHOO.util.AnimMgr - * @requires YAHOO.util.Easing - * @requires YAHOO.util.Bezier - * @requires YAHOO.util.Dom - * @requires YAHOO.util.Event - * @constructor - * @extends YAHOO.util.Anim - * @param {HTMLElement | String} el Reference to the element that will be animated - * @param {Object} attributes The attribute(s) to be animated. - * Each attribute is an object with at minimum a "to" or "by" member defined. - * Additional optional members are "from" (defaults to current value), "units" (defaults to "px"). - * All attribute names use camelCase. - * @param {Number} duration (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based - * @param {Function} method (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method) - */ - YAHOO.util.ColorAnim = function(el, attributes, duration, method) { - YAHOO.util.ColorAnim.superclass.constructor.call(this, el, attributes, duration, method); - }; - - YAHOO.extend(YAHOO.util.ColorAnim, YAHOO.util.Anim); - - // shorthand - var Y = YAHOO.util; - var superclass = Y.ColorAnim.superclass; - var proto = Y.ColorAnim.prototype; - - proto.toString = function() { - var el = this.getEl(); - var id = el.id || el.tagName; - return ("ColorAnim " + id); - }; - - proto.patterns.color = /color$/i; - proto.patterns.rgb = /^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i; - proto.patterns.hex = /^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i; - proto.patterns.hex3 = /^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i; - proto.patterns.transparent = /^transparent|rgba\(0, 0, 0, 0\)$/; // need rgba for safari - - /** - * Attempts to parse the given string and return a 3-tuple. - * @method parseColor - * @param {String} s The string to parse. - * @return {Array} The 3-tuple of rgb values. - */ - proto.parseColor = function(s) { - if (s.length == 3) { return s; } - - var c = this.patterns.hex.exec(s); - if (c && c.length == 4) { - return [ parseInt(c[1], 16), parseInt(c[2], 16), parseInt(c[3], 16) ]; - } - - c = this.patterns.rgb.exec(s); - if (c && c.length == 4) { - return [ parseInt(c[1], 10), parseInt(c[2], 10), parseInt(c[3], 10) ]; - } - - c = this.patterns.hex3.exec(s); - if (c && c.length == 4) { - return [ parseInt(c[1] + c[1], 16), parseInt(c[2] + c[2], 16), parseInt(c[3] + c[3], 16) ]; - } - - return null; - }; - - proto.getAttribute = function(attr) { - var el = this.getEl(); - if ( this.patterns.color.test(attr) ) { - var val = YAHOO.util.Dom.getStyle(el, attr); - - if (this.patterns.transparent.test(val)) { // bgcolor default - var parent = el.parentNode; // try and get from an ancestor - val = Y.Dom.getStyle(parent, attr); - - while (parent && this.patterns.transparent.test(val)) { - parent = parent.parentNode; - val = Y.Dom.getStyle(parent, attr); - if (parent.tagName.toUpperCase() == 'HTML') { - val = '#fff'; - } - } - } - } else { - val = superclass.getAttribute.call(this, attr); - } - - return val; - }; - - proto.doMethod = function(attr, start, end) { - var val; - - if ( this.patterns.color.test(attr) ) { - val = []; - for (var i = 0, len = start.length; i < len; ++i) { - val[i] = superclass.doMethod.call(this, attr, start[i], end[i]); - } - - val = 'rgb('+Math.floor(val[0])+','+Math.floor(val[1])+','+Math.floor(val[2])+')'; - } - else { - val = superclass.doMethod.call(this, attr, start, end); - } - - return val; - }; - - proto.setRuntimeAttribute = function(attr) { - superclass.setRuntimeAttribute.call(this, attr); - - if ( this.patterns.color.test(attr) ) { - var attributes = this.attributes; - var start = this.parseColor(this.runtimeAttributes[attr].start); - var end = this.parseColor(this.runtimeAttributes[attr].end); - // fix colors if going "by" - if ( typeof attributes[attr]['to'] === 'undefined' && typeof attributes[attr]['by'] !== 'undefined' ) { - end = this.parseColor(attributes[attr].by); - - for (var i = 0, len = start.length; i < len; ++i) { - end[i] = start[i] + end[i]; - } - } - - this.runtimeAttributes[attr].start = start; - this.runtimeAttributes[attr].end = end; - } - }; -})(); -/* -TERMS OF USE - EASING EQUATIONS -Open source under the BSD License. -Copyright 2001 Robert Penner All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - * Neither the name of the author nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - * Singleton that determines how an animation proceeds from start to end. - * @class Easing - * @namespace YAHOO.util -*/ - -YAHOO.util.Easing = { - - /** - * Uniform speed between points. - * @method easeNone - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - easeNone: function (t, b, c, d) { - return c*t/d + b; - }, - - /** - * Begins slowly and accelerates towards end. (quadratic) - * @method easeIn - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - easeIn: function (t, b, c, d) { - return c*(t/=d)*t + b; - }, - - /** - * Begins quickly and decelerates towards end. (quadratic) - * @method easeOut - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - easeOut: function (t, b, c, d) { - return -c *(t/=d)*(t-2) + b; - }, - - /** - * Begins slowly and decelerates towards end. (quadratic) - * @method easeBoth - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - easeBoth: function (t, b, c, d) { - if ((t/=d/2) < 1) { - return c/2*t*t + b; - } - - return -c/2 * ((--t)*(t-2) - 1) + b; - }, - - /** - * Begins slowly and accelerates towards end. (quartic) - * @method easeInStrong - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - easeInStrong: function (t, b, c, d) { - return c*(t/=d)*t*t*t + b; - }, - - /** - * Begins quickly and decelerates towards end. (quartic) - * @method easeOutStrong - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - easeOutStrong: function (t, b, c, d) { - return -c * ((t=t/d-1)*t*t*t - 1) + b; - }, - - /** - * Begins slowly and decelerates towards end. (quartic) - * @method easeBothStrong - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - easeBothStrong: function (t, b, c, d) { - if ((t/=d/2) < 1) { - return c/2*t*t*t*t + b; - } - - return -c/2 * ((t-=2)*t*t*t - 2) + b; - }, - - /** - * Snap in elastic effect. - * @method elasticIn - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @param {Number} a Amplitude (optional) - * @param {Number} p Period (optional) - * @return {Number} The computed value for the current animation frame - */ - - elasticIn: function (t, b, c, d, a, p) { - if (t == 0) { - return b; - } - if ( (t /= d) == 1 ) { - return b+c; - } - if (!p) { - p=d*.3; - } - - if (!a || a < Math.abs(c)) { - a = c; - var s = p/4; - } - else { - var s = p/(2*Math.PI) * Math.asin (c/a); - } - - return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; - }, - - /** - * Snap out elastic effect. - * @method elasticOut - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @param {Number} a Amplitude (optional) - * @param {Number} p Period (optional) - * @return {Number} The computed value for the current animation frame - */ - elasticOut: function (t, b, c, d, a, p) { - if (t == 0) { - return b; - } - if ( (t /= d) == 1 ) { - return b+c; - } - if (!p) { - p=d*.3; - } - - if (!a || a < Math.abs(c)) { - a = c; - var s = p / 4; - } - else { - var s = p/(2*Math.PI) * Math.asin (c/a); - } - - return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; - }, - - /** - * Snap both elastic effect. - * @method elasticBoth - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @param {Number} a Amplitude (optional) - * @param {Number} p Period (optional) - * @return {Number} The computed value for the current animation frame - */ - elasticBoth: function (t, b, c, d, a, p) { - if (t == 0) { - return b; - } - - if ( (t /= d/2) == 2 ) { - return b+c; - } - - if (!p) { - p = d*(.3*1.5); - } - - if ( !a || a < Math.abs(c) ) { - a = c; - var s = p/4; - } - else { - var s = p/(2*Math.PI) * Math.asin (c/a); - } - - if (t < 1) { - return -.5*(a*Math.pow(2,10*(t-=1)) * - Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; - } - return a*Math.pow(2,-10*(t-=1)) * - Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; - }, - - - /** - * Backtracks slightly, then reverses direction and moves to end. - * @method backIn - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @param {Number} s Overshoot (optional) - * @return {Number} The computed value for the current animation frame - */ - backIn: function (t, b, c, d, s) { - if (typeof s == 'undefined') { - s = 1.70158; - } - return c*(t/=d)*t*((s+1)*t - s) + b; - }, - - /** - * Overshoots end, then reverses and comes back to end. - * @method backOut - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @param {Number} s Overshoot (optional) - * @return {Number} The computed value for the current animation frame - */ - backOut: function (t, b, c, d, s) { - if (typeof s == 'undefined') { - s = 1.70158; - } - return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; - }, - - /** - * Backtracks slightly, then reverses direction, overshoots end, - * then reverses and comes back to end. - * @method backBoth - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @param {Number} s Overshoot (optional) - * @return {Number} The computed value for the current animation frame - */ - backBoth: function (t, b, c, d, s) { - if (typeof s == 'undefined') { - s = 1.70158; - } - - if ((t /= d/2 ) < 1) { - return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; - } - return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; - }, - - /** - * Bounce off of start. - * @method bounceIn - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - bounceIn: function (t, b, c, d) { - return c - YAHOO.util.Easing.bounceOut(d-t, 0, c, d) + b; - }, - - /** - * Bounces off end. - * @method bounceOut - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - bounceOut: function (t, b, c, d) { - if ((t/=d) < (1/2.75)) { - return c*(7.5625*t*t) + b; - } else if (t < (2/2.75)) { - return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; - } else if (t < (2.5/2.75)) { - return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; - } - return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; - }, - - /** - * Bounces off start and end. - * @method bounceBoth - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - bounceBoth: function (t, b, c, d) { - if (t < d/2) { - return YAHOO.util.Easing.bounceIn(t*2, 0, c, d) * .5 + b; - } - return YAHOO.util.Easing.bounceOut(t*2-d, 0, c, d) * .5 + c*.5 + b; - } -}; - -(function() { -/** - * Anim subclass for moving elements along a path defined by the "points" - * member of "attributes". All "points" are arrays with x, y coordinates. - *

Usage: var myAnim = new YAHOO.util.Motion(el, { points: { to: [800, 800] } }, 1, YAHOO.util.Easing.easeOut);

- * @class Motion - * @namespace YAHOO.util - * @requires YAHOO.util.Anim - * @requires YAHOO.util.AnimMgr - * @requires YAHOO.util.Easing - * @requires YAHOO.util.Bezier - * @requires YAHOO.util.Dom - * @requires YAHOO.util.Event - * @requires YAHOO.util.CustomEvent - * @constructor - * @extends YAHOO.util.Anim - * @param {String | HTMLElement} el Reference to the element that will be animated - * @param {Object} attributes The attribute(s) to be animated. - * Each attribute is an object with at minimum a "to" or "by" member defined. - * Additional optional members are "from" (defaults to current value), "units" (defaults to "px"). - * All attribute names use camelCase. - * @param {Number} duration (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based - * @param {Function} method (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method) - */ - YAHOO.util.Motion = function(el, attributes, duration, method) { - if (el) { // dont break existing subclasses not using YAHOO.extend - YAHOO.util.Motion.superclass.constructor.call(this, el, attributes, duration, method); - } - }; - - YAHOO.extend(YAHOO.util.Motion, YAHOO.util.ColorAnim); - - // shorthand - var Y = YAHOO.util; - var superclass = Y.Motion.superclass; - var proto = Y.Motion.prototype; - - proto.toString = function() { - var el = this.getEl(); - var id = el.id || el.tagName; - return ("Motion " + id); - }; - - proto.patterns.points = /^points$/i; - - proto.setAttribute = function(attr, val, unit) { - if ( this.patterns.points.test(attr) ) { - unit = unit || 'px'; - superclass.setAttribute.call(this, 'left', val[0], unit); - superclass.setAttribute.call(this, 'top', val[1], unit); - } else { - superclass.setAttribute.call(this, attr, val, unit); - } - }; - - proto.getAttribute = function(attr) { - if ( this.patterns.points.test(attr) ) { - var val = [ - superclass.getAttribute.call(this, 'left'), - superclass.getAttribute.call(this, 'top') - ]; - } else { - val = superclass.getAttribute.call(this, attr); - } - - return val; - }; - - proto.doMethod = function(attr, start, end) { - var val = null; - - if ( this.patterns.points.test(attr) ) { - var t = this.method(this.currentFrame, 0, 100, this.totalFrames) / 100; - val = Y.Bezier.getPosition(this.runtimeAttributes[attr], t); - } else { - val = superclass.doMethod.call(this, attr, start, end); - } - return val; - }; - - proto.setRuntimeAttribute = function(attr) { - if ( this.patterns.points.test(attr) ) { - var el = this.getEl(); - var attributes = this.attributes; - var start; - var control = attributes['points']['control'] || []; - var end; - var i, len; - - if (control.length > 0 && !(control[0] instanceof Array) ) { // could be single point or array of points - control = [control]; - } else { // break reference to attributes.points.control - var tmp = []; - for (i = 0, len = control.length; i< len; ++i) { - tmp[i] = control[i]; - } - control = tmp; - } - - if (Y.Dom.getStyle(el, 'position') == 'static') { // default to relative - Y.Dom.setStyle(el, 'position', 'relative'); - } - - if ( isset(attributes['points']['from']) ) { - Y.Dom.setXY(el, attributes['points']['from']); // set position to from point - } - else { Y.Dom.setXY( el, Y.Dom.getXY(el) ); } // set it to current position - - start = this.getAttribute('points'); // get actual top & left - - // TO beats BY, per SMIL 2.1 spec - if ( isset(attributes['points']['to']) ) { - end = translateValues.call(this, attributes['points']['to'], start); - - var pageXY = Y.Dom.getXY(this.getEl()); - for (i = 0, len = control.length; i < len; ++i) { - control[i] = translateValues.call(this, control[i], start); - } - - - } else if ( isset(attributes['points']['by']) ) { - end = [ start[0] + attributes['points']['by'][0], start[1] + attributes['points']['by'][1] ]; - - for (i = 0, len = control.length; i < len; ++i) { - control[i] = [ start[0] + control[i][0], start[1] + control[i][1] ]; - } - } - - this.runtimeAttributes[attr] = [start]; - - if (control.length > 0) { - this.runtimeAttributes[attr] = this.runtimeAttributes[attr].concat(control); - } - - this.runtimeAttributes[attr][this.runtimeAttributes[attr].length] = end; - } - else { - superclass.setRuntimeAttribute.call(this, attr); - } - }; - - var translateValues = function(val, start) { - var pageXY = Y.Dom.getXY(this.getEl()); - val = [ val[0] - pageXY[0] + start[0], val[1] - pageXY[1] + start[1] ]; - - return val; - }; - - var isset = function(prop) { - return (typeof prop !== 'undefined'); - }; -})(); -(function() { -/** - * Anim subclass for scrolling elements to a position defined by the "scroll" - * member of "attributes". All "scroll" members are arrays with x, y scroll positions. - *

Usage: var myAnim = new YAHOO.util.Scroll(el, { scroll: { to: [0, 800] } }, 1, YAHOO.util.Easing.easeOut);

- * @class Scroll - * @namespace YAHOO.util - * @requires YAHOO.util.Anim - * @requires YAHOO.util.AnimMgr - * @requires YAHOO.util.Easing - * @requires YAHOO.util.Bezier - * @requires YAHOO.util.Dom - * @requires YAHOO.util.Event - * @requires YAHOO.util.CustomEvent - * @extends YAHOO.util.Anim - * @constructor - * @param {String or HTMLElement} el Reference to the element that will be animated - * @param {Object} attributes The attribute(s) to be animated. - * Each attribute is an object with at minimum a "to" or "by" member defined. - * Additional optional members are "from" (defaults to current value), "units" (defaults to "px"). - * All attribute names use camelCase. - * @param {Number} duration (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based - * @param {Function} method (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method) - */ - YAHOO.util.Scroll = function(el, attributes, duration, method) { - if (el) { // dont break existing subclasses not using YAHOO.extend - YAHOO.util.Scroll.superclass.constructor.call(this, el, attributes, duration, method); - } - }; - - YAHOO.extend(YAHOO.util.Scroll, YAHOO.util.ColorAnim); - - // shorthand - var Y = YAHOO.util; - var superclass = Y.Scroll.superclass; - var proto = Y.Scroll.prototype; - - proto.toString = function() { - var el = this.getEl(); - var id = el.id || el.tagName; - return ("Scroll " + id); - }; - - proto.doMethod = function(attr, start, end) { - var val = null; - - if (attr == 'scroll') { - val = [ - this.method(this.currentFrame, start[0], end[0] - start[0], this.totalFrames), - this.method(this.currentFrame, start[1], end[1] - start[1], this.totalFrames) - ]; - - } else { - val = superclass.doMethod.call(this, attr, start, end); - } - return val; - }; - - proto.getAttribute = function(attr) { - var val = null; - var el = this.getEl(); - - if (attr == 'scroll') { - val = [ el.scrollLeft, el.scrollTop ]; - } else { - val = superclass.getAttribute.call(this, attr); - } - - return val; - }; - - proto.setAttribute = function(attr, val, unit) { - var el = this.getEl(); - - if (attr == 'scroll') { - el.scrollLeft = val[0]; - el.scrollTop = val[1]; - } else { - superclass.setAttribute.call(this, attr, val, unit); - } - }; -})(); -YAHOO.register("animation", YAHOO.util.Anim, {version: "2.2.0", build: "127"}); diff --git a/interface/ispconfig/interface/js/yui/animation/animation-min.js b/interface/ispconfig/interface/js/yui/animation/animation-min.js deleted file mode 100644 index ba5a9b15d..000000000 --- a/interface/ispconfig/interface/js/yui/animation/animation-min.js +++ /dev/null @@ -1,75 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ - -YAHOO.util.Anim=function(el,attributes,duration,method){if(el){this.init(el,attributes,duration,method);}};YAHOO.util.Anim.prototype={toString:function(){var el=this.getEl();var id=el.id||el.tagName;return("Anim "+id);},patterns:{noNegatives:/width|height|opacity|padding/i,offsetAttribute:/^((width|height)|(top|left))$/,defaultUnit:/width|height|top$|bottom$|left$|right$/i,offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i},doMethod:function(attr,start,end){return this.method(this.currentFrame,start,end-start,this.totalFrames);},setAttribute:function(attr,val,unit){if(this.patterns.noNegatives.test(attr)){val=(val>0)?val:0;} -YAHOO.util.Dom.setStyle(this.getEl(),attr,val+unit);},getAttribute:function(attr){var el=this.getEl();var val=YAHOO.util.Dom.getStyle(el,attr);if(val!=='auto'&&!this.patterns.offsetUnit.test(val)){return parseFloat(val);} -var a=this.patterns.offsetAttribute.exec(attr)||[];var pos=!!(a[3]);var box=!!(a[2]);if(box||(YAHOO.util.Dom.getStyle(el,'position')=='absolute'&&pos)){val=el['offset'+a[0].charAt(0).toUpperCase()+a[0].substr(1)];}else{val=0;} -return val;},getDefaultUnit:function(attr){if(this.patterns.defaultUnit.test(attr)){return'px';} -return'';},setRuntimeAttribute:function(attr){var start;var end;var attributes=this.attributes;this.runtimeAttributes[attr]={};var isset=function(prop){return(typeof prop!=='undefined');};if(!isset(attributes[attr]['to'])&&!isset(attributes[attr]['by'])){return false;} -start=(isset(attributes[attr]['from']))?attributes[attr]['from']:this.getAttribute(attr);if(isset(attributes[attr]['to'])){end=attributes[attr]['to'];}else if(isset(attributes[attr]['by'])){if(start.constructor==Array){end=[];for(var i=0,len=start.length;i0&&isFinite(tweak)){if(tween.currentFrame+tweak>=frames){tweak=frames-(frame+1);} -tween.currentFrame+=tweak;}};};YAHOO.util.Bezier=new function(){this.getPosition=function(points,t){var n=points.length;var tmp=[];for(var i=0;i0&&!(control[0]instanceof Array)){control=[control];}else{var tmp=[];for(i=0,len=control.length;i0){this.runtimeAttributes[attr]=this.runtimeAttributes[attr].concat(control);} -this.runtimeAttributes[attr][this.runtimeAttributes[attr].length]=end;} -else{superclass.setRuntimeAttribute.call(this,attr);}};var translateValues=function(val,start){var pageXY=Y.Dom.getXY(this.getEl());val=[val[0]-pageXY[0]+start[0],val[1]-pageXY[1]+start[1]];return val;};var isset=function(prop){return(typeof prop!=='undefined');};})();(function(){YAHOO.util.Scroll=function(el,attributes,duration,method){if(el){YAHOO.util.Scroll.superclass.constructor.call(this,el,attributes,duration,method);}};YAHOO.extend(YAHOO.util.Scroll,YAHOO.util.ColorAnim);var Y=YAHOO.util;var superclass=Y.Scroll.superclass;var proto=Y.Scroll.prototype;proto.toString=function(){var el=this.getEl();var id=el.id||el.tagName;return("Scroll "+id);};proto.doMethod=function(attr,start,end){var val=null;if(attr=='scroll'){val=[this.method(this.currentFrame,start[0],end[0]-start[0],this.totalFrames),this.method(this.currentFrame,start[1],end[1]-start[1],this.totalFrames)];}else{val=superclass.doMethod.call(this,attr,start,end);} -return val;};proto.getAttribute=function(attr){var val=null;var el=this.getEl();if(attr=='scroll'){val=[el.scrollLeft,el.scrollTop];}else{val=superclass.getAttribute.call(this,attr);} -return val;};proto.setAttribute=function(attr,val,unit){var el=this.getEl();if(attr=='scroll'){el.scrollLeft=val[0];el.scrollTop=val[1];}else{superclass.setAttribute.call(this,attr,val,unit);}};})();YAHOO.register("animation",YAHOO.util.Anim,{version:"2.2.0",build:"127"}); \ No newline at end of file diff --git a/interface/ispconfig/interface/js/yui/animation/animation.js b/interface/ispconfig/interface/js/yui/animation/animation.js deleted file mode 100644 index a70b84183..000000000 --- a/interface/ispconfig/interface/js/yui/animation/animation.js +++ /dev/null @@ -1,1358 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ -/* -Copyright (c) 2006, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -*/ - -/** - * The animation module provides allows effects to be added to HTMLElements. - * @module animation - * @requires yahoo, event, dom - */ - -/** - * - * Base animation class that provides the interface for building animated effects. - *

Usage: var myAnim = new YAHOO.util.Anim(el, { width: { from: 10, to: 100 } }, 1, YAHOO.util.Easing.easeOut);

- * @class Anim - * @namespace YAHOO.util - * @requires YAHOO.util.AnimMgr - * @requires YAHOO.util.Easing - * @requires YAHOO.util.Dom - * @requires YAHOO.util.Event - * @requires YAHOO.util.CustomEvent - * @constructor - * @param {String | HTMLElement} el Reference to the element that will be animated - * @param {Object} attributes The attribute(s) to be animated. - * Each attribute is an object with at minimum a "to" or "by" member defined. - * Additional optional members are "from" (defaults to current value), "units" (defaults to "px"). - * All attribute names use camelCase. - * @param {Number} duration (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based - * @param {Function} method (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method) - */ - -YAHOO.util.Anim = function(el, attributes, duration, method) { - if (el) { - this.init(el, attributes, duration, method); - } -}; - -YAHOO.util.Anim.prototype = { - /** - * Provides a readable name for the Anim instance. - * @method toString - * @return {String} - */ - toString: function() { - var el = this.getEl(); - var id = el.id || el.tagName; - return ("Anim " + id); - }, - - patterns: { // cached for performance - noNegatives: /width|height|opacity|padding/i, // keep at zero or above - offsetAttribute: /^((width|height)|(top|left))$/, // use offsetValue as default - defaultUnit: /width|height|top$|bottom$|left$|right$/i, // use 'px' by default - offsetUnit: /\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i // IE may return these, so convert these to offset - }, - - /** - * Returns the value computed by the animation's "method". - * @method doMethod - * @param {String} attr The name of the attribute. - * @param {Number} start The value this attribute should start from for this animation. - * @param {Number} end The value this attribute should end at for this animation. - * @return {Number} The Value to be applied to the attribute. - */ - doMethod: function(attr, start, end) { - return this.method(this.currentFrame, start, end - start, this.totalFrames); - }, - - /** - * Applies a value to an attribute. - * @method setAttribute - * @param {String} attr The name of the attribute. - * @param {Number} val The value to be applied to the attribute. - * @param {String} unit The unit ('px', '%', etc.) of the value. - */ - setAttribute: function(attr, val, unit) { - if ( this.patterns.noNegatives.test(attr) ) { - val = (val > 0) ? val : 0; - } - - YAHOO.util.Dom.setStyle(this.getEl(), attr, val + unit); - }, - - /** - * Returns current value of the attribute. - * @method getAttribute - * @param {String} attr The name of the attribute. - * @return {Number} val The current value of the attribute. - */ - getAttribute: function(attr) { - var el = this.getEl(); - var val = YAHOO.util.Dom.getStyle(el, attr); - - if (val !== 'auto' && !this.patterns.offsetUnit.test(val)) { - return parseFloat(val); - } - - var a = this.patterns.offsetAttribute.exec(attr) || []; - var pos = !!( a[3] ); // top or left - var box = !!( a[2] ); // width or height - - // use offsets for width/height and abs pos top/left - if ( box || (YAHOO.util.Dom.getStyle(el, 'position') == 'absolute' && pos) ) { - val = el['offset' + a[0].charAt(0).toUpperCase() + a[0].substr(1)]; - } else { // default to zero for other 'auto' - val = 0; - } - - return val; - }, - - /** - * Returns the unit to use when none is supplied. - * @method getDefaultUnit - * @param {attr} attr The name of the attribute. - * @return {String} The default unit to be used. - */ - getDefaultUnit: function(attr) { - if ( this.patterns.defaultUnit.test(attr) ) { - return 'px'; - } - - return ''; - }, - - /** - * Sets the actual values to be used during the animation. Should only be needed for subclass use. - * @method setRuntimeAttribute - * @param {Object} attr The attribute object - * @private - */ - setRuntimeAttribute: function(attr) { - var start; - var end; - var attributes = this.attributes; - - this.runtimeAttributes[attr] = {}; - - var isset = function(prop) { - return (typeof prop !== 'undefined'); - }; - - if ( !isset(attributes[attr]['to']) && !isset(attributes[attr]['by']) ) { - return false; // note return; nothing to animate to - } - - start = ( isset(attributes[attr]['from']) ) ? attributes[attr]['from'] : this.getAttribute(attr); - - // To beats by, per SMIL 2.1 spec - if ( isset(attributes[attr]['to']) ) { - end = attributes[attr]['to']; - } else if ( isset(attributes[attr]['by']) ) { - if (start.constructor == Array) { - end = []; - for (var i = 0, len = start.length; i < len; ++i) { - end[i] = start[i] + attributes[attr]['by'][i]; - } - } else { - end = start + attributes[attr]['by']; - } - } - - this.runtimeAttributes[attr].start = start; - this.runtimeAttributes[attr].end = end; - - // set units if needed - this.runtimeAttributes[attr].unit = ( isset(attributes[attr].unit) ) ? attributes[attr]['unit'] : this.getDefaultUnit(attr); - }, - - /** - * Constructor for Anim instance. - * @method init - * @param {String | HTMLElement} el Reference to the element that will be animated - * @param {Object} attributes The attribute(s) to be animated. - * Each attribute is an object with at minimum a "to" or "by" member defined. - * Additional optional members are "from" (defaults to current value), "units" (defaults to "px"). - * All attribute names use camelCase. - * @param {Number} duration (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based - * @param {Function} method (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method) - */ - init: function(el, attributes, duration, method) { - /** - * Whether or not the animation is running. - * @property isAnimated - * @private - * @type Boolean - */ - var isAnimated = false; - - /** - * A Date object that is created when the animation begins. - * @property startTime - * @private - * @type Date - */ - var startTime = null; - - /** - * The number of frames this animation was able to execute. - * @property actualFrames - * @private - * @type Int - */ - var actualFrames = 0; - - /** - * The element to be animated. - * @property el - * @private - * @type HTMLElement - */ - el = YAHOO.util.Dom.get(el); - - /** - * The collection of attributes to be animated. - * Each attribute must have at least a "to" or "by" defined in order to animate. - * If "to" is supplied, the animation will end with the attribute at that value. - * If "by" is supplied, the animation will end at that value plus its starting value. - * If both are supplied, "to" is used, and "by" is ignored. - * Optional additional member include "from" (the value the attribute should start animating from, defaults to current value), and "unit" (the units to apply to the values). - * @property attributes - * @type Object - */ - this.attributes = attributes || {}; - - /** - * The length of the animation. Defaults to "1" (second). - * @property duration - * @type Number - */ - this.duration = duration || 1; - - /** - * The method that will provide values to the attribute(s) during the animation. - * Defaults to "YAHOO.util.Easing.easeNone". - * @property method - * @type Function - */ - this.method = method || YAHOO.util.Easing.easeNone; - - /** - * Whether or not the duration should be treated as seconds. - * Defaults to true. - * @property useSeconds - * @type Boolean - */ - this.useSeconds = true; // default to seconds - - /** - * The location of the current animation on the timeline. - * In time-based animations, this is used by AnimMgr to ensure the animation finishes on time. - * @property currentFrame - * @type Int - */ - this.currentFrame = 0; - - /** - * The total number of frames to be executed. - * In time-based animations, this is used by AnimMgr to ensure the animation finishes on time. - * @property totalFrames - * @type Int - */ - this.totalFrames = YAHOO.util.AnimMgr.fps; - - - /** - * Returns a reference to the animated element. - * @method getEl - * @return {HTMLElement} - */ - this.getEl = function() { return el; }; - - /** - * Checks whether the element is currently animated. - * @method isAnimated - * @return {Boolean} current value of isAnimated. - */ - this.isAnimated = function() { - return isAnimated; - }; - - /** - * Returns the animation start time. - * @method getStartTime - * @return {Date} current value of startTime. - */ - this.getStartTime = function() { - return startTime; - }; - - this.runtimeAttributes = {}; - - - - /** - * Starts the animation by registering it with the animation manager. - * @method animate - */ - this.animate = function() { - if ( this.isAnimated() ) { - return false; - } - - this.currentFrame = 0; - - this.totalFrames = ( this.useSeconds ) ? Math.ceil(YAHOO.util.AnimMgr.fps * this.duration) : this.duration; - - YAHOO.util.AnimMgr.registerElement(this); - }; - - /** - * Stops the animation. Normally called by AnimMgr when animation completes. - * @method stop - * @param {Boolean} finish (optional) If true, animation will jump to final frame. - */ - this.stop = function(finish) { - if (finish) { - this.currentFrame = this.totalFrames; - this._onTween.fire(); - } - YAHOO.util.AnimMgr.stop(this); - }; - - var onStart = function() { - this.onStart.fire(); - - this.runtimeAttributes = {}; - for (var attr in this.attributes) { - this.setRuntimeAttribute(attr); - } - - isAnimated = true; - actualFrames = 0; - startTime = new Date(); - }; - - /** - * Feeds the starting and ending values for each animated attribute to doMethod once per frame, then applies the resulting value to the attribute(s). - * @private - */ - - var onTween = function() { - var data = { - duration: new Date() - this.getStartTime(), - currentFrame: this.currentFrame - }; - - data.toString = function() { - return ( - 'duration: ' + data.duration + - ', currentFrame: ' + data.currentFrame - ); - }; - - this.onTween.fire(data); - - var runtimeAttributes = this.runtimeAttributes; - - for (var attr in runtimeAttributes) { - this.setAttribute(attr, this.doMethod(attr, runtimeAttributes[attr].start, runtimeAttributes[attr].end), runtimeAttributes[attr].unit); - } - - actualFrames += 1; - }; - - var onComplete = function() { - var actual_duration = (new Date() - startTime) / 1000 ; - - var data = { - duration: actual_duration, - frames: actualFrames, - fps: actualFrames / actual_duration - }; - - data.toString = function() { - return ( - 'duration: ' + data.duration + - ', frames: ' + data.frames + - ', fps: ' + data.fps - ); - }; - - isAnimated = false; - actualFrames = 0; - this.onComplete.fire(data); - }; - - /** - * Custom event that fires after onStart, useful in subclassing - * @private - */ - this._onStart = new YAHOO.util.CustomEvent('_start', this, true); - - /** - * Custom event that fires when animation begins - * Listen via subscribe method (e.g. myAnim.onStart.subscribe(someFunction) - * @event onStart - */ - this.onStart = new YAHOO.util.CustomEvent('start', this); - - /** - * Custom event that fires between each frame - * Listen via subscribe method (e.g. myAnim.onTween.subscribe(someFunction) - * @event onTween - */ - this.onTween = new YAHOO.util.CustomEvent('tween', this); - - /** - * Custom event that fires after onTween - * @private - */ - this._onTween = new YAHOO.util.CustomEvent('_tween', this, true); - - /** - * Custom event that fires when animation ends - * Listen via subscribe method (e.g. myAnim.onComplete.subscribe(someFunction) - * @event onComplete - */ - this.onComplete = new YAHOO.util.CustomEvent('complete', this); - /** - * Custom event that fires after onComplete - * @private - */ - this._onComplete = new YAHOO.util.CustomEvent('_complete', this, true); - - this._onStart.subscribe(onStart); - this._onTween.subscribe(onTween); - this._onComplete.subscribe(onComplete); - } -}; - -/** - * Handles animation queueing and threading. - * Used by Anim and subclasses. - * @class AnimMgr - * @namespace YAHOO.util - */ -YAHOO.util.AnimMgr = new function() { - /** - * Reference to the animation Interval. - * @property thread - * @private - * @type Int - */ - var thread = null; - - /** - * The current queue of registered animation objects. - * @property queue - * @private - * @type Array - */ - var queue = []; - - /** - * The number of active animations. - * @property tweenCount - * @private - * @type Int - */ - var tweenCount = 0; - - /** - * Base frame rate (frames per second). - * Arbitrarily high for better x-browser calibration (slower browsers drop more frames). - * @property fps - * @type Int - * - */ - this.fps = 1000; - - /** - * Interval delay in milliseconds, defaults to fastest possible. - * @property delay - * @type Int - * - */ - this.delay = 1; - - /** - * Adds an animation instance to the animation queue. - * All animation instances must be registered in order to animate. - * @method registerElement - * @param {object} tween The Anim instance to be be registered - */ - this.registerElement = function(tween) { - queue[queue.length] = tween; - tweenCount += 1; - tween._onStart.fire(); - this.start(); - }; - - /** - * removes an animation instance from the animation queue. - * All animation instances must be registered in order to animate. - * @method unRegister - * @param {object} tween The Anim instance to be be registered - * @param {Int} index The index of the Anim instance - * @private - */ - this.unRegister = function(tween, index) { - tween._onComplete.fire(); - index = index || getIndex(tween); - if (index != -1) { - queue.splice(index, 1); - } - - tweenCount -= 1; - if (tweenCount <= 0) { - this.stop(); - } - }; - - /** - * Starts the animation thread. - * Only one thread can run at a time. - * @method start - */ - this.start = function() { - if (thread === null) { - thread = setInterval(this.run, this.delay); - } - }; - - /** - * Stops the animation thread or a specific animation instance. - * @method stop - * @param {object} tween A specific Anim instance to stop (optional) - * If no instance given, Manager stops thread and all animations. - */ - this.stop = function(tween) { - if (!tween) { - clearInterval(thread); - - for (var i = 0, len = queue.length; i < len; ++i) { - if ( queue[0].isAnimated() ) { - this.unRegister(queue[0], 0); - } - } - - queue = []; - thread = null; - tweenCount = 0; - } - else { - this.unRegister(tween); - } - }; - - /** - * Called per Interval to handle each animation frame. - * @method run - */ - this.run = function() { - for (var i = 0, len = queue.length; i < len; ++i) { - var tween = queue[i]; - if ( !tween || !tween.isAnimated() ) { continue; } - - if (tween.currentFrame < tween.totalFrames || tween.totalFrames === null) - { - tween.currentFrame += 1; - - if (tween.useSeconds) { - correctFrame(tween); - } - tween._onTween.fire(); - } - else { YAHOO.util.AnimMgr.stop(tween, i); } - } - }; - - var getIndex = function(anim) { - for (var i = 0, len = queue.length; i < len; ++i) { - if (queue[i] == anim) { - return i; // note return; - } - } - return -1; - }; - - /** - * On the fly frame correction to keep animation on time. - * @method correctFrame - * @private - * @param {Object} tween The Anim instance being corrected. - */ - var correctFrame = function(tween) { - var frames = tween.totalFrames; - var frame = tween.currentFrame; - var expected = (tween.currentFrame * tween.duration * 1000 / tween.totalFrames); - var elapsed = (new Date() - tween.getStartTime()); - var tweak = 0; - - if (elapsed < tween.duration * 1000) { // check if falling behind - tweak = Math.round((elapsed / expected - 1) * tween.currentFrame); - } else { // went over duration, so jump to end - tweak = frames - (frame + 1); - } - if (tweak > 0 && isFinite(tweak)) { // adjust if needed - if (tween.currentFrame + tweak >= frames) {// dont go past last frame - tweak = frames - (frame + 1); - } - - tween.currentFrame += tweak; - } - }; -}; -/** - * Used to calculate Bezier splines for any number of control points. - * @class Bezier - * @namespace YAHOO.util - * - */ -YAHOO.util.Bezier = new function() { - /** - * Get the current position of the animated element based on t. - * Each point is an array of "x" and "y" values (0 = x, 1 = y) - * At least 2 points are required (start and end). - * First point is start. Last point is end. - * Additional control points are optional. - * @method getPosition - * @param {Array} points An array containing Bezier points - * @param {Number} t A number between 0 and 1 which is the basis for determining current position - * @return {Array} An array containing int x and y member data - */ - this.getPosition = function(points, t) { - var n = points.length; - var tmp = []; - - for (var i = 0; i < n; ++i){ - tmp[i] = [points[i][0], points[i][1]]; // save input - } - - for (var j = 1; j < n; ++j) { - for (i = 0; i < n - j; ++i) { - tmp[i][0] = (1 - t) * tmp[i][0] + t * tmp[parseInt(i + 1, 10)][0]; - tmp[i][1] = (1 - t) * tmp[i][1] + t * tmp[parseInt(i + 1, 10)][1]; - } - } - - return [ tmp[0][0], tmp[0][1] ]; - - }; -}; -(function() { -/** - * Anim subclass for color transitions. - *

Usage: var myAnim = new Y.ColorAnim(el, { backgroundColor: { from: '#FF0000', to: '#FFFFFF' } }, 1, Y.Easing.easeOut); Color values can be specified with either 112233, #112233, - * [255,255,255], or rgb(255,255,255)

- * @class ColorAnim - * @namespace YAHOO.util - * @requires YAHOO.util.Anim - * @requires YAHOO.util.AnimMgr - * @requires YAHOO.util.Easing - * @requires YAHOO.util.Bezier - * @requires YAHOO.util.Dom - * @requires YAHOO.util.Event - * @constructor - * @extends YAHOO.util.Anim - * @param {HTMLElement | String} el Reference to the element that will be animated - * @param {Object} attributes The attribute(s) to be animated. - * Each attribute is an object with at minimum a "to" or "by" member defined. - * Additional optional members are "from" (defaults to current value), "units" (defaults to "px"). - * All attribute names use camelCase. - * @param {Number} duration (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based - * @param {Function} method (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method) - */ - YAHOO.util.ColorAnim = function(el, attributes, duration, method) { - YAHOO.util.ColorAnim.superclass.constructor.call(this, el, attributes, duration, method); - }; - - YAHOO.extend(YAHOO.util.ColorAnim, YAHOO.util.Anim); - - // shorthand - var Y = YAHOO.util; - var superclass = Y.ColorAnim.superclass; - var proto = Y.ColorAnim.prototype; - - proto.toString = function() { - var el = this.getEl(); - var id = el.id || el.tagName; - return ("ColorAnim " + id); - }; - - proto.patterns.color = /color$/i; - proto.patterns.rgb = /^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i; - proto.patterns.hex = /^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i; - proto.patterns.hex3 = /^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i; - proto.patterns.transparent = /^transparent|rgba\(0, 0, 0, 0\)$/; // need rgba for safari - - /** - * Attempts to parse the given string and return a 3-tuple. - * @method parseColor - * @param {String} s The string to parse. - * @return {Array} The 3-tuple of rgb values. - */ - proto.parseColor = function(s) { - if (s.length == 3) { return s; } - - var c = this.patterns.hex.exec(s); - if (c && c.length == 4) { - return [ parseInt(c[1], 16), parseInt(c[2], 16), parseInt(c[3], 16) ]; - } - - c = this.patterns.rgb.exec(s); - if (c && c.length == 4) { - return [ parseInt(c[1], 10), parseInt(c[2], 10), parseInt(c[3], 10) ]; - } - - c = this.patterns.hex3.exec(s); - if (c && c.length == 4) { - return [ parseInt(c[1] + c[1], 16), parseInt(c[2] + c[2], 16), parseInt(c[3] + c[3], 16) ]; - } - - return null; - }; - - proto.getAttribute = function(attr) { - var el = this.getEl(); - if ( this.patterns.color.test(attr) ) { - var val = YAHOO.util.Dom.getStyle(el, attr); - - if (this.patterns.transparent.test(val)) { // bgcolor default - var parent = el.parentNode; // try and get from an ancestor - val = Y.Dom.getStyle(parent, attr); - - while (parent && this.patterns.transparent.test(val)) { - parent = parent.parentNode; - val = Y.Dom.getStyle(parent, attr); - if (parent.tagName.toUpperCase() == 'HTML') { - val = '#fff'; - } - } - } - } else { - val = superclass.getAttribute.call(this, attr); - } - - return val; - }; - - proto.doMethod = function(attr, start, end) { - var val; - - if ( this.patterns.color.test(attr) ) { - val = []; - for (var i = 0, len = start.length; i < len; ++i) { - val[i] = superclass.doMethod.call(this, attr, start[i], end[i]); - } - - val = 'rgb('+Math.floor(val[0])+','+Math.floor(val[1])+','+Math.floor(val[2])+')'; - } - else { - val = superclass.doMethod.call(this, attr, start, end); - } - - return val; - }; - - proto.setRuntimeAttribute = function(attr) { - superclass.setRuntimeAttribute.call(this, attr); - - if ( this.patterns.color.test(attr) ) { - var attributes = this.attributes; - var start = this.parseColor(this.runtimeAttributes[attr].start); - var end = this.parseColor(this.runtimeAttributes[attr].end); - // fix colors if going "by" - if ( typeof attributes[attr]['to'] === 'undefined' && typeof attributes[attr]['by'] !== 'undefined' ) { - end = this.parseColor(attributes[attr].by); - - for (var i = 0, len = start.length; i < len; ++i) { - end[i] = start[i] + end[i]; - } - } - - this.runtimeAttributes[attr].start = start; - this.runtimeAttributes[attr].end = end; - } - }; -})(); -/* -TERMS OF USE - EASING EQUATIONS -Open source under the BSD License. -Copyright 2001 Robert Penner All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - * Neither the name of the author nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - * Singleton that determines how an animation proceeds from start to end. - * @class Easing - * @namespace YAHOO.util -*/ - -YAHOO.util.Easing = { - - /** - * Uniform speed between points. - * @method easeNone - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - easeNone: function (t, b, c, d) { - return c*t/d + b; - }, - - /** - * Begins slowly and accelerates towards end. (quadratic) - * @method easeIn - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - easeIn: function (t, b, c, d) { - return c*(t/=d)*t + b; - }, - - /** - * Begins quickly and decelerates towards end. (quadratic) - * @method easeOut - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - easeOut: function (t, b, c, d) { - return -c *(t/=d)*(t-2) + b; - }, - - /** - * Begins slowly and decelerates towards end. (quadratic) - * @method easeBoth - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - easeBoth: function (t, b, c, d) { - if ((t/=d/2) < 1) { - return c/2*t*t + b; - } - - return -c/2 * ((--t)*(t-2) - 1) + b; - }, - - /** - * Begins slowly and accelerates towards end. (quartic) - * @method easeInStrong - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - easeInStrong: function (t, b, c, d) { - return c*(t/=d)*t*t*t + b; - }, - - /** - * Begins quickly and decelerates towards end. (quartic) - * @method easeOutStrong - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - easeOutStrong: function (t, b, c, d) { - return -c * ((t=t/d-1)*t*t*t - 1) + b; - }, - - /** - * Begins slowly and decelerates towards end. (quartic) - * @method easeBothStrong - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - easeBothStrong: function (t, b, c, d) { - if ((t/=d/2) < 1) { - return c/2*t*t*t*t + b; - } - - return -c/2 * ((t-=2)*t*t*t - 2) + b; - }, - - /** - * Snap in elastic effect. - * @method elasticIn - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @param {Number} a Amplitude (optional) - * @param {Number} p Period (optional) - * @return {Number} The computed value for the current animation frame - */ - - elasticIn: function (t, b, c, d, a, p) { - if (t == 0) { - return b; - } - if ( (t /= d) == 1 ) { - return b+c; - } - if (!p) { - p=d*.3; - } - - if (!a || a < Math.abs(c)) { - a = c; - var s = p/4; - } - else { - var s = p/(2*Math.PI) * Math.asin (c/a); - } - - return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; - }, - - /** - * Snap out elastic effect. - * @method elasticOut - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @param {Number} a Amplitude (optional) - * @param {Number} p Period (optional) - * @return {Number} The computed value for the current animation frame - */ - elasticOut: function (t, b, c, d, a, p) { - if (t == 0) { - return b; - } - if ( (t /= d) == 1 ) { - return b+c; - } - if (!p) { - p=d*.3; - } - - if (!a || a < Math.abs(c)) { - a = c; - var s = p / 4; - } - else { - var s = p/(2*Math.PI) * Math.asin (c/a); - } - - return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; - }, - - /** - * Snap both elastic effect. - * @method elasticBoth - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @param {Number} a Amplitude (optional) - * @param {Number} p Period (optional) - * @return {Number} The computed value for the current animation frame - */ - elasticBoth: function (t, b, c, d, a, p) { - if (t == 0) { - return b; - } - - if ( (t /= d/2) == 2 ) { - return b+c; - } - - if (!p) { - p = d*(.3*1.5); - } - - if ( !a || a < Math.abs(c) ) { - a = c; - var s = p/4; - } - else { - var s = p/(2*Math.PI) * Math.asin (c/a); - } - - if (t < 1) { - return -.5*(a*Math.pow(2,10*(t-=1)) * - Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; - } - return a*Math.pow(2,-10*(t-=1)) * - Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; - }, - - - /** - * Backtracks slightly, then reverses direction and moves to end. - * @method backIn - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @param {Number} s Overshoot (optional) - * @return {Number} The computed value for the current animation frame - */ - backIn: function (t, b, c, d, s) { - if (typeof s == 'undefined') { - s = 1.70158; - } - return c*(t/=d)*t*((s+1)*t - s) + b; - }, - - /** - * Overshoots end, then reverses and comes back to end. - * @method backOut - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @param {Number} s Overshoot (optional) - * @return {Number} The computed value for the current animation frame - */ - backOut: function (t, b, c, d, s) { - if (typeof s == 'undefined') { - s = 1.70158; - } - return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; - }, - - /** - * Backtracks slightly, then reverses direction, overshoots end, - * then reverses and comes back to end. - * @method backBoth - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @param {Number} s Overshoot (optional) - * @return {Number} The computed value for the current animation frame - */ - backBoth: function (t, b, c, d, s) { - if (typeof s == 'undefined') { - s = 1.70158; - } - - if ((t /= d/2 ) < 1) { - return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; - } - return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; - }, - - /** - * Bounce off of start. - * @method bounceIn - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - bounceIn: function (t, b, c, d) { - return c - YAHOO.util.Easing.bounceOut(d-t, 0, c, d) + b; - }, - - /** - * Bounces off end. - * @method bounceOut - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - bounceOut: function (t, b, c, d) { - if ((t/=d) < (1/2.75)) { - return c*(7.5625*t*t) + b; - } else if (t < (2/2.75)) { - return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; - } else if (t < (2.5/2.75)) { - return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; - } - return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; - }, - - /** - * Bounces off start and end. - * @method bounceBoth - * @param {Number} t Time value used to compute current value - * @param {Number} b Starting value - * @param {Number} c Delta between start and end values - * @param {Number} d Total length of animation - * @return {Number} The computed value for the current animation frame - */ - bounceBoth: function (t, b, c, d) { - if (t < d/2) { - return YAHOO.util.Easing.bounceIn(t*2, 0, c, d) * .5 + b; - } - return YAHOO.util.Easing.bounceOut(t*2-d, 0, c, d) * .5 + c*.5 + b; - } -}; - -(function() { -/** - * Anim subclass for moving elements along a path defined by the "points" - * member of "attributes". All "points" are arrays with x, y coordinates. - *

Usage: var myAnim = new YAHOO.util.Motion(el, { points: { to: [800, 800] } }, 1, YAHOO.util.Easing.easeOut);

- * @class Motion - * @namespace YAHOO.util - * @requires YAHOO.util.Anim - * @requires YAHOO.util.AnimMgr - * @requires YAHOO.util.Easing - * @requires YAHOO.util.Bezier - * @requires YAHOO.util.Dom - * @requires YAHOO.util.Event - * @requires YAHOO.util.CustomEvent - * @constructor - * @extends YAHOO.util.Anim - * @param {String | HTMLElement} el Reference to the element that will be animated - * @param {Object} attributes The attribute(s) to be animated. - * Each attribute is an object with at minimum a "to" or "by" member defined. - * Additional optional members are "from" (defaults to current value), "units" (defaults to "px"). - * All attribute names use camelCase. - * @param {Number} duration (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based - * @param {Function} method (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method) - */ - YAHOO.util.Motion = function(el, attributes, duration, method) { - if (el) { // dont break existing subclasses not using YAHOO.extend - YAHOO.util.Motion.superclass.constructor.call(this, el, attributes, duration, method); - } - }; - - YAHOO.extend(YAHOO.util.Motion, YAHOO.util.ColorAnim); - - // shorthand - var Y = YAHOO.util; - var superclass = Y.Motion.superclass; - var proto = Y.Motion.prototype; - - proto.toString = function() { - var el = this.getEl(); - var id = el.id || el.tagName; - return ("Motion " + id); - }; - - proto.patterns.points = /^points$/i; - - proto.setAttribute = function(attr, val, unit) { - if ( this.patterns.points.test(attr) ) { - unit = unit || 'px'; - superclass.setAttribute.call(this, 'left', val[0], unit); - superclass.setAttribute.call(this, 'top', val[1], unit); - } else { - superclass.setAttribute.call(this, attr, val, unit); - } - }; - - proto.getAttribute = function(attr) { - if ( this.patterns.points.test(attr) ) { - var val = [ - superclass.getAttribute.call(this, 'left'), - superclass.getAttribute.call(this, 'top') - ]; - } else { - val = superclass.getAttribute.call(this, attr); - } - - return val; - }; - - proto.doMethod = function(attr, start, end) { - var val = null; - - if ( this.patterns.points.test(attr) ) { - var t = this.method(this.currentFrame, 0, 100, this.totalFrames) / 100; - val = Y.Bezier.getPosition(this.runtimeAttributes[attr], t); - } else { - val = superclass.doMethod.call(this, attr, start, end); - } - return val; - }; - - proto.setRuntimeAttribute = function(attr) { - if ( this.patterns.points.test(attr) ) { - var el = this.getEl(); - var attributes = this.attributes; - var start; - var control = attributes['points']['control'] || []; - var end; - var i, len; - - if (control.length > 0 && !(control[0] instanceof Array) ) { // could be single point or array of points - control = [control]; - } else { // break reference to attributes.points.control - var tmp = []; - for (i = 0, len = control.length; i< len; ++i) { - tmp[i] = control[i]; - } - control = tmp; - } - - if (Y.Dom.getStyle(el, 'position') == 'static') { // default to relative - Y.Dom.setStyle(el, 'position', 'relative'); - } - - if ( isset(attributes['points']['from']) ) { - Y.Dom.setXY(el, attributes['points']['from']); // set position to from point - } - else { Y.Dom.setXY( el, Y.Dom.getXY(el) ); } // set it to current position - - start = this.getAttribute('points'); // get actual top & left - - // TO beats BY, per SMIL 2.1 spec - if ( isset(attributes['points']['to']) ) { - end = translateValues.call(this, attributes['points']['to'], start); - - var pageXY = Y.Dom.getXY(this.getEl()); - for (i = 0, len = control.length; i < len; ++i) { - control[i] = translateValues.call(this, control[i], start); - } - - - } else if ( isset(attributes['points']['by']) ) { - end = [ start[0] + attributes['points']['by'][0], start[1] + attributes['points']['by'][1] ]; - - for (i = 0, len = control.length; i < len; ++i) { - control[i] = [ start[0] + control[i][0], start[1] + control[i][1] ]; - } - } - - this.runtimeAttributes[attr] = [start]; - - if (control.length > 0) { - this.runtimeAttributes[attr] = this.runtimeAttributes[attr].concat(control); - } - - this.runtimeAttributes[attr][this.runtimeAttributes[attr].length] = end; - } - else { - superclass.setRuntimeAttribute.call(this, attr); - } - }; - - var translateValues = function(val, start) { - var pageXY = Y.Dom.getXY(this.getEl()); - val = [ val[0] - pageXY[0] + start[0], val[1] - pageXY[1] + start[1] ]; - - return val; - }; - - var isset = function(prop) { - return (typeof prop !== 'undefined'); - }; -})(); -(function() { -/** - * Anim subclass for scrolling elements to a position defined by the "scroll" - * member of "attributes". All "scroll" members are arrays with x, y scroll positions. - *

Usage: var myAnim = new YAHOO.util.Scroll(el, { scroll: { to: [0, 800] } }, 1, YAHOO.util.Easing.easeOut);

- * @class Scroll - * @namespace YAHOO.util - * @requires YAHOO.util.Anim - * @requires YAHOO.util.AnimMgr - * @requires YAHOO.util.Easing - * @requires YAHOO.util.Bezier - * @requires YAHOO.util.Dom - * @requires YAHOO.util.Event - * @requires YAHOO.util.CustomEvent - * @extends YAHOO.util.Anim - * @constructor - * @param {String or HTMLElement} el Reference to the element that will be animated - * @param {Object} attributes The attribute(s) to be animated. - * Each attribute is an object with at minimum a "to" or "by" member defined. - * Additional optional members are "from" (defaults to current value), "units" (defaults to "px"). - * All attribute names use camelCase. - * @param {Number} duration (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based - * @param {Function} method (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method) - */ - YAHOO.util.Scroll = function(el, attributes, duration, method) { - if (el) { // dont break existing subclasses not using YAHOO.extend - YAHOO.util.Scroll.superclass.constructor.call(this, el, attributes, duration, method); - } - }; - - YAHOO.extend(YAHOO.util.Scroll, YAHOO.util.ColorAnim); - - // shorthand - var Y = YAHOO.util; - var superclass = Y.Scroll.superclass; - var proto = Y.Scroll.prototype; - - proto.toString = function() { - var el = this.getEl(); - var id = el.id || el.tagName; - return ("Scroll " + id); - }; - - proto.doMethod = function(attr, start, end) { - var val = null; - - if (attr == 'scroll') { - val = [ - this.method(this.currentFrame, start[0], end[0] - start[0], this.totalFrames), - this.method(this.currentFrame, start[1], end[1] - start[1], this.totalFrames) - ]; - - } else { - val = superclass.doMethod.call(this, attr, start, end); - } - return val; - }; - - proto.getAttribute = function(attr) { - var val = null; - var el = this.getEl(); - - if (attr == 'scroll') { - val = [ el.scrollLeft, el.scrollTop ]; - } else { - val = superclass.getAttribute.call(this, attr); - } - - return val; - }; - - proto.setAttribute = function(attr, val, unit) { - var el = this.getEl(); - - if (attr == 'scroll') { - el.scrollLeft = val[0]; - el.scrollTop = val[1]; - } else { - superclass.setAttribute.call(this, attr, val, unit); - } - }; -})(); -YAHOO.register("animation", YAHOO.util.Anim, {version: "2.2.0", build: "127"}); diff --git a/interface/ispconfig/interface/js/yui/autocomplete/README b/interface/ispconfig/interface/js/yui/autocomplete/README deleted file mode 100644 index 6ab63439b..000000000 --- a/interface/ispconfig/interface/js/yui/autocomplete/README +++ /dev/null @@ -1,77 +0,0 @@ -AutoComplete Release Notes - -*** version 2.2.0 *** - -* No changes. - - - -*** version 0.12.2 *** - -* No changes. - - - -*** version 0.12.1 *** - -* No longer trigger typeAhead feature when user is backspacing on input text. - - - -*** version 0.12.0 *** - -* The following constants must be defined as static class properties and are no longer -available as instance properties: - -YAHOO.widget.DataSource.ERROR_DATANULL -YAHOO.widget.DataSource.ERROR_DATAPARSE -YAHOO.widget.DS_XHR.TYPE_JSON -YAHOO.widget.DS_XHR.TYPE_XML -YAHOO.widget.DS_XHR.TYPE_FLAT -YAHOO.widget.DS_XHR.ERROR_DATAXHR - -* The property minQueryLength now supports zero and negative number values for -DS_JSFunction and DS_XHR objects, to enable null or empty string queries and to disable -AutoComplete functionality altogether, respectively. - -* Enabling the alwaysShowContainer feature will no longer send containerExpandEvent or -containerCollapseEvent. - - - -**** version 0.11.3 *** - -* The iFrameSrc property has been deprecated. Implementers no longer need to -specify an https URL to avoid IE security warnings when working with sites over -SSL. - - - -*** version 0.11.0 *** - -* The method getListIds() has been deprecated for getListItems(), which returns -an array of DOM references. - -* All classnames have been prefixed with "yui-ac-". - -* Container elements should no longer have CSS property "display" set to "none". - -* The useIFrame property can now be set after instantiation. - -* On some browsers, the unmatchedItemSelectEvent may not be fired properly when -delimiter characters are defined. - -* On some browsers, defining delimiter characters while enabling forceSelection -may result in unexpected behavior. - - - -*** version 0.10.0 *** - -* Initial release - -* In order to enable the useIFrame property, it should be set in the -constructor. - -* On some browsers, defining delimiter characters while enabling forceSelection -may result in unexpected behavior. diff --git a/interface/ispconfig/interface/js/yui/autocomplete/autocomplete-debug.js b/interface/ispconfig/interface/js/yui/autocomplete/autocomplete-debug.js deleted file mode 100644 index 70c0b94ea..000000000 --- a/interface/ispconfig/interface/js/yui/autocomplete/autocomplete-debug.js +++ /dev/null @@ -1,3100 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ - /** - * The AutoComplete control provides the front-end logic for text-entry suggestion and - * completion functionality. - * - * @module autocomplete - * @requires yahoo, dom, event, datasource - * @optional animation, connection - * @namespace YAHOO.widget - * @title AutoComplete Widget - */ - -/****************************************************************************/ -/****************************************************************************/ -/****************************************************************************/ - -/** - * The AutoComplete class provides the customizable functionality of a plug-and-play DHTML - * auto completion widget. Some key features: - *
    - *
  • Navigate with up/down arrow keys and/or mouse to pick a selection
  • - *
  • The drop down container can "roll down" or "fly out" via configurable - * animation
  • - *
  • UI look-and-feel customizable through CSS, including container - * attributes, borders, position, fonts, etc
  • - *
- * - * @class AutoComplete - * @constructor - * @param elInput {HTMLElement} DOM element reference of an input field. - * @param elInput {String} String ID of an input field. - * @param elContainer {HTMLElement} DOM element reference of an existing DIV. - * @param elContainer {String} String ID of an existing DIV. - * @param oDataSource {YAHOO.widget.DataSource} DataSource instance. - * @param oConfigs {Object} (optional) Object literal of configuration params. - */ -YAHOO.widget.AutoComplete = function(elInput,elContainer,oDataSource,oConfigs) { - if(elInput && elContainer && oDataSource) { - // Validate DataSource - if (oDataSource && (oDataSource instanceof YAHOO.widget.DataSource)) { - this.dataSource = oDataSource; - } - else { - YAHOO.log("Could not instantiate AutoComplete due to an invalid DataSource", "error", this.toString()); - return; - } - - // Validate input element - if(YAHOO.util.Dom.inDocument(elInput)) { - if(typeof elInput == "string") { - this._sName = "instance" + YAHOO.widget.AutoComplete._nIndex + " " + elInput; - this._oTextbox = document.getElementById(elInput); - } - else { - this._sName = (elInput.id) ? - "instance" + YAHOO.widget.AutoComplete._nIndex + " " + elInput.id: - "instance" + YAHOO.widget.AutoComplete._nIndex; - this._oTextbox = elInput; - } - } - else { - YAHOO.log("Could not instantiate AutoComplete due to an invalid input element", "error", this.toString()); - return; - } - - // Validate container element - if(YAHOO.util.Dom.inDocument(elContainer)) { - if(typeof elContainer == "string") { - this._oContainer = document.getElementById(elContainer); - } - else { - this._oContainer = elContainer; - } - if(this._oContainer.style.display == "none") { - YAHOO.log("The container may not display properly if display is set to \"none\" in CSS", "warn", this.toString()); - } - } - else { - YAHOO.log("Could not instantiate AutoComplete due to an invalid container element", "error", this.toString()); - return; - } - - // Set any config params passed in to override defaults - if (typeof oConfigs == "object") { - for(var sConfig in oConfigs) { - if (sConfig) { - this[sConfig] = oConfigs[sConfig]; - } - } - } - - // Initialization sequence - this._initContainer(); - this._initProps(); - this._initList(); - this._initContainerHelpers(); - - // Set up events - var oSelf = this; - var oTextbox = this._oTextbox; - // Events are actually for the content module within the container - var oContent = this._oContainer._oContent; - - // Dom events - YAHOO.util.Event.addListener(oTextbox,"keyup",oSelf._onTextboxKeyUp,oSelf); - YAHOO.util.Event.addListener(oTextbox,"keydown",oSelf._onTextboxKeyDown,oSelf); - YAHOO.util.Event.addListener(oTextbox,"focus",oSelf._onTextboxFocus,oSelf); - YAHOO.util.Event.addListener(oTextbox,"blur",oSelf._onTextboxBlur,oSelf); - YAHOO.util.Event.addListener(oContent,"mouseover",oSelf._onContainerMouseover,oSelf); - YAHOO.util.Event.addListener(oContent,"mouseout",oSelf._onContainerMouseout,oSelf); - YAHOO.util.Event.addListener(oContent,"scroll",oSelf._onContainerScroll,oSelf); - YAHOO.util.Event.addListener(oContent,"resize",oSelf._onContainerResize,oSelf); - if(oTextbox.form) { - YAHOO.util.Event.addListener(oTextbox.form,"submit",oSelf._onFormSubmit,oSelf); - } - YAHOO.util.Event.addListener(oTextbox,"keypress",oSelf._onTextboxKeyPress,oSelf); - - // Custom events - this.textboxFocusEvent = new YAHOO.util.CustomEvent("textboxFocus", this); - this.textboxKeyEvent = new YAHOO.util.CustomEvent("textboxKey", this); - this.dataRequestEvent = new YAHOO.util.CustomEvent("dataRequest", this); - this.dataReturnEvent = new YAHOO.util.CustomEvent("dataReturn", this); - this.dataErrorEvent = new YAHOO.util.CustomEvent("dataError", this); - this.containerExpandEvent = new YAHOO.util.CustomEvent("containerExpand", this); - this.typeAheadEvent = new YAHOO.util.CustomEvent("typeAhead", this); - this.itemMouseOverEvent = new YAHOO.util.CustomEvent("itemMouseOver", this); - this.itemMouseOutEvent = new YAHOO.util.CustomEvent("itemMouseOut", this); - this.itemArrowToEvent = new YAHOO.util.CustomEvent("itemArrowTo", this); - this.itemArrowFromEvent = new YAHOO.util.CustomEvent("itemArrowFrom", this); - this.itemSelectEvent = new YAHOO.util.CustomEvent("itemSelect", this); - this.unmatchedItemSelectEvent = new YAHOO.util.CustomEvent("unmatchedItemSelect", this); - this.selectionEnforceEvent = new YAHOO.util.CustomEvent("selectionEnforce", this); - this.containerCollapseEvent = new YAHOO.util.CustomEvent("containerCollapse", this); - this.textboxBlurEvent = new YAHOO.util.CustomEvent("textboxBlur", this); - - // Finish up - oTextbox.setAttribute("autocomplete","off"); - YAHOO.widget.AutoComplete._nIndex++; - YAHOO.log("AutoComplete initialized","info",this.toString()); - } - // Required arguments were not found - else { - YAHOO.log("Could not instantiate AutoComplete due invalid arguments", "error", this.toString()); - } -}; - -///////////////////////////////////////////////////////////////////////////// -// -// Public member variables -// -///////////////////////////////////////////////////////////////////////////// - -/** - * The DataSource object that encapsulates the data used for auto completion. - * This object should be an inherited object from YAHOO.widget.DataSource. - * - * @property dataSource - * @type YAHOO.widget.DataSource - */ -YAHOO.widget.AutoComplete.prototype.dataSource = null; - -/** - * Number of characters that must be entered before querying for results. A negative value - * effectively turns off the widget. A value of 0 allows queries of null or empty string - * values. - * - * @property minQueryLength - * @type Number - * @default 1 - */ -YAHOO.widget.AutoComplete.prototype.minQueryLength = 1; - -/** - * Maximum number of results to display in results container. - * - * @property maxResultsDisplayed - * @type Number - * @default 10 - */ -YAHOO.widget.AutoComplete.prototype.maxResultsDisplayed = 10; - -/** - * Number of seconds to delay before submitting a query request. If a query - * request is received before a previous one has completed its delay, the - * previous request is cancelled and the new request is set to the delay. - * - * @property queryDelay - * @type Number - * @default 0.5 - */ -YAHOO.widget.AutoComplete.prototype.queryDelay = 0.5; - -/** - * Class name of a highlighted item within results container. - * - * @property highlightClassName - * @type String - * @default "yui-ac-highlight" - */ -YAHOO.widget.AutoComplete.prototype.highlightClassName = "yui-ac-highlight"; - -/** - * Class name of a pre-highlighted item within results container. - * - * @property prehighlightClassName - * @type String - */ -YAHOO.widget.AutoComplete.prototype.prehighlightClassName = null; - -/** - * Query delimiter. A single character separator for multiple delimited - * selections. Multiple delimiter characteres may be defined as an array of - * strings. A null value or empty string indicates that query results cannot - * be delimited. This feature is not recommended if you need forceSelection to - * be true. - * - * @property delimChar - * @type String | String[] - */ -YAHOO.widget.AutoComplete.prototype.delimChar = null; - -/** - * Whether or not the first item in results container should be automatically highlighted - * on expand. - * - * @property autoHighlight - * @type Boolean - * @default true - */ -YAHOO.widget.AutoComplete.prototype.autoHighlight = true; - -/** - * Whether or not the input field should be automatically updated - * with the first query result as the user types, auto-selecting the substring - * that the user has not typed. - * - * @property typeAhead - * @type Boolean - * @default false - */ -YAHOO.widget.AutoComplete.prototype.typeAhead = false; - -/** - * Whether or not to animate the expansion/collapse of the results container in the - * horizontal direction. - * - * @property animHoriz - * @type Boolean - * @default false - */ -YAHOO.widget.AutoComplete.prototype.animHoriz = false; - -/** - * Whether or not to animate the expansion/collapse of the results container in the - * vertical direction. - * - * @property animVert - * @type Boolean - * @default true - */ -YAHOO.widget.AutoComplete.prototype.animVert = true; - -/** - * Speed of container expand/collapse animation, in seconds.. - * - * @property animSpeed - * @type Number - * @default 0.3 - */ -YAHOO.widget.AutoComplete.prototype.animSpeed = 0.3; - -/** - * Whether or not to force the user's selection to match one of the query - * results. Enabling this feature essentially transforms the input field into a - * <select> field. This feature is not recommended with delimiter character(s) - * defined. - * - * @property forceSelection - * @type Boolean - * @default false - */ -YAHOO.widget.AutoComplete.prototype.forceSelection = false; - -/** - * Whether or not to allow browsers to cache user-typed input in the input - * field. Disabling this feature will prevent the widget from setting the - * autocomplete="off" on the input field. When autocomplete="off" - * and users click the back button after form submission, user-typed input can - * be prefilled by the browser from its cache. This caching of user input may - * not be desired for sensitive data, such as credit card numbers, in which - * case, implementers should consider setting allowBrowserAutocomplete to false. - * - * @property allowBrowserAutocomplete - * @type Boolean - * @default true - */ -YAHOO.widget.AutoComplete.prototype.allowBrowserAutocomplete = true; - -/** - * Whether or not the results container should always be displayed. - * Enabling this feature displays the container when the widget is instantiated - * and prevents the toggling of the container to a collapsed state. - * - * @property alwaysShowContainer - * @type Boolean - * @default false - */ -YAHOO.widget.AutoComplete.prototype.alwaysShowContainer = false; - -/** - * Whether or not to use an iFrame to layer over Windows form elements in - * IE. Set to true only when the results container will be on top of a - * <select> field in IE and thus exposed to the IE z-index bug (i.e., - * 5.5 < IE < 7). - * - * @property useIFrame - * @type Boolean - * @default false - */ -YAHOO.widget.AutoComplete.prototype.useIFrame = false; - -/** - * Whether or not the results container should have a shadow. - * - * @property useShadow - * @type Boolean - * @default false - */ -YAHOO.widget.AutoComplete.prototype.useShadow = false; - -///////////////////////////////////////////////////////////////////////////// -// -// Public methods -// -///////////////////////////////////////////////////////////////////////////// - - /** - * Public accessor to the unique name of the AutoComplete instance. - * - * @method toString - * @return {String} Unique name of the AutoComplete instance. - */ -YAHOO.widget.AutoComplete.prototype.toString = function() { - return "AutoComplete " + this._sName; -}; - - /** - * Returns true if container is in an expanded state, false otherwise. - * - * @method isContainerOpen - * @return {Boolean} Returns true if container is in an expanded state, false otherwise. - */ -YAHOO.widget.AutoComplete.prototype.isContainerOpen = function() { - return this._bContainerOpen; -}; - -/** - * Public accessor to the internal array of DOM <li> elements that - * display query results within the results container. - * - * @method getListItems - * @return {HTMLElement[]} Array of <li> elements within the results container. - */ -YAHOO.widget.AutoComplete.prototype.getListItems = function() { - return this._aListItems; -}; - -/** - * Public accessor to the data held in an <li> element of the - * results container. - * - * @method getListItemData - * @return {Object | Object[]} Object or array of result data or null - */ -YAHOO.widget.AutoComplete.prototype.getListItemData = function(oListItem) { - if(oListItem._oResultData) { - return oListItem._oResultData; - } - else { - return false; - } -}; - -/** - * Sets HTML markup for the results container header. This markup will be - * inserted within a <div> tag with a class of "yui-ac-hd". - * - * @method setHeader - * @param sHeader {String} HTML markup for results container header. - */ -YAHOO.widget.AutoComplete.prototype.setHeader = function(sHeader) { - if(sHeader) { - if(this._oContainer._oContent._oHeader) { - this._oContainer._oContent._oHeader.innerHTML = sHeader; - this._oContainer._oContent._oHeader.style.display = "block"; - } - } - else { - this._oContainer._oContent._oHeader.innerHTML = ""; - this._oContainer._oContent._oHeader.style.display = "none"; - } -}; - -/** - * Sets HTML markup for the results container footer. This markup will be - * inserted within a <div> tag with a class of "yui-ac-ft". - * - * @method setFooter - * @param sFooter {String} HTML markup for results container footer. - */ -YAHOO.widget.AutoComplete.prototype.setFooter = function(sFooter) { - if(sFooter) { - if(this._oContainer._oContent._oFooter) { - this._oContainer._oContent._oFooter.innerHTML = sFooter; - this._oContainer._oContent._oFooter.style.display = "block"; - } - } - else { - this._oContainer._oContent._oFooter.innerHTML = ""; - this._oContainer._oContent._oFooter.style.display = "none"; - } -}; - -/** - * Sets HTML markup for the results container body. This markup will be - * inserted within a <div> tag with a class of "yui-ac-bd". - * - * @method setBody - * @param sBody {String} HTML markup for results container body. - */ -YAHOO.widget.AutoComplete.prototype.setBody = function(sBody) { - if(sBody) { - if(this._oContainer._oContent._oBody) { - this._oContainer._oContent._oBody.innerHTML = sBody; - this._oContainer._oContent._oBody.style.display = "block"; - this._oContainer._oContent.style.display = "block"; - } - } - else { - this._oContainer._oContent._oBody.innerHTML = ""; - this._oContainer._oContent.style.display = "none"; - } - this._maxResultsDisplayed = 0; -}; - -/** - * Overridable method that converts a result item object into HTML markup - * for display. Return data values are accessible via the oResultItem object, - * and the key return value will always be oResultItem[0]. Markup will be - * displayed within <li> element tags in the container. - * - * @method formatResult - * @param oResultItem {Object} Result item representing one query result. Data is held in an array. - * @param sQuery {String} The current query string. - * @return {String} HTML markup of formatted result data. - */ -YAHOO.widget.AutoComplete.prototype.formatResult = function(oResultItem, sQuery) { - var sResult = oResultItem[0]; - if(sResult) { - return sResult; - } - else { - return ""; - } -}; - -/** - * Overridable method called before container expands allows implementers to access data - * and DOM elements. - * - * @method doBeforeExpandContainer - * @return {Boolean} Return true to continue expanding container, false to cancel the expand. - */ -YAHOO.widget.AutoComplete.prototype.doBeforeExpandContainer = function(oResultItem, sQuery) { - return true; -}; - -/** - * Makes query request to the DataSource. - * - * @method sendQuery - * @param sQuery {String} Query string. - */ -YAHOO.widget.AutoComplete.prototype.sendQuery = function(sQuery) { - this._sendQuery(sQuery); -}; - -///////////////////////////////////////////////////////////////////////////// -// -// Public events -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Fired when the input field receives focus. - * - * @event textboxFocusEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - */ -YAHOO.widget.AutoComplete.prototype.textboxFocusEvent = null; - -/** - * Fired when the input field receives key input. - * - * @event textboxKeyEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @param nKeycode {Number} The keycode number. - */ -YAHOO.widget.AutoComplete.prototype.textboxKeyEvent = null; - -/** - * Fired when the AutoComplete instance makes a query to the DataSource. - * - * @event dataRequestEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @param sQuery {String} The query string. - */ -YAHOO.widget.AutoComplete.prototype.dataRequestEvent = null; - -/** - * Fired when the AutoComplete instance receives query results from the data - * source. - * - * @event dataReturnEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @param sQuery {String} The query string. - * @param aResults {Object[]} Results array. - */ -YAHOO.widget.AutoComplete.prototype.dataReturnEvent = null; - -/** - * Fired when the AutoComplete instance does not receive query results from the - * DataSource due to an error. - * - * @event dataErrorEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @param sQuery {String} The query string. - */ -YAHOO.widget.AutoComplete.prototype.dataErrorEvent = null; - -/** - * Fired when the results container is expanded. - * - * @event containerExpandEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - */ -YAHOO.widget.AutoComplete.prototype.containerExpandEvent = null; - -/** - * Fired when the input field has been prefilled by the type-ahead - * feature. - * - * @event typeAheadEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @param sQuery {String} The query string. - * @param sPrefill {String} The prefill string. - */ -YAHOO.widget.AutoComplete.prototype.typeAheadEvent = null; - -/** - * Fired when result item has been moused over. - * - * @event itemMouseOverEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @param elItem {HTMLElement} The <li> element item moused to. - */ -YAHOO.widget.AutoComplete.prototype.itemMouseOverEvent = null; - -/** - * Fired when result item has been moused out. - * - * @event itemMouseOutEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @param elItem {HTMLElement} The <li> element item moused from. - */ -YAHOO.widget.AutoComplete.prototype.itemMouseOutEvent = null; - -/** - * Fired when result item has been arrowed to. - * - * @event itemArrowToEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @param elItem {HTMLElement} The <li> element item arrowed to. - */ -YAHOO.widget.AutoComplete.prototype.itemArrowToEvent = null; - -/** - * Fired when result item has been arrowed away from. - * - * @event itemArrowFromEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @param elItem {HTMLElement} The <li> element item arrowed from. - */ -YAHOO.widget.AutoComplete.prototype.itemArrowFromEvent = null; - -/** - * Fired when an item is selected via mouse click, ENTER key, or TAB key. - * - * @event itemSelectEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @param elItem {HTMLElement} The selected <li> element item. - * @param oData {Object} The data returned for the item, either as an object, - * or mapped from the schema into an array. - */ -YAHOO.widget.AutoComplete.prototype.itemSelectEvent = null; - -/** - * Fired when a user selection does not match any of the displayed result items. - * Note that this event may not behave as expected when delimiter characters - * have been defined. - * - * @event unmatchedItemSelectEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @param sQuery {String} The user-typed query string. - */ -YAHOO.widget.AutoComplete.prototype.unmatchedItemSelectEvent = null; - -/** - * Fired if forceSelection is enabled and the user's input has been cleared - * because it did not match one of the returned query results. - * - * @event selectionEnforceEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - */ -YAHOO.widget.AutoComplete.prototype.selectionEnforceEvent = null; - -/** - * Fired when the results container is collapsed. - * - * @event containerCollapseEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - */ -YAHOO.widget.AutoComplete.prototype.containerCollapseEvent = null; - -/** - * Fired when the input field loses focus. - * - * @event textboxBlurEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - */ -YAHOO.widget.AutoComplete.prototype.textboxBlurEvent = null; - -///////////////////////////////////////////////////////////////////////////// -// -// Private member variables -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Internal class variable to index multiple AutoComplete instances. - * - * @property _nIndex - * @type Number - * @default 0 - * @private - */ -YAHOO.widget.AutoComplete._nIndex = 0; - -/** - * Name of AutoComplete instance. - * - * @property _sName - * @type String - * @private - */ -YAHOO.widget.AutoComplete.prototype._sName = null; - -/** - * Text input field DOM element. - * - * @property _oTextbox - * @type HTMLElement - * @private - */ -YAHOO.widget.AutoComplete.prototype._oTextbox = null; - -/** - * Whether or not the input field is currently in focus. If query results come back - * but the user has already moved on, do not proceed with auto complete behavior. - * - * @property _bFocused - * @type Boolean - * @private - */ -YAHOO.widget.AutoComplete.prototype._bFocused = true; - -/** - * Animation instance for container expand/collapse. - * - * @property _oAnim - * @type Boolean - * @private - */ -YAHOO.widget.AutoComplete.prototype._oAnim = null; - -/** - * Container DOM element. - * - * @property _oContainer - * @type HTMLElement - * @private - */ -YAHOO.widget.AutoComplete.prototype._oContainer = null; - -/** - * Whether or not the results container is currently open. - * - * @property _bContainerOpen - * @type Boolean - * @private - */ -YAHOO.widget.AutoComplete.prototype._bContainerOpen = false; - -/** - * Whether or not the mouse is currently over the results - * container. This is necessary in order to prevent clicks on container items - * from being text input field blur events. - * - * @property _bOverContainer - * @type Boolean - * @private - */ -YAHOO.widget.AutoComplete.prototype._bOverContainer = false; - -/** - * Array of <li> elements references that contain query results within the - * results container. - * - * @property _aListItems - * @type HTMLElement[] - * @private - */ -YAHOO.widget.AutoComplete.prototype._aListItems = null; - -/** - * Number of <li> elements currently displayed in results container. - * - * @property _nDisplayedItems - * @type Number - * @private - */ -YAHOO.widget.AutoComplete.prototype._nDisplayedItems = 0; - -/** - * Internal count of <li> elements displayed and hidden in results container. - * - * @property _maxResultsDisplayed - * @type Number - * @private - */ -YAHOO.widget.AutoComplete.prototype._maxResultsDisplayed = 0; - -/** - * Current query string - * - * @property _sCurQuery - * @type String - * @private - */ -YAHOO.widget.AutoComplete.prototype._sCurQuery = null; - -/** - * Past queries this session (for saving delimited queries). - * - * @property _sSavedQuery - * @type String - * @private - */ -YAHOO.widget.AutoComplete.prototype._sSavedQuery = null; - -/** - * Pointer to the currently highlighted <li> element in the container. - * - * @property _oCurItem - * @type HTMLElement - * @private - */ -YAHOO.widget.AutoComplete.prototype._oCurItem = null; - -/** - * Whether or not an item has been selected since the container was populated - * with results. Reset to false by _populateList, and set to true when item is - * selected. - * - * @property _bItemSelected - * @type Boolean - * @private - */ -YAHOO.widget.AutoComplete.prototype._bItemSelected = false; - -/** - * Key code of the last key pressed in textbox. - * - * @property _nKeyCode - * @type Number - * @private - */ -YAHOO.widget.AutoComplete.prototype._nKeyCode = null; - -/** - * Delay timeout ID. - * - * @property _nDelayID - * @type Number - * @private - */ -YAHOO.widget.AutoComplete.prototype._nDelayID = -1; - -/** - * Src to iFrame used when useIFrame = true. Supports implementations over SSL - * as well. - * - * @property _iFrameSrc - * @type String - * @private - */ -YAHOO.widget.AutoComplete.prototype._iFrameSrc = "javascript:false;"; - -/** - * For users typing via certain IMEs, queries must be triggered by intervals, - * since key events yet supported across all browsers for all IMEs. - * - * @property _queryInterval - * @type Object - * @private - */ -YAHOO.widget.AutoComplete.prototype._queryInterval = null; - -/** - * Internal tracker to last known textbox value, used to determine whether or not - * to trigger a query via interval for certain IME users. - * - * @event _sLastTextboxValue - * @type String - * @private - */ -YAHOO.widget.AutoComplete.prototype._sLastTextboxValue = null; - -///////////////////////////////////////////////////////////////////////////// -// -// Private methods -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Updates and validates latest public config properties. - * - * @method __initProps - * @private - */ -YAHOO.widget.AutoComplete.prototype._initProps = function() { - // Correct any invalid values - var minQueryLength = this.minQueryLength; - if(isNaN(minQueryLength) || (minQueryLength < 1)) { - minQueryLength = 1; - } - var maxResultsDisplayed = this.maxResultsDisplayed; - if(isNaN(this.maxResultsDisplayed) || (this.maxResultsDisplayed < 1)) { - this.maxResultsDisplayed = 10; - } - var queryDelay = this.queryDelay; - if(isNaN(this.queryDelay) || (this.queryDelay < 0)) { - this.queryDelay = 0.5; - } - var aDelimChar = (this.delimChar) ? this.delimChar : null; - if(aDelimChar) { - if(typeof aDelimChar == "string") { - this.delimChar = [aDelimChar]; - } - else if(aDelimChar.constructor != Array) { - this.delimChar = null; - } - } - var animSpeed = this.animSpeed; - if((this.animHoriz || this.animVert) && YAHOO.util.Anim) { - if(isNaN(animSpeed) || (animSpeed < 0)) { - animSpeed = 0.3; - } - if(!this._oAnim ) { - oAnim = new YAHOO.util.Anim(this._oContainer._oContent, {}, this.animSpeed); - this._oAnim = oAnim; - } - else { - this._oAnim.duration = animSpeed; - } - } - if(this.forceSelection && this.delimChar) { - YAHOO.log("The forceSelection feature has been enabled with delimChar defined.","warn", this.toString()); - } -}; - -/** - * Initializes the results container helpers if they are enabled and do - * not exist - * - * @method _initContainerHelpers - * @private - */ -YAHOO.widget.AutoComplete.prototype._initContainerHelpers = function() { - if(this.useShadow && !this._oContainer._oShadow) { - var oShadow = document.createElement("div"); - oShadow.className = "yui-ac-shadow"; - this._oContainer._oShadow = this._oContainer.appendChild(oShadow); - } - if(this.useIFrame && !this._oContainer._oIFrame) { - var oIFrame = document.createElement("iframe"); - oIFrame.src = this._iFrameSrc; - oIFrame.frameBorder = 0; - oIFrame.scrolling = "no"; - oIFrame.style.position = "absolute"; - oIFrame.style.width = "100%"; - oIFrame.style.height = "100%"; - oIFrame.tabIndex = -1; - this._oContainer._oIFrame = this._oContainer.appendChild(oIFrame); - } -}; - -/** - * Initializes the results container once at object creation - * - * @method _initContainer - * @private - */ -YAHOO.widget.AutoComplete.prototype._initContainer = function() { - if(!this._oContainer._oContent) { - // The oContent div helps size the iframe and shadow properly - var oContent = document.createElement("div"); - oContent.className = "yui-ac-content"; - oContent.style.display = "none"; - this._oContainer._oContent = this._oContainer.appendChild(oContent); - - var oHeader = document.createElement("div"); - oHeader.className = "yui-ac-hd"; - oHeader.style.display = "none"; - this._oContainer._oContent._oHeader = this._oContainer._oContent.appendChild(oHeader); - - var oBody = document.createElement("div"); - oBody.className = "yui-ac-bd"; - this._oContainer._oContent._oBody = this._oContainer._oContent.appendChild(oBody); - - var oFooter = document.createElement("div"); - oFooter.className = "yui-ac-ft"; - oFooter.style.display = "none"; - this._oContainer._oContent._oFooter = this._oContainer._oContent.appendChild(oFooter); - } - else { - YAHOO.log("Could not initialize the container","warn",this.toString()); - } -}; - -/** - * Clears out contents of container body and creates up to - * YAHOO.widget.AutoComplete#maxResultsDisplayed <li> elements in an - * <ul> element. - * - * @method _initList - * @private - */ -YAHOO.widget.AutoComplete.prototype._initList = function() { - this._aListItems = []; - while(this._oContainer._oContent._oBody.hasChildNodes()) { - var oldListItems = this.getListItems(); - if(oldListItems) { - for(var oldi = oldListItems.length-1; oldi >= 0; i--) { - oldListItems[oldi] = null; - } - } - this._oContainer._oContent._oBody.innerHTML = ""; - } - - var oList = document.createElement("ul"); - oList = this._oContainer._oContent._oBody.appendChild(oList); - for(var i=0; i= 18 && nKeyCode <= 20) || // alt,pause/break,caps lock - (nKeyCode == 27) || // esc - (nKeyCode >= 33 && nKeyCode <= 35) || // page up,page down,end - (nKeyCode >= 36 && nKeyCode <= 38) || // home,left,up - (nKeyCode == 40) || // down - (nKeyCode >= 44 && nKeyCode <= 45)) { // print screen,insert - return true; - } - return false; -}; - -/** - * Makes query request to the DataSource. - * - * @method _sendQuery - * @param sQuery {String} Query string. - * @private - */ -YAHOO.widget.AutoComplete.prototype._sendQuery = function(sQuery) { - // Widget has been effectively turned off - if(this.minQueryLength == -1) { - this._toggleContainer(false); - return; - } - // Delimiter has been enabled - var aDelimChar = (this.delimChar) ? this.delimChar : null; - if(aDelimChar) { - // Loop through all possible delimiters and find the latest one - // A " " may be a false positive if they are defined as delimiters AND - // are used to separate delimited queries - var nDelimIndex = -1; - for(var i = aDelimChar.length-1; i >= 0; i--) { - var nNewIndex = sQuery.lastIndexOf(aDelimChar[i]); - if(nNewIndex > nDelimIndex) { - nDelimIndex = nNewIndex; - } - } - // If we think the last delimiter is a space (" "), make sure it is NOT - // a false positive by also checking the char directly before it - if(aDelimChar[i] == " ") { - for (var j = aDelimChar.length-1; j >= 0; j--) { - if(sQuery[nDelimIndex - 1] == aDelimChar[j]) { - nDelimIndex--; - break; - } - } - } - // A delimiter has been found so extract the latest query - if (nDelimIndex > -1) { - var nQueryStart = nDelimIndex + 1; - // Trim any white space from the beginning... - while(sQuery.charAt(nQueryStart) == " ") { - nQueryStart += 1; - } - // ...and save the rest of the string for later - this._sSavedQuery = sQuery.substring(0,nQueryStart); - // Here is the query itself - sQuery = sQuery.substr(nQueryStart); - } - else if(sQuery.indexOf(this._sSavedQuery) < 0){ - this._sSavedQuery = null; - } - } - - // Don't search queries that are too short - if (sQuery && (sQuery.length < this.minQueryLength) || (!sQuery && this.minQueryLength > 0)) { - if (this._nDelayID != -1) { - clearTimeout(this._nDelayID); - } - this._toggleContainer(false); - return; - } - - sQuery = encodeURIComponent(sQuery); - this._nDelayID = -1; // Reset timeout ID because request has been made - this.dataRequestEvent.fire(this, sQuery); - this.dataSource.getResults(this._populateList, sQuery, this); -}; - -/** - * Populates the array of <li> elements in the container with query - * results. This method is passed to YAHOO.widget.DataSource#getResults as a - * callback function so results from the DataSource instance are returned to the - * AutoComplete instance. - * - * @method _populateList - * @param sQuery {String} The query string. - * @param aResults {Object[]} An array of query result objects from the DataSource. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._populateList = function(sQuery, aResults, oSelf) { - if(aResults === null) { - oSelf.dataErrorEvent.fire(oSelf, sQuery); - } - if (!oSelf._bFocused || !aResults) { - return; - } - - var isOpera = (navigator.userAgent.toLowerCase().indexOf("opera") != -1); - var contentStyle = oSelf._oContainer._oContent.style; - contentStyle.width = (!isOpera) ? null : ""; - contentStyle.height = (!isOpera) ? null : ""; - - var sCurQuery = decodeURIComponent(sQuery); - oSelf._sCurQuery = sCurQuery; - oSelf._bItemSelected = false; - - if(oSelf._maxResultsDisplayed != oSelf.maxResultsDisplayed) { - oSelf._initList(); - } - - var nItems = Math.min(aResults.length,oSelf.maxResultsDisplayed); - oSelf._nDisplayedItems = nItems; - if (nItems > 0) { - oSelf._initContainerHelpers(); - var aItems = oSelf._aListItems; - - // Fill items with data - for(var i = nItems-1; i >= 0; i--) { - var oItemi = aItems[i]; - var oResultItemi = aResults[i]; - oItemi.innerHTML = oSelf.formatResult(oResultItemi, sCurQuery); - oItemi.style.display = "list-item"; - oItemi._sResultKey = oResultItemi[0]; - oItemi._oResultData = oResultItemi; - - } - - // Empty out remaining items if any - for(var j = aItems.length-1; j >= nItems ; j--) { - var oItemj = aItems[j]; - oItemj.innerHTML = null; - oItemj.style.display = "none"; - oItemj._sResultKey = null; - oItemj._oResultData = null; - } - - if(oSelf.autoHighlight) { - // Go to the first item - var oFirstItem = aItems[0]; - oSelf._toggleHighlight(oFirstItem,"to"); - oSelf.itemArrowToEvent.fire(oSelf, oFirstItem); - oSelf._typeAhead(oFirstItem,sQuery); - } - else { - oSelf._oCurItem = null; - } - - // Expand the container - var ok = oSelf.doBeforeExpandContainer(oSelf._oTextbox, oSelf._oContainer, sQuery, aResults); - oSelf._toggleContainer(ok); - } - else { - oSelf._toggleContainer(false); - } - oSelf.dataReturnEvent.fire(oSelf, sQuery, aResults); -}; - -/** - * When forceSelection is true and the user attempts - * leave the text input box without selecting an item from the query results, - * the user selection is cleared. - * - * @method _clearSelection - * @private - */ -YAHOO.widget.AutoComplete.prototype._clearSelection = function() { - var sValue = this._oTextbox.value; - var sChar = (this.delimChar) ? this.delimChar[0] : null; - var nIndex = (sChar) ? sValue.lastIndexOf(sChar, sValue.length-2) : -1; - if(nIndex > -1) { - this._oTextbox.value = sValue.substring(0,nIndex); - } - else { - this._oTextbox.value = ""; - } - this._sSavedQuery = this._oTextbox.value; - - // Fire custom event - this.selectionEnforceEvent.fire(this); -}; - -/** - * Whether or not user-typed value in the text input box matches any of the - * query results. - * - * @method _textMatchesOption - * @return {Boolean} True if user-input text matches a result, false otherwise. - * @private - */ -YAHOO.widget.AutoComplete.prototype._textMatchesOption = function() { - var foundMatch = false; - - for(var i = this._nDisplayedItems-1; i >= 0 ; i--) { - var oItem = this._aListItems[i]; - var sMatch = oItem._sResultKey.toLowerCase(); - if (sMatch == this._sCurQuery.toLowerCase()) { - foundMatch = true; - break; - } - } - return(foundMatch); -}; - -/** - * Updates in the text input box with the first query result as the user types, - * selecting the substring that the user has not typed. - * - * @method _typeAhead - * @param oItem {HTMLElement} The <li> element item whose data populates the input field. - * @param sQuery {String} Query string. - * @private - */ -YAHOO.widget.AutoComplete.prototype._typeAhead = function(oItem, sQuery) { - // Don't update if turned off - if (!this.typeAhead || (this._nKeyCode == 8)) { - return; - } - - var oTextbox = this._oTextbox; - var sValue = this._oTextbox.value; // any saved queries plus what user has typed - - // Don't update with type-ahead if text selection is not supported - if(!oTextbox.setSelectionRange && !oTextbox.createTextRange) { - return; - } - - // Select the portion of text that the user has not typed - var nStart = sValue.length; - this._updateValue(oItem); - var nEnd = oTextbox.value.length; - this._selectText(oTextbox,nStart,nEnd); - var sPrefill = oTextbox.value.substr(nStart,nEnd); - this.typeAheadEvent.fire(this,sQuery,sPrefill); -}; - -/** - * Selects text in the input field. - * - * @method _selectText - * @param oTextbox {HTMLElement} Text input box element in which to select text. - * @param nStart {Number} Starting index of text string to select. - * @param nEnd {Number} Ending index of text selection. - * @private - */ -YAHOO.widget.AutoComplete.prototype._selectText = function(oTextbox, nStart, nEnd) { - if (oTextbox.setSelectionRange) { // For Mozilla - oTextbox.setSelectionRange(nStart,nEnd); - } - else if (oTextbox.createTextRange) { // For IE - var oTextRange = oTextbox.createTextRange(); - oTextRange.moveStart("character", nStart); - oTextRange.moveEnd("character", nEnd-oTextbox.value.length); - oTextRange.select(); - } - else { - oTextbox.select(); - } -}; - -/** - * Syncs results container with its helpers. - * - * @method _toggleContainerHelpers - * @param bShow {Boolean} True if container is expanded, false if collapsed - * @private - */ -YAHOO.widget.AutoComplete.prototype._toggleContainerHelpers = function(bShow) { - var bFireEvent = false; - var width = this._oContainer._oContent.offsetWidth + "px"; - var height = this._oContainer._oContent.offsetHeight + "px"; - - if(this.useIFrame && this._oContainer._oIFrame) { - bFireEvent = true; - if(bShow) { - this._oContainer._oIFrame.style.width = width; - this._oContainer._oIFrame.style.height = height; - } - else { - this._oContainer._oIFrame.style.width = 0; - this._oContainer._oIFrame.style.height = 0; - } - } - if(this.useShadow && this._oContainer._oShadow) { - bFireEvent = true; - if(bShow) { - this._oContainer._oShadow.style.width = width; - this._oContainer._oShadow.style.height = height; - } - else { - this._oContainer._oShadow.style.width = 0; - this._oContainer._oShadow.style.height = 0; - } - } -}; - -/** - * Animates expansion or collapse of the container. - * - * @method _toggleContainer - * @param bShow {Boolean} True if container should be expanded, false if container should be collapsed - * @private - */ -YAHOO.widget.AutoComplete.prototype._toggleContainer = function(bShow) { - var oContainer = this._oContainer; - - // Implementer has container always open so don't mess with it - if(this.alwaysShowContainer && this._bContainerOpen) { - return; - } - - // Clear contents of container - if(!bShow) { - this._oContainer._oContent.scrollTop = 0; - var aItems = this._aListItems; - - if(aItems && (aItems.length > 0)) { - for(var i = aItems.length-1; i >= 0 ; i--) { - aItems[i].style.display = "none"; - } - } - - if (this._oCurItem) { - this._toggleHighlight(this._oCurItem,"from"); - } - - this._oCurItem = null; - this._nDisplayedItems = 0; - this._sCurQuery = null; - } - - // Container is already closed - if (!bShow && !this._bContainerOpen) { - oContainer._oContent.style.display = "none"; - return; - } - - // If animation is enabled... - var oAnim = this._oAnim; - if (oAnim && oAnim.getEl() && (this.animHoriz || this.animVert)) { - // If helpers need to be collapsed, do it right away... - // but if helpers need to be expanded, wait until after the container expands - if(!bShow) { - this._toggleContainerHelpers(bShow); - } - - if(oAnim.isAnimated()) { - oAnim.stop(); - } - - // Clone container to grab current size offscreen - var oClone = oContainer._oContent.cloneNode(true); - oContainer.appendChild(oClone); - oClone.style.top = "-9000px"; - oClone.style.display = "block"; - - // Current size of the container is the EXPANDED size - var wExp = oClone.offsetWidth; - var hExp = oClone.offsetHeight; - - // Calculate COLLAPSED sizes based on horiz and vert anim - var wColl = (this.animHoriz) ? 0 : wExp; - var hColl = (this.animVert) ? 0 : hExp; - - // Set animation sizes - oAnim.attributes = (bShow) ? - {width: { to: wExp }, height: { to: hExp }} : - {width: { to: wColl}, height: { to: hColl }}; - - // If opening anew, set to a collapsed size... - if(bShow && !this._bContainerOpen) { - oContainer._oContent.style.width = wColl+"px"; - oContainer._oContent.style.height = hColl+"px"; - } - // Else, set it to its last known size. - else { - oContainer._oContent.style.width = wExp+"px"; - oContainer._oContent.style.height = hExp+"px"; - } - - oContainer.removeChild(oClone); - oClone = null; - - var oSelf = this; - var onAnimComplete = function() { - // Finish the collapse - oAnim.onComplete.unsubscribeAll(); - - if(bShow) { - oSelf.containerExpandEvent.fire(oSelf); - } - else { - oContainer._oContent.style.display = "none"; - oSelf.containerCollapseEvent.fire(oSelf); - } - oSelf._toggleContainerHelpers(bShow); - }; - - // Display container and animate it - oContainer._oContent.style.display = "block"; - oAnim.onComplete.subscribe(onAnimComplete); - oAnim.animate(); - this._bContainerOpen = bShow; - } - // Else don't animate, just show or hide - else { - if(bShow) { - oContainer._oContent.style.display = "block"; - this.containerExpandEvent.fire(this); - } - else { - oContainer._oContent.style.display = "none"; - this.containerCollapseEvent.fire(this); - } - this._toggleContainerHelpers(bShow); - this._bContainerOpen = bShow; - } - -}; - -/** - * Toggles the highlight on or off for an item in the container, and also cleans - * up highlighting of any previous item. - * - * @method _toggleHighlight - * @param oNewItem {HTMLElement} The <li> element item to receive highlight behavior. - * @param sType {String} Type "mouseover" will toggle highlight on, and "mouseout" will toggle highlight off. - * @private - */ -YAHOO.widget.AutoComplete.prototype._toggleHighlight = function(oNewItem, sType) { - var sHighlight = this.highlightClassName; - if(this._oCurItem) { - // Remove highlight from old item - YAHOO.util.Dom.removeClass(this._oCurItem, sHighlight); - } - - if((sType == "to") && sHighlight) { - // Apply highlight to new item - YAHOO.util.Dom.addClass(oNewItem, sHighlight); - this._oCurItem = oNewItem; - } -}; - -/** - * Toggles the pre-highlight on or off for an item in the container. - * - * @method _togglePrehighlight - * @param oNewItem {HTMLElement} The <li> element item to receive highlight behavior. - * @param sType {String} Type "mouseover" will toggle highlight on, and "mouseout" will toggle highlight off. - * @private - */ -YAHOO.widget.AutoComplete.prototype._togglePrehighlight = function(oNewItem, sType) { - if(oNewItem == this._oCurItem) { - return; - } - - var sPrehighlight = this.prehighlightClassName; - if((sType == "mouseover") && sPrehighlight) { - // Apply prehighlight to new item - YAHOO.util.Dom.addClass(oNewItem, sPrehighlight); - } - else { - // Remove prehighlight from old item - YAHOO.util.Dom.removeClass(oNewItem, sPrehighlight); - } -}; - -/** - * Updates the text input box value with selected query result. If a delimiter - * has been defined, then the value gets appended with the delimiter. - * - * @method _updateValue - * @param oItem {HTMLElement} The <li> element item with which to update the value. - * @private - */ -YAHOO.widget.AutoComplete.prototype._updateValue = function(oItem) { - var oTextbox = this._oTextbox; - var sDelimChar = (this.delimChar) ? (this.delimChar[0] || this.delimChar) : null; - var sSavedQuery = this._sSavedQuery; - var sResultKey = oItem._sResultKey; - oTextbox.focus(); - - // First clear text field - oTextbox.value = ""; - // Grab data to put into text field - if(sDelimChar) { - if(sSavedQuery) { - oTextbox.value = sSavedQuery; - } - oTextbox.value += sResultKey + sDelimChar; - if(sDelimChar != " ") { - oTextbox.value += " "; - } - } - else { oTextbox.value = sResultKey; } - - // scroll to bottom of textarea if necessary - if(oTextbox.type == "textarea") { - oTextbox.scrollTop = oTextbox.scrollHeight; - } - - // move cursor to end - var end = oTextbox.value.length; - this._selectText(oTextbox,end,end); - - this._oCurItem = oItem; -}; - -/** - * Selects a result item from the container - * - * @method _selectItem - * @param oItem {HTMLElement} The selected <li> element item. - * @private - */ -YAHOO.widget.AutoComplete.prototype._selectItem = function(oItem) { - this._bItemSelected = true; - this._updateValue(oItem); - this._cancelIntervalDetection(this); - this.itemSelectEvent.fire(this, oItem, oItem._oResultData); - this._toggleContainer(false); -}; - -/** - * For values updated by type-ahead, the right arrow key jumps to the end - * of the textbox, otherwise the container is closed. - * - * @method _jumpSelection - * @private - */ -YAHOO.widget.AutoComplete.prototype._jumpSelection = function() { - if(!this.typeAhead) { - return; - } - else { - this._toggleContainer(false); - } -}; - -/** - * Triggered by up and down arrow keys, changes the current highlighted - * <li> element item. Scrolls container if necessary. - * - * @method _moveSelection - * @param nKeyCode {Number} Code of key pressed. - * @private - */ -YAHOO.widget.AutoComplete.prototype._moveSelection = function(nKeyCode) { - if(this._bContainerOpen) { - // Determine current item's id number - var oCurItem = this._oCurItem; - var nCurItemIndex = -1; - - if (oCurItem) { - nCurItemIndex = oCurItem._nItemIndex; - } - - var nNewItemIndex = (nKeyCode == 40) ? - (nCurItemIndex + 1) : (nCurItemIndex - 1); - - // Out of bounds - if (nNewItemIndex < -2 || nNewItemIndex >= this._nDisplayedItems) { - return; - } - - if (oCurItem) { - // Unhighlight current item - this._toggleHighlight(oCurItem, "from"); - this.itemArrowFromEvent.fire(this, oCurItem); - } - if (nNewItemIndex == -1) { - // Go back to query (remove type-ahead string) - if(this.delimChar && this._sSavedQuery) { - if (!this._textMatchesOption()) { - this._oTextbox.value = this._sSavedQuery; - } - else { - this._oTextbox.value = this._sSavedQuery + this._sCurQuery; - } - } - else { - this._oTextbox.value = this._sCurQuery; - } - this._oCurItem = null; - return; - } - if (nNewItemIndex == -2) { - // Close container - this._toggleContainer(false); - return; - } - - var oNewItem = this._aListItems[nNewItemIndex]; - - // Scroll the container if necessary - var oContent = this._oContainer._oContent; - var scrollOn = ((YAHOO.util.Dom.getStyle(oContent,"overflow") == "auto") || - (YAHOO.util.Dom.getStyle(oContent,"overflowY") == "auto")); - if(scrollOn && (nNewItemIndex > -1) && - (nNewItemIndex < this._nDisplayedItems)) { - // User is keying down - if(nKeyCode == 40) { - // Bottom of selected item is below scroll area... - if((oNewItem.offsetTop+oNewItem.offsetHeight) > (oContent.scrollTop + oContent.offsetHeight)) { - // Set bottom of scroll area to bottom of selected item - oContent.scrollTop = (oNewItem.offsetTop+oNewItem.offsetHeight) - oContent.offsetHeight; - } - // Bottom of selected item is above scroll area... - else if((oNewItem.offsetTop+oNewItem.offsetHeight) < oContent.scrollTop) { - // Set top of selected item to top of scroll area - oContent.scrollTop = oNewItem.offsetTop; - - } - } - // User is keying up - else { - // Top of selected item is above scroll area - if(oNewItem.offsetTop < oContent.scrollTop) { - // Set top of scroll area to top of selected item - this._oContainer._oContent.scrollTop = oNewItem.offsetTop; - } - // Top of selected item is below scroll area - else if(oNewItem.offsetTop > (oContent.scrollTop + oContent.offsetHeight)) { - // Set bottom of selected item to bottom of scroll area - this._oContainer._oContent.scrollTop = (oNewItem.offsetTop+oNewItem.offsetHeight) - oContent.offsetHeight; - } - } - } - - this._toggleHighlight(oNewItem, "to"); - this.itemArrowToEvent.fire(this, oNewItem); - if(this.typeAhead) { - this._updateValue(oNewItem); - } - } -}; - -///////////////////////////////////////////////////////////////////////////// -// -// Private event handlers -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Handles <li> element mouseover events in the container. - * - * @method _onItemMouseover - * @param v {HTMLEvent} The mouseover event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onItemMouseover = function(v,oSelf) { - if(oSelf.prehighlightClassName) { - oSelf._togglePrehighlight(this,"mouseover"); - } - else { - oSelf._toggleHighlight(this,"to"); - } - - oSelf.itemMouseOverEvent.fire(oSelf, this); -}; - -/** - * Handles <li> element mouseout events in the container. - * - * @method _onItemMouseout - * @param v {HTMLEvent} The mouseout event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onItemMouseout = function(v,oSelf) { - if(oSelf.prehighlightClassName) { - oSelf._togglePrehighlight(this,"mouseout"); - } - else { - oSelf._toggleHighlight(this,"from"); - } - - oSelf.itemMouseOutEvent.fire(oSelf, this); -}; - -/** - * Handles <li> element click events in the container. - * - * @method _onItemMouseclick - * @param v {HTMLEvent} The click event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onItemMouseclick = function(v,oSelf) { - // In case item has not been moused over - oSelf._toggleHighlight(this,"to"); - oSelf._selectItem(this); -}; - -/** - * Handles container mouseover events. - * - * @method _onContainerMouseover - * @param v {HTMLEvent} The mouseover event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onContainerMouseover = function(v,oSelf) { - oSelf._bOverContainer = true; -}; - -/** - * Handles container mouseout events. - * - * @method _onContainerMouseout - * @param v {HTMLEvent} The mouseout event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onContainerMouseout = function(v,oSelf) { - oSelf._bOverContainer = false; - // If container is still active - if(oSelf._oCurItem) { - oSelf._toggleHighlight(oSelf._oCurItem,"to"); - } -}; - -/** - * Handles container scroll events. - * - * @method _onContainerScroll - * @param v {HTMLEvent} The scroll event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onContainerScroll = function(v,oSelf) { - oSelf._oTextbox.focus(); -}; - -/** - * Handles container resize events. - * - * @method _onContainerResize - * @param v {HTMLEvent} The resize event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onContainerResize = function(v,oSelf) { - oSelf._toggleContainerHelpers(oSelf._bContainerOpen); -}; - - -/** - * Handles textbox keydown events of functional keys, mainly for UI behavior. - * - * @method _onTextboxKeyDown - * @param v {HTMLEvent} The keydown event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onTextboxKeyDown = function(v,oSelf) { - var nKeyCode = v.keyCode; - - switch (nKeyCode) { - case 9: // tab - if(oSelf.delimChar && (oSelf._nKeyCode != nKeyCode)) { - if(oSelf._bContainerOpen) { - YAHOO.util.Event.stopEvent(v); - } - } - // select an item or clear out - if(oSelf._oCurItem) { - oSelf._selectItem(oSelf._oCurItem); - } - else { - oSelf._toggleContainer(false); - } - break; - case 13: // enter - if(oSelf._nKeyCode != nKeyCode) { - if(oSelf._bContainerOpen) { - YAHOO.util.Event.stopEvent(v); - } - } - if(oSelf._oCurItem) { - oSelf._selectItem(oSelf._oCurItem); - } - else { - oSelf._toggleContainer(false); - } - break; - case 27: // esc - oSelf._toggleContainer(false); - return; - case 39: // right - oSelf._jumpSelection(); - break; - case 38: // up - YAHOO.util.Event.stopEvent(v); - oSelf._moveSelection(nKeyCode); - break; - case 40: // down - YAHOO.util.Event.stopEvent(v); - oSelf._moveSelection(nKeyCode); - break; - default: - break; - } -}; - -/** - * Handles textbox keypress events. - * @method _onTextboxKeyPress - * @param v {HTMLEvent} The keypress event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onTextboxKeyPress = function(v,oSelf) { - var nKeyCode = v.keyCode; - - //Expose only to Mac browsers, where stopEvent is ineffective on keydown events (bug 790337) - var isMac = (navigator.userAgent.toLowerCase().indexOf("mac") != -1); - if(isMac) { - switch (nKeyCode) { - case 9: // tab - if(oSelf.delimChar && (oSelf._nKeyCode != nKeyCode)) { - if(oSelf._bContainerOpen) { - YAHOO.util.Event.stopEvent(v); - } - } - break; - case 13: // enter - if(oSelf._nKeyCode != nKeyCode) { - if(oSelf._bContainerOpen) { - YAHOO.util.Event.stopEvent(v); - } - } - break; - case 38: // up - case 40: // down - YAHOO.util.Event.stopEvent(v); - break; - default: - break; - } - } - - //TODO: (?) limit only to non-IE, non-Mac-FF for Korean IME support (bug 811948) - // Korean IME detected - else if(nKeyCode == 229) { - oSelf._queryInterval = setInterval(function() { oSelf._onIMEDetected(oSelf); },500); - } -}; - -/** - * Handles textbox keyup events that trigger queries. - * - * @method _onTextboxKeyUp - * @param v {HTMLEvent} The keyup event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onTextboxKeyUp = function(v,oSelf) { - // Check to see if any of the public properties have been updated - oSelf._initProps(); - - var nKeyCode = v.keyCode; - oSelf._nKeyCode = nKeyCode; - var sText = this.value; //string in textbox - - // Filter out chars that don't trigger queries - if (oSelf._isIgnoreKey(nKeyCode) || (sText.toLowerCase() == oSelf._sCurQuery)) { - return; - } - else { - oSelf.textboxKeyEvent.fire(oSelf, nKeyCode); - } - - // Set timeout on the request - if (oSelf.queryDelay > 0) { - var nDelayID = - setTimeout(function(){oSelf._sendQuery(sText);},(oSelf.queryDelay * 1000)); - - if (oSelf._nDelayID != -1) { - clearTimeout(oSelf._nDelayID); - } - - oSelf._nDelayID = nDelayID; - } - else { - // No delay so send request immediately - oSelf._sendQuery(sText); - } -}; - -/** - * Handles text input box receiving focus. - * - * @method _onTextboxFocus - * @param v {HTMLEvent} The focus event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onTextboxFocus = function (v,oSelf) { - oSelf._oTextbox.setAttribute("autocomplete","off"); - oSelf._bFocused = true; - oSelf.textboxFocusEvent.fire(oSelf); -}; - -/** - * Handles text input box losing focus. - * - * @method _onTextboxBlur - * @param v {HTMLEvent} The focus event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onTextboxBlur = function (v,oSelf) { - // Don't treat as a blur if it was a selection via mouse click - if(!oSelf._bOverContainer || (oSelf._nKeyCode == 9)) { - // Current query needs to be validated - if(!oSelf._bItemSelected) { - if(!oSelf._bContainerOpen || (oSelf._bContainerOpen && !oSelf._textMatchesOption())) { - if(oSelf.forceSelection) { - oSelf._clearSelection(); - } - else { - oSelf.unmatchedItemSelectEvent.fire(oSelf, oSelf._sCurQuery); - } - } - } - - if(oSelf._bContainerOpen) { - oSelf._toggleContainer(false); - } - oSelf._cancelIntervalDetection(oSelf); - oSelf._bFocused = false; - oSelf.textboxBlurEvent.fire(oSelf); - } -}; - -/** - * Handles form submission event. - * - * @method _onFormSubmit - * @param v {HTMLEvent} The submit event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onFormSubmit = function(v,oSelf) { - if(oSelf.allowBrowserAutocomplete) { - oSelf._oTextbox.setAttribute("autocomplete","on"); - } - else { - oSelf._oTextbox.setAttribute("autocomplete","off"); - } -}; - -/****************************************************************************/ -/****************************************************************************/ -/****************************************************************************/ - -/** - * The DataSource classes manages sending a request and returning response from a live - * database. Supported data include local JavaScript arrays and objects and databases - * accessible via XHR connections. Supported response formats include JavaScript arrays, - * JSON, XML, and flat-file textual data. - * - * @class DataSource - * @constructor - */ -YAHOO.widget.DataSource = function() { - /* abstract class */ -}; - - -///////////////////////////////////////////////////////////////////////////// -// -// Public constants -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Error message for null data responses. - * - * @property ERROR_DATANULL - * @type String - * @static - * @final - */ -YAHOO.widget.DataSource.ERROR_DATANULL = "Response data was null"; - -/** - * Error message for data responses with parsing errors. - * - * @property ERROR_DATAPARSE - * @type String - * @static - * @final - */ -YAHOO.widget.DataSource.ERROR_DATAPARSE = "Response data could not be parsed"; - - -///////////////////////////////////////////////////////////////////////////// -// -// Public member variables -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Max size of the local cache. Set to 0 to turn off caching. Caching is - * useful to reduce the number of server connections. Recommended only for data - * sources that return comprehensive results for queries or when stale data is - * not an issue. - * - * @property maxCacheEntries - * @type Number - * @default 15 - */ -YAHOO.widget.DataSource.prototype.maxCacheEntries = 15; - -/** - * Use this to equate cache matching with the type of matching done by your live - * data source. If caching is on and queryMatchContains is true, the cache - * returns results that "contain" the query string. By default, - * queryMatchContains is set to false, meaning the cache only returns results - * that "start with" the query string. - * - * @property queryMatchContains - * @type Boolean - * @default false - */ -YAHOO.widget.DataSource.prototype.queryMatchContains = false; - -/** - * Enables query subset matching. If caching is on and queryMatchSubset is - * true, substrings of queries will return matching cached results. For - * instance, if the first query is for "abc" susequent queries that start with - * "abc", like "abcd", will be queried against the cache, and not the live data - * source. Recommended only for DataSources that return comprehensive results - * for queries with very few characters. - * - * @property queryMatchSubset - * @type Boolean - * @default false - * - */ -YAHOO.widget.DataSource.prototype.queryMatchSubset = false; - -/** - * Enables query case-sensitivity matching. If caching is on and - * queryMatchCase is true, queries will only return results for case-sensitive - * matches. - * - * @property queryMatchCase - * @type Boolean - * @default false - */ -YAHOO.widget.DataSource.prototype.queryMatchCase = false; - - -///////////////////////////////////////////////////////////////////////////// -// -// Public methods -// -///////////////////////////////////////////////////////////////////////////// - - /** - * Public accessor to the unique name of the DataSource instance. - * - * @method toString - * @return {String} Unique name of the DataSource instance - */ -YAHOO.widget.DataSource.prototype.toString = function() { - return "DataSource " + this._sName; -}; - -/** - * Retrieves query results, first checking the local cache, then making the - * query request to the live data source as defined by the function doQuery. - * - * @method getResults - * @param oCallbackFn {HTMLFunction} Callback function defined by oParent object to which to return results. - * @param sQuery {String} Query string. - * @param oParent {Object} The object instance that has requested data. - */ -YAHOO.widget.DataSource.prototype.getResults = function(oCallbackFn, sQuery, oParent) { - - // First look in cache - var aResults = this._doQueryCache(oCallbackFn,sQuery,oParent); - - // Not in cache, so get results from server - if(aResults.length === 0) { - this.queryEvent.fire(this, oParent, sQuery); - this.doQuery(oCallbackFn, sQuery, oParent); - } -}; - -/** - * Abstract method implemented by subclasses to make a query to the live data - * source. Must call the callback function with the response returned from the - * query. Populates cache (if enabled). - * - * @method doQuery - * @param oCallbackFn {HTMLFunction} Callback function implemented by oParent to which to return results. - * @param sQuery {String} Query string. - * @param oParent {Object} The object instance that has requested data. - */ -YAHOO.widget.DataSource.prototype.doQuery = function(oCallbackFn, sQuery, oParent) { - /* override this */ -}; - -/** - * Flushes cache. - * - * @method flushCache - */ -YAHOO.widget.DataSource.prototype.flushCache = function() { - if(this._aCache) { - this._aCache = []; - } - if(this._aCacheHelper) { - this._aCacheHelper = []; - } - this.cacheFlushEvent.fire(this); -}; - -///////////////////////////////////////////////////////////////////////////// -// -// Public events -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Fired when a query is made to the live data source. - * - * @event queryEvent - * @param oSelf {Object} The DataSource instance. - * @param oParent {Object} The requesting object. - * @param sQuery {String} The query string. - */ -YAHOO.widget.DataSource.prototype.queryEvent = null; - -/** - * Fired when a query is made to the local cache. - * - * @event cacheQueryEvent - * @param oSelf {Object} The DataSource instance. - * @param oParent {Object} The requesting object. - * @param sQuery {String} The query string. - */ -YAHOO.widget.DataSource.prototype.cacheQueryEvent = null; - -/** - * Fired when data is retrieved from the live data source. - * - * @event getResultsEvent - * @param oSelf {Object} The DataSource instance. - * @param oParent {Object} The requesting object. - * @param sQuery {String} The query string. - * @param aResults {Object[]} Array of result objects. - */ -YAHOO.widget.DataSource.prototype.getResultsEvent = null; - -/** - * Fired when data is retrieved from the local cache. - * - * @event getCachedResultsEvent - * @param oSelf {Object} The DataSource instance. - * @param oParent {Object} The requesting object. - * @param sQuery {String} The query string. - * @param aResults {Object[]} Array of result objects. - */ -YAHOO.widget.DataSource.prototype.getCachedResultsEvent = null; - -/** - * Fired when an error is encountered with the live data source. - * - * @event dataErrorEvent - * @param oSelf {Object} The DataSource instance. - * @param oParent {Object} The requesting object. - * @param sQuery {String} The query string. - * @param sMsg {String} Error message string - */ -YAHOO.widget.DataSource.prototype.dataErrorEvent = null; - -/** - * Fired when the local cache is flushed. - * - * @event cacheFlushEvent - * @param oSelf {Object} The DataSource instance - */ -YAHOO.widget.DataSource.prototype.cacheFlushEvent = null; - -///////////////////////////////////////////////////////////////////////////// -// -// Private member variables -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Internal class variable to index multiple DataSource instances. - * - * @property _nIndex - * @type Number - * @private - * @static - */ -YAHOO.widget.DataSource._nIndex = 0; - -/** - * Name of DataSource instance. - * - * @property _sName - * @type String - * @private - */ -YAHOO.widget.DataSource.prototype._sName = null; - -/** - * Local cache of data result objects indexed chronologically. - * - * @property _aCache - * @type Object[] - * @private - */ -YAHOO.widget.DataSource.prototype._aCache = null; - - -///////////////////////////////////////////////////////////////////////////// -// -// Private methods -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Initializes DataSource instance. - * - * @method _init - * @private - */ -YAHOO.widget.DataSource.prototype._init = function() { - // Validate and initialize public configs - var maxCacheEntries = this.maxCacheEntries; - if(isNaN(maxCacheEntries) || (maxCacheEntries < 0)) { - maxCacheEntries = 0; - } - // Initialize local cache - if(maxCacheEntries > 0 && !this._aCache) { - this._aCache = []; - } - - this._sName = "instance" + YAHOO.widget.DataSource._nIndex; - YAHOO.widget.DataSource._nIndex++; - - this.queryEvent = new YAHOO.util.CustomEvent("query", this); - this.cacheQueryEvent = new YAHOO.util.CustomEvent("cacheQuery", this); - this.getResultsEvent = new YAHOO.util.CustomEvent("getResults", this); - this.getCachedResultsEvent = new YAHOO.util.CustomEvent("getCachedResults", this); - this.dataErrorEvent = new YAHOO.util.CustomEvent("dataError", this); - this.cacheFlushEvent = new YAHOO.util.CustomEvent("cacheFlush", this); -}; - -/** - * Adds a result object to the local cache, evicting the oldest element if the - * cache is full. Newer items will have higher indexes, the oldest item will have - * index of 0. - * - * @method _addCacheElem - * @param oResult {Object} Data result object, including array of results. - * @private - */ -YAHOO.widget.DataSource.prototype._addCacheElem = function(oResult) { - var aCache = this._aCache; - // Don't add if anything important is missing. - if(!aCache || !oResult || !oResult.query || !oResult.results) { - return; - } - - // If the cache is full, make room by removing from index=0 - if(aCache.length >= this.maxCacheEntries) { - aCache.shift(); - } - - // Add to cache, at the end of the array - aCache.push(oResult); -}; - -/** - * Queries the local cache for results. If query has been cached, the callback - * function is called with the results, and the cached is refreshed so that it - * is now the newest element. - * - * @method _doQueryCache - * @param oCallbackFn {HTMLFunction} Callback function defined by oParent object to which to return results. - * @param sQuery {String} Query string. - * @param oParent {Object} The object instance that has requested data. - * @return aResults {Object[]} Array of results from local cache if found, otherwise null. - * @private - */ -YAHOO.widget.DataSource.prototype._doQueryCache = function(oCallbackFn, sQuery, oParent) { - var aResults = []; - var bMatchFound = false; - var aCache = this._aCache; - var nCacheLength = (aCache) ? aCache.length : 0; - var bMatchContains = this.queryMatchContains; - - // If cache is enabled... - if((this.maxCacheEntries > 0) && aCache && (nCacheLength > 0)) { - this.cacheQueryEvent.fire(this, oParent, sQuery); - // If case is unimportant, normalize query now instead of in loops - if(!this.queryMatchCase) { - var sOrigQuery = sQuery; - sQuery = sQuery.toLowerCase(); - } - - // Loop through each cached element's query property... - for(var i = nCacheLength-1; i >= 0; i--) { - var resultObj = aCache[i]; - var aAllResultItems = resultObj.results; - // If case is unimportant, normalize match key for comparison - var matchKey = (!this.queryMatchCase) ? - encodeURIComponent(resultObj.query).toLowerCase(): - encodeURIComponent(resultObj.query); - - // If a cached match key exactly matches the query... - if(matchKey == sQuery) { - // Stash all result objects into aResult[] and stop looping through the cache. - bMatchFound = true; - aResults = aAllResultItems; - - // The matching cache element was not the most recent, - // so now we need to refresh the cache. - if(i != nCacheLength-1) { - // Remove element from its original location - aCache.splice(i,1); - // Add element as newest - this._addCacheElem(resultObj); - } - break; - } - // Else if this query is not an exact match and subset matching is enabled... - else if(this.queryMatchSubset) { - // Loop through substrings of each cached element's query property... - for(var j = sQuery.length-1; j >= 0 ; j--) { - var subQuery = sQuery.substr(0,j); - - // If a substring of a cached sQuery exactly matches the query... - if(matchKey == subQuery) { - bMatchFound = true; - - // Go through each cached result object to match against the query... - for(var k = aAllResultItems.length-1; k >= 0; k--) { - var aRecord = aAllResultItems[k]; - var sKeyIndex = (this.queryMatchCase) ? - encodeURIComponent(aRecord[0]).indexOf(sQuery): - encodeURIComponent(aRecord[0]).toLowerCase().indexOf(sQuery); - - // A STARTSWITH match is when the query is found at the beginning of the key string... - if((!bMatchContains && (sKeyIndex === 0)) || - // A CONTAINS match is when the query is found anywhere within the key string... - (bMatchContains && (sKeyIndex > -1))) { - // Stash a match into aResults[]. - aResults.unshift(aRecord); - } - } - - // Add the subset match result set object as the newest element to cache, - // and stop looping through the cache. - resultObj = {}; - resultObj.query = sQuery; - resultObj.results = aResults; - this._addCacheElem(resultObj); - break; - } - } - if(bMatchFound) { - break; - } - } - } - - // If there was a match, send along the results. - if(bMatchFound) { - this.getCachedResultsEvent.fire(this, oParent, sOrigQuery, aResults); - oCallbackFn(sOrigQuery, aResults, oParent); - } - } - return aResults; -}; - - -/****************************************************************************/ -/****************************************************************************/ -/****************************************************************************/ - -/** - * Implementation of YAHOO.widget.DataSource using XML HTTP requests that return - * query results. - * - * @class DS_XHR - * @extends YAHOO.widget.DataSource - * @requires connection - * @constructor - * @param sScriptURI {String} Absolute or relative URI to script that returns query - * results as JSON, XML, or delimited flat-file data. - * @param aSchema {String[]} Data schema definition of results. - * @param oConfigs {Object} (optional) Object literal of config params. - */ -YAHOO.widget.DS_XHR = function(sScriptURI, aSchema, oConfigs) { - // Set any config params passed in to override defaults - if(typeof oConfigs == "object") { - for(var sConfig in oConfigs) { - this[sConfig] = oConfigs[sConfig]; - } - } - - // Initialization sequence - if(!aSchema || (aSchema.constructor != Array)) { - YAHOO.log("Could not instantiate XHR DataSource due to invalid arguments", "error", this.toString()); - return; - } - else { - this.schema = aSchema; - } - this.scriptURI = sScriptURI; - this._init(); - YAHOO.log("XHR DataSource initialized","info",this.toString()); -}; - -YAHOO.widget.DS_XHR.prototype = new YAHOO.widget.DataSource(); - -///////////////////////////////////////////////////////////////////////////// -// -// Public constants -// -///////////////////////////////////////////////////////////////////////////// - -/** - * JSON data type. - * - * @property TYPE_JSON - * @type Number - * @static - * @final - */ -YAHOO.widget.DS_XHR.TYPE_JSON = 0; - -/** - * XML data type. - * - * @property TYPE_XML - * @type Number - * @static - * @final - */ -YAHOO.widget.DS_XHR.TYPE_XML = 1; - -/** - * Flat-file data type. - * - * @property TYPE_FLAT - * @type Number - * @static - * @final - */ -YAHOO.widget.DS_XHR.TYPE_FLAT = 2; - -/** - * Error message for XHR failure. - * - * @property ERROR_DATAXHR - * @type String - * @static - * @final - */ -YAHOO.widget.DS_XHR.ERROR_DATAXHR = "XHR response failed"; - -///////////////////////////////////////////////////////////////////////////// -// -// Public member variables -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Alias to YUI Connection Manager. Allows implementers to specify their own - * subclasses of the YUI Connection Manager utility. - * - * @property connMgr - * @type Object - * @default YAHOO.util.Connect - */ -YAHOO.widget.DS_XHR.prototype.connMgr = YAHOO.util.Connect; - -/** - * Number of milliseconds the XHR connection will wait for a server response. A - * a value of zero indicates the XHR connection will wait forever. Any value - * greater than zero will use the Connection utility's Auto-Abort feature. - * - * @property connTimeout - * @type Number - * @default 0 - */ -YAHOO.widget.DS_XHR.prototype.connTimeout = 0; - -/** - * Absolute or relative URI to script that returns query results. For instance, - * queries will be sent to <scriptURI>?<scriptQueryParam>=userinput - * - * @property scriptURI - * @type String - */ -YAHOO.widget.DS_XHR.prototype.scriptURI = null; - -/** - * Query string parameter name sent to scriptURI. For instance, queries will be - * sent to <scriptURI>?<scriptQueryParam>=userinput - * - * @property scriptQueryParam - * @type String - * @default "query" - */ -YAHOO.widget.DS_XHR.prototype.scriptQueryParam = "query"; - -/** - * String of key/value pairs to append to requests made to scriptURI. Define - * this string when you want to send additional query parameters to your script. - * When defined, queries will be sent to - * <scriptURI>?<scriptQueryParam>=userinput&<scriptQueryAppend> - * - * @property scriptQueryAppend - * @type String - * @default "" - */ -YAHOO.widget.DS_XHR.prototype.scriptQueryAppend = ""; - -/** - * XHR response data type. Other types that may be defined are YAHOO.widget.DS_XHR.TYPE_XML - * and YAHOO.widget.DS_XHR.TYPE_FLAT. - * - * @property responseType - * @type String - * @default YAHOO.widget.DS_XHR.TYPE_JSON - */ -YAHOO.widget.DS_XHR.prototype.responseType = YAHOO.widget.DS_XHR.TYPE_JSON; - -/** - * String after which to strip results. If the results from the XHR are sent - * back as HTML, the gzip HTML comment appears at the end of the data and should - * be ignored. - * - * @property responseStripAfter - * @type String - * @default "\n<!-" - */ -YAHOO.widget.DS_XHR.prototype.responseStripAfter = "\n 0) { - sUri += "&" + this.scriptQueryAppend; - } - YAHOO.log("DataSource is querying URL " + sUri, "info", this.toString()); - var oResponse = null; - - var oSelf = this; - /* - * Sets up ajax request callback - * - * @param {object} oReq HTTPXMLRequest object - * @private - */ - var responseSuccess = function(oResp) { - // Response ID does not match last made request ID. - if(!oSelf._oConn || (oResp.tId != oSelf._oConn.tId)) { - oSelf.dataErrorEvent.fire(oSelf, oParent, sQuery, YAHOO.widget.DataSource.ERROR_DATANULL); - YAHOO.log(YAHOO.widget.DataSource.ERROR_DATANULL, "error", this.toString()); - return; - } -//DEBUG -/*YAHOO.log(oResp.responseXML.getElementsByTagName("Result"),'warn'); -for(var foo in oResp) { - YAHOO.log(foo + ": "+oResp[foo],'warn'); -} -YAHOO.log('responseXML.xml: '+oResp.responseXML.xml,'warn');*/ - if(!isXML) { - oResp = oResp.responseText; - } - else { - oResp = oResp.responseXML; - } - if(oResp === null) { - oSelf.dataErrorEvent.fire(oSelf, oParent, sQuery, YAHOO.widget.DataSource.ERROR_DATANULL); - YAHOO.log(YAHOO.widget.DataSource.ERROR_DATANULL, "error", oSelf.toString()); - return; - } - - var aResults = oSelf.parseResponse(sQuery, oResp, oParent); - var resultObj = {}; - resultObj.query = decodeURIComponent(sQuery); - resultObj.results = aResults; - if(aResults === null) { - oSelf.dataErrorEvent.fire(oSelf, oParent, sQuery, YAHOO.widget.DataSource.ERROR_DATAPARSE); - YAHOO.log(YAHOO.widget.DataSource.ERROR_DATAPARSE, "error", oSelf.toString()); - aResults = []; - } - else { - oSelf.getResultsEvent.fire(oSelf, oParent, sQuery, aResults); - oSelf._addCacheElem(resultObj); - } - oCallbackFn(sQuery, aResults, oParent); - }; - - var responseFailure = function(oResp) { - oSelf.dataErrorEvent.fire(oSelf, oParent, sQuery, YAHOO.widget.DS_XHR.ERROR_DATAXHR); - YAHOO.log(YAHOO.widget.DS_XHR.ERROR_DATAXHR + ": " + oResp.statusText, "error", oSelf.toString()); - return; - }; - - var oCallback = { - success:responseSuccess, - failure:responseFailure - }; - - if(!isNaN(this.connTimeout) && this.connTimeout > 0) { - oCallback.timeout = this.connTimeout; - } - - if(this._oConn) { - this.connMgr.abort(this._oConn); - } - - oSelf._oConn = this.connMgr.asyncRequest("GET", sUri, oCallback, null); -}; - -/** - * Parses raw response data into an array of result objects. The result data key - * is always stashed in the [0] element of each result object. - * - * @method parseResponse - * @param sQuery {String} Query string. - * @param oResponse {Object} The raw response data to parse. - * @param oParent {Object} The object instance that has requested data. - * @returns {Object[]} Array of result objects. - */ -YAHOO.widget.DS_XHR.prototype.parseResponse = function(sQuery, oResponse, oParent) { - var aSchema = this.schema; - var aResults = []; - var bError = false; - - // Strip out comment at the end of results - var nEnd = ((this.responseStripAfter !== "") && (oResponse.indexOf)) ? - oResponse.indexOf(this.responseStripAfter) : -1; - if(nEnd != -1) { - oResponse = oResponse.substring(0,nEnd); - } - - switch (this.responseType) { - case YAHOO.widget.DS_XHR.TYPE_JSON: - var jsonList; - // Divert KHTML clients from JSON lib - if(window.JSON && (navigator.userAgent.toLowerCase().indexOf('khtml')== -1)) { - // Use the JSON utility if available - var jsonObjParsed = JSON.parse(oResponse); - if(!jsonObjParsed) { - bError = true; - break; - } - else { - try { - // eval is necessary here since aSchema[0] is of unknown depth - jsonList = eval("jsonObjParsed." + aSchema[0]); - } - catch(e) { - bError = true; - break; - } - } - } - else { - // Parse the JSON response as a string - try { - // Trim leading spaces - while (oResponse.substring(0,1) == " ") { - oResponse = oResponse.substring(1, oResponse.length); - } - - // Invalid JSON response - if(oResponse.indexOf("{") < 0) { - bError = true; - break; - } - - // Empty (but not invalid) JSON response - if(oResponse.indexOf("{}") === 0) { - break; - } - - // Turn the string into an object literal... - // ...eval is necessary here - var jsonObjRaw = eval("(" + oResponse + ")"); - if(!jsonObjRaw) { - bError = true; - break; - } - - // Grab the object member that contains an array of all reponses... - // ...eval is necessary here since aSchema[0] is of unknown depth - jsonList = eval("(jsonObjRaw." + aSchema[0]+")"); - } - catch(e) { - bError = true; - break; - } - } - - if(!jsonList) { - bError = true; - break; - } - - if(jsonList.constructor != Array) { - jsonList = [jsonList]; - } - - // Loop through the array of all responses... - for(var i = jsonList.length-1; i >= 0 ; i--) { - var aResultItem = []; - var jsonResult = jsonList[i]; - // ...and loop through each data field value of each response - for(var j = aSchema.length-1; j >= 1 ; j--) { - // ...and capture data into an array mapped according to the schema... - var dataFieldValue = jsonResult[aSchema[j]]; - if(!dataFieldValue) { - dataFieldValue = ""; - } - //YAHOO.log("data: " + i + " value:" +j+" = "+dataFieldValue,"debug",this.toString()); - aResultItem.unshift(dataFieldValue); - } - // If schema isn't well defined, pass along the entire result object - if(aResultItem.length == 1) { - aResultItem.push(jsonResult); - } - // Capture the array of data field values in an array of results - aResults.unshift(aResultItem); - } - break; - case YAHOO.widget.DS_XHR.TYPE_XML: - // Get the collection of results - var xmlList = oResponse.getElementsByTagName(aSchema[0]); - if(!xmlList) { - bError = true; - break; - } - // Loop through each result - for(var k = xmlList.length-1; k >= 0 ; k--) { - var result = xmlList.item(k); - //YAHOO.log("Result"+k+" is "+result.attributes.item(0).firstChild.nodeValue,"debug",this.toString()); - var aFieldSet = []; - // Loop through each data field in each result using the schema - for(var m = aSchema.length-1; m >= 1 ; m--) { - //YAHOO.log(aSchema[m]+" is "+result.attributes.getNamedItem(aSchema[m]).firstChild.nodeValue); - var sValue = null; - // Values may be held in an attribute... - var xmlAttr = result.attributes.getNamedItem(aSchema[m]); - if(xmlAttr) { - sValue = xmlAttr.value; - //YAHOO.log("Attr value is "+sValue,"debug",this.toString()); - } - // ...or in a node - else{ - var xmlNode = result.getElementsByTagName(aSchema[m]); - if(xmlNode && xmlNode.item(0) && xmlNode.item(0).firstChild) { - sValue = xmlNode.item(0).firstChild.nodeValue; - //YAHOO.log("Node value is "+sValue,"debug",this.toString()); - } - else { - sValue = ""; - //YAHOO.log("Value not found","debug",this.toString()); - } - } - // Capture the schema-mapped data field values into an array - aFieldSet.unshift(sValue); - } - // Capture each array of values into an array of results - aResults.unshift(aFieldSet); - } - break; - case YAHOO.widget.DS_XHR.TYPE_FLAT: - if(oResponse.length > 0) { - // Delete the last line delimiter at the end of the data if it exists - var newLength = oResponse.length-aSchema[0].length; - if(oResponse.substr(newLength) == aSchema[0]) { - oResponse = oResponse.substr(0, newLength); - } - var aRecords = oResponse.split(aSchema[0]); - for(var n = aRecords.length-1; n >= 0; n--) { - aResults[n] = aRecords[n].split(aSchema[1]); - } - } - break; - default: - break; - } - sQuery = null; - oResponse = null; - oParent = null; - if(bError) { - return null; - } - else { - return aResults; - } -}; - -///////////////////////////////////////////////////////////////////////////// -// -// Private member variables -// -///////////////////////////////////////////////////////////////////////////// - -/** - * XHR connection object. - * - * @property _oConn - * @type Object - * @private - */ -YAHOO.widget.DS_XHR.prototype._oConn = null; - - -/****************************************************************************/ -/****************************************************************************/ -/****************************************************************************/ - -/** - * Implementation of YAHOO.widget.DataSource using a native Javascript function as - * its live data source. - * - * @class DS_JSFunction - * @constructor - * @extends YAHOO.widget.DataSource - * @param oFunction {HTMLFunction} In-memory Javascript function that returns query results as an array of objects. - * @param oConfigs {Object} (optional) Object literal of config params. - */ -YAHOO.widget.DS_JSFunction = function(oFunction, oConfigs) { - // Set any config params passed in to override defaults - if(typeof oConfigs == "object") { - for(var sConfig in oConfigs) { - this[sConfig] = oConfigs[sConfig]; - } - } - - // Initialization sequence - if(!oFunction || (oFunction.constructor != Function)) { - YAHOO.log("Could not instantiate JSFunction DataSource due to invalid arguments", "error", this.toString()); - return; - } - else { - this.dataFunction = oFunction; - this._init(); - YAHOO.log("JS Function DataSource initialized","info",this.toString()); - } -}; - -YAHOO.widget.DS_JSFunction.prototype = new YAHOO.widget.DataSource(); - -///////////////////////////////////////////////////////////////////////////// -// -// Public member variables -// -///////////////////////////////////////////////////////////////////////////// - -/** - * In-memory Javascript function that returns query results. - * - * @property dataFunction - * @type HTMLFunction - */ -YAHOO.widget.DS_JSFunction.prototype.dataFunction = null; - -///////////////////////////////////////////////////////////////////////////// -// -// Public methods -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Queries the live data source defined by function for results. Results are - * passed back to a callback function. - * - * @method doQuery - * @param oCallbackFn {HTMLFunction} Callback function defined by oParent object to which to return results. - * @param sQuery {String} Query string. - * @param oParent {Object} The object instance that has requested data. - */ -YAHOO.widget.DS_JSFunction.prototype.doQuery = function(oCallbackFn, sQuery, oParent) { - var oFunction = this.dataFunction; - var aResults = []; - - aResults = oFunction(sQuery); - if(aResults === null) { - this.dataErrorEvent.fire(this, oParent, sQuery, YAHOO.widget.DataSource.ERROR_DATANULL); - YAHOO.log(YAHOO.widget.DataSource.ERROR_DATANULL, "error", this.toString()); - return; - } - - var resultObj = {}; - resultObj.query = decodeURIComponent(sQuery); - resultObj.results = aResults; - this._addCacheElem(resultObj); - - this.getResultsEvent.fire(this, oParent, sQuery, aResults); - oCallbackFn(sQuery, aResults, oParent); - return; -}; - -/****************************************************************************/ -/****************************************************************************/ -/****************************************************************************/ - -/** - * Implementation of YAHOO.widget.DataSource using a native Javascript array as - * its live data source. - * - * @class DS_JSArray - * @constructor - * @extends YAHOO.widget.DataSource - * @param aData {String[]} In-memory Javascript array of simple string data. - * @param oConfigs {Object} (optional) Object literal of config params. - */ -YAHOO.widget.DS_JSArray = function(aData, oConfigs) { - // Set any config params passed in to override defaults - if(typeof oConfigs == "object") { - for(var sConfig in oConfigs) { - this[sConfig] = oConfigs[sConfig]; - } - } - - // Initialization sequence - if(!aData || (aData.constructor != Array)) { - YAHOO.log("Could not instantiate JSArray DataSource due to invalid arguments", "error", this.toString()); - return; - } - else { - this.data = aData; - this._init(); - YAHOO.log("JS Array DataSource initialized","info",this.toString()); - } -}; - -YAHOO.widget.DS_JSArray.prototype = new YAHOO.widget.DataSource(); - -///////////////////////////////////////////////////////////////////////////// -// -// Public member variables -// -///////////////////////////////////////////////////////////////////////////// - -/** - * In-memory Javascript array of strings. - * - * @property data - * @type Array - */ -YAHOO.widget.DS_JSArray.prototype.data = null; - -///////////////////////////////////////////////////////////////////////////// -// -// Public methods -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Queries the live data source defined by data for results. Results are passed - * back to a callback function. - * - * @method doQuery - * @param oCallbackFn {HTMLFunction} Callback function defined by oParent object to which to return results. - * @param sQuery {String} Query string. - * @param oParent {Object} The object instance that has requested data. - */ -YAHOO.widget.DS_JSArray.prototype.doQuery = function(oCallbackFn, sQuery, oParent) { - var aData = this.data; // the array - var aResults = []; // container for results - var bMatchFound = false; - var bMatchContains = this.queryMatchContains; - if(sQuery) { - if(!this.queryMatchCase) { - sQuery = sQuery.toLowerCase(); - } - - // Loop through each element of the array... - // which can be a string or an array of strings - for(var i = aData.length-1; i >= 0; i--) { - var aDataset = []; - - if(aData[i]) { - if(aData[i].constructor == String) { - aDataset[0] = aData[i]; - } - else if(aData[i].constructor == Array) { - aDataset = aData[i]; - } - } - - if(aDataset[0] && (aDataset[0].constructor == String)) { - var sKeyIndex = (this.queryMatchCase) ? - encodeURIComponent(aDataset[0]).indexOf(sQuery): - encodeURIComponent(aDataset[0]).toLowerCase().indexOf(sQuery); - - // A STARTSWITH match is when the query is found at the beginning of the key string... - if((!bMatchContains && (sKeyIndex === 0)) || - // A CONTAINS match is when the query is found anywhere within the key string... - (bMatchContains && (sKeyIndex > -1))) { - // Stash a match into aResults[]. - aResults.unshift(aDataset); - } - } - } - } - - this.getResultsEvent.fire(this, oParent, sQuery, aResults); - oCallbackFn(sQuery, aResults, oParent); -}; - -YAHOO.register("autocomplete", YAHOO.widget.AutoComplete, {version: "2.2.0", build: "127"}); diff --git a/interface/ispconfig/interface/js/yui/autocomplete/autocomplete-min.js b/interface/ispconfig/interface/js/yui/autocomplete/autocomplete-min.js deleted file mode 100644 index f15e71897..000000000 --- a/interface/ispconfig/interface/js/yui/autocomplete/autocomplete-min.js +++ /dev/null @@ -1,183 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ - -YAHOO.widget.AutoComplete=function(elInput,elContainer,oDataSource,oConfigs){if(elInput&&elContainer&&oDataSource){if(oDataSource&&(oDataSource instanceof YAHOO.widget.DataSource)){this.dataSource=oDataSource;} -else{return;} -if(YAHOO.util.Dom.inDocument(elInput)){if(typeof elInput=="string"){this._sName="instance"+YAHOO.widget.AutoComplete._nIndex+" "+elInput;this._oTextbox=document.getElementById(elInput);} -else{this._sName=(elInput.id)?"instance"+YAHOO.widget.AutoComplete._nIndex+" "+elInput.id:"instance"+YAHOO.widget.AutoComplete._nIndex;this._oTextbox=elInput;}} -else{return;} -if(YAHOO.util.Dom.inDocument(elContainer)){if(typeof elContainer=="string"){this._oContainer=document.getElementById(elContainer);} -else{this._oContainer=elContainer;} -if(this._oContainer.style.display=="none"){}} -else{return;} -if(typeof oConfigs=="object"){for(var sConfig in oConfigs){if(sConfig){this[sConfig]=oConfigs[sConfig];}}} -this._initContainer();this._initProps();this._initList();this._initContainerHelpers();var oSelf=this;var oTextbox=this._oTextbox;var oContent=this._oContainer._oContent;YAHOO.util.Event.addListener(oTextbox,"keyup",oSelf._onTextboxKeyUp,oSelf);YAHOO.util.Event.addListener(oTextbox,"keydown",oSelf._onTextboxKeyDown,oSelf);YAHOO.util.Event.addListener(oTextbox,"focus",oSelf._onTextboxFocus,oSelf);YAHOO.util.Event.addListener(oTextbox,"blur",oSelf._onTextboxBlur,oSelf);YAHOO.util.Event.addListener(oContent,"mouseover",oSelf._onContainerMouseover,oSelf);YAHOO.util.Event.addListener(oContent,"mouseout",oSelf._onContainerMouseout,oSelf);YAHOO.util.Event.addListener(oContent,"scroll",oSelf._onContainerScroll,oSelf);YAHOO.util.Event.addListener(oContent,"resize",oSelf._onContainerResize,oSelf);if(oTextbox.form){YAHOO.util.Event.addListener(oTextbox.form,"submit",oSelf._onFormSubmit,oSelf);} -YAHOO.util.Event.addListener(oTextbox,"keypress",oSelf._onTextboxKeyPress,oSelf);this.textboxFocusEvent=new YAHOO.util.CustomEvent("textboxFocus",this);this.textboxKeyEvent=new YAHOO.util.CustomEvent("textboxKey",this);this.dataRequestEvent=new YAHOO.util.CustomEvent("dataRequest",this);this.dataReturnEvent=new YAHOO.util.CustomEvent("dataReturn",this);this.dataErrorEvent=new YAHOO.util.CustomEvent("dataError",this);this.containerExpandEvent=new YAHOO.util.CustomEvent("containerExpand",this);this.typeAheadEvent=new YAHOO.util.CustomEvent("typeAhead",this);this.itemMouseOverEvent=new YAHOO.util.CustomEvent("itemMouseOver",this);this.itemMouseOutEvent=new YAHOO.util.CustomEvent("itemMouseOut",this);this.itemArrowToEvent=new YAHOO.util.CustomEvent("itemArrowTo",this);this.itemArrowFromEvent=new YAHOO.util.CustomEvent("itemArrowFrom",this);this.itemSelectEvent=new YAHOO.util.CustomEvent("itemSelect",this);this.unmatchedItemSelectEvent=new YAHOO.util.CustomEvent("unmatchedItemSelect",this);this.selectionEnforceEvent=new YAHOO.util.CustomEvent("selectionEnforce",this);this.containerCollapseEvent=new YAHOO.util.CustomEvent("containerCollapse",this);this.textboxBlurEvent=new YAHOO.util.CustomEvent("textboxBlur",this);oTextbox.setAttribute("autocomplete","off");YAHOO.widget.AutoComplete._nIndex++;} -else{}};YAHOO.widget.AutoComplete.prototype.dataSource=null;YAHOO.widget.AutoComplete.prototype.minQueryLength=1;YAHOO.widget.AutoComplete.prototype.maxResultsDisplayed=10;YAHOO.widget.AutoComplete.prototype.queryDelay=0.5;YAHOO.widget.AutoComplete.prototype.highlightClassName="yui-ac-highlight";YAHOO.widget.AutoComplete.prototype.prehighlightClassName=null;YAHOO.widget.AutoComplete.prototype.delimChar=null;YAHOO.widget.AutoComplete.prototype.autoHighlight=true;YAHOO.widget.AutoComplete.prototype.typeAhead=false;YAHOO.widget.AutoComplete.prototype.animHoriz=false;YAHOO.widget.AutoComplete.prototype.animVert=true;YAHOO.widget.AutoComplete.prototype.animSpeed=0.3;YAHOO.widget.AutoComplete.prototype.forceSelection=false;YAHOO.widget.AutoComplete.prototype.allowBrowserAutocomplete=true;YAHOO.widget.AutoComplete.prototype.alwaysShowContainer=false;YAHOO.widget.AutoComplete.prototype.useIFrame=false;YAHOO.widget.AutoComplete.prototype.useShadow=false;YAHOO.widget.AutoComplete.prototype.toString=function(){return"AutoComplete "+this._sName;};YAHOO.widget.AutoComplete.prototype.isContainerOpen=function(){return this._bContainerOpen;};YAHOO.widget.AutoComplete.prototype.getListItems=function(){return this._aListItems;};YAHOO.widget.AutoComplete.prototype.getListItemData=function(oListItem){if(oListItem._oResultData){return oListItem._oResultData;} -else{return false;}};YAHOO.widget.AutoComplete.prototype.setHeader=function(sHeader){if(sHeader){if(this._oContainer._oContent._oHeader){this._oContainer._oContent._oHeader.innerHTML=sHeader;this._oContainer._oContent._oHeader.style.display="block";}} -else{this._oContainer._oContent._oHeader.innerHTML="";this._oContainer._oContent._oHeader.style.display="none";}};YAHOO.widget.AutoComplete.prototype.setFooter=function(sFooter){if(sFooter){if(this._oContainer._oContent._oFooter){this._oContainer._oContent._oFooter.innerHTML=sFooter;this._oContainer._oContent._oFooter.style.display="block";}} -else{this._oContainer._oContent._oFooter.innerHTML="";this._oContainer._oContent._oFooter.style.display="none";}};YAHOO.widget.AutoComplete.prototype.setBody=function(sBody){if(sBody){if(this._oContainer._oContent._oBody){this._oContainer._oContent._oBody.innerHTML=sBody;this._oContainer._oContent._oBody.style.display="block";this._oContainer._oContent.style.display="block";}} -else{this._oContainer._oContent._oBody.innerHTML="";this._oContainer._oContent.style.display="none";} -this._maxResultsDisplayed=0;};YAHOO.widget.AutoComplete.prototype.formatResult=function(oResultItem,sQuery){var sResult=oResultItem[0];if(sResult){return sResult;} -else{return"";}};YAHOO.widget.AutoComplete.prototype.doBeforeExpandContainer=function(oResultItem,sQuery){return true;};YAHOO.widget.AutoComplete.prototype.sendQuery=function(sQuery){this._sendQuery(sQuery);};YAHOO.widget.AutoComplete.prototype.textboxFocusEvent=null;YAHOO.widget.AutoComplete.prototype.textboxKeyEvent=null;YAHOO.widget.AutoComplete.prototype.dataRequestEvent=null;YAHOO.widget.AutoComplete.prototype.dataReturnEvent=null;YAHOO.widget.AutoComplete.prototype.dataErrorEvent=null;YAHOO.widget.AutoComplete.prototype.containerExpandEvent=null;YAHOO.widget.AutoComplete.prototype.typeAheadEvent=null;YAHOO.widget.AutoComplete.prototype.itemMouseOverEvent=null;YAHOO.widget.AutoComplete.prototype.itemMouseOutEvent=null;YAHOO.widget.AutoComplete.prototype.itemArrowToEvent=null;YAHOO.widget.AutoComplete.prototype.itemArrowFromEvent=null;YAHOO.widget.AutoComplete.prototype.itemSelectEvent=null;YAHOO.widget.AutoComplete.prototype.unmatchedItemSelectEvent=null;YAHOO.widget.AutoComplete.prototype.selectionEnforceEvent=null;YAHOO.widget.AutoComplete.prototype.containerCollapseEvent=null;YAHOO.widget.AutoComplete.prototype.textboxBlurEvent=null;YAHOO.widget.AutoComplete._nIndex=0;YAHOO.widget.AutoComplete.prototype._sName=null;YAHOO.widget.AutoComplete.prototype._oTextbox=null;YAHOO.widget.AutoComplete.prototype._bFocused=true;YAHOO.widget.AutoComplete.prototype._oAnim=null;YAHOO.widget.AutoComplete.prototype._oContainer=null;YAHOO.widget.AutoComplete.prototype._bContainerOpen=false;YAHOO.widget.AutoComplete.prototype._bOverContainer=false;YAHOO.widget.AutoComplete.prototype._aListItems=null;YAHOO.widget.AutoComplete.prototype._nDisplayedItems=0;YAHOO.widget.AutoComplete.prototype._maxResultsDisplayed=0;YAHOO.widget.AutoComplete.prototype._sCurQuery=null;YAHOO.widget.AutoComplete.prototype._sSavedQuery=null;YAHOO.widget.AutoComplete.prototype._oCurItem=null;YAHOO.widget.AutoComplete.prototype._bItemSelected=false;YAHOO.widget.AutoComplete.prototype._nKeyCode=null;YAHOO.widget.AutoComplete.prototype._nDelayID=-1;YAHOO.widget.AutoComplete.prototype._iFrameSrc="javascript:false;";YAHOO.widget.AutoComplete.prototype._queryInterval=null;YAHOO.widget.AutoComplete.prototype._sLastTextboxValue=null;YAHOO.widget.AutoComplete.prototype._initProps=function(){var minQueryLength=this.minQueryLength;if(isNaN(minQueryLength)||(minQueryLength<1)){minQueryLength=1;} -var maxResultsDisplayed=this.maxResultsDisplayed;if(isNaN(this.maxResultsDisplayed)||(this.maxResultsDisplayed<1)){this.maxResultsDisplayed=10;} -var queryDelay=this.queryDelay;if(isNaN(this.queryDelay)||(this.queryDelay<0)){this.queryDelay=0.5;} -var aDelimChar=(this.delimChar)?this.delimChar:null;if(aDelimChar){if(typeof aDelimChar=="string"){this.delimChar=[aDelimChar];} -else if(aDelimChar.constructor!=Array){this.delimChar=null;}} -var animSpeed=this.animSpeed;if((this.animHoriz||this.animVert)&&YAHOO.util.Anim){if(isNaN(animSpeed)||(animSpeed<0)){animSpeed=0.3;} -if(!this._oAnim){oAnim=new YAHOO.util.Anim(this._oContainer._oContent,{},this.animSpeed);this._oAnim=oAnim;} -else{this._oAnim.duration=animSpeed;}} -if(this.forceSelection&&this.delimChar){}};YAHOO.widget.AutoComplete.prototype._initContainerHelpers=function(){if(this.useShadow&&!this._oContainer._oShadow){var oShadow=document.createElement("div");oShadow.className="yui-ac-shadow";this._oContainer._oShadow=this._oContainer.appendChild(oShadow);} -if(this.useIFrame&&!this._oContainer._oIFrame){var oIFrame=document.createElement("iframe");oIFrame.src=this._iFrameSrc;oIFrame.frameBorder=0;oIFrame.scrolling="no";oIFrame.style.position="absolute";oIFrame.style.width="100%";oIFrame.style.height="100%";oIFrame.tabIndex=-1;this._oContainer._oIFrame=this._oContainer.appendChild(oIFrame);}};YAHOO.widget.AutoComplete.prototype._initContainer=function(){if(!this._oContainer._oContent){var oContent=document.createElement("div");oContent.className="yui-ac-content";oContent.style.display="none";this._oContainer._oContent=this._oContainer.appendChild(oContent);var oHeader=document.createElement("div");oHeader.className="yui-ac-hd";oHeader.style.display="none";this._oContainer._oContent._oHeader=this._oContainer._oContent.appendChild(oHeader);var oBody=document.createElement("div");oBody.className="yui-ac-bd";this._oContainer._oContent._oBody=this._oContainer._oContent.appendChild(oBody);var oFooter=document.createElement("div");oFooter.className="yui-ac-ft";oFooter.style.display="none";this._oContainer._oContent._oFooter=this._oContainer._oContent.appendChild(oFooter);} -else{}};YAHOO.widget.AutoComplete.prototype._initList=function(){this._aListItems=[];while(this._oContainer._oContent._oBody.hasChildNodes()){var oldListItems=this.getListItems();if(oldListItems){for(var oldi=oldListItems.length-1;oldi>=0;i--){oldListItems[oldi]=null;}} -this._oContainer._oContent._oBody.innerHTML="";} -var oList=document.createElement("ul");oList=this._oContainer._oContent._oBody.appendChild(oList);for(var i=0;i=18&&nKeyCode<=20)||(nKeyCode==27)||(nKeyCode>=33&&nKeyCode<=35)||(nKeyCode>=36&&nKeyCode<=38)||(nKeyCode==40)||(nKeyCode>=44&&nKeyCode<=45)){return true;} -return false;};YAHOO.widget.AutoComplete.prototype._sendQuery=function(sQuery){if(this.minQueryLength==-1){this._toggleContainer(false);return;} -var aDelimChar=(this.delimChar)?this.delimChar:null;if(aDelimChar){var nDelimIndex=-1;for(var i=aDelimChar.length-1;i>=0;i--){var nNewIndex=sQuery.lastIndexOf(aDelimChar[i]);if(nNewIndex>nDelimIndex){nDelimIndex=nNewIndex;}} -if(aDelimChar[i]==" "){for(var j=aDelimChar.length-1;j>=0;j--){if(sQuery[nDelimIndex-1]==aDelimChar[j]){nDelimIndex--;break;}}} -if(nDelimIndex>-1){var nQueryStart=nDelimIndex+1;while(sQuery.charAt(nQueryStart)==" "){nQueryStart+=1;} -this._sSavedQuery=sQuery.substring(0,nQueryStart);sQuery=sQuery.substr(nQueryStart);} -else if(sQuery.indexOf(this._sSavedQuery)<0){this._sSavedQuery=null;}} -if(sQuery&&(sQuery.length0)){if(this._nDelayID!=-1){clearTimeout(this._nDelayID);} -this._toggleContainer(false);return;} -sQuery=encodeURIComponent(sQuery);this._nDelayID=-1;this.dataRequestEvent.fire(this,sQuery);this.dataSource.getResults(this._populateList,sQuery,this);};YAHOO.widget.AutoComplete.prototype._populateList=function(sQuery,aResults,oSelf){if(aResults===null){oSelf.dataErrorEvent.fire(oSelf,sQuery);} -if(!oSelf._bFocused||!aResults){return;} -var isOpera=(navigator.userAgent.toLowerCase().indexOf("opera")!=-1);var contentStyle=oSelf._oContainer._oContent.style;contentStyle.width=(!isOpera)?null:"";contentStyle.height=(!isOpera)?null:"";var sCurQuery=decodeURIComponent(sQuery);oSelf._sCurQuery=sCurQuery;oSelf._bItemSelected=false;if(oSelf._maxResultsDisplayed!=oSelf.maxResultsDisplayed){oSelf._initList();} -var nItems=Math.min(aResults.length,oSelf.maxResultsDisplayed);oSelf._nDisplayedItems=nItems;if(nItems>0){oSelf._initContainerHelpers();var aItems=oSelf._aListItems;for(var i=nItems-1;i>=0;i--){var oItemi=aItems[i];var oResultItemi=aResults[i];oItemi.innerHTML=oSelf.formatResult(oResultItemi,sCurQuery);oItemi.style.display="list-item";oItemi._sResultKey=oResultItemi[0];oItemi._oResultData=oResultItemi;} -for(var j=aItems.length-1;j>=nItems;j--){var oItemj=aItems[j];oItemj.innerHTML=null;oItemj.style.display="none";oItemj._sResultKey=null;oItemj._oResultData=null;} -if(oSelf.autoHighlight){var oFirstItem=aItems[0];oSelf._toggleHighlight(oFirstItem,"to");oSelf.itemArrowToEvent.fire(oSelf,oFirstItem);oSelf._typeAhead(oFirstItem,sQuery);} -else{oSelf._oCurItem=null;} -var ok=oSelf.doBeforeExpandContainer(oSelf._oTextbox,oSelf._oContainer,sQuery,aResults);oSelf._toggleContainer(ok);} -else{oSelf._toggleContainer(false);} -oSelf.dataReturnEvent.fire(oSelf,sQuery,aResults);};YAHOO.widget.AutoComplete.prototype._clearSelection=function(){var sValue=this._oTextbox.value;var sChar=(this.delimChar)?this.delimChar[0]:null;var nIndex=(sChar)?sValue.lastIndexOf(sChar,sValue.length-2):-1;if(nIndex>-1){this._oTextbox.value=sValue.substring(0,nIndex);} -else{this._oTextbox.value="";} -this._sSavedQuery=this._oTextbox.value;this.selectionEnforceEvent.fire(this);};YAHOO.widget.AutoComplete.prototype._textMatchesOption=function(){var foundMatch=false;for(var i=this._nDisplayedItems-1;i>=0;i--){var oItem=this._aListItems[i];var sMatch=oItem._sResultKey.toLowerCase();if(sMatch==this._sCurQuery.toLowerCase()){foundMatch=true;break;}} -return(foundMatch);};YAHOO.widget.AutoComplete.prototype._typeAhead=function(oItem,sQuery){if(!this.typeAhead||(this._nKeyCode==8)){return;} -var oTextbox=this._oTextbox;var sValue=this._oTextbox.value;if(!oTextbox.setSelectionRange&&!oTextbox.createTextRange){return;} -var nStart=sValue.length;this._updateValue(oItem);var nEnd=oTextbox.value.length;this._selectText(oTextbox,nStart,nEnd);var sPrefill=oTextbox.value.substr(nStart,nEnd);this.typeAheadEvent.fire(this,sQuery,sPrefill);};YAHOO.widget.AutoComplete.prototype._selectText=function(oTextbox,nStart,nEnd){if(oTextbox.setSelectionRange){oTextbox.setSelectionRange(nStart,nEnd);} -else if(oTextbox.createTextRange){var oTextRange=oTextbox.createTextRange();oTextRange.moveStart("character",nStart);oTextRange.moveEnd("character",nEnd-oTextbox.value.length);oTextRange.select();} -else{oTextbox.select();}};YAHOO.widget.AutoComplete.prototype._toggleContainerHelpers=function(bShow){var bFireEvent=false;var width=this._oContainer._oContent.offsetWidth+"px";var height=this._oContainer._oContent.offsetHeight+"px";if(this.useIFrame&&this._oContainer._oIFrame){bFireEvent=true;if(bShow){this._oContainer._oIFrame.style.width=width;this._oContainer._oIFrame.style.height=height;} -else{this._oContainer._oIFrame.style.width=0;this._oContainer._oIFrame.style.height=0;}} -if(this.useShadow&&this._oContainer._oShadow){bFireEvent=true;if(bShow){this._oContainer._oShadow.style.width=width;this._oContainer._oShadow.style.height=height;} -else{this._oContainer._oShadow.style.width=0;this._oContainer._oShadow.style.height=0;}}};YAHOO.widget.AutoComplete.prototype._toggleContainer=function(bShow){var oContainer=this._oContainer;if(this.alwaysShowContainer&&this._bContainerOpen){return;} -if(!bShow){this._oContainer._oContent.scrollTop=0;var aItems=this._aListItems;if(aItems&&(aItems.length>0)){for(var i=aItems.length-1;i>=0;i--){aItems[i].style.display="none";}} -if(this._oCurItem){this._toggleHighlight(this._oCurItem,"from");} -this._oCurItem=null;this._nDisplayedItems=0;this._sCurQuery=null;} -if(!bShow&&!this._bContainerOpen){oContainer._oContent.style.display="none";return;} -var oAnim=this._oAnim;if(oAnim&&oAnim.getEl()&&(this.animHoriz||this.animVert)){if(!bShow){this._toggleContainerHelpers(bShow);} -if(oAnim.isAnimated()){oAnim.stop();} -var oClone=oContainer._oContent.cloneNode(true);oContainer.appendChild(oClone);oClone.style.top="-9000px";oClone.style.display="block";var wExp=oClone.offsetWidth;var hExp=oClone.offsetHeight;var wColl=(this.animHoriz)?0:wExp;var hColl=(this.animVert)?0:hExp;oAnim.attributes=(bShow)?{width:{to:wExp},height:{to:hExp}}:{width:{to:wColl},height:{to:hColl}};if(bShow&&!this._bContainerOpen){oContainer._oContent.style.width=wColl+"px";oContainer._oContent.style.height=hColl+"px";} -else{oContainer._oContent.style.width=wExp+"px";oContainer._oContent.style.height=hExp+"px";} -oContainer.removeChild(oClone);oClone=null;var oSelf=this;var onAnimComplete=function(){oAnim.onComplete.unsubscribeAll();if(bShow){oSelf.containerExpandEvent.fire(oSelf);} -else{oContainer._oContent.style.display="none";oSelf.containerCollapseEvent.fire(oSelf);} -oSelf._toggleContainerHelpers(bShow);};oContainer._oContent.style.display="block";oAnim.onComplete.subscribe(onAnimComplete);oAnim.animate();this._bContainerOpen=bShow;} -else{if(bShow){oContainer._oContent.style.display="block";this.containerExpandEvent.fire(this);} -else{oContainer._oContent.style.display="none";this.containerCollapseEvent.fire(this);} -this._toggleContainerHelpers(bShow);this._bContainerOpen=bShow;}};YAHOO.widget.AutoComplete.prototype._toggleHighlight=function(oNewItem,sType){var sHighlight=this.highlightClassName;if(this._oCurItem){YAHOO.util.Dom.removeClass(this._oCurItem,sHighlight);} -if((sType=="to")&&sHighlight){YAHOO.util.Dom.addClass(oNewItem,sHighlight);this._oCurItem=oNewItem;}};YAHOO.widget.AutoComplete.prototype._togglePrehighlight=function(oNewItem,sType){if(oNewItem==this._oCurItem){return;} -var sPrehighlight=this.prehighlightClassName;if((sType=="mouseover")&&sPrehighlight){YAHOO.util.Dom.addClass(oNewItem,sPrehighlight);} -else{YAHOO.util.Dom.removeClass(oNewItem,sPrehighlight);}};YAHOO.widget.AutoComplete.prototype._updateValue=function(oItem){var oTextbox=this._oTextbox;var sDelimChar=(this.delimChar)?(this.delimChar[0]||this.delimChar):null;var sSavedQuery=this._sSavedQuery;var sResultKey=oItem._sResultKey;oTextbox.focus();oTextbox.value="";if(sDelimChar){if(sSavedQuery){oTextbox.value=sSavedQuery;} -oTextbox.value+=sResultKey+sDelimChar;if(sDelimChar!=" "){oTextbox.value+=" ";}} -else{oTextbox.value=sResultKey;} -if(oTextbox.type=="textarea"){oTextbox.scrollTop=oTextbox.scrollHeight;} -var end=oTextbox.value.length;this._selectText(oTextbox,end,end);this._oCurItem=oItem;};YAHOO.widget.AutoComplete.prototype._selectItem=function(oItem){this._bItemSelected=true;this._updateValue(oItem);this._cancelIntervalDetection(this);this.itemSelectEvent.fire(this,oItem,oItem._oResultData);this._toggleContainer(false);};YAHOO.widget.AutoComplete.prototype._jumpSelection=function(){if(!this.typeAhead){return;} -else{this._toggleContainer(false);}};YAHOO.widget.AutoComplete.prototype._moveSelection=function(nKeyCode){if(this._bContainerOpen){var oCurItem=this._oCurItem;var nCurItemIndex=-1;if(oCurItem){nCurItemIndex=oCurItem._nItemIndex;} -var nNewItemIndex=(nKeyCode==40)?(nCurItemIndex+1):(nCurItemIndex-1);if(nNewItemIndex<-2||nNewItemIndex>=this._nDisplayedItems){return;} -if(oCurItem){this._toggleHighlight(oCurItem,"from");this.itemArrowFromEvent.fire(this,oCurItem);} -if(nNewItemIndex==-1){if(this.delimChar&&this._sSavedQuery){if(!this._textMatchesOption()){this._oTextbox.value=this._sSavedQuery;} -else{this._oTextbox.value=this._sSavedQuery+this._sCurQuery;}} -else{this._oTextbox.value=this._sCurQuery;} -this._oCurItem=null;return;} -if(nNewItemIndex==-2){this._toggleContainer(false);return;} -var oNewItem=this._aListItems[nNewItemIndex];var oContent=this._oContainer._oContent;var scrollOn=((YAHOO.util.Dom.getStyle(oContent,"overflow")=="auto")||(YAHOO.util.Dom.getStyle(oContent,"overflowY")=="auto"));if(scrollOn&&(nNewItemIndex>-1)&&(nNewItemIndex(oContent.scrollTop+oContent.offsetHeight)){oContent.scrollTop=(oNewItem.offsetTop+oNewItem.offsetHeight)-oContent.offsetHeight;} -else if((oNewItem.offsetTop+oNewItem.offsetHeight)(oContent.scrollTop+oContent.offsetHeight)){this._oContainer._oContent.scrollTop=(oNewItem.offsetTop+oNewItem.offsetHeight)-oContent.offsetHeight;}}} -this._toggleHighlight(oNewItem,"to");this.itemArrowToEvent.fire(this,oNewItem);if(this.typeAhead){this._updateValue(oNewItem);}}};YAHOO.widget.AutoComplete.prototype._onItemMouseover=function(v,oSelf){if(oSelf.prehighlightClassName){oSelf._togglePrehighlight(this,"mouseover");} -else{oSelf._toggleHighlight(this,"to");} -oSelf.itemMouseOverEvent.fire(oSelf,this);};YAHOO.widget.AutoComplete.prototype._onItemMouseout=function(v,oSelf){if(oSelf.prehighlightClassName){oSelf._togglePrehighlight(this,"mouseout");} -else{oSelf._toggleHighlight(this,"from");} -oSelf.itemMouseOutEvent.fire(oSelf,this);};YAHOO.widget.AutoComplete.prototype._onItemMouseclick=function(v,oSelf){oSelf._toggleHighlight(this,"to");oSelf._selectItem(this);};YAHOO.widget.AutoComplete.prototype._onContainerMouseover=function(v,oSelf){oSelf._bOverContainer=true;};YAHOO.widget.AutoComplete.prototype._onContainerMouseout=function(v,oSelf){oSelf._bOverContainer=false;if(oSelf._oCurItem){oSelf._toggleHighlight(oSelf._oCurItem,"to");}};YAHOO.widget.AutoComplete.prototype._onContainerScroll=function(v,oSelf){oSelf._oTextbox.focus();};YAHOO.widget.AutoComplete.prototype._onContainerResize=function(v,oSelf){oSelf._toggleContainerHelpers(oSelf._bContainerOpen);};YAHOO.widget.AutoComplete.prototype._onTextboxKeyDown=function(v,oSelf){var nKeyCode=v.keyCode;switch(nKeyCode){case 9:if(oSelf.delimChar&&(oSelf._nKeyCode!=nKeyCode)){if(oSelf._bContainerOpen){YAHOO.util.Event.stopEvent(v);}} -if(oSelf._oCurItem){oSelf._selectItem(oSelf._oCurItem);} -else{oSelf._toggleContainer(false);} -break;case 13:if(oSelf._nKeyCode!=nKeyCode){if(oSelf._bContainerOpen){YAHOO.util.Event.stopEvent(v);}} -if(oSelf._oCurItem){oSelf._selectItem(oSelf._oCurItem);} -else{oSelf._toggleContainer(false);} -break;case 27:oSelf._toggleContainer(false);return;case 39:oSelf._jumpSelection();break;case 38:YAHOO.util.Event.stopEvent(v);oSelf._moveSelection(nKeyCode);break;case 40:YAHOO.util.Event.stopEvent(v);oSelf._moveSelection(nKeyCode);break;default:break;}};YAHOO.widget.AutoComplete.prototype._onTextboxKeyPress=function(v,oSelf){var nKeyCode=v.keyCode;var isMac=(navigator.userAgent.toLowerCase().indexOf("mac")!=-1);if(isMac){switch(nKeyCode){case 9:if(oSelf.delimChar&&(oSelf._nKeyCode!=nKeyCode)){if(oSelf._bContainerOpen){YAHOO.util.Event.stopEvent(v);}} -break;case 13:if(oSelf._nKeyCode!=nKeyCode){if(oSelf._bContainerOpen){YAHOO.util.Event.stopEvent(v);}} -break;case 38:case 40:YAHOO.util.Event.stopEvent(v);break;default:break;}} -else if(nKeyCode==229){oSelf._queryInterval=setInterval(function(){oSelf._onIMEDetected(oSelf);},500);}};YAHOO.widget.AutoComplete.prototype._onTextboxKeyUp=function(v,oSelf){oSelf._initProps();var nKeyCode=v.keyCode;oSelf._nKeyCode=nKeyCode;var sText=this.value;if(oSelf._isIgnoreKey(nKeyCode)||(sText.toLowerCase()==oSelf._sCurQuery)){return;} -else{oSelf.textboxKeyEvent.fire(oSelf,nKeyCode);} -if(oSelf.queryDelay>0){var nDelayID=setTimeout(function(){oSelf._sendQuery(sText);},(oSelf.queryDelay*1000));if(oSelf._nDelayID!=-1){clearTimeout(oSelf._nDelayID);} -oSelf._nDelayID=nDelayID;} -else{oSelf._sendQuery(sText);}};YAHOO.widget.AutoComplete.prototype._onTextboxFocus=function(v,oSelf){oSelf._oTextbox.setAttribute("autocomplete","off");oSelf._bFocused=true;oSelf.textboxFocusEvent.fire(oSelf);};YAHOO.widget.AutoComplete.prototype._onTextboxBlur=function(v,oSelf){if(!oSelf._bOverContainer||(oSelf._nKeyCode==9)){if(!oSelf._bItemSelected){if(!oSelf._bContainerOpen||(oSelf._bContainerOpen&&!oSelf._textMatchesOption())){if(oSelf.forceSelection){oSelf._clearSelection();} -else{oSelf.unmatchedItemSelectEvent.fire(oSelf,oSelf._sCurQuery);}}} -if(oSelf._bContainerOpen){oSelf._toggleContainer(false);} -oSelf._cancelIntervalDetection(oSelf);oSelf._bFocused=false;oSelf.textboxBlurEvent.fire(oSelf);}};YAHOO.widget.AutoComplete.prototype._onFormSubmit=function(v,oSelf){if(oSelf.allowBrowserAutocomplete){oSelf._oTextbox.setAttribute("autocomplete","on");} -else{oSelf._oTextbox.setAttribute("autocomplete","off");}};YAHOO.widget.DataSource=function(){};YAHOO.widget.DataSource.ERROR_DATANULL="Response data was null";YAHOO.widget.DataSource.ERROR_DATAPARSE="Response data could not be parsed";YAHOO.widget.DataSource.prototype.maxCacheEntries=15;YAHOO.widget.DataSource.prototype.queryMatchContains=false;YAHOO.widget.DataSource.prototype.queryMatchSubset=false;YAHOO.widget.DataSource.prototype.queryMatchCase=false;YAHOO.widget.DataSource.prototype.toString=function(){return"DataSource "+this._sName;};YAHOO.widget.DataSource.prototype.getResults=function(oCallbackFn,sQuery,oParent){var aResults=this._doQueryCache(oCallbackFn,sQuery,oParent);if(aResults.length===0){this.queryEvent.fire(this,oParent,sQuery);this.doQuery(oCallbackFn,sQuery,oParent);}};YAHOO.widget.DataSource.prototype.doQuery=function(oCallbackFn,sQuery,oParent){};YAHOO.widget.DataSource.prototype.flushCache=function(){if(this._aCache){this._aCache=[];} -if(this._aCacheHelper){this._aCacheHelper=[];} -this.cacheFlushEvent.fire(this);};YAHOO.widget.DataSource.prototype.queryEvent=null;YAHOO.widget.DataSource.prototype.cacheQueryEvent=null;YAHOO.widget.DataSource.prototype.getResultsEvent=null;YAHOO.widget.DataSource.prototype.getCachedResultsEvent=null;YAHOO.widget.DataSource.prototype.dataErrorEvent=null;YAHOO.widget.DataSource.prototype.cacheFlushEvent=null;YAHOO.widget.DataSource._nIndex=0;YAHOO.widget.DataSource.prototype._sName=null;YAHOO.widget.DataSource.prototype._aCache=null;YAHOO.widget.DataSource.prototype._init=function(){var maxCacheEntries=this.maxCacheEntries;if(isNaN(maxCacheEntries)||(maxCacheEntries<0)){maxCacheEntries=0;} -if(maxCacheEntries>0&&!this._aCache){this._aCache=[];} -this._sName="instance"+YAHOO.widget.DataSource._nIndex;YAHOO.widget.DataSource._nIndex++;this.queryEvent=new YAHOO.util.CustomEvent("query",this);this.cacheQueryEvent=new YAHOO.util.CustomEvent("cacheQuery",this);this.getResultsEvent=new YAHOO.util.CustomEvent("getResults",this);this.getCachedResultsEvent=new YAHOO.util.CustomEvent("getCachedResults",this);this.dataErrorEvent=new YAHOO.util.CustomEvent("dataError",this);this.cacheFlushEvent=new YAHOO.util.CustomEvent("cacheFlush",this);};YAHOO.widget.DataSource.prototype._addCacheElem=function(oResult){var aCache=this._aCache;if(!aCache||!oResult||!oResult.query||!oResult.results){return;} -if(aCache.length>=this.maxCacheEntries){aCache.shift();} -aCache.push(oResult);};YAHOO.widget.DataSource.prototype._doQueryCache=function(oCallbackFn,sQuery,oParent){var aResults=[];var bMatchFound=false;var aCache=this._aCache;var nCacheLength=(aCache)?aCache.length:0;var bMatchContains=this.queryMatchContains;if((this.maxCacheEntries>0)&&aCache&&(nCacheLength>0)){this.cacheQueryEvent.fire(this,oParent,sQuery);if(!this.queryMatchCase){var sOrigQuery=sQuery;sQuery=sQuery.toLowerCase();} -for(var i=nCacheLength-1;i>=0;i--){var resultObj=aCache[i];var aAllResultItems=resultObj.results;var matchKey=(!this.queryMatchCase)?encodeURIComponent(resultObj.query).toLowerCase():encodeURIComponent(resultObj.query);if(matchKey==sQuery){bMatchFound=true;aResults=aAllResultItems;if(i!=nCacheLength-1){aCache.splice(i,1);this._addCacheElem(resultObj);} -break;} -else if(this.queryMatchSubset){for(var j=sQuery.length-1;j>=0;j--){var subQuery=sQuery.substr(0,j);if(matchKey==subQuery){bMatchFound=true;for(var k=aAllResultItems.length-1;k>=0;k--){var aRecord=aAllResultItems[k];var sKeyIndex=(this.queryMatchCase)?encodeURIComponent(aRecord[0]).indexOf(sQuery):encodeURIComponent(aRecord[0]).toLowerCase().indexOf(sQuery);if((!bMatchContains&&(sKeyIndex===0))||(bMatchContains&&(sKeyIndex>-1))){aResults.unshift(aRecord);}} -resultObj={};resultObj.query=sQuery;resultObj.results=aResults;this._addCacheElem(resultObj);break;}} -if(bMatchFound){break;}}} -if(bMatchFound){this.getCachedResultsEvent.fire(this,oParent,sOrigQuery,aResults);oCallbackFn(sOrigQuery,aResults,oParent);}} -return aResults;};YAHOO.widget.DS_XHR=function(sScriptURI,aSchema,oConfigs){if(typeof oConfigs=="object"){for(var sConfig in oConfigs){this[sConfig]=oConfigs[sConfig];}} -if(!aSchema||(aSchema.constructor!=Array)){return;} -else{this.schema=aSchema;} -this.scriptURI=sScriptURI;this._init();};YAHOO.widget.DS_XHR.prototype=new YAHOO.widget.DataSource();YAHOO.widget.DS_XHR.TYPE_JSON=0;YAHOO.widget.DS_XHR.TYPE_XML=1;YAHOO.widget.DS_XHR.TYPE_FLAT=2;YAHOO.widget.DS_XHR.ERROR_DATAXHR="XHR response failed";YAHOO.widget.DS_XHR.prototype.connMgr=YAHOO.util.Connect;YAHOO.widget.DS_XHR.prototype.connTimeout=0;YAHOO.widget.DS_XHR.prototype.scriptURI=null;YAHOO.widget.DS_XHR.prototype.scriptQueryParam="query";YAHOO.widget.DS_XHR.prototype.scriptQueryAppend="";YAHOO.widget.DS_XHR.prototype.responseType=YAHOO.widget.DS_XHR.TYPE_JSON;YAHOO.widget.DS_XHR.prototype.responseStripAfter="\n0){sUri+="&"+this.scriptQueryAppend;} -var oResponse=null;var oSelf=this;var responseSuccess=function(oResp){if(!oSelf._oConn||(oResp.tId!=oSelf._oConn.tId)){oSelf.dataErrorEvent.fire(oSelf,oParent,sQuery,YAHOO.widget.DataSource.ERROR_DATANULL);return;} -for(var foo in oResp){} -if(!isXML){oResp=oResp.responseText;} -else{oResp=oResp.responseXML;} -if(oResp===null){oSelf.dataErrorEvent.fire(oSelf,oParent,sQuery,YAHOO.widget.DataSource.ERROR_DATANULL);return;} -var aResults=oSelf.parseResponse(sQuery,oResp,oParent);var resultObj={};resultObj.query=decodeURIComponent(sQuery);resultObj.results=aResults;if(aResults===null){oSelf.dataErrorEvent.fire(oSelf,oParent,sQuery,YAHOO.widget.DataSource.ERROR_DATAPARSE);aResults=[];} -else{oSelf.getResultsEvent.fire(oSelf,oParent,sQuery,aResults);oSelf._addCacheElem(resultObj);} -oCallbackFn(sQuery,aResults,oParent);};var responseFailure=function(oResp){oSelf.dataErrorEvent.fire(oSelf,oParent,sQuery,YAHOO.widget.DS_XHR.ERROR_DATAXHR);return;};var oCallback={success:responseSuccess,failure:responseFailure};if(!isNaN(this.connTimeout)&&this.connTimeout>0){oCallback.timeout=this.connTimeout;} -if(this._oConn){this.connMgr.abort(this._oConn);} -oSelf._oConn=this.connMgr.asyncRequest("GET",sUri,oCallback,null);};YAHOO.widget.DS_XHR.prototype.parseResponse=function(sQuery,oResponse,oParent){var aSchema=this.schema;var aResults=[];var bError=false;var nEnd=((this.responseStripAfter!=="")&&(oResponse.indexOf))?oResponse.indexOf(this.responseStripAfter):-1;if(nEnd!=-1){oResponse=oResponse.substring(0,nEnd);} -switch(this.responseType){case YAHOO.widget.DS_XHR.TYPE_JSON:var jsonList;if(window.JSON&&(navigator.userAgent.toLowerCase().indexOf('khtml')==-1)){var jsonObjParsed=JSON.parse(oResponse);if(!jsonObjParsed){bError=true;break;} -else{try{jsonList=eval("jsonObjParsed."+aSchema[0]);} -catch(e){bError=true;break;}}} -else{try{while(oResponse.substring(0,1)==" "){oResponse=oResponse.substring(1,oResponse.length);} -if(oResponse.indexOf("{")<0){bError=true;break;} -if(oResponse.indexOf("{}")===0){break;} -var jsonObjRaw=eval("("+oResponse+")");if(!jsonObjRaw){bError=true;break;} -jsonList=eval("(jsonObjRaw."+aSchema[0]+")");} -catch(e){bError=true;break;}} -if(!jsonList){bError=true;break;} -if(jsonList.constructor!=Array){jsonList=[jsonList];} -for(var i=jsonList.length-1;i>=0;i--){var aResultItem=[];var jsonResult=jsonList[i];for(var j=aSchema.length-1;j>=1;j--){var dataFieldValue=jsonResult[aSchema[j]];if(!dataFieldValue){dataFieldValue="";} -aResultItem.unshift(dataFieldValue);} -if(aResultItem.length==1){aResultItem.push(jsonResult);} -aResults.unshift(aResultItem);} -break;case YAHOO.widget.DS_XHR.TYPE_XML:var xmlList=oResponse.getElementsByTagName(aSchema[0]);if(!xmlList){bError=true;break;} -for(var k=xmlList.length-1;k>=0;k--){var result=xmlList.item(k);var aFieldSet=[];for(var m=aSchema.length-1;m>=1;m--){var sValue=null;var xmlAttr=result.attributes.getNamedItem(aSchema[m]);if(xmlAttr){sValue=xmlAttr.value;} -else{var xmlNode=result.getElementsByTagName(aSchema[m]);if(xmlNode&&xmlNode.item(0)&&xmlNode.item(0).firstChild){sValue=xmlNode.item(0).firstChild.nodeValue;} -else{sValue="";}} -aFieldSet.unshift(sValue);} -aResults.unshift(aFieldSet);} -break;case YAHOO.widget.DS_XHR.TYPE_FLAT:if(oResponse.length>0){var newLength=oResponse.length-aSchema[0].length;if(oResponse.substr(newLength)==aSchema[0]){oResponse=oResponse.substr(0,newLength);} -var aRecords=oResponse.split(aSchema[0]);for(var n=aRecords.length-1;n>=0;n--){aResults[n]=aRecords[n].split(aSchema[1]);}} -break;default:break;} -sQuery=null;oResponse=null;oParent=null;if(bError){return null;} -else{return aResults;}};YAHOO.widget.DS_XHR.prototype._oConn=null;YAHOO.widget.DS_JSFunction=function(oFunction,oConfigs){if(typeof oConfigs=="object"){for(var sConfig in oConfigs){this[sConfig]=oConfigs[sConfig];}} -if(!oFunction||(oFunction.constructor!=Function)){return;} -else{this.dataFunction=oFunction;this._init();}};YAHOO.widget.DS_JSFunction.prototype=new YAHOO.widget.DataSource();YAHOO.widget.DS_JSFunction.prototype.dataFunction=null;YAHOO.widget.DS_JSFunction.prototype.doQuery=function(oCallbackFn,sQuery,oParent){var oFunction=this.dataFunction;var aResults=[];aResults=oFunction(sQuery);if(aResults===null){this.dataErrorEvent.fire(this,oParent,sQuery,YAHOO.widget.DataSource.ERROR_DATANULL);return;} -var resultObj={};resultObj.query=decodeURIComponent(sQuery);resultObj.results=aResults;this._addCacheElem(resultObj);this.getResultsEvent.fire(this,oParent,sQuery,aResults);oCallbackFn(sQuery,aResults,oParent);return;};YAHOO.widget.DS_JSArray=function(aData,oConfigs){if(typeof oConfigs=="object"){for(var sConfig in oConfigs){this[sConfig]=oConfigs[sConfig];}} -if(!aData||(aData.constructor!=Array)){return;} -else{this.data=aData;this._init();}};YAHOO.widget.DS_JSArray.prototype=new YAHOO.widget.DataSource();YAHOO.widget.DS_JSArray.prototype.data=null;YAHOO.widget.DS_JSArray.prototype.doQuery=function(oCallbackFn,sQuery,oParent){var aData=this.data;var aResults=[];var bMatchFound=false;var bMatchContains=this.queryMatchContains;if(sQuery){if(!this.queryMatchCase){sQuery=sQuery.toLowerCase();} -for(var i=aData.length-1;i>=0;i--){var aDataset=[];if(aData[i]){if(aData[i].constructor==String){aDataset[0]=aData[i];} -else if(aData[i].constructor==Array){aDataset=aData[i];}} -if(aDataset[0]&&(aDataset[0].constructor==String)){var sKeyIndex=(this.queryMatchCase)?encodeURIComponent(aDataset[0]).indexOf(sQuery):encodeURIComponent(aDataset[0]).toLowerCase().indexOf(sQuery);if((!bMatchContains&&(sKeyIndex===0))||(bMatchContains&&(sKeyIndex>-1))){aResults.unshift(aDataset);}}}} -this.getResultsEvent.fire(this,oParent,sQuery,aResults);oCallbackFn(sQuery,aResults,oParent);};YAHOO.register("autocomplete",YAHOO.widget.AutoComplete,{version:"2.2.0",build:"127"}); \ No newline at end of file diff --git a/interface/ispconfig/interface/js/yui/autocomplete/autocomplete.js b/interface/ispconfig/interface/js/yui/autocomplete/autocomplete.js deleted file mode 100644 index ce4e0581e..000000000 --- a/interface/ispconfig/interface/js/yui/autocomplete/autocomplete.js +++ /dev/null @@ -1,3071 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ - /** - * The AutoComplete control provides the front-end logic for text-entry suggestion and - * completion functionality. - * - * @module autocomplete - * @requires yahoo, dom, event, datasource - * @optional animation, connection - * @namespace YAHOO.widget - * @title AutoComplete Widget - */ - -/****************************************************************************/ -/****************************************************************************/ -/****************************************************************************/ - -/** - * The AutoComplete class provides the customizable functionality of a plug-and-play DHTML - * auto completion widget. Some key features: - *
    - *
  • Navigate with up/down arrow keys and/or mouse to pick a selection
  • - *
  • The drop down container can "roll down" or "fly out" via configurable - * animation
  • - *
  • UI look-and-feel customizable through CSS, including container - * attributes, borders, position, fonts, etc
  • - *
- * - * @class AutoComplete - * @constructor - * @param elInput {HTMLElement} DOM element reference of an input field. - * @param elInput {String} String ID of an input field. - * @param elContainer {HTMLElement} DOM element reference of an existing DIV. - * @param elContainer {String} String ID of an existing DIV. - * @param oDataSource {YAHOO.widget.DataSource} DataSource instance. - * @param oConfigs {Object} (optional) Object literal of configuration params. - */ -YAHOO.widget.AutoComplete = function(elInput,elContainer,oDataSource,oConfigs) { - if(elInput && elContainer && oDataSource) { - // Validate DataSource - if (oDataSource && (oDataSource instanceof YAHOO.widget.DataSource)) { - this.dataSource = oDataSource; - } - else { - return; - } - - // Validate input element - if(YAHOO.util.Dom.inDocument(elInput)) { - if(typeof elInput == "string") { - this._sName = "instance" + YAHOO.widget.AutoComplete._nIndex + " " + elInput; - this._oTextbox = document.getElementById(elInput); - } - else { - this._sName = (elInput.id) ? - "instance" + YAHOO.widget.AutoComplete._nIndex + " " + elInput.id: - "instance" + YAHOO.widget.AutoComplete._nIndex; - this._oTextbox = elInput; - } - } - else { - return; - } - - // Validate container element - if(YAHOO.util.Dom.inDocument(elContainer)) { - if(typeof elContainer == "string") { - this._oContainer = document.getElementById(elContainer); - } - else { - this._oContainer = elContainer; - } - if(this._oContainer.style.display == "none") { - } - } - else { - return; - } - - // Set any config params passed in to override defaults - if (typeof oConfigs == "object") { - for(var sConfig in oConfigs) { - if (sConfig) { - this[sConfig] = oConfigs[sConfig]; - } - } - } - - // Initialization sequence - this._initContainer(); - this._initProps(); - this._initList(); - this._initContainerHelpers(); - - // Set up events - var oSelf = this; - var oTextbox = this._oTextbox; - // Events are actually for the content module within the container - var oContent = this._oContainer._oContent; - - // Dom events - YAHOO.util.Event.addListener(oTextbox,"keyup",oSelf._onTextboxKeyUp,oSelf); - YAHOO.util.Event.addListener(oTextbox,"keydown",oSelf._onTextboxKeyDown,oSelf); - YAHOO.util.Event.addListener(oTextbox,"focus",oSelf._onTextboxFocus,oSelf); - YAHOO.util.Event.addListener(oTextbox,"blur",oSelf._onTextboxBlur,oSelf); - YAHOO.util.Event.addListener(oContent,"mouseover",oSelf._onContainerMouseover,oSelf); - YAHOO.util.Event.addListener(oContent,"mouseout",oSelf._onContainerMouseout,oSelf); - YAHOO.util.Event.addListener(oContent,"scroll",oSelf._onContainerScroll,oSelf); - YAHOO.util.Event.addListener(oContent,"resize",oSelf._onContainerResize,oSelf); - if(oTextbox.form) { - YAHOO.util.Event.addListener(oTextbox.form,"submit",oSelf._onFormSubmit,oSelf); - } - YAHOO.util.Event.addListener(oTextbox,"keypress",oSelf._onTextboxKeyPress,oSelf); - - // Custom events - this.textboxFocusEvent = new YAHOO.util.CustomEvent("textboxFocus", this); - this.textboxKeyEvent = new YAHOO.util.CustomEvent("textboxKey", this); - this.dataRequestEvent = new YAHOO.util.CustomEvent("dataRequest", this); - this.dataReturnEvent = new YAHOO.util.CustomEvent("dataReturn", this); - this.dataErrorEvent = new YAHOO.util.CustomEvent("dataError", this); - this.containerExpandEvent = new YAHOO.util.CustomEvent("containerExpand", this); - this.typeAheadEvent = new YAHOO.util.CustomEvent("typeAhead", this); - this.itemMouseOverEvent = new YAHOO.util.CustomEvent("itemMouseOver", this); - this.itemMouseOutEvent = new YAHOO.util.CustomEvent("itemMouseOut", this); - this.itemArrowToEvent = new YAHOO.util.CustomEvent("itemArrowTo", this); - this.itemArrowFromEvent = new YAHOO.util.CustomEvent("itemArrowFrom", this); - this.itemSelectEvent = new YAHOO.util.CustomEvent("itemSelect", this); - this.unmatchedItemSelectEvent = new YAHOO.util.CustomEvent("unmatchedItemSelect", this); - this.selectionEnforceEvent = new YAHOO.util.CustomEvent("selectionEnforce", this); - this.containerCollapseEvent = new YAHOO.util.CustomEvent("containerCollapse", this); - this.textboxBlurEvent = new YAHOO.util.CustomEvent("textboxBlur", this); - - // Finish up - oTextbox.setAttribute("autocomplete","off"); - YAHOO.widget.AutoComplete._nIndex++; - } - // Required arguments were not found - else { - } -}; - -///////////////////////////////////////////////////////////////////////////// -// -// Public member variables -// -///////////////////////////////////////////////////////////////////////////// - -/** - * The DataSource object that encapsulates the data used for auto completion. - * This object should be an inherited object from YAHOO.widget.DataSource. - * - * @property dataSource - * @type YAHOO.widget.DataSource - */ -YAHOO.widget.AutoComplete.prototype.dataSource = null; - -/** - * Number of characters that must be entered before querying for results. A negative value - * effectively turns off the widget. A value of 0 allows queries of null or empty string - * values. - * - * @property minQueryLength - * @type Number - * @default 1 - */ -YAHOO.widget.AutoComplete.prototype.minQueryLength = 1; - -/** - * Maximum number of results to display in results container. - * - * @property maxResultsDisplayed - * @type Number - * @default 10 - */ -YAHOO.widget.AutoComplete.prototype.maxResultsDisplayed = 10; - -/** - * Number of seconds to delay before submitting a query request. If a query - * request is received before a previous one has completed its delay, the - * previous request is cancelled and the new request is set to the delay. - * - * @property queryDelay - * @type Number - * @default 0.5 - */ -YAHOO.widget.AutoComplete.prototype.queryDelay = 0.5; - -/** - * Class name of a highlighted item within results container. - * - * @property highlightClassName - * @type String - * @default "yui-ac-highlight" - */ -YAHOO.widget.AutoComplete.prototype.highlightClassName = "yui-ac-highlight"; - -/** - * Class name of a pre-highlighted item within results container. - * - * @property prehighlightClassName - * @type String - */ -YAHOO.widget.AutoComplete.prototype.prehighlightClassName = null; - -/** - * Query delimiter. A single character separator for multiple delimited - * selections. Multiple delimiter characteres may be defined as an array of - * strings. A null value or empty string indicates that query results cannot - * be delimited. This feature is not recommended if you need forceSelection to - * be true. - * - * @property delimChar - * @type String | String[] - */ -YAHOO.widget.AutoComplete.prototype.delimChar = null; - -/** - * Whether or not the first item in results container should be automatically highlighted - * on expand. - * - * @property autoHighlight - * @type Boolean - * @default true - */ -YAHOO.widget.AutoComplete.prototype.autoHighlight = true; - -/** - * Whether or not the input field should be automatically updated - * with the first query result as the user types, auto-selecting the substring - * that the user has not typed. - * - * @property typeAhead - * @type Boolean - * @default false - */ -YAHOO.widget.AutoComplete.prototype.typeAhead = false; - -/** - * Whether or not to animate the expansion/collapse of the results container in the - * horizontal direction. - * - * @property animHoriz - * @type Boolean - * @default false - */ -YAHOO.widget.AutoComplete.prototype.animHoriz = false; - -/** - * Whether or not to animate the expansion/collapse of the results container in the - * vertical direction. - * - * @property animVert - * @type Boolean - * @default true - */ -YAHOO.widget.AutoComplete.prototype.animVert = true; - -/** - * Speed of container expand/collapse animation, in seconds.. - * - * @property animSpeed - * @type Number - * @default 0.3 - */ -YAHOO.widget.AutoComplete.prototype.animSpeed = 0.3; - -/** - * Whether or not to force the user's selection to match one of the query - * results. Enabling this feature essentially transforms the input field into a - * <select> field. This feature is not recommended with delimiter character(s) - * defined. - * - * @property forceSelection - * @type Boolean - * @default false - */ -YAHOO.widget.AutoComplete.prototype.forceSelection = false; - -/** - * Whether or not to allow browsers to cache user-typed input in the input - * field. Disabling this feature will prevent the widget from setting the - * autocomplete="off" on the input field. When autocomplete="off" - * and users click the back button after form submission, user-typed input can - * be prefilled by the browser from its cache. This caching of user input may - * not be desired for sensitive data, such as credit card numbers, in which - * case, implementers should consider setting allowBrowserAutocomplete to false. - * - * @property allowBrowserAutocomplete - * @type Boolean - * @default true - */ -YAHOO.widget.AutoComplete.prototype.allowBrowserAutocomplete = true; - -/** - * Whether or not the results container should always be displayed. - * Enabling this feature displays the container when the widget is instantiated - * and prevents the toggling of the container to a collapsed state. - * - * @property alwaysShowContainer - * @type Boolean - * @default false - */ -YAHOO.widget.AutoComplete.prototype.alwaysShowContainer = false; - -/** - * Whether or not to use an iFrame to layer over Windows form elements in - * IE. Set to true only when the results container will be on top of a - * <select> field in IE and thus exposed to the IE z-index bug (i.e., - * 5.5 < IE < 7). - * - * @property useIFrame - * @type Boolean - * @default false - */ -YAHOO.widget.AutoComplete.prototype.useIFrame = false; - -/** - * Whether or not the results container should have a shadow. - * - * @property useShadow - * @type Boolean - * @default false - */ -YAHOO.widget.AutoComplete.prototype.useShadow = false; - -///////////////////////////////////////////////////////////////////////////// -// -// Public methods -// -///////////////////////////////////////////////////////////////////////////// - - /** - * Public accessor to the unique name of the AutoComplete instance. - * - * @method toString - * @return {String} Unique name of the AutoComplete instance. - */ -YAHOO.widget.AutoComplete.prototype.toString = function() { - return "AutoComplete " + this._sName; -}; - - /** - * Returns true if container is in an expanded state, false otherwise. - * - * @method isContainerOpen - * @return {Boolean} Returns true if container is in an expanded state, false otherwise. - */ -YAHOO.widget.AutoComplete.prototype.isContainerOpen = function() { - return this._bContainerOpen; -}; - -/** - * Public accessor to the internal array of DOM <li> elements that - * display query results within the results container. - * - * @method getListItems - * @return {HTMLElement[]} Array of <li> elements within the results container. - */ -YAHOO.widget.AutoComplete.prototype.getListItems = function() { - return this._aListItems; -}; - -/** - * Public accessor to the data held in an <li> element of the - * results container. - * - * @method getListItemData - * @return {Object | Object[]} Object or array of result data or null - */ -YAHOO.widget.AutoComplete.prototype.getListItemData = function(oListItem) { - if(oListItem._oResultData) { - return oListItem._oResultData; - } - else { - return false; - } -}; - -/** - * Sets HTML markup for the results container header. This markup will be - * inserted within a <div> tag with a class of "yui-ac-hd". - * - * @method setHeader - * @param sHeader {String} HTML markup for results container header. - */ -YAHOO.widget.AutoComplete.prototype.setHeader = function(sHeader) { - if(sHeader) { - if(this._oContainer._oContent._oHeader) { - this._oContainer._oContent._oHeader.innerHTML = sHeader; - this._oContainer._oContent._oHeader.style.display = "block"; - } - } - else { - this._oContainer._oContent._oHeader.innerHTML = ""; - this._oContainer._oContent._oHeader.style.display = "none"; - } -}; - -/** - * Sets HTML markup for the results container footer. This markup will be - * inserted within a <div> tag with a class of "yui-ac-ft". - * - * @method setFooter - * @param sFooter {String} HTML markup for results container footer. - */ -YAHOO.widget.AutoComplete.prototype.setFooter = function(sFooter) { - if(sFooter) { - if(this._oContainer._oContent._oFooter) { - this._oContainer._oContent._oFooter.innerHTML = sFooter; - this._oContainer._oContent._oFooter.style.display = "block"; - } - } - else { - this._oContainer._oContent._oFooter.innerHTML = ""; - this._oContainer._oContent._oFooter.style.display = "none"; - } -}; - -/** - * Sets HTML markup for the results container body. This markup will be - * inserted within a <div> tag with a class of "yui-ac-bd". - * - * @method setBody - * @param sBody {String} HTML markup for results container body. - */ -YAHOO.widget.AutoComplete.prototype.setBody = function(sBody) { - if(sBody) { - if(this._oContainer._oContent._oBody) { - this._oContainer._oContent._oBody.innerHTML = sBody; - this._oContainer._oContent._oBody.style.display = "block"; - this._oContainer._oContent.style.display = "block"; - } - } - else { - this._oContainer._oContent._oBody.innerHTML = ""; - this._oContainer._oContent.style.display = "none"; - } - this._maxResultsDisplayed = 0; -}; - -/** - * Overridable method that converts a result item object into HTML markup - * for display. Return data values are accessible via the oResultItem object, - * and the key return value will always be oResultItem[0]. Markup will be - * displayed within <li> element tags in the container. - * - * @method formatResult - * @param oResultItem {Object} Result item representing one query result. Data is held in an array. - * @param sQuery {String} The current query string. - * @return {String} HTML markup of formatted result data. - */ -YAHOO.widget.AutoComplete.prototype.formatResult = function(oResultItem, sQuery) { - var sResult = oResultItem[0]; - if(sResult) { - return sResult; - } - else { - return ""; - } -}; - -/** - * Overridable method called before container expands allows implementers to access data - * and DOM elements. - * - * @method doBeforeExpandContainer - * @return {Boolean} Return true to continue expanding container, false to cancel the expand. - */ -YAHOO.widget.AutoComplete.prototype.doBeforeExpandContainer = function(oResultItem, sQuery) { - return true; -}; - -/** - * Makes query request to the DataSource. - * - * @method sendQuery - * @param sQuery {String} Query string. - */ -YAHOO.widget.AutoComplete.prototype.sendQuery = function(sQuery) { - this._sendQuery(sQuery); -}; - -///////////////////////////////////////////////////////////////////////////// -// -// Public events -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Fired when the input field receives focus. - * - * @event textboxFocusEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - */ -YAHOO.widget.AutoComplete.prototype.textboxFocusEvent = null; - -/** - * Fired when the input field receives key input. - * - * @event textboxKeyEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @param nKeycode {Number} The keycode number. - */ -YAHOO.widget.AutoComplete.prototype.textboxKeyEvent = null; - -/** - * Fired when the AutoComplete instance makes a query to the DataSource. - * - * @event dataRequestEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @param sQuery {String} The query string. - */ -YAHOO.widget.AutoComplete.prototype.dataRequestEvent = null; - -/** - * Fired when the AutoComplete instance receives query results from the data - * source. - * - * @event dataReturnEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @param sQuery {String} The query string. - * @param aResults {Object[]} Results array. - */ -YAHOO.widget.AutoComplete.prototype.dataReturnEvent = null; - -/** - * Fired when the AutoComplete instance does not receive query results from the - * DataSource due to an error. - * - * @event dataErrorEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @param sQuery {String} The query string. - */ -YAHOO.widget.AutoComplete.prototype.dataErrorEvent = null; - -/** - * Fired when the results container is expanded. - * - * @event containerExpandEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - */ -YAHOO.widget.AutoComplete.prototype.containerExpandEvent = null; - -/** - * Fired when the input field has been prefilled by the type-ahead - * feature. - * - * @event typeAheadEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @param sQuery {String} The query string. - * @param sPrefill {String} The prefill string. - */ -YAHOO.widget.AutoComplete.prototype.typeAheadEvent = null; - -/** - * Fired when result item has been moused over. - * - * @event itemMouseOverEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @param elItem {HTMLElement} The <li> element item moused to. - */ -YAHOO.widget.AutoComplete.prototype.itemMouseOverEvent = null; - -/** - * Fired when result item has been moused out. - * - * @event itemMouseOutEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @param elItem {HTMLElement} The <li> element item moused from. - */ -YAHOO.widget.AutoComplete.prototype.itemMouseOutEvent = null; - -/** - * Fired when result item has been arrowed to. - * - * @event itemArrowToEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @param elItem {HTMLElement} The <li> element item arrowed to. - */ -YAHOO.widget.AutoComplete.prototype.itemArrowToEvent = null; - -/** - * Fired when result item has been arrowed away from. - * - * @event itemArrowFromEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @param elItem {HTMLElement} The <li> element item arrowed from. - */ -YAHOO.widget.AutoComplete.prototype.itemArrowFromEvent = null; - -/** - * Fired when an item is selected via mouse click, ENTER key, or TAB key. - * - * @event itemSelectEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @param elItem {HTMLElement} The selected <li> element item. - * @param oData {Object} The data returned for the item, either as an object, - * or mapped from the schema into an array. - */ -YAHOO.widget.AutoComplete.prototype.itemSelectEvent = null; - -/** - * Fired when a user selection does not match any of the displayed result items. - * Note that this event may not behave as expected when delimiter characters - * have been defined. - * - * @event unmatchedItemSelectEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @param sQuery {String} The user-typed query string. - */ -YAHOO.widget.AutoComplete.prototype.unmatchedItemSelectEvent = null; - -/** - * Fired if forceSelection is enabled and the user's input has been cleared - * because it did not match one of the returned query results. - * - * @event selectionEnforceEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - */ -YAHOO.widget.AutoComplete.prototype.selectionEnforceEvent = null; - -/** - * Fired when the results container is collapsed. - * - * @event containerCollapseEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - */ -YAHOO.widget.AutoComplete.prototype.containerCollapseEvent = null; - -/** - * Fired when the input field loses focus. - * - * @event textboxBlurEvent - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - */ -YAHOO.widget.AutoComplete.prototype.textboxBlurEvent = null; - -///////////////////////////////////////////////////////////////////////////// -// -// Private member variables -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Internal class variable to index multiple AutoComplete instances. - * - * @property _nIndex - * @type Number - * @default 0 - * @private - */ -YAHOO.widget.AutoComplete._nIndex = 0; - -/** - * Name of AutoComplete instance. - * - * @property _sName - * @type String - * @private - */ -YAHOO.widget.AutoComplete.prototype._sName = null; - -/** - * Text input field DOM element. - * - * @property _oTextbox - * @type HTMLElement - * @private - */ -YAHOO.widget.AutoComplete.prototype._oTextbox = null; - -/** - * Whether or not the input field is currently in focus. If query results come back - * but the user has already moved on, do not proceed with auto complete behavior. - * - * @property _bFocused - * @type Boolean - * @private - */ -YAHOO.widget.AutoComplete.prototype._bFocused = true; - -/** - * Animation instance for container expand/collapse. - * - * @property _oAnim - * @type Boolean - * @private - */ -YAHOO.widget.AutoComplete.prototype._oAnim = null; - -/** - * Container DOM element. - * - * @property _oContainer - * @type HTMLElement - * @private - */ -YAHOO.widget.AutoComplete.prototype._oContainer = null; - -/** - * Whether or not the results container is currently open. - * - * @property _bContainerOpen - * @type Boolean - * @private - */ -YAHOO.widget.AutoComplete.prototype._bContainerOpen = false; - -/** - * Whether or not the mouse is currently over the results - * container. This is necessary in order to prevent clicks on container items - * from being text input field blur events. - * - * @property _bOverContainer - * @type Boolean - * @private - */ -YAHOO.widget.AutoComplete.prototype._bOverContainer = false; - -/** - * Array of <li> elements references that contain query results within the - * results container. - * - * @property _aListItems - * @type HTMLElement[] - * @private - */ -YAHOO.widget.AutoComplete.prototype._aListItems = null; - -/** - * Number of <li> elements currently displayed in results container. - * - * @property _nDisplayedItems - * @type Number - * @private - */ -YAHOO.widget.AutoComplete.prototype._nDisplayedItems = 0; - -/** - * Internal count of <li> elements displayed and hidden in results container. - * - * @property _maxResultsDisplayed - * @type Number - * @private - */ -YAHOO.widget.AutoComplete.prototype._maxResultsDisplayed = 0; - -/** - * Current query string - * - * @property _sCurQuery - * @type String - * @private - */ -YAHOO.widget.AutoComplete.prototype._sCurQuery = null; - -/** - * Past queries this session (for saving delimited queries). - * - * @property _sSavedQuery - * @type String - * @private - */ -YAHOO.widget.AutoComplete.prototype._sSavedQuery = null; - -/** - * Pointer to the currently highlighted <li> element in the container. - * - * @property _oCurItem - * @type HTMLElement - * @private - */ -YAHOO.widget.AutoComplete.prototype._oCurItem = null; - -/** - * Whether or not an item has been selected since the container was populated - * with results. Reset to false by _populateList, and set to true when item is - * selected. - * - * @property _bItemSelected - * @type Boolean - * @private - */ -YAHOO.widget.AutoComplete.prototype._bItemSelected = false; - -/** - * Key code of the last key pressed in textbox. - * - * @property _nKeyCode - * @type Number - * @private - */ -YAHOO.widget.AutoComplete.prototype._nKeyCode = null; - -/** - * Delay timeout ID. - * - * @property _nDelayID - * @type Number - * @private - */ -YAHOO.widget.AutoComplete.prototype._nDelayID = -1; - -/** - * Src to iFrame used when useIFrame = true. Supports implementations over SSL - * as well. - * - * @property _iFrameSrc - * @type String - * @private - */ -YAHOO.widget.AutoComplete.prototype._iFrameSrc = "javascript:false;"; - -/** - * For users typing via certain IMEs, queries must be triggered by intervals, - * since key events yet supported across all browsers for all IMEs. - * - * @property _queryInterval - * @type Object - * @private - */ -YAHOO.widget.AutoComplete.prototype._queryInterval = null; - -/** - * Internal tracker to last known textbox value, used to determine whether or not - * to trigger a query via interval for certain IME users. - * - * @event _sLastTextboxValue - * @type String - * @private - */ -YAHOO.widget.AutoComplete.prototype._sLastTextboxValue = null; - -///////////////////////////////////////////////////////////////////////////// -// -// Private methods -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Updates and validates latest public config properties. - * - * @method __initProps - * @private - */ -YAHOO.widget.AutoComplete.prototype._initProps = function() { - // Correct any invalid values - var minQueryLength = this.minQueryLength; - if(isNaN(minQueryLength) || (minQueryLength < 1)) { - minQueryLength = 1; - } - var maxResultsDisplayed = this.maxResultsDisplayed; - if(isNaN(this.maxResultsDisplayed) || (this.maxResultsDisplayed < 1)) { - this.maxResultsDisplayed = 10; - } - var queryDelay = this.queryDelay; - if(isNaN(this.queryDelay) || (this.queryDelay < 0)) { - this.queryDelay = 0.5; - } - var aDelimChar = (this.delimChar) ? this.delimChar : null; - if(aDelimChar) { - if(typeof aDelimChar == "string") { - this.delimChar = [aDelimChar]; - } - else if(aDelimChar.constructor != Array) { - this.delimChar = null; - } - } - var animSpeed = this.animSpeed; - if((this.animHoriz || this.animVert) && YAHOO.util.Anim) { - if(isNaN(animSpeed) || (animSpeed < 0)) { - animSpeed = 0.3; - } - if(!this._oAnim ) { - oAnim = new YAHOO.util.Anim(this._oContainer._oContent, {}, this.animSpeed); - this._oAnim = oAnim; - } - else { - this._oAnim.duration = animSpeed; - } - } - if(this.forceSelection && this.delimChar) { - } -}; - -/** - * Initializes the results container helpers if they are enabled and do - * not exist - * - * @method _initContainerHelpers - * @private - */ -YAHOO.widget.AutoComplete.prototype._initContainerHelpers = function() { - if(this.useShadow && !this._oContainer._oShadow) { - var oShadow = document.createElement("div"); - oShadow.className = "yui-ac-shadow"; - this._oContainer._oShadow = this._oContainer.appendChild(oShadow); - } - if(this.useIFrame && !this._oContainer._oIFrame) { - var oIFrame = document.createElement("iframe"); - oIFrame.src = this._iFrameSrc; - oIFrame.frameBorder = 0; - oIFrame.scrolling = "no"; - oIFrame.style.position = "absolute"; - oIFrame.style.width = "100%"; - oIFrame.style.height = "100%"; - oIFrame.tabIndex = -1; - this._oContainer._oIFrame = this._oContainer.appendChild(oIFrame); - } -}; - -/** - * Initializes the results container once at object creation - * - * @method _initContainer - * @private - */ -YAHOO.widget.AutoComplete.prototype._initContainer = function() { - if(!this._oContainer._oContent) { - // The oContent div helps size the iframe and shadow properly - var oContent = document.createElement("div"); - oContent.className = "yui-ac-content"; - oContent.style.display = "none"; - this._oContainer._oContent = this._oContainer.appendChild(oContent); - - var oHeader = document.createElement("div"); - oHeader.className = "yui-ac-hd"; - oHeader.style.display = "none"; - this._oContainer._oContent._oHeader = this._oContainer._oContent.appendChild(oHeader); - - var oBody = document.createElement("div"); - oBody.className = "yui-ac-bd"; - this._oContainer._oContent._oBody = this._oContainer._oContent.appendChild(oBody); - - var oFooter = document.createElement("div"); - oFooter.className = "yui-ac-ft"; - oFooter.style.display = "none"; - this._oContainer._oContent._oFooter = this._oContainer._oContent.appendChild(oFooter); - } - else { - } -}; - -/** - * Clears out contents of container body and creates up to - * YAHOO.widget.AutoComplete#maxResultsDisplayed <li> elements in an - * <ul> element. - * - * @method _initList - * @private - */ -YAHOO.widget.AutoComplete.prototype._initList = function() { - this._aListItems = []; - while(this._oContainer._oContent._oBody.hasChildNodes()) { - var oldListItems = this.getListItems(); - if(oldListItems) { - for(var oldi = oldListItems.length-1; oldi >= 0; i--) { - oldListItems[oldi] = null; - } - } - this._oContainer._oContent._oBody.innerHTML = ""; - } - - var oList = document.createElement("ul"); - oList = this._oContainer._oContent._oBody.appendChild(oList); - for(var i=0; i= 18 && nKeyCode <= 20) || // alt,pause/break,caps lock - (nKeyCode == 27) || // esc - (nKeyCode >= 33 && nKeyCode <= 35) || // page up,page down,end - (nKeyCode >= 36 && nKeyCode <= 38) || // home,left,up - (nKeyCode == 40) || // down - (nKeyCode >= 44 && nKeyCode <= 45)) { // print screen,insert - return true; - } - return false; -}; - -/** - * Makes query request to the DataSource. - * - * @method _sendQuery - * @param sQuery {String} Query string. - * @private - */ -YAHOO.widget.AutoComplete.prototype._sendQuery = function(sQuery) { - // Widget has been effectively turned off - if(this.minQueryLength == -1) { - this._toggleContainer(false); - return; - } - // Delimiter has been enabled - var aDelimChar = (this.delimChar) ? this.delimChar : null; - if(aDelimChar) { - // Loop through all possible delimiters and find the latest one - // A " " may be a false positive if they are defined as delimiters AND - // are used to separate delimited queries - var nDelimIndex = -1; - for(var i = aDelimChar.length-1; i >= 0; i--) { - var nNewIndex = sQuery.lastIndexOf(aDelimChar[i]); - if(nNewIndex > nDelimIndex) { - nDelimIndex = nNewIndex; - } - } - // If we think the last delimiter is a space (" "), make sure it is NOT - // a false positive by also checking the char directly before it - if(aDelimChar[i] == " ") { - for (var j = aDelimChar.length-1; j >= 0; j--) { - if(sQuery[nDelimIndex - 1] == aDelimChar[j]) { - nDelimIndex--; - break; - } - } - } - // A delimiter has been found so extract the latest query - if (nDelimIndex > -1) { - var nQueryStart = nDelimIndex + 1; - // Trim any white space from the beginning... - while(sQuery.charAt(nQueryStart) == " ") { - nQueryStart += 1; - } - // ...and save the rest of the string for later - this._sSavedQuery = sQuery.substring(0,nQueryStart); - // Here is the query itself - sQuery = sQuery.substr(nQueryStart); - } - else if(sQuery.indexOf(this._sSavedQuery) < 0){ - this._sSavedQuery = null; - } - } - - // Don't search queries that are too short - if (sQuery && (sQuery.length < this.minQueryLength) || (!sQuery && this.minQueryLength > 0)) { - if (this._nDelayID != -1) { - clearTimeout(this._nDelayID); - } - this._toggleContainer(false); - return; - } - - sQuery = encodeURIComponent(sQuery); - this._nDelayID = -1; // Reset timeout ID because request has been made - this.dataRequestEvent.fire(this, sQuery); - this.dataSource.getResults(this._populateList, sQuery, this); -}; - -/** - * Populates the array of <li> elements in the container with query - * results. This method is passed to YAHOO.widget.DataSource#getResults as a - * callback function so results from the DataSource instance are returned to the - * AutoComplete instance. - * - * @method _populateList - * @param sQuery {String} The query string. - * @param aResults {Object[]} An array of query result objects from the DataSource. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._populateList = function(sQuery, aResults, oSelf) { - if(aResults === null) { - oSelf.dataErrorEvent.fire(oSelf, sQuery); - } - if (!oSelf._bFocused || !aResults) { - return; - } - - var isOpera = (navigator.userAgent.toLowerCase().indexOf("opera") != -1); - var contentStyle = oSelf._oContainer._oContent.style; - contentStyle.width = (!isOpera) ? null : ""; - contentStyle.height = (!isOpera) ? null : ""; - - var sCurQuery = decodeURIComponent(sQuery); - oSelf._sCurQuery = sCurQuery; - oSelf._bItemSelected = false; - - if(oSelf._maxResultsDisplayed != oSelf.maxResultsDisplayed) { - oSelf._initList(); - } - - var nItems = Math.min(aResults.length,oSelf.maxResultsDisplayed); - oSelf._nDisplayedItems = nItems; - if (nItems > 0) { - oSelf._initContainerHelpers(); - var aItems = oSelf._aListItems; - - // Fill items with data - for(var i = nItems-1; i >= 0; i--) { - var oItemi = aItems[i]; - var oResultItemi = aResults[i]; - oItemi.innerHTML = oSelf.formatResult(oResultItemi, sCurQuery); - oItemi.style.display = "list-item"; - oItemi._sResultKey = oResultItemi[0]; - oItemi._oResultData = oResultItemi; - - } - - // Empty out remaining items if any - for(var j = aItems.length-1; j >= nItems ; j--) { - var oItemj = aItems[j]; - oItemj.innerHTML = null; - oItemj.style.display = "none"; - oItemj._sResultKey = null; - oItemj._oResultData = null; - } - - if(oSelf.autoHighlight) { - // Go to the first item - var oFirstItem = aItems[0]; - oSelf._toggleHighlight(oFirstItem,"to"); - oSelf.itemArrowToEvent.fire(oSelf, oFirstItem); - oSelf._typeAhead(oFirstItem,sQuery); - } - else { - oSelf._oCurItem = null; - } - - // Expand the container - var ok = oSelf.doBeforeExpandContainer(oSelf._oTextbox, oSelf._oContainer, sQuery, aResults); - oSelf._toggleContainer(ok); - } - else { - oSelf._toggleContainer(false); - } - oSelf.dataReturnEvent.fire(oSelf, sQuery, aResults); -}; - -/** - * When forceSelection is true and the user attempts - * leave the text input box without selecting an item from the query results, - * the user selection is cleared. - * - * @method _clearSelection - * @private - */ -YAHOO.widget.AutoComplete.prototype._clearSelection = function() { - var sValue = this._oTextbox.value; - var sChar = (this.delimChar) ? this.delimChar[0] : null; - var nIndex = (sChar) ? sValue.lastIndexOf(sChar, sValue.length-2) : -1; - if(nIndex > -1) { - this._oTextbox.value = sValue.substring(0,nIndex); - } - else { - this._oTextbox.value = ""; - } - this._sSavedQuery = this._oTextbox.value; - - // Fire custom event - this.selectionEnforceEvent.fire(this); -}; - -/** - * Whether or not user-typed value in the text input box matches any of the - * query results. - * - * @method _textMatchesOption - * @return {Boolean} True if user-input text matches a result, false otherwise. - * @private - */ -YAHOO.widget.AutoComplete.prototype._textMatchesOption = function() { - var foundMatch = false; - - for(var i = this._nDisplayedItems-1; i >= 0 ; i--) { - var oItem = this._aListItems[i]; - var sMatch = oItem._sResultKey.toLowerCase(); - if (sMatch == this._sCurQuery.toLowerCase()) { - foundMatch = true; - break; - } - } - return(foundMatch); -}; - -/** - * Updates in the text input box with the first query result as the user types, - * selecting the substring that the user has not typed. - * - * @method _typeAhead - * @param oItem {HTMLElement} The <li> element item whose data populates the input field. - * @param sQuery {String} Query string. - * @private - */ -YAHOO.widget.AutoComplete.prototype._typeAhead = function(oItem, sQuery) { - // Don't update if turned off - if (!this.typeAhead || (this._nKeyCode == 8)) { - return; - } - - var oTextbox = this._oTextbox; - var sValue = this._oTextbox.value; // any saved queries plus what user has typed - - // Don't update with type-ahead if text selection is not supported - if(!oTextbox.setSelectionRange && !oTextbox.createTextRange) { - return; - } - - // Select the portion of text that the user has not typed - var nStart = sValue.length; - this._updateValue(oItem); - var nEnd = oTextbox.value.length; - this._selectText(oTextbox,nStart,nEnd); - var sPrefill = oTextbox.value.substr(nStart,nEnd); - this.typeAheadEvent.fire(this,sQuery,sPrefill); -}; - -/** - * Selects text in the input field. - * - * @method _selectText - * @param oTextbox {HTMLElement} Text input box element in which to select text. - * @param nStart {Number} Starting index of text string to select. - * @param nEnd {Number} Ending index of text selection. - * @private - */ -YAHOO.widget.AutoComplete.prototype._selectText = function(oTextbox, nStart, nEnd) { - if (oTextbox.setSelectionRange) { // For Mozilla - oTextbox.setSelectionRange(nStart,nEnd); - } - else if (oTextbox.createTextRange) { // For IE - var oTextRange = oTextbox.createTextRange(); - oTextRange.moveStart("character", nStart); - oTextRange.moveEnd("character", nEnd-oTextbox.value.length); - oTextRange.select(); - } - else { - oTextbox.select(); - } -}; - -/** - * Syncs results container with its helpers. - * - * @method _toggleContainerHelpers - * @param bShow {Boolean} True if container is expanded, false if collapsed - * @private - */ -YAHOO.widget.AutoComplete.prototype._toggleContainerHelpers = function(bShow) { - var bFireEvent = false; - var width = this._oContainer._oContent.offsetWidth + "px"; - var height = this._oContainer._oContent.offsetHeight + "px"; - - if(this.useIFrame && this._oContainer._oIFrame) { - bFireEvent = true; - if(bShow) { - this._oContainer._oIFrame.style.width = width; - this._oContainer._oIFrame.style.height = height; - } - else { - this._oContainer._oIFrame.style.width = 0; - this._oContainer._oIFrame.style.height = 0; - } - } - if(this.useShadow && this._oContainer._oShadow) { - bFireEvent = true; - if(bShow) { - this._oContainer._oShadow.style.width = width; - this._oContainer._oShadow.style.height = height; - } - else { - this._oContainer._oShadow.style.width = 0; - this._oContainer._oShadow.style.height = 0; - } - } -}; - -/** - * Animates expansion or collapse of the container. - * - * @method _toggleContainer - * @param bShow {Boolean} True if container should be expanded, false if container should be collapsed - * @private - */ -YAHOO.widget.AutoComplete.prototype._toggleContainer = function(bShow) { - var oContainer = this._oContainer; - - // Implementer has container always open so don't mess with it - if(this.alwaysShowContainer && this._bContainerOpen) { - return; - } - - // Clear contents of container - if(!bShow) { - this._oContainer._oContent.scrollTop = 0; - var aItems = this._aListItems; - - if(aItems && (aItems.length > 0)) { - for(var i = aItems.length-1; i >= 0 ; i--) { - aItems[i].style.display = "none"; - } - } - - if (this._oCurItem) { - this._toggleHighlight(this._oCurItem,"from"); - } - - this._oCurItem = null; - this._nDisplayedItems = 0; - this._sCurQuery = null; - } - - // Container is already closed - if (!bShow && !this._bContainerOpen) { - oContainer._oContent.style.display = "none"; - return; - } - - // If animation is enabled... - var oAnim = this._oAnim; - if (oAnim && oAnim.getEl() && (this.animHoriz || this.animVert)) { - // If helpers need to be collapsed, do it right away... - // but if helpers need to be expanded, wait until after the container expands - if(!bShow) { - this._toggleContainerHelpers(bShow); - } - - if(oAnim.isAnimated()) { - oAnim.stop(); - } - - // Clone container to grab current size offscreen - var oClone = oContainer._oContent.cloneNode(true); - oContainer.appendChild(oClone); - oClone.style.top = "-9000px"; - oClone.style.display = "block"; - - // Current size of the container is the EXPANDED size - var wExp = oClone.offsetWidth; - var hExp = oClone.offsetHeight; - - // Calculate COLLAPSED sizes based on horiz and vert anim - var wColl = (this.animHoriz) ? 0 : wExp; - var hColl = (this.animVert) ? 0 : hExp; - - // Set animation sizes - oAnim.attributes = (bShow) ? - {width: { to: wExp }, height: { to: hExp }} : - {width: { to: wColl}, height: { to: hColl }}; - - // If opening anew, set to a collapsed size... - if(bShow && !this._bContainerOpen) { - oContainer._oContent.style.width = wColl+"px"; - oContainer._oContent.style.height = hColl+"px"; - } - // Else, set it to its last known size. - else { - oContainer._oContent.style.width = wExp+"px"; - oContainer._oContent.style.height = hExp+"px"; - } - - oContainer.removeChild(oClone); - oClone = null; - - var oSelf = this; - var onAnimComplete = function() { - // Finish the collapse - oAnim.onComplete.unsubscribeAll(); - - if(bShow) { - oSelf.containerExpandEvent.fire(oSelf); - } - else { - oContainer._oContent.style.display = "none"; - oSelf.containerCollapseEvent.fire(oSelf); - } - oSelf._toggleContainerHelpers(bShow); - }; - - // Display container and animate it - oContainer._oContent.style.display = "block"; - oAnim.onComplete.subscribe(onAnimComplete); - oAnim.animate(); - this._bContainerOpen = bShow; - } - // Else don't animate, just show or hide - else { - if(bShow) { - oContainer._oContent.style.display = "block"; - this.containerExpandEvent.fire(this); - } - else { - oContainer._oContent.style.display = "none"; - this.containerCollapseEvent.fire(this); - } - this._toggleContainerHelpers(bShow); - this._bContainerOpen = bShow; - } - -}; - -/** - * Toggles the highlight on or off for an item in the container, and also cleans - * up highlighting of any previous item. - * - * @method _toggleHighlight - * @param oNewItem {HTMLElement} The <li> element item to receive highlight behavior. - * @param sType {String} Type "mouseover" will toggle highlight on, and "mouseout" will toggle highlight off. - * @private - */ -YAHOO.widget.AutoComplete.prototype._toggleHighlight = function(oNewItem, sType) { - var sHighlight = this.highlightClassName; - if(this._oCurItem) { - // Remove highlight from old item - YAHOO.util.Dom.removeClass(this._oCurItem, sHighlight); - } - - if((sType == "to") && sHighlight) { - // Apply highlight to new item - YAHOO.util.Dom.addClass(oNewItem, sHighlight); - this._oCurItem = oNewItem; - } -}; - -/** - * Toggles the pre-highlight on or off for an item in the container. - * - * @method _togglePrehighlight - * @param oNewItem {HTMLElement} The <li> element item to receive highlight behavior. - * @param sType {String} Type "mouseover" will toggle highlight on, and "mouseout" will toggle highlight off. - * @private - */ -YAHOO.widget.AutoComplete.prototype._togglePrehighlight = function(oNewItem, sType) { - if(oNewItem == this._oCurItem) { - return; - } - - var sPrehighlight = this.prehighlightClassName; - if((sType == "mouseover") && sPrehighlight) { - // Apply prehighlight to new item - YAHOO.util.Dom.addClass(oNewItem, sPrehighlight); - } - else { - // Remove prehighlight from old item - YAHOO.util.Dom.removeClass(oNewItem, sPrehighlight); - } -}; - -/** - * Updates the text input box value with selected query result. If a delimiter - * has been defined, then the value gets appended with the delimiter. - * - * @method _updateValue - * @param oItem {HTMLElement} The <li> element item with which to update the value. - * @private - */ -YAHOO.widget.AutoComplete.prototype._updateValue = function(oItem) { - var oTextbox = this._oTextbox; - var sDelimChar = (this.delimChar) ? (this.delimChar[0] || this.delimChar) : null; - var sSavedQuery = this._sSavedQuery; - var sResultKey = oItem._sResultKey; - oTextbox.focus(); - - // First clear text field - oTextbox.value = ""; - // Grab data to put into text field - if(sDelimChar) { - if(sSavedQuery) { - oTextbox.value = sSavedQuery; - } - oTextbox.value += sResultKey + sDelimChar; - if(sDelimChar != " ") { - oTextbox.value += " "; - } - } - else { oTextbox.value = sResultKey; } - - // scroll to bottom of textarea if necessary - if(oTextbox.type == "textarea") { - oTextbox.scrollTop = oTextbox.scrollHeight; - } - - // move cursor to end - var end = oTextbox.value.length; - this._selectText(oTextbox,end,end); - - this._oCurItem = oItem; -}; - -/** - * Selects a result item from the container - * - * @method _selectItem - * @param oItem {HTMLElement} The selected <li> element item. - * @private - */ -YAHOO.widget.AutoComplete.prototype._selectItem = function(oItem) { - this._bItemSelected = true; - this._updateValue(oItem); - this._cancelIntervalDetection(this); - this.itemSelectEvent.fire(this, oItem, oItem._oResultData); - this._toggleContainer(false); -}; - -/** - * For values updated by type-ahead, the right arrow key jumps to the end - * of the textbox, otherwise the container is closed. - * - * @method _jumpSelection - * @private - */ -YAHOO.widget.AutoComplete.prototype._jumpSelection = function() { - if(!this.typeAhead) { - return; - } - else { - this._toggleContainer(false); - } -}; - -/** - * Triggered by up and down arrow keys, changes the current highlighted - * <li> element item. Scrolls container if necessary. - * - * @method _moveSelection - * @param nKeyCode {Number} Code of key pressed. - * @private - */ -YAHOO.widget.AutoComplete.prototype._moveSelection = function(nKeyCode) { - if(this._bContainerOpen) { - // Determine current item's id number - var oCurItem = this._oCurItem; - var nCurItemIndex = -1; - - if (oCurItem) { - nCurItemIndex = oCurItem._nItemIndex; - } - - var nNewItemIndex = (nKeyCode == 40) ? - (nCurItemIndex + 1) : (nCurItemIndex - 1); - - // Out of bounds - if (nNewItemIndex < -2 || nNewItemIndex >= this._nDisplayedItems) { - return; - } - - if (oCurItem) { - // Unhighlight current item - this._toggleHighlight(oCurItem, "from"); - this.itemArrowFromEvent.fire(this, oCurItem); - } - if (nNewItemIndex == -1) { - // Go back to query (remove type-ahead string) - if(this.delimChar && this._sSavedQuery) { - if (!this._textMatchesOption()) { - this._oTextbox.value = this._sSavedQuery; - } - else { - this._oTextbox.value = this._sSavedQuery + this._sCurQuery; - } - } - else { - this._oTextbox.value = this._sCurQuery; - } - this._oCurItem = null; - return; - } - if (nNewItemIndex == -2) { - // Close container - this._toggleContainer(false); - return; - } - - var oNewItem = this._aListItems[nNewItemIndex]; - - // Scroll the container if necessary - var oContent = this._oContainer._oContent; - var scrollOn = ((YAHOO.util.Dom.getStyle(oContent,"overflow") == "auto") || - (YAHOO.util.Dom.getStyle(oContent,"overflowY") == "auto")); - if(scrollOn && (nNewItemIndex > -1) && - (nNewItemIndex < this._nDisplayedItems)) { - // User is keying down - if(nKeyCode == 40) { - // Bottom of selected item is below scroll area... - if((oNewItem.offsetTop+oNewItem.offsetHeight) > (oContent.scrollTop + oContent.offsetHeight)) { - // Set bottom of scroll area to bottom of selected item - oContent.scrollTop = (oNewItem.offsetTop+oNewItem.offsetHeight) - oContent.offsetHeight; - } - // Bottom of selected item is above scroll area... - else if((oNewItem.offsetTop+oNewItem.offsetHeight) < oContent.scrollTop) { - // Set top of selected item to top of scroll area - oContent.scrollTop = oNewItem.offsetTop; - - } - } - // User is keying up - else { - // Top of selected item is above scroll area - if(oNewItem.offsetTop < oContent.scrollTop) { - // Set top of scroll area to top of selected item - this._oContainer._oContent.scrollTop = oNewItem.offsetTop; - } - // Top of selected item is below scroll area - else if(oNewItem.offsetTop > (oContent.scrollTop + oContent.offsetHeight)) { - // Set bottom of selected item to bottom of scroll area - this._oContainer._oContent.scrollTop = (oNewItem.offsetTop+oNewItem.offsetHeight) - oContent.offsetHeight; - } - } - } - - this._toggleHighlight(oNewItem, "to"); - this.itemArrowToEvent.fire(this, oNewItem); - if(this.typeAhead) { - this._updateValue(oNewItem); - } - } -}; - -///////////////////////////////////////////////////////////////////////////// -// -// Private event handlers -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Handles <li> element mouseover events in the container. - * - * @method _onItemMouseover - * @param v {HTMLEvent} The mouseover event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onItemMouseover = function(v,oSelf) { - if(oSelf.prehighlightClassName) { - oSelf._togglePrehighlight(this,"mouseover"); - } - else { - oSelf._toggleHighlight(this,"to"); - } - - oSelf.itemMouseOverEvent.fire(oSelf, this); -}; - -/** - * Handles <li> element mouseout events in the container. - * - * @method _onItemMouseout - * @param v {HTMLEvent} The mouseout event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onItemMouseout = function(v,oSelf) { - if(oSelf.prehighlightClassName) { - oSelf._togglePrehighlight(this,"mouseout"); - } - else { - oSelf._toggleHighlight(this,"from"); - } - - oSelf.itemMouseOutEvent.fire(oSelf, this); -}; - -/** - * Handles <li> element click events in the container. - * - * @method _onItemMouseclick - * @param v {HTMLEvent} The click event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onItemMouseclick = function(v,oSelf) { - // In case item has not been moused over - oSelf._toggleHighlight(this,"to"); - oSelf._selectItem(this); -}; - -/** - * Handles container mouseover events. - * - * @method _onContainerMouseover - * @param v {HTMLEvent} The mouseover event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onContainerMouseover = function(v,oSelf) { - oSelf._bOverContainer = true; -}; - -/** - * Handles container mouseout events. - * - * @method _onContainerMouseout - * @param v {HTMLEvent} The mouseout event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onContainerMouseout = function(v,oSelf) { - oSelf._bOverContainer = false; - // If container is still active - if(oSelf._oCurItem) { - oSelf._toggleHighlight(oSelf._oCurItem,"to"); - } -}; - -/** - * Handles container scroll events. - * - * @method _onContainerScroll - * @param v {HTMLEvent} The scroll event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onContainerScroll = function(v,oSelf) { - oSelf._oTextbox.focus(); -}; - -/** - * Handles container resize events. - * - * @method _onContainerResize - * @param v {HTMLEvent} The resize event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onContainerResize = function(v,oSelf) { - oSelf._toggleContainerHelpers(oSelf._bContainerOpen); -}; - - -/** - * Handles textbox keydown events of functional keys, mainly for UI behavior. - * - * @method _onTextboxKeyDown - * @param v {HTMLEvent} The keydown event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onTextboxKeyDown = function(v,oSelf) { - var nKeyCode = v.keyCode; - - switch (nKeyCode) { - case 9: // tab - if(oSelf.delimChar && (oSelf._nKeyCode != nKeyCode)) { - if(oSelf._bContainerOpen) { - YAHOO.util.Event.stopEvent(v); - } - } - // select an item or clear out - if(oSelf._oCurItem) { - oSelf._selectItem(oSelf._oCurItem); - } - else { - oSelf._toggleContainer(false); - } - break; - case 13: // enter - if(oSelf._nKeyCode != nKeyCode) { - if(oSelf._bContainerOpen) { - YAHOO.util.Event.stopEvent(v); - } - } - if(oSelf._oCurItem) { - oSelf._selectItem(oSelf._oCurItem); - } - else { - oSelf._toggleContainer(false); - } - break; - case 27: // esc - oSelf._toggleContainer(false); - return; - case 39: // right - oSelf._jumpSelection(); - break; - case 38: // up - YAHOO.util.Event.stopEvent(v); - oSelf._moveSelection(nKeyCode); - break; - case 40: // down - YAHOO.util.Event.stopEvent(v); - oSelf._moveSelection(nKeyCode); - break; - default: - break; - } -}; - -/** - * Handles textbox keypress events. - * @method _onTextboxKeyPress - * @param v {HTMLEvent} The keypress event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onTextboxKeyPress = function(v,oSelf) { - var nKeyCode = v.keyCode; - - //Expose only to Mac browsers, where stopEvent is ineffective on keydown events (bug 790337) - var isMac = (navigator.userAgent.toLowerCase().indexOf("mac") != -1); - if(isMac) { - switch (nKeyCode) { - case 9: // tab - if(oSelf.delimChar && (oSelf._nKeyCode != nKeyCode)) { - if(oSelf._bContainerOpen) { - YAHOO.util.Event.stopEvent(v); - } - } - break; - case 13: // enter - if(oSelf._nKeyCode != nKeyCode) { - if(oSelf._bContainerOpen) { - YAHOO.util.Event.stopEvent(v); - } - } - break; - case 38: // up - case 40: // down - YAHOO.util.Event.stopEvent(v); - break; - default: - break; - } - } - - //TODO: (?) limit only to non-IE, non-Mac-FF for Korean IME support (bug 811948) - // Korean IME detected - else if(nKeyCode == 229) { - oSelf._queryInterval = setInterval(function() { oSelf._onIMEDetected(oSelf); },500); - } -}; - -/** - * Handles textbox keyup events that trigger queries. - * - * @method _onTextboxKeyUp - * @param v {HTMLEvent} The keyup event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onTextboxKeyUp = function(v,oSelf) { - // Check to see if any of the public properties have been updated - oSelf._initProps(); - - var nKeyCode = v.keyCode; - oSelf._nKeyCode = nKeyCode; - var sText = this.value; //string in textbox - - // Filter out chars that don't trigger queries - if (oSelf._isIgnoreKey(nKeyCode) || (sText.toLowerCase() == oSelf._sCurQuery)) { - return; - } - else { - oSelf.textboxKeyEvent.fire(oSelf, nKeyCode); - } - - // Set timeout on the request - if (oSelf.queryDelay > 0) { - var nDelayID = - setTimeout(function(){oSelf._sendQuery(sText);},(oSelf.queryDelay * 1000)); - - if (oSelf._nDelayID != -1) { - clearTimeout(oSelf._nDelayID); - } - - oSelf._nDelayID = nDelayID; - } - else { - // No delay so send request immediately - oSelf._sendQuery(sText); - } -}; - -/** - * Handles text input box receiving focus. - * - * @method _onTextboxFocus - * @param v {HTMLEvent} The focus event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onTextboxFocus = function (v,oSelf) { - oSelf._oTextbox.setAttribute("autocomplete","off"); - oSelf._bFocused = true; - oSelf.textboxFocusEvent.fire(oSelf); -}; - -/** - * Handles text input box losing focus. - * - * @method _onTextboxBlur - * @param v {HTMLEvent} The focus event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onTextboxBlur = function (v,oSelf) { - // Don't treat as a blur if it was a selection via mouse click - if(!oSelf._bOverContainer || (oSelf._nKeyCode == 9)) { - // Current query needs to be validated - if(!oSelf._bItemSelected) { - if(!oSelf._bContainerOpen || (oSelf._bContainerOpen && !oSelf._textMatchesOption())) { - if(oSelf.forceSelection) { - oSelf._clearSelection(); - } - else { - oSelf.unmatchedItemSelectEvent.fire(oSelf, oSelf._sCurQuery); - } - } - } - - if(oSelf._bContainerOpen) { - oSelf._toggleContainer(false); - } - oSelf._cancelIntervalDetection(oSelf); - oSelf._bFocused = false; - oSelf.textboxBlurEvent.fire(oSelf); - } -}; - -/** - * Handles form submission event. - * - * @method _onFormSubmit - * @param v {HTMLEvent} The submit event. - * @param oSelf {YAHOO.widget.AutoComplete} The AutoComplete instance. - * @private - */ -YAHOO.widget.AutoComplete.prototype._onFormSubmit = function(v,oSelf) { - if(oSelf.allowBrowserAutocomplete) { - oSelf._oTextbox.setAttribute("autocomplete","on"); - } - else { - oSelf._oTextbox.setAttribute("autocomplete","off"); - } -}; - -/****************************************************************************/ -/****************************************************************************/ -/****************************************************************************/ - -/** - * The DataSource classes manages sending a request and returning response from a live - * database. Supported data include local JavaScript arrays and objects and databases - * accessible via XHR connections. Supported response formats include JavaScript arrays, - * JSON, XML, and flat-file textual data. - * - * @class DataSource - * @constructor - */ -YAHOO.widget.DataSource = function() { - /* abstract class */ -}; - - -///////////////////////////////////////////////////////////////////////////// -// -// Public constants -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Error message for null data responses. - * - * @property ERROR_DATANULL - * @type String - * @static - * @final - */ -YAHOO.widget.DataSource.ERROR_DATANULL = "Response data was null"; - -/** - * Error message for data responses with parsing errors. - * - * @property ERROR_DATAPARSE - * @type String - * @static - * @final - */ -YAHOO.widget.DataSource.ERROR_DATAPARSE = "Response data could not be parsed"; - - -///////////////////////////////////////////////////////////////////////////// -// -// Public member variables -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Max size of the local cache. Set to 0 to turn off caching. Caching is - * useful to reduce the number of server connections. Recommended only for data - * sources that return comprehensive results for queries or when stale data is - * not an issue. - * - * @property maxCacheEntries - * @type Number - * @default 15 - */ -YAHOO.widget.DataSource.prototype.maxCacheEntries = 15; - -/** - * Use this to equate cache matching with the type of matching done by your live - * data source. If caching is on and queryMatchContains is true, the cache - * returns results that "contain" the query string. By default, - * queryMatchContains is set to false, meaning the cache only returns results - * that "start with" the query string. - * - * @property queryMatchContains - * @type Boolean - * @default false - */ -YAHOO.widget.DataSource.prototype.queryMatchContains = false; - -/** - * Enables query subset matching. If caching is on and queryMatchSubset is - * true, substrings of queries will return matching cached results. For - * instance, if the first query is for "abc" susequent queries that start with - * "abc", like "abcd", will be queried against the cache, and not the live data - * source. Recommended only for DataSources that return comprehensive results - * for queries with very few characters. - * - * @property queryMatchSubset - * @type Boolean - * @default false - * - */ -YAHOO.widget.DataSource.prototype.queryMatchSubset = false; - -/** - * Enables query case-sensitivity matching. If caching is on and - * queryMatchCase is true, queries will only return results for case-sensitive - * matches. - * - * @property queryMatchCase - * @type Boolean - * @default false - */ -YAHOO.widget.DataSource.prototype.queryMatchCase = false; - - -///////////////////////////////////////////////////////////////////////////// -// -// Public methods -// -///////////////////////////////////////////////////////////////////////////// - - /** - * Public accessor to the unique name of the DataSource instance. - * - * @method toString - * @return {String} Unique name of the DataSource instance - */ -YAHOO.widget.DataSource.prototype.toString = function() { - return "DataSource " + this._sName; -}; - -/** - * Retrieves query results, first checking the local cache, then making the - * query request to the live data source as defined by the function doQuery. - * - * @method getResults - * @param oCallbackFn {HTMLFunction} Callback function defined by oParent object to which to return results. - * @param sQuery {String} Query string. - * @param oParent {Object} The object instance that has requested data. - */ -YAHOO.widget.DataSource.prototype.getResults = function(oCallbackFn, sQuery, oParent) { - - // First look in cache - var aResults = this._doQueryCache(oCallbackFn,sQuery,oParent); - - // Not in cache, so get results from server - if(aResults.length === 0) { - this.queryEvent.fire(this, oParent, sQuery); - this.doQuery(oCallbackFn, sQuery, oParent); - } -}; - -/** - * Abstract method implemented by subclasses to make a query to the live data - * source. Must call the callback function with the response returned from the - * query. Populates cache (if enabled). - * - * @method doQuery - * @param oCallbackFn {HTMLFunction} Callback function implemented by oParent to which to return results. - * @param sQuery {String} Query string. - * @param oParent {Object} The object instance that has requested data. - */ -YAHOO.widget.DataSource.prototype.doQuery = function(oCallbackFn, sQuery, oParent) { - /* override this */ -}; - -/** - * Flushes cache. - * - * @method flushCache - */ -YAHOO.widget.DataSource.prototype.flushCache = function() { - if(this._aCache) { - this._aCache = []; - } - if(this._aCacheHelper) { - this._aCacheHelper = []; - } - this.cacheFlushEvent.fire(this); -}; - -///////////////////////////////////////////////////////////////////////////// -// -// Public events -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Fired when a query is made to the live data source. - * - * @event queryEvent - * @param oSelf {Object} The DataSource instance. - * @param oParent {Object} The requesting object. - * @param sQuery {String} The query string. - */ -YAHOO.widget.DataSource.prototype.queryEvent = null; - -/** - * Fired when a query is made to the local cache. - * - * @event cacheQueryEvent - * @param oSelf {Object} The DataSource instance. - * @param oParent {Object} The requesting object. - * @param sQuery {String} The query string. - */ -YAHOO.widget.DataSource.prototype.cacheQueryEvent = null; - -/** - * Fired when data is retrieved from the live data source. - * - * @event getResultsEvent - * @param oSelf {Object} The DataSource instance. - * @param oParent {Object} The requesting object. - * @param sQuery {String} The query string. - * @param aResults {Object[]} Array of result objects. - */ -YAHOO.widget.DataSource.prototype.getResultsEvent = null; - -/** - * Fired when data is retrieved from the local cache. - * - * @event getCachedResultsEvent - * @param oSelf {Object} The DataSource instance. - * @param oParent {Object} The requesting object. - * @param sQuery {String} The query string. - * @param aResults {Object[]} Array of result objects. - */ -YAHOO.widget.DataSource.prototype.getCachedResultsEvent = null; - -/** - * Fired when an error is encountered with the live data source. - * - * @event dataErrorEvent - * @param oSelf {Object} The DataSource instance. - * @param oParent {Object} The requesting object. - * @param sQuery {String} The query string. - * @param sMsg {String} Error message string - */ -YAHOO.widget.DataSource.prototype.dataErrorEvent = null; - -/** - * Fired when the local cache is flushed. - * - * @event cacheFlushEvent - * @param oSelf {Object} The DataSource instance - */ -YAHOO.widget.DataSource.prototype.cacheFlushEvent = null; - -///////////////////////////////////////////////////////////////////////////// -// -// Private member variables -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Internal class variable to index multiple DataSource instances. - * - * @property _nIndex - * @type Number - * @private - * @static - */ -YAHOO.widget.DataSource._nIndex = 0; - -/** - * Name of DataSource instance. - * - * @property _sName - * @type String - * @private - */ -YAHOO.widget.DataSource.prototype._sName = null; - -/** - * Local cache of data result objects indexed chronologically. - * - * @property _aCache - * @type Object[] - * @private - */ -YAHOO.widget.DataSource.prototype._aCache = null; - - -///////////////////////////////////////////////////////////////////////////// -// -// Private methods -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Initializes DataSource instance. - * - * @method _init - * @private - */ -YAHOO.widget.DataSource.prototype._init = function() { - // Validate and initialize public configs - var maxCacheEntries = this.maxCacheEntries; - if(isNaN(maxCacheEntries) || (maxCacheEntries < 0)) { - maxCacheEntries = 0; - } - // Initialize local cache - if(maxCacheEntries > 0 && !this._aCache) { - this._aCache = []; - } - - this._sName = "instance" + YAHOO.widget.DataSource._nIndex; - YAHOO.widget.DataSource._nIndex++; - - this.queryEvent = new YAHOO.util.CustomEvent("query", this); - this.cacheQueryEvent = new YAHOO.util.CustomEvent("cacheQuery", this); - this.getResultsEvent = new YAHOO.util.CustomEvent("getResults", this); - this.getCachedResultsEvent = new YAHOO.util.CustomEvent("getCachedResults", this); - this.dataErrorEvent = new YAHOO.util.CustomEvent("dataError", this); - this.cacheFlushEvent = new YAHOO.util.CustomEvent("cacheFlush", this); -}; - -/** - * Adds a result object to the local cache, evicting the oldest element if the - * cache is full. Newer items will have higher indexes, the oldest item will have - * index of 0. - * - * @method _addCacheElem - * @param oResult {Object} Data result object, including array of results. - * @private - */ -YAHOO.widget.DataSource.prototype._addCacheElem = function(oResult) { - var aCache = this._aCache; - // Don't add if anything important is missing. - if(!aCache || !oResult || !oResult.query || !oResult.results) { - return; - } - - // If the cache is full, make room by removing from index=0 - if(aCache.length >= this.maxCacheEntries) { - aCache.shift(); - } - - // Add to cache, at the end of the array - aCache.push(oResult); -}; - -/** - * Queries the local cache for results. If query has been cached, the callback - * function is called with the results, and the cached is refreshed so that it - * is now the newest element. - * - * @method _doQueryCache - * @param oCallbackFn {HTMLFunction} Callback function defined by oParent object to which to return results. - * @param sQuery {String} Query string. - * @param oParent {Object} The object instance that has requested data. - * @return aResults {Object[]} Array of results from local cache if found, otherwise null. - * @private - */ -YAHOO.widget.DataSource.prototype._doQueryCache = function(oCallbackFn, sQuery, oParent) { - var aResults = []; - var bMatchFound = false; - var aCache = this._aCache; - var nCacheLength = (aCache) ? aCache.length : 0; - var bMatchContains = this.queryMatchContains; - - // If cache is enabled... - if((this.maxCacheEntries > 0) && aCache && (nCacheLength > 0)) { - this.cacheQueryEvent.fire(this, oParent, sQuery); - // If case is unimportant, normalize query now instead of in loops - if(!this.queryMatchCase) { - var sOrigQuery = sQuery; - sQuery = sQuery.toLowerCase(); - } - - // Loop through each cached element's query property... - for(var i = nCacheLength-1; i >= 0; i--) { - var resultObj = aCache[i]; - var aAllResultItems = resultObj.results; - // If case is unimportant, normalize match key for comparison - var matchKey = (!this.queryMatchCase) ? - encodeURIComponent(resultObj.query).toLowerCase(): - encodeURIComponent(resultObj.query); - - // If a cached match key exactly matches the query... - if(matchKey == sQuery) { - // Stash all result objects into aResult[] and stop looping through the cache. - bMatchFound = true; - aResults = aAllResultItems; - - // The matching cache element was not the most recent, - // so now we need to refresh the cache. - if(i != nCacheLength-1) { - // Remove element from its original location - aCache.splice(i,1); - // Add element as newest - this._addCacheElem(resultObj); - } - break; - } - // Else if this query is not an exact match and subset matching is enabled... - else if(this.queryMatchSubset) { - // Loop through substrings of each cached element's query property... - for(var j = sQuery.length-1; j >= 0 ; j--) { - var subQuery = sQuery.substr(0,j); - - // If a substring of a cached sQuery exactly matches the query... - if(matchKey == subQuery) { - bMatchFound = true; - - // Go through each cached result object to match against the query... - for(var k = aAllResultItems.length-1; k >= 0; k--) { - var aRecord = aAllResultItems[k]; - var sKeyIndex = (this.queryMatchCase) ? - encodeURIComponent(aRecord[0]).indexOf(sQuery): - encodeURIComponent(aRecord[0]).toLowerCase().indexOf(sQuery); - - // A STARTSWITH match is when the query is found at the beginning of the key string... - if((!bMatchContains && (sKeyIndex === 0)) || - // A CONTAINS match is when the query is found anywhere within the key string... - (bMatchContains && (sKeyIndex > -1))) { - // Stash a match into aResults[]. - aResults.unshift(aRecord); - } - } - - // Add the subset match result set object as the newest element to cache, - // and stop looping through the cache. - resultObj = {}; - resultObj.query = sQuery; - resultObj.results = aResults; - this._addCacheElem(resultObj); - break; - } - } - if(bMatchFound) { - break; - } - } - } - - // If there was a match, send along the results. - if(bMatchFound) { - this.getCachedResultsEvent.fire(this, oParent, sOrigQuery, aResults); - oCallbackFn(sOrigQuery, aResults, oParent); - } - } - return aResults; -}; - - -/****************************************************************************/ -/****************************************************************************/ -/****************************************************************************/ - -/** - * Implementation of YAHOO.widget.DataSource using XML HTTP requests that return - * query results. - * - * @class DS_XHR - * @extends YAHOO.widget.DataSource - * @requires connection - * @constructor - * @param sScriptURI {String} Absolute or relative URI to script that returns query - * results as JSON, XML, or delimited flat-file data. - * @param aSchema {String[]} Data schema definition of results. - * @param oConfigs {Object} (optional) Object literal of config params. - */ -YAHOO.widget.DS_XHR = function(sScriptURI, aSchema, oConfigs) { - // Set any config params passed in to override defaults - if(typeof oConfigs == "object") { - for(var sConfig in oConfigs) { - this[sConfig] = oConfigs[sConfig]; - } - } - - // Initialization sequence - if(!aSchema || (aSchema.constructor != Array)) { - return; - } - else { - this.schema = aSchema; - } - this.scriptURI = sScriptURI; - this._init(); -}; - -YAHOO.widget.DS_XHR.prototype = new YAHOO.widget.DataSource(); - -///////////////////////////////////////////////////////////////////////////// -// -// Public constants -// -///////////////////////////////////////////////////////////////////////////// - -/** - * JSON data type. - * - * @property TYPE_JSON - * @type Number - * @static - * @final - */ -YAHOO.widget.DS_XHR.TYPE_JSON = 0; - -/** - * XML data type. - * - * @property TYPE_XML - * @type Number - * @static - * @final - */ -YAHOO.widget.DS_XHR.TYPE_XML = 1; - -/** - * Flat-file data type. - * - * @property TYPE_FLAT - * @type Number - * @static - * @final - */ -YAHOO.widget.DS_XHR.TYPE_FLAT = 2; - -/** - * Error message for XHR failure. - * - * @property ERROR_DATAXHR - * @type String - * @static - * @final - */ -YAHOO.widget.DS_XHR.ERROR_DATAXHR = "XHR response failed"; - -///////////////////////////////////////////////////////////////////////////// -// -// Public member variables -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Alias to YUI Connection Manager. Allows implementers to specify their own - * subclasses of the YUI Connection Manager utility. - * - * @property connMgr - * @type Object - * @default YAHOO.util.Connect - */ -YAHOO.widget.DS_XHR.prototype.connMgr = YAHOO.util.Connect; - -/** - * Number of milliseconds the XHR connection will wait for a server response. A - * a value of zero indicates the XHR connection will wait forever. Any value - * greater than zero will use the Connection utility's Auto-Abort feature. - * - * @property connTimeout - * @type Number - * @default 0 - */ -YAHOO.widget.DS_XHR.prototype.connTimeout = 0; - -/** - * Absolute or relative URI to script that returns query results. For instance, - * queries will be sent to <scriptURI>?<scriptQueryParam>=userinput - * - * @property scriptURI - * @type String - */ -YAHOO.widget.DS_XHR.prototype.scriptURI = null; - -/** - * Query string parameter name sent to scriptURI. For instance, queries will be - * sent to <scriptURI>?<scriptQueryParam>=userinput - * - * @property scriptQueryParam - * @type String - * @default "query" - */ -YAHOO.widget.DS_XHR.prototype.scriptQueryParam = "query"; - -/** - * String of key/value pairs to append to requests made to scriptURI. Define - * this string when you want to send additional query parameters to your script. - * When defined, queries will be sent to - * <scriptURI>?<scriptQueryParam>=userinput&<scriptQueryAppend> - * - * @property scriptQueryAppend - * @type String - * @default "" - */ -YAHOO.widget.DS_XHR.prototype.scriptQueryAppend = ""; - -/** - * XHR response data type. Other types that may be defined are YAHOO.widget.DS_XHR.TYPE_XML - * and YAHOO.widget.DS_XHR.TYPE_FLAT. - * - * @property responseType - * @type String - * @default YAHOO.widget.DS_XHR.TYPE_JSON - */ -YAHOO.widget.DS_XHR.prototype.responseType = YAHOO.widget.DS_XHR.TYPE_JSON; - -/** - * String after which to strip results. If the results from the XHR are sent - * back as HTML, the gzip HTML comment appears at the end of the data and should - * be ignored. - * - * @property responseStripAfter - * @type String - * @default "\n<!-" - */ -YAHOO.widget.DS_XHR.prototype.responseStripAfter = "\n 0) { - sUri += "&" + this.scriptQueryAppend; - } - var oResponse = null; - - var oSelf = this; - /* - * Sets up ajax request callback - * - * @param {object} oReq HTTPXMLRequest object - * @private - */ - var responseSuccess = function(oResp) { - // Response ID does not match last made request ID. - if(!oSelf._oConn || (oResp.tId != oSelf._oConn.tId)) { - oSelf.dataErrorEvent.fire(oSelf, oParent, sQuery, YAHOO.widget.DataSource.ERROR_DATANULL); - return; - } -//DEBUG -for(var foo in oResp) { -} - if(!isXML) { - oResp = oResp.responseText; - } - else { - oResp = oResp.responseXML; - } - if(oResp === null) { - oSelf.dataErrorEvent.fire(oSelf, oParent, sQuery, YAHOO.widget.DataSource.ERROR_DATANULL); - return; - } - - var aResults = oSelf.parseResponse(sQuery, oResp, oParent); - var resultObj = {}; - resultObj.query = decodeURIComponent(sQuery); - resultObj.results = aResults; - if(aResults === null) { - oSelf.dataErrorEvent.fire(oSelf, oParent, sQuery, YAHOO.widget.DataSource.ERROR_DATAPARSE); - aResults = []; - } - else { - oSelf.getResultsEvent.fire(oSelf, oParent, sQuery, aResults); - oSelf._addCacheElem(resultObj); - } - oCallbackFn(sQuery, aResults, oParent); - }; - - var responseFailure = function(oResp) { - oSelf.dataErrorEvent.fire(oSelf, oParent, sQuery, YAHOO.widget.DS_XHR.ERROR_DATAXHR); - return; - }; - - var oCallback = { - success:responseSuccess, - failure:responseFailure - }; - - if(!isNaN(this.connTimeout) && this.connTimeout > 0) { - oCallback.timeout = this.connTimeout; - } - - if(this._oConn) { - this.connMgr.abort(this._oConn); - } - - oSelf._oConn = this.connMgr.asyncRequest("GET", sUri, oCallback, null); -}; - -/** - * Parses raw response data into an array of result objects. The result data key - * is always stashed in the [0] element of each result object. - * - * @method parseResponse - * @param sQuery {String} Query string. - * @param oResponse {Object} The raw response data to parse. - * @param oParent {Object} The object instance that has requested data. - * @returns {Object[]} Array of result objects. - */ -YAHOO.widget.DS_XHR.prototype.parseResponse = function(sQuery, oResponse, oParent) { - var aSchema = this.schema; - var aResults = []; - var bError = false; - - // Strip out comment at the end of results - var nEnd = ((this.responseStripAfter !== "") && (oResponse.indexOf)) ? - oResponse.indexOf(this.responseStripAfter) : -1; - if(nEnd != -1) { - oResponse = oResponse.substring(0,nEnd); - } - - switch (this.responseType) { - case YAHOO.widget.DS_XHR.TYPE_JSON: - var jsonList; - // Divert KHTML clients from JSON lib - if(window.JSON && (navigator.userAgent.toLowerCase().indexOf('khtml')== -1)) { - // Use the JSON utility if available - var jsonObjParsed = JSON.parse(oResponse); - if(!jsonObjParsed) { - bError = true; - break; - } - else { - try { - // eval is necessary here since aSchema[0] is of unknown depth - jsonList = eval("jsonObjParsed." + aSchema[0]); - } - catch(e) { - bError = true; - break; - } - } - } - else { - // Parse the JSON response as a string - try { - // Trim leading spaces - while (oResponse.substring(0,1) == " ") { - oResponse = oResponse.substring(1, oResponse.length); - } - - // Invalid JSON response - if(oResponse.indexOf("{") < 0) { - bError = true; - break; - } - - // Empty (but not invalid) JSON response - if(oResponse.indexOf("{}") === 0) { - break; - } - - // Turn the string into an object literal... - // ...eval is necessary here - var jsonObjRaw = eval("(" + oResponse + ")"); - if(!jsonObjRaw) { - bError = true; - break; - } - - // Grab the object member that contains an array of all reponses... - // ...eval is necessary here since aSchema[0] is of unknown depth - jsonList = eval("(jsonObjRaw." + aSchema[0]+")"); - } - catch(e) { - bError = true; - break; - } - } - - if(!jsonList) { - bError = true; - break; - } - - if(jsonList.constructor != Array) { - jsonList = [jsonList]; - } - - // Loop through the array of all responses... - for(var i = jsonList.length-1; i >= 0 ; i--) { - var aResultItem = []; - var jsonResult = jsonList[i]; - // ...and loop through each data field value of each response - for(var j = aSchema.length-1; j >= 1 ; j--) { - // ...and capture data into an array mapped according to the schema... - var dataFieldValue = jsonResult[aSchema[j]]; - if(!dataFieldValue) { - dataFieldValue = ""; - } - aResultItem.unshift(dataFieldValue); - } - // If schema isn't well defined, pass along the entire result object - if(aResultItem.length == 1) { - aResultItem.push(jsonResult); - } - // Capture the array of data field values in an array of results - aResults.unshift(aResultItem); - } - break; - case YAHOO.widget.DS_XHR.TYPE_XML: - // Get the collection of results - var xmlList = oResponse.getElementsByTagName(aSchema[0]); - if(!xmlList) { - bError = true; - break; - } - // Loop through each result - for(var k = xmlList.length-1; k >= 0 ; k--) { - var result = xmlList.item(k); - var aFieldSet = []; - // Loop through each data field in each result using the schema - for(var m = aSchema.length-1; m >= 1 ; m--) { - var sValue = null; - // Values may be held in an attribute... - var xmlAttr = result.attributes.getNamedItem(aSchema[m]); - if(xmlAttr) { - sValue = xmlAttr.value; - } - // ...or in a node - else{ - var xmlNode = result.getElementsByTagName(aSchema[m]); - if(xmlNode && xmlNode.item(0) && xmlNode.item(0).firstChild) { - sValue = xmlNode.item(0).firstChild.nodeValue; - } - else { - sValue = ""; - } - } - // Capture the schema-mapped data field values into an array - aFieldSet.unshift(sValue); - } - // Capture each array of values into an array of results - aResults.unshift(aFieldSet); - } - break; - case YAHOO.widget.DS_XHR.TYPE_FLAT: - if(oResponse.length > 0) { - // Delete the last line delimiter at the end of the data if it exists - var newLength = oResponse.length-aSchema[0].length; - if(oResponse.substr(newLength) == aSchema[0]) { - oResponse = oResponse.substr(0, newLength); - } - var aRecords = oResponse.split(aSchema[0]); - for(var n = aRecords.length-1; n >= 0; n--) { - aResults[n] = aRecords[n].split(aSchema[1]); - } - } - break; - default: - break; - } - sQuery = null; - oResponse = null; - oParent = null; - if(bError) { - return null; - } - else { - return aResults; - } -}; - -///////////////////////////////////////////////////////////////////////////// -// -// Private member variables -// -///////////////////////////////////////////////////////////////////////////// - -/** - * XHR connection object. - * - * @property _oConn - * @type Object - * @private - */ -YAHOO.widget.DS_XHR.prototype._oConn = null; - - -/****************************************************************************/ -/****************************************************************************/ -/****************************************************************************/ - -/** - * Implementation of YAHOO.widget.DataSource using a native Javascript function as - * its live data source. - * - * @class DS_JSFunction - * @constructor - * @extends YAHOO.widget.DataSource - * @param oFunction {HTMLFunction} In-memory Javascript function that returns query results as an array of objects. - * @param oConfigs {Object} (optional) Object literal of config params. - */ -YAHOO.widget.DS_JSFunction = function(oFunction, oConfigs) { - // Set any config params passed in to override defaults - if(typeof oConfigs == "object") { - for(var sConfig in oConfigs) { - this[sConfig] = oConfigs[sConfig]; - } - } - - // Initialization sequence - if(!oFunction || (oFunction.constructor != Function)) { - return; - } - else { - this.dataFunction = oFunction; - this._init(); - } -}; - -YAHOO.widget.DS_JSFunction.prototype = new YAHOO.widget.DataSource(); - -///////////////////////////////////////////////////////////////////////////// -// -// Public member variables -// -///////////////////////////////////////////////////////////////////////////// - -/** - * In-memory Javascript function that returns query results. - * - * @property dataFunction - * @type HTMLFunction - */ -YAHOO.widget.DS_JSFunction.prototype.dataFunction = null; - -///////////////////////////////////////////////////////////////////////////// -// -// Public methods -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Queries the live data source defined by function for results. Results are - * passed back to a callback function. - * - * @method doQuery - * @param oCallbackFn {HTMLFunction} Callback function defined by oParent object to which to return results. - * @param sQuery {String} Query string. - * @param oParent {Object} The object instance that has requested data. - */ -YAHOO.widget.DS_JSFunction.prototype.doQuery = function(oCallbackFn, sQuery, oParent) { - var oFunction = this.dataFunction; - var aResults = []; - - aResults = oFunction(sQuery); - if(aResults === null) { - this.dataErrorEvent.fire(this, oParent, sQuery, YAHOO.widget.DataSource.ERROR_DATANULL); - return; - } - - var resultObj = {}; - resultObj.query = decodeURIComponent(sQuery); - resultObj.results = aResults; - this._addCacheElem(resultObj); - - this.getResultsEvent.fire(this, oParent, sQuery, aResults); - oCallbackFn(sQuery, aResults, oParent); - return; -}; - -/****************************************************************************/ -/****************************************************************************/ -/****************************************************************************/ - -/** - * Implementation of YAHOO.widget.DataSource using a native Javascript array as - * its live data source. - * - * @class DS_JSArray - * @constructor - * @extends YAHOO.widget.DataSource - * @param aData {String[]} In-memory Javascript array of simple string data. - * @param oConfigs {Object} (optional) Object literal of config params. - */ -YAHOO.widget.DS_JSArray = function(aData, oConfigs) { - // Set any config params passed in to override defaults - if(typeof oConfigs == "object") { - for(var sConfig in oConfigs) { - this[sConfig] = oConfigs[sConfig]; - } - } - - // Initialization sequence - if(!aData || (aData.constructor != Array)) { - return; - } - else { - this.data = aData; - this._init(); - } -}; - -YAHOO.widget.DS_JSArray.prototype = new YAHOO.widget.DataSource(); - -///////////////////////////////////////////////////////////////////////////// -// -// Public member variables -// -///////////////////////////////////////////////////////////////////////////// - -/** - * In-memory Javascript array of strings. - * - * @property data - * @type Array - */ -YAHOO.widget.DS_JSArray.prototype.data = null; - -///////////////////////////////////////////////////////////////////////////// -// -// Public methods -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Queries the live data source defined by data for results. Results are passed - * back to a callback function. - * - * @method doQuery - * @param oCallbackFn {HTMLFunction} Callback function defined by oParent object to which to return results. - * @param sQuery {String} Query string. - * @param oParent {Object} The object instance that has requested data. - */ -YAHOO.widget.DS_JSArray.prototype.doQuery = function(oCallbackFn, sQuery, oParent) { - var aData = this.data; // the array - var aResults = []; // container for results - var bMatchFound = false; - var bMatchContains = this.queryMatchContains; - if(sQuery) { - if(!this.queryMatchCase) { - sQuery = sQuery.toLowerCase(); - } - - // Loop through each element of the array... - // which can be a string or an array of strings - for(var i = aData.length-1; i >= 0; i--) { - var aDataset = []; - - if(aData[i]) { - if(aData[i].constructor == String) { - aDataset[0] = aData[i]; - } - else if(aData[i].constructor == Array) { - aDataset = aData[i]; - } - } - - if(aDataset[0] && (aDataset[0].constructor == String)) { - var sKeyIndex = (this.queryMatchCase) ? - encodeURIComponent(aDataset[0]).indexOf(sQuery): - encodeURIComponent(aDataset[0]).toLowerCase().indexOf(sQuery); - - // A STARTSWITH match is when the query is found at the beginning of the key string... - if((!bMatchContains && (sKeyIndex === 0)) || - // A CONTAINS match is when the query is found anywhere within the key string... - (bMatchContains && (sKeyIndex > -1))) { - // Stash a match into aResults[]. - aResults.unshift(aDataset); - } - } - } - } - - this.getResultsEvent.fire(this, oParent, sQuery, aResults); - oCallbackFn(sQuery, aResults, oParent); -}; - -YAHOO.register("autocomplete", YAHOO.widget.AutoComplete, {version: "2.2.0", build: "127"}); diff --git a/interface/ispconfig/interface/js/yui/button/README b/interface/ispconfig/interface/js/yui/button/README deleted file mode 100644 index 036e33d9c..000000000 --- a/interface/ispconfig/interface/js/yui/button/README +++ /dev/null @@ -1,3 +0,0 @@ -*** Version 2.2.0 *** - -* Button Control introduced \ No newline at end of file diff --git a/interface/ispconfig/interface/js/yui/button/assets/background.png b/interface/ispconfig/interface/js/yui/button/assets/background.png deleted file mode 100644 index 87c85b5e539b5c514df107bbb4e298948a016e3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI}!3HGf{@&OHq*&4&eH|GXuHCreA7KRKOP07s zlmzFem6RtIr7}3C4z5p~n gmGe&ZegFVdQ&MBb@01E{`BLDyZ diff --git a/interface/ispconfig/interface/js/yui/button/assets/button.css b/interface/ispconfig/interface/js/yui/button/assets/button.css deleted file mode 100644 index ff90c8ec8..000000000 --- a/interface/ispconfig/interface/js/yui/button/assets/button.css +++ /dev/null @@ -1,217 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ -.yuibutton { - - display:-moz-inline-stack; /* Gecko */ - display:inline-block; /* IE, Opera and Safari */ - - border-width:1px 0; - border-style:solid; - border-color:#999; - - background:#ecece3 url(background.png) left center; - - /* Give the transparent background image to IE 6 */ - _background-image:none; - _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../../build/button/assets/background.png', sizingMethod = 'scale'); - - margin:auto .25em; - -} - -.yuibutton .first-child { - - display:block; /* Gecko, Opera and Safari */ - *display:inline-block; /* IE */ - - border-width:0 1px; - border-style:solid; - border-color:#999; - - margin:0 -1px; - *position:relative; - *left:-1px; - -} - -.yuibutton button, -.yuibutton a { - - display:block; /* Opera and Safari */ - display:-moz-inline-block; /* Gecko */ - *display:inline-block; /* IE */ - padding:.25em .5em; - border:1px solid #ccc; - -} - -.yuibutton button { - - overflow:visible; /* Remove superfluous padding for IE */ - font-size:100%; /* Makes form controls resizable in IE */ - background-color:transparent; - cursor:pointer; - cursor:hand; - -} - -.yuibutton a { - - text-decoration:none; - color:#000; - -} - -.yuibutton.splitbutton button, -.yuibutton.menubutton button { - - padding-right:20px; - background-position:right center; - background-repeat:no-repeat; - -} - -.yuibutton.menubutton button { - - background-image:url(menuarrow.gif); - -} - -.yuibutton.splitbutton button { - - background-image:url(splitarrow.gif); - -} - - -/* Focus state */ - -.yuibutton.focus { - - border-color:#5e5c95; - -} - -.yuibutton.focus .first-child { - - border-color:#5e5c95; - -} - -.yuibutton.focus button, -.yuibutton.focus a { - - border-color:#cec1fc; - -} - - -/* Hover state */ - -.yuibutton.hover { - - border-color:#406fac; - background-color:#98d5fc; - -} - -.yuibutton.hover .first-child { - - border-color:#406fac; - -} - -.yuibutton.hover button, -.yuibutton.hover a { - - border-color:#7099ce; - -} - - -/* Active state */ - -.yuibutton.active { - - border-color:#7a8180; - background-color:#333; - -} - -.yuibutton.active .first-child { - - border-color:#7a8180; - -} - -.yuibutton.active button, -.yuibutton.active a { - - border-color:#98a09f; - -} - -.yuibutton.splitbutton.activeoption button { - - background-color:transparent; - background-image:url(splitarrow_active.gif); - -} - - - -/* Checked state */ - -.yuibutton.radio.checked, -.yuibutton.checkbox.checked { - - border-color:#7a8180; - background-color:#333; - -} - -.yuibutton.radio.checked .first-child, -.yuibutton.checkbox.checked .first-child { - - border-color:#7a8180; - -} - -.yuibutton.radio.checked button, -.yuibutton.checkbox.checked button { - - border-color:#98a09f; - -} - - - -/* Disabled state */ - -.yuibutton.disabled { - - border-color:#cbcdc5; - background:#ecece3; - - _filter:none; - -} - -.yuibutton.disabled .first-child { - - border-color:#cbcdc5; - -} - -.yuibutton.disabled button, -.yuibutton.disabled a { - - border-color:transparent; - color:#b9b9b9; - cursor:default; - -} \ No newline at end of file diff --git a/interface/ispconfig/interface/js/yui/button/assets/menuarrow.gif b/interface/ispconfig/interface/js/yui/button/assets/menuarrow.gif deleted file mode 100644 index ffa2ba9d25d7ec10438cc1c8ac043c99d4cd7d55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67 zcmZ?wbhEHb6ky|Ns9CV4(Pug^_`Ql|cu@1F22A-3wdUSxVwHR<{`lNF$F-vEqUn2Y8&$0d-hKG>=h?8FBOG%?}?woIihl=FFK4V4(Pu1x)LJNRV0v<}i=o zJMUhd6kEPVY~7m5?>x^sWoFJ4vs!tbZ4>{Wz3(EXf1kPh_pR*oSZnUBCRWL(;*Za*b6hLhE}Fjgwo%oZ;N6E`f1cgu%fMg_0M=nV82|tP diff --git a/interface/ispconfig/interface/js/yui/button/button-beta-debug.js b/interface/ispconfig/interface/js/yui/button/button-beta-debug.js deleted file mode 100644 index e9403670b..000000000 --- a/interface/ispconfig/interface/js/yui/button/button-beta-debug.js +++ /dev/null @@ -1,4061 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ -/** -* @module button -* @description

The Button Control enables the creation of rich, graphical -* buttons that function like traditional HTML form buttons. Unlike -* tradition HTML form buttons, buttons created with the Button Control can have -* a label that is different from its value. With the inclusion of the optional -* Menu Control, the Button Control can also be -* used to create menu buttons and split buttons, controls that are not -* available natively in HTML. The Button Control can also be thought of as a -* way to create more visually engaging implementations of the browser's -* default radio-button and check-box controls.

-*

The Button Control supports the following types:

-*
-*
button
-*
Basic push button that can execute a user-specified command when -* pressed.
-*
link
-*
Navigates to a specified url when pressed.
-*
submit
-*
Submits the parent form when pressed.
-*
reset
-*
Resets the parent form when pressed.
-*
checkbox
-*
Maintains a "checked" state that can be toggled on and off.
-*
radio
-*
Maintains a "checked" state that can be toggled on and off. Use with -* the ButtonGroup class to create a set of controls that are mutually -* exclusive; checking one button in the set will uncheck all others in -* the group.
-*
menubutton
-*
When pressed will show/hide a menu.
-*
splitbutton
-*
Can execute a user-specified command or display a menu when pressed.
-*
-* @title Button -* @namespace YAHOO.widget -* @requires yahoo, dom, element, event -* @optional container, menu -* @beta -*/ - - -(function() { - -// Shorthard for utilities - -var Dom = YAHOO.util.Dom, - Event = YAHOO.util.Event, - Lang = YAHOO.lang, - - - // Private member variables - - m_oButtons = {}, - m_oFocusedButton = null; - - - -// Constructor - - -/** -* The Button class creates a rich, graphical button. -* @param {String} p_oElement String specifying the id attribute of the -* <input>, <a> or -* <span> element to be used to create the button. -* @param {HTMLInputElement|HTMLElement} p_oElement Object reference for the -* <input>, <a> or -* <span> element to be used to create the button. -* @param {Object} p_oElement Object literal specifying a set of configuration -* attributes used to create the button. -* @param {Object} p_oAttributes Optional. Object literal specifying a set of -* configuration attributes used to create the button. -* @namespace YAHOO.widget -* @class Button -* @constructor -* @extends YAHOO.util.Element -*/ -YAHOO.widget.Button = function(p_oElement, p_oAttributes) { - - var fnSuperClass = YAHOO.widget.Button.superclass.constructor; - - if( - arguments.length == 1 && - !Lang.isString(p_oElement) && - !p_oElement.nodeName - ) { - - if(!p_oElement.id) { - - p_oElement.id = Dom.generateId(); - - YAHOO.log( - "No value specified for the button's \"id\" attribute. " + - "Setting button id to \"" + p_oElement.id + "\".", - "warn" - ); - - } - - this.logger = new YAHOO.widget.LogWriter("Button " + p_oElement.id); - - this.logger.log( - "No source HTML element. " + - "Building the button using the set of configuration attributes." - ); - - fnSuperClass.call( - this, - (this._createButtonElement(p_oElement.type)), - p_oElement - ); - - } - else { - - var oConfig = { - - element: null, - attributes: (p_oAttributes || {}) - - }; - - - if(Lang.isString(p_oElement)) { - - var me = this; - - Event.onAvailable(p_oElement, function() { - - var sTagName = this.tagName.toUpperCase(); - - if(sTagName == me.TAG_NAME) { - - oConfig.attributes.id = this.id; - - } - else if(sTagName == "INPUT" && !oConfig.attributes.id) { - - oConfig.attributes.id = Dom.generateId(); - - YAHOO.log( - "No value specified for the button's \"id\" " + - "attribute. Setting button id to \"" + - oConfig.attributes.id + "\".", - "warn" - ); - - } - - me.logger = new YAHOO.widget.LogWriter( - "Button " + oConfig.attributes.id - ); - - me.logger.log( - "Building the button using an existing HTML " + - "element as a source element." - ); - - - oConfig.attributes.srcelement = this; - - initConfig.call(me, oConfig); - - - if(!oConfig.element) { - - me.logger.log( - "Source element could not be used as is. " + - "Creating a new HTML element for the button." - ); - - oConfig.element = - me._createButtonElement(oConfig.attributes.type); - - } - - fnSuperClass.call(me, oConfig.element, oConfig.attributes); - - }); - - } - else { - - var sTagName = p_oElement.tagName.toUpperCase(); - - if(sTagName == this.TAG_NAME) { - - if(p_oElement.id) { - - oConfig.attributes.id = p_oElement.id; - - } - else { - - oConfig.attributes.id = Dom.generateId(); - - YAHOO.log( - "No value specified for the button's \"id\" " + - "attribute. Setting button id to \"" + - oConfig.attributes.id + "\".", - "warn" - ); - - } - - - } - else if(sTagName == "INPUT" && !oConfig.attributes.id) { - - oConfig.attributes.id = Dom.generateId(); - - YAHOO.log( - "No value specified for the button's \"id\" " + - "attribute. Setting button id to \"" + - oConfig.attributes.id + "\".", - "warn" - ); - - } - - this.logger = - new YAHOO.widget.LogWriter("Button " + oConfig.attributes.id); - - this.logger.log( - "Building the button using an existing HTML element as " + - "a source element." - ); - - - oConfig.attributes.srcelement = p_oElement; - - initConfig.call(this, oConfig); - - - if(!oConfig.element) { - - this.logger.log( - "Source element could not be used as is. " + - "Creating a new HTML element for the button." - ); - - oConfig.element = - this._createButtonElement(oConfig.attributes.type); - - } - - fnSuperClass.call(this, oConfig.element, oConfig.attributes); - - } - - } - -}; - - - -// Private methods - - -/** -* @method getFirstElement -* @description Returns an HTML element's first HTML element node. -* @private -* @param {HTMLElement} p_oElement Object -* reference specifying the element to be evaluated. -* @return {HTMLElement} -*/ -function getFirstElement(p_oElement) { - - var oFirstChild = p_oElement.firstChild; - - if(oFirstChild) { - - if(oFirstChild.nodeType == 1) { - - return oFirstChild; - - } - else { - - var oNextSibling = oFirstChild.nextSibling; - - if(oNextSibling && oNextSibling.nodeType == 1) { - - return oNextSibling; - - } - - } - - } - -} - - -/** -* @method createInputElement -* @description Creates an <input> element of the -* specified type. -* @private -* @param {String} p_sType String specifying the type of -* <input> element to create. -* @param {String} p_sName String specifying the name of -* <input> element to create. -* @param {String} p_sValue String specifying the value of -* <input> element to create. -* @param {String} p_bChecked Boolean specifying if the -* <input> element is to be checked. -* @return {HTMLInputElement} -*/ -function createInputElement(p_sType, p_sName, p_sValue, p_bChecked) { - - var oInput; - - if(navigator.userAgent.indexOf("MSIE") != -1) { - - /* - For IE it is necessary to create the element with the - "type," "name," "value," and "checked" properties set all at once. - */ - - var sInput = "<input> or <a>) that map to -* Button configuration attributes and sets them into a collection that is -* passed to the Button constructor. -* @private -* @param {HTMLInputElement|HTMLAnchorElement} p_oElement Object reference to the HTML -* element (either <input> or <span>) -* used to create the button. -* @param {Object} p_oAttributes Object reference for the collection of -* configuration attributes used to create the button. -*/ -function setAttributesFromSrcElement(p_oElement, p_oAttributes) { - - var me = this; - - /** - * @method setAttributeFromDOMAttribute - * @description Gets the value of the specified DOM attribute and sets it - * into the collection of configuration attributes used to configure - * the button. - * @private - * @param {String} p_sAttribute String representing the name of the - * attribute to retrieve from the DOM element. - */ - function setAttributeFromDOMAttribute(p_sAttribute) { - - if( !(p_sAttribute in p_oAttributes) ) { - - /* - Need to use "getAttributeNode" instead of "getAttribute" - because using "getAttribute," IE will return the innerText of - a <button> for the value attribute rather - than the value of the "value" attribute. - */ - - var oAttribute = p_oElement.getAttributeNode(p_sAttribute); - - - if(oAttribute && ("value" in oAttribute)) { - - me.logger.log( - "Setting attribute \"" + p_sAttribute + "\" using " + - "source element's attribute value of \"" + - oAttribute.value + "\"" - ); - - p_oAttributes[p_sAttribute] = oAttribute.value; - - } - - } - - } - - - /** - * @method setFormElementProperties - * @description Gets the value of the attributes from the form element and - * sets them into the collection of configuration attributes used to - * configure the button. - * @private - */ - function setFormElementProperties() { - - setAttributeFromDOMAttribute("type"); - - if( !("disabled" in p_oAttributes) ) { - - p_oAttributes.disabled = p_oElement.disabled; - - } - - setAttributeFromDOMAttribute("name"); - setAttributeFromDOMAttribute("value"); - setAttributeFromDOMAttribute("title"); - - } - - - var sSrcElementTagName = p_oElement.tagName.toUpperCase(); - - - if( !("label" in p_oAttributes) ) { - - // Set the "label" property - - var sText = sSrcElementTagName == "INPUT" ? - p_oElement.value : p_oElement.innerHTML; - - - if(sText && sText.length > 0) { - - p_oAttributes.label = sText; - - } - - } - - - setAttributeFromDOMAttribute("tabindex"); - setAttributeFromDOMAttribute("accesskey"); - - - switch(sSrcElementTagName) { - - case "A": - - p_oAttributes.type = "link"; - - setAttributeFromDOMAttribute("href"); - setAttributeFromDOMAttribute("target"); - - break; - - case "INPUT": - - setFormElementProperties(); - - if( !("checked" in p_oAttributes) ) { - - p_oAttributes.checked = p_oElement.checked; - - } - - break; - - case "BUTTON": - - setFormElementProperties(); - - var oRootNode = p_oElement.parentNode.parentNode; - - if(Dom.hasClass(oRootNode, "checked")) { - - p_oAttributes.checked = true; - - } - - if(Dom.hasClass(oRootNode, "disabled")) { - - p_oAttributes.disabled = true; - - } - - p_oElement.removeAttribute("name"); - p_oElement.removeAttribute("value"); - - p_oElement.setAttribute("type", "button"); - - break; - - } - -} - - -/** -* @method initConfig -* @description Initializes the set of configuration attributes that are used to -* instantiate the button. -* @private -* @param {Object} Object representing the button's set of -* configuration attributes. -*/ -function initConfig(p_oConfig) { - - var oAttributes = p_oConfig.attributes, - oSrcElement = oAttributes.srcelement, - sSrcElementTagName = oSrcElement.tagName.toUpperCase(); - - - if(sSrcElementTagName == this.TAG_NAME) { - - p_oConfig.element = oSrcElement; - - var oFirstChild = getFirstElement(p_oConfig.element); - - Dom.addClass(oFirstChild, "first-child"); - - if(oFirstChild) { - - var oButton = getFirstElement(oFirstChild); - - - if(oButton) { - - var sButtonTagName = oButton.tagName.toUpperCase(); - - - if(sButtonTagName == "A" || sButtonTagName == "BUTTON") { - - setAttributesFromSrcElement.call( - this, - oButton, - oAttributes - ); - - } - - } - - } - - } - else if(sSrcElementTagName == "INPUT") { - - setAttributesFromSrcElement.call(this, oSrcElement, oAttributes); - - } - -} - - -YAHOO.extend(YAHOO.widget.Button, YAHOO.util.Element, { - - -// Protected properties - - -/** -* @property _button -* @description Object reference to the button's internal -* <a> or <button> element. -* @default null -* @protected -* @type HTMLAnchorElement|HTMLButtonElement -*/ -_button: null, - - -/** -* @property _menu -* @description Object reference to the button's menu. -* @default null -* @protected -* @type YAHOO.widget.Menu -*/ -_menu: null, - - -/** -* @property _onclickAttributeValue -* @description Object reference to the button's current value for the "onclick" -* configuration attribute. -* @default null -* @protected -* @type Object -*/ -_onclickAttributeValue: null, - - -/** -* @property _oninitAttributeValue -* @description Object reference to the button's current value for the "oninit" -* configuration attribute. -* @default null -* @protected -* @type Object -*/ -_oninitAttributeValue: null, - - -/** -* @property _activationKeyPressed -* @description Boolean indicating if the key(s) that toggle the button's -* "active" state have been pressed. -* @default false -* @protected -* @type Boolean -*/ -_activationKeyPressed: false, - - -/** -* @property _activationButtonPressed -* @description Boolean indicating if the mouse button that toggles the button's -* "active" state has been pressed. -* @default false -* @protected -* @type Boolean -*/ -_activationButtonPressed: false, - - -/** -* @property _hasKeyEventHandlers -* @description Boolean indicating if the button's "blur", "keydown" and -* "keyup" event handlers are assigned -* @default false -* @protected -* @type Boolean -*/ -_hasKeyEventHandlers: false, - - -/** -* @property _hasMouseEventHandlers -* @description Boolean indicating if the button's "mouseout" and "mousedown" -* and "mouseup" event handlers are assigned -* @default false -* @protected -* @type Boolean -*/ -_hasMouseEventHandlers: false, - - - -// Constants - - -/** -* @property TAG_NAME -* @description The name of the tag to be used for the button's root element. -* @default "SPAN" -* @final -* @type String -*/ -TAG_NAME: "SPAN", - - -/** -* @property CHECK_ACTIVATION_KEYS -* @description Array of numbers representing keys that (when pressed) toggle -* the button's "checked" attribute. -* @default [32] -* @final -* @type Array -*/ -CHECK_ACTIVATION_KEYS: [32], - - -/** -* @property ACTIVATION_KEYS -* @description Array of numbers representing keys that (when presed) toggle -* the button's "active" state. -* @default [13, 32] -* @final -* @type Array -*/ -ACTIVATION_KEYS: [13, 32], - - -/** -* @property OPTION_AREA_WIDTH -* @description Width (in pixels) of the area of a split button that when -* pressed will display a menu. -* @default 20 -* @final -* @type Number -*/ -OPTION_AREA_WIDTH: 20, - - -/** -* @property CSS_CLASS_NAME -* @description String representing the CSS class(es) to be applied to the -* button's root element. -* @default "yuibutton" -* @final -* @type String -*/ -CSS_CLASS_NAME: "yuibutton", - - -/** -* @property RADIO_DEFAULT_TITLE -* @description String representing the default title applied to buttons of -* type "radio." -* @default "Unchecked. Click to check." -* @final -* @type String -*/ -RADIO_DEFAULT_TITLE: "Unchecked. Click to check.", - - -/** -* @property RADIO_CHECKED_TITLE -* @description String representing the title applied to buttons of type "radio" -* when checked. -* @default "Checked. Click to uncheck." -* @final -* @type String -*/ -RADIO_CHECKED_TITLE: "Checked. Click to uncheck.", - - -/** -* @property CHECKBOX_DEFAULT_TITLE -* @description String representing the default title applied to buttons of -* type "checkbox." -* @default "Unchecked. Click to check." -* @final -* @type String -*/ -CHECKBOX_DEFAULT_TITLE: "Unchecked. Click to check.", - - -/** -* @property CHECKBOX_CHECKED_TITLE -* @description String representing the title applied to buttons of type -* "checkbox" when checked. -* @default "Checked. Click to uncheck." -* @final -* @type String -*/ -CHECKBOX_CHECKED_TITLE: "Checked. Click to uncheck.", - - -/** -* @property MENUBUTTON_DEFAULT_TITLE -* @description String representing the default title applied to buttons of -* type "menubutton." -* @default "Menu collapsed. Click to expand." -* @final -* @type String -*/ -MENUBUTTON_DEFAULT_TITLE: "Menu collapsed. Click to expand.", - - -/** -* @property MENUBUTTON_MENU_VISIBLE_TITLE -* @description String representing the title applied to buttons of type -* "menubutton" when the button's menu is visible. -* @default "Menu expanded. Click or press Esc to collapse." -* @final -* @type String -*/ -MENUBUTTON_MENU_VISIBLE_TITLE: - "Menu expanded. Click or press Esc to collapse.", - - -/** -* @property SPLITBUTTON_DEFAULT_TITLE -* @description String representing the default title applied to buttons of -* type "splitebutton." -* @default "Menu collapsed. Click inside option region or press -* Ctrl + Shift + M to show the menu." -* @final -* @type String -*/ -SPLITBUTTON_DEFAULT_TITLE: - "Menu collapsed. Click inside option region or press Ctrl + Shift + M to show the menu.", - - -/** -* @property SPLITBUTTON_OPTION_VISIBLE_TITLE -* @description String representing the title applied to buttons of type -* "splitbutton" when the button's menu is visible. -* @default "Menu expanded. Press Esc or Ctrl + Shift + M to hide the menu." -* @final -* @type String -*/ -SPLITBUTTON_OPTION_VISIBLE_TITLE: - "Menu expanded. Press Esc or Ctrl + Shift + M to hide the menu.", - - -/** -* @property SUBMIT_TITLE -* @description String representing the title applied to buttons of -* type "submit." -* @default "Click to submit form." -* @final -* @type String -*/ -SUBMIT_TITLE: "Click to submit form.", - - - -// Protected attribute setter methods - - -/** -* @method _setType -* @description Sets the value of the button's "type" attribute. -* @protected -* @param {String} p_sType String indicating the value for the button's -* "type" attribute. -*/ -_setType: function(p_sType) { - - if(p_sType == "splitbutton") { - - this.on("option", this._onOption); - - } - -}, - - -/** -* @method _setLabel -* @description Sets the value of the button's "label" attribute. -* @protected -* @param {String} p_sLabel String indicating the value for the button's -* "label" attribute. -*/ -_setLabel: function(p_sLabel) { - - this._button.innerHTML = p_sLabel; - -}, - - -/** -* @method _setTabIndex -* @description Sets the value of the button's "tabindex" attribute. -* @protected -* @param {Number} p_nTabIndex Number indicating the value for the button's -* "tabindex" attribute. -*/ -_setTabIndex: function(p_nTabIndex) { - - this._button.tabIndex = p_nTabIndex; - -}, - - -/** -* @method _setTitle -* @description Sets the value of the button's "title" attribute. -* @protected -* @param {String} p_nTabIndex Number indicating the value for the button's -* "title" attribute. -*/ -_setTitle: function(p_sTitle) { - - if(this.get("type") != "link") { - - var sTitle = p_sTitle; - - if(!sTitle) { - - - var sType = this.get("type"); - - switch(sType) { - - case "radio": - - sTitle = this.RADIO_DEFAULT_TITLE; - - break; - - case "checkbox": - - sTitle = this.CHECKBOX_DEFAULT_TITLE; - - break; - - case "menubutton": - - sTitle = this.MENUBUTTON_DEFAULT_TITLE; - - break; - - case "splitbutton": - - sTitle = this.SPLITBUTTON_DEFAULT_TITLE; - - break; - - case "submit": - - sTitle = this.SUBMIT_TITLE; - - break; - - } - - } - - this._button.title = sTitle; - - } - -}, - - -/** -* @method _setDisabled -* @description Sets the value of the button's "disabled" attribute. -* @protected -* @param {Boolean} p_bDisabled Boolean indicating the value for the button's -* "disabled" attribute. -*/ -_setDisabled: function(p_bDisabled) { - - if(this.get("type") != "link") { - - if(p_bDisabled) { - - if(this.hasFocus()) { - - this.blur(); - - } - - this._button.setAttribute("disabled", "disabled"); - - this.addClass("disabled"); - - } - else { - - this._button.removeAttribute("disabled"); - - this.removeClass("disabled"); - - } - - } - -}, - - -/** -* @method _setAccessKey -* @description Sets the value of the button's "accesskey" attribute. -* @protected -* @param {String} p_sAccessKey String indicating the value for the button's -* "accesskey" attribute. -*/ -_setAccessKey: function(p_sAccessKey) { - - this._button.accessKey = p_sAccessKey; - -}, - - -/** -* @method _setHref -* @description Sets the value of the button's "href" attribute. -* @protected -* @param {String} p_sHref String indicating the value for the button's -* "href" attribute. -*/ -_setHref: function(p_sHref) { - - if(this.get("type") == "link") { - - this._button.href = p_sHref; - - } - -}, - - -/** -* @method _setTarget -* @description Sets the value of the button's "target" attribute. -* @protected -* @param {String} p_sTarget String indicating the value for the button's -* "target" attribute. -*/ -_setTarget: function(p_sTarget) { - - if(this.get("type") == "link") { - - this._button.setAttribute("target", p_sTarget); - - } - -}, - - -/** -* @method _setChecked -* @description Sets the value of the button's "target" attribute. -* @protected -* @param {Boolean} p_bChecked Boolean indicating the value for the button's -* "checked" attribute. -*/ -_setChecked: function(p_bChecked) { - - var sType = this.get("type"), - sTitle; - - if(sType == "checkbox" || sType == "radio") { - - if(p_bChecked) { - - this.addClass("checked"); - - sTitle = (sType == "radio") ? - this.RADIO_CHECKED_TITLE : - this.CHECKBOX_CHECKED_TITLE; - - } - else { - - this.removeClass("checked"); - - sTitle = (sType == "radio") ? - this.RADIO_DEFAULT_TITLE : - this.CHECKBOX_DEFAULT_TITLE; - - } - - this.set("title", sTitle); - - } - -}, - - -/** -* @method _setMenu -* @description Sets the value of the button's "menu" attribute. -* @protected -* @param {Object} p_oMenu Object indicating the value for the button's -* "menu" attribute. -*/ -_setMenu: function(p_oMenu) { - - var Menu = YAHOO.widget.Menu, - oMenu, - me = this; - - if(!Menu) { - - this.logger.log("YAHOO.widget.Menu dependency not met.", "error"); - - return false; - - } - - - function initMenu() { - - if(oMenu) { - - oMenu.showEvent.subscribe(this._onMenuShow, this, true); - oMenu.hideEvent.subscribe(this._onMenuHide, this, true); - oMenu.keyDownEvent.subscribe(this._onMenuKeyDown, this, true); - oMenu.renderEvent.subscribe(this._onMenuRender, this, true); - oMenu.clickEvent.subscribe(this._onMenuClick, this, true); - oMenu.itemAddedEvent.subscribe(this._onMenuItemAdded, this, true); - - var oSrcElement = oMenu.srcElement; - - if(oSrcElement && oSrcElement.tagName.toUpperCase() == "SELECT") { - - oSrcElement.style.display = "none"; - oSrcElement.parentNode.removeChild(oSrcElement); - - } - - this._menu = oMenu; - - } - else { - - this._menu.destroy(); - this._menu = null; - - } - - } - - - if(p_oMenu instanceof Menu) { - - oMenu = p_oMenu; - - var aItems = oMenu.getItems(), - nItems = aItems.length, - oItem; - - if(nItems > 0) { - - var i = nItems - 1; - - do { - - oItem = aItems[i]; - - if(oItem) { - - oItem.cfg.subscribeToConfigEvent( - "selected", - this._onMenuItemSelected, - oItem, - this - ); - - } - - } - while(i--); - - } - - initMenu.call(this); - - } - else if(Lang.isArray(p_oMenu)) { - - this.on("appendTo", function() { - - oMenu = new Menu( - Dom.generateId(), - { lazyload: true, itemdata: p_oMenu } - ); - - initMenu.call(me); - - }); - - } - else if(Lang.isString(p_oMenu)) { - - Event.onContentReady(p_oMenu, function() { - - oMenu = new Menu(this, { lazyload: true }); - - initMenu.call(me); - - }); - - } - else if(p_oMenu && p_oMenu.nodeName) { - - oMenu = new Menu(p_oMenu, { lazyload: true }); - - initMenu.call(this); - - } - -}, - - -/** -* @method _setOnClick -* @description Sets the value of the button's "onclick" attribute. -* @protected -* @param {Object} p_oObject Object indicating the value for the button's -* "onclick" attribute. -*/ -_setOnClick: function(p_oObject) { - - /* - Remove any existing listeners if a "click" event handler has already - been specified. - */ - - if( - this._onclickAttributeValue && - (this._onclickAttributeValue != p_oObject) - ) { - - this.removeListener("click", this._onclickAttributeValue.fn); - - this._onclickAttributeValue = null; - - } - - - if( - !this._onclickAttributeValue && - Lang.isObject(p_oObject) && - Lang.isFunction(p_oObject.fn) - ) { - - this.on("click", p_oObject.fn, p_oObject.obj, p_oObject.scope); - - this._onclickAttributeValue = p_oObject; - - } - -}, - -/** -* @method _setOnInit -* @description Sets the value of the button's "init" attribute. -* @protected -* @param {Object} p_oObject Object indicating the value for the button's -* "oninit" attribute. -*/ -_setOnInit: function(p_oObject) { - - /* - Remove any existing listeners if a "init" event handler has already - been specified. - */ - - if( - this._oninitAttributeValue && - (this._oninitAttributeValue != p_oObject) - ) { - - this.removeListener("init", this._oninitAttributeValue.fn); - - this._oninitAttributeValue = null; - - } - - - if( - !this._oninitAttributeValue && - Lang.isObject(p_oObject) && - Lang.isFunction(p_oObject.fn) - ) { - - this.on("init", p_oObject.fn, p_oObject.obj, p_oObject.scope); - - this._oninitAttributeValue = p_oObject; - - } - -}, - - - -// Protected methods - - -/** -* @method _createButtonElement -* @description Creates the button's element. -* @protected -* @param {String} p_sType String indicating the type of element to create. -* @return {HTMLElement} -*/ -_createButtonElement: function(p_sType) { - - var sTagName = this.TAG_NAME, - oElement = document.createElement(sTagName); - - oElement.innerHTML = - - "<" + sTagName + " class=\"first-child\">" + - (p_sType == "link" ? "" : "") + - ""; - - return oElement; - -}, - - -/** -* @method _isActivationKey -* @description Determines if the specified keycode is one that toggles the -* button's "active" state. -* @protected -* @param {Number} p_nKeyCode Number representing the keycode to be evaluated. -* @return {Boolean} -*/ -_isActivationKey: function(p_nKeyCode) { - - var sType = this.get("type"), - aKeyCodes = (sType == "checkbox" || sType == "radio") ? - this.CHECK_ACTIVATION_KEYS : this.ACTIVATION_KEYS, - - nKeyCodes = aKeyCodes.length; - - if(nKeyCodes > 0) { - - var i = nKeyCodes - 1; - - do { - - if(p_nKeyCode == aKeyCodes[i]) { - - return true; - - } - - } - while(i--); - - } - -}, - - -/** -* @method _isSplitButtonOptionKey -* @description Determines if the specified keycode is one that toggles the -* display of the split button's menu. -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @return {Boolean} -*/ -_isSplitButtonOptionKey: function(p_oEvent) { - - return ( - p_oEvent.ctrlKey && - p_oEvent.shiftKey && - Event.getCharCode(p_oEvent) == 77 - ); - -}, - - -_originalMaxHeight: -1, - - -/** -* @method _showMenu -* @description Shows the button's menu. -* @protected -*/ -_showMenu: function() { - - var oMenu = this._menu; - - if(oMenu) { - - YAHOO.widget.MenuManager.hideVisible(); - - oMenu.cfg.applyConfig({ - context:[this.get("id"), "tl", "bl"], - clicktohide: false, - constraintoviewport: false, - visible: true - }); - - oMenu.cfg.fireQueue(); - - var nViewportHeight = Dom.getViewportHeight(), - nMenuHeight = oMenu.element.offsetHeight; - - - if((oMenu.cfg.getProperty("y") + nMenuHeight) > nViewportHeight) { - - this.logger.log("Current menu position will place a portion, or " + - "the entire menu outside the boundary of the viewport. " + - "Repositioning the menu to stay inside the viewport."); - - oMenu.align("bl", "tl"); - - var nY = oMenu.cfg.getProperty("y"), - - nScrollTop = ( - document.documentElement.scrollTop || - document.body.scrollTop - ); - - - if(nScrollTop >= nY) { - - if(this._originalMaxHeight == -1) { - - this._originalMaxHeight = - oMenu.cfg.getProperty("maxheight"); - - } - - oMenu.cfg.setProperty( - "maxheight", - (nMenuHeight - ((nScrollTop - nY) + 20)) - ); - - oMenu.align("bl", "tl"); - - } - - } - - oMenu.cfg.setProperty("constraintoviewport", true); - - } - -}, - - -/** -* @method _hideMenu -* @description Hides the button's menu. -* @protected -*/ -_hideMenu: function() { - - var oMenu = this._menu; - - if(oMenu && oMenu.cfg.getProperty("visible")) { - - oMenu.hide(); - - } - -}, - - -/** -* @method _submitForm -* @description Submits the form to which the button belongs. -* @protected -*/ -_submitForm: function() { - - var oForm = this.getForm(); - - if(oForm) { - - YAHOO.widget.Button.addHiddenFieldsToForm(oForm); - - this.createHiddenField(); - - oForm.submit(); - - } - -}, - - - -// Protected event handlers - - -/** -* @method _onMouseOver -* @description "mouseover" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onMouseOver: function(p_oEvent) { - - if(!this.get("disabled")) { - - if(!this._hasMouseEventHandlers) { - - this.on("mouseout", this._onMouseOut); - this.on("mousedown", this._onMouseDown); - this.on("mouseup", this._onMouseUp); - - this._hasMouseEventHandlers = true; - - } - - this.addClass("hover"); - - if(this._activationButtonPressed) { - - this.addClass("active"); - - } - - - if(this._bOptionPressed) { - - this.addClass("activeoption"); - - } - - } - -}, - - -/** -* @method _onMouseOut -* @description "mouseout" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onMouseOut: function(p_oEvent) { - - if(!this.get("disabled")) { - - this.removeClass("hover"); - - if(this.get("type") != "menubutton") { - - this.removeClass("active"); - - } - - if(this._activationButtonPressed || this._bOptionPressed) { - - Event.on(document, "mouseup", this._onDocumentMouseUp, this, true); - - } - - } - -}, - - -/** -* @method _onDocumentMouseUp -* @description "mouseup" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.Button} p_oButton Object representing the button. -*/ -_onDocumentMouseUp: function(p_oEvent, p_oButton) { - - this._activationButtonPressed = false; - this._bOptionPressed = false; - - var sType = this.get("type"); - - if(sType == "menubutton" || sType == "splitbutton") { - - this.removeClass((sType == "menubutton" ? "active" : "activeoption")); - - this._hideMenu(); - - } - - Event.removeListener(document, "mouseup", this._onDocumentMouseUp); - -}, - - -/** -* @method _onMouseDown -* @description "mousedown" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onMouseDown: function(p_oEvent) { - - if(!this.get("disabled")) { - - if((p_oEvent.which || p_oEvent.button) == 1) { - - if(!this.hasFocus()) { - - this.focus(); - - } - - - var sType = this.get("type"); - - - if(sType == "splitbutton") { - - var oElement = this.get("element"), - nX = Event.getPageX(p_oEvent) - Dom.getX(oElement); - - if((oElement.offsetWidth - this.OPTION_AREA_WIDTH) < nX) { - - this.fireEvent("option", p_oEvent); - - } - else { - - this.addClass("active"); - - this._activationButtonPressed = true; - - } - - } - else if(sType == "menubutton") { - - if(this.hasClass("active")) { - - this._hideMenu(); - - this._activationButtonPressed = false; - - } - else { - - this._showMenu(); - - this._activationButtonPressed = true; - - } - - } - else { - - this.addClass("active"); - - this._activationButtonPressed = true; - - } - - - - if(sType == "splitbutton" || sType == "menubutton") { - - var me = this; - - - function onMouseUp() { - - me._hideMenu(); - me.removeListener("mouseup", onMouseUp); - - } - - - this._hideMenuTimerId = window.setTimeout(function() { - - me.on("mouseup", onMouseUp); - - }, 250); - - } - - } - - } - -}, - - -/** -* @method _onMouseUp -* @description "mouseup" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onMouseUp: function(p_oEvent) { - - if(!this.get("disabled")) { - - - if(this._hideMenuTimerId) { - - window.clearTimeout(this._hideMenuTimerId); - - } - - var sType = this.get("type"); - - if(sType == "checkbox" || sType == "radio") { - - this.set("checked", !(this.get("checked"))); - - } - - - this._activationButtonPressed = false; - - - if(this.get("type") != "menubutton") { - - this.removeClass("active"); - - } - - } - -}, - - -/** -* @method _onFocus -* @description "focus" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.Button} p_oButton Object representing the button that -* fired the event. -*/ -_onFocus: function(p_oEvent, p_oButton) { - - if(!this.get("disabled")) { - - this.addClass("focus"); - - if(this._activationKeyPressed) { - - this.addClass("active"); - - } - - m_oFocusedButton = this; - - - if(!this._hasKeyEventHandlers) { - - var oElement = this._button; - - Event.on(oElement, "blur", this._onBlur, this, true); - Event.on(oElement, "keydown", this._onKeyDown, this, true); - Event.on(oElement, "keyup", this._onKeyUp, this, true); - - this._hasKeyEventHandlers = true; - - } - - - this.fireEvent("focus", p_oEvent); - - } - -}, - - -/** -* @method _onBlur -* @description "blur" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.Button} p_oButton Object representing the button. -*/ -_onBlur: function(p_oEvent, p_oButton) { - - if(!this.get("disabled")) { - - this.removeClass("focus"); - - if(this.get("type") != "menubutton") { - - this.removeClass("active"); - - } - - if(this._activationKeyPressed) { - - Event.on(document, "keyup", this._onDocumentKeyUp, this, true); - - } - - - m_oFocusedButton = null; - - this.fireEvent("blur", p_oEvent); - - } - -}, - - -/** -* @method _onDocumentKeyUp -* @description "keyup" event handler for the document. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.Button} p_oButton Object representing the button. -*/ -_onDocumentKeyUp: function(p_oEvent, p_oButton) { - - if(this._isActivationKey(Event.getCharCode(p_oEvent))) { - - this._activationKeyPressed = false; - - Event.removeListener(document, "keyup", this._onDocumentKeyUp); - - } - -}, - - -/** -* @method _onKeyDown -* @description "keydown" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.Button} p_oButton Object representing the button. -*/ -_onKeyDown: function(p_oEvent, p_oButton) { - - if(!this.get("disabled")) { - - if( - this.get("type") == "splitbutton" && - this._isSplitButtonOptionKey(p_oEvent) - ) { - - this.fireEvent("option", p_oEvent); - - } - else if(this._isActivationKey(Event.getCharCode(p_oEvent))) { - - if(this.get("type") == "menubutton") { - - this._showMenu(); - - } - else { - - this._activationKeyPressed = true; - - this.addClass("active"); - - } - - } - - - var oMenu = this._menu; - - if( - oMenu && oMenu.cfg.getProperty("visible") && - Event.getCharCode(p_oEvent) == 27 - ) { - - oMenu.hide(); - this.focus(); - - } - - } - -}, - - -/** -* @method _onKeyUp -* @description "keyup" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.Button} p_oButton Object representing the button. -*/ -_onKeyUp: function(p_oEvent, p_oButton) { - - if(!this.get("disabled")) { - - if(this._isActivationKey(Event.getCharCode(p_oEvent))) { - - var sType = this.get("type"); - - if(sType == "checkbox" || sType == "radio") { - - this.set("checked", !(this.get("checked"))); - - } - - this._activationKeyPressed = false; - - if(this.get("type") != "menubutton") { - - this.removeClass("active"); - - } - - } - - } - -}, - - -/** -* @method _onClick -* @description "click" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onClick: function(p_oEvent) { - - var sType = this.get("type"), - sTitle; - - switch(sType) { - - case "radio": - case "checkbox": - - if(this.get("checked")) { - - sTitle = (sType == "radio") ? - this.RADIO_CHECKED_TITLE : - this.CHECKBOX_CHECKED_TITLE; - - } - else { - - sTitle = (sType == "radio") ? - this.RADIO_DEFAULT_TITLE : - this.CHECKBOX_DEFAULT_TITLE; - - } - - this.set("title", sTitle); - - break; - - case "submit": - - this._submitForm(); - - break; - - case "reset": - - var oForm = this.getForm(); - - if(oForm) { - - oForm.reset(); - - } - - break; - - case "menubutton": - - sTitle = this._menu.cfg.getProperty("visible") ? - this.MENUBUTTON_MENU_VISIBLE_TITLE : - this.MENUBUTTON_DEFAULT_TITLE; - - this.set("title", sTitle); - - break; - - case "splitbutton": - - var oElement = this.get("element"), - nX = Event.getPageX(p_oEvent) - Dom.getX(oElement); - - if((oElement.offsetWidth - this.OPTION_AREA_WIDTH) < nX) { - - return false; - - } - else { - - this._hideMenu(); - - var oSrcElement = this.get("srcelement"); - - if(oSrcElement && oSrcElement.type == "submit") { - - this._submitForm(); - - } - - } - - sTitle = this._menu.cfg.getProperty("visible") ? - this.SPLITBUTTON_OPTION_VISIBLE_TITLE : - this.SPLITBUTTON_DEFAULT_TITLE; - - this.set("title", sTitle); - - break; - - } - -}, - - -/** -* @method _onAppendTo -* @description "appendTo" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onAppendTo: function(p_oEvent) { - - /* - It is necessary to call "getForm" using "setTimeout" to make sure that - the button's "form" property returns a node reference. Sometimes, if - you try to get the reference immediately after appending the field, it - is null. - */ - - var me = this; - - window.setTimeout(function() { - - var oForm = me.getForm(); - - if(oForm) { - - Event.on(oForm, "reset", me._onFormReset, me, true); - Event.on(oForm, "submit", me._onFormSubmit, me, true); - - } - - }, 0); - -}, - - -/** -* @method _onFormSubmit -* @description "submit" event handler for the button's form. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.Button} p_oButton Object representing the button. -*/ -_onFormSubmit: function(p_oEvent, p_oButton) { - - var sType = this.get("type"), - oMenuItem = this.get("selectedMenuItem"), - oForm = this.getForm(); - - - if(sType == "radio" || sType == "checkbox") { - - YAHOO.log("Creating hidden field for button: " + this); - - this.createHiddenField(); - - } - else if(oMenuItem) { - - var oSrcElement = this._menu.srcElement; - - if(oSrcElement && oSrcElement.tagName.toUpperCase() == "SELECT") { - - oForm.appendChild(oSrcElement); - oSrcElement.selectedIndex = oMenuItem.index; - - } - else { - - var oValue = (oMenuItem.value === null || oMenuItem.value === "") ? - oMenuItem.cfg.getProperty("text") : - oMenuItem.value; - - - if(oValue) { - - var oField = createInputElement( - "hidden", - (this.get("name") + "_options"), - oValue - ); - - oForm.appendChild(oField); - - } - - } - - } - -}, - - -/** -* @method _onFormReset -* @description "reset" event handler for the button's form. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.Button} p_oButton Object representing the button. -*/ -_onFormReset: function(p_oEvent, p_oButton) { - - var sType = this.get("type"); - - if(sType == "checkbox" || sType == "radio") { - - this.resetValue("checked"); - - } - - if(this._menu) { - - this.resetValue("selectedMenuItem"); - - } - -}, - - -/** -* @method _onDocumentMouseDown -* @description "mousedown" event handler for the document. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.Button} p_oButton Object representing the button. -*/ -_onDocumentMouseDown: function(p_oEvent, p_oButton) { - - var oTarget = Event.getTarget(p_oEvent), - oButtonElement = this.get("element"), - oMenuElement = this._menu.element; - - if( - oTarget != oButtonElement && - !Dom.isAncestor(oButtonElement, oTarget) && - oTarget != oMenuElement && - !Dom.isAncestor(oMenuElement, oTarget) - ) { - - this._hideMenu(); - - Event.removeListener( - document, - "mousedown", - this._onDocumentMouseDown - ); - - } - -}, - - -/** -* @method _onOption -* @description "option" event handler for the button. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -*/ -_onOption: function(p_oEvent) { - - if(this.hasClass("activeoption")) { - - this._hideMenu(); - - this._bOptionPressed = false; - - } - else { - - this._showMenu(); - - this._bOptionPressed = true; - - } - -}, - - -/** -* @method _onMenuShow -* @description "show" event handler for the button's menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Button} p_oButton Object representing the button. -*/ -_onMenuShow: function(p_sType, p_aArgs, p_oButton) { - - Event.on(document, "mousedown", this._onDocumentMouseDown, this, true); - - var sTitle, - sClass; - - if(this.get("type") == "splitbutton") { - - sTitle = this.SPLITBUTTON_OPTION_VISIBLE_TITLE; - sClass = "activeoption"; - - } - else { - - sTitle = this.MENUBUTTON_MENU_VISIBLE_TITLE; - sClass = "active"; - - } - - this.addClass(sClass); - this.set("title", sTitle); - -}, - - -/** -* @method _onMenuHide -* @description "hide" event handler for the button's menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Button} p_oButton Object representing the button. -*/ -_onMenuHide: function(p_sType, p_aArgs, p_oButton) { - - if(this._originalMaxHeight != -1) { - - this._menu.cfg.setProperty("maxheight", this._originalMaxHeight); - - } - - - var sTitle, - sClass; - - if(this.get("type") == "splitbutton") { - - sTitle = this.SPLITBUTTON_DEFAULT_TITLE; - sClass = "activeoption"; - - } - else { - - sTitle = this.MENUBUTTON_DEFAULT_TITLE; - sClass = "active"; - } - - - this.removeClass(sClass); - this.set("title", sTitle); - -}, - - -/** -* @method _onMenuKeyDown -* @description "keydown" event handler for the button's menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Button} p_oButton Object representing the button. -*/ -_onMenuKeyDown: function(p_sType, p_aArgs, p_oButton) { - - var oEvent = p_aArgs[0]; - - if(Event.getCharCode(oEvent) == 27) { - - this.focus(); - - if(this.get("type") == "splitbutton") { - - this._bOptionPressed = false; - - } - - } - -}, - - -/** -* @method _onMenuRender -* @description "render" event handler for the button's menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Button} p_oButton Object representing the button. -*/ -_onMenuRender: function(p_sType, p_aArgs, p_oButton) { - - this.get("element").parentNode.appendChild(this._menu.element); - -}, - - -/** -* @method _onMenuItemSelected -* @description "selectedchange" event handler for each item in the -* button's menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.MenuItem} -* p_oItem Object representing the menu item that subscribed to the event. -*/ -_onMenuItemSelected: function(p_sType, p_aArgs, p_oItem) { - - this.set("selectedMenuItem", p_oItem); - -}, - - -/** -* @method _onMenuItemAdded -* @description "itemadded" event handler for the button's menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.MenuItem} -* p_oItem Object representing the menu item that subscribed to the event. -*/ -_onMenuItemAdded: function(p_sType, p_aArgs, p_oItem) { - - var oItem = p_aArgs[0]; - - oItem.cfg.subscribeToConfigEvent( - "selected", - this._onMenuItemSelected, - oItem, - this - ); - -}, - - -/** -* @method _onMenuClick -* @description "click" event handler for the button's menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Button} p_oButton Object representing the menu's button. -*/ -_onMenuClick: function(p_sType, p_aArgs, p_oButton) { - - var oItem = p_aArgs[0]; - - if(oItem) { - - var oSrcElement = this.get("srcelement"); - - if(oSrcElement && oSrcElement.type == "submit") { - - this._submitForm(); - - } - - this._hideMenu(); - - } - -}, - - - -// Public methods - - -/** -* @method createHiddenField -* @description Creates the button's hidden form field and appends it to its -* parent form. -* @return {HTMLInputElement} -*/ -createHiddenField: function () { - - if(!this.get("disabled")) { - - var sType = this.get("type"), - - bCheckable = (sType == "checkbox" || sType == "radio"), - - oField = createInputElement( - (bCheckable ? this.get("type") : "hidden"), - this.get("name"), - this.get("value"), - this.get("checked") - ), - - oForm = this.getForm(); - - - if(oField && bCheckable) { - - oField.style.display = "none"; - - } - - - if(oForm) { - - oForm.appendChild(oField); - - } - - - return oField; - - } - -}, - - -/** -* @method init -* @description The Button class's initialization method. -* @param {String} p_oElement String specifying the id attribute of the -* <input>, <a> or -* <span> element to be used to create the button. -* @param {HTMLInputElement|HTMLElement} p_oElement Object reference for the -* <input>, <a> or -* <span> element to be used to create the button. -* @param {Object} p_oElement Object literal specifying a set of configuration -* attributes used to create the button. -* @param {Object} p_oAttributes Optional. Object literal specifying a set of -* configuration attributes used to create the button. -*/ -init: function(p_oElement, p_oAttributes) { - - var sTagName = p_oAttributes.type == "link" ? "A" : "BUTTON", - oSrcElement = p_oAttributes.srcelement; - - - this._button = p_oElement.getElementsByTagName(sTagName)[0]; - - - YAHOO.widget.Button.superclass.init.call( - this, p_oElement, - p_oAttributes - ); - - - m_oButtons[this.get("id")] = this; - - - this.addClass(this.CSS_CLASS_NAME); - this.addClass(this.get("type")); - - Event.on(this._button, "focus", this._onFocus, this, true); - this.on("mouseover", this._onMouseOver); - this.on("click", this._onClick); - this.on("appendTo", this._onAppendTo); - - var oContainer = this.get("container"), - oElement = this.get("element"); - - - if(oContainer) { - - if(Lang.isString(oContainer)) { - - var me = this; - - Event.onContentReady(oContainer, function() { - - me.appendTo(this); - - }); - - } - else { - - this.appendTo(oContainer); - - } - - } - else if( - !Dom.inDocument(oElement) && - oSrcElement && - oSrcElement.tagName.toUpperCase() == "INPUT" - ) { - - var oParentNode = oSrcElement.parentNode; - - if(oParentNode) { - - this.fireEvent("beforeAppendTo", { - type: "beforeAppendTo", - target: oParentNode - }); - - oParentNode.replaceChild(oElement, oSrcElement); - - this.fireEvent("appendTo", { - type: "appendTo", - target: oParentNode - }); - - } - - } - else if( - Dom.inDocument(oElement) && - oSrcElement.tagName.toUpperCase() == "SPAN" - ) { - - var oForm = this.getForm(); - - if(oForm) { - - Event.on(oForm, "reset", this._onFormReset, this, true); - Event.on(oForm, "submit", this._onFormSubmit, this, true); - - } - - } - - this.fireEvent("init"); - - this.logger.log("Initialization completed."); - -}, - - -/** -* @method initAttributes -* @description Initializes all of the configuration attributes used to create -* the button. -* @param {Object} p_oAttributes Object literal specifying a set of -* configuration attributes used to create the button. -*/ -initAttributes: function(p_oAttributes) { - - var oAttributes = p_oAttributes || {}; - - YAHOO.widget.Button.superclass.initAttributes.call(this, oAttributes); - - - /** - * @config type - * @description String specifying the button's type. Possible values are: - * "button," "link," "submit," "reset," "checkbox," "radio," "menubutton," - * and "splitbutton." - * @default "button" - * @type String - */ - this.setAttributeConfig("type", { - - value: (oAttributes.type || "button"), - validator: Lang.isString, - writeOnce: true, - method: this._setType - - }); - - - /** - * @config label - * @description String specifying the button's text label or innerHTML. - * @default null - * @type String - */ - this.setAttributeConfig("label", { - - value: oAttributes.label, - validator: Lang.isString, - method: this._setLabel - - }); - - - /** - * @config value - * @description Object specifying the value for the button. - * @default null - * @type Object - */ - this.setAttributeConfig("value", { - - value: oAttributes.value - - }); - - - /** - * @config name - * @description String specifying the name for the button. - * @default null - * @type String - */ - this.setAttributeConfig("name", { - - value: oAttributes.name, - validator: Lang.isString - - }); - - - /** - * @config tabindex - * @description Number specifying the tabindex for the button. - * @default null - * @type Number - */ - this.setAttributeConfig("tabindex", { - - value: oAttributes.tabindex, - validator: Lang.isNumber, - method: this._setTabIndex - - }); - - - /** - * @config title - * @description String specifying the title for the button. - * @default null - * @type String - */ - this.configureAttribute("title", { - - value: oAttributes.title, - validator: Lang.isString, - method: this._setTitle - - }); - - - /** - * @config disabled - * @description Boolean indicating if the button should be disabled. - * (Disabled buttons are dimmed and will not respond to user input - * or fire events.) - * @default false - * @type Boolean - */ - this.setAttributeConfig("disabled", { - - value: (oAttributes.disabled || false), - validator: Lang.isBoolean, - method: this._setDisabled - - }); - - - /** - * @config href - * @description String specifying the href for the button. Applies only to - * buttons of type "link." - * @type String - */ - this.setAttributeConfig("href", { - - value: oAttributes.href, - validator: Lang.isString, - method: this._setHref - - }); - - - /** - * @config target - * @description String specifying the target for the button. Applies only - * to buttons of type "link." - * @type String - */ - this.setAttributeConfig("target", { - - value: oAttributes.target, - validator: Lang.isString, - method: this._setTarget - - }); - - - /** - * @config checked - * @description Boolean indicating if the button is checked. Applies only - * to buttons of type "radio" and "checkbox." - * @default false - * @type Boolean - */ - this.setAttributeConfig("checked", { - - value: (oAttributes.checked || false), - validator: Lang.isBoolean, - method: this._setChecked - - }); - - - /** - * @config container - * @description HTML element reference or string specifying the id - * attribute of the HTML element that the button's markup should be - * rendered into. - * @type HTMLElement|String - * @default null - */ - this.setAttributeConfig("container", { - - value: oAttributes.container - - }); - - - /** - * @config srcelement - * @description Object reference to the HTML element (either - * <input> or <span>) used to - * create the button. - * @type HTMLElement|String - * @default null - */ - this.setAttributeConfig("srcelement", { - - value: oAttributes.srcelement, - writeOnce: true - - }); - - - /** - * @config menu - * @description Object specifying the menu for the button. The value can be - * one of the following: - *
    - *
  • Object specifying a - * YAHOO.widget.Menu instance.
  • - *
  • String specifying the id attribute of the <div> - * element used to create the menu.
  • - *
  • String specifying the id attribute of the - * <select> element used to create the menu.
  • - *
  • Object specifying the <div> element used to - * create the menu.
  • - *
  • Object specifying the <select> element used to - * create the menu.
  • - *
  • Array of object literals, each representing a set of - * YAHOO.widget.MenuItem - * configuration attributes.
  • - *
  • Array of strings representing the text labels for each menu item in - * the menu.
  • - *
- * @type HTMLElement|String|Array - * @default null - */ - this.setAttributeConfig("menu", { - - value: null, - method: this._setMenu - - }); - - - /** - * @config selectedMenuItem - * @description Reference to the item in the button's menu that is - * currently selected. - * @type YAHOO.widget.MenuItem - * @default null - */ - this.setAttributeConfig("selectedMenuItem", { - - value: null - - }); - - - /** - * @config onclick - * @description Object literal representing the code to be executed when - * the button is clicked. Format:
{
- * fn: Function, // The handler to call when the - * event fires.
obj: Object, // An object to - * pass back to the handler.
scope: Object // - * The object to use for the scope of the handler.
}
- * @type Object - * @default null - */ - this.setAttributeConfig("onclick", { - - value: oAttributes.onclick, - method: this._setOnClick - - }); - - - /** - * @config oninit - * @description Object literal representing the code to be executed when - * the button is initialized. Format:
{
- * fn: Function, // The handler to call when the - * event fires.
obj: Object, // An object to - * pass back to the handler.
scope: Object // - * The object to use for the scope of the handler.
}
- * @type Object - * @default null - */ - this.setAttributeConfig("oninit", { - - value: oAttributes.oninit, - method: this._setOnInit - - }); - -}, - - -/** -* @method focus -* @description Causes the button to receive the focus and fires the button's -* "focus" event. -*/ -focus: function() { - - if(!this.get("disabled")) { - - this._button.focus(); - - } - -}, - - -/** -* @method blur -* @description Causes the button to lose focus and fires the button's -* "blur" event. -*/ -blur: function() { - - if(!this.get("disabled")) { - - this._button.blur(); - - } - -}, - - -/** -* @method hasFocus -* @description Returns a boolean indicating whether or not the button has focus. -* @return {Boolean} -*/ -hasFocus: function() { - - return (m_oFocusedButton == this); - -}, - - -/** -* @method isActive -* @description Returns a boolean indicating whether or not the button is active. -* @return {Boolean} -*/ -isActive: function() { - - return this.hasClass("active"); - -}, - - -/** -* @method getMenu -* @description Returns a reference to the button's menu. -* @return {YAHOO.widget.Menu} -*/ -getMenu: function() { - - return this._menu; - -}, - - -/** -* @method getForm -* @description Returns a reference to the button's menu. -* @return {HTMLFormElement} -*/ -getForm: function() { - - return this._button.form; - -}, - - -/** -* @method destroy -* @description Removes the button's element from its parent element and -* removes all event handlers. -*/ -destroy: function() { - - this.logger.log("Destroying ..."); - - var oElement = this.get("element"), - oParentNode = oElement.parentNode, - oMenu = this._menu; - - if(oMenu) { - - this.logger.log("Destroying menu."); - - oMenu.destroy(); - - } - - this.logger.log("Removing DOM event handlers."); - - Event.purgeElement(oElement); - Event.purgeElement(this._button); - Event.removeListener(document, "mouseup", this._onDocumentMouseUp); - Event.removeListener(document, "keyup", this._onDocumentKeyUp); - Event.removeListener(document, "mousedown", this._onDocumentMouseDown); - - var oForm = this.getForm(); - - if(oForm) { - - Event.removeListener(oForm, "reset", this._onFormReset); - - } - - - oParentNode.removeChild(oElement); - - this.logger.log("Removing from document."); - - delete m_oButtons[this.get("id")]; - - this.logger.log("Destroyed."); - -}, - - -/** -* @method toString -* @description Returns a string representing the button. -* @return {String} -*/ -toString: function() { - - return ("Button " + this.get("id")); - -} - -}); - - -/** -* @method addHiddenFieldsToForm -* @description Searches the specified form and adds hidden fields for instances -* of YAHOO.widget.Button that are of type "radio," "checkbox," "menubutton," -* and "splitbutton." -* @param {HTMLFormElement} p_oForm Object reference -* for the form to search. -*/ -YAHOO.widget.Button.addHiddenFieldsToForm = function(p_oForm) { - - var aButtons = Dom.getElementsByClassName("yuibutton", "*", p_oForm), - nButtons = aButtons.length; - - - if(nButtons > 0) { - - YAHOO.log("Form contains " + nButtons + " YUI buttons."); - - var oButton = null, - sType = null, - oMenuItem = null, - oMenu = null; - - for(var i=0; i
 tag (for wrapping)
-            var container = (this.verboseOutput) ? "CODE" : "PRE";
-            var oNewElement = (this.newestOnTop) ?
-                this._elConsole.insertBefore(
-                    document.createElement(container),this._elConsole.firstChild):
-                this._elConsole.appendChild(document.createElement(container));
-
-            oNewElement.innerHTML = output;
-            this._consoleMsgCount++;
-            this._lastTime = entry.time.getTime();
-        }
-    }
-};
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Private event handlers
-//
-/////////////////////////////////////////////////////////////////////////////
-
-/**
- * Handles Logger's categoryCreateEvent.
- *
- * @method _onCategoryCreate
- * @param sType {String} The event.
- * @param aArgs {Object[]} Data passed from event firer.
- * @param oSelf {Object} The LogReader instance.
- * @private
- */
-YAHOO.widget.LogReader.prototype._onCategoryCreate = function(sType, aArgs, oSelf) {
-    var category = aArgs[0];
-    if(oSelf._elFt) {
-        oSelf._createCategoryCheckbox(category);
-    }
-};
-
-/**
- * Handles Logger's sourceCreateEvent.
- *
- * @method _onSourceCreate
- * @param sType {String} The event.
- * @param aArgs {Object[]} Data passed from event firer.
- * @param oSelf {Object} The LogReader instance.
- * @private
- */
-YAHOO.widget.LogReader.prototype._onSourceCreate = function(sType, aArgs, oSelf) {
-    var source = aArgs[0];
-    if(oSelf._elFt) {
-        oSelf._createSourceCheckbox(source);
-    }
-};
-
-/**
- * Handles check events on the category filter checkboxes.
- *
- * @method _onCheckCategory
- * @param v {HTMLEvent} The click event.
- * @param oSelf {Object} The LogReader instance.
- * @private
- */
-YAHOO.widget.LogReader.prototype._onCheckCategory = function(v, oSelf) {
-    var newFilter = this.category;
-    var filtersArray = oSelf._categoryFilters;
-
-    if(!this.checked) { // Remove category from filters
-        for(var i=0; i 0) {
-                // Substring until first space
-                sClass = sSource.substring(0,spaceIndex);
-                // The rest of the source
-                sDetail = sSource.substring(spaceIndex,sSource.length);
-            }
-            else {
-                sClass = sSource;
-            }
-            if(this._isNewSource(sClass)) {
-                this._createNewSource(sClass);
-            }
-        }
-
-        var timestamp = new Date();
-        var logEntry = new YAHOO.widget.LogMsg({
-            msg: sMsg,
-            time: timestamp,
-            category: sCategory,
-            source: sClass,
-            sourceDetail: sDetail
-        });
-
-        var stack = this._stack;
-        var maxStackEntries = this.maxStackEntries;
-        if(maxStackEntries && !isNaN(maxStackEntries) &&
-            (stack.length >= maxStackEntries)) {
-            stack.shift();
-        }
-        stack.push(logEntry);
-        this.newLogEvent.fire(logEntry);
-
-        if(this._browserConsoleEnabled) {
-            this._printToBrowserConsole(logEntry);
-        }
-        return true;
-    }
-    else {
-        return false;
-    }
-};
-
-/**
- * Resets internal stack and startTime, enables Logger, and fires logResetEvent.
- *
- * @method reset
- */
-YAHOO.widget.Logger.reset = function() {
-    this._stack = [];
-    this._startTime = new Date().getTime();
-    this.loggerEnabled = true;
-    this.log("Logger reset");
-    this.logResetEvent.fire();
-};
-
-/**
- * Public accessor to internal stack of log message objects.
- *
- * @method getStack
- * @return {Object[]} Array of log message objects.
- */
-YAHOO.widget.Logger.getStack = function() {
-    return this._stack;
-};
-
-/**
- * Public accessor to internal start time.
- *
- * @method getStartTime
- * @return {Date} Internal date of when Logger singleton was initialized.
- */
-YAHOO.widget.Logger.getStartTime = function() {
-    return this._startTime;
-};
-
-/**
- * Disables output to the browser's global console.log() function, which is used
- * by the Firebug extension to Firefox as well as Safari.
- *
- * @method disableBrowserConsole
- */
-YAHOO.widget.Logger.disableBrowserConsole = function() {
-    YAHOO.log("Logger output to the function console.log() has been disabled.");
-    this._browserConsoleEnabled = false;
-};
-
-/**
- * Enables output to the browser's global console.log() function, which is used
- * by the Firebug extension to Firefox as well as Safari.
- *
- * @method enableBrowserConsole
- */
-YAHOO.widget.Logger.enableBrowserConsole = function() {
-    this._browserConsoleEnabled = true;
-    YAHOO.log("Logger output to the function console.log() has been enabled.");
-};
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Public events
-//
-/////////////////////////////////////////////////////////////////////////////
-
- /**
- * Fired when a new category has been created.
- *
- * @event categoryCreateEvent
- * @param sCategory {String} Category name.
- */
-YAHOO.widget.Logger.categoryCreateEvent =
-    new YAHOO.util.CustomEvent("categoryCreate", this, true);
-
- /**
- * Fired when a new source has been named.
- *
- * @event sourceCreateEvent
- * @param sSource {String} Source name.
- */
-YAHOO.widget.Logger.sourceCreateEvent =
-    new YAHOO.util.CustomEvent("sourceCreate", this, true);
-
- /**
- * Fired when a new log message has been created.
- *
- * @event newLogEvent
- * @param sMsg {String} Log message.
- */
-YAHOO.widget.Logger.newLogEvent = new YAHOO.util.CustomEvent("newLog", this, true);
-
-/**
- * Fired when the Logger has been reset has been created.
- *
- * @event logResetEvent
- */
-YAHOO.widget.Logger.logResetEvent = new YAHOO.util.CustomEvent("logReset", this, true);
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Private methods
-//
-/////////////////////////////////////////////////////////////////////////////
-
-/**
- * Creates a new category of log messages and fires categoryCreateEvent.
- *
- * @method _createNewCategory
- * @param sCategory {String} Category name.
- * @private
- */
-YAHOO.widget.Logger._createNewCategory = function(sCategory) {
-    this.categories.push(sCategory);
-    this.categoryCreateEvent.fire(sCategory);
-};
-
-/**
- * Checks to see if a category has already been created.
- *
- * @method _isNewCategory
- * @param sCategory {String} Category name.
- * @return {Boolean} Returns true if category is unknown, else returns false.
- * @private
- */
-YAHOO.widget.Logger._isNewCategory = function(sCategory) {
-    for(var i=0; i < this.categories.length; i++) {
-        if(sCategory == this.categories[i]) {
-            return false;
-        }
-    }
-    return true;
-};
-
-/**
- * Creates a new source of log messages and fires sourceCreateEvent.
- *
- * @method _createNewSource
- * @param sSource {String} Source name.
- * @private
- */
-YAHOO.widget.Logger._createNewSource = function(sSource) {
-    this.sources.push(sSource);
-    this.sourceCreateEvent.fire(sSource);
-};
-
-/**
- * Checks to see if a source already exists.
- *
- * @method _isNewSource
- * @param sSource {String} Source name.
- * @return {Boolean} Returns true if source is unknown, else returns false.
- * @private
- */
-YAHOO.widget.Logger._isNewSource = function(sSource) {
-    if(sSource) {
-        for(var i=0; i < this.sources.length; i++) {
-            if(sSource == this.sources[i]) {
-                return false;
-            }
-        }
-        return true;
-    }
-};
-
-/**
- * Outputs a log message to global console.log() function.
- *
- * @method _printToBrowserConsole
- * @param oEntry {Object} Log entry object.
- * @private
- */
-YAHOO.widget.Logger._printToBrowserConsole = function(oEntry) {
-    if(window.console && console.log) {
-        var category = oEntry.category;
-        var label = oEntry.category.substring(0,4).toUpperCase();
-
-        var time = oEntry.time;
-        if (time.toLocaleTimeString) {
-            var localTime  = time.toLocaleTimeString();
-        }
-        else {
-            localTime = time.toString();
-        }
-
-        var msecs = time.getTime();
-        var elapsedTime = (YAHOO.widget.Logger._lastTime) ?
-            (msecs - YAHOO.widget.Logger._lastTime) : 0;
-        YAHOO.widget.Logger._lastTime = msecs;
-
-        var output =
-            localTime + " (" +
-            elapsedTime + "ms): " +
-            oEntry.source + ": " +
-            oEntry.msg;
-
-        console.log(output);
-    }
-};
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Private event handlers
-//
-/////////////////////////////////////////////////////////////////////////////
-
-/**
- * Handles logging of messages due to window error events.
- *
- * @method _onWindowError
- * @param sMsg {String} The error message.
- * @param sUrl {String} URL of the error.
- * @param sLine {String} Line number of the error.
- * @private
- */
-YAHOO.widget.Logger._onWindowError = function(sMsg,sUrl,sLine) {
-    // Logger is not in scope of this event handler
-    try {
-        YAHOO.widget.Logger.log(sMsg+' ('+sUrl+', line '+sLine+')', "window");
-        if(YAHOO.widget.Logger._origOnWindowError) {
-            YAHOO.widget.Logger._origOnWindowError();
-        }
-    }
-    catch(e) {
-        return false;
-    }
-};
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Enable handling of native JavaScript errors
-// NB: Not all browsers support the window.onerror event
-//
-/////////////////////////////////////////////////////////////////////////////
-
-if(window.onerror) {
-    // Save any previously defined handler to call
-    YAHOO.widget.Logger._origOnWindowError = window.onerror;
-}
-window.onerror = YAHOO.widget.Logger._onWindowError;
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// First log
-//
-/////////////////////////////////////////////////////////////////////////////
-
-YAHOO.widget.Logger.log("Logger initialized");
-
-
-YAHOO.register("logger", YAHOO.widget.Logger, {version: "2.2.0", build: "127"});
diff --git a/interface/ispconfig/interface/js/yui/logger/logger-min.js b/interface/ispconfig/interface/js/yui/logger/logger-min.js
deleted file mode 100644
index a633e1b15..000000000
--- a/interface/ispconfig/interface/js/yui/logger/logger-min.js
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-Copyright (c) 2007, Yahoo! Inc. All rights reserved.
-Code licensed under the BSD License:
-http://developer.yahoo.net/yui/license.txt
-version: 2.2.0
-*/
-
-YAHOO.widget.LogMsg=function(oConfigs){if(typeof oConfigs=="object"){for(var param in oConfigs){this[param]=oConfigs[param];}}};YAHOO.widget.LogMsg.prototype.msg=null;YAHOO.widget.LogMsg.prototype.time=null;YAHOO.widget.LogMsg.prototype.category=null;YAHOO.widget.LogMsg.prototype.source=null;YAHOO.widget.LogMsg.prototype.sourceDetail=null;YAHOO.widget.LogWriter=function(sSource){if(!sSource){YAHOO.log("Could not instantiate LogWriter due to invalid source.","error","LogWriter");return;}
-this._source=sSource;};YAHOO.widget.LogWriter.prototype.toString=function(){return"LogWriter "+this._sSource;};YAHOO.widget.LogWriter.prototype.log=function(sMsg,sCategory){YAHOO.widget.Logger.log(sMsg,sCategory,this._source);};YAHOO.widget.LogWriter.prototype.getSource=function(){return this._sSource;};YAHOO.widget.LogWriter.prototype.setSource=function(sSource){if(!sSource){YAHOO.log("Could not set source due to invalid source.","error",this.toString());return;}
-else{this._sSource=sSource;}};YAHOO.widget.LogWriter.prototype._source=null;YAHOO.widget.LogReader=function(elContainer,oConfigs){var oSelf=this;this._sName=YAHOO.widget.LogReader._index;YAHOO.widget.LogReader._index++;if(typeof oConfigs=="object"){for(var param in oConfigs){this[param]=oConfigs[param];}}
-if(elContainer){if(typeof elContainer=="string"){this._elContainer=document.getElementById(elContainer);}
-else if(elContainer.tagName){this._elContainer=elContainer;}
-this._elContainer.className="yui-log";}
-if(!this._elContainer){if(YAHOO.widget.LogReader._elDefaultContainer){this._elContainer=YAHOO.widget.LogReader._elDefaultContainer;}
-else{this._elContainer=document.body.appendChild(document.createElement("div"));this._elContainer.id="yui-log";this._elContainer.className="yui-log";YAHOO.widget.LogReader._elDefaultContainer=this._elContainer;}
-var containerStyle=this._elContainer.style;if(this.width){containerStyle.width=this.width;}
-if(this.right){containerStyle.right=this.right;}
-if(this.top){containerStyle.top=this.top;}
-if(this.left){containerStyle.left=this.left;containerStyle.right="auto";}
-if(this.bottom){containerStyle.bottom=this.bottom;containerStyle.top="auto";}
-if(this.fontSize){containerStyle.fontSize=this.fontSize;}
-if(navigator.userAgent.toLowerCase().indexOf("opera")!=-1){document.body.style+='';}}
-if(this._elContainer){if(!this._elHd){this._elHd=this._elContainer.appendChild(document.createElement("div"));this._elHd.id="yui-log-hd"+this._sName;this._elHd.className="yui-log-hd";this._elCollapse=this._elHd.appendChild(document.createElement("div"));this._elCollapse.className="yui-log-btns";this._btnCollapse=document.createElement("input");this._btnCollapse.type="button";this._btnCollapse.style.fontSize=YAHOO.util.Dom.getStyle(this._elContainer,"fontSize");this._btnCollapse.className="yui-log-button";this._btnCollapse.value="Collapse";this._btnCollapse=this._elCollapse.appendChild(this._btnCollapse);YAHOO.util.Event.addListener(oSelf._btnCollapse,'click',oSelf._onClickCollapseBtn,oSelf);this._title=this._elHd.appendChild(document.createElement("h4"));this._title.innerHTML="Logger Console";if(YAHOO.util.DD&&(YAHOO.widget.LogReader._elDefaultContainer==this._elContainer)){var ylog_dd=new YAHOO.util.DD(this._elContainer.id);ylog_dd.setHandleElId(this._elHd.id);this._elHd.style.cursor="move";}}
-if(!this._elConsole){this._elConsole=this._elContainer.appendChild(document.createElement("div"));this._elConsole.className="yui-log-bd";if(this.height){this._elConsole.style.height=this.height;}}
-if(!this._elFt&&this.footerEnabled){this._elFt=this._elContainer.appendChild(document.createElement("div"));this._elFt.className="yui-log-ft";this._elBtns=this._elFt.appendChild(document.createElement("div"));this._elBtns.className="yui-log-btns";this._btnPause=document.createElement("input");this._btnPause.type="button";this._btnPause.style.fontSize=YAHOO.util.Dom.getStyle(this._elContainer,"fontSize");this._btnPause.className="yui-log-button";this._btnPause.value="Pause";this._btnPause=this._elBtns.appendChild(this._btnPause);YAHOO.util.Event.addListener(oSelf._btnPause,'click',oSelf._onClickPauseBtn,oSelf);this._btnClear=document.createElement("input");this._btnClear.type="button";this._btnClear.style.fontSize=YAHOO.util.Dom.getStyle(this._elContainer,"fontSize");this._btnClear.className="yui-log-button";this._btnClear.value="Clear";this._btnClear=this._elBtns.appendChild(this._btnClear);YAHOO.util.Event.addListener(oSelf._btnClear,'click',oSelf._onClickClearBtn,oSelf);this._elCategoryFilters=this._elFt.appendChild(document.createElement("div"));this._elCategoryFilters.className="yui-log-categoryfilters";this._elSourceFilters=this._elFt.appendChild(document.createElement("div"));this._elSourceFilters.className="yui-log-sourcefilters";}}
-if(!this._buffer){this._buffer=[];}
-this._lastTime=YAHOO.widget.Logger.getStartTime();YAHOO.widget.Logger.newLogEvent.subscribe(this._onNewLog,this);YAHOO.widget.Logger.logResetEvent.subscribe(this._onReset,this);this._categoryFilters=[];var catsLen=YAHOO.widget.Logger.categories.length;if(this._elCategoryFilters){for(var i=0;i",label," ",totalTime,"ms (+",elapsedTime,") ",localTime,": ","

",sourceAndDetail,":

",msg,"

"]:["

",label," ",totalTime,"ms (+",elapsedTime,") ",localTime,": ",sourceAndDetail,": ",msg,"

"];return output.join("");};YAHOO.widget.LogReader.prototype.html2Text=function(sHtml){if(sHtml){sHtml+="";return sHtml.replace(/&/g,"&").replace(//g,">");} -return"";};YAHOO.widget.LogReader._index=0;YAHOO.widget.LogReader.prototype._sName=null;YAHOO.widget.LogReader._elDefaultContainer=null;YAHOO.widget.LogReader.prototype._buffer=null;YAHOO.widget.LogReader.prototype._consoleMsgCount=0;YAHOO.widget.LogReader.prototype._lastTime=null;YAHOO.widget.LogReader.prototype._timeout=null;YAHOO.widget.LogReader.prototype._categoryFilters=null;YAHOO.widget.LogReader.prototype._sourceFilters=null;YAHOO.widget.LogReader.prototype._elContainer=null;YAHOO.widget.LogReader.prototype._elHd=null;YAHOO.widget.LogReader.prototype._elCollapse=null;YAHOO.widget.LogReader.prototype._btnCollapse=null;YAHOO.widget.LogReader.prototype._title=null;YAHOO.widget.LogReader.prototype._elConsole=null;YAHOO.widget.LogReader.prototype._elFt=null;YAHOO.widget.LogReader.prototype._elBtns=null;YAHOO.widget.LogReader.prototype._elCategoryFilters=null;YAHOO.widget.LogReader.prototype._elSourceFilters=null;YAHOO.widget.LogReader.prototype._btnPause=null;YAHOO.widget.LogReader.prototype._btnClear=null;YAHOO.widget.LogReader.prototype._createCategoryCheckbox=function(sCategory){var oSelf=this;if(this._elFt){var elParent=this._elCategoryFilters;var filters=this._categoryFilters;var elFilter=elParent.appendChild(document.createElement("span"));elFilter.className="yui-log-filtergrp";var chkCategory=document.createElement("input");chkCategory.id="yui-log-filter-"+sCategory+this._sName;chkCategory.className="yui-log-filter-"+sCategory;chkCategory.type="checkbox";chkCategory.category=sCategory;chkCategory=elFilter.appendChild(chkCategory);chkCategory.checked=true;filters.push(sCategory);YAHOO.util.Event.addListener(chkCategory,'click',oSelf._onCheckCategory,oSelf);var lblCategory=elFilter.appendChild(document.createElement("label"));lblCategory.htmlFor=chkCategory.id;lblCategory.className=sCategory;lblCategory.innerHTML=sCategory;}};YAHOO.widget.LogReader.prototype._createSourceCheckbox=function(sSource){var oSelf=this;if(this._elFt){var elParent=this._elSourceFilters;var filters=this._sourceFilters;var elFilter=elParent.appendChild(document.createElement("span"));elFilter.className="yui-log-filtergrp";var chkSource=document.createElement("input");chkSource.id="yui-log-filter"+sSource+this._sName;chkSource.className="yui-log-filter"+sSource;chkSource.type="checkbox";chkSource.source=sSource;chkSource=elFilter.appendChild(chkSource);chkSource.checked=true;filters.push(sSource);YAHOO.util.Event.addListener(chkSource,'click',oSelf._onCheckSource,oSelf);var lblSource=elFilter.appendChild(document.createElement("label"));lblSource.htmlFor=chkSource.id;lblSource.className=sSource;lblSource.innerHTML=sSource;}};YAHOO.widget.LogReader.prototype._filterLogs=function(){if(this._elConsole!==null){this._clearConsole();this._printToConsole(YAHOO.widget.Logger.getStack());}};YAHOO.widget.LogReader.prototype._clearConsole=function(){this._timeout=null;this._buffer=[];this._consoleMsgCount=0;this._lastTime=YAHOO.widget.Logger.getStartTime();var elConsole=this._elConsole;while(elConsole.hasChildNodes()){elConsole.removeChild(elConsole.firstChild);}};YAHOO.widget.LogReader.prototype._printBuffer=function(){this._timeout=null;if(this._elConsole!==null){var thresholdMax=this.thresholdMax;thresholdMax=(thresholdMax&&!isNaN(thresholdMax))?thresholdMax:500;if(this._consoleMsgCountthis.thresholdMax)){thresholdMin=0;} -var entriesStartIndex=(entriesLen>thresholdMin)?(entriesLen-thresholdMin):0;var sourceFiltersLen=this._sourceFilters.length;var categoryFiltersLen=this._categoryFilters.length;for(var i=entriesStartIndex;i0){sClass=sSource.substring(0,spaceIndex);sDetail=sSource.substring(spaceIndex,sSource.length);} -else{sClass=sSource;} -if(this._isNewSource(sClass)){this._createNewSource(sClass);}} -var timestamp=new Date();var logEntry=new YAHOO.widget.LogMsg({msg:sMsg,time:timestamp,category:sCategory,source:sClass,sourceDetail:sDetail});var stack=this._stack;var maxStackEntries=this.maxStackEntries;if(maxStackEntries&&!isNaN(maxStackEntries)&&(stack.length>=maxStackEntries)){stack.shift();} -stack.push(logEntry);this.newLogEvent.fire(logEntry);if(this._browserConsoleEnabled){this._printToBrowserConsole(logEntry);} -return true;} -else{return false;}};YAHOO.widget.Logger.reset=function(){this._stack=[];this._startTime=new Date().getTime();this.loggerEnabled=true;this.log("Logger reset");this.logResetEvent.fire();};YAHOO.widget.Logger.getStack=function(){return this._stack;};YAHOO.widget.Logger.getStartTime=function(){return this._startTime;};YAHOO.widget.Logger.disableBrowserConsole=function(){YAHOO.log("Logger output to the function console.log() has been disabled.");this._browserConsoleEnabled=false;};YAHOO.widget.Logger.enableBrowserConsole=function(){this._browserConsoleEnabled=true;YAHOO.log("Logger output to the function console.log() has been enabled.");};YAHOO.widget.Logger.categoryCreateEvent=new YAHOO.util.CustomEvent("categoryCreate",this,true);YAHOO.widget.Logger.sourceCreateEvent=new YAHOO.util.CustomEvent("sourceCreate",this,true);YAHOO.widget.Logger.newLogEvent=new YAHOO.util.CustomEvent("newLog",this,true);YAHOO.widget.Logger.logResetEvent=new YAHOO.util.CustomEvent("logReset",this,true);YAHOO.widget.Logger._createNewCategory=function(sCategory){this.categories.push(sCategory);this.categoryCreateEvent.fire(sCategory);};YAHOO.widget.Logger._isNewCategory=function(sCategory){for(var i=0;i", label, " ", - totalTime, "ms (+", elapsedTime, ") ", - localTime, ": ", - "

", - sourceAndDetail, - ":

", - msg, - "

"] : - - ["

", label, " ", - totalTime, "ms (+", elapsedTime, ") ", - localTime, ": ", - sourceAndDetail, ": ", - msg,"

"]; - - return output.join(""); -}; - -/** - * Converts input chars "<", ">", and "&" to HTML entities. - * - * @method html2Text - * @param sHtml {String} String to convert. - * @private - */ -YAHOO.widget.LogReader.prototype.html2Text = function(sHtml) { - if(sHtml) { - sHtml += ""; - return sHtml.replace(/&/g, "&").replace(//g, ">"); - } - return ""; -}; - -///////////////////////////////////////////////////////////////////////////// -// -// Private member variables -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Internal class member to index multiple LogReader instances. - * - * @property _memberName - * @static - * @type Number - * @default 0 - * @private - */ -YAHOO.widget.LogReader._index = 0; - -/** - * Name of LogReader instance. - * - * @property _sName - * @type String - * @private - */ -YAHOO.widget.LogReader.prototype._sName = null; - -/** - * A class member shared by all LogReaders if a container needs to be - * created during instantiation. Will be null if a container element never needs to - * be created on the fly, such as when the implementer passes in their own element. - * - * @property _elDefaultContainer - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader._elDefaultContainer = null; - -/** - * Buffer of log message objects for batch output. - * - * @property _buffer - * @type Object[] - * @private - */ -YAHOO.widget.LogReader.prototype._buffer = null; - -/** - * Number of log messages output to console. - * - * @property _consoleMsgCount - * @type Number - * @default 0 - * @private - */ -YAHOO.widget.LogReader.prototype._consoleMsgCount = 0; - -/** - * Date of last output log message. - * - * @property _lastTime - * @type Date - * @private - */ -YAHOO.widget.LogReader.prototype._lastTime = null; - -/** - * Batched output timeout ID. - * - * @property _timeout - * @type Number - * @private - */ -YAHOO.widget.LogReader.prototype._timeout = null; - -/** - * Array of filters for log message categories. - * - * @property _categoryFilters - * @type String[] - * @private - */ -YAHOO.widget.LogReader.prototype._categoryFilters = null; - -/** - * Array of filters for log message sources. - * - * @property _sourceFilters - * @type String[] - * @private - */ -YAHOO.widget.LogReader.prototype._sourceFilters = null; - -/** - * LogReader container element. - * - * @property _elContainer - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elContainer = null; - -/** - * LogReader header element. - * - * @property _elHd - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elHd = null; - -/** - * LogReader collapse element. - * - * @property _elCollapse - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elCollapse = null; - -/** - * LogReader collapse button element. - * - * @property _btnCollapse - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._btnCollapse = null; - -/** - * LogReader title header element. - * - * @property _title - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._title = null; - -/** - * LogReader console element. - * - * @property _elConsole - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elConsole = null; - -/** - * LogReader footer element. - * - * @property _elFt - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elFt = null; - -/** - * LogReader buttons container element. - * - * @property _elBtns - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elBtns = null; - -/** - * Container element for LogReader category filter checkboxes. - * - * @property _elCategoryFilters - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elCategoryFilters = null; - -/** - * Container element for LogReader source filter checkboxes. - * - * @property _elSourceFilters - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._elSourceFilters = null; - -/** - * LogReader pause button element. - * - * @property _btnPause - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._btnPause = null; - -/** - * Clear button element. - * - * @property _btnClear - * @type HTMLElement - * @private - */ -YAHOO.widget.LogReader.prototype._btnClear = null; - -///////////////////////////////////////////////////////////////////////////// -// -// Private methods -// -///////////////////////////////////////////////////////////////////////////// - -/** - * Creates the UI for a category filter in the LogReader footer element. - * - * @method _createCategoryCheckbox - * @param sCategory {String} Category name. - * @private - */ -YAHOO.widget.LogReader.prototype._createCategoryCheckbox = function(sCategory) { - var oSelf = this; - - if(this._elFt) { - var elParent = this._elCategoryFilters; - var filters = this._categoryFilters; - - var elFilter = elParent.appendChild(document.createElement("span")); - elFilter.className = "yui-log-filtergrp"; - // Append el at the end so IE 5.5 can set "type" attribute - // and THEN set checked property - var chkCategory = document.createElement("input"); - chkCategory.id = "yui-log-filter-" + sCategory + this._sName; - chkCategory.className = "yui-log-filter-" + sCategory; - chkCategory.type = "checkbox"; - chkCategory.category = sCategory; - chkCategory = elFilter.appendChild(chkCategory); - chkCategory.checked = true; - - // Add this checked filter to the internal array of filters - filters.push(sCategory); - // Subscribe to the click event - YAHOO.util.Event.addListener(chkCategory,'click',oSelf._onCheckCategory,oSelf); - - // Create and class the text label - var lblCategory = elFilter.appendChild(document.createElement("label")); - lblCategory.htmlFor = chkCategory.id; - lblCategory.className = sCategory; - lblCategory.innerHTML = sCategory; - } -}; - -/** - * Creates a checkbox in the LogReader footer element to filter by source. - * - * @method _createSourceCheckbox - * @param sSource {String} Source name. - * @private - */ -YAHOO.widget.LogReader.prototype._createSourceCheckbox = function(sSource) { - var oSelf = this; - - if(this._elFt) { - var elParent = this._elSourceFilters; - var filters = this._sourceFilters; - - var elFilter = elParent.appendChild(document.createElement("span")); - elFilter.className = "yui-log-filtergrp"; - - // Append el at the end so IE 5.5 can set "type" attribute - // and THEN set checked property - var chkSource = document.createElement("input"); - chkSource.id = "yui-log-filter" + sSource + this._sName; - chkSource.className = "yui-log-filter" + sSource; - chkSource.type = "checkbox"; - chkSource.source = sSource; - chkSource = elFilter.appendChild(chkSource); - chkSource.checked = true; - - // Add this checked filter to the internal array of filters - filters.push(sSource); - // Subscribe to the click event - YAHOO.util.Event.addListener(chkSource,'click',oSelf._onCheckSource,oSelf); - - // Create and class the text label - var lblSource = elFilter.appendChild(document.createElement("label")); - lblSource.htmlFor = chkSource.id; - lblSource.className = sSource; - lblSource.innerHTML = sSource; - } -}; - -/** - * Reprints all log messages in the stack through filters. - * - * @method _filterLogs - * @private - */ -YAHOO.widget.LogReader.prototype._filterLogs = function() { - // Reprint stack with new filters - if (this._elConsole !== null) { - this._clearConsole(); - this._printToConsole(YAHOO.widget.Logger.getStack()); - } -}; - -/** - * Clears all outputted log messages from the console and resets the time of the - * last output log message. - * - * @method _clearConsole - * @private - */ -YAHOO.widget.LogReader.prototype._clearConsole = function() { - // Clear the buffer of any pending messages - this._timeout = null; - this._buffer = []; - this._consoleMsgCount = 0; - - // Reset the rolling timer - this._lastTime = YAHOO.widget.Logger.getStartTime(); - - var elConsole = this._elConsole; - while(elConsole.hasChildNodes()) { - elConsole.removeChild(elConsole.firstChild); - } -}; - -/** - * Sends buffer of log messages to output and clears buffer. - * - * @method _printBuffer - * @private - */ -YAHOO.widget.LogReader.prototype._printBuffer = function() { - this._timeout = null; - - if(this._elConsole !== null) { - var thresholdMax = this.thresholdMax; - thresholdMax = (thresholdMax && !isNaN(thresholdMax)) ? thresholdMax : 500; - if(this._consoleMsgCount < thresholdMax) { - var entries = []; - for (var i=0; i this.thresholdMax)) { - thresholdMin = 0; - } - var entriesStartIndex = (entriesLen > thresholdMin) ? (entriesLen - thresholdMin) : 0; - - // Iterate through all log entries - var sourceFiltersLen = this._sourceFilters.length; - var categoryFiltersLen = this._categoryFilters.length; - for(var i=entriesStartIndex; i tag instead of
 tag (for wrapping)
-            var container = (this.verboseOutput) ? "CODE" : "PRE";
-            var oNewElement = (this.newestOnTop) ?
-                this._elConsole.insertBefore(
-                    document.createElement(container),this._elConsole.firstChild):
-                this._elConsole.appendChild(document.createElement(container));
-
-            oNewElement.innerHTML = output;
-            this._consoleMsgCount++;
-            this._lastTime = entry.time.getTime();
-        }
-    }
-};
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Private event handlers
-//
-/////////////////////////////////////////////////////////////////////////////
-
-/**
- * Handles Logger's categoryCreateEvent.
- *
- * @method _onCategoryCreate
- * @param sType {String} The event.
- * @param aArgs {Object[]} Data passed from event firer.
- * @param oSelf {Object} The LogReader instance.
- * @private
- */
-YAHOO.widget.LogReader.prototype._onCategoryCreate = function(sType, aArgs, oSelf) {
-    var category = aArgs[0];
-    if(oSelf._elFt) {
-        oSelf._createCategoryCheckbox(category);
-    }
-};
-
-/**
- * Handles Logger's sourceCreateEvent.
- *
- * @method _onSourceCreate
- * @param sType {String} The event.
- * @param aArgs {Object[]} Data passed from event firer.
- * @param oSelf {Object} The LogReader instance.
- * @private
- */
-YAHOO.widget.LogReader.prototype._onSourceCreate = function(sType, aArgs, oSelf) {
-    var source = aArgs[0];
-    if(oSelf._elFt) {
-        oSelf._createSourceCheckbox(source);
-    }
-};
-
-/**
- * Handles check events on the category filter checkboxes.
- *
- * @method _onCheckCategory
- * @param v {HTMLEvent} The click event.
- * @param oSelf {Object} The LogReader instance.
- * @private
- */
-YAHOO.widget.LogReader.prototype._onCheckCategory = function(v, oSelf) {
-    var newFilter = this.category;
-    var filtersArray = oSelf._categoryFilters;
-
-    if(!this.checked) { // Remove category from filters
-        for(var i=0; i 0) {
-                // Substring until first space
-                sClass = sSource.substring(0,spaceIndex);
-                // The rest of the source
-                sDetail = sSource.substring(spaceIndex,sSource.length);
-            }
-            else {
-                sClass = sSource;
-            }
-            if(this._isNewSource(sClass)) {
-                this._createNewSource(sClass);
-            }
-        }
-
-        var timestamp = new Date();
-        var logEntry = new YAHOO.widget.LogMsg({
-            msg: sMsg,
-            time: timestamp,
-            category: sCategory,
-            source: sClass,
-            sourceDetail: sDetail
-        });
-
-        var stack = this._stack;
-        var maxStackEntries = this.maxStackEntries;
-        if(maxStackEntries && !isNaN(maxStackEntries) &&
-            (stack.length >= maxStackEntries)) {
-            stack.shift();
-        }
-        stack.push(logEntry);
-        this.newLogEvent.fire(logEntry);
-
-        if(this._browserConsoleEnabled) {
-            this._printToBrowserConsole(logEntry);
-        }
-        return true;
-    }
-    else {
-        return false;
-    }
-};
-
-/**
- * Resets internal stack and startTime, enables Logger, and fires logResetEvent.
- *
- * @method reset
- */
-YAHOO.widget.Logger.reset = function() {
-    this._stack = [];
-    this._startTime = new Date().getTime();
-    this.loggerEnabled = true;
-    this.log("Logger reset");
-    this.logResetEvent.fire();
-};
-
-/**
- * Public accessor to internal stack of log message objects.
- *
- * @method getStack
- * @return {Object[]} Array of log message objects.
- */
-YAHOO.widget.Logger.getStack = function() {
-    return this._stack;
-};
-
-/**
- * Public accessor to internal start time.
- *
- * @method getStartTime
- * @return {Date} Internal date of when Logger singleton was initialized.
- */
-YAHOO.widget.Logger.getStartTime = function() {
-    return this._startTime;
-};
-
-/**
- * Disables output to the browser's global console.log() function, which is used
- * by the Firebug extension to Firefox as well as Safari.
- *
- * @method disableBrowserConsole
- */
-YAHOO.widget.Logger.disableBrowserConsole = function() {
-    YAHOO.log("Logger output to the function console.log() has been disabled.");
-    this._browserConsoleEnabled = false;
-};
-
-/**
- * Enables output to the browser's global console.log() function, which is used
- * by the Firebug extension to Firefox as well as Safari.
- *
- * @method enableBrowserConsole
- */
-YAHOO.widget.Logger.enableBrowserConsole = function() {
-    this._browserConsoleEnabled = true;
-    YAHOO.log("Logger output to the function console.log() has been enabled.");
-};
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Public events
-//
-/////////////////////////////////////////////////////////////////////////////
-
- /**
- * Fired when a new category has been created.
- *
- * @event categoryCreateEvent
- * @param sCategory {String} Category name.
- */
-YAHOO.widget.Logger.categoryCreateEvent =
-    new YAHOO.util.CustomEvent("categoryCreate", this, true);
-
- /**
- * Fired when a new source has been named.
- *
- * @event sourceCreateEvent
- * @param sSource {String} Source name.
- */
-YAHOO.widget.Logger.sourceCreateEvent =
-    new YAHOO.util.CustomEvent("sourceCreate", this, true);
-
- /**
- * Fired when a new log message has been created.
- *
- * @event newLogEvent
- * @param sMsg {String} Log message.
- */
-YAHOO.widget.Logger.newLogEvent = new YAHOO.util.CustomEvent("newLog", this, true);
-
-/**
- * Fired when the Logger has been reset has been created.
- *
- * @event logResetEvent
- */
-YAHOO.widget.Logger.logResetEvent = new YAHOO.util.CustomEvent("logReset", this, true);
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Private methods
-//
-/////////////////////////////////////////////////////////////////////////////
-
-/**
- * Creates a new category of log messages and fires categoryCreateEvent.
- *
- * @method _createNewCategory
- * @param sCategory {String} Category name.
- * @private
- */
-YAHOO.widget.Logger._createNewCategory = function(sCategory) {
-    this.categories.push(sCategory);
-    this.categoryCreateEvent.fire(sCategory);
-};
-
-/**
- * Checks to see if a category has already been created.
- *
- * @method _isNewCategory
- * @param sCategory {String} Category name.
- * @return {Boolean} Returns true if category is unknown, else returns false.
- * @private
- */
-YAHOO.widget.Logger._isNewCategory = function(sCategory) {
-    for(var i=0; i < this.categories.length; i++) {
-        if(sCategory == this.categories[i]) {
-            return false;
-        }
-    }
-    return true;
-};
-
-/**
- * Creates a new source of log messages and fires sourceCreateEvent.
- *
- * @method _createNewSource
- * @param sSource {String} Source name.
- * @private
- */
-YAHOO.widget.Logger._createNewSource = function(sSource) {
-    this.sources.push(sSource);
-    this.sourceCreateEvent.fire(sSource);
-};
-
-/**
- * Checks to see if a source already exists.
- *
- * @method _isNewSource
- * @param sSource {String} Source name.
- * @return {Boolean} Returns true if source is unknown, else returns false.
- * @private
- */
-YAHOO.widget.Logger._isNewSource = function(sSource) {
-    if(sSource) {
-        for(var i=0; i < this.sources.length; i++) {
-            if(sSource == this.sources[i]) {
-                return false;
-            }
-        }
-        return true;
-    }
-};
-
-/**
- * Outputs a log message to global console.log() function.
- *
- * @method _printToBrowserConsole
- * @param oEntry {Object} Log entry object.
- * @private
- */
-YAHOO.widget.Logger._printToBrowserConsole = function(oEntry) {
-    if(window.console && console.log) {
-        var category = oEntry.category;
-        var label = oEntry.category.substring(0,4).toUpperCase();
-
-        var time = oEntry.time;
-        if (time.toLocaleTimeString) {
-            var localTime  = time.toLocaleTimeString();
-        }
-        else {
-            localTime = time.toString();
-        }
-
-        var msecs = time.getTime();
-        var elapsedTime = (YAHOO.widget.Logger._lastTime) ?
-            (msecs - YAHOO.widget.Logger._lastTime) : 0;
-        YAHOO.widget.Logger._lastTime = msecs;
-
-        var output =
-            localTime + " (" +
-            elapsedTime + "ms): " +
-            oEntry.source + ": " +
-            oEntry.msg;
-
-        console.log(output);
-    }
-};
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Private event handlers
-//
-/////////////////////////////////////////////////////////////////////////////
-
-/**
- * Handles logging of messages due to window error events.
- *
- * @method _onWindowError
- * @param sMsg {String} The error message.
- * @param sUrl {String} URL of the error.
- * @param sLine {String} Line number of the error.
- * @private
- */
-YAHOO.widget.Logger._onWindowError = function(sMsg,sUrl,sLine) {
-    // Logger is not in scope of this event handler
-    try {
-        YAHOO.widget.Logger.log(sMsg+' ('+sUrl+', line '+sLine+')', "window");
-        if(YAHOO.widget.Logger._origOnWindowError) {
-            YAHOO.widget.Logger._origOnWindowError();
-        }
-    }
-    catch(e) {
-        return false;
-    }
-};
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Enable handling of native JavaScript errors
-// NB: Not all browsers support the window.onerror event
-//
-/////////////////////////////////////////////////////////////////////////////
-
-if(window.onerror) {
-    // Save any previously defined handler to call
-    YAHOO.widget.Logger._origOnWindowError = window.onerror;
-}
-window.onerror = YAHOO.widget.Logger._onWindowError;
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// First log
-//
-/////////////////////////////////////////////////////////////////////////////
-
-YAHOO.widget.Logger.log("Logger initialized");
-
-
-YAHOO.register("logger", YAHOO.widget.Logger, {version: "2.2.0", build: "127"});
diff --git a/interface/ispconfig/interface/js/yui/menu/README b/interface/ispconfig/interface/js/yui/menu/README
deleted file mode 100644
index 34689ef95..000000000
--- a/interface/ispconfig/interface/js/yui/menu/README
+++ /dev/null
@@ -1,385 +0,0 @@
-*** version 2.2.0 ***
-
-Added the following features:
------------------------------
-
-* Added two new methods to YAHOO.widget.Menu:
-
-    * "getItems" - Returns a flat array of the items in a menu.
-
-    * "clearContent" - Removes all of the content from the menu, including the 
-      menu items, group titles, header and footer.
-
-
-* Added three new configuration attributes to YAHOO.widget.Menu:
-
-    * "submenuhidedelay" - Number indicating the time (in milliseconds) that 
-      should expire before a submenu is hidden when the user mouses out of a 
-      menu item heading in the direction of a submenu. The value must be 
-      greater than or equal to the value specified for the "showdelay" 
-      configuration property.
-
-    * "maxheight" - Defines the maximum height (in pixels) for a menu before 
-      the contents of the body are scrolled. 
-
-    * "classname" - CSS class to be applied to the menu's root 
element. - The specified class(es) are appended in addition to the default class as - specified by the menu's CSS_CLASS_NAME constant. - - -* Added new constants to YAHOO.widget.MenuItem: - - * COLLAPSED_SUBMENU_INDICATOR_TEXT - String representing the text for the - element used for the submenu arrow indicator. - - * EXPANDED_SUBMENU_INDICATOR_TEXT - String representing the text for the - submenu arrow indicator element () when the submenu is visible. - - * DISABLED_SUBMENU_INDICATOR_ALT_TEXT - String representing the text for - the submenu arrow indicator element () when the menu item is disabled. - - * CHECKED_TEXT - String representing the text to be used for the checked - indicator element (). - - * DISABLED_CHECKED_TEXT - String representing the text to be used for the - checked indicator element () when the menu item is disabled. - - -* Added two new configuration attributes to YAHOO.widget.MenuItem: - - * "onclick" - Object literal representing the code to be executed when the - button is clicked. Format: - - { - fn: Function, // The handler to call when the event fires. - obj: Object, // An object to pass back to the handler. - scope: Object // The object to use for the scope of the handler. - } - - * "classname" - CSS class to be applied to the menu item's root
  • - element. The specified class(es) are appended in addition to the default - class as specified by the menu item's CSS_CLASS_NAME constant. - - -* Added an "id" property to YAHOO.widget.MenuItem that represents the id of - the menu item's root
  • node. Although not a configuration attribute, this - property should be set via the object literal of configuration attributes - passed as the second argument to the constructor. If no value is - specified, then one will be generated using the "generateId" method of the - Dom utility (YAHOO.widget.Dom). - -* Added a "trigger context menu event" - (YAHOO.widget.ContextMenu.triggerContextMenuEvent) that fires when the DOM - "contextmenu" event ("mousedown" for Opera) is fired by one of the elemeents - defined as a YAHOO.widget.ContextMenu instance's trigger. - -* Added a "cancel" method to YAHOO.widget.ContextMenu that can be used to - cancel the display of a YAHOO.widget.ContextMen instance. This method - should be called within the scope of a "context menu" event handler for - one of the context menu's triggers - (YAHOO.widget.ContextMenu.triggerContextMenuEvent). - - -Fixed the following bugs: -------------------------- - -* Users can now move diagonally from a menu item to its corresponding submenu - without the submenu hiding immediately. - -* "destroy" method of YAHOO.widget.Menu now unsubscribes from the "text resize" - event (YAHOO.widget.Module.textResizeEvent). - -* Browser progress bar no longer flashes when hovering over checked menu items - or menu items with submenus. - -* Menu item submenu indicator image no longer jumps to the next line in - quirks mode. - -* Mouse events no longer fire in Firefox if a YAHOO.widget.Menu instance is - moved by script into a stationary mouse pointer. - -* Modified "toString" method of YAHOO.widget.ContextMenuItem to return the - correct class name, as it was reporting as YAHOO.widget.MenuBarItem. - - -Changes: --------- - -* Default value for the "showdelay" configuration attribute is now 250 - -* Modified code so that all Menu images are added via CSS background images. - As a result, the following constants and properties have been deprecated: - - * YAHOO.widget.MenuItem.SUBMENU_INDICATOR_IMAGE_PATH - * YAHOO.widget.MenuItem.SELECTED_SUBMENU_INDICATOR_IMAGE_PATH - * YAHOO.widget.MenuItem.DISABLED_SUBMENU_INDICATOR_IMAGE_PATH - * YAHOO.widget.MenuItem.COLLAPSED_SUBMENU_INDICATOR_ALT_TEXT - * YAHOO.widget.MenuItem.EXPANDED_SUBMENU_INDICATOR_ALT_TEXT - * YAHOO.widget.MenuItem.DISABLED_SUBMENU_INDICATOR_ALT_TEXT - * YAHOO.widget.MenuItem.CHECKED_IMAGE_PATH - * YAHOO.widget.MenuItem.SELECTED_CHECKED_IMAGE_PATH - * YAHOO.widget.MenuItem.DISABLED_CHECKED_IMAGE_PATH - * YAHOO.widget.MenuItem.CHECKED_IMAGE_ALT_TEXT - * YAHOO.widget.MenuItem.DISABLED_CHECKED_IMAGE_ALT_TEXT - * YAHOO.widget.MenuItem.IMG_ROOT - * YAHOO.widget.MenuItem.IMG_ROOT_SSL - * YAHOO.widget.MenuItem.imageRoot - * YAHOO.widget.MenuItem.isSecure - - - -*** version 0.12.2 *** - -* No changes - - - -*** version 0.12.1 *** - -Fixed the following bugs: -------------------------- - -* Placed the call to the DOM "focus" method used by the MenuItem class inside - a zero-second timeout to resolve a race condition between menu positioning - and focusing of a menu item that resulted in the browser viewport - scrolling unnecessarily. - -* Switched to JSMin for JavaScript compression to resolve issues with the - minified version. - -* Disabled menu item instances will no longer display a submenu if the item is - clicked or moused over. - -* Can no longer select more than one item in a menu if using the keyboard and - mouse simultaneously. - -* Calling the "destory" method on a menu will now unregister all of the menu's - submenus from the MenuManager. - - - -*** version 0.12 *** - -Added the following features: ------------------------------ - -* Added the YAHOO.widget.MenuManager singleton class. - -* Added two new methods to YAHOO.widget.Menu: - - * "addItems" - Adds an array of items to a menu. - - * "getRoot" - Returns the root menu in a menu hierarchy. - -* Added two new events to YAHOO.widget.Menu: - - * "itemAddedEvent" - Fires when an item is added to a menu. - - * "itemRemovedEvent" - Fires when an item is removed from a menu. - -* Added two new properties to YAHOO.widget.Menu: - - * "itemData" - Array of items to be added to the menu. - - * "lazyLoad" - Boolean indicating if the menu's "lazy load" feature - is enabled. - -* Added new configuration properties to YAHOO.widget.Menu: - - * "hidedelay" - Hides the menu after the specified number of milliseconds. - - * "showdelay" - Shows the menu after the specified number of milliseconds. - - * "container" - The containing element the menu should be rendered into. - - * "clicktohide" - Boolean indicating if the menu will automatically be - hidden if the user clicks outside of it. - - * "autosubmenudisplay" - Boolean indicating if submenus are automatically - made visible when the user mouses over the menu's items. - -* Added a "toString" method to YAHOO.widget.MenuItem, YAHOO.widget.MenuBarItem - and YAHOO.widget.ContextMenuItem that returns the class name followed by the - value of the item's "text" configuration property. - - -Fixed the following bugs: -------------------------- - -* Setting a YAHOO.widget.ContextMenu instance's "trigger" configuration - property will remove all previous triggers before setting up the new ones. - -* "destroy" method of YAHOO.widget.ContextMenu cleans up all DOM event handlers. - -* Clicking on a menu item with a submenu no longer hides/collapses the - entire menu. - -* Clicking an item's submenu indicator image no longer collapses the - entire menu. - - -Changes: --------- - -* Deprecated the YAHOO.widget.MenuModule and YAHOO.widget.MenuModuleItem - classes. The Base classes are now YAHOO.widget.Menu and - YAHOO.widget.MenuItem. - -* "addItem" and "insertItem" methods of YAHOO.widget.Menu now accept an - object literal representing YAHOO.widget.MenuItem configuration properties. - -* "clearActiveItem" now takes an argument: flag indicating if the Menu - instance's active item should be blurred. - -* Switched the default value of the "visible" configuration property for - YAHOO.widget.Menu to "false." - -* Switched the default value of the "constraintoviewport" configuration - property for YAHOO.widget.Menu to "true." - -* Overloaded the "submenu" configuration property for YAHOO.widget.MenuItem - so that it now can accept any of the following: - - * YAHOO.widget.Menu instance - * Object literal representation of a menu - * Element id - * Element reference - -* "hide" and "show" methods of statically positioned menus now toggle the their - element's "display" style property between "block" and "none." - - - -*** version 0.10.0 *** - -* Initial release - -* Known issues: - - * Some Firefox extensions disable the ability for JavaScript to prevent - the display of the browser's default context menu. These extensions - can cause the YUI ContextMenu to stop working. If you encounter this - problem, you can reset the context menu preference in Firefox back to - the default by making sure the "Disable or replace context menus" - preference is checked: - - Mac Firefox 1.0: - ------------------- - Preferences > Web Features > - Advanced... > Disable or replace context menus - - Mac Firefox 1.5 - ------------------- - Preferences > Context > - Advanced... > Disable or replace context menus - - Windows Firefox 1.0 - ------------------- - Tools > Options > Web Features > - Advanced... > Disable or replace context menus - - Windows Firefox 1.5 - ------------------- - Tools > Options > Context > - Advanced... > Disable or replace context menus - - - -*** version 0.11.3 *** - -Added the following features: ------------------------------ - -* Added a "target" configuration property to the MenuModuleItem object that - allows the user to specify the target of an item's anchor element. Items - that make use of the "target" configuration property will require the user - to click exactly on the item's anchor element to navigate to the specified - URL. - -* Items without a "url" property set will automatically hide their parent - menu instance(s) when clicked. - - -Fixed the following bugs: -------------------------- - -* Items in a submenu should now navigate to their specified URL when clicked. - -* Removed MenuBar's use of "overflow:hidden." This fixes an issue in Firefox - 1.5 in which submenus of a Menubar instance cannot overlay other absolutely - positioned elements on the page. - -* Submenus of a Menubar instance will now automatically have their iframe shim - enabled in IE<7. - -* Statically positioned Menubar and Menu instances will now render with the - correct position and dimensions in Safari. - -* MenuModuleItem's "focus" method now checks to make sure that an item's - "display" style property is not "none" before trying to set focus to its - anchor element. - -* A ContextMenu instance will now hide all other ContextMenu instances before - displaying itself. - -* Removed the dead space in front of an item's submenu indicator image in IE. - This space was causing an item's submenu to flicker when the user hovered - over it. - - -Changes: --------- - -* Moved the DOM event handlers for every menu from the root DIV node of each - instance to the document object. This change reduces the number of DOM event - handlers used by Menu to eight, improving the cleanup time required by the - Event utility. - - - -*** version 0.11.0 *** - -Added the following features: ------------------------------ -* Overloaded the "addItem" and "insertItem" methods of MenuModule to accept a - string or a MenuModuleItem instance - -* Added the ability to define a MenuItem instance as being "checked" - - -Fixed the following bugs: -------------------------- -* Changing the path for the submenu indicator image of one MenuModuleItem - subclass will no longer affect other subclasses - -* MenuItem instances built from existing markup without anchor tags will no - longer trigger a JavaScript error when clicked - -* Modified the implementation of the "imageRoot" property for the - MenuModuleItem class so that it is set to a secure/non-secure path when the - object is instantiated - -* Menu instances now resize in response to changes to the browser's font size - -* Modified the propagation of the MenuModule class's "submenualignment" - configuration property so that it only applies to instances of the same type - -* Adjusted the specificity of the style rule that controls the position of a - MenuItem instance's submenu indicator image to prevent it from wrapping in IE - -* Specified a width and height for submenu indicator images in the Menu - stylesheet to ensure that Menu instances are always rendered at the correct - width - -* Clicking a MenuItem instance will no longer trigger two HTTP GET requests - -* Users can now control or shift-click on MenuItem links - - -Changes: --------- -* In the Menu stylesheet (menu.css), switched from using "first" class to - "first-of-type" class - -* Changed case of MenuModuleItem class's "subMenuIndicator" property - to "submenuIndicator" \ No newline at end of file diff --git a/interface/ispconfig/interface/js/yui/menu/assets/map.gif b/interface/ispconfig/interface/js/yui/menu/assets/map.gif deleted file mode 100644 index 715859aa8b7e006cce52c4533c659e0bc022b868..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 264 zcmZ?wbhEHbTNsJ9jQJGU7iNFkl0UKUo+V7&sVo zK$0Lc7+AInC?+qN`sLP|^s9Hibw0?Db#Gswb$h3{&dF@4+u?yLtoE1N`d%=aA|mKM z)#%8{78|vmBColJVss?A%2!qGKb)|B#qX#4G929*E^J_AFn#3Psr*2mStj9# zEK3YWi$+tMh6sC8w?uR;dwsoBr#Q=Wp_y}L&tznr*~Y>sv~a%o!lhEo8SB=EO!4=t vRQBJnW9P2j9u6tiNok&YjvU?NvsF%9WXiE~=l3MqC#QLMUcInOkii-N{U~MY diff --git a/interface/ispconfig/interface/js/yui/menu/assets/menu.css b/interface/ispconfig/interface/js/yui/menu/assets/menu.css deleted file mode 100644 index 2fc2f6303..000000000 --- a/interface/ispconfig/interface/js/yui/menu/assets/menu.css +++ /dev/null @@ -1,384 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ -/* Menu styles */ - -div.yuimenu { - - background-color:#f6f7ee; - border:solid 1px #c4c4be; - padding:1px; - -} - -/* Submenus are positioned absolute and hidden by default */ - -div.yuimenu div.yuimenu, -div.yuimenubar div.yuimenu { - - position:absolute; - visibility:hidden; - -} - -/* MenuBar Styles */ - -div.yuimenubar { - - background-color:#f6f7ee; - -} - -/* - Applying a width triggers "haslayout" in IE so that the module's - body clears its floated elements -*/ -div.yuimenubar div.bd { - - width:100%; - -} - -/* - Clear the module body for other browsers -*/ -div.yuimenubar div.bd:after { - - content:'.'; - display:block; - clear:both; - visibility:hidden; - height:0; - -} - -/* Matches the group title (H6) inside a Menu or MenuBar instance */ - -div.yuimenu h6, -div.yuimenubar h6 { - - font-size:100%; - font-weight:normal; - margin:0; - border:solid 1px #c4c4be; - color:#b9b9b9; - -} - -div.yuimenubar h6 { - - float:left; - display:inline; /* Prevent margin doubling in IE */ - padding:4px 12px; - border-width:0 1px 0 0; - -} - -div.yuimenu h6 { - - float:none; - display:block; - border-width:1px 0 0 0; - padding:5px 10px 0 10px; - -} - -/* Matches the UL inside a Menu or MenuBar instance */ - -div.yuimenubar ul { - - list-style-type:none; - margin:0; - padding:0; - -} - -div.yuimenu ul { - - list-style-type:none; - border:solid 1px #c4c4be; - border-width:1px 0 0 0; - margin:0; - padding:10px 0; - -} - -div.yuimenu ul.first-of-type, -div.yuimenu ul.hastitle, -div.yuimenu h6.first-of-type { - - border-width:0; - -} - -/* - Styles for the menu's header and footer elements that are used as controls - to scroll the menu's body element when the menu's height exceeds the - value of the "maxheight" configuration property. -*/ - -div.yuimenu div.topscrollbar, -div.yuimenu div.bottomscrollbar { - - height:16px; - background-image:url(map.gif); - background-repeat:no-repeat; - -} - - -div.yuimenu div.topscrollbar { - - background-image:url(map.gif); - background-position:center -72px; - -} - - -div.yuimenu div.topscrollbar_disabled { - - background-image:url(map.gif); - background-position:center -88px; - -} - - -div.yuimenu div.bottomscrollbar { - - background-image:url(map.gif); - background-position:center -104px; - -} - - -div.yuimenu div.bottomscrollbar_disabled { - - background-image:url(map.gif); - background-position:center -120px; - -} - - -/* MenuItem and MenuBarItem styles */ - -div.yuimenu li, -div.yuimenubar li { - - font-size:85%; - cursor:pointer; - cursor:hand; - white-space:nowrap; - text-align:left; - -} - -div.yuimenu li.yuimenuitem { - - padding:2px 24px; - -} - -div.yuimenu li li, -div.yuimenubar li li { - - font-size:100%; - -} - - -/* Matches the help text for a menu item */ - -div.yuimenu li.hashelptext em.helptext { - - font-style:normal; - margin:0 0 0 40px; - -} - -div.yuimenu li a, -div.yuimenubar li a { - - /* - "zoom:1" triggers "haslayout" in IE to ensure that the mouseover and - mouseout events bubble to the parent LI in IE. - */ - zoom:1; - color:#000; - text-decoration:none; - -} - -div.yuimenu li.hassubmenu, -div.yuimenu li.hashelptext { - - text-align:right; - -} - -div.yuimenu li.hassubmenu a.hassubmenu, -div.yuimenu li.hashelptext a.hashelptext { - - float:left; - display:inline; /* Prevent margin doubling in IE */ - text-align:left; - -} - - -/* Matches selected menu items */ - -div.yuimenu li.selected, -div.yuimenubar li.selected { - - background-color:#8c8ad0; - -} - -div.yuimenu li.selected a.selected, -div.yuimenubar li.selected a.selected { - - text-decoration:underline; - -} - -div.yuimenu li.selected a.selected, -div.yuimenu li.selected em.selected, -div.yuimenubar li.selected a.selected { - - color:#fff; - -} - - -/* Matches disabled menu items */ - -div.yuimenu li.disabled, -div.yuimenubar li.disabled { - - cursor:default; - -} - -div.yuimenu li.disabled a.disabled, -div.yuimenu li.disabled em.disabled, -div.yuimenubar li.disabled a.disabled { - - color:#b9b9b9; - cursor:default; - -} - -div.yuimenubar li.yuimenubaritem { - - float:left; - display:inline; /* Prevent margin doubling in IE */ - border-width:0 0 0 1px; - border-style:solid; - border-color:#c4c4be; - padding:4px 24px; - margin:0; - -} - -div.yuimenubar li.yuimenubaritem.first-of-type { - - border-width:0; - -} - - -/* Styles for the the submenu indicator for menu items */ - -div.yuimenu li.hassubmenu em.submenuindicator, -div.yuimenubar li.hassubmenu em.submenuindicator { - - display:-moz-inline-box; /* Mozilla */ - display:inline-block; /* IE, Opera and Safari */ - vertical-align:middle; - height:8px; - width:8px; - text-indent:9px; - font:0/0 arial; - overflow:hidden; - background-image:url(map.gif); - background-repeat:no-repeat; - -} - -div.yuimenubar li.hassubmenu em.submenuindicator { - - background-position:0 -24px; - margin:0 0 0 10px; - -} - -div.yuimenubar li.hassubmenu em.submenuindicator.selected { - - background-position:0 -32px; - -} - -div.yuimenubar li.hassubmenu em.submenuindicator.disabled { - - background-position:0 -40px; - -} - -div.yuimenu li.hassubmenu em.submenuindicator { - - background-position:0 0; - margin:0 -16px 0 10px; - -} - -div.yuimenu li.hassubmenu em.submenuindicator.selected { - - background-position:0 -8px; - -} - -div.yuimenu li.hassubmenu em.submenuindicator.disabled { - - background-position:0 -16px; - -} - - -/* Styles for a menu item's "checked" state */ - -div.yuimenu li.checked { - - position:relative; - -} - -div.yuimenu li.checked em.checkedindicator { - - height:8px; - width:8px; - text-indent:9px; - overflow:hidden; - background-image:url(map.gif); - background-position:0 -48px; - background-repeat:no-repeat; - position:absolute; - left:6px; - _left:-16px; /* Underscore hack b/c this is for IE 6 only */ - top:.5em; - -} - -div.yuimenu li.checked em.checkedindicator.selected { - - background-position:0 -56px; - -} - -div.yuimenu li.checked em.checkedindicator.disabled { - - background-position:0 -64px; - -} \ No newline at end of file diff --git a/interface/ispconfig/interface/js/yui/menu/assets/menuarodwn8_dim_1.gif b/interface/ispconfig/interface/js/yui/menu/assets/menuarodwn8_dim_1.gif deleted file mode 100644 index 60b38365a203237a6cfd8b95002bbd0b4322fe99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53 zcmZ?wbhEHb{|1&T!DE?$&WME)s&;hc6vK$NyOd@ma8`w7K Vws;w`SgzXn>&^zA2Z0O>)&O?c6EFY( diff --git a/interface/ispconfig/interface/js/yui/menu/assets/menuchk8_nrm_1.gif b/interface/ispconfig/interface/js/yui/menu/assets/menuchk8_nrm_1.gif deleted file mode 100644 index 9732837a7755b6bee23b95f32eb998c487daa53c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67 zcmZ?wbhEHbThe Menu family of components features a collection of -* controls that make it easy to add menus to your website or web application. -* With the Menu Controls you can create website fly-out menus, customized -* context menus, or application-style menu bars with just a small amount of -* scripting.

    The Menu family of controls features:

    -*
      -*
    • Screen-reader accessibility.
    • -*
    • Keyboard and mouse navigation.
    • -*
    • A rich event model that provides access to all of a menu's -* interesting moments.
    • -*
    • Support for -* Progressive -* Enhancement; Menus can be created from simple, -* semantic markup on the page or purely through JavaScript.
    • -*
    -* @title Menu -* @namespace YAHOO.widget -* @requires Event, Dom, Container -*/ -(function() { - -var Dom = YAHOO.util.Dom, - Event = YAHOO.util.Event; - -/** -* Singleton that manages a collection of all menus and menu items. Listens for -* DOM events at the document level and dispatches the events to the -* corresponding menu or menu item. -* -* @namespace YAHOO.widget -* @class MenuManager -* @static -*/ -YAHOO.widget.MenuManager = function() { - - // Private member variables - - - // Flag indicating if the DOM event handlers have been attached - - var m_bInitializedEventHandlers = false, - - - // Collection of menus - - m_oMenus = {}, - - - // Collection of menu items - - m_oItems = {}, - - - // Collection of visible menus - - m_oVisibleMenus = {}, - - me = this; - - - var m_oLogger = new YAHOO.widget.LogWriter(this.toString()); - - - // Private methods - - - /** - * @method addItem - * @description Adds an item to the collection of known menu items. - * @private - * @param {YAHOO.widget.MenuItem} p_oItem Object specifying the MenuItem - * instance to be added. - */ - function addItem(p_oItem) { - - var sId = p_oItem.id; - - if(p_oItem && m_oItems[sId] != p_oItem) { - - m_oItems[sId] = p_oItem; - - p_oItem.destroyEvent.subscribe(onItemDestroy, p_oItem); - - m_oLogger.log("Item: " + - p_oItem.toString() + " successfully registered."); - - } - - } - - - /** - * @method removeItem - * @description Removes an item from the collection of known menu items. - * @private - * @param {YAHOO.widget.MenuItem} p_oItem Object specifying the MenuItem - * instance to be removed. - */ - function removeItem(p_oItem) { - - var sId = p_oItem.id; - - if(sId && m_oItems[sId]) { - - delete m_oItems[sId]; - - m_oLogger.log("Item: " + - p_oItem.toString() + " successfully unregistered."); - - } - - } - - - /** - * @method getMenuRootElement - * @description Finds the root DIV node of a menu or the root LI node of a - * menu item. - * @private - * @param {HTMLElement} p_oElement Object specifying - * an HTML element. - */ - function getMenuRootElement(p_oElement) { - - var oParentNode; - - if(p_oElement && p_oElement.tagName) { - - switch(p_oElement.tagName.toUpperCase()) { - - case "DIV": - - oParentNode = p_oElement.parentNode; - - // Check if the DIV is the inner "body" node of a menu - - if( - ( - Dom.hasClass(p_oElement, "hd") || - Dom.hasClass(p_oElement, "bd") || - Dom.hasClass(p_oElement, "ft") - ) - && - oParentNode && - oParentNode.tagName && - oParentNode.tagName.toUpperCase() == "DIV" - ) { - - return oParentNode; - - } - else { - - return p_oElement; - - } - - break; - - case "LI": - - return p_oElement; - - default: - - oParentNode = p_oElement.parentNode; - - if(oParentNode) { - - return getMenuRootElement(oParentNode); - - } - - break; - - } - - } - - } - - - - // Private event handlers - - - /** - * @method onDOMEvent - * @description Generic, global event handler for all of a menu's DOM-based - * events. This listens for events against the document object. If the - * target of a given event is a member of a menu or menu item's DOM, the - * instance's corresponding Custom Event is fired. - * @private - * @param {Event} p_oEvent Object representing the DOM event object passed - * back by the event utility (YAHOO.util.Event). - */ - function onDOMEvent(p_oEvent) { - - // Get the target node of the DOM event - - var oTarget = Event.getTarget(p_oEvent), - - - // See if the target of the event was a menu, or a menu item - - oElement = getMenuRootElement(oTarget), - oMenuItem, - oMenu; - - - if(oElement) { - - var sTagName = oElement.tagName.toUpperCase(); - - if(sTagName == "LI") { - - var sId = oElement.id; - - if(sId && m_oItems[sId]) { - - oMenuItem = m_oItems[sId]; - oMenu = oMenuItem.parent; - - } - - } - else if(sTagName == "DIV") { - - if(oElement.id) { - - oMenu = m_oMenus[oElement.id]; - - } - - } - - } - - if(oMenu) { - - // Map of DOM event names to CustomEvent names - - var oEventTypes = { - "click": "clickEvent", - "mousedown": "mouseDownEvent", - "mouseup": "mouseUpEvent", - "mouseover": "mouseOverEvent", - "mouseout": "mouseOutEvent", - "keydown": "keyDownEvent", - "keyup": "keyUpEvent", - "keypress": "keyPressEvent" - }, - - sCustomEventType = oEventTypes[p_oEvent.type]; - - - // Fire the Custom Even that corresponds the current DOM event - - if(oMenuItem && !oMenuItem.cfg.getProperty("disabled")) { - - oMenuItem[sCustomEventType].fire(p_oEvent); - - } - - oMenu[sCustomEventType].fire(p_oEvent, oMenuItem); - - } - else if(p_oEvent.type == "mousedown") { - - - /* - If the target of the event wasn't a menu, hide all - dynamically positioned menus - */ - - var oActiveItem; - - for(var i in m_oMenus) { - - if(m_oMenus.hasOwnProperty(i)) { - - oMenu = m_oMenus[i]; - - if( - oMenu.cfg.getProperty("clicktohide") && - oMenu.cfg.getProperty("position") == "dynamic" - ) { - - oMenu.hide(); - - } - else { - - oMenu.clearActiveItem(true); - - } - - } - - } - - } - - } - - - /** - * @method onMenuDestroy - * @description "destroy" event handler for a menu. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that - * fired the event. - */ - function onMenuDestroy(p_sType, p_aArgs, p_oMenu) { - - if(p_oMenu && m_oMenus[p_oMenu.id]) { - - delete m_oMenus[p_oMenu.id]; - - m_oLogger.log("Menu: " + - p_oMenu.toString() + " successfully unregistered."); - - } - - } - - - /** - * @method onItemDestroy - * @description "destroy" event handler for a MenuItem instance. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - function onItemDestroy(p_sType, p_aArgs, p_oItem) { - - var sId = p_oItem.id; - - if(sId && m_oItems[sId]) { - - delete m_oItems[sId]; - - } - - } - - - /** - * @method onMenuVisibleConfigChange - * @description Event handler for when the "visible" configuration property - * of a Menu instance changes. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that - * fired the event. - */ - function onMenuVisibleConfigChange(p_sType, p_aArgs, p_oMenu) { - - var bVisible = p_aArgs[0]; - - if(bVisible) { - - m_oVisibleMenus[p_oMenu.id] = p_oMenu; - - m_oLogger.log("Menu: " + - p_oMenu.toString() + - " registered with the collection of visible menus."); - - } - else if(m_oVisibleMenus[p_oMenu.id]) { - - delete m_oVisibleMenus[p_oMenu.id]; - - m_oLogger.log("Menu: " + - p_oMenu.toString() + - " unregistered from the collection of visible menus."); - - } - - } - - - /** - * @method onItemAdded - * @description "itemadded" event handler for a Menu instance. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - */ - function onItemAdded(p_sType, p_aArgs) { - - addItem(p_aArgs[0]); - - } - - - /** - * @method onItemRemoved - * @description "itemremoved" event handler for a Menu instance. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - */ - function onItemRemoved(p_sType, p_aArgs) { - - removeItem(p_aArgs[0]); - - } - - - - return { - - // Privileged methods - - - /** - * @method addMenu - * @description Adds a menu to the collection of known menus. - * @param {YAHOO.widget.Menu} p_oMenu Object specifying the Menu - * instance to be added. - */ - addMenu: function(p_oMenu) { - - if(p_oMenu && p_oMenu.id && !m_oMenus[p_oMenu.id]) { - - m_oMenus[p_oMenu.id] = p_oMenu; - - - if(!m_bInitializedEventHandlers) { - - var oDoc = document; - - Event.addListener(oDoc, "mouseover", onDOMEvent, me, true); - Event.addListener(oDoc, "mouseout", onDOMEvent, me, true); - Event.addListener(oDoc, "mousedown", onDOMEvent, me, true); - Event.addListener(oDoc, "mouseup", onDOMEvent, me, true); - Event.addListener(oDoc, "click", onDOMEvent, me, true); - Event.addListener(oDoc, "keydown", onDOMEvent, me, true); - Event.addListener(oDoc, "keyup", onDOMEvent, me, true); - Event.addListener(oDoc, "keypress", onDOMEvent, me, true); - - m_bInitializedEventHandlers = true; - - m_oLogger.log("DOM event handlers initialized."); - - } - - p_oMenu.destroyEvent.subscribe(onMenuDestroy, p_oMenu, me); - - p_oMenu.cfg.subscribeToConfigEvent( - "visible", - onMenuVisibleConfigChange, - p_oMenu - ); - - p_oMenu.itemAddedEvent.subscribe(onItemAdded); - p_oMenu.itemRemovedEvent.subscribe(onItemRemoved); - - m_oLogger.log("Menu: " + - p_oMenu.toString() + " successfully registered."); - - } - - }, - - - /** - * @method removeMenu - * @description Removes a menu from the collection of known menus. - * @param {YAHOO.widget.Menu} p_oMenu Object specifying the Menu - * instance to be removed. - */ - removeMenu: function(p_oMenu) { - - if(p_oMenu && m_oMenus[p_oMenu.id]) { - - delete m_oMenus[p_oMenu.id]; - - m_oLogger.log("Menu: " + - p_oMenu.toString() + " successfully unregistered."); - - } - - }, - - - /** - * @method hideVisible - * @description Hides all visible, dynamically positioned menus. - */ - hideVisible: function() { - - var oMenu; - - for(var i in m_oVisibleMenus) { - - if(m_oVisibleMenus.hasOwnProperty(i)) { - - oMenu = m_oVisibleMenus[i]; - - if(oMenu.cfg.getProperty("position") == "dynamic") { - - oMenu.hide(); - - } - - } - - } - - }, - - - /** - * @method getMenus - * @description Returns an array of all menus registered with the - * menu manger. - * @return {Array} - */ - getMenus: function() { - - return m_oMenus; - - }, - - - /** - * @method getMenu - * @description Returns a menu with the specified id. - * @param {String} p_sId String specifying the id of the menu to - * be retrieved. - * @return {YAHOO.widget.Menu} - */ - getMenu: function(p_sId) { - - if(m_oMenus[p_sId]) { - - return m_oMenus[p_sId]; - - } - - }, - - - /** - * @method toString - * @description Returns a string representing the menu manager. - * @return {String} - */ - toString: function() { - - return ("MenuManager"); - - } - - }; - -}(); - -})(); - - - -/** -* The Menu class creates a container that holds a vertical list representing -* a set of options or commands. Menu is the base class for all -* menu containers. -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the menu. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source -* for the menu. -* @param {HTMLDivElement} p_oElement Object -* specifying the <div> element of the menu. -* @param {HTMLSelectElement} p_oElement -* Object specifying the <select> element to be used as -* the data source for the menu. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu. See configuration class documentation for -* more details. -* @namespace YAHOO.widget -* @class Menu -* @constructor -* @extends YAHOO.widget.Overlay -*/ -(function() { - -var Dom = YAHOO.util.Dom, - Event = YAHOO.util.Event, - Lang = YAHOO.lang; - - -YAHOO.widget.Menu = function(p_oElement, p_oConfig) { - - if(p_oConfig) { - - this.parent = p_oConfig.parent; - this.lazyLoad = p_oConfig.lazyLoad || p_oConfig.lazyload; - this.itemData = p_oConfig.itemData || p_oConfig.itemdata; - - } - - - YAHOO.widget.Menu.superclass.constructor.call( - this, - p_oElement, - p_oConfig - ); - -}; - - -YAHOO.lang.extend(YAHOO.widget.Menu, YAHOO.widget.Overlay, { - - -// Constants - - -/** -* @property CSS_CLASS_NAME -* @description String representing the CSS class(es) to be applied to the -* menu's <div> element. -* @default "yuimenu" -* @final -* @type String -*/ -CSS_CLASS_NAME: "yuimenu", - - -/** -* @property ITEM_TYPE -* @description Object representing the type of menu item to instantiate and -* add when parsing the child nodes (either <li> element, -* <optgroup> element or <option>) -* of the menu's source HTML element. -* @default YAHOO.widget.MenuItem -* @final -* @type YAHOO.widget.MenuItem -*/ -ITEM_TYPE: null, - - -/** -* @property GROUP_TITLE_TAG_NAME -* @description String representing the tagname of the HTML element used to -* title the menu's item groups. -* @default H6 -* @final -* @type String -*/ -GROUP_TITLE_TAG_NAME: "h6", - - - -// Private properties - - -/** -* @property _nHideDelayId -* @description Number representing the time-out setting used to cancel the -* hiding of a menu. -* @default null -* @private -* @type Number -*/ -_nHideDelayId: null, - - -/** -* @property _nShowDelayId -* @description Number representing the time-out setting used to cancel the -* showing of a menu. -* @default null -* @private -* @type Number -*/ -_nShowDelayId: null, - - -/** -* @property _nSubmenuHideDelayId -* @description Number representing the time-out setting used to cancel the -* hiding of a submenu. -* @default null -* @private -* @type Number -*/ -_nSubmenuHideDelayId: null, - - -/** -* @property _nBodyScrollId -* @description Number representing the time-out setting used to cancel the -* scrolling of the menu's body element. -* @default null -* @private -* @type Number -*/ -_nBodyScrollId: null, - - -/** -* @property _bHideDelayEventHandlersAssigned -* @description Boolean indicating if the "mouseover" and "mouseout" event -* handlers used for hiding the menu via a call to "window.setTimeout" have -* already been assigned. -* @default false -* @private -* @type Boolean -*/ -_bHideDelayEventHandlersAssigned: false, - - -/** -* @property _bHandledMouseOverEvent -* @description Boolean indicating the current state of the menu's -* "mouseover" event. -* @default false -* @private -* @type Boolean -*/ -_bHandledMouseOverEvent: false, - - -/** -* @property _bHandledMouseOutEvent -* @description Boolean indicating the current state of the menu's -* "mouseout" event. -* @default false -* @private -* @type Boolean -*/ -_bHandledMouseOutEvent: false, - - -/** -* @property _aGroupTitleElements -* @description Array of HTML element used to title groups of menu items. -* @default [] -* @private -* @type Array -*/ -_aGroupTitleElements: null, - - -/** -* @property _aItemGroups -* @description Multi-dimensional Array representing the menu items as they -* are grouped in the menu. -* @default [] -* @private -* @type Array -*/ -_aItemGroups: null, - - -/** -* @property _aListElements -* @description Array of <ul> elements, each of which is -* the parent node for each item's <li> element. -* @default [] -* @private -* @type Array -*/ -_aListElements: null, - - -/** -* @property _nCurrentMouseX -* @description The current x coordinate of the mouse inside the area of -* the menu. -* @default 0 -* @private -* @type Number -*/ -_nCurrentMouseX: 0, - - -/** -* @property _nMaxHeight -* @description The original value of the "maxheight" configuration property -* as set by the user. -* @default -1 -* @private -* @type Number -*/ -_nMaxHeight: -1, - - -/** -* @property _bStopMouseEventHandlers -* @description Stops "mouseover," "mouseout," and "mousemove" event handlers -* from executing. -* @default false -* @private -* @type Boolean -*/ -_bStopMouseEventHandlers: false, - - -/** -* @property _sClassName -* @description The current value of the "classname" configuration attribute. -* @default null -* @private -* @type String -*/ -_sClassName: null, - - - -// Public properties - - -/** -* @property lazyLoad -* @description Boolean indicating if the menu's "lazy load" feature is -* enabled. If set to "true," initialization and rendering of the menu's -* items will be deferred until the first time it is made visible. This -* property should be set via the constructor using the configuration -* object literal. -* @default false -* @type Boolean -*/ -lazyLoad: false, - - -/** -* @property itemData -* @description Array of items to be added to the menu. The array can contain -* strings representing the text for each item to be created, object literals -* representing the menu item configuration properties, or MenuItem instances. -* This property should be set via the constructor using the configuration -* object literal. -* @default null -* @type Array -*/ -itemData: null, - - -/** -* @property activeItem -* @description Object reference to the item in the menu that has focus. -* @default null -* @type YAHOO.widget.MenuItem -*/ -activeItem: null, - - -/** -* @property parent -* @description Object reference to the menu's parent menu or menu item. -* This property can be set via the constructor using the configuration -* object literal. -* @default null -* @type YAHOO.widget.MenuItem -*/ -parent: null, - - -/** -* @property srcElement -* @description Object reference to the HTML element (either -* <select> or <div>) used to -* create the menu. -* @default null -* @type HTMLSelectElement|HTMLDivElement -*/ -srcElement: null, - - - -// Events - - -/** -* @event mouseOverEvent -* @description Fires when the mouse has entered the menu. Passes back -* the DOM Event object as an argument. -*/ -mouseOverEvent: null, - - -/** -* @event mouseOutEvent -* @description Fires when the mouse has left the menu. Passes back the DOM -* Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -mouseOutEvent: null, - - -/** -* @event mouseDownEvent -* @description Fires when the user mouses down on the menu. Passes back the -* DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -mouseDownEvent: null, - - -/** -* @event mouseUpEvent -* @description Fires when the user releases a mouse button while the mouse is -* over the menu. Passes back the DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -mouseUpEvent: null, - - -/** -* @event clickEvent -* @description Fires when the user clicks the on the menu. Passes back the -* DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -clickEvent: null, - - -/** -* @event keyPressEvent -* @description Fires when the user presses an alphanumeric key when one of the -* menu's items has focus. Passes back the DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -keyPressEvent: null, - - -/** -* @event keyDownEvent -* @description Fires when the user presses a key when one of the menu's items -* has focus. Passes back the DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -keyDownEvent: null, - - -/** -* @event keyUpEvent -* @description Fires when the user releases a key when one of the menu's items -* has focus. Passes back the DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -keyUpEvent: null, - - -/** -* @event itemAddedEvent -* @description Fires when an item is added to the menu. -* @type YAHOO.util.CustomEvent -*/ -itemAddedEvent: null, - - -/** -* @event itemRemovedEvent -* @description Fires when an item is removed to the menu. -* @type YAHOO.util.CustomEvent -*/ -itemRemovedEvent: null, - - -/** -* @method init -* @description The Menu class's initialization method. This method is -* automatically called by the constructor, and sets up all DOM references -* for pre-existing markup, and creates required markup if it is not -* already present. -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the menu. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source -* for the menu. -* @param {HTMLDivElement} p_oElement Object -* specifying the <div> element of the menu. -* @param {HTMLSelectElement} p_oElement -* Object specifying the <select> element to be used as -* the data source for the menu. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu. See configuration class documentation for -* more details. -*/ -init: function(p_oElement, p_oConfig) { - - this._aItemGroups = []; - this._aListElements = []; - this._aGroupTitleElements = []; - - - if(!this.ITEM_TYPE) { - - this.ITEM_TYPE = YAHOO.widget.MenuItem; - - } - - - var oElement; - - if(typeof p_oElement == "string") { - - oElement = document.getElementById(p_oElement); - - } - else if(p_oElement.tagName) { - - oElement = p_oElement; - - } - - - if(oElement && oElement.tagName) { - - switch(oElement.tagName.toUpperCase()) { - - case "DIV": - - this.srcElement = oElement; - - if(!oElement.id) { - - oElement.setAttribute("id", Dom.generateId()); - - } - - - /* - Note: we don't pass the user config in here yet - because we only want it executed once, at the lowest - subclass level. - */ - - YAHOO.widget.Menu.superclass.init.call(this, oElement); - - this.beforeInitEvent.fire(YAHOO.widget.Menu); - - this.logger = new YAHOO.widget.LogWriter(this.toString()); - - this.logger.log("Source element: " + this.srcElement.tagName); - - break; - - case "SELECT": - - this.srcElement = oElement; - - - /* - The source element is not something that we can use - outright, so we need to create a new Overlay - - Note: we don't pass the user config in here yet - because we only want it executed once, at the lowest - subclass level. - */ - - YAHOO.widget.Menu.superclass.init.call(this, Dom.generateId()); - - this.beforeInitEvent.fire(YAHOO.widget.Menu); - - this.logger = new YAHOO.widget.LogWriter(this.toString()); - - this.logger.log("Source element: " + this.srcElement.tagName); - - break; - - } - - } - else { - - /* - Note: we don't pass the user config in here yet - because we only want it executed once, at the lowest - subclass level. - */ - - YAHOO.widget.Menu.superclass.init.call(this, p_oElement); - - this.beforeInitEvent.fire(YAHOO.widget.Menu); - - this.logger = new YAHOO.widget.LogWriter(this.toString()); - - this.logger.log("No source element found. " + - "Created element with id: " + this.id); - - } - - - if(this.element) { - - var oEl = this.element; - - Dom.addClass(oEl, this.CSS_CLASS_NAME); - - - // Subscribe to Custom Events - - this.initEvent.subscribe(this._onInit, this, true); - this.beforeRenderEvent.subscribe(this._onBeforeRender, this, true); - this.renderEvent.subscribe(this._setWidth, this, true); - this.beforeShowEvent.subscribe(this._onBeforeShow, this, true); - this.showEvent.subscribe(this._onShow, this, true); - this.beforeHideEvent.subscribe(this._onBeforeHide, this, true); - this.hideEvent.subscribe(this._onHide, this, true); - this.mouseOverEvent.subscribe(this._onMouseOver, this, true); - this.mouseOutEvent.subscribe(this._onMouseOut, this, true); - this.clickEvent.subscribe(this._onClick, this, true); - this.keyDownEvent.subscribe(this._onKeyDown, this, true); - this.keyPressEvent.subscribe(this._onKeyPress, this, true); - - YAHOO.widget.Module.textResizeEvent.subscribe( - this._onTextResize, - this, - true - ); - - - if(p_oConfig) { - - this.cfg.applyConfig(p_oConfig, true); - - } - - - // Register the Menu instance with the MenuManager - - YAHOO.widget.MenuManager.addMenu(this); - - - this.initEvent.fire(YAHOO.widget.Menu); - - } - -}, - - - -// Private methods - - -/** -* @method _initSubTree -* @description Iterates the childNodes of the source element to find nodes -* used to instantiate menu and menu items. -* @private -*/ -_initSubTree: function() { - - var oNode; - - if(this.srcElement.tagName.toUpperCase() == "DIV") { - - /* - Populate the collection of item groups and item - group titles - */ - - oNode = this.body.firstChild; - - var nGroup = 0, - sGroupTitleTagName = this.GROUP_TITLE_TAG_NAME.toUpperCase(); - - do { - - if(oNode && oNode.tagName) { - - switch(oNode.tagName.toUpperCase()) { - - case sGroupTitleTagName: - - this._aGroupTitleElements[nGroup] = oNode; - - break; - - case "UL": - - this._aListElements[nGroup] = oNode; - this._aItemGroups[nGroup] = []; - nGroup++; - - break; - - } - - } - - } - while((oNode = oNode.nextSibling)); - - - /* - Apply the "first-of-type" class to the first UL to mimic - the "first-of-type" CSS3 psuedo class. - */ - - if(this._aListElements[0]) { - - Dom.addClass(this._aListElements[0], "first-of-type"); - - } - - } - - - oNode = null; - - this.logger.log("Searching DOM for items to initialize."); - - if(this.srcElement.tagName) { - - var sSrcElementTagName = this.srcElement.tagName.toUpperCase(); - - - switch(sSrcElementTagName) { - - case "DIV": - - if(this._aListElements.length > 0) { - - this.logger.log("Found " + - this._aListElements.length + - " item groups to initialize."); - - var i = this._aListElements.length - 1; - - do { - - oNode = this._aListElements[i].firstChild; - - this.logger.log("Scanning " + - this._aListElements[i].childNodes.length + - " child nodes for items to initialize."); - - do { - - if( - oNode && - oNode.tagName && - oNode.tagName.toUpperCase() == "LI" - ) { - - this.logger.log("Initializing " + - oNode.tagName + " node."); - - this.addItem( - new this.ITEM_TYPE( - oNode, - { parent: this } - ), - i - ); - - } - - } - while((oNode = oNode.nextSibling)); - - } - while(i--); - - } - - break; - - case "SELECT": - - this.logger.log("Scanning " + - this.srcElement.childNodes.length + - " child nodes for items to initialize."); - - oNode = this.srcElement.firstChild; - - do { - - if(oNode && oNode.tagName) { - - switch(oNode.tagName.toUpperCase()) { - - case "OPTGROUP": - case "OPTION": - - this.logger.log("Initializing " + - oNode.tagName + " node."); - - this.addItem( - new this.ITEM_TYPE( - oNode, - { parent: this } - ) - ); - - break; - - } - - } - - } - while((oNode = oNode.nextSibling)); - - break; - - } - - } - -}, - - -/** -* @method _getFirstEnabledItem -* @description Returns the first enabled item in the menu. -* @return {YAHOO.widget.MenuItem} -* @private -*/ -_getFirstEnabledItem: function() { - - var aItems = this.getItems(), - nItems = aItems.length, - oItem; - - for(var i=0; i= aGroup.length); - - - if(aGroup[p_nItemIndex]) { - - aGroup.splice(p_nItemIndex, 0, oItem); - - } - else { - - aGroup[p_nItemIndex] = oItem; - - } - - - oGroupItem = aGroup[p_nItemIndex]; - - if(oGroupItem) { - - if( - bAppend && - ( - !oGroupItem.element.parentNode || - oGroupItem.element.parentNode.nodeType == 11 - ) - ) { - - this._aListElements[nGroupIndex].appendChild( - oGroupItem.element - ); - - } - else { - - function getNextItemSibling(p_aArray, p_nStartIndex) { - - return ( - p_aArray[p_nStartIndex] || - getNextItemSibling( - p_aArray, - (p_nStartIndex+1) - ) - ); - - } - - - var oNextItemSibling = - getNextItemSibling(aGroup, (p_nItemIndex+1)); - - if( - oNextItemSibling && - ( - !oGroupItem.element.parentNode || - oGroupItem.element.parentNode.nodeType == 11 - ) - ) { - - this._aListElements[nGroupIndex].insertBefore( - oGroupItem.element, - oNextItemSibling.element - ); - - } - - } - - - oGroupItem.parent = this; - - this._subscribeToItemEvents(oGroupItem); - - this._configureSubmenu(oGroupItem); - - this._updateItemProperties(nGroupIndex); - - this.logger.log("Item inserted." + - " Text: " + oGroupItem.cfg.getProperty("text") + ", " + - " Index: " + oGroupItem.index + ", " + - " Group Index: " + oGroupItem.groupIndex); - - this.itemAddedEvent.fire(oGroupItem); - - return oGroupItem; - - } - - } - else { - - var nItemIndex = aGroup.length; - - aGroup[nItemIndex] = oItem; - - oGroupItem = aGroup[nItemIndex]; - - - if(oGroupItem) { - - if( - !Dom.isAncestor( - this._aListElements[nGroupIndex], - oGroupItem.element - ) - ) { - - this._aListElements[nGroupIndex].appendChild( - oGroupItem.element - ); - - } - - oGroupItem.element.setAttribute("groupindex", nGroupIndex); - oGroupItem.element.setAttribute("index", nItemIndex); - - oGroupItem.parent = this; - - oGroupItem.index = nItemIndex; - oGroupItem.groupIndex = nGroupIndex; - - this._subscribeToItemEvents(oGroupItem); - - this._configureSubmenu(oGroupItem); - - if(nItemIndex === 0) { - - Dom.addClass(oGroupItem.element, "first-of-type"); - - } - - this.logger.log("Item added." + - " Text: " + oGroupItem.cfg.getProperty("text") + ", " + - " Index: " + oGroupItem.index + ", " + - " Group Index: " + oGroupItem.groupIndex); - - - this.itemAddedEvent.fire(oGroupItem); - - return oGroupItem; - - } - - } - - } - -}, - - -/** -* @method _removeItemFromGroupByIndex -* @description Removes a menu item from a group by index. Returns the menu -* item that was removed. -* @private -* @param {Number} p_nGroupIndex Number indicating the group to which the menu -* item belongs. -* @param {Number} p_nItemIndex Number indicating the index of the menu item -* to be removed. -* @return {YAHOO.widget.MenuItem} -*/ -_removeItemFromGroupByIndex: function(p_nGroupIndex, p_nItemIndex) { - - var nGroupIndex = typeof p_nGroupIndex == "number" ? p_nGroupIndex : 0, - aGroup = this._getItemGroup(nGroupIndex); - - if(aGroup) { - - var aArray = aGroup.splice(p_nItemIndex, 1), - oItem = aArray[0]; - - if(oItem) { - - // Update the index and className properties of each member - - this._updateItemProperties(nGroupIndex); - - if(aGroup.length === 0) { - - // Remove the UL - - var oUL = this._aListElements[nGroupIndex]; - - if(this.body && oUL) { - - this.body.removeChild(oUL); - - } - - // Remove the group from the array of items - - this._aItemGroups.splice(nGroupIndex, 1); - - - // Remove the UL from the array of ULs - - this._aListElements.splice(nGroupIndex, 1); - - - /* - Assign the "first-of-type" class to the new first UL - in the collection - */ - - oUL = this._aListElements[0]; - - if(oUL) { - - Dom.addClass(oUL, "first-of-type"); - - } - - } - - - this.itemRemovedEvent.fire(oItem); - - - // Return a reference to the item that was removed - - return oItem; - - } - - } - -}, - - -/** -* @method _removeItemFromGroupByValue -* @description Removes a menu item from a group by reference. Returns the -* menu item that was removed. -* @private -* @param {Number} p_nGroupIndex Number indicating the group to which the -* menu item belongs. -* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem -* instance to be removed. -* @return {YAHOO.widget.MenuItem} -*/ -_removeItemFromGroupByValue: function(p_nGroupIndex, p_oItem) { - - var aGroup = this._getItemGroup(p_nGroupIndex); - - if(aGroup) { - - var nItems = aGroup.length, - nItemIndex = -1; - - if(nItems > 0) { - - var i = nItems-1; - - do { - - if(aGroup[i] == p_oItem) { - - nItemIndex = i; - break; - - } - - } - while(i--); - - if(nItemIndex > -1) { - - return this._removeItemFromGroupByIndex( - p_nGroupIndex, - nItemIndex - ); - - } - - } - - } - -}, - - -/** -* @method _updateItemProperties -* @description Updates the "index," "groupindex," and "className" properties -* of the menu items in the specified group. -* @private -* @param {Number} p_nGroupIndex Number indicating the group of items to update. -*/ -_updateItemProperties: function(p_nGroupIndex) { - - var aGroup = this._getItemGroup(p_nGroupIndex), - nItems = aGroup.length; - - if(nItems > 0) { - - var i = nItems - 1, - oItem, - oLI; - - // Update the index and className properties of each member - - do { - - oItem = aGroup[i]; - - if(oItem) { - - oLI = oItem.element; - - oItem.index = i; - oItem.groupIndex = p_nGroupIndex; - - oLI.setAttribute("groupindex", p_nGroupIndex); - oLI.setAttribute("index", i); - - Dom.removeClass(oLI, "first-of-type"); - - } - - } - while(i--); - - - if(oLI) { - - Dom.addClass(oLI, "first-of-type"); - - } - - } - -}, - - -/** -* @method _createItemGroup -* @description Creates a new menu item group (array) and its associated -* <ul> element. Returns an aray of menu item groups. -* @private -* @param {Number} p_nIndex Number indicating the group to create. -* @return {Array} -*/ -_createItemGroup: function(p_nIndex) { - - if(!this._aItemGroups[p_nIndex]) { - - this._aItemGroups[p_nIndex] = []; - - var oUL = document.createElement("ul"); - - this._aListElements[p_nIndex] = oUL; - - return this._aItemGroups[p_nIndex]; - - } - -}, - - -/** -* @method _getItemGroup -* @description Returns the menu item group at the specified index. -* @private -* @param {Number} p_nIndex Number indicating the index of the menu item group -* to be retrieved. -* @return {Array} -*/ -_getItemGroup: function(p_nIndex) { - - var nIndex = ((typeof p_nIndex == "number") ? p_nIndex : 0); - - return this._aItemGroups[nIndex]; - -}, - - -/** -* @method _configureSubmenu -* @description Subscribes the menu item's submenu to its parent menu's events. -* @private -* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem -* instance with the submenu to be configured. -*/ -_configureSubmenu: function(p_oItem) { - - var oSubmenu = p_oItem.cfg.getProperty("submenu"); - - if(oSubmenu) { - - /* - Listen for configuration changes to the parent menu - so they they can be applied to the submenu. - */ - - this.cfg.configChangedEvent.subscribe( - this._onParentMenuConfigChange, - oSubmenu, - true - ); - - this.renderEvent.subscribe( - this._onParentMenuRender, - oSubmenu, - true - ); - - oSubmenu.beforeShowEvent.subscribe( - this._onSubmenuBeforeShow, - oSubmenu, - true - ); - - oSubmenu.showEvent.subscribe( - this._onSubmenuShow, - oSubmenu, - true - ); - - oSubmenu.hideEvent.subscribe( - this._onSubmenuHide, - oSubmenu, - true - ); - - } - -}, - - -/** -* @method _subscribeToItemEvents -* @description Subscribes a menu to a menu item's event. -* @private -* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem -* instance whose events should be subscribed to. -*/ -_subscribeToItemEvents: function(p_oItem) { - - p_oItem.focusEvent.subscribe(this._onMenuItemFocus, p_oItem, this); - - p_oItem.blurEvent.subscribe(this._onMenuItemBlur, this, true); - - p_oItem.cfg.configChangedEvent.subscribe( - this._onMenuItemConfigChange, - p_oItem, - this - ); - -}, - - -/** -* @method _getOffsetWidth -* @description Returns the offset width of the menu's -* <div> element. -* @private -*/ -_getOffsetWidth: function() { - - var oClone = this.element.cloneNode(true); - - Dom.setStyle(oClone, "width", ""); - - document.body.appendChild(oClone); - - var sWidth = oClone.offsetWidth; - - document.body.removeChild(oClone); - - return sWidth; - -}, - - -/** -* @method _setWidth -* @description Sets the width of the menu's root <div> -* element to its offsetWidth. -* @private -*/ -_setWidth: function() { - - if(this.cfg.getProperty("position") == "dynamic") { - - var sWidth; - - if(this.element.parentNode.tagName.toUpperCase() == "BODY") { - - if(this.browser == "opera") { - - sWidth = this._getOffsetWidth(); - - } - else { - - Dom.setStyle(this.element, "width", "auto"); - - sWidth = this.element.offsetWidth; - - } - - } - else { - - sWidth = this._getOffsetWidth(); - - } - - this.cfg.setProperty("width", (sWidth + "px")); - - } - -}, - - -/** -* @method _cancelHideDelay -* @description Cancels the call to "hideMenu." -* @private -*/ -_cancelHideDelay: function() { - - var oRoot = this.getRoot(); - - if(oRoot._nHideDelayId) { - - window.clearTimeout(oRoot._nHideDelayId); - - } - -}, - - -/** -* @method _execHideDelay -* @description Hides the menu after the number of milliseconds specified by -* the "hidedelay" configuration property. -* @private -*/ -_execHideDelay: function() { - - this._cancelHideDelay(); - - var oRoot = this.getRoot(), - me = this; - - function hideMenu() { - - if(oRoot.activeItem) { - - oRoot.clearActiveItem(); - - } - - if(oRoot == me && me.cfg.getProperty("position") == "dynamic") { - - me.hide(); - - } - - } - - - oRoot._nHideDelayId = - window.setTimeout(hideMenu, oRoot.cfg.getProperty("hidedelay")); - -}, - - -/** -* @method _cancelShowDelay -* @description Cancels the call to the "showMenu." -* @private -*/ -_cancelShowDelay: function() { - - var oRoot = this.getRoot(); - - if(oRoot._nShowDelayId) { - - window.clearTimeout(oRoot._nShowDelayId); - - } - -}, - - -/** -* @method _execShowDelay -* @description Shows the menu after the number of milliseconds specified by -* the "showdelay" configuration property have ellapsed. -* @private -* @param {YAHOO.widget.Menu} p_oMenu Object specifying the menu that should -* be made visible. -*/ -_execShowDelay: function(p_oMenu) { - - var oRoot = this.getRoot(); - - function showMenu() { - - if(p_oMenu.parent.cfg.getProperty("selected")) { - - p_oMenu.show(); - - } - - } - - - oRoot._nShowDelayId = - window.setTimeout(showMenu, oRoot.cfg.getProperty("showdelay")); - -}, - - -/** -* @method _execSubmenuHideDelay -* @description Hides a submenu after the number of milliseconds specified by -* the "submenuhidedelay" configuration property have ellapsed. -* @private -* @param {YAHOO.widget.Menu} p_oSubmenu Object specifying the submenu that -* should be hidden. -* @param {Number} p_nMouseX The x coordinate of the mouse when it left -* the specified submenu's parent menu item. -* @param {Number} p_nHideDelay The number of milliseconds that should ellapse -* before the submenu is hidden. -*/ -_execSubmenuHideDelay: function(p_oSubmenu, p_nMouseX, p_nHideDelay) { - - var me = this; - - p_oSubmenu._nSubmenuHideDelayId = window.setTimeout(function () { - - if(me._nCurrentMouseX > (p_nMouseX + 10)) { - - p_oSubmenu._nSubmenuHideDelayId = window.setTimeout(function () { - - p_oSubmenu.hide(); - - }, p_nHideDelay); - - } - else { - - p_oSubmenu.hide(); - - } - - }, 50); - -}, - - - -// Protected methods - - -/** -* @method _disableScrollHeader -* @description Disables the header used for scrolling the body of the menu. -* @protected -*/ -_disableScrollHeader: function() { - - if(!this._bHeaderDisabled) { - - Dom.addClass(this.header, "topscrollbar_disabled"); - this._bHeaderDisabled = true; - - } - -}, - - -/** -* @method _disableScrollFooter -* @description Disables the footer used for scrolling the body of the menu. -* @protected -*/ -_disableScrollFooter: function() { - - if(!this._bFooterDisabled) { - - Dom.addClass(this.footer, "bottomscrollbar_disabled"); - this._bFooterDisabled = true; - - } - -}, - - -/** -* @method _enableScrollHeader -* @description Enables the header used for scrolling the body of the menu. -* @protected -*/ -_enableScrollHeader: function() { - - if(this._bHeaderDisabled) { - - Dom.removeClass(this.header, "topscrollbar_disabled"); - this._bHeaderDisabled = false; - - } - -}, - - -/** -* @method _enableScrollFooter -* @description Enables the footer used for scrolling the body of the menu. -* @protected -*/ -_enableScrollFooter: function() { - - if(this._bFooterDisabled) { - - Dom.removeClass(this.footer, "bottomscrollbar_disabled"); - this._bFooterDisabled = false; - - } - -}, - - - -/** -* @method _onMouseOver -* @description "mouseover" event handler for the menu. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onMouseOver: function(p_sType, p_aArgs, p_oMenu) { - - if(this._bStopMouseEventHandlers) { - - return false; - - } - - - var oEvent = p_aArgs[0], - oItem = p_aArgs[1], - oTarget = Event.getTarget(oEvent); - - - if( - !this._bHandledMouseOverEvent && - (oTarget == this.element || Dom.isAncestor(this.element, oTarget)) - ) { - - // Menu mouseover logic - - this._nCurrentMouseX = 0; - - Event.addListener( - this.element, - "mousemove", - this._onMouseMove, - this, - true - ); - - - this.clearActiveItem(); - - - if(this.parent && this._nSubmenuHideDelayId) { - - window.clearTimeout(this._nSubmenuHideDelayId); - - this.parent.cfg.setProperty("selected", true); - - var oParentMenu = this.parent.parent; - - oParentMenu.activeItem = this.parent; - - oParentMenu._bHandledMouseOutEvent = true; - oParentMenu._bHandledMouseOverEvent = false; - - } - - - this._bHandledMouseOverEvent = true; - this._bHandledMouseOutEvent = false; - - } - - - if( - oItem && !oItem.handledMouseOverEvent && - !oItem.cfg.getProperty("disabled") && - (oTarget == oItem.element || Dom.isAncestor(oItem.element, oTarget)) - ) { - - // Menu Item mouseover logic - - var nShowDelay = this.cfg.getProperty("showdelay"), - bShowDelay = (nShowDelay > 0); - - - if(bShowDelay) { - - this._cancelShowDelay(); - - } - - - var oActiveItem = this.activeItem; - - if(oActiveItem) { - - oActiveItem.cfg.setProperty("selected", false); - - } - - - var oItemCfg = oItem.cfg; - - // Select and focus the current menu item - - oItemCfg.setProperty("selected", true); - oItem.focus(); - - - if(this.cfg.getProperty("autosubmenudisplay")) { - - // Show the submenu this menu item - - var oSubmenu = oItemCfg.getProperty("submenu"); - - if(oSubmenu) { - - if(bShowDelay) { - - this._execShowDelay(oSubmenu); - - } - else { - - oSubmenu.show(); - - } - - } - - } - - oItem.handledMouseOverEvent = true; - oItem.handledMouseOutEvent = false; - - } - -}, - - -/** -* @method _onMouseOut -* @description "mouseout" event handler for the menu. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onMouseOut: function(p_sType, p_aArgs, p_oMenu) { - - if(this._bStopMouseEventHandlers) { - - return false; - - } - - - var oEvent = p_aArgs[0], - oItem = p_aArgs[1], - oRelatedTarget = Event.getRelatedTarget(oEvent), - bMovingToSubmenu = false; - - - if(oItem && !oItem.cfg.getProperty("disabled")) { - - var oItemCfg = oItem.cfg, - oSubmenu = oItemCfg.getProperty("submenu"); - - - if( - oSubmenu && - ( - oRelatedTarget == oSubmenu.element || - Dom.isAncestor(oSubmenu.element, oRelatedTarget) - ) - ) { - - bMovingToSubmenu = true; - - } - - - if( - !oItem.handledMouseOutEvent && - ( - ( - oRelatedTarget != oItem.element && - !Dom.isAncestor(oItem.element, oRelatedTarget) - ) || bMovingToSubmenu - ) - ) { - - // Menu Item mouseout logic - - if(!bMovingToSubmenu) { - - oItem.cfg.setProperty("selected", false); - - - if(oSubmenu) { - - var nSubmenuHideDelay = - this.cfg.getProperty("submenuhidedelay"), - - nShowDelay = this.cfg.getProperty("showdelay"); - - if( - !(this instanceof YAHOO.widget.MenuBar) && - nSubmenuHideDelay > 0 && - nShowDelay >= nSubmenuHideDelay - ) { - - this._execSubmenuHideDelay( - oSubmenu, - Event.getPageX(oEvent), - nSubmenuHideDelay - ); - - } - else { - - oSubmenu.hide(); - - } - - } - - } - - - oItem.handledMouseOutEvent = true; - oItem.handledMouseOverEvent = false; - - } - - } - - - if( - !this._bHandledMouseOutEvent && - ( - ( - oRelatedTarget != this.element && - !Dom.isAncestor(this.element, oRelatedTarget) - ) - || bMovingToSubmenu - ) - ) { - - // Menu mouseout logic - - Event.removeListener(this.element, "mousemove", this._onMouseMove); - - this._nCurrentMouseX = Event.getPageX(oEvent); - - this._bHandledMouseOutEvent = true; - this._bHandledMouseOverEvent = false; - - } - -}, - - -/** -* @method _onMouseMove -* @description "click" event handler for the menu. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onMouseMove: function(p_oEvent, p_oMenu) { - - if(this._bStopMouseEventHandlers) { - - return false; - - } - - this._nCurrentMouseX = Event.getPageX(p_oEvent); - -}, - - -/** -* @method _onClick -* @description "click" event handler for the menu. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onClick: function(p_sType, p_aArgs, p_oMenu) { - - var oEvent = p_aArgs[0], - oItem = p_aArgs[1], - oTarget = Event.getTarget(oEvent); - - if(oItem && !oItem.cfg.getProperty("disabled")) { - - var oItemCfg = oItem.cfg, - oSubmenu = oItemCfg.getProperty("submenu"); - - - /* - ACCESSIBILITY FEATURE FOR SCREEN READERS: - Expand/collapse the submenu when the user clicks - on the submenu indicator image. - */ - - if(oTarget == oItem.submenuIndicator && oSubmenu) { - - if(oSubmenu.cfg.getProperty("visible")) { - - oSubmenu.hide(); - - oSubmenu.parent.focus(); - - } - else { - - this.clearActiveItem(); - - this.activeItem = oItem; - - oItem.cfg.setProperty("selected", true); - - oSubmenu.show(); - - } - - } - else { - - var sURL = oItemCfg.getProperty("url"), - bCurrentPageURL = (sURL.substr((sURL.length-1),1) == "#"), - sTarget = oItemCfg.getProperty("target"), - bHasTarget = (sTarget && sTarget.length > 0); - - /* - Prevent the browser from following links - equal to "#" - */ - - if( - oTarget.tagName.toUpperCase() == "A" && - bCurrentPageURL && !bHasTarget - ) { - - Event.preventDefault(oEvent); - - } - - if( - oTarget.tagName.toUpperCase() != "A" && - !bCurrentPageURL && !bHasTarget - ) { - - /* - Follow the URL of the item regardless of - whether or not the user clicked specifically - on the anchor element. - */ - - document.location = sURL; - - } - - - /* - If the item doesn't navigate to a URL and it doesn't have - a submenu, then collapse the menu tree. - */ - - if(bCurrentPageURL && !oSubmenu) { - - var oRoot = this.getRoot(); - - if(oRoot.cfg.getProperty("position") == "static") { - - oRoot.clearActiveItem(); - - } - else if(oRoot.cfg.getProperty("clicktohide")) { - - oRoot.hide(); - - } - - } - - } - - } - -}, - - -/** -* @method _onKeyDown -* @description "keydown" event handler for the menu. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onKeyDown: function(p_sType, p_aArgs, p_oMenu) { - - var oEvent = p_aArgs[0], - oItem = p_aArgs[1], - me = this, - oSubmenu; - - - /* - This function is called to prevent a bug in Firefox. In Firefox, - moving a DOM element into a stationary mouse pointer will cause the - browser to fire mouse events. This can result in the menu mouse - event handlers being called uncessarily, especially when menus are - moved into a stationary mouse pointer as a result of a - key event handler. - */ - function stopMouseEventHandlers() { - - me._bStopMouseEventHandlers = true; - - window.setTimeout(function() { - - me._bStopMouseEventHandlers = false; - - }, 10); - - } - - - if(oItem && !oItem.cfg.getProperty("disabled")) { - - var oItemCfg = oItem.cfg, - oParentItem = this.parent, - oRoot, - oNextItem; - - - switch(oEvent.keyCode) { - - case 38: // Up arrow - case 40: // Down arrow - - if( - oItem == this.activeItem && - !oItemCfg.getProperty("selected") - ) { - - oItemCfg.setProperty("selected", true); - - } - else { - - oNextItem = (oEvent.keyCode == 38) ? - oItem.getPreviousEnabledSibling() : - oItem.getNextEnabledSibling(); - - if(oNextItem) { - - this.clearActiveItem(); - - oNextItem.cfg.setProperty("selected", true); - oNextItem.focus(); - - - if(this.cfg.getProperty("maxheight") > 0) { - - var oBody = this.body; - - oBody.scrollTop = - - ( - oNextItem.element.offsetTop + - oNextItem.element.offsetHeight - ) - oBody.offsetHeight; - - - var nScrollTop = oBody.scrollTop, - nScrollTarget = - oBody.scrollHeight - oBody.offsetHeight; - - if(nScrollTop === 0) { - - this._disableScrollHeader(); - this._enableScrollFooter(); - - } - else if(nScrollTop == nScrollTarget) { - - this._enableScrollHeader(); - this._disableScrollFooter(); - - } - else { - - this._enableScrollHeader(); - this._enableScrollFooter(); - - } - - } - - } - - } - - Event.preventDefault(oEvent); - - stopMouseEventHandlers(); - - break; - - - case 39: // Right arrow - - oSubmenu = oItemCfg.getProperty("submenu"); - - if(oSubmenu) { - - if(!oItemCfg.getProperty("selected")) { - - oItemCfg.setProperty("selected", true); - - } - - oSubmenu.show(); - - oSubmenu.setInitialSelection(); - - } - else { - - oRoot = this.getRoot(); - - if(oRoot instanceof YAHOO.widget.MenuBar) { - - oNextItem = oRoot.activeItem.getNextEnabledSibling(); - - if(oNextItem) { - - oRoot.clearActiveItem(); - - oNextItem.cfg.setProperty("selected", true); - - oSubmenu = oNextItem.cfg.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.show(); - - } - - oNextItem.focus(); - - } - - } - - } - - - Event.preventDefault(oEvent); - - stopMouseEventHandlers(); - - break; - - - case 37: // Left arrow - - if(oParentItem) { - - var oParentMenu = oParentItem.parent; - - if(oParentMenu instanceof YAHOO.widget.MenuBar) { - - oNextItem = - oParentMenu.activeItem.getPreviousEnabledSibling(); - - if(oNextItem) { - - oParentMenu.clearActiveItem(); - - oNextItem.cfg.setProperty("selected", true); - - oSubmenu = oNextItem.cfg.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.show(); - - } - - oNextItem.focus(); - - } - - } - else { - - this.hide(); - - oParentItem.focus(); - - } - - } - - Event.preventDefault(oEvent); - - stopMouseEventHandlers(); - - break; - - } - - - } - - - if(oEvent.keyCode == 27) { // Esc key - - if(this.cfg.getProperty("position") == "dynamic") { - - this.hide(); - - if(this.parent) { - - this.parent.focus(); - - } - - } - else if(this.activeItem) { - - oSubmenu = this.activeItem.cfg.getProperty("submenu"); - - if(oSubmenu && oSubmenu.cfg.getProperty("visible")) { - - oSubmenu.hide(); - this.activeItem.focus(); - - } - else { - - this.activeItem.cfg.setProperty("selected", false); - this.activeItem.blur(); - - } - - } - - - Event.preventDefault(oEvent); - - } - -}, - - -/** -* @method _onKeyPress -* @description "keypress" event handler for a Menu instance. -* @protected -* @param {String} p_sType The name of the event that was fired. -* @param {Array} p_aArgs Collection of arguments sent when the event -* was fired. -* @param {YAHOO.widget.Menu} p_oMenu The Menu instance that fired the event. -*/ -_onKeyPress: function(p_sType, p_aArgs, p_oMenu) { - - var oEvent = p_aArgs[0]; - - - if(oEvent.keyCode == 40 || oEvent.keyCode == 38) { - - YAHOO.util.Event.preventDefault(oEvent); - - } - -}, - - -/** -* @method _onTextResize -* @description "textresize" event handler for the menu. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onTextResize: function(p_sType, p_aArgs, p_oMenu) { - - if(this.browser == "gecko" && !this._handleResize) { - - this._handleResize = true; - return; - - } - - - var oConfig = this.cfg; - - if(oConfig.getProperty("position") == "dynamic") { - - oConfig.setProperty("width", (this._getOffsetWidth() + "px")); - - } - -}, - - -/** -* @method _onScrollTargetMouseOver -* @description "mouseover" event handler for the menu's "header" and "footer" -* elements. Used to scroll the body of the menu up and down when the -* menu's "maxheight" configuration property is set to a value greater than 0. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onScrollTargetMouseOver: function(p_oEvent, p_oMenu) { - - this._cancelHideDelay(); - - var oTarget = Event.getTarget(p_oEvent), - oBody = this.body, - me = this, - nScrollTarget, - fnScrollFunction; - - - function scrollBodyDown() { - - var nScrollTop = oBody.scrollTop; - - - if(nScrollTop < nScrollTarget) { - - oBody.scrollTop = (nScrollTop + 1); - - me._enableScrollHeader(); - - } - else { - - oBody.scrollTop = nScrollTarget; - - window.clearInterval(me._nBodyScrollId); - - me._disableScrollFooter(); - - } - - } - - - function scrollBodyUp() { - - var nScrollTop = oBody.scrollTop; - - - if(nScrollTop > 0) { - - oBody.scrollTop = (nScrollTop - 1); - - me._enableScrollFooter(); - - } - else { - - oBody.scrollTop = 0; - - window.clearInterval(me._nBodyScrollId); - - me._disableScrollHeader(); - - } - - } - - - if(Dom.hasClass(oTarget, "hd")) { - - fnScrollFunction = scrollBodyUp; - - } - else { - - nScrollTarget = oBody.scrollHeight - oBody.offsetHeight; - - fnScrollFunction = scrollBodyDown; - - } - - - this._nBodyScrollId = window.setInterval(fnScrollFunction, 10); - -}, - - -/** -* @method _onScrollTargetMouseOut -* @description "mouseout" event handler for the menu's "header" and "footer" -* elements. Used to stop scrolling the body of the menu up and down when the -* menu's "maxheight" configuration property is set to a value greater than 0. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onScrollTargetMouseOut: function(p_oEvent, p_oMenu) { - - window.clearInterval(this._nBodyScrollId); - - this._cancelHideDelay(); - -}, - - - -// Private methods - - -/** -* @method _onInit -* @description "init" event handler for the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onInit: function(p_sType, p_aArgs, p_oMenu) { - - if( - ( - (this.parent && !this.lazyLoad) || - (!this.parent && this.cfg.getProperty("position") == "static") || - ( - !this.parent && - !this.lazyLoad && - this.cfg.getProperty("position") == "dynamic" - ) - ) && - this.getItemGroups().length === 0 - ) { - - if(this.srcElement) { - - this._initSubTree(); - - } - - - if(this.itemData) { - - this.addItems(this.itemData); - - } - - } - else if(this.lazyLoad) { - - this.cfg.fireQueue(); - - } - -}, - - -/** -* @method _onBeforeRender -* @description "beforerender" event handler for the menu. Appends all of the -* <ul>, <li> and their accompanying -* title elements to the body element of the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onBeforeRender: function(p_sType, p_aArgs, p_oMenu) { - - var oConfig = this.cfg, - oEl = this.element, - nListElements = this._aListElements.length; - - - if(nListElements > 0) { - - var i = 0, - bFirstList = true, - oUL, - oGroupTitle; - - - do { - - oUL = this._aListElements[i]; - - if(oUL) { - - if(bFirstList) { - - Dom.addClass(oUL, "first-of-type"); - bFirstList = false; - - } - - - if(!Dom.isAncestor(oEl, oUL)) { - - this.appendToBody(oUL); - - } - - - oGroupTitle = this._aGroupTitleElements[i]; - - if(oGroupTitle) { - - if(!Dom.isAncestor(oEl, oGroupTitle)) { - - oUL.parentNode.insertBefore(oGroupTitle, oUL); - - } - - - Dom.addClass(oUL, "hastitle"); - - } - - } - - i++; - - } - while(i < nListElements); - - } - -}, - - -/** -* @method _onBeforeShow -* @description "beforeshow" event handler for the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onBeforeShow: function(p_sType, p_aArgs, p_oMenu) { - - if(this.lazyLoad && this.getItemGroups().length === 0) { - - if(this.srcElement) { - - this._initSubTree(); - - } - - - if(this.itemData) { - - if( - this.parent && this.parent.parent && - this.parent.parent.srcElement && - this.parent.parent.srcElement.tagName.toUpperCase() == "SELECT" - ) { - - var nOptions = this.itemData.length; - - for(var n=0; n= nViewportHeight) { - - var nMaxHeight = this.cfg.getProperty("maxheight"); - - /* - Cache the original value for the "maxheight" configuration - property so that we can set it back when the menu is hidden. - */ - - this._nMaxHeight = nMaxHeight; - - this.cfg.setProperty("maxheight", (nViewportHeight - 20)); - - } - - - if(this.cfg.getProperty("maxheight") > 0) { - - var oBody = this.body; - - if(oBody.scrollTop > 0) { - - oBody.scrollTop = 0; - - } - - this._disableScrollHeader(); - this._enableScrollFooter(); - - } - - } - - -}, - - -/** -* @method _onShow -* @description "show" event handler for the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that fired -* the event. -*/ -_onShow: function(p_sType, p_aArgs, p_oMenu) { - - this.setInitialFocus(); - - var oParent = this.parent; - - if(oParent) { - - var oParentMenu = oParent.parent, - aParentAlignment = oParentMenu.cfg.getProperty("submenualignment"), - aAlignment = this.cfg.getProperty("submenualignment"); - - - if( - (aParentAlignment[0] != aAlignment[0]) && - (aParentAlignment[1] != aAlignment[1]) - ) { - - this.cfg.setProperty( - "submenualignment", - [ aParentAlignment[0], aParentAlignment[1] ] - ); - - } - - - if( - !oParentMenu.cfg.getProperty("autosubmenudisplay") && - oParentMenu.cfg.getProperty("position") == "static" - ) { - - oParentMenu.cfg.setProperty("autosubmenudisplay", true); - - - function disableAutoSubmenuDisplay(p_oEvent) { - - if( - p_oEvent.type == "mousedown" || - (p_oEvent.type == "keydown" && p_oEvent.keyCode == 27) - ) { - - /* - Set the "autosubmenudisplay" to "false" if the user - clicks outside the menu bar. - */ - - var oTarget = Event.getTarget(p_oEvent); - - if( - oTarget != oParentMenu.element || - !YAHOO.util.Dom.isAncestor(oParentMenu.element, oTarget) - ) { - - oParentMenu.cfg.setProperty( - "autosubmenudisplay", - false - ); - - Event.removeListener( - document, - "mousedown", - disableAutoSubmenuDisplay - ); - - Event.removeListener( - document, - "keydown", - disableAutoSubmenuDisplay - ); - - } - - } - - } - - Event.addListener(document, "mousedown", disableAutoSubmenuDisplay); - Event.addListener(document, "keydown", disableAutoSubmenuDisplay); - - } - - } - else if(!oParent && this.lazyLoad) { - - this.cfg.refireEvent("xy"); - - } - -}, - - -/** -* @method _onBeforeHide -* @description "beforehide" event handler for the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that fired -* the event. -*/ -_onBeforeHide: function(p_sType, p_aArgs, p_oMenu) { - - var oActiveItem = this.activeItem; - - if(oActiveItem) { - - var oConfig = oActiveItem.cfg; - - oConfig.setProperty("selected", false); - - var oSubmenu = oConfig.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.hide(); - - } - - oActiveItem.blur(); - - } - -}, - - -/** -* @method _onHide -* @description "hide" event handler for the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that fired -* the event. -*/ -_onHide: function(p_sType, p_aArgs, p_oMenu) { - - if(this._nMaxHeight != -1) { - - this.cfg.setProperty("maxheight", this._nMaxHeight); - - this._nMaxHeight = -1; - - } - -}, - - -/** -* @method _onParentMenuConfigChange -* @description "configchange" event handler for a submenu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that -* subscribed to the event. -*/ -_onParentMenuConfigChange: function(p_sType, p_aArgs, p_oSubmenu) { - - var sPropertyName = p_aArgs[0][0], - oPropertyValue = p_aArgs[0][1]; - - switch(sPropertyName) { - - case "iframe": - case "constraintoviewport": - case "hidedelay": - case "showdelay": - case "submenuhidedelay": - case "clicktohide": - case "effect": - case "classname": - - p_oSubmenu.cfg.setProperty(sPropertyName, oPropertyValue); - - break; - - } - -}, - - -/** -* @method _onParentMenuRender -* @description "render" event handler for a submenu. Renders a -* submenu in response to the firing of its parent's "render" event. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that -* subscribed to the event. -*/ -_onParentMenuRender: function(p_sType, p_aArgs, p_oSubmenu) { - - var oParentMenu = p_oSubmenu.parent.parent, - - oConfig = { - - constraintoviewport: - oParentMenu.cfg.getProperty("constraintoviewport"), - - xy: [0,0], - - clicktohide: oParentMenu.cfg.getProperty("clicktohide"), - - effect: oParentMenu.cfg.getProperty("effect"), - - showdelay: oParentMenu.cfg.getProperty("showdelay"), - - hidedelay: oParentMenu.cfg.getProperty("hidedelay"), - - submenuhidedelay: oParentMenu.cfg.getProperty("submenuhidedelay"), - - classname: oParentMenu.cfg.getProperty("classname") - - }; - - - /* - Only sync the "iframe" configuration property if the parent - menu's "position" configuration is the same. - */ - - if( - this.cfg.getProperty("position") == - oParentMenu.cfg.getProperty("position") - ) { - - oConfig.iframe = oParentMenu.cfg.getProperty("iframe"); - - } - - - p_oSubmenu.cfg.applyConfig(oConfig); - - - if(!this.lazyLoad) { - - var oLI = this.parent.element; - - if(this.element.parentNode == oLI) { - - this.render(); - - } - else { - - this.render(oLI); - - } - - } - -}, - - -/** -* @method _onSubmenuBeforeShow -* @description "beforeshow" event handler for a submenu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that -* subscribed to the event. -*/ -_onSubmenuBeforeShow: function(p_sType, p_aArgs, p_oSubmenu) { - - var oParent = this.parent, - aAlignment = oParent.parent.cfg.getProperty("submenualignment"); - - this.cfg.setProperty( - "context", - [oParent.element, aAlignment[0], aAlignment[1]] - ); - - - var nScrollTop = oParent.parent.body.scrollTop; - - if( - (this.browser == "gecko" || this.browser == "safari") - && nScrollTop > 0 - ) { - - this.cfg.setProperty("y", (this.cfg.getProperty("y") - nScrollTop)); - - } - -}, - - -/** -* @method _onSubmenuShow -* @description "show" event handler for a submenu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that -* subscribed to the event. -*/ -_onSubmenuShow: function(p_sType, p_aArgs, p_oSubmenu) { - - var oParent = this.parent; - - oParent.submenuIndicator.firstChild.nodeValue = - oParent.EXPANDED_SUBMENU_INDICATOR_TEXT; - -}, - - -/** -* @method _onSubmenuHide -* @description "hide" Custom Event handler for a submenu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that -* subscribed to the event. -*/ -_onSubmenuHide: function(p_sType, p_aArgs, p_oSubmenu) { - - var oParent = this.parent; - - oParent.submenuIndicator.firstChild.nodeValue = - oParent.COLLAPSED_SUBMENU_INDICATOR_TEXT; - -}, - - -/** -* @method _onMenuItemFocus -* @description "focus" event handler for the menu's items. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item -* that fired the event. -*/ -_onMenuItemFocus: function(p_sType, p_aArgs, p_oItem) { - - this.activeItem = p_oItem; - -}, - - -/** -* @method _onMenuItemBlur -* @description "blur" event handler for the menu's items. -* @private -* @param {String} p_sType String representing the name of the event -* that was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onMenuItemBlur: function(p_sType, p_aArgs) { - - this.activeItem = null; - -}, - - -/** -* @method _onMenuItemConfigChange -* @description "configchange" event handler for the menu's items. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item -* that fired the event. -*/ -_onMenuItemConfigChange: function(p_sType, p_aArgs, p_oItem) { - - var sProperty = p_aArgs[0][0]; - - switch(sProperty) { - - case "submenu": - - var oSubmenu = p_aArgs[0][1]; - - if(oSubmenu) { - - this._configureSubmenu(p_oItem); - - } - - break; - - case "text": - case "helptext": - - /* - A change to an item's "text" or "helptext" - configuration properties requires the width of the parent - menu to be recalculated. - */ - - if(this.element.style.width) { - - var sWidth = this._getOffsetWidth() + "px"; - - Dom.setStyle(this.element, "width", sWidth); - - } - - break; - - } - -}, - - - -// Public event handlers for configuration properties - - -/** -* @method enforceConstraints -* @description The default event handler executed when the moveEvent is fired, -* if the "constraintoviewport" configuration property is set to true. -* @param {String} type The name of the event that was fired. -* @param {Array} args Collection of arguments sent when the -* event was fired. -* @param {Array} obj Array containing the current Menu instance -* and the item that fired the event. -*/ -enforceConstraints: function(type, args, obj) { - - var oConfig = this.cfg, - pos = args[0], - - x = pos[0], - y = pos[1], - - offsetHeight = this.element.offsetHeight, - offsetWidth = this.element.offsetWidth, - - viewPortWidth = YAHOO.util.Dom.getViewportWidth(), - viewPortHeight = YAHOO.util.Dom.getViewportHeight(), - - scrollX = Math.max( - document.documentElement.scrollLeft, - document.body.scrollLeft - ), - - scrollY = Math.max( - document.documentElement.scrollTop, - document.body.scrollTop - ), - - nPadding = ( - this.parent && - this.parent.parent instanceof YAHOO.widget.MenuBar - ) ? 0 : 10, - - topConstraint = scrollY + nPadding, - leftConstraint = scrollX + nPadding, - bottomConstraint = scrollY + viewPortHeight - offsetHeight - nPadding, - rightConstraint = scrollX + viewPortWidth - offsetWidth - nPadding, - - aContext = oConfig.getProperty("context"), - oContextElement = aContext ? aContext[0] : null; - - - if (x < 10) { - - x = leftConstraint; - - } else if ((x + offsetWidth) > viewPortWidth) { - - if( - oContextElement && - ((x - oContextElement.offsetWidth) > offsetWidth) - ) { - - x = (x - (oContextElement.offsetWidth + offsetWidth)); - - } - else { - - x = rightConstraint; - - } - - } - - if (y < 10) { - - y = topConstraint; - - } else if (y > bottomConstraint) { - - if(oContextElement && (y > offsetHeight)) { - - y = ((y + oContextElement.offsetHeight) - offsetHeight); - - } - else { - - y = bottomConstraint; - - } - - } - - oConfig.setProperty("x", x, true); - oConfig.setProperty("y", y, true); - oConfig.setProperty("xy", [x,y], true); - -}, - - -/** -* @method configVisible -* @description Event handler for when the "visible" configuration property -* the menu changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -configVisible: function(p_sType, p_aArgs, p_oMenu) { - - if(this.cfg.getProperty("position") == "dynamic") { - - YAHOO.widget.Menu.superclass.configVisible.call( - this, - p_sType, - p_aArgs, - p_oMenu - ); - - } - else { - - var bVisible = p_aArgs[0], - sDisplay = Dom.getStyle(this.element, "display"); - - if(bVisible) { - - if(sDisplay != "block") { - this.beforeShowEvent.fire(); - Dom.setStyle(this.element, "display", "block"); - this.showEvent.fire(); - } - - } - else { - - if(sDisplay == "block") { - this.beforeHideEvent.fire(); - Dom.setStyle(this.element, "display", "none"); - this.hideEvent.fire(); - } - - } - - } - -}, - - -/** -* @method configPosition -* @description Event handler for when the "position" configuration property -* of the menu changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -configPosition: function(p_sType, p_aArgs, p_oMenu) { - - var sCSSPosition = p_aArgs[0] == "static" ? "static" : "absolute", - oCfg = this.cfg; - - Dom.setStyle(this.element, "position", sCSSPosition); - - - if(sCSSPosition == "static") { - - /* - Remove the iframe for statically positioned menus since it will - intercept mouse events. - */ - - oCfg.setProperty("iframe", false); - - - // Statically positioned menus are visible by default - - Dom.setStyle(this.element, "display", "block"); - - oCfg.setProperty("visible", true); - - } - else { - - /* - Even though the "visible" property is queued to - "false" by default, we need to set the "visibility" property to - "hidden" since Overlay's "configVisible" implementation checks the - element's "visibility" style property before deciding whether - or not to show an Overlay instance. - */ - - Dom.setStyle(this.element, "visibility", "hidden"); - - } - - - if(sCSSPosition == "absolute") { - - var nZIndex = oCfg.getProperty("zindex"); - - if(!nZIndex || nZIndex === 0) { - - nZIndex = this.parent ? - (this.parent.parent.cfg.getProperty("zindex") + 1) : 1; - - oCfg.setProperty("zindex", nZIndex); - - } - - } - -}, - - -/** -* @method configIframe -* @description Event handler for when the "iframe" configuration property of -* the menu changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -configIframe: function(p_sType, p_aArgs, p_oMenu) { - - if(this.cfg.getProperty("position") == "dynamic") { - - YAHOO.widget.Menu.superclass.configIframe.call( - this, - p_sType, - p_aArgs, - p_oMenu - ); - - } - -}, - - -/** -* @method configHideDelay -* @description Event handler for when the "hidedelay" configuration property -* of the menu changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -configHideDelay: function(p_sType, p_aArgs, p_oMenu) { - - var nHideDelay = p_aArgs[0], - oMouseOutEvent = this.mouseOutEvent, - oMouseOverEvent = this.mouseOverEvent, - oKeyDownEvent = this.keyDownEvent; - - if(nHideDelay > 0) { - - /* - Only assign event handlers once. This way the user change - the value for the hidedelay as many times as they want. - */ - - if(!this._bHideDelayEventHandlersAssigned) { - - oMouseOutEvent.subscribe(this._execHideDelay, true); - oMouseOverEvent.subscribe(this._cancelHideDelay, this, true); - oKeyDownEvent.subscribe(this._cancelHideDelay, this, true); - - this._bHideDelayEventHandlersAssigned = true; - - } - - } - else { - - oMouseOutEvent.unsubscribe(this._execHideDelay, this); - oMouseOverEvent.unsubscribe(this._cancelHideDelay, this); - oKeyDownEvent.unsubscribe(this._cancelHideDelay, this); - - this._bHideDelayEventHandlersAssigned = false; - - } - -}, - - -/** -* @method configContainer -* @description Event handler for when the "container" configuration property -of the menu changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -configContainer: function(p_sType, p_aArgs, p_oMenu) { - - var oElement = p_aArgs[0]; - - if(typeof oElement == 'string') { - - this.cfg.setProperty( - "container", - document.getElementById(oElement), - true - ); - - } - -}, - - -/** -* @method configMaxHeight -* @description Event handler for when the "maxheight" configuration property of -* a Menu changes. -* @param {String} p_sType The name of the event that was fired. -* @param {Array} p_aArgs Collection of arguments sent when the event -* was fired. -* @param {YAHOO.widget.Menu} p_oMenu The Menu instance fired -* the event. -*/ -configMaxHeight: function(p_sType, p_aArgs, p_oMenu) { - - var nMaxHeight = p_aArgs[0], - oBody = this.body, - oHeader = this.header, - oFooter = this.footer, - fnMouseOver = this._onScrollTargetMouseOver, - fnMouseOut = this._onScrollTargetMouseOut; - - - if((nMaxHeight > 0) && (oBody.offsetHeight > nMaxHeight)) { - - if(!this.cfg.getProperty("width")) { - - this._setWidth(); - - } - - if(!oHeader && !oFooter) { - - this.setHeader(" "); - this.setFooter(" "); - - oHeader = this.header; - oFooter = this.footer; - - Dom.addClass(oHeader, "topscrollbar"); - Dom.addClass(oFooter, "bottomscrollbar"); - - this.element.insertBefore(oHeader, oBody); - this.element.appendChild(oFooter); - - Event.addListener(oHeader, "mouseover", fnMouseOver, this, true); - Event.addListener(oHeader, "mouseout", fnMouseOut, this, true); - Event.addListener(oFooter, "mouseover", fnMouseOver, this, true); - Event.addListener(oFooter, "mouseout", fnMouseOut, this, true); - - } - - var nHeight = - - ( - nMaxHeight - - (this.footer.offsetHeight + this.header.offsetHeight) - ); - - Dom.setStyle(oBody, "height", (nHeight + "px")); - Dom.setStyle(oBody, "overflow", "hidden"); - - } - else if(oHeader && oFooter) { - - Dom.setStyle(oBody, "height", "auto"); - Dom.setStyle(oBody, "overflow", "visible"); - - Event.removeListener(oHeader, "mouseover", fnMouseOver); - Event.removeListener(oHeader, "mouseout", fnMouseOut); - Event.removeListener(oFooter, "mouseover", fnMouseOver); - Event.removeListener(oFooter, "mouseout", fnMouseOut); - - this.element.removeChild(oHeader); - this.element.removeChild(oFooter); - - this.header = null; - this.footer = null; - - } - -}, - - -/** -* @method configClassName -* @description Event handler for when the "classname" configuration property of -* a menu changes. -* @param {String} p_sType The name of the event that was fired. -* @param {Array} p_aArgs Collection of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu The Menu instance fired the event. -*/ -configClassName: function(p_sType, p_aArgs, p_oMenu) { - - var sClassName = p_aArgs[0]; - - if(this._sClassName) { - - Dom.removeClass(this.element, this._sClassName); - - } - - Dom.addClass(this.element, sClassName); - this._sClassName = sClassName; - -}, - - -// Public methods - - -/** -* @method initEvents -* @description Initializes the custom events for the menu. -*/ -initEvents: function() { - - YAHOO.widget.Menu.superclass.initEvents.call(this); - - // Create custom events - - var CustomEvent = YAHOO.util.CustomEvent; - - this.mouseOverEvent = new CustomEvent("mouseOverEvent", this); - this.mouseOutEvent = new CustomEvent("mouseOutEvent", this); - this.mouseDownEvent = new CustomEvent("mouseDownEvent", this); - this.mouseUpEvent = new CustomEvent("mouseUpEvent", this); - this.clickEvent = new CustomEvent("clickEvent", this); - this.keyPressEvent = new CustomEvent("keyPressEvent", this); - this.keyDownEvent = new CustomEvent("keyDownEvent", this); - this.keyUpEvent = new CustomEvent("keyUpEvent", this); - this.itemAddedEvent = new CustomEvent("itemAddedEvent", this); - this.itemRemovedEvent = new CustomEvent("itemRemovedEvent", this); - -}, - - -/** -* @method getRoot -* @description Finds the menu's root menu. -*/ -getRoot: function() { - - var oItem = this.parent; - - if(oItem) { - - var oParentMenu = oItem.parent; - - return oParentMenu ? oParentMenu.getRoot() : this; - - } - else { - - return this; - - } - -}, - - -/** -* @method toString -* @description Returns a string representing the menu. -* @return {String} -*/ -toString: function() { - - return ("Menu " + this.id); - -}, - - -/** -* @method setItemGroupTitle -* @description Sets the title of a group of menu items. -* @param {String} p_sGroupTitle String specifying the title of the group. -* @param {Number} p_nGroupIndex Optional. Number specifying the group to which -* the title belongs. -*/ -setItemGroupTitle: function(p_sGroupTitle, p_nGroupIndex) { - - if(typeof p_sGroupTitle == "string" && p_sGroupTitle.length > 0) { - - var nGroupIndex = typeof p_nGroupIndex == "number" ? p_nGroupIndex : 0, - oTitle = this._aGroupTitleElements[nGroupIndex]; - - - if(oTitle) { - - oTitle.innerHTML = p_sGroupTitle; - - } - else { - - oTitle = document.createElement(this.GROUP_TITLE_TAG_NAME); - - oTitle.innerHTML = p_sGroupTitle; - - this._aGroupTitleElements[nGroupIndex] = oTitle; - - } - - - var i = this._aGroupTitleElements.length - 1, - nFirstIndex; - - do { - - if(this._aGroupTitleElements[i]) { - - Dom.removeClass(this._aGroupTitleElements[i], "first-of-type"); - - nFirstIndex = i; - - } - - } - while(i--); - - - if(nFirstIndex !== null) { - - Dom.addClass( - this._aGroupTitleElements[nFirstIndex], - "first-of-type" - ); - - } - - } - -}, - - - -/** -* @method addItem -* @description Appends an item to the menu. -* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem -* instance to be added to the menu. -* @param {String} p_oItem String specifying the text of the item to be added -* to the menu. -* @param {Object} p_oItem Object literal containing a set of menu item -* configuration properties. -* @param {Number} p_nGroupIndex Optional. Number indicating the group to -* which the item belongs. -* @return {YAHOO.widget.MenuItem} -*/ -addItem: function(p_oItem, p_nGroupIndex) { - - if(p_oItem) { - - return this._addItemToGroup(p_nGroupIndex, p_oItem); - - } - -}, - - -/** -* @method addItems -* @description Adds an array of items to the menu. -* @param {Array} p_aItems Array of items to be added to the menu. The array -* can contain strings specifying the text for each item to be created, object -* literals specifying each of the menu item configuration properties, -* or MenuItem instances. -* @param {Number} p_nGroupIndex Optional. Number specifying the group to -* which the items belongs. -* @return {Array} -*/ -addItems: function(p_aItems, p_nGroupIndex) { - - if(Lang.isArray(p_aItems)) { - - var nItems = p_aItems.length, - aItems = [], - oItem; - - - for(var i=0; i 0) { - - var i = nItems - 1, - oItem, - oSubmenu; - - do { - - oItem = aItems[i]; - - if(oItem) { - - oSubmenu = oItem.cfg.getProperty("submenu"); - - if(oSubmenu) { - - this.cfg.configChangedEvent.unsubscribe( - this._onParentMenuConfigChange, - oSubmenu - ); - - this.renderEvent.unsubscribe( - this._onParentMenuRender, - oSubmenu - ); - - } - - oItem.destroy(); - - } - - } - while(i--); - - } - - - if(oHeader) { - - Event.purgeElement(oHeader); - oElement.removeChild(oHeader); - - } - - - if(oFooter) { - - Event.purgeElement(oFooter); - oElement.removeChild(oFooter); - } - - - if(oBody) { - - Event.purgeElement(oBody); - - oBody.innerHTML = ""; - - } - - - this._aItemGroups = []; - this._aListElements = []; - this._aGroupTitleElements = []; - -}, - - -/** -* @method destroy -* @description Removes the menu's <div> element -* (and accompanying child nodes) from the document. -*/ -destroy: function() { - - // Remove all DOM event listeners - - Event.purgeElement(this.element); - - - // Remove Custom Event listeners - - this.mouseOverEvent.unsubscribeAll(); - this.mouseOutEvent.unsubscribeAll(); - this.mouseDownEvent.unsubscribeAll(); - this.mouseUpEvent.unsubscribeAll(); - this.clickEvent.unsubscribeAll(); - this.keyPressEvent.unsubscribeAll(); - this.keyDownEvent.unsubscribeAll(); - this.keyUpEvent.unsubscribeAll(); - this.itemAddedEvent.unsubscribeAll(); - this.itemRemovedEvent.unsubscribeAll(); - - YAHOO.widget.Module.textResizeEvent.unsubscribe(this._onTextResize, this); - - - // Remove all items - - this.clearContent(); - - - this._aItemGroups = null; - this._aListElements = null; - this._aGroupTitleElements = null; - - - // Continue with the superclass implementation of this method - - YAHOO.widget.Menu.superclass.destroy.call(this); - - this.logger.log("Destroyed."); - -}, - - -/** -* @method setInitialFocus -* @description Sets focus to the menu's first enabled item. -*/ -setInitialFocus: function() { - - var oItem = this._getFirstEnabledItem(); - - if(oItem) { - - oItem.focus(); - } - -}, - - -/** -* @method setInitialSelection -* @description Sets the "selected" configuration property of the menu's first -* enabled item to "true." -*/ -setInitialSelection: function() { - - var oItem = this._getFirstEnabledItem(); - - if(oItem) { - - oItem.cfg.setProperty("selected", true); - } - -}, - - -/** -* @method clearActiveItem -* @description Sets the "selected" configuration property of the menu's active -* item to "false" and hides the item's submenu. -* @param {Boolean} p_bBlur Boolean indicating if the menu's active item -* should be blurred. -*/ -clearActiveItem: function(p_bBlur) { - - if(this.cfg.getProperty("showdelay") > 0) { - - this._cancelShowDelay(); - - } - - - var oActiveItem = this.activeItem; - - if(oActiveItem) { - - var oConfig = oActiveItem.cfg; - - oConfig.setProperty("selected", false); - - var oSubmenu = oConfig.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.hide(); - - } - - if(p_bBlur) { - - oActiveItem.blur(); - - } - - } - -}, - - -/** -* @description Initializes the class's configurable properties which can be -* changed using the menu's Config object ("cfg"). -* @method initDefaultConfig -*/ -initDefaultConfig: function() { - - YAHOO.widget.Menu.superclass.initDefaultConfig.call(this); - - var oConfig = this.cfg; - - // Add configuration attributes - - /* - Change the default value for the "visible" configuration - property to "false" by re-adding the property. - */ - - /** - * @config visible - * @description Boolean indicating whether or not the menu is visible. If - * the menu's "position" configuration property is set to "dynamic" (the - * default), this property toggles the menu's <div> - * element's "visibility" style property between "visible" (true) or - * "hidden" (false). If the menu's "position" configuration property is - * set to "static" this property toggles the menu's - * <div> element's "display" style property - * between "block" (true) or "none" (false). - * @default false - * @type Boolean - */ - oConfig.addProperty( - "visible", - { - value:false, - handler:this.configVisible, - validator:this.cfg.checkBoolean - } - ); - - - /* - Change the default value for the "constraintoviewport" configuration - property to "true" by re-adding the property. - */ - - /** - * @config constraintoviewport - * @description Boolean indicating if the menu will try to remain inside - * the boundaries of the size of viewport. - * @default true - * @type Boolean - */ - oConfig.addProperty( - "constraintoviewport", - { - value:true, - handler:this.configConstrainToViewport, - validator:this.cfg.checkBoolean, - supercedes:["iframe","x","y","xy"] - } - ); - - - /** - * @config position - * @description String indicating how a menu should be positioned on the - * screen. Possible values are "static" and "dynamic." Static menus are - * visible by default and reside in the normal flow of the document - * (CSS position: static). Dynamic menus are hidden by default, reside - * out of the normal flow of the document (CSS position: absolute), and - * can overlay other elements on the screen. - * @default dynamic - * @type String - */ - oConfig.addProperty( - "position", - { - value: "dynamic", - handler: this.configPosition, - validator: this._checkPosition, - supercedes: ["visible"] - } - ); - - - /** - * @config submenualignment - * @description Array defining how submenus should be aligned to their - * parent menu item. The format is: [itemCorner, submenuCorner]. By default - * a submenu's top left corner is aligned to its parent menu item's top - * right corner. - * @default ["tl","tr"] - * @type Array - */ - oConfig.addProperty("submenualignment", { value: ["tl","tr"] } ); - - - /** - * @config autosubmenudisplay - * @description Boolean indicating if submenus are automatically made - * visible when the user mouses over the menu's items. - * @default true - * @type Boolean - */ - oConfig.addProperty( - "autosubmenudisplay", - { - value: true, - validator: oConfig.checkBoolean - } - ); - - - /** - * @config showdelay - * @description Number indicating the time (in milliseconds) that should - * expire before a submenu is made visible when the user mouses over - * the menu's items. - * @default 250 - * @type Number - */ - oConfig.addProperty( - "showdelay", - { - value: 250, - validator: oConfig.checkNumber - } - ); - - - /** - * @config hidedelay - * @description Number indicating the time (in milliseconds) that should - * expire before the menu is hidden. - * @default 0 - * @type Number - */ - oConfig.addProperty( - "hidedelay", - { - value: 0, - validator: oConfig.checkNumber, - handler: this.configHideDelay, - suppressEvent: true - } - ); - - - /** - * @config submenuhidedelay - * @description Number indicating the time (in milliseconds) that should - * expire before a submenu is hidden when the user mouses out of a menu item - * heading in the direction of a submenu. The value must be greater than or - * equal to the value specified for the "showdelay" configuration property. - * @default 250 - * @type Number - */ - oConfig.addProperty( - "submenuhidedelay", - { - value: 250, - validator: oConfig.checkNumber - } - ); - - - /** - * @config clicktohide - * @description Boolean indicating if the menu will automatically be - * hidden if the user clicks outside of it. - * @default true - * @type Boolean - */ - oConfig.addProperty( - "clicktohide", - { - value: true, - validator: oConfig.checkBoolean - } - ); - - - /** - * @config container - * @description HTML element reference or string specifying the id - * attribute of the HTML element that the menu's markup should be - * rendered into. - * @type HTMLElement|String - * @default document.body - */ - oConfig.addProperty( - "container", - { - value:document.body, - handler:this.configContainer - } - ); - - - /** - * @config maxheight - * @description Defines the maximum height (in pixels) for a menu before the - * contents of the body are scrolled. - * @default 0 - * @type Number - */ - oConfig.addProperty( - "maxheight", - { - value: 0, - validator: oConfig.checkNumber, - handler: this.configMaxHeight - } - ); - - - /** - * @config classname - * @description CSS class to be applied to the menu's root - * <div> element. The specified class(es) are - * appended in addition to the default class as specified by the menu's - * CSS_CLASS_NAME constant. - * @default null - * @type String - */ - oConfig.addProperty( - "classname", - { - value: null, - handler: this.configClassName, - validator: this._checkString - } - ); - -} - -}); // END YAHOO.lang.extend - -})(); - - - -(function() { - -var Dom = YAHOO.util.Dom, - Module = YAHOO.widget.Module, - Menu = YAHOO.widget.Menu, - - m_oMenuItemElement = null, - m_oSubmenuIndicator = null, - m_oCheckedIndicator = null; - - -/** -* Creates an item for a menu. -* -* @param {String} p_oObject String specifying the text of the menu item. -* @param {HTMLLIElement} p_oObject Object specifying -* the <li> element of the menu item. -* @param {HTMLOptGroupElement} p_oObject Object -* specifying the <optgroup> element of the menu item. -* @param {HTMLOptionElement} p_oObject Object -* specifying the <option> element of the menu item. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu item. See configuration class documentation -* for more details. -* @class MenuItem -* @constructor -*/ -YAHOO.widget.MenuItem = function(p_oObject, p_oConfig) { - - if(p_oObject) { - - if(p_oConfig) { - - this.parent = p_oConfig.parent; - this.value = p_oConfig.value; - this.id = p_oConfig.id; - - } - - this.init(p_oObject, p_oConfig); - - } - -}; - - -YAHOO.widget.MenuItem.prototype = { - - // Constants - - - /** - * @property SUBMENU_INDICATOR_IMAGE_PATH - * @description String representing the path to the image to be used for the - * menu item's submenu arrow indicator. - * @default "nt/ic/ut/alt1/menuarorght8_nrm_1.gif" - * @final - * @type String - * @deprecated All submenu indicator images are applied via a CSS - * background image. See "submenuindicator" class name in menu.css. - */ - SUBMENU_INDICATOR_IMAGE_PATH: "nt/ic/ut/alt1/menuarorght8_nrm_1.gif", - - - /** - * @property SELECTED_SUBMENU_INDICATOR_IMAGE_PATH - * @description String representing the path to the image to be used for the - * submenu arrow indicator when the menu item is selected. - * @default "nt/ic/ut/alt1/menuarorght8_hov_1.gif" - * @final - * @type String - * @deprecated All submenu indicator images are applied via a CSS - * background image. See "submenuindicator" class name in menu.css. - */ - SELECTED_SUBMENU_INDICATOR_IMAGE_PATH: - "nt/ic/ut/alt1/menuarorght8_hov_1.gif", - - - /** - * @property DISABLED_SUBMENU_INDICATOR_IMAGE_PATH - * @description String representing the path to the image to be used for the - * submenu arrow indicator when the menu item is disabled. - * @default "nt/ic/ut/alt1/menuarorght8_dim_1.gif" - * @final - * @type String - * @deprecated All submenu indicator images are applied via a CSS - * background image. See "submenuindicator" class name in menu.css. - */ - DISABLED_SUBMENU_INDICATOR_IMAGE_PATH: - "nt/ic/ut/alt1/menuarorght8_dim_1.gif", - - - /** - * @property COLLAPSED_SUBMENU_INDICATOR_ALT_TEXT - * @description String representing the alt text for the image to be used - * for the submenu arrow indicator. - * @default "Collapsed. Click to expand." - * @final - * @type String - * @deprecated Use COLLAPSED_SUBMENU_INDICATOR_TEXT. - */ - COLLAPSED_SUBMENU_INDICATOR_ALT_TEXT: "Collapsed. Click to expand.", - - - /** - * @property EXPANDED_SUBMENU_INDICATOR_ALT_TEXT - * @description String representing the alt text for the image to be used - * for the submenu arrow indicator when the submenu is visible. - * @default "Expanded. Click to collapse." - * @final - * @type String - * @deprecated Use EXPANDED_SUBMENU_INDICATOR_TEXT. - */ - EXPANDED_SUBMENU_INDICATOR_ALT_TEXT: "Expanded. Click to collapse.", - - - /** - * @property DISABLED_SUBMENU_INDICATOR_ALT_TEXT - * @description String representing the alt text for the image to be used - * for the submenu arrow indicator when the menu item is disabled. - * @default "Disabled." - * @final - * @type String - * @deprecated Use DISABLED_SUBMENU_INDICATOR_TEXT. - */ - DISABLED_SUBMENU_INDICATOR_ALT_TEXT: "Disabled.", - - - /** - * @property COLLAPSED_SUBMENU_INDICATOR_TEXT - * @description String representing the text for the <em> - * element used for the submenu arrow indicator. - * @default "Submenu collapsed. Click to expand submenu." - * @final - * @type String - */ - COLLAPSED_SUBMENU_INDICATOR_TEXT: - "Submenu collapsed. Click to expand submenu.", - - - /** - * @property EXPANDED_SUBMENU_INDICATOR_TEXT - * @description String representing the text for the submenu arrow indicator - * element (<em>) when the submenu is visible. - * @default "Submenu expanded. Click to collapse submenu." - * @final - * @type String - */ - EXPANDED_SUBMENU_INDICATOR_TEXT: - "Submenu expanded. Click to collapse submenu.", - - - /** - * @property DISABLED_SUBMENU_INDICATOR_TEXT - * @description String representing the text for the submenu arrow indicator - * element (<em>) when the menu item is disabled. - * @default "Submenu collapsed. (Item disabled.)." - * @final - * @type String - */ - DISABLED_SUBMENU_INDICATOR_TEXT: "Submenu collapsed. (Item disabled.)", - - - /** - * @property CHECKED_IMAGE_PATH - * @description String representing the path to the image to be used for - * the checked state. - * @default "nt/ic/ut/bsc/menuchk8_nrm_1.gif" - * @final - * @type String - * @deprecated All checked indicator images are applied via a CSS - * background image. See "checkedindicator" class name in menu.css. - */ - CHECKED_IMAGE_PATH: "nt/ic/ut/bsc/menuchk8_nrm_1.gif", - - - /** - * @property SELECTED_CHECKED_IMAGE_PATH - * @description String representing the path to the image to be used for - * the selected checked state. - * @default "nt/ic/ut/bsc/menuchk8_hov_1.gif" - * @final - * @type String - * @deprecated All checked indicator images are applied via a CSS - * background image. See "checkedindicator" class name in menu.css. - */ - SELECTED_CHECKED_IMAGE_PATH: "nt/ic/ut/bsc/menuchk8_hov_1.gif", - - - /** - * @property DISABLED_CHECKED_IMAGE_PATH - * @description String representing the path to the image to be used for - * the disabled checked state. - * @default "nt/ic/ut/bsc/menuchk8_dim_1.gif" - * @final - * @type String - * @deprecated All checked indicator images are applied via a CSS - * background image. - */ - DISABLED_CHECKED_IMAGE_PATH: "nt/ic/ut/bsc/menuchk8_dim_1.gif", - - - /** - * @property CHECKED_IMAGE_ALT_TEXT - * @description String representing the alt text for the image to be used - * for the checked image. - * @default "Checked." - * @final - * @type String - * @deprecated Use CHECKED_TEXT. - */ - CHECKED_IMAGE_ALT_TEXT: "Checked.", - - - /** - * @property DISABLED_CHECKED_IMAGE_ALT_TEXT - * @description String representing the alt text for the image to be used - * for the checked image when the item is disabled. - * @default "Checked. (Item disabled.)" - * @final - * @type String - * @deprecated Use DISABLED_CHECKED_TEXT. - */ - DISABLED_CHECKED_IMAGE_ALT_TEXT: "Checked. (Item disabled.)", - - - /** - * @property CHECKED_TEXT - * @description String representing the text to be used for the checked - * indicator element (<em>). - * @default "Checked." - * @final - * @type String - */ - CHECKED_TEXT: "Menu item checked.", - - - /** - * @property DISABLED_CHECKED_TEXT - * @description String representing the text to be used for the checked - * indicator element (<em>) when the menu item - * is disabled. - * @default "Checked. (Item disabled.)" - * @final - * @type String - */ - DISABLED_CHECKED_TEXT: "Checked. (Item disabled.)", - - - /** - * @property CSS_CLASS_NAME - * @description String representing the CSS class(es) to be applied to the - * <li> element of the menu item. - * @default "yuimenuitem" - * @final - * @type String - */ - CSS_CLASS_NAME: "yuimenuitem", - - - /** - * @property SUBMENU_TYPE - * @description Object representing the type of menu to instantiate and - * add when parsing the child nodes of the menu item's source HTML element. - * @final - * @type YAHOO.widget.Menu - */ - SUBMENU_TYPE: null, - - - /** - * @property IMG_ROOT - * @description String representing the prefix path to use for - * non-secure images. - * @default "http://us.i1.yimg.com/us.yimg.com/i/" - * @type String - * @deprecated All menu item images are now applied via CSS - * background images. - */ - IMG_ROOT: "http://us.i1.yimg.com/us.yimg.com/i/", - - - /** - * @property IMG_ROOT_SSL - * @description String representing the prefix path to use for securely - * served images. - * @default "https://a248.e.akamai.net/sec.yimg.com/i/" - * @type String - * @deprecated All menu item images are now applied via CSS - * background images. - */ - IMG_ROOT_SSL: "https://a248.e.akamai.net/sec.yimg.com/i/", - - - - // Private member variables - - - /** - * @property _oAnchor - * @description Object reference to the menu item's - * <a> element. - * @default null - * @private - * @type HTMLAnchorElement - */ - _oAnchor: null, - - - /** - * @property _oText - * @description Object reference to the menu item's text node. - * @default null - * @private - * @type TextNode - */ - _oText: null, - - - /** - * @property _oHelpTextEM - * @description Object reference to the menu item's help text - * <em> element. - * @default null - * @private - * @type HTMLElement - */ - _oHelpTextEM: null, - - - /** - * @property _oSubmenu - * @description Object reference to the menu item's submenu. - * @default null - * @private - * @type YAHOO.widget.Menu - */ - _oSubmenu: null, - - - /** - * @property _checkImage - * @description Object reference to the menu item's checkmark image. - * @default null - * @private - * @type HTMLImageElement - * @deprecated Use _oCheckedIndicator. - */ - _checkImage: null, - - - /** - * @property _oCheckedIndicator - * @description Object reference to the menu item's checkmark image. - * @default HTMLElement - * @private - * @type HTMLElement - */ - _oCheckedIndicator: null, - - - /** - * @property _oOnclickAttributeValue - * @description Object reference to the menu item's current value for the - * "onclick" configuration attribute. - * @default null - * @private - * @type Object - */ - _oOnclickAttributeValue: null, - - - /** - * @property _sClassName - * @description The current value of the "classname" configuration attribute. - * @default null - * @private - * @type String - */ - _sClassName: null, - - - - // Public properties - - - /** - * @property constructor - * @description Object reference to the menu item's constructor function. - * @default YAHOO.widget.MenuItem - * @type YAHOO.widget.MenuItem - */ - constructor: YAHOO.widget.MenuItem, - - - /** - * @property imageRoot - * @description String representing the root path for all of the menu - * item's images. - * @type String - * @deprecated All menu item images are now applied via CSS - * background images. - */ - imageRoot: null, - - - /** - * @property isSecure - * @description Boolean representing whether or not the current browsing - * context is secure (HTTPS). - * @type Boolean - * @deprecated All menu item images are now applied via CSS - * background images. - */ - isSecure: Module.prototype.isSecure, - - - /** - * @property index - * @description Number indicating the ordinal position of the menu item in - * its group. - * @default null - * @type Number - */ - index: null, - - - /** - * @property groupIndex - * @description Number indicating the index of the group to which the menu - * item belongs. - * @default null - * @type Number - */ - groupIndex: null, - - - /** - * @property parent - * @description Object reference to the menu item's parent menu. - * @default null - * @type YAHOO.widget.Menu - */ - parent: null, - - - /** - * @property element - * @description Object reference to the menu item's - * <li> element. - * @default HTMLLIElement - * @type HTMLLIElement - */ - element: null, - - - /** - * @property srcElement - * @description Object reference to the HTML element (either - * <li>, <optgroup> or - * <option>) used create the menu item. - * @default HTMLLIElement|HTMLOptGroupElement|HTMLOptionElement - * @type HTMLLIElement| - * HTMLOptGroupElement|HTMLOptionElement - */ - srcElement: null, - - - /** - * @property value - * @description Object reference to the menu item's value. - * @default null - * @type Object - */ - value: null, - - - /** - * @property submenuIndicator - * @description Object reference to the <em> element - * used to create the submenu indicator for the menu item. - * @default HTMLElement - * @type HTMLElement - */ - submenuIndicator: null, - - - /** - * @property browser - * @description String representing the browser. - * @type String - */ - browser: Module.prototype.browser, - - - /** - * @property id - * @description Id of the menu item's root <li> - * element. This property should be set via the constructor using the - * configuration object literal. If an id is not specified, then one will - * be created using the "generateId" method of the Dom utility. - * @default null - * @type String - */ - id: null, - - - - // Events - - - /** - * @event destroyEvent - * @description Fires when the menu item's <li> - * element is removed from its parent <ul> element. - * @type YAHOO.util.CustomEvent - */ - destroyEvent: null, - - - /** - * @event mouseOverEvent - * @description Fires when the mouse has entered the menu item. Passes - * back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - mouseOverEvent: null, - - - /** - * @event mouseOutEvent - * @description Fires when the mouse has left the menu item. Passes back - * the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - mouseOutEvent: null, - - - /** - * @event mouseDownEvent - * @description Fires when the user mouses down on the menu item. Passes - * back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - mouseDownEvent: null, - - - /** - * @event mouseUpEvent - * @description Fires when the user releases a mouse button while the mouse - * is over the menu item. Passes back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - mouseUpEvent: null, - - - /** - * @event clickEvent - * @description Fires when the user clicks the on the menu item. Passes - * back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - clickEvent: null, - - - /** - * @event keyPressEvent - * @description Fires when the user presses an alphanumeric key when the - * menu item has focus. Passes back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - keyPressEvent: null, - - - /** - * @event keyDownEvent - * @description Fires when the user presses a key when the menu item has - * focus. Passes back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - keyDownEvent: null, - - - /** - * @event keyUpEvent - * @description Fires when the user releases a key when the menu item has - * focus. Passes back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - keyUpEvent: null, - - - /** - * @event focusEvent - * @description Fires when the menu item receives focus. - * @type YAHOO.util.CustomEvent - */ - focusEvent: null, - - - /** - * @event blurEvent - * @description Fires when the menu item loses the input focus. - * @type YAHOO.util.CustomEvent - */ - blurEvent: null, - - - /** - * @method init - * @description The MenuItem class's initialization method. This method is - * automatically called by the constructor, and sets up all DOM references - * for pre-existing markup, and creates required markup if it is not - * already present. - * @param {String} p_oObject String specifying the text of the menu item. - * @param {HTMLLIElement} p_oObject Object specifying - * the <li> element of the menu item. - * @param {HTMLOptGroupElement} p_oObject Object - * specifying the <optgroup> element of the menu item. - * @param {HTMLOptionElement} p_oObject Object - * specifying the <option> element of the menu item. - * @param {Object} p_oConfig Optional. Object literal specifying the - * configuration for the menu item. See configuration class documentation - * for more details. - */ - init: function(p_oObject, p_oConfig) { - - - if(!this.SUBMENU_TYPE) { - - this.SUBMENU_TYPE = Menu; - - } - - - // Create the config object - - this.cfg = new YAHOO.util.Config(this); - - this.initDefaultConfig(); - - var oConfig = this.cfg; - - - if(this._checkString(p_oObject)) { - - this._createRootNodeStructure(); - - oConfig.setProperty("text", p_oObject); - - } - else if(this._checkDOMNode(p_oObject)) { - - switch(p_oObject.tagName.toUpperCase()) { - - case "OPTION": - - this._createRootNodeStructure(); - - oConfig.setProperty("text", p_oObject.text); - - this.srcElement = p_oObject; - - break; - - case "OPTGROUP": - - this._createRootNodeStructure(); - - oConfig.setProperty("text", p_oObject.label); - - this.srcElement = p_oObject; - - this._initSubTree(); - - break; - - case "LI": - - // Get the anchor node (if it exists) - - var oAnchor = this._getFirstElement(p_oObject, "A"), - sURL = "#", - sTarget, - sText; - - - // Capture the "text" and/or the "URL" - - if(oAnchor) { - - sURL = oAnchor.getAttribute("href"); - sTarget = oAnchor.getAttribute("target"); - - if(oAnchor.innerText) { - - sText = oAnchor.innerText; - - } - else { - - var oRange = oAnchor.ownerDocument.createRange(); - - oRange.selectNodeContents(oAnchor); - - sText = oRange.toString(); - - } - - } - else { - - var oText = p_oObject.firstChild; - - sText = oText.nodeValue; - - oAnchor = document.createElement("a"); - - oAnchor.setAttribute("href", sURL); - - p_oObject.replaceChild(oAnchor, oText); - - oAnchor.appendChild(oText); - - } - - - this.srcElement = p_oObject; - this.element = p_oObject; - this._oAnchor = oAnchor; - - - // Check if emphasis has been applied to the MenuItem - - var oEmphasisNode = this._getFirstElement(oAnchor), - bEmphasis = false, - bStrongEmphasis = false; - - if(oEmphasisNode) { - - // Set a reference to the text node - - this._oText = oEmphasisNode.firstChild; - - switch(oEmphasisNode.tagName.toUpperCase()) { - - case "EM": - - bEmphasis = true; - - break; - - case "STRONG": - - bStrongEmphasis = true; - - break; - - } - - } - else { - - // Set a reference to the text node - - this._oText = oAnchor.firstChild; - - } - - - /* - Set these properties silently to sync up the - configuration object without making changes to the - element's DOM - */ - - oConfig.setProperty("text", sText, true); - oConfig.setProperty("url", sURL, true); - oConfig.setProperty("target", sTarget, true); - oConfig.setProperty("emphasis", bEmphasis, true); - oConfig.setProperty( - "strongemphasis", - bStrongEmphasis, - true - ); - - this._initSubTree(); - - break; - - } - - } - - - if(this.element) { - - var sId = this.element.id; - - if(!sId) { - - sId = this.id || Dom.generateId(); - - this.element.id = sId; - - } - - this.id = sId; - - - Dom.addClass(this.element, this.CSS_CLASS_NAME); - - - // Create custom events - - var CustomEvent = YAHOO.util.CustomEvent; - - this.destroyEvent = new CustomEvent("destroyEvent", this); - this.mouseOverEvent = new CustomEvent("mouseOverEvent", this); - this.mouseOutEvent = new CustomEvent("mouseOutEvent", this); - this.mouseDownEvent = new CustomEvent("mouseDownEvent", this); - this.mouseUpEvent = new CustomEvent("mouseUpEvent", this); - this.clickEvent = new CustomEvent("clickEvent", this); - this.keyPressEvent = new CustomEvent("keyPressEvent", this); - this.keyDownEvent = new CustomEvent("keyDownEvent", this); - this.keyUpEvent = new CustomEvent("keyUpEvent", this); - this.focusEvent = new CustomEvent("focusEvent", this); - this.blurEvent = new CustomEvent("blurEvent", this); - - - if(p_oConfig) { - - oConfig.applyConfig(p_oConfig); - - } - - oConfig.fireQueue(); - - - - - } - - }, - - - - // Private methods - - - /** - * @method _getFirstElement - * @description Returns an HTML element's first HTML element node. - * @private - * @param {HTMLElement} p_oElement Object - * reference specifying the element to be evaluated. - * @param {String} p_sTagName Optional. String specifying the tagname of - * the element to be retrieved. - * @return {HTMLElement} - */ - _getFirstElement: function(p_oElement, p_sTagName) { - - var oFirstChild = p_oElement.firstChild, - oElement; - - if(oFirstChild) { - - if(oFirstChild.nodeType == 1) { - - oElement = oFirstChild; - - } - else { - - var oNextSibling = oFirstChild.nextSibling; - - if(oNextSibling && oNextSibling.nodeType == 1) { - - oElement = oNextSibling; - - } - - } - - } - - - if(p_sTagName) { - - return (oElement && oElement.tagName.toUpperCase() == p_sTagName) ? - oElement : false; - - } - - return oElement; - - }, - - - /** - * @method _checkString - * @description Determines if an object is a string. - * @private - * @param {Object} p_oObject Object to be evaluated. - * @return {Boolean} - */ - _checkString: function(p_oObject) { - - return (typeof p_oObject == "string"); - - }, - - - /** - * @method _checkDOMNode - * @description Determines if an object is an HTML element. - * @private - * @param {Object} p_oObject Object to be evaluated. - * @return {Boolean} - */ - _checkDOMNode: function(p_oObject) { - - return (p_oObject && p_oObject.tagName); - - }, - - - /** - * @method _createRootNodeStructure - * @description Creates the core DOM structure for the menu item. - * @private - */ - _createRootNodeStructure: function () { - - if(!m_oMenuItemElement) { - - m_oMenuItemElement = document.createElement("li"); - m_oMenuItemElement.innerHTML = "s"; - - } - - this.element = m_oMenuItemElement.cloneNode(true); - this._oAnchor = this.element.firstChild; - this._oText = this._oAnchor.firstChild; - - this.element.appendChild(this._oAnchor); - - }, - - - /** - * @method _initSubTree - * @description Iterates the source element's childNodes collection and uses - * the child nodes to instantiate other menus. - * @private - */ - _initSubTree: function() { - - var oSrcEl = this.srcElement, - oConfig = this.cfg; - - - if(oSrcEl.childNodes.length > 0) { - - if( - this.parent.lazyLoad && - this.parent.srcElement && - this.parent.srcElement.tagName.toUpperCase() == "SELECT" - ) { - - oConfig.setProperty( - "submenu", - { id: Dom.generateId(), itemdata: oSrcEl.childNodes } - ); - - } - else { - - var oNode = oSrcEl.firstChild, - aOptions = []; - - do { - - if(oNode && oNode.tagName) { - - switch(oNode.tagName.toUpperCase()) { - - case "DIV": - - oConfig.setProperty("submenu", oNode); - - break; - - case "OPTION": - - aOptions[aOptions.length] = oNode; - - break; - - } - - } - - } - while((oNode = oNode.nextSibling)); - - - var nOptions = aOptions.length; - - if(nOptions > 0) { - - var oMenu = new this.SUBMENU_TYPE(Dom.generateId()); - - oConfig.setProperty("submenu", oMenu); - - for(var n=0; n 0) { - - oAnchor.setAttribute("target", sTarget); - - } - else { - - oAnchor.removeAttribute("target"); - - } - - }, - - - /** - * @method configEmphasis - * @description Event handler for when the "emphasis" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configEmphasis: function(p_sType, p_aArgs, p_oItem) { - - var bEmphasis = p_aArgs[0], - oAnchor = this._oAnchor, - oText = this._oText, - oConfig = this.cfg, - oEM; - - - if(bEmphasis && oConfig.getProperty("strongemphasis")) { - - oConfig.setProperty("strongemphasis", false); - - } - - - if(oAnchor) { - - if(bEmphasis) { - - oEM = document.createElement("em"); - oEM.appendChild(oText); - - oAnchor.appendChild(oEM); - - } - else { - - oEM = this._getFirstElement(oAnchor, "EM"); - - if(oEM) { - - oAnchor.removeChild(oEM); - oAnchor.appendChild(oText); - - } - - } - - } - - }, - - - /** - * @method configStrongEmphasis - * @description Event handler for when the "strongemphasis" configuration - * property of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configStrongEmphasis: function(p_sType, p_aArgs, p_oItem) { - - var bStrongEmphasis = p_aArgs[0], - oAnchor = this._oAnchor, - oText = this._oText, - oConfig = this.cfg, - oStrong; - - if(bStrongEmphasis && oConfig.getProperty("emphasis")) { - - oConfig.setProperty("emphasis", false); - - } - - if(oAnchor) { - - if(bStrongEmphasis) { - - oStrong = document.createElement("strong"); - oStrong.appendChild(oText); - - oAnchor.appendChild(oStrong); - - } - else { - - oStrong = this._getFirstElement(oAnchor, "STRONG"); - - if(oStrong) { - - oAnchor.removeChild(oStrong); - oAnchor.appendChild(oText); - - } - - } - - } - - }, - - - /** - * @method configChecked - * @description Event handler for when the "checked" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configChecked: function(p_sType, p_aArgs, p_oItem) { - - var bChecked = p_aArgs[0], - oEl = this.element, - oConfig = this.cfg, - oEM; - - - if(bChecked) { - - if(!m_oCheckedIndicator) { - - m_oCheckedIndicator = document.createElement("em"); - m_oCheckedIndicator.innerHTML = this.CHECKED_TEXT; - m_oCheckedIndicator.className = "checkedindicator"; - - } - - oEM = m_oCheckedIndicator.cloneNode(true); - - var oSubmenu = this.cfg.getProperty("submenu"); - - if(oSubmenu && oSubmenu.element) { - - oEl.insertBefore(oEM, oSubmenu.element); - - } - else { - - oEl.appendChild(oEM); - - } - - - Dom.addClass(oEl, "checked"); - - this._oCheckedIndicator = oEM; - - if(oConfig.getProperty("disabled")) { - - oConfig.refireEvent("disabled"); - - } - - if(oConfig.getProperty("selected")) { - - oConfig.refireEvent("selected"); - - } - - } - else { - - oEM = this._oCheckedIndicator; - - Dom.removeClass(oEl, "checked"); - - if(oEM) { - - oEl.removeChild(oEM); - - } - - this._oCheckedIndicator = null; - - } - - }, - - - - /** - * @method configDisabled - * @description Event handler for when the "disabled" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configDisabled: function(p_sType, p_aArgs, p_oItem) { - - var bDisabled = p_aArgs[0], - oConfig = this.cfg, - oAnchor = this._oAnchor, - aNodes = [this.element, oAnchor], - oHelpText = this._oHelpTextEM, - oCheckedIndicator = this._oCheckedIndicator, - oSubmenuIndicator = this.submenuIndicator, - i = 1; - - - if(oHelpText) { - - i++; - aNodes[i] = oHelpText; - - } - - - if(oCheckedIndicator) { - - oCheckedIndicator.firstChild.nodeValue = bDisabled ? - this.DISABLED_CHECKED_TEXT : - this.CHECKED_TEXT; - - i++; - aNodes[i] = oCheckedIndicator; - - } - - - if(oSubmenuIndicator) { - - oSubmenuIndicator.firstChild.nodeValue = bDisabled ? - this.DISABLED_SUBMENU_INDICATOR_TEXT : - this.COLLAPSED_SUBMENU_INDICATOR_TEXT; - - i++; - aNodes[i] = oSubmenuIndicator; - - } - - - if(bDisabled) { - - if(oConfig.getProperty("selected")) { - - oConfig.setProperty("selected", false); - - } - - oAnchor.removeAttribute("href"); - - Dom.addClass(aNodes, "disabled"); - - } - else { - - oAnchor.setAttribute("href", oConfig.getProperty("url")); - - Dom.removeClass(aNodes, "disabled"); - - } - - }, - - - /** - * @method configSelected - * @description Event handler for when the "selected" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configSelected: function(p_sType, p_aArgs, p_oItem) { - - if(!this.cfg.getProperty("disabled")) { - - var bSelected = p_aArgs[0], - oHelpText = this._oHelpTextEM, - oSubmenuIndicator = this.submenuIndicator, - oCheckedIndicator = this._oCheckedIndicator, - aNodes = [this.element, this._oAnchor], - i = 1; - - - if(oHelpText) { - - i++; - aNodes[i] = oHelpText; - - } - - - if(oSubmenuIndicator) { - - i++; - aNodes[i] = oSubmenuIndicator; - - } - - - if(oCheckedIndicator) { - - i++; - aNodes[i] = oCheckedIndicator; - - } - - - if(bSelected) { - - Dom.addClass(aNodes, "selected"); - - } - else { - - Dom.removeClass(aNodes, "selected"); - - } - - } - - }, - - - /** - * @method configSubmenu - * @description Event handler for when the "submenu" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configSubmenu: function(p_sType, p_aArgs, p_oItem) { - - var oEl = this.element, - oSubmenu = p_aArgs[0], - oSubmenuIndicator = this.submenuIndicator, - oConfig = this.cfg, - aNodes = [this.element, this._oAnchor], - bLazyLoad = this.parent && this.parent.lazyLoad, - oMenu; - - - if(oSubmenu) { - - if(oSubmenu instanceof Menu) { - - oMenu = oSubmenu; - oMenu.parent = this; - oMenu.lazyLoad = bLazyLoad; - - } - else if( - typeof oSubmenu == "object" && - oSubmenu.id && - !oSubmenu.nodeType - ) { - - var sSubmenuId = oSubmenu.id, - oSubmenuConfig = oSubmenu; - - oSubmenuConfig.lazyload = bLazyLoad; - oSubmenuConfig.parent = this; - - oMenu = new this.SUBMENU_TYPE(sSubmenuId, oSubmenuConfig); - - - // Set the value of the property to the Menu instance - - this.cfg.setProperty("submenu", oMenu, true); - - } - else { - - oMenu = new this.SUBMENU_TYPE( - oSubmenu, - { lazyload: bLazyLoad, parent: this } - ); - - - // Set the value of the property to the Menu instance - - this.cfg.setProperty("submenu", oMenu, true); - - } - - - if(oMenu) { - - this._oSubmenu = oMenu; - - - if(!oSubmenuIndicator) { - - - if(!m_oSubmenuIndicator) { - - m_oSubmenuIndicator = document.createElement("em"); - m_oSubmenuIndicator.innerHTML = - this.COLLAPSED_SUBMENU_INDICATOR_TEXT; - m_oSubmenuIndicator.className = "submenuindicator"; - - } - - - oSubmenuIndicator = m_oSubmenuIndicator.cloneNode(true); - - - if(oMenu.element.parentNode == oEl) { - - if(this.browser == "opera") { - - oEl.appendChild(oSubmenuIndicator); - - oMenu.renderEvent.subscribe(function() { - - oSubmenuIndicator.parentNode.insertBefore( - oSubmenuIndicator, - oMenu.element - ); - - }); - - } - else { - - oEl.insertBefore(oSubmenuIndicator, oMenu.element); - - } - - } - else { - - oEl.appendChild(oSubmenuIndicator); - - } - - this.submenuIndicator = oSubmenuIndicator; - - } - - - Dom.addClass(aNodes, "hassubmenu"); - - - if(oConfig.getProperty("disabled")) { - - oConfig.refireEvent("disabled"); - - } - - if(oConfig.getProperty("selected")) { - - oConfig.refireEvent("selected"); - - } - - } - - } - else { - - Dom.removeClass(aNodes, "hassubmenu"); - - if(oSubmenuIndicator) { - - oEl.removeChild(oSubmenuIndicator); - - } - - if(this._oSubmenu) { - - this._oSubmenu.destroy(); - - } - - } - - }, - - - /** - * @method configOnClick - * @description Event handler for when the "onclick" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configOnClick: function(p_sType, p_aArgs, p_oItem) { - - var oObject = p_aArgs[0]; - - /* - Remove any existing listeners if a "click" event handler has - already been specified. - */ - - if( - this._oOnclickAttributeValue && - (this._oOnclickAttributeValue != oObject) - ) { - - this.clickEvent.unsubscribe( - this._oOnclickAttributeValue.fn, - this._oOnclickAttributeValue.obj - ); - - this._oOnclickAttributeValue = null; - - } - - - if( - !this._oOnclickAttributeValue && - typeof oObject == "object" && - typeof oObject.fn == "function" - ) { - - this.clickEvent.subscribe( - oObject.fn, - (oObject.obj || this), - oObject.scope - ); - - this._oOnclickAttributeValue = oObject; - - } - - }, - - - /** - * @method configClassName - * @description Event handler for when the "classname" configuration - * property of a menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configClassName: function(p_sType, p_aArgs, p_oItem) { - - var sClassName = p_aArgs[0]; - - if(this._sClassName) { - - Dom.removeClass(this.element, this._sClassName); - - } - - Dom.addClass(this.element, sClassName); - this._sClassName = sClassName; - - }, - - - - // Public methods - - - /** - * @method initDefaultConfig - * @description Initializes an item's configurable properties. - */ - initDefaultConfig : function() { - - var oConfig = this.cfg, - CheckBoolean = oConfig.checkBoolean; - - - // Define the configuration attributes - - /** - * @config text - * @description String specifying the text label for the menu item. - * When building a menu from existing HTML the value of this property - * will be interpreted from the menu's markup. - * @default "" - * @type String - */ - oConfig.addProperty( - "text", - { - value: "", - handler: this.configText, - validator: this._checkString, - suppressEvent: true - } - ); - - - /** - * @config helptext - * @description String specifying additional instructional text to - * accompany the text for the nenu item. - * @default null - * @type String| - * HTMLElement - */ - oConfig.addProperty("helptext", { handler: this.configHelpText }); - - - /** - * @config url - * @description String specifying the URL for the menu item's anchor's - * "href" attribute. When building a menu from existing HTML the value - * of this property will be interpreted from the menu's markup. - * @default "#" - * @type String - */ - oConfig.addProperty( - "url", - { value: "#", handler: this.configURL, suppressEvent: true } - ); - - - /** - * @config target - * @description String specifying the value for the "target" attribute - * of the menu item's anchor element. Specifying a target will - * require the user to click directly on the menu item's anchor node in - * order to cause the browser to navigate to the specified URL. - * When building a menu from existing HTML the value of this property - * will be interpreted from the menu's markup. - * @default null - * @type String - */ - oConfig.addProperty( - "target", - { handler: this.configTarget, suppressEvent: true } - ); - - - /** - * @config emphasis - * @description Boolean indicating if the text of the menu item will be - * rendered with emphasis. When building a menu from existing HTML the - * value of this property will be interpreted from the menu's markup. - * @default false - * @type Boolean - */ - oConfig.addProperty( - "emphasis", - { - value: false, - handler: this.configEmphasis, - validator: CheckBoolean, - suppressEvent: true - } - ); - - - /** - * @config strongemphasis - * @description Boolean indicating if the text of the menu item will be - * rendered with strong emphasis. When building a menu from existing - * HTML the value of this property will be interpreted from the - * menu's markup. - * @default false - * @type Boolean - */ - oConfig.addProperty( - "strongemphasis", - { - value: false, - handler: this.configStrongEmphasis, - validator: CheckBoolean, - suppressEvent: true - } - ); - - - /** - * @config checked - * @description Boolean indicating if the menu item should be rendered - * with a checkmark. - * @default false - * @type Boolean - */ - oConfig.addProperty( - "checked", - { - value: false, - handler: this.configChecked, - validator: this.cfg.checkBoolean, - suppressEvent: true, - supercedes:["disabled"] - } - ); - - - /** - * @config disabled - * @description Boolean indicating if the menu item should be disabled. - * (Disabled menu items are dimmed and will not respond to user input - * or fire events.) - * @default false - * @type Boolean - */ - oConfig.addProperty( - "disabled", - { - value: false, - handler: this.configDisabled, - validator: CheckBoolean, - suppressEvent: true - } - ); - - - /** - * @config selected - * @description Boolean indicating if the menu item should - * be highlighted. - * @default false - * @type Boolean - */ - oConfig.addProperty( - "selected", - { - value: false, - handler: this.configSelected, - validator: CheckBoolean, - suppressEvent: true - } - ); - - - /** - * @config submenu - * @description Object specifying the submenu to be appended to the - * menu item. The value can be one of the following:
    • Object - * specifying a Menu instance.
    • Object literal specifying the - * menu to be created. Format: { id: [menu id], itemdata: - * [array of values for - * items] }.
    • String specifying the id attribute - * of the <div> element of the menu.
    • - * Object specifying the <div> element of the - * menu.
    - * @default null - * @type Menu|String|Object| - * HTMLElement - */ - oConfig.addProperty("submenu", { handler: this.configSubmenu }); - - - /** - * @config onclick - * @description Object literal representing the code to be executed when - * the button is clicked. Format:
    {
    - * fn: Function, // The handler to call when - * the event fires.
    obj: Object, // An - * object to pass back to the handler.
    scope: - * Object // The object to use for the scope of the handler. - *
    }
    - * @type Object - * @default null - */ - oConfig.addProperty("onclick", { handler: this.configOnClick }); - - - /** - * @config classname - * @description CSS class to be applied to the menu item's root - * <li> element. The specified class(es) are - * appended in addition to the default class as specified by the menu - * item's CSS_CLASS_NAME constant. - * @default null - * @type String - */ - oConfig.addProperty( - "classname", - { - value: null, - handler: this.configClassName, - validator: this._checkString - } - ); - - }, - - - /** - * @method getNextEnabledSibling - * @description Finds the menu item's next enabled sibling. - * @return YAHOO.widget.MenuItem - */ - getNextEnabledSibling: function() { - - if(this.parent instanceof Menu) { - - var nGroupIndex = this.groupIndex; - - function getNextArrayItem(p_aArray, p_nStartIndex) { - - return p_aArray[p_nStartIndex] || - getNextArrayItem(p_aArray, (p_nStartIndex+1)); - - } - - - var aItemGroups = this.parent.getItemGroups(), - oNextItem; - - - if(this.index < (aItemGroups[nGroupIndex].length - 1)) { - - oNextItem = getNextArrayItem( - aItemGroups[nGroupIndex], - (this.index+1) - ); - - } - else { - - var nNextGroupIndex; - - if(nGroupIndex < (aItemGroups.length - 1)) { - - nNextGroupIndex = nGroupIndex + 1; - - } - else { - - nNextGroupIndex = 0; - - } - - var aNextGroup = getNextArrayItem(aItemGroups, nNextGroupIndex); - - // Retrieve the first menu item in the next group - - oNextItem = getNextArrayItem(aNextGroup, 0); - - } - - return ( - oNextItem.cfg.getProperty("disabled") || - oNextItem.element.style.display == "none" - ) ? - oNextItem.getNextEnabledSibling() : oNextItem; - - } - - }, - - - /** - * @method getPreviousEnabledSibling - * @description Finds the menu item's previous enabled sibling. - * @return {YAHOO.widget.MenuItem} - */ - getPreviousEnabledSibling: function() { - - if(this.parent instanceof Menu) { - - var nGroupIndex = this.groupIndex; - - function getPreviousArrayItem(p_aArray, p_nStartIndex) { - - return p_aArray[p_nStartIndex] || - getPreviousArrayItem(p_aArray, (p_nStartIndex-1)); - - } - - function getFirstItemIndex(p_aArray, p_nStartIndex) { - - return p_aArray[p_nStartIndex] ? - p_nStartIndex : - getFirstItemIndex(p_aArray, (p_nStartIndex+1)); - - } - - var aItemGroups = this.parent.getItemGroups(), - oPreviousItem; - - if( - this.index > getFirstItemIndex(aItemGroups[nGroupIndex], 0) - ) { - - oPreviousItem = - getPreviousArrayItem( - aItemGroups[nGroupIndex], - (this.index-1) - ); - - } - else { - - var nPreviousGroupIndex; - - if(nGroupIndex > getFirstItemIndex(aItemGroups, 0)) { - - nPreviousGroupIndex = nGroupIndex - 1; - - } - else { - - nPreviousGroupIndex = aItemGroups.length - 1; - - } - - var aPreviousGroup = - getPreviousArrayItem(aItemGroups, nPreviousGroupIndex); - - oPreviousItem = - getPreviousArrayItem( - aPreviousGroup, - (aPreviousGroup.length - 1) - ); - - } - - return ( - oPreviousItem.cfg.getProperty("disabled") || - oPreviousItem.element.style.display == "none" - ) ? - oPreviousItem.getPreviousEnabledSibling() : oPreviousItem; - - } - - }, - - - /** - * @method focus - * @description Causes the menu item to receive the focus and fires the - * focus event. - */ - focus: function() { - - var oParent = this.parent, - oAnchor = this._oAnchor, - oActiveItem = oParent.activeItem; - - - function setFocus() { - - try { - - oAnchor.focus(); - - } - catch(e) { - - } - - } - - - if( - !this.cfg.getProperty("disabled") && - oParent && - oParent.cfg.getProperty("visible") && - this.element.style.display != "none" - ) { - - if(oActiveItem) { - - oActiveItem.blur(); - - } - - - /* - Setting focus via a timer fixes a race condition in Firefox, IE - and Opera where the browser viewport jumps as it trys to - position and focus the menu. - */ - - window.setTimeout(setFocus, 0); - - this.focusEvent.fire(); - - } - - }, - - - /** - * @method blur - * @description Causes the menu item to lose focus and fires the - * onblur event. - */ - blur: function() { - - var oParent = this.parent; - - if( - !this.cfg.getProperty("disabled") && - oParent && - Dom.getStyle(oParent.element, "visibility") == "visible" - ) { - - this._oAnchor.blur(); - - this.blurEvent.fire(); - - } - - }, - - - /** - * @method destroy - * @description Removes the menu item's <li> element - * from its parent <ul> element. - */ - destroy: function() { - - var oEl = this.element; - - if(oEl) { - - - // If the item has a submenu, destroy it first - - var oSubmenu = this.cfg.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.destroy(); - - } - - - // Remove CustomEvent listeners - - this.mouseOverEvent.unsubscribeAll(); - this.mouseOutEvent.unsubscribeAll(); - this.mouseDownEvent.unsubscribeAll(); - this.mouseUpEvent.unsubscribeAll(); - this.clickEvent.unsubscribeAll(); - this.keyPressEvent.unsubscribeAll(); - this.keyDownEvent.unsubscribeAll(); - this.keyUpEvent.unsubscribeAll(); - this.focusEvent.unsubscribeAll(); - this.blurEvent.unsubscribeAll(); - this.cfg.configChangedEvent.unsubscribeAll(); - - - // Remove the element from the parent node - - var oParentNode = oEl.parentNode; - - if(oParentNode) { - - oParentNode.removeChild(oEl); - - this.destroyEvent.fire(); - - } - - this.destroyEvent.unsubscribeAll(); - - } - - }, - - - /** - * @method toString - * @description Returns a string representing the menu item. - * @return {String} - */ - toString: function() { - - return ("MenuItem: " + this.cfg.getProperty("text")); - - } - -}; - -})(); - - - -/** -* Creates a list of options or commands which are made visible in response to -* an HTML element's "contextmenu" event ("mousedown" for Opera). -* -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the context menu. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source for the -* context menu. -* @param {HTMLDivElement} p_oElement Object specifying the -* <div> element of the context menu. -* @param {HTMLSelectElement} p_oElement Object specifying -* the <select> element to be used as the data source for -* the context menu. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the context menu. See configuration class documentation -* for more details. -* @class ContextMenu -* @constructor -* @extends YAHOO.widget.Menu -* @namespace YAHOO.widget -*/ -YAHOO.widget.ContextMenu = function(p_oElement, p_oConfig) { - - YAHOO.widget.ContextMenu.superclass.constructor.call( - this, - p_oElement, - p_oConfig - ); - -}; - - -YAHOO.lang.extend(YAHOO.widget.ContextMenu, YAHOO.widget.Menu, { - - - -// Private properties - - -/** -* @property _oTrigger -* @description Object reference to the current value of the "trigger" -* configuration property. -* @default null -* @private -* @type String|HTMLElement|Array -*/ -_oTrigger: null, - - -/** -* @property _bCancelled -* @description Boolean indicating if the display of the context menu should -* be cancelled. -* @default false -* @private -* @type Boolean -*/ -_bCancelled: false, - - -// Public properties - - -/** -* @property contextEventTarget -* @description Object reference for the HTML element that was the target of the -* "contextmenu" DOM event ("mousedown" for Opera) that triggered the display of -* the context menu. -* @default null -* @type HTMLElement -*/ -contextEventTarget: null, - - - -// Events - - -/** -* @event triggerContextMenuEvent -* @description Custom Event wrapper for the "contextmenu" DOM event -* ("mousedown" for Opera) fired by the element(s) that trigger the display of -* the context menu. -*/ -triggerContextMenuEvent: null, - - - - - -/** -* @method init -* @description The ContextMenu class's initialization method. This method is -* automatically called by the constructor, and sets up all DOM references for -* pre-existing markup, and creates required markup if it is not already present. -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the context menu. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source for -* the context menu. -* @param {HTMLDivElement} p_oElement Object specifying the -* <div> element of the context menu. -* @param {HTMLSelectElement} p_oElement Object specifying -* the <select> element to be used as the data source for -* the context menu. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the context menu. See configuration class documentation -* for more details. -*/ -init: function(p_oElement, p_oConfig) { - - if(!this.ITEM_TYPE) { - - this.ITEM_TYPE = YAHOO.widget.ContextMenuItem; - - } - - - // Call the init of the superclass (YAHOO.widget.Menu) - - YAHOO.widget.ContextMenu.superclass.init.call(this, p_oElement); - - - this.beforeInitEvent.fire(YAHOO.widget.ContextMenu); - - - if(p_oConfig) { - - this.cfg.applyConfig(p_oConfig, true); - - } - - - this.initEvent.fire(YAHOO.widget.ContextMenu); - -}, - - -/** -* @method initEvents -* @description Initializes the custom events for the context menu. -*/ -initEvents: function() { - - YAHOO.widget.ContextMenu.superclass.initEvents.call(this); - - // Create custom events - - this.triggerContextMenuEvent = - new YAHOO.util.CustomEvent("triggerContextMenuEvent", this); - -}, - - -/** -* @method cancel -* @description Cancels the display of the context menu. -*/ -cancel: function() { - - this._bCancelled = true; - -}, - - - -// Private methods - - -/** -* @method _removeEventHandlers -* @description Removes all of the DOM event handlers from the HTML element(s) -* whose "context menu" event ("click" for Opera) trigger the display of -* the context menu. -* @private -*/ -_removeEventHandlers: function() { - - var Event = YAHOO.util.Event, - oTrigger = this._oTrigger, - bOpera = (this.browser == "opera"); - - - // Remove the event handlers from the trigger(s) - - Event.removeListener( - oTrigger, - (bOpera ? "mousedown" : "contextmenu"), - this._onTriggerContextMenu - ); - - if(bOpera) { - - Event.removeListener(oTrigger, "click", this._onTriggerClick); - - } - -}, - - - -// Private event handlers - - -/** -* @method _onTriggerClick -* @description "click" event handler for the HTML element(s) identified as the -* "trigger" for the context menu. Used to cancel default behaviors in Opera. -* @private -* @param {Event} p_oEvent Object representing the DOM event object passed back -* by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.ContextMenu} p_oMenu Object representing the context -* menu that is handling the event. -*/ -_onTriggerClick: function(p_oEvent, p_oMenu) { - - if(p_oEvent.ctrlKey) { - - YAHOO.util.Event.stopEvent(p_oEvent); - - } - -}, - - -/** -* @method _onTriggerContextMenu -* @description "contextmenu" event handler ("mousedown" for Opera) for the HTML -* element(s) that trigger the display of the context menu. -* @private -* @param {Event} p_oEvent Object representing the DOM event object passed back -* by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.ContextMenu} p_oMenu Object representing the context -* menu that is handling the event. -*/ -_onTriggerContextMenu: function(p_oEvent, p_oMenu) { - - var Event = YAHOO.util.Event; - - if(p_oEvent.type == "mousedown" && !p_oEvent.ctrlKey) { - - return; - - } - - - /* - Prevent the browser's default context menu from appearing and - stop the propagation of the "contextmenu" event so that - other ContextMenu instances are not displayed. - */ - - Event.stopEvent(p_oEvent); - - - // Hide any other ContextMenu instances that might be visible - - YAHOO.widget.MenuManager.hideVisible(); - - - this.contextEventTarget = Event.getTarget(p_oEvent); - - this.triggerContextMenuEvent.fire(p_oEvent); - - - if(!this._bCancelled) { - - // Position and display the context menu - - this.cfg.setProperty("xy", Event.getXY(p_oEvent)); - - this.show(); - - } - - this._bCancelled = false; - -}, - - - -// Public methods - - -/** -* @method toString -* @description Returns a string representing the context menu. -* @return {String} -*/ -toString: function() { - - return ("ContextMenu " + this.id); - -}, - - -/** -* @method initDefaultConfig -* @description Initializes the class's configurable properties which can be -* changed using the context menu's Config object ("cfg"). -*/ -initDefaultConfig: function() { - - YAHOO.widget.ContextMenu.superclass.initDefaultConfig.call(this); - - /** - * @config trigger - * @description The HTML element(s) whose "contextmenu" event ("mousedown" - * for Opera) trigger the display of the context menu. Can be a string - * representing the id attribute of the HTML element, an object reference - * for the HTML element, or an array of strings or HTML element references. - * @default null - * @type String|HTMLElement|Array - */ - this.cfg.addProperty("trigger", { handler: this.configTrigger }); - -}, - - -/** -* @method destroy -* @description Removes the context menu's <div> element -* (and accompanying child nodes) from the document. -*/ -destroy: function() { - - // Remove the DOM event handlers from the current trigger(s) - - this._removeEventHandlers(); - - - // Continue with the superclass implementation of this method - - YAHOO.widget.ContextMenu.superclass.destroy.call(this); - -}, - - - -// Public event handlers for configuration properties - - -/** -* @method configTrigger -* @description Event handler for when the value of the "trigger" configuration -* property changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.ContextMenu} p_oMenu Object representing the context -* menu that fired the event. -*/ -configTrigger: function(p_sType, p_aArgs, p_oMenu) { - - var Event = YAHOO.util.Event, - oTrigger = p_aArgs[0]; - - if(oTrigger) { - - /* - If there is a current "trigger" - remove the event handlers - from that element(s) before assigning new ones - */ - - if(this._oTrigger) { - - this._removeEventHandlers(); - - } - - this._oTrigger = oTrigger; - - - /* - Listen for the "mousedown" event in Opera b/c it does not - support the "contextmenu" event - */ - - var bOpera = (this.browser == "opera"); - - Event.addListener( - oTrigger, - (bOpera ? "mousedown" : "contextmenu"), - this._onTriggerContextMenu, - this, - true - ); - - - /* - Assign a "click" event handler to the trigger element(s) for - Opera to prevent default browser behaviors. - */ - - if(bOpera) { - - Event.addListener( - oTrigger, - "click", - this._onTriggerClick, - this, - true - ); - - } - - } - else { - - this._removeEventHandlers(); - - } - -} - -}); // END YAHOO.lang.extend - - - -/** -* Creates an item for a context menu. -* -* @param {String} p_oObject String specifying the text of the context menu item. -* @param {HTMLLIElement} p_oObject Object specifying the -* <li> element of the context menu item. -* @param {HTMLOptGroupElement} p_oObject Object -* specifying the <optgroup> element of the context -* menu item. -* @param {HTMLOptionElement} p_oObject Object specifying -* the <option> element of the context menu item. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the context menu item. See configuration class -* documentation for more details. -* @class ContextMenuItem -* @constructor -* @extends YAHOO.widget.MenuItem -*/ -YAHOO.widget.ContextMenuItem = function(p_oObject, p_oConfig) { - - YAHOO.widget.ContextMenuItem.superclass.constructor.call( - this, - p_oObject, - p_oConfig - ); - -}; - -YAHOO.lang.extend(YAHOO.widget.ContextMenuItem, YAHOO.widget.MenuItem, { - - -/** -* @method init -* @description The ContextMenuItem class's initialization method. This method -* is automatically called by the constructor, and sets up all DOM references -* for pre-existing markup, and creates required markup if it is not -* already present. -* @param {String} p_oObject String specifying the text of the context menu item. -* @param {HTMLLIElement} p_oObject Object specifying the -* <li> element of the context menu item. -* @param {HTMLOptGroupElement} p_oObject Object -* specifying the <optgroup> element of the context -* menu item. -* @param {HTMLOptionElement} p_oObject Object specifying -* the <option> element of the context menu item. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the context menu item. See configuration class -* documentation for more details. -*/ -init: function(p_oObject, p_oConfig) { - - if(!this.SUBMENU_TYPE) { - - this.SUBMENU_TYPE = YAHOO.widget.ContextMenu; - - } - - - /* - Call the init of the superclass (YAHOO.widget.MenuItem) - Note: We don't pass the user config in here yet - because we only want it executed once, at the lowest - subclass level. - */ - - YAHOO.widget.ContextMenuItem.superclass.init.call(this, p_oObject); - - var oConfig = this.cfg; - - if(p_oConfig) { - - oConfig.applyConfig(p_oConfig, true); - - } - - oConfig.fireQueue(); - -}, - - - -// Public methods - - -/** -* @method toString -* @description Returns a string representing the context menu item. -* @return {String} -*/ -toString: function() { - - return ("ContextMenuItem: " + this.cfg.getProperty("text")); - -} - -}); // END YAHOO.lang.extend - - - -/** -* Horizontal collection of items, each of which can contain a submenu. -* -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the menu bar. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source for the -* menu bar. -* @param {HTMLDivElement} p_oElement Object specifying -* the <div> element of the menu bar. -* @param {HTMLSelectElement} p_oElement Object -* specifying the <select> element to be used as the data -* source for the menu bar. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu bar. See configuration class documentation for -* more details. -* @class Menubar -* @constructor -* @extends YAHOO.widget.Menu -* @namespace YAHOO.widget -*/ -YAHOO.widget.MenuBar = function(p_oElement, p_oConfig) { - - YAHOO.widget.MenuBar.superclass.constructor.call( - this, - p_oElement, - p_oConfig - ); - -}; - -YAHOO.lang.extend(YAHOO.widget.MenuBar, YAHOO.widget.Menu, { - -/** -* @method init -* @description The MenuBar class's initialization method. This method is -* automatically called by the constructor, and sets up all DOM references for -* pre-existing markup, and creates required markup if it is not already present. -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the menu bar. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source for the -* menu bar. -* @param {HTMLDivElement} p_oElement Object specifying -* the <div> element of the menu bar. -* @param {HTMLSelectElement} p_oElement Object -* specifying the <select> element to be used as the data -* source for the menu bar. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu bar. See configuration class documentation for -* more details. -*/ -init: function(p_oElement, p_oConfig) { - - if(!this.ITEM_TYPE) { - - this.ITEM_TYPE = YAHOO.widget.MenuBarItem; - - } - - - // Call the init of the superclass (YAHOO.widget.Menu) - - YAHOO.widget.MenuBar.superclass.init.call(this, p_oElement); - - - this.beforeInitEvent.fire(YAHOO.widget.MenuBar); - - - if(p_oConfig) { - - this.cfg.applyConfig(p_oConfig, true); - - } - - this.initEvent.fire(YAHOO.widget.MenuBar); - -}, - - - -// Constants - - -/** -* @property CSS_CLASS_NAME -* @description String representing the CSS class(es) to be applied to the menu -* bar's <div> element. -* @default "yuimenubar" -* @final -* @type String -*/ -CSS_CLASS_NAME: "yuimenubar", - - - -// Protected event handlers - - -/** -* @method _onKeyDown -* @description "keydown" Custom Event handler for the menu bar. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.MenuBar} p_oMenuBar Object representing the menu bar -* that fired the event. -*/ -_onKeyDown: function(p_sType, p_aArgs, p_oMenuBar) { - - var Event = YAHOO.util.Event, - oEvent = p_aArgs[0], - oItem = p_aArgs[1], - oSubmenu; - - - if(oItem && !oItem.cfg.getProperty("disabled")) { - - var oItemCfg = oItem.cfg; - - switch(oEvent.keyCode) { - - case 37: // Left arrow - case 39: // Right arrow - - if( - oItem == this.activeItem && - !oItemCfg.getProperty("selected") - ) { - - oItemCfg.setProperty("selected", true); - - } - else { - - var oNextItem = (oEvent.keyCode == 37) ? - oItem.getPreviousEnabledSibling() : - oItem.getNextEnabledSibling(); - - if(oNextItem) { - - this.clearActiveItem(); - - oNextItem.cfg.setProperty("selected", true); - - - if(this.cfg.getProperty("autosubmenudisplay")) { - - oSubmenu = oNextItem.cfg.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.show(); - oSubmenu.activeItem.blur(); - oSubmenu.activeItem = null; - - } - - } - - oNextItem.focus(); - - } - - } - - Event.preventDefault(oEvent); - - break; - - case 40: // Down arrow - - if(this.activeItem != oItem) { - - this.clearActiveItem(); - - oItemCfg.setProperty("selected", true); - oItem.focus(); - - } - - oSubmenu = oItemCfg.getProperty("submenu"); - - if(oSubmenu) { - - if(oSubmenu.cfg.getProperty("visible")) { - - oSubmenu.setInitialSelection(); - oSubmenu.setInitialFocus(); - - } - else { - - oSubmenu.show(); - - } - - } - - Event.preventDefault(oEvent); - - break; - - } - - } - - - if(oEvent.keyCode == 27 && this.activeItem) { // Esc key - - oSubmenu = this.activeItem.cfg.getProperty("submenu"); - - if(oSubmenu && oSubmenu.cfg.getProperty("visible")) { - - oSubmenu.hide(); - this.activeItem.focus(); - - } - else { - - this.activeItem.cfg.setProperty("selected", false); - this.activeItem.blur(); - - } - - Event.preventDefault(oEvent); - - } - -}, - - -/** -* @method _onClick -* @description "click" event handler for the menu bar. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.MenuBar} p_oMenuBar Object representing the menu bar -* that fired the event. -*/ -_onClick: function(p_sType, p_aArgs, p_oMenuBar) { - - YAHOO.widget.MenuBar.superclass._onClick.call( - this, - p_sType, - p_aArgs, - p_oMenuBar - ); - - - var oItem = p_aArgs[1]; - - if(oItem && !oItem.cfg.getProperty("disabled")) { - - var Event = YAHOO.util.Event, - Dom = YAHOO.util.Dom, - - oEvent = p_aArgs[0], - oTarget = Event.getTarget(oEvent), - - oActiveItem = this.activeItem, - oConfig = this.cfg; - - - // Hide any other submenus that might be visible - - if(oActiveItem && oActiveItem != oItem) { - - this.clearActiveItem(); - - } - - - // Select and focus the current item - - oItem.cfg.setProperty("selected", true); - oItem.focus(); - - - // Show the submenu for the item - - var oSubmenu = oItem.cfg.getProperty("submenu"); - - - if(oSubmenu && oTarget != oItem.submenuIndicator) { - - if(oSubmenu.cfg.getProperty("visible")) { - - oSubmenu.hide(); - - } - else { - - oSubmenu.show(); - - } - - } - - } - -}, - - - -// Public methods - - -/** -* @method toString -* @description Returns a string representing the menu bar. -* @return {String} -*/ -toString: function() { - - return ("MenuBar " + this.id); - -}, - - -/** -* @description Initializes the class's configurable properties which can be -* changed using the menu bar's Config object ("cfg"). -* @method initDefaultConfig -*/ -initDefaultConfig: function() { - - YAHOO.widget.MenuBar.superclass.initDefaultConfig.call(this); - - var oConfig = this.cfg; - - // Add configuration properties - - - /* - Set the default value for the "position" configuration property - to "static" by re-adding the property. - */ - - /** - * @config position - * @description String indicating how a menu bar should be positioned on the - * screen. Possible values are "static" and "dynamic." Static menu bars - * are visible by default and reside in the normal flow of the document - * (CSS position: static). Dynamic menu bars are hidden by default, reside - * out of the normal flow of the document (CSS position: absolute), and can - * overlay other elements on the screen. - * @default static - * @type String - */ - oConfig.addProperty( - "position", - { - value: "static", - handler: this.configPosition, - validator: this._checkPosition, - supercedes: ["visible"] - } - ); - - - /* - Set the default value for the "submenualignment" configuration property - to ["tl","bl"] by re-adding the property. - */ - - /** - * @config submenualignment - * @description Array defining how submenus should be aligned to their - * parent menu bar item. The format is: [itemCorner, submenuCorner]. - * @default ["tl","bl"] - * @type Array - */ - oConfig.addProperty("submenualignment", { value: ["tl","bl"] } ); - - - /* - Change the default value for the "autosubmenudisplay" configuration - property to "false" by re-adding the property. - */ - - /** - * @config autosubmenudisplay - * @description Boolean indicating if submenus are automatically made - * visible when the user mouses over the menu bar's items. - * @default false - * @type Boolean - */ - oConfig.addProperty( - "autosubmenudisplay", - { value: false, validator: oConfig.checkBoolean } - ); - -} - -}); // END YAHOO.lang.extend - - - -/** -* Creates an item for a menu bar. -* -* @param {String} p_oObject String specifying the text of the menu bar item. -* @param {HTMLLIElement} p_oObject Object specifying the -* <li> element of the menu bar item. -* @param {HTMLOptGroupElement} p_oObject Object -* specifying the <optgroup> element of the menu bar item. -* @param {HTMLOptionElement} p_oObject Object specifying -* the <option> element of the menu bar item. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu bar item. See configuration class documentation -* for more details. -* @class MenuBarItem -* @constructor -* @extends YAHOO.widget.MenuItem -*/ -YAHOO.widget.MenuBarItem = function(p_oObject, p_oConfig) { - - YAHOO.widget.MenuBarItem.superclass.constructor.call( - this, - p_oObject, - p_oConfig - ); - -}; - -YAHOO.lang.extend(YAHOO.widget.MenuBarItem, YAHOO.widget.MenuItem, { - - -/** -* @method init -* @description The MenuBarItem class's initialization method. This method is -* automatically called by the constructor, and sets up all DOM references for -* pre-existing markup, and creates required markup if it is not already present. -* @param {String} p_oObject String specifying the text of the menu bar item. -* @param {HTMLLIElement} p_oObject Object specifying the -* <li> element of the menu bar item. -* @param {HTMLOptGroupElement} p_oObject Object -* specifying the <optgroup> element of the menu bar item. -* @param {HTMLOptionElement} p_oObject Object specifying -* the <option> element of the menu bar item. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu bar item. See configuration class documentation -* for more details. -*/ -init: function(p_oObject, p_oConfig) { - - if(!this.SUBMENU_TYPE) { - - this.SUBMENU_TYPE = YAHOO.widget.Menu; - - } - - - /* - Call the init of the superclass (YAHOO.widget.MenuItem) - Note: We don't pass the user config in here yet - because we only want it executed once, at the lowest - subclass level. - */ - - YAHOO.widget.MenuBarItem.superclass.init.call(this, p_oObject); - - - var oConfig = this.cfg; - - if(p_oConfig) { - - oConfig.applyConfig(p_oConfig, true); - - } - - oConfig.fireQueue(); - -}, - - - -// Constants - -/** -* @property CSS_CLASS_NAME -* @description String representing the CSS class(es) to be applied to the -* <li> element of the menu bar item. -* @default "yuimenubaritem" -* @final -* @type String -*/ -CSS_CLASS_NAME: "yuimenubaritem", - - - -// Public methods - - -/** -* @method toString -* @description Returns a string representing the menu bar item. -* @return {String} -*/ -toString: function() { - - return ("MenuBarItem: " + this.cfg.getProperty("text")); - -} - -}); // END YAHOO.lang.extend -YAHOO.register("menu", YAHOO.widget.Menu, {version: "2.2.0", build: "127"}); diff --git a/interface/ispconfig/interface/js/yui/menu/menu-min.js b/interface/ispconfig/interface/js/yui/menu/menu-min.js deleted file mode 100644 index d4ca1d7ad..000000000 --- a/interface/ispconfig/interface/js/yui/menu/menu-min.js +++ /dev/null @@ -1,260 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ - -(function(){var Dom=YAHOO.util.Dom,Event=YAHOO.util.Event;YAHOO.widget.MenuManager=function(){var m_bInitializedEventHandlers=false,m_oMenus={},m_oItems={},m_oVisibleMenus={},me=this;function addItem(p_oItem){var sId=p_oItem.id;if(p_oItem&&m_oItems[sId]!=p_oItem){m_oItems[sId]=p_oItem;p_oItem.destroyEvent.subscribe(onItemDestroy,p_oItem);}} -function removeItem(p_oItem){var sId=p_oItem.id;if(sId&&m_oItems[sId]){delete m_oItems[sId];}} -function getMenuRootElement(p_oElement){var oParentNode;if(p_oElement&&p_oElement.tagName){switch(p_oElement.tagName.toUpperCase()){case"DIV":oParentNode=p_oElement.parentNode;if((Dom.hasClass(p_oElement,"hd")||Dom.hasClass(p_oElement,"bd")||Dom.hasClass(p_oElement,"ft"))&&oParentNode&&oParentNode.tagName&&oParentNode.tagName.toUpperCase()=="DIV"){return oParentNode;} -else{return p_oElement;} -break;case"LI":return p_oElement;default:oParentNode=p_oElement.parentNode;if(oParentNode){return getMenuRootElement(oParentNode);} -break;}}} -function onDOMEvent(p_oEvent){var oTarget=Event.getTarget(p_oEvent),oElement=getMenuRootElement(oTarget),oMenuItem,oMenu;if(oElement){var sTagName=oElement.tagName.toUpperCase();if(sTagName=="LI"){var sId=oElement.id;if(sId&&m_oItems[sId]){oMenuItem=m_oItems[sId];oMenu=oMenuItem.parent;}} -else if(sTagName=="DIV"){if(oElement.id){oMenu=m_oMenus[oElement.id];}}} -if(oMenu){var oEventTypes={"click":"clickEvent","mousedown":"mouseDownEvent","mouseup":"mouseUpEvent","mouseover":"mouseOverEvent","mouseout":"mouseOutEvent","keydown":"keyDownEvent","keyup":"keyUpEvent","keypress":"keyPressEvent"},sCustomEventType=oEventTypes[p_oEvent.type];if(oMenuItem&&!oMenuItem.cfg.getProperty("disabled")){oMenuItem[sCustomEventType].fire(p_oEvent);} -oMenu[sCustomEventType].fire(p_oEvent,oMenuItem);} -else if(p_oEvent.type=="mousedown"){var oActiveItem;for(var i in m_oMenus){if(m_oMenus.hasOwnProperty(i)){oMenu=m_oMenus[i];if(oMenu.cfg.getProperty("clicktohide")&&oMenu.cfg.getProperty("position")=="dynamic"){oMenu.hide();} -else{oMenu.clearActiveItem(true);}}}}} -function onMenuDestroy(p_sType,p_aArgs,p_oMenu){if(p_oMenu&&m_oMenus[p_oMenu.id]){delete m_oMenus[p_oMenu.id];}} -function onItemDestroy(p_sType,p_aArgs,p_oItem){var sId=p_oItem.id;if(sId&&m_oItems[sId]){delete m_oItems[sId];}} -function onMenuVisibleConfigChange(p_sType,p_aArgs,p_oMenu){var bVisible=p_aArgs[0];if(bVisible){m_oVisibleMenus[p_oMenu.id]=p_oMenu;} -else if(m_oVisibleMenus[p_oMenu.id]){delete m_oVisibleMenus[p_oMenu.id];}} -function onItemAdded(p_sType,p_aArgs){addItem(p_aArgs[0]);} -function onItemRemoved(p_sType,p_aArgs){removeItem(p_aArgs[0]);} -return{addMenu:function(p_oMenu){if(p_oMenu&&p_oMenu.id&&!m_oMenus[p_oMenu.id]){m_oMenus[p_oMenu.id]=p_oMenu;if(!m_bInitializedEventHandlers){var oDoc=document;Event.addListener(oDoc,"mouseover",onDOMEvent,me,true);Event.addListener(oDoc,"mouseout",onDOMEvent,me,true);Event.addListener(oDoc,"mousedown",onDOMEvent,me,true);Event.addListener(oDoc,"mouseup",onDOMEvent,me,true);Event.addListener(oDoc,"click",onDOMEvent,me,true);Event.addListener(oDoc,"keydown",onDOMEvent,me,true);Event.addListener(oDoc,"keyup",onDOMEvent,me,true);Event.addListener(oDoc,"keypress",onDOMEvent,me,true);m_bInitializedEventHandlers=true;} -p_oMenu.destroyEvent.subscribe(onMenuDestroy,p_oMenu,me);p_oMenu.cfg.subscribeToConfigEvent("visible",onMenuVisibleConfigChange,p_oMenu);p_oMenu.itemAddedEvent.subscribe(onItemAdded);p_oMenu.itemRemovedEvent.subscribe(onItemRemoved);}},removeMenu:function(p_oMenu){if(p_oMenu&&m_oMenus[p_oMenu.id]){delete m_oMenus[p_oMenu.id];}},hideVisible:function(){var oMenu;for(var i in m_oVisibleMenus){if(m_oVisibleMenus.hasOwnProperty(i)){oMenu=m_oVisibleMenus[i];if(oMenu.cfg.getProperty("position")=="dynamic"){oMenu.hide();}}}},getMenus:function(){return m_oMenus;},getMenu:function(p_sId){if(m_oMenus[p_sId]){return m_oMenus[p_sId];}},toString:function(){return("MenuManager");}};}();})();(function(){var Dom=YAHOO.util.Dom,Event=YAHOO.util.Event,Lang=YAHOO.lang;YAHOO.widget.Menu=function(p_oElement,p_oConfig){if(p_oConfig){this.parent=p_oConfig.parent;this.lazyLoad=p_oConfig.lazyLoad||p_oConfig.lazyload;this.itemData=p_oConfig.itemData||p_oConfig.itemdata;} -YAHOO.widget.Menu.superclass.constructor.call(this,p_oElement,p_oConfig);};YAHOO.lang.extend(YAHOO.widget.Menu,YAHOO.widget.Overlay,{CSS_CLASS_NAME:"yuimenu",ITEM_TYPE:null,GROUP_TITLE_TAG_NAME:"h6",_nHideDelayId:null,_nShowDelayId:null,_nSubmenuHideDelayId:null,_nBodyScrollId:null,_bHideDelayEventHandlersAssigned:false,_bHandledMouseOverEvent:false,_bHandledMouseOutEvent:false,_aGroupTitleElements:null,_aItemGroups:null,_aListElements:null,_nCurrentMouseX:0,_nMaxHeight:-1,_bStopMouseEventHandlers:false,_sClassName:null,lazyLoad:false,itemData:null,activeItem:null,parent:null,srcElement:null,mouseOverEvent:null,mouseOutEvent:null,mouseDownEvent:null,mouseUpEvent:null,clickEvent:null,keyPressEvent:null,keyDownEvent:null,keyUpEvent:null,itemAddedEvent:null,itemRemovedEvent:null,init:function(p_oElement,p_oConfig){this._aItemGroups=[];this._aListElements=[];this._aGroupTitleElements=[];if(!this.ITEM_TYPE){this.ITEM_TYPE=YAHOO.widget.MenuItem;} -var oElement;if(typeof p_oElement=="string"){oElement=document.getElementById(p_oElement);} -else if(p_oElement.tagName){oElement=p_oElement;} -if(oElement&&oElement.tagName){switch(oElement.tagName.toUpperCase()){case"DIV":this.srcElement=oElement;if(!oElement.id){oElement.setAttribute("id",Dom.generateId());} -YAHOO.widget.Menu.superclass.init.call(this,oElement);this.beforeInitEvent.fire(YAHOO.widget.Menu);break;case"SELECT":this.srcElement=oElement;YAHOO.widget.Menu.superclass.init.call(this,Dom.generateId());this.beforeInitEvent.fire(YAHOO.widget.Menu);break;}} -else{YAHOO.widget.Menu.superclass.init.call(this,p_oElement);this.beforeInitEvent.fire(YAHOO.widget.Menu);} -if(this.element){var oEl=this.element;Dom.addClass(oEl,this.CSS_CLASS_NAME);this.initEvent.subscribe(this._onInit,this,true);this.beforeRenderEvent.subscribe(this._onBeforeRender,this,true);this.renderEvent.subscribe(this._setWidth,this,true);this.beforeShowEvent.subscribe(this._onBeforeShow,this,true);this.showEvent.subscribe(this._onShow,this,true);this.beforeHideEvent.subscribe(this._onBeforeHide,this,true);this.hideEvent.subscribe(this._onHide,this,true);this.mouseOverEvent.subscribe(this._onMouseOver,this,true);this.mouseOutEvent.subscribe(this._onMouseOut,this,true);this.clickEvent.subscribe(this._onClick,this,true);this.keyDownEvent.subscribe(this._onKeyDown,this,true);this.keyPressEvent.subscribe(this._onKeyPress,this,true);YAHOO.widget.Module.textResizeEvent.subscribe(this._onTextResize,this,true);if(p_oConfig){this.cfg.applyConfig(p_oConfig,true);} -YAHOO.widget.MenuManager.addMenu(this);this.initEvent.fire(YAHOO.widget.Menu);}},_initSubTree:function(){var oNode;if(this.srcElement.tagName.toUpperCase()=="DIV"){oNode=this.body.firstChild;var nGroup=0,sGroupTitleTagName=this.GROUP_TITLE_TAG_NAME.toUpperCase();do{if(oNode&&oNode.tagName){switch(oNode.tagName.toUpperCase()){case sGroupTitleTagName:this._aGroupTitleElements[nGroup]=oNode;break;case"UL":this._aListElements[nGroup]=oNode;this._aItemGroups[nGroup]=[];nGroup++;break;}}} -while((oNode=oNode.nextSibling));if(this._aListElements[0]){Dom.addClass(this._aListElements[0],"first-of-type");}} -oNode=null;if(this.srcElement.tagName){var sSrcElementTagName=this.srcElement.tagName.toUpperCase();switch(sSrcElementTagName){case"DIV":if(this._aListElements.length>0){var i=this._aListElements.length-1;do{oNode=this._aListElements[i].firstChild;do{if(oNode&&oNode.tagName&&oNode.tagName.toUpperCase()=="LI"){this.addItem(new this.ITEM_TYPE(oNode,{parent:this}),i);}} -while((oNode=oNode.nextSibling));} -while(i--);} -break;case"SELECT":oNode=this.srcElement.firstChild;do{if(oNode&&oNode.tagName){switch(oNode.tagName.toUpperCase()){case"OPTGROUP":case"OPTION":this.addItem(new this.ITEM_TYPE(oNode,{parent:this}));break;}}} -while((oNode=oNode.nextSibling));break;}}},_getFirstEnabledItem:function(){var aItems=this.getItems(),nItems=aItems.length,oItem;for(var i=0;i=aGroup.length);if(aGroup[p_nItemIndex]){aGroup.splice(p_nItemIndex,0,oItem);} -else{aGroup[p_nItemIndex]=oItem;} -oGroupItem=aGroup[p_nItemIndex];if(oGroupItem){if(bAppend&&(!oGroupItem.element.parentNode||oGroupItem.element.parentNode.nodeType==11)){this._aListElements[nGroupIndex].appendChild(oGroupItem.element);} -else{function getNextItemSibling(p_aArray,p_nStartIndex){return(p_aArray[p_nStartIndex]||getNextItemSibling(p_aArray,(p_nStartIndex+1)));} -var oNextItemSibling=getNextItemSibling(aGroup,(p_nItemIndex+1));if(oNextItemSibling&&(!oGroupItem.element.parentNode||oGroupItem.element.parentNode.nodeType==11)){this._aListElements[nGroupIndex].insertBefore(oGroupItem.element,oNextItemSibling.element);}} -oGroupItem.parent=this;this._subscribeToItemEvents(oGroupItem);this._configureSubmenu(oGroupItem);this._updateItemProperties(nGroupIndex);this.itemAddedEvent.fire(oGroupItem);return oGroupItem;}} -else{var nItemIndex=aGroup.length;aGroup[nItemIndex]=oItem;oGroupItem=aGroup[nItemIndex];if(oGroupItem){if(!Dom.isAncestor(this._aListElements[nGroupIndex],oGroupItem.element)){this._aListElements[nGroupIndex].appendChild(oGroupItem.element);} -oGroupItem.element.setAttribute("groupindex",nGroupIndex);oGroupItem.element.setAttribute("index",nItemIndex);oGroupItem.parent=this;oGroupItem.index=nItemIndex;oGroupItem.groupIndex=nGroupIndex;this._subscribeToItemEvents(oGroupItem);this._configureSubmenu(oGroupItem);if(nItemIndex===0){Dom.addClass(oGroupItem.element,"first-of-type");} -this.itemAddedEvent.fire(oGroupItem);return oGroupItem;}}}},_removeItemFromGroupByIndex:function(p_nGroupIndex,p_nItemIndex){var nGroupIndex=typeof p_nGroupIndex=="number"?p_nGroupIndex:0,aGroup=this._getItemGroup(nGroupIndex);if(aGroup){var aArray=aGroup.splice(p_nItemIndex,1),oItem=aArray[0];if(oItem){this._updateItemProperties(nGroupIndex);if(aGroup.length===0){var oUL=this._aListElements[nGroupIndex];if(this.body&&oUL){this.body.removeChild(oUL);} -this._aItemGroups.splice(nGroupIndex,1);this._aListElements.splice(nGroupIndex,1);oUL=this._aListElements[0];if(oUL){Dom.addClass(oUL,"first-of-type");}} -this.itemRemovedEvent.fire(oItem);return oItem;}}},_removeItemFromGroupByValue:function(p_nGroupIndex,p_oItem){var aGroup=this._getItemGroup(p_nGroupIndex);if(aGroup){var nItems=aGroup.length,nItemIndex=-1;if(nItems>0){var i=nItems-1;do{if(aGroup[i]==p_oItem){nItemIndex=i;break;}} -while(i--);if(nItemIndex>-1){return this._removeItemFromGroupByIndex(p_nGroupIndex,nItemIndex);}}}},_updateItemProperties:function(p_nGroupIndex){var aGroup=this._getItemGroup(p_nGroupIndex),nItems=aGroup.length;if(nItems>0){var i=nItems-1,oItem,oLI;do{oItem=aGroup[i];if(oItem){oLI=oItem.element;oItem.index=i;oItem.groupIndex=p_nGroupIndex;oLI.setAttribute("groupindex",p_nGroupIndex);oLI.setAttribute("index",i);Dom.removeClass(oLI,"first-of-type");}} -while(i--);if(oLI){Dom.addClass(oLI,"first-of-type");}}},_createItemGroup:function(p_nIndex){if(!this._aItemGroups[p_nIndex]){this._aItemGroups[p_nIndex]=[];var oUL=document.createElement("ul");this._aListElements[p_nIndex]=oUL;return this._aItemGroups[p_nIndex];}},_getItemGroup:function(p_nIndex){var nIndex=((typeof p_nIndex=="number")?p_nIndex:0);return this._aItemGroups[nIndex];},_configureSubmenu:function(p_oItem){var oSubmenu=p_oItem.cfg.getProperty("submenu");if(oSubmenu){this.cfg.configChangedEvent.subscribe(this._onParentMenuConfigChange,oSubmenu,true);this.renderEvent.subscribe(this._onParentMenuRender,oSubmenu,true);oSubmenu.beforeShowEvent.subscribe(this._onSubmenuBeforeShow,oSubmenu,true);oSubmenu.showEvent.subscribe(this._onSubmenuShow,oSubmenu,true);oSubmenu.hideEvent.subscribe(this._onSubmenuHide,oSubmenu,true);}},_subscribeToItemEvents:function(p_oItem){p_oItem.focusEvent.subscribe(this._onMenuItemFocus,p_oItem,this);p_oItem.blurEvent.subscribe(this._onMenuItemBlur,this,true);p_oItem.cfg.configChangedEvent.subscribe(this._onMenuItemConfigChange,p_oItem,this);},_getOffsetWidth:function(){var oClone=this.element.cloneNode(true);Dom.setStyle(oClone,"width","");document.body.appendChild(oClone);var sWidth=oClone.offsetWidth;document.body.removeChild(oClone);return sWidth;},_setWidth:function(){if(this.cfg.getProperty("position")=="dynamic"){var sWidth;if(this.element.parentNode.tagName.toUpperCase()=="BODY"){if(this.browser=="opera"){sWidth=this._getOffsetWidth();} -else{Dom.setStyle(this.element,"width","auto");sWidth=this.element.offsetWidth;}} -else{sWidth=this._getOffsetWidth();} -this.cfg.setProperty("width",(sWidth+"px"));}},_cancelHideDelay:function(){var oRoot=this.getRoot();if(oRoot._nHideDelayId){window.clearTimeout(oRoot._nHideDelayId);}},_execHideDelay:function(){this._cancelHideDelay();var oRoot=this.getRoot(),me=this;function hideMenu(){if(oRoot.activeItem){oRoot.clearActiveItem();} -if(oRoot==me&&me.cfg.getProperty("position")=="dynamic"){me.hide();}} -oRoot._nHideDelayId=window.setTimeout(hideMenu,oRoot.cfg.getProperty("hidedelay"));},_cancelShowDelay:function(){var oRoot=this.getRoot();if(oRoot._nShowDelayId){window.clearTimeout(oRoot._nShowDelayId);}},_execShowDelay:function(p_oMenu){var oRoot=this.getRoot();function showMenu(){if(p_oMenu.parent.cfg.getProperty("selected")){p_oMenu.show();}} -oRoot._nShowDelayId=window.setTimeout(showMenu,oRoot.cfg.getProperty("showdelay"));},_execSubmenuHideDelay:function(p_oSubmenu,p_nMouseX,p_nHideDelay){var me=this;p_oSubmenu._nSubmenuHideDelayId=window.setTimeout(function(){if(me._nCurrentMouseX>(p_nMouseX+10)){p_oSubmenu._nSubmenuHideDelayId=window.setTimeout(function(){p_oSubmenu.hide();},p_nHideDelay);} -else{p_oSubmenu.hide();}},50);},_disableScrollHeader:function(){if(!this._bHeaderDisabled){Dom.addClass(this.header,"topscrollbar_disabled");this._bHeaderDisabled=true;}},_disableScrollFooter:function(){if(!this._bFooterDisabled){Dom.addClass(this.footer,"bottomscrollbar_disabled");this._bFooterDisabled=true;}},_enableScrollHeader:function(){if(this._bHeaderDisabled){Dom.removeClass(this.header,"topscrollbar_disabled");this._bHeaderDisabled=false;}},_enableScrollFooter:function(){if(this._bFooterDisabled){Dom.removeClass(this.footer,"bottomscrollbar_disabled");this._bFooterDisabled=false;}},_onMouseOver:function(p_sType,p_aArgs,p_oMenu){if(this._bStopMouseEventHandlers){return false;} -var oEvent=p_aArgs[0],oItem=p_aArgs[1],oTarget=Event.getTarget(oEvent);if(!this._bHandledMouseOverEvent&&(oTarget==this.element||Dom.isAncestor(this.element,oTarget))){this._nCurrentMouseX=0;Event.addListener(this.element,"mousemove",this._onMouseMove,this,true);this.clearActiveItem();if(this.parent&&this._nSubmenuHideDelayId){window.clearTimeout(this._nSubmenuHideDelayId);this.parent.cfg.setProperty("selected",true);var oParentMenu=this.parent.parent;oParentMenu.activeItem=this.parent;oParentMenu._bHandledMouseOutEvent=true;oParentMenu._bHandledMouseOverEvent=false;} -this._bHandledMouseOverEvent=true;this._bHandledMouseOutEvent=false;} -if(oItem&&!oItem.handledMouseOverEvent&&!oItem.cfg.getProperty("disabled")&&(oTarget==oItem.element||Dom.isAncestor(oItem.element,oTarget))){var nShowDelay=this.cfg.getProperty("showdelay"),bShowDelay=(nShowDelay>0);if(bShowDelay){this._cancelShowDelay();} -var oActiveItem=this.activeItem;if(oActiveItem){oActiveItem.cfg.setProperty("selected",false);} -var oItemCfg=oItem.cfg;oItemCfg.setProperty("selected",true);oItem.focus();if(this.cfg.getProperty("autosubmenudisplay")){var oSubmenu=oItemCfg.getProperty("submenu");if(oSubmenu){if(bShowDelay){this._execShowDelay(oSubmenu);} -else{oSubmenu.show();}}} -oItem.handledMouseOverEvent=true;oItem.handledMouseOutEvent=false;}},_onMouseOut:function(p_sType,p_aArgs,p_oMenu){if(this._bStopMouseEventHandlers){return false;} -var oEvent=p_aArgs[0],oItem=p_aArgs[1],oRelatedTarget=Event.getRelatedTarget(oEvent),bMovingToSubmenu=false;if(oItem&&!oItem.cfg.getProperty("disabled")){var oItemCfg=oItem.cfg,oSubmenu=oItemCfg.getProperty("submenu");if(oSubmenu&&(oRelatedTarget==oSubmenu.element||Dom.isAncestor(oSubmenu.element,oRelatedTarget))){bMovingToSubmenu=true;} -if(!oItem.handledMouseOutEvent&&((oRelatedTarget!=oItem.element&&!Dom.isAncestor(oItem.element,oRelatedTarget))||bMovingToSubmenu)){if(!bMovingToSubmenu){oItem.cfg.setProperty("selected",false);if(oSubmenu){var nSubmenuHideDelay=this.cfg.getProperty("submenuhidedelay"),nShowDelay=this.cfg.getProperty("showdelay");if(!(this instanceof YAHOO.widget.MenuBar)&&nSubmenuHideDelay>0&&nShowDelay>=nSubmenuHideDelay){this._execSubmenuHideDelay(oSubmenu,Event.getPageX(oEvent),nSubmenuHideDelay);} -else{oSubmenu.hide();}}} -oItem.handledMouseOutEvent=true;oItem.handledMouseOverEvent=false;}} -if(!this._bHandledMouseOutEvent&&((oRelatedTarget!=this.element&&!Dom.isAncestor(this.element,oRelatedTarget))||bMovingToSubmenu)){Event.removeListener(this.element,"mousemove",this._onMouseMove);this._nCurrentMouseX=Event.getPageX(oEvent);this._bHandledMouseOutEvent=true;this._bHandledMouseOverEvent=false;}},_onMouseMove:function(p_oEvent,p_oMenu){if(this._bStopMouseEventHandlers){return false;} -this._nCurrentMouseX=Event.getPageX(p_oEvent);},_onClick:function(p_sType,p_aArgs,p_oMenu){var oEvent=p_aArgs[0],oItem=p_aArgs[1],oTarget=Event.getTarget(oEvent);if(oItem&&!oItem.cfg.getProperty("disabled")){var oItemCfg=oItem.cfg,oSubmenu=oItemCfg.getProperty("submenu");if(oTarget==oItem.submenuIndicator&&oSubmenu){if(oSubmenu.cfg.getProperty("visible")){oSubmenu.hide();oSubmenu.parent.focus();} -else{this.clearActiveItem();this.activeItem=oItem;oItem.cfg.setProperty("selected",true);oSubmenu.show();}} -else{var sURL=oItemCfg.getProperty("url"),bCurrentPageURL=(sURL.substr((sURL.length-1),1)=="#"),sTarget=oItemCfg.getProperty("target"),bHasTarget=(sTarget&&sTarget.length>0);if(oTarget.tagName.toUpperCase()=="A"&&bCurrentPageURL&&!bHasTarget){Event.preventDefault(oEvent);} -if(oTarget.tagName.toUpperCase()!="A"&&!bCurrentPageURL&&!bHasTarget){document.location=sURL;} -if(bCurrentPageURL&&!oSubmenu){var oRoot=this.getRoot();if(oRoot.cfg.getProperty("position")=="static"){oRoot.clearActiveItem();} -else if(oRoot.cfg.getProperty("clicktohide")){oRoot.hide();}}}}},_onKeyDown:function(p_sType,p_aArgs,p_oMenu){var oEvent=p_aArgs[0],oItem=p_aArgs[1],me=this,oSubmenu;function stopMouseEventHandlers(){me._bStopMouseEventHandlers=true;window.setTimeout(function(){me._bStopMouseEventHandlers=false;},10);} -if(oItem&&!oItem.cfg.getProperty("disabled")){var oItemCfg=oItem.cfg,oParentItem=this.parent,oRoot,oNextItem;switch(oEvent.keyCode){case 38:case 40:if(oItem==this.activeItem&&!oItemCfg.getProperty("selected")){oItemCfg.setProperty("selected",true);} -else{oNextItem=(oEvent.keyCode==38)?oItem.getPreviousEnabledSibling():oItem.getNextEnabledSibling();if(oNextItem){this.clearActiveItem();oNextItem.cfg.setProperty("selected",true);oNextItem.focus();if(this.cfg.getProperty("maxheight")>0){var oBody=this.body;oBody.scrollTop=(oNextItem.element.offsetTop+ -oNextItem.element.offsetHeight)-oBody.offsetHeight;var nScrollTop=oBody.scrollTop,nScrollTarget=oBody.scrollHeight-oBody.offsetHeight;if(nScrollTop===0){this._disableScrollHeader();this._enableScrollFooter();} -else if(nScrollTop==nScrollTarget){this._enableScrollHeader();this._disableScrollFooter();} -else{this._enableScrollHeader();this._enableScrollFooter();}}}} -Event.preventDefault(oEvent);stopMouseEventHandlers();break;case 39:oSubmenu=oItemCfg.getProperty("submenu");if(oSubmenu){if(!oItemCfg.getProperty("selected")){oItemCfg.setProperty("selected",true);} -oSubmenu.show();oSubmenu.setInitialSelection();} -else{oRoot=this.getRoot();if(oRoot instanceof YAHOO.widget.MenuBar){oNextItem=oRoot.activeItem.getNextEnabledSibling();if(oNextItem){oRoot.clearActiveItem();oNextItem.cfg.setProperty("selected",true);oSubmenu=oNextItem.cfg.getProperty("submenu");if(oSubmenu){oSubmenu.show();} -oNextItem.focus();}}} -Event.preventDefault(oEvent);stopMouseEventHandlers();break;case 37:if(oParentItem){var oParentMenu=oParentItem.parent;if(oParentMenu instanceof YAHOO.widget.MenuBar){oNextItem=oParentMenu.activeItem.getPreviousEnabledSibling();if(oNextItem){oParentMenu.clearActiveItem();oNextItem.cfg.setProperty("selected",true);oSubmenu=oNextItem.cfg.getProperty("submenu");if(oSubmenu){oSubmenu.show();} -oNextItem.focus();}} -else{this.hide();oParentItem.focus();}} -Event.preventDefault(oEvent);stopMouseEventHandlers();break;}} -if(oEvent.keyCode==27){if(this.cfg.getProperty("position")=="dynamic"){this.hide();if(this.parent){this.parent.focus();}} -else if(this.activeItem){oSubmenu=this.activeItem.cfg.getProperty("submenu");if(oSubmenu&&oSubmenu.cfg.getProperty("visible")){oSubmenu.hide();this.activeItem.focus();} -else{this.activeItem.cfg.setProperty("selected",false);this.activeItem.blur();}} -Event.preventDefault(oEvent);}},_onKeyPress:function(p_sType,p_aArgs,p_oMenu){var oEvent=p_aArgs[0];if(oEvent.keyCode==40||oEvent.keyCode==38){YAHOO.util.Event.preventDefault(oEvent);}},_onTextResize:function(p_sType,p_aArgs,p_oMenu){if(this.browser=="gecko"&&!this._handleResize){this._handleResize=true;return;} -var oConfig=this.cfg;if(oConfig.getProperty("position")=="dynamic"){oConfig.setProperty("width",(this._getOffsetWidth()+"px"));}},_onScrollTargetMouseOver:function(p_oEvent,p_oMenu){this._cancelHideDelay();var oTarget=Event.getTarget(p_oEvent),oBody=this.body,me=this,nScrollTarget,fnScrollFunction;function scrollBodyDown(){var nScrollTop=oBody.scrollTop;if(nScrollTop0){oBody.scrollTop=(nScrollTop-1);me._enableScrollFooter();} -else{oBody.scrollTop=0;window.clearInterval(me._nBodyScrollId);me._disableScrollHeader();}} -if(Dom.hasClass(oTarget,"hd")){fnScrollFunction=scrollBodyUp;} -else{nScrollTarget=oBody.scrollHeight-oBody.offsetHeight;fnScrollFunction=scrollBodyDown;} -this._nBodyScrollId=window.setInterval(fnScrollFunction,10);},_onScrollTargetMouseOut:function(p_oEvent,p_oMenu){window.clearInterval(this._nBodyScrollId);this._cancelHideDelay();},_onInit:function(p_sType,p_aArgs,p_oMenu){if(((this.parent&&!this.lazyLoad)||(!this.parent&&this.cfg.getProperty("position")=="static")||(!this.parent&&!this.lazyLoad&&this.cfg.getProperty("position")=="dynamic"))&&this.getItemGroups().length===0){if(this.srcElement){this._initSubTree();} -if(this.itemData){this.addItems(this.itemData);}} -else if(this.lazyLoad){this.cfg.fireQueue();}},_onBeforeRender:function(p_sType,p_aArgs,p_oMenu){var oConfig=this.cfg,oEl=this.element,nListElements=this._aListElements.length;if(nListElements>0){var i=0,bFirstList=true,oUL,oGroupTitle;do{oUL=this._aListElements[i];if(oUL){if(bFirstList){Dom.addClass(oUL,"first-of-type");bFirstList=false;} -if(!Dom.isAncestor(oEl,oUL)){this.appendToBody(oUL);} -oGroupTitle=this._aGroupTitleElements[i];if(oGroupTitle){if(!Dom.isAncestor(oEl,oGroupTitle)){oUL.parentNode.insertBefore(oGroupTitle,oUL);} -Dom.addClass(oUL,"hastitle");}} -i++;} -while(i=nViewportHeight){var nMaxHeight=this.cfg.getProperty("maxheight");this._nMaxHeight=nMaxHeight;this.cfg.setProperty("maxheight",(nViewportHeight-20));} -if(this.cfg.getProperty("maxheight")>0){var oBody=this.body;if(oBody.scrollTop>0){oBody.scrollTop=0;} -this._disableScrollHeader();this._enableScrollFooter();}}},_onShow:function(p_sType,p_aArgs,p_oMenu){this.setInitialFocus();var oParent=this.parent;if(oParent){var oParentMenu=oParent.parent,aParentAlignment=oParentMenu.cfg.getProperty("submenualignment"),aAlignment=this.cfg.getProperty("submenualignment");if((aParentAlignment[0]!=aAlignment[0])&&(aParentAlignment[1]!=aAlignment[1])){this.cfg.setProperty("submenualignment",[aParentAlignment[0],aParentAlignment[1]]);} -if(!oParentMenu.cfg.getProperty("autosubmenudisplay")&&oParentMenu.cfg.getProperty("position")=="static"){oParentMenu.cfg.setProperty("autosubmenudisplay",true);function disableAutoSubmenuDisplay(p_oEvent){if(p_oEvent.type=="mousedown"||(p_oEvent.type=="keydown"&&p_oEvent.keyCode==27)){var oTarget=Event.getTarget(p_oEvent);if(oTarget!=oParentMenu.element||!YAHOO.util.Dom.isAncestor(oParentMenu.element,oTarget)){oParentMenu.cfg.setProperty("autosubmenudisplay",false);Event.removeListener(document,"mousedown",disableAutoSubmenuDisplay);Event.removeListener(document,"keydown",disableAutoSubmenuDisplay);}}} -Event.addListener(document,"mousedown",disableAutoSubmenuDisplay);Event.addListener(document,"keydown",disableAutoSubmenuDisplay);}} -else if(!oParent&&this.lazyLoad){this.cfg.refireEvent("xy");}},_onBeforeHide:function(p_sType,p_aArgs,p_oMenu){var oActiveItem=this.activeItem;if(oActiveItem){var oConfig=oActiveItem.cfg;oConfig.setProperty("selected",false);var oSubmenu=oConfig.getProperty("submenu");if(oSubmenu){oSubmenu.hide();} -oActiveItem.blur();}},_onHide:function(p_sType,p_aArgs,p_oMenu){if(this._nMaxHeight!=-1){this.cfg.setProperty("maxheight",this._nMaxHeight);this._nMaxHeight=-1;}},_onParentMenuConfigChange:function(p_sType,p_aArgs,p_oSubmenu){var sPropertyName=p_aArgs[0][0],oPropertyValue=p_aArgs[0][1];switch(sPropertyName){case"iframe":case"constraintoviewport":case"hidedelay":case"showdelay":case"submenuhidedelay":case"clicktohide":case"effect":case"classname":p_oSubmenu.cfg.setProperty(sPropertyName,oPropertyValue);break;}},_onParentMenuRender:function(p_sType,p_aArgs,p_oSubmenu){var oParentMenu=p_oSubmenu.parent.parent,oConfig={constraintoviewport:oParentMenu.cfg.getProperty("constraintoviewport"),xy:[0,0],clicktohide:oParentMenu.cfg.getProperty("clicktohide"),effect:oParentMenu.cfg.getProperty("effect"),showdelay:oParentMenu.cfg.getProperty("showdelay"),hidedelay:oParentMenu.cfg.getProperty("hidedelay"),submenuhidedelay:oParentMenu.cfg.getProperty("submenuhidedelay"),classname:oParentMenu.cfg.getProperty("classname")};if(this.cfg.getProperty("position")==oParentMenu.cfg.getProperty("position")){oConfig.iframe=oParentMenu.cfg.getProperty("iframe");} -p_oSubmenu.cfg.applyConfig(oConfig);if(!this.lazyLoad){var oLI=this.parent.element;if(this.element.parentNode==oLI){this.render();} -else{this.render(oLI);}}},_onSubmenuBeforeShow:function(p_sType,p_aArgs,p_oSubmenu){var oParent=this.parent,aAlignment=oParent.parent.cfg.getProperty("submenualignment");this.cfg.setProperty("context",[oParent.element,aAlignment[0],aAlignment[1]]);var nScrollTop=oParent.parent.body.scrollTop;if((this.browser=="gecko"||this.browser=="safari")&&nScrollTop>0){this.cfg.setProperty("y",(this.cfg.getProperty("y")-nScrollTop));}},_onSubmenuShow:function(p_sType,p_aArgs,p_oSubmenu){var oParent=this.parent;oParent.submenuIndicator.firstChild.nodeValue=oParent.EXPANDED_SUBMENU_INDICATOR_TEXT;},_onSubmenuHide:function(p_sType,p_aArgs,p_oSubmenu){var oParent=this.parent;oParent.submenuIndicator.firstChild.nodeValue=oParent.COLLAPSED_SUBMENU_INDICATOR_TEXT;},_onMenuItemFocus:function(p_sType,p_aArgs,p_oItem){this.activeItem=p_oItem;},_onMenuItemBlur:function(p_sType,p_aArgs){this.activeItem=null;},_onMenuItemConfigChange:function(p_sType,p_aArgs,p_oItem){var sProperty=p_aArgs[0][0];switch(sProperty){case"submenu":var oSubmenu=p_aArgs[0][1];if(oSubmenu){this._configureSubmenu(p_oItem);} -break;case"text":case"helptext":if(this.element.style.width){var sWidth=this._getOffsetWidth()+"px";Dom.setStyle(this.element,"width",sWidth);} -break;}},enforceConstraints:function(type,args,obj){var oConfig=this.cfg,pos=args[0],x=pos[0],y=pos[1],offsetHeight=this.element.offsetHeight,offsetWidth=this.element.offsetWidth,viewPortWidth=YAHOO.util.Dom.getViewportWidth(),viewPortHeight=YAHOO.util.Dom.getViewportHeight(),scrollX=Math.max(document.documentElement.scrollLeft,document.body.scrollLeft),scrollY=Math.max(document.documentElement.scrollTop,document.body.scrollTop),nPadding=(this.parent&&this.parent.parent instanceof YAHOO.widget.MenuBar)?0:10,topConstraint=scrollY+nPadding,leftConstraint=scrollX+nPadding,bottomConstraint=scrollY+viewPortHeight-offsetHeight-nPadding,rightConstraint=scrollX+viewPortWidth-offsetWidth-nPadding,aContext=oConfig.getProperty("context"),oContextElement=aContext?aContext[0]:null;if(x<10){x=leftConstraint;}else if((x+offsetWidth)>viewPortWidth){if(oContextElement&&((x-oContextElement.offsetWidth)>offsetWidth)){x=(x-(oContextElement.offsetWidth+offsetWidth));} -else{x=rightConstraint;}} -if(y<10){y=topConstraint;}else if(y>bottomConstraint){if(oContextElement&&(y>offsetHeight)){y=((y+oContextElement.offsetHeight)-offsetHeight);} -else{y=bottomConstraint;}} -oConfig.setProperty("x",x,true);oConfig.setProperty("y",y,true);oConfig.setProperty("xy",[x,y],true);},configVisible:function(p_sType,p_aArgs,p_oMenu){if(this.cfg.getProperty("position")=="dynamic"){YAHOO.widget.Menu.superclass.configVisible.call(this,p_sType,p_aArgs,p_oMenu);} -else{var bVisible=p_aArgs[0],sDisplay=Dom.getStyle(this.element,"display");if(bVisible){if(sDisplay!="block"){this.beforeShowEvent.fire();Dom.setStyle(this.element,"display","block");this.showEvent.fire();}} -else{if(sDisplay=="block"){this.beforeHideEvent.fire();Dom.setStyle(this.element,"display","none");this.hideEvent.fire();}}}},configPosition:function(p_sType,p_aArgs,p_oMenu){var sCSSPosition=p_aArgs[0]=="static"?"static":"absolute",oCfg=this.cfg;Dom.setStyle(this.element,"position",sCSSPosition);if(sCSSPosition=="static"){oCfg.setProperty("iframe",false);Dom.setStyle(this.element,"display","block");oCfg.setProperty("visible",true);} -else{Dom.setStyle(this.element,"visibility","hidden");} -if(sCSSPosition=="absolute"){var nZIndex=oCfg.getProperty("zindex");if(!nZIndex||nZIndex===0){nZIndex=this.parent?(this.parent.parent.cfg.getProperty("zindex")+1):1;oCfg.setProperty("zindex",nZIndex);}}},configIframe:function(p_sType,p_aArgs,p_oMenu){if(this.cfg.getProperty("position")=="dynamic"){YAHOO.widget.Menu.superclass.configIframe.call(this,p_sType,p_aArgs,p_oMenu);}},configHideDelay:function(p_sType,p_aArgs,p_oMenu){var nHideDelay=p_aArgs[0],oMouseOutEvent=this.mouseOutEvent,oMouseOverEvent=this.mouseOverEvent,oKeyDownEvent=this.keyDownEvent;if(nHideDelay>0){if(!this._bHideDelayEventHandlersAssigned){oMouseOutEvent.subscribe(this._execHideDelay,true);oMouseOverEvent.subscribe(this._cancelHideDelay,this,true);oKeyDownEvent.subscribe(this._cancelHideDelay,this,true);this._bHideDelayEventHandlersAssigned=true;}} -else{oMouseOutEvent.unsubscribe(this._execHideDelay,this);oMouseOverEvent.unsubscribe(this._cancelHideDelay,this);oKeyDownEvent.unsubscribe(this._cancelHideDelay,this);this._bHideDelayEventHandlersAssigned=false;}},configContainer:function(p_sType,p_aArgs,p_oMenu){var oElement=p_aArgs[0];if(typeof oElement=='string'){this.cfg.setProperty("container",document.getElementById(oElement),true);}},configMaxHeight:function(p_sType,p_aArgs,p_oMenu){var nMaxHeight=p_aArgs[0],oBody=this.body,oHeader=this.header,oFooter=this.footer,fnMouseOver=this._onScrollTargetMouseOver,fnMouseOut=this._onScrollTargetMouseOut;if((nMaxHeight>0)&&(oBody.offsetHeight>nMaxHeight)){if(!this.cfg.getProperty("width")){this._setWidth();} -if(!oHeader&&!oFooter){this.setHeader(" ");this.setFooter(" ");oHeader=this.header;oFooter=this.footer;Dom.addClass(oHeader,"topscrollbar");Dom.addClass(oFooter,"bottomscrollbar");this.element.insertBefore(oHeader,oBody);this.element.appendChild(oFooter);Event.addListener(oHeader,"mouseover",fnMouseOver,this,true);Event.addListener(oHeader,"mouseout",fnMouseOut,this,true);Event.addListener(oFooter,"mouseover",fnMouseOver,this,true);Event.addListener(oFooter,"mouseout",fnMouseOut,this,true);} -var nHeight=(nMaxHeight- -(this.footer.offsetHeight+this.header.offsetHeight));Dom.setStyle(oBody,"height",(nHeight+"px"));Dom.setStyle(oBody,"overflow","hidden");} -else if(oHeader&&oFooter){Dom.setStyle(oBody,"height","auto");Dom.setStyle(oBody,"overflow","visible");Event.removeListener(oHeader,"mouseover",fnMouseOver);Event.removeListener(oHeader,"mouseout",fnMouseOut);Event.removeListener(oFooter,"mouseover",fnMouseOver);Event.removeListener(oFooter,"mouseout",fnMouseOut);this.element.removeChild(oHeader);this.element.removeChild(oFooter);this.header=null;this.footer=null;}},configClassName:function(p_sType,p_aArgs,p_oMenu){var sClassName=p_aArgs[0];if(this._sClassName){Dom.removeClass(this.element,this._sClassName);} -Dom.addClass(this.element,sClassName);this._sClassName=sClassName;},initEvents:function(){YAHOO.widget.Menu.superclass.initEvents.call(this);var CustomEvent=YAHOO.util.CustomEvent;this.mouseOverEvent=new CustomEvent("mouseOverEvent",this);this.mouseOutEvent=new CustomEvent("mouseOutEvent",this);this.mouseDownEvent=new CustomEvent("mouseDownEvent",this);this.mouseUpEvent=new CustomEvent("mouseUpEvent",this);this.clickEvent=new CustomEvent("clickEvent",this);this.keyPressEvent=new CustomEvent("keyPressEvent",this);this.keyDownEvent=new CustomEvent("keyDownEvent",this);this.keyUpEvent=new CustomEvent("keyUpEvent",this);this.itemAddedEvent=new CustomEvent("itemAddedEvent",this);this.itemRemovedEvent=new CustomEvent("itemRemovedEvent",this);},getRoot:function(){var oItem=this.parent;if(oItem){var oParentMenu=oItem.parent;return oParentMenu?oParentMenu.getRoot():this;} -else{return this;}},toString:function(){return("Menu "+this.id);},setItemGroupTitle:function(p_sGroupTitle,p_nGroupIndex){if(typeof p_sGroupTitle=="string"&&p_sGroupTitle.length>0){var nGroupIndex=typeof p_nGroupIndex=="number"?p_nGroupIndex:0,oTitle=this._aGroupTitleElements[nGroupIndex];if(oTitle){oTitle.innerHTML=p_sGroupTitle;} -else{oTitle=document.createElement(this.GROUP_TITLE_TAG_NAME);oTitle.innerHTML=p_sGroupTitle;this._aGroupTitleElements[nGroupIndex]=oTitle;} -var i=this._aGroupTitleElements.length-1,nFirstIndex;do{if(this._aGroupTitleElements[i]){Dom.removeClass(this._aGroupTitleElements[i],"first-of-type");nFirstIndex=i;}} -while(i--);if(nFirstIndex!==null){Dom.addClass(this._aGroupTitleElements[nFirstIndex],"first-of-type");}}},addItem:function(p_oItem,p_nGroupIndex){if(p_oItem){return this._addItemToGroup(p_nGroupIndex,p_oItem);}},addItems:function(p_aItems,p_nGroupIndex){if(Lang.isArray(p_aItems)){var nItems=p_aItems.length,aItems=[],oItem;for(var i=0;i0){var i=nItems-1,oItem,oSubmenu;do{oItem=aItems[i];if(oItem){oSubmenu=oItem.cfg.getProperty("submenu");if(oSubmenu){this.cfg.configChangedEvent.unsubscribe(this._onParentMenuConfigChange,oSubmenu);this.renderEvent.unsubscribe(this._onParentMenuRender,oSubmenu);} -oItem.destroy();}} -while(i--);} -if(oHeader){Event.purgeElement(oHeader);oElement.removeChild(oHeader);} -if(oFooter){Event.purgeElement(oFooter);oElement.removeChild(oFooter);} -if(oBody){Event.purgeElement(oBody);oBody.innerHTML="";} -this._aItemGroups=[];this._aListElements=[];this._aGroupTitleElements=[];},destroy:function(){Event.purgeElement(this.element);this.mouseOverEvent.unsubscribeAll();this.mouseOutEvent.unsubscribeAll();this.mouseDownEvent.unsubscribeAll();this.mouseUpEvent.unsubscribeAll();this.clickEvent.unsubscribeAll();this.keyPressEvent.unsubscribeAll();this.keyDownEvent.unsubscribeAll();this.keyUpEvent.unsubscribeAll();this.itemAddedEvent.unsubscribeAll();this.itemRemovedEvent.unsubscribeAll();YAHOO.widget.Module.textResizeEvent.unsubscribe(this._onTextResize,this);this.clearContent();this._aItemGroups=null;this._aListElements=null;this._aGroupTitleElements=null;YAHOO.widget.Menu.superclass.destroy.call(this);},setInitialFocus:function(){var oItem=this._getFirstEnabledItem();if(oItem){oItem.focus();}},setInitialSelection:function(){var oItem=this._getFirstEnabledItem();if(oItem){oItem.cfg.setProperty("selected",true);}},clearActiveItem:function(p_bBlur){if(this.cfg.getProperty("showdelay")>0){this._cancelShowDelay();} -var oActiveItem=this.activeItem;if(oActiveItem){var oConfig=oActiveItem.cfg;oConfig.setProperty("selected",false);var oSubmenu=oConfig.getProperty("submenu");if(oSubmenu){oSubmenu.hide();} -if(p_bBlur){oActiveItem.blur();}}},initDefaultConfig:function(){YAHOO.widget.Menu.superclass.initDefaultConfig.call(this);var oConfig=this.cfg;oConfig.addProperty("visible",{value:false,handler:this.configVisible,validator:this.cfg.checkBoolean});oConfig.addProperty("constraintoviewport",{value:true,handler:this.configConstrainToViewport,validator:this.cfg.checkBoolean,supercedes:["iframe","x","y","xy"]});oConfig.addProperty("position",{value:"dynamic",handler:this.configPosition,validator:this._checkPosition,supercedes:["visible"]});oConfig.addProperty("submenualignment",{value:["tl","tr"]});oConfig.addProperty("autosubmenudisplay",{value:true,validator:oConfig.checkBoolean});oConfig.addProperty("showdelay",{value:250,validator:oConfig.checkNumber});oConfig.addProperty("hidedelay",{value:0,validator:oConfig.checkNumber,handler:this.configHideDelay,suppressEvent:true});oConfig.addProperty("submenuhidedelay",{value:250,validator:oConfig.checkNumber});oConfig.addProperty("clicktohide",{value:true,validator:oConfig.checkBoolean});oConfig.addProperty("container",{value:document.body,handler:this.configContainer});oConfig.addProperty("maxheight",{value:0,validator:oConfig.checkNumber,handler:this.configMaxHeight});oConfig.addProperty("classname",{value:null,handler:this.configClassName,validator:this._checkString});}});})();(function(){var Dom=YAHOO.util.Dom,Module=YAHOO.widget.Module,Menu=YAHOO.widget.Menu,m_oMenuItemElement=null,m_oSubmenuIndicator=null,m_oCheckedIndicator=null;YAHOO.widget.MenuItem=function(p_oObject,p_oConfig){if(p_oObject){if(p_oConfig){this.parent=p_oConfig.parent;this.value=p_oConfig.value;this.id=p_oConfig.id;} -this.init(p_oObject,p_oConfig);}};YAHOO.widget.MenuItem.prototype={SUBMENU_INDICATOR_IMAGE_PATH:"nt/ic/ut/alt1/menuarorght8_nrm_1.gif",SELECTED_SUBMENU_INDICATOR_IMAGE_PATH:"nt/ic/ut/alt1/menuarorght8_hov_1.gif",DISABLED_SUBMENU_INDICATOR_IMAGE_PATH:"nt/ic/ut/alt1/menuarorght8_dim_1.gif",COLLAPSED_SUBMENU_INDICATOR_ALT_TEXT:"Collapsed. Click to expand.",EXPANDED_SUBMENU_INDICATOR_ALT_TEXT:"Expanded. Click to collapse.",DISABLED_SUBMENU_INDICATOR_ALT_TEXT:"Disabled.",COLLAPSED_SUBMENU_INDICATOR_TEXT:"Submenu collapsed. Click to expand submenu.",EXPANDED_SUBMENU_INDICATOR_TEXT:"Submenu expanded. Click to collapse submenu.",DISABLED_SUBMENU_INDICATOR_TEXT:"Submenu collapsed. (Item disabled.)",CHECKED_IMAGE_PATH:"nt/ic/ut/bsc/menuchk8_nrm_1.gif",SELECTED_CHECKED_IMAGE_PATH:"nt/ic/ut/bsc/menuchk8_hov_1.gif",DISABLED_CHECKED_IMAGE_PATH:"nt/ic/ut/bsc/menuchk8_dim_1.gif",CHECKED_IMAGE_ALT_TEXT:"Checked.",DISABLED_CHECKED_IMAGE_ALT_TEXT:"Checked. (Item disabled.)",CHECKED_TEXT:"Menu item checked.",DISABLED_CHECKED_TEXT:"Checked. (Item disabled.)",CSS_CLASS_NAME:"yuimenuitem",SUBMENU_TYPE:null,IMG_ROOT:"http://us.i1.yimg.com/us.yimg.com/i/",IMG_ROOT_SSL:"https://a248.e.akamai.net/sec.yimg.com/i/",_oAnchor:null,_oText:null,_oHelpTextEM:null,_oSubmenu:null,_checkImage:null,_oCheckedIndicator:null,_oOnclickAttributeValue:null,_sClassName:null,constructor:YAHOO.widget.MenuItem,imageRoot:null,isSecure:Module.prototype.isSecure,index:null,groupIndex:null,parent:null,element:null,srcElement:null,value:null,submenuIndicator:null,browser:Module.prototype.browser,id:null,destroyEvent:null,mouseOverEvent:null,mouseOutEvent:null,mouseDownEvent:null,mouseUpEvent:null,clickEvent:null,keyPressEvent:null,keyDownEvent:null,keyUpEvent:null,focusEvent:null,blurEvent:null,init:function(p_oObject,p_oConfig){if(!this.SUBMENU_TYPE){this.SUBMENU_TYPE=Menu;} -this.cfg=new YAHOO.util.Config(this);this.initDefaultConfig();var oConfig=this.cfg;if(this._checkString(p_oObject)){this._createRootNodeStructure();oConfig.setProperty("text",p_oObject);} -else if(this._checkDOMNode(p_oObject)){switch(p_oObject.tagName.toUpperCase()){case"OPTION":this._createRootNodeStructure();oConfig.setProperty("text",p_oObject.text);this.srcElement=p_oObject;break;case"OPTGROUP":this._createRootNodeStructure();oConfig.setProperty("text",p_oObject.label);this.srcElement=p_oObject;this._initSubTree();break;case"LI":var oAnchor=this._getFirstElement(p_oObject,"A"),sURL="#",sTarget,sText;if(oAnchor){sURL=oAnchor.getAttribute("href");sTarget=oAnchor.getAttribute("target");if(oAnchor.innerText){sText=oAnchor.innerText;} -else{var oRange=oAnchor.ownerDocument.createRange();oRange.selectNodeContents(oAnchor);sText=oRange.toString();}} -else{var oText=p_oObject.firstChild;sText=oText.nodeValue;oAnchor=document.createElement("a");oAnchor.setAttribute("href",sURL);p_oObject.replaceChild(oAnchor,oText);oAnchor.appendChild(oText);} -this.srcElement=p_oObject;this.element=p_oObject;this._oAnchor=oAnchor;var oEmphasisNode=this._getFirstElement(oAnchor),bEmphasis=false,bStrongEmphasis=false;if(oEmphasisNode){this._oText=oEmphasisNode.firstChild;switch(oEmphasisNode.tagName.toUpperCase()){case"EM":bEmphasis=true;break;case"STRONG":bStrongEmphasis=true;break;}} -else{this._oText=oAnchor.firstChild;} -oConfig.setProperty("text",sText,true);oConfig.setProperty("url",sURL,true);oConfig.setProperty("target",sTarget,true);oConfig.setProperty("emphasis",bEmphasis,true);oConfig.setProperty("strongemphasis",bStrongEmphasis,true);this._initSubTree();break;}} -if(this.element){var sId=this.element.id;if(!sId){sId=this.id||Dom.generateId();this.element.id=sId;} -this.id=sId;Dom.addClass(this.element,this.CSS_CLASS_NAME);var CustomEvent=YAHOO.util.CustomEvent;this.destroyEvent=new CustomEvent("destroyEvent",this);this.mouseOverEvent=new CustomEvent("mouseOverEvent",this);this.mouseOutEvent=new CustomEvent("mouseOutEvent",this);this.mouseDownEvent=new CustomEvent("mouseDownEvent",this);this.mouseUpEvent=new CustomEvent("mouseUpEvent",this);this.clickEvent=new CustomEvent("clickEvent",this);this.keyPressEvent=new CustomEvent("keyPressEvent",this);this.keyDownEvent=new CustomEvent("keyDownEvent",this);this.keyUpEvent=new CustomEvent("keyUpEvent",this);this.focusEvent=new CustomEvent("focusEvent",this);this.blurEvent=new CustomEvent("blurEvent",this);if(p_oConfig){oConfig.applyConfig(p_oConfig);} -oConfig.fireQueue();}},_getFirstElement:function(p_oElement,p_sTagName){var oFirstChild=p_oElement.firstChild,oElement;if(oFirstChild){if(oFirstChild.nodeType==1){oElement=oFirstChild;} -else{var oNextSibling=oFirstChild.nextSibling;if(oNextSibling&&oNextSibling.nodeType==1){oElement=oNextSibling;}}} -if(p_sTagName){return(oElement&&oElement.tagName.toUpperCase()==p_sTagName)?oElement:false;} -return oElement;},_checkString:function(p_oObject){return(typeof p_oObject=="string");},_checkDOMNode:function(p_oObject){return(p_oObject&&p_oObject.tagName);},_createRootNodeStructure:function(){if(!m_oMenuItemElement){m_oMenuItemElement=document.createElement("li");m_oMenuItemElement.innerHTML="s";} -this.element=m_oMenuItemElement.cloneNode(true);this._oAnchor=this.element.firstChild;this._oText=this._oAnchor.firstChild;this.element.appendChild(this._oAnchor);},_initSubTree:function(){var oSrcEl=this.srcElement,oConfig=this.cfg;if(oSrcEl.childNodes.length>0){if(this.parent.lazyLoad&&this.parent.srcElement&&this.parent.srcElement.tagName.toUpperCase()=="SELECT"){oConfig.setProperty("submenu",{id:Dom.generateId(),itemdata:oSrcEl.childNodes});} -else{var oNode=oSrcEl.firstChild,aOptions=[];do{if(oNode&&oNode.tagName){switch(oNode.tagName.toUpperCase()){case"DIV":oConfig.setProperty("submenu",oNode);break;case"OPTION":aOptions[aOptions.length]=oNode;break;}}} -while((oNode=oNode.nextSibling));var nOptions=aOptions.length;if(nOptions>0){var oMenu=new this.SUBMENU_TYPE(Dom.generateId());oConfig.setProperty("submenu",oMenu);for(var n=0;n0){oAnchor.setAttribute("target",sTarget);} -else{oAnchor.removeAttribute("target");}},configEmphasis:function(p_sType,p_aArgs,p_oItem){var bEmphasis=p_aArgs[0],oAnchor=this._oAnchor,oText=this._oText,oConfig=this.cfg,oEM;if(bEmphasis&&oConfig.getProperty("strongemphasis")){oConfig.setProperty("strongemphasis",false);} -if(oAnchor){if(bEmphasis){oEM=document.createElement("em");oEM.appendChild(oText);oAnchor.appendChild(oEM);} -else{oEM=this._getFirstElement(oAnchor,"EM");if(oEM){oAnchor.removeChild(oEM);oAnchor.appendChild(oText);}}}},configStrongEmphasis:function(p_sType,p_aArgs,p_oItem){var bStrongEmphasis=p_aArgs[0],oAnchor=this._oAnchor,oText=this._oText,oConfig=this.cfg,oStrong;if(bStrongEmphasis&&oConfig.getProperty("emphasis")){oConfig.setProperty("emphasis",false);} -if(oAnchor){if(bStrongEmphasis){oStrong=document.createElement("strong");oStrong.appendChild(oText);oAnchor.appendChild(oStrong);} -else{oStrong=this._getFirstElement(oAnchor,"STRONG");if(oStrong){oAnchor.removeChild(oStrong);oAnchor.appendChild(oText);}}}},configChecked:function(p_sType,p_aArgs,p_oItem){var bChecked=p_aArgs[0],oEl=this.element,oConfig=this.cfg,oEM;if(bChecked){if(!m_oCheckedIndicator){m_oCheckedIndicator=document.createElement("em");m_oCheckedIndicator.innerHTML=this.CHECKED_TEXT;m_oCheckedIndicator.className="checkedindicator";} -oEM=m_oCheckedIndicator.cloneNode(true);var oSubmenu=this.cfg.getProperty("submenu");if(oSubmenu&&oSubmenu.element){oEl.insertBefore(oEM,oSubmenu.element);} -else{oEl.appendChild(oEM);} -Dom.addClass(oEl,"checked");this._oCheckedIndicator=oEM;if(oConfig.getProperty("disabled")){oConfig.refireEvent("disabled");} -if(oConfig.getProperty("selected")){oConfig.refireEvent("selected");}} -else{oEM=this._oCheckedIndicator;Dom.removeClass(oEl,"checked");if(oEM){oEl.removeChild(oEM);} -this._oCheckedIndicator=null;}},configDisabled:function(p_sType,p_aArgs,p_oItem){var bDisabled=p_aArgs[0],oConfig=this.cfg,oAnchor=this._oAnchor,aNodes=[this.element,oAnchor],oHelpText=this._oHelpTextEM,oCheckedIndicator=this._oCheckedIndicator,oSubmenuIndicator=this.submenuIndicator,i=1;if(oHelpText){i++;aNodes[i]=oHelpText;} -if(oCheckedIndicator){oCheckedIndicator.firstChild.nodeValue=bDisabled?this.DISABLED_CHECKED_TEXT:this.CHECKED_TEXT;i++;aNodes[i]=oCheckedIndicator;} -if(oSubmenuIndicator){oSubmenuIndicator.firstChild.nodeValue=bDisabled?this.DISABLED_SUBMENU_INDICATOR_TEXT:this.COLLAPSED_SUBMENU_INDICATOR_TEXT;i++;aNodes[i]=oSubmenuIndicator;} -if(bDisabled){if(oConfig.getProperty("selected")){oConfig.setProperty("selected",false);} -oAnchor.removeAttribute("href");Dom.addClass(aNodes,"disabled");} -else{oAnchor.setAttribute("href",oConfig.getProperty("url"));Dom.removeClass(aNodes,"disabled");}},configSelected:function(p_sType,p_aArgs,p_oItem){if(!this.cfg.getProperty("disabled")){var bSelected=p_aArgs[0],oHelpText=this._oHelpTextEM,oSubmenuIndicator=this.submenuIndicator,oCheckedIndicator=this._oCheckedIndicator,aNodes=[this.element,this._oAnchor],i=1;if(oHelpText){i++;aNodes[i]=oHelpText;} -if(oSubmenuIndicator){i++;aNodes[i]=oSubmenuIndicator;} -if(oCheckedIndicator){i++;aNodes[i]=oCheckedIndicator;} -if(bSelected){Dom.addClass(aNodes,"selected");} -else{Dom.removeClass(aNodes,"selected");}}},configSubmenu:function(p_sType,p_aArgs,p_oItem){var oEl=this.element,oSubmenu=p_aArgs[0],oSubmenuIndicator=this.submenuIndicator,oConfig=this.cfg,aNodes=[this.element,this._oAnchor],bLazyLoad=this.parent&&this.parent.lazyLoad,oMenu;if(oSubmenu){if(oSubmenu instanceof Menu){oMenu=oSubmenu;oMenu.parent=this;oMenu.lazyLoad=bLazyLoad;} -else if(typeof oSubmenu=="object"&&oSubmenu.id&&!oSubmenu.nodeType){var sSubmenuId=oSubmenu.id,oSubmenuConfig=oSubmenu;oSubmenuConfig.lazyload=bLazyLoad;oSubmenuConfig.parent=this;oMenu=new this.SUBMENU_TYPE(sSubmenuId,oSubmenuConfig);this.cfg.setProperty("submenu",oMenu,true);} -else{oMenu=new this.SUBMENU_TYPE(oSubmenu,{lazyload:bLazyLoad,parent:this});this.cfg.setProperty("submenu",oMenu,true);} -if(oMenu){this._oSubmenu=oMenu;if(!oSubmenuIndicator){if(!m_oSubmenuIndicator){m_oSubmenuIndicator=document.createElement("em");m_oSubmenuIndicator.innerHTML=this.COLLAPSED_SUBMENU_INDICATOR_TEXT;m_oSubmenuIndicator.className="submenuindicator";} -oSubmenuIndicator=m_oSubmenuIndicator.cloneNode(true);if(oMenu.element.parentNode==oEl){if(this.browser=="opera"){oEl.appendChild(oSubmenuIndicator);oMenu.renderEvent.subscribe(function(){oSubmenuIndicator.parentNode.insertBefore(oSubmenuIndicator,oMenu.element);});} -else{oEl.insertBefore(oSubmenuIndicator,oMenu.element);}} -else{oEl.appendChild(oSubmenuIndicator);} -this.submenuIndicator=oSubmenuIndicator;} -Dom.addClass(aNodes,"hassubmenu");if(oConfig.getProperty("disabled")){oConfig.refireEvent("disabled");} -if(oConfig.getProperty("selected")){oConfig.refireEvent("selected");}}} -else{Dom.removeClass(aNodes,"hassubmenu");if(oSubmenuIndicator){oEl.removeChild(oSubmenuIndicator);} -if(this._oSubmenu){this._oSubmenu.destroy();}}},configOnClick:function(p_sType,p_aArgs,p_oItem){var oObject=p_aArgs[0];if(this._oOnclickAttributeValue&&(this._oOnclickAttributeValue!=oObject)){this.clickEvent.unsubscribe(this._oOnclickAttributeValue.fn,this._oOnclickAttributeValue.obj);this._oOnclickAttributeValue=null;} -if(!this._oOnclickAttributeValue&&typeof oObject=="object"&&typeof oObject.fn=="function"){this.clickEvent.subscribe(oObject.fn,(oObject.obj||this),oObject.scope);this._oOnclickAttributeValue=oObject;}},configClassName:function(p_sType,p_aArgs,p_oItem){var sClassName=p_aArgs[0];if(this._sClassName){Dom.removeClass(this.element,this._sClassName);} -Dom.addClass(this.element,sClassName);this._sClassName=sClassName;},initDefaultConfig:function(){var oConfig=this.cfg,CheckBoolean=oConfig.checkBoolean;oConfig.addProperty("text",{value:"",handler:this.configText,validator:this._checkString,suppressEvent:true});oConfig.addProperty("helptext",{handler:this.configHelpText});oConfig.addProperty("url",{value:"#",handler:this.configURL,suppressEvent:true});oConfig.addProperty("target",{handler:this.configTarget,suppressEvent:true});oConfig.addProperty("emphasis",{value:false,handler:this.configEmphasis,validator:CheckBoolean,suppressEvent:true});oConfig.addProperty("strongemphasis",{value:false,handler:this.configStrongEmphasis,validator:CheckBoolean,suppressEvent:true});oConfig.addProperty("checked",{value:false,handler:this.configChecked,validator:this.cfg.checkBoolean,suppressEvent:true,supercedes:["disabled"]});oConfig.addProperty("disabled",{value:false,handler:this.configDisabled,validator:CheckBoolean,suppressEvent:true});oConfig.addProperty("selected",{value:false,handler:this.configSelected,validator:CheckBoolean,suppressEvent:true});oConfig.addProperty("submenu",{handler:this.configSubmenu});oConfig.addProperty("onclick",{handler:this.configOnClick});oConfig.addProperty("classname",{value:null,handler:this.configClassName,validator:this._checkString});},getNextEnabledSibling:function(){if(this.parent instanceof Menu){var nGroupIndex=this.groupIndex;function getNextArrayItem(p_aArray,p_nStartIndex){return p_aArray[p_nStartIndex]||getNextArrayItem(p_aArray,(p_nStartIndex+1));} -var aItemGroups=this.parent.getItemGroups(),oNextItem;if(this.index<(aItemGroups[nGroupIndex].length-1)){oNextItem=getNextArrayItem(aItemGroups[nGroupIndex],(this.index+1));} -else{var nNextGroupIndex;if(nGroupIndex<(aItemGroups.length-1)){nNextGroupIndex=nGroupIndex+1;} -else{nNextGroupIndex=0;} -var aNextGroup=getNextArrayItem(aItemGroups,nNextGroupIndex);oNextItem=getNextArrayItem(aNextGroup,0);} -return(oNextItem.cfg.getProperty("disabled")||oNextItem.element.style.display=="none")?oNextItem.getNextEnabledSibling():oNextItem;}},getPreviousEnabledSibling:function(){if(this.parent instanceof Menu){var nGroupIndex=this.groupIndex;function getPreviousArrayItem(p_aArray,p_nStartIndex){return p_aArray[p_nStartIndex]||getPreviousArrayItem(p_aArray,(p_nStartIndex-1));} -function getFirstItemIndex(p_aArray,p_nStartIndex){return p_aArray[p_nStartIndex]?p_nStartIndex:getFirstItemIndex(p_aArray,(p_nStartIndex+1));} -var aItemGroups=this.parent.getItemGroups(),oPreviousItem;if(this.index>getFirstItemIndex(aItemGroups[nGroupIndex],0)){oPreviousItem=getPreviousArrayItem(aItemGroups[nGroupIndex],(this.index-1));} -else{var nPreviousGroupIndex;if(nGroupIndex>getFirstItemIndex(aItemGroups,0)){nPreviousGroupIndex=nGroupIndex-1;} -else{nPreviousGroupIndex=aItemGroups.length-1;} -var aPreviousGroup=getPreviousArrayItem(aItemGroups,nPreviousGroupIndex);oPreviousItem=getPreviousArrayItem(aPreviousGroup,(aPreviousGroup.length-1));} -return(oPreviousItem.cfg.getProperty("disabled")||oPreviousItem.element.style.display=="none")?oPreviousItem.getPreviousEnabledSibling():oPreviousItem;}},focus:function(){var oParent=this.parent,oAnchor=this._oAnchor,oActiveItem=oParent.activeItem;function setFocus(){try{oAnchor.focus();} -catch(e){}} -if(!this.cfg.getProperty("disabled")&&oParent&&oParent.cfg.getProperty("visible")&&this.element.style.display!="none"){if(oActiveItem){oActiveItem.blur();} -window.setTimeout(setFocus,0);this.focusEvent.fire();}},blur:function(){var oParent=this.parent;if(!this.cfg.getProperty("disabled")&&oParent&&Dom.getStyle(oParent.element,"visibility")=="visible"){this._oAnchor.blur();this.blurEvent.fire();}},destroy:function(){var oEl=this.element;if(oEl){var oSubmenu=this.cfg.getProperty("submenu");if(oSubmenu){oSubmenu.destroy();} -this.mouseOverEvent.unsubscribeAll();this.mouseOutEvent.unsubscribeAll();this.mouseDownEvent.unsubscribeAll();this.mouseUpEvent.unsubscribeAll();this.clickEvent.unsubscribeAll();this.keyPressEvent.unsubscribeAll();this.keyDownEvent.unsubscribeAll();this.keyUpEvent.unsubscribeAll();this.focusEvent.unsubscribeAll();this.blurEvent.unsubscribeAll();this.cfg.configChangedEvent.unsubscribeAll();var oParentNode=oEl.parentNode;if(oParentNode){oParentNode.removeChild(oEl);this.destroyEvent.fire();} -this.destroyEvent.unsubscribeAll();}},toString:function(){return("MenuItem: "+this.cfg.getProperty("text"));}};})();YAHOO.widget.ContextMenu=function(p_oElement,p_oConfig){YAHOO.widget.ContextMenu.superclass.constructor.call(this,p_oElement,p_oConfig);};YAHOO.lang.extend(YAHOO.widget.ContextMenu,YAHOO.widget.Menu,{_oTrigger:null,_bCancelled:false,contextEventTarget:null,triggerContextMenuEvent:null,init:function(p_oElement,p_oConfig){if(!this.ITEM_TYPE){this.ITEM_TYPE=YAHOO.widget.ContextMenuItem;} -YAHOO.widget.ContextMenu.superclass.init.call(this,p_oElement);this.beforeInitEvent.fire(YAHOO.widget.ContextMenu);if(p_oConfig){this.cfg.applyConfig(p_oConfig,true);} -this.initEvent.fire(YAHOO.widget.ContextMenu);},initEvents:function(){YAHOO.widget.ContextMenu.superclass.initEvents.call(this);this.triggerContextMenuEvent=new YAHOO.util.CustomEvent("triggerContextMenuEvent",this);},cancel:function(){this._bCancelled=true;},_removeEventHandlers:function(){var Event=YAHOO.util.Event,oTrigger=this._oTrigger,bOpera=(this.browser=="opera");Event.removeListener(oTrigger,(bOpera?"mousedown":"contextmenu"),this._onTriggerContextMenu);if(bOpera){Event.removeListener(oTrigger,"click",this._onTriggerClick);}},_onTriggerClick:function(p_oEvent,p_oMenu){if(p_oEvent.ctrlKey){YAHOO.util.Event.stopEvent(p_oEvent);}},_onTriggerContextMenu:function(p_oEvent,p_oMenu){var Event=YAHOO.util.Event;if(p_oEvent.type=="mousedown"&&!p_oEvent.ctrlKey){return;} -Event.stopEvent(p_oEvent);YAHOO.widget.MenuManager.hideVisible();this.contextEventTarget=Event.getTarget(p_oEvent);this.triggerContextMenuEvent.fire(p_oEvent);if(!this._bCancelled){this.cfg.setProperty("xy",Event.getXY(p_oEvent));this.show();} -this._bCancelled=false;},toString:function(){return("ContextMenu "+this.id);},initDefaultConfig:function(){YAHOO.widget.ContextMenu.superclass.initDefaultConfig.call(this);this.cfg.addProperty("trigger",{handler:this.configTrigger});},destroy:function(){this._removeEventHandlers();YAHOO.widget.ContextMenu.superclass.destroy.call(this);},configTrigger:function(p_sType,p_aArgs,p_oMenu){var Event=YAHOO.util.Event,oTrigger=p_aArgs[0];if(oTrigger){if(this._oTrigger){this._removeEventHandlers();} -this._oTrigger=oTrigger;var bOpera=(this.browser=="opera");Event.addListener(oTrigger,(bOpera?"mousedown":"contextmenu"),this._onTriggerContextMenu,this,true);if(bOpera){Event.addListener(oTrigger,"click",this._onTriggerClick,this,true);}} -else{this._removeEventHandlers();}}});YAHOO.widget.ContextMenuItem=function(p_oObject,p_oConfig){YAHOO.widget.ContextMenuItem.superclass.constructor.call(this,p_oObject,p_oConfig);};YAHOO.lang.extend(YAHOO.widget.ContextMenuItem,YAHOO.widget.MenuItem,{init:function(p_oObject,p_oConfig){if(!this.SUBMENU_TYPE){this.SUBMENU_TYPE=YAHOO.widget.ContextMenu;} -YAHOO.widget.ContextMenuItem.superclass.init.call(this,p_oObject);var oConfig=this.cfg;if(p_oConfig){oConfig.applyConfig(p_oConfig,true);} -oConfig.fireQueue();},toString:function(){return("ContextMenuItem: "+this.cfg.getProperty("text"));}});YAHOO.widget.MenuBar=function(p_oElement,p_oConfig){YAHOO.widget.MenuBar.superclass.constructor.call(this,p_oElement,p_oConfig);};YAHOO.lang.extend(YAHOO.widget.MenuBar,YAHOO.widget.Menu,{init:function(p_oElement,p_oConfig){if(!this.ITEM_TYPE){this.ITEM_TYPE=YAHOO.widget.MenuBarItem;} -YAHOO.widget.MenuBar.superclass.init.call(this,p_oElement);this.beforeInitEvent.fire(YAHOO.widget.MenuBar);if(p_oConfig){this.cfg.applyConfig(p_oConfig,true);} -this.initEvent.fire(YAHOO.widget.MenuBar);},CSS_CLASS_NAME:"yuimenubar",_onKeyDown:function(p_sType,p_aArgs,p_oMenuBar){var Event=YAHOO.util.Event,oEvent=p_aArgs[0],oItem=p_aArgs[1],oSubmenu;if(oItem&&!oItem.cfg.getProperty("disabled")){var oItemCfg=oItem.cfg;switch(oEvent.keyCode){case 37:case 39:if(oItem==this.activeItem&&!oItemCfg.getProperty("selected")){oItemCfg.setProperty("selected",true);} -else{var oNextItem=(oEvent.keyCode==37)?oItem.getPreviousEnabledSibling():oItem.getNextEnabledSibling();if(oNextItem){this.clearActiveItem();oNextItem.cfg.setProperty("selected",true);if(this.cfg.getProperty("autosubmenudisplay")){oSubmenu=oNextItem.cfg.getProperty("submenu");if(oSubmenu){oSubmenu.show();oSubmenu.activeItem.blur();oSubmenu.activeItem=null;}} -oNextItem.focus();}} -Event.preventDefault(oEvent);break;case 40:if(this.activeItem!=oItem){this.clearActiveItem();oItemCfg.setProperty("selected",true);oItem.focus();} -oSubmenu=oItemCfg.getProperty("submenu");if(oSubmenu){if(oSubmenu.cfg.getProperty("visible")){oSubmenu.setInitialSelection();oSubmenu.setInitialFocus();} -else{oSubmenu.show();}} -Event.preventDefault(oEvent);break;}} -if(oEvent.keyCode==27&&this.activeItem){oSubmenu=this.activeItem.cfg.getProperty("submenu");if(oSubmenu&&oSubmenu.cfg.getProperty("visible")){oSubmenu.hide();this.activeItem.focus();} -else{this.activeItem.cfg.setProperty("selected",false);this.activeItem.blur();} -Event.preventDefault(oEvent);}},_onClick:function(p_sType,p_aArgs,p_oMenuBar){YAHOO.widget.MenuBar.superclass._onClick.call(this,p_sType,p_aArgs,p_oMenuBar);var oItem=p_aArgs[1];if(oItem&&!oItem.cfg.getProperty("disabled")){var Event=YAHOO.util.Event,Dom=YAHOO.util.Dom,oEvent=p_aArgs[0],oTarget=Event.getTarget(oEvent),oActiveItem=this.activeItem,oConfig=this.cfg;if(oActiveItem&&oActiveItem!=oItem){this.clearActiveItem();} -oItem.cfg.setProperty("selected",true);oItem.focus();var oSubmenu=oItem.cfg.getProperty("submenu");if(oSubmenu&&oTarget!=oItem.submenuIndicator){if(oSubmenu.cfg.getProperty("visible")){oSubmenu.hide();} -else{oSubmenu.show();}}}},toString:function(){return("MenuBar "+this.id);},initDefaultConfig:function(){YAHOO.widget.MenuBar.superclass.initDefaultConfig.call(this);var oConfig=this.cfg;oConfig.addProperty("position",{value:"static",handler:this.configPosition,validator:this._checkPosition,supercedes:["visible"]});oConfig.addProperty("submenualignment",{value:["tl","bl"]});oConfig.addProperty("autosubmenudisplay",{value:false,validator:oConfig.checkBoolean});}});YAHOO.widget.MenuBarItem=function(p_oObject,p_oConfig){YAHOO.widget.MenuBarItem.superclass.constructor.call(this,p_oObject,p_oConfig);};YAHOO.lang.extend(YAHOO.widget.MenuBarItem,YAHOO.widget.MenuItem,{init:function(p_oObject,p_oConfig){if(!this.SUBMENU_TYPE){this.SUBMENU_TYPE=YAHOO.widget.Menu;} -YAHOO.widget.MenuBarItem.superclass.init.call(this,p_oObject);var oConfig=this.cfg;if(p_oConfig){oConfig.applyConfig(p_oConfig,true);} -oConfig.fireQueue();},CSS_CLASS_NAME:"yuimenubaritem",toString:function(){return("MenuBarItem: "+this.cfg.getProperty("text"));}});YAHOO.register("menu",YAHOO.widget.Menu,{version:"2.2.0",build:"127"}); \ No newline at end of file diff --git a/interface/ispconfig/interface/js/yui/menu/menu.js b/interface/ispconfig/interface/js/yui/menu/menu.js deleted file mode 100644 index 37cb6048d..000000000 --- a/interface/ispconfig/interface/js/yui/menu/menu.js +++ /dev/null @@ -1,8265 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ - - -/** -* @module menu -* @description

    The Menu family of components features a collection of -* controls that make it easy to add menus to your website or web application. -* With the Menu Controls you can create website fly-out menus, customized -* context menus, or application-style menu bars with just a small amount of -* scripting.

    The Menu family of controls features:

    -*
      -*
    • Screen-reader accessibility.
    • -*
    • Keyboard and mouse navigation.
    • -*
    • A rich event model that provides access to all of a menu's -* interesting moments.
    • -*
    • Support for -* Progressive -* Enhancement; Menus can be created from simple, -* semantic markup on the page or purely through JavaScript.
    • -*
    -* @title Menu -* @namespace YAHOO.widget -* @requires Event, Dom, Container -*/ -(function() { - -var Dom = YAHOO.util.Dom, - Event = YAHOO.util.Event; - -/** -* Singleton that manages a collection of all menus and menu items. Listens for -* DOM events at the document level and dispatches the events to the -* corresponding menu or menu item. -* -* @namespace YAHOO.widget -* @class MenuManager -* @static -*/ -YAHOO.widget.MenuManager = function() { - - // Private member variables - - - // Flag indicating if the DOM event handlers have been attached - - var m_bInitializedEventHandlers = false, - - - // Collection of menus - - m_oMenus = {}, - - - // Collection of menu items - - m_oItems = {}, - - - // Collection of visible menus - - m_oVisibleMenus = {}, - - me = this; - - - - - // Private methods - - - /** - * @method addItem - * @description Adds an item to the collection of known menu items. - * @private - * @param {YAHOO.widget.MenuItem} p_oItem Object specifying the MenuItem - * instance to be added. - */ - function addItem(p_oItem) { - - var sId = p_oItem.id; - - if(p_oItem && m_oItems[sId] != p_oItem) { - - m_oItems[sId] = p_oItem; - - p_oItem.destroyEvent.subscribe(onItemDestroy, p_oItem); - - - } - - } - - - /** - * @method removeItem - * @description Removes an item from the collection of known menu items. - * @private - * @param {YAHOO.widget.MenuItem} p_oItem Object specifying the MenuItem - * instance to be removed. - */ - function removeItem(p_oItem) { - - var sId = p_oItem.id; - - if(sId && m_oItems[sId]) { - - delete m_oItems[sId]; - - - } - - } - - - /** - * @method getMenuRootElement - * @description Finds the root DIV node of a menu or the root LI node of a - * menu item. - * @private - * @param {HTMLElement} p_oElement Object specifying - * an HTML element. - */ - function getMenuRootElement(p_oElement) { - - var oParentNode; - - if(p_oElement && p_oElement.tagName) { - - switch(p_oElement.tagName.toUpperCase()) { - - case "DIV": - - oParentNode = p_oElement.parentNode; - - // Check if the DIV is the inner "body" node of a menu - - if( - ( - Dom.hasClass(p_oElement, "hd") || - Dom.hasClass(p_oElement, "bd") || - Dom.hasClass(p_oElement, "ft") - ) - && - oParentNode && - oParentNode.tagName && - oParentNode.tagName.toUpperCase() == "DIV" - ) { - - return oParentNode; - - } - else { - - return p_oElement; - - } - - break; - - case "LI": - - return p_oElement; - - default: - - oParentNode = p_oElement.parentNode; - - if(oParentNode) { - - return getMenuRootElement(oParentNode); - - } - - break; - - } - - } - - } - - - - // Private event handlers - - - /** - * @method onDOMEvent - * @description Generic, global event handler for all of a menu's DOM-based - * events. This listens for events against the document object. If the - * target of a given event is a member of a menu or menu item's DOM, the - * instance's corresponding Custom Event is fired. - * @private - * @param {Event} p_oEvent Object representing the DOM event object passed - * back by the event utility (YAHOO.util.Event). - */ - function onDOMEvent(p_oEvent) { - - // Get the target node of the DOM event - - var oTarget = Event.getTarget(p_oEvent), - - - // See if the target of the event was a menu, or a menu item - - oElement = getMenuRootElement(oTarget), - oMenuItem, - oMenu; - - - if(oElement) { - - var sTagName = oElement.tagName.toUpperCase(); - - if(sTagName == "LI") { - - var sId = oElement.id; - - if(sId && m_oItems[sId]) { - - oMenuItem = m_oItems[sId]; - oMenu = oMenuItem.parent; - - } - - } - else if(sTagName == "DIV") { - - if(oElement.id) { - - oMenu = m_oMenus[oElement.id]; - - } - - } - - } - - if(oMenu) { - - // Map of DOM event names to CustomEvent names - - var oEventTypes = { - "click": "clickEvent", - "mousedown": "mouseDownEvent", - "mouseup": "mouseUpEvent", - "mouseover": "mouseOverEvent", - "mouseout": "mouseOutEvent", - "keydown": "keyDownEvent", - "keyup": "keyUpEvent", - "keypress": "keyPressEvent" - }, - - sCustomEventType = oEventTypes[p_oEvent.type]; - - - // Fire the Custom Even that corresponds the current DOM event - - if(oMenuItem && !oMenuItem.cfg.getProperty("disabled")) { - - oMenuItem[sCustomEventType].fire(p_oEvent); - - } - - oMenu[sCustomEventType].fire(p_oEvent, oMenuItem); - - } - else if(p_oEvent.type == "mousedown") { - - - /* - If the target of the event wasn't a menu, hide all - dynamically positioned menus - */ - - var oActiveItem; - - for(var i in m_oMenus) { - - if(m_oMenus.hasOwnProperty(i)) { - - oMenu = m_oMenus[i]; - - if( - oMenu.cfg.getProperty("clicktohide") && - oMenu.cfg.getProperty("position") == "dynamic" - ) { - - oMenu.hide(); - - } - else { - - oMenu.clearActiveItem(true); - - } - - } - - } - - } - - } - - - /** - * @method onMenuDestroy - * @description "destroy" event handler for a menu. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that - * fired the event. - */ - function onMenuDestroy(p_sType, p_aArgs, p_oMenu) { - - if(p_oMenu && m_oMenus[p_oMenu.id]) { - - delete m_oMenus[p_oMenu.id]; - - - } - - } - - - /** - * @method onItemDestroy - * @description "destroy" event handler for a MenuItem instance. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - function onItemDestroy(p_sType, p_aArgs, p_oItem) { - - var sId = p_oItem.id; - - if(sId && m_oItems[sId]) { - - delete m_oItems[sId]; - - } - - } - - - /** - * @method onMenuVisibleConfigChange - * @description Event handler for when the "visible" configuration property - * of a Menu instance changes. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that - * fired the event. - */ - function onMenuVisibleConfigChange(p_sType, p_aArgs, p_oMenu) { - - var bVisible = p_aArgs[0]; - - if(bVisible) { - - m_oVisibleMenus[p_oMenu.id] = p_oMenu; - - - } - else if(m_oVisibleMenus[p_oMenu.id]) { - - delete m_oVisibleMenus[p_oMenu.id]; - - - } - - } - - - /** - * @method onItemAdded - * @description "itemadded" event handler for a Menu instance. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - */ - function onItemAdded(p_sType, p_aArgs) { - - addItem(p_aArgs[0]); - - } - - - /** - * @method onItemRemoved - * @description "itemremoved" event handler for a Menu instance. - * @private - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - */ - function onItemRemoved(p_sType, p_aArgs) { - - removeItem(p_aArgs[0]); - - } - - - - return { - - // Privileged methods - - - /** - * @method addMenu - * @description Adds a menu to the collection of known menus. - * @param {YAHOO.widget.Menu} p_oMenu Object specifying the Menu - * instance to be added. - */ - addMenu: function(p_oMenu) { - - if(p_oMenu && p_oMenu.id && !m_oMenus[p_oMenu.id]) { - - m_oMenus[p_oMenu.id] = p_oMenu; - - - if(!m_bInitializedEventHandlers) { - - var oDoc = document; - - Event.addListener(oDoc, "mouseover", onDOMEvent, me, true); - Event.addListener(oDoc, "mouseout", onDOMEvent, me, true); - Event.addListener(oDoc, "mousedown", onDOMEvent, me, true); - Event.addListener(oDoc, "mouseup", onDOMEvent, me, true); - Event.addListener(oDoc, "click", onDOMEvent, me, true); - Event.addListener(oDoc, "keydown", onDOMEvent, me, true); - Event.addListener(oDoc, "keyup", onDOMEvent, me, true); - Event.addListener(oDoc, "keypress", onDOMEvent, me, true); - - m_bInitializedEventHandlers = true; - - - } - - p_oMenu.destroyEvent.subscribe(onMenuDestroy, p_oMenu, me); - - p_oMenu.cfg.subscribeToConfigEvent( - "visible", - onMenuVisibleConfigChange, - p_oMenu - ); - - p_oMenu.itemAddedEvent.subscribe(onItemAdded); - p_oMenu.itemRemovedEvent.subscribe(onItemRemoved); - - - } - - }, - - - /** - * @method removeMenu - * @description Removes a menu from the collection of known menus. - * @param {YAHOO.widget.Menu} p_oMenu Object specifying the Menu - * instance to be removed. - */ - removeMenu: function(p_oMenu) { - - if(p_oMenu && m_oMenus[p_oMenu.id]) { - - delete m_oMenus[p_oMenu.id]; - - - } - - }, - - - /** - * @method hideVisible - * @description Hides all visible, dynamically positioned menus. - */ - hideVisible: function() { - - var oMenu; - - for(var i in m_oVisibleMenus) { - - if(m_oVisibleMenus.hasOwnProperty(i)) { - - oMenu = m_oVisibleMenus[i]; - - if(oMenu.cfg.getProperty("position") == "dynamic") { - - oMenu.hide(); - - } - - } - - } - - }, - - - /** - * @method getMenus - * @description Returns an array of all menus registered with the - * menu manger. - * @return {Array} - */ - getMenus: function() { - - return m_oMenus; - - }, - - - /** - * @method getMenu - * @description Returns a menu with the specified id. - * @param {String} p_sId String specifying the id of the menu to - * be retrieved. - * @return {YAHOO.widget.Menu} - */ - getMenu: function(p_sId) { - - if(m_oMenus[p_sId]) { - - return m_oMenus[p_sId]; - - } - - }, - - - /** - * @method toString - * @description Returns a string representing the menu manager. - * @return {String} - */ - toString: function() { - - return ("MenuManager"); - - } - - }; - -}(); - -})(); - - - -/** -* The Menu class creates a container that holds a vertical list representing -* a set of options or commands. Menu is the base class for all -* menu containers. -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the menu. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source -* for the menu. -* @param {HTMLDivElement} p_oElement Object -* specifying the <div> element of the menu. -* @param {HTMLSelectElement} p_oElement -* Object specifying the <select> element to be used as -* the data source for the menu. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu. See configuration class documentation for -* more details. -* @namespace YAHOO.widget -* @class Menu -* @constructor -* @extends YAHOO.widget.Overlay -*/ -(function() { - -var Dom = YAHOO.util.Dom, - Event = YAHOO.util.Event, - Lang = YAHOO.lang; - - -YAHOO.widget.Menu = function(p_oElement, p_oConfig) { - - if(p_oConfig) { - - this.parent = p_oConfig.parent; - this.lazyLoad = p_oConfig.lazyLoad || p_oConfig.lazyload; - this.itemData = p_oConfig.itemData || p_oConfig.itemdata; - - } - - - YAHOO.widget.Menu.superclass.constructor.call( - this, - p_oElement, - p_oConfig - ); - -}; - - -YAHOO.lang.extend(YAHOO.widget.Menu, YAHOO.widget.Overlay, { - - -// Constants - - -/** -* @property CSS_CLASS_NAME -* @description String representing the CSS class(es) to be applied to the -* menu's <div> element. -* @default "yuimenu" -* @final -* @type String -*/ -CSS_CLASS_NAME: "yuimenu", - - -/** -* @property ITEM_TYPE -* @description Object representing the type of menu item to instantiate and -* add when parsing the child nodes (either <li> element, -* <optgroup> element or <option>) -* of the menu's source HTML element. -* @default YAHOO.widget.MenuItem -* @final -* @type YAHOO.widget.MenuItem -*/ -ITEM_TYPE: null, - - -/** -* @property GROUP_TITLE_TAG_NAME -* @description String representing the tagname of the HTML element used to -* title the menu's item groups. -* @default H6 -* @final -* @type String -*/ -GROUP_TITLE_TAG_NAME: "h6", - - - -// Private properties - - -/** -* @property _nHideDelayId -* @description Number representing the time-out setting used to cancel the -* hiding of a menu. -* @default null -* @private -* @type Number -*/ -_nHideDelayId: null, - - -/** -* @property _nShowDelayId -* @description Number representing the time-out setting used to cancel the -* showing of a menu. -* @default null -* @private -* @type Number -*/ -_nShowDelayId: null, - - -/** -* @property _nSubmenuHideDelayId -* @description Number representing the time-out setting used to cancel the -* hiding of a submenu. -* @default null -* @private -* @type Number -*/ -_nSubmenuHideDelayId: null, - - -/** -* @property _nBodyScrollId -* @description Number representing the time-out setting used to cancel the -* scrolling of the menu's body element. -* @default null -* @private -* @type Number -*/ -_nBodyScrollId: null, - - -/** -* @property _bHideDelayEventHandlersAssigned -* @description Boolean indicating if the "mouseover" and "mouseout" event -* handlers used for hiding the menu via a call to "window.setTimeout" have -* already been assigned. -* @default false -* @private -* @type Boolean -*/ -_bHideDelayEventHandlersAssigned: false, - - -/** -* @property _bHandledMouseOverEvent -* @description Boolean indicating the current state of the menu's -* "mouseover" event. -* @default false -* @private -* @type Boolean -*/ -_bHandledMouseOverEvent: false, - - -/** -* @property _bHandledMouseOutEvent -* @description Boolean indicating the current state of the menu's -* "mouseout" event. -* @default false -* @private -* @type Boolean -*/ -_bHandledMouseOutEvent: false, - - -/** -* @property _aGroupTitleElements -* @description Array of HTML element used to title groups of menu items. -* @default [] -* @private -* @type Array -*/ -_aGroupTitleElements: null, - - -/** -* @property _aItemGroups -* @description Multi-dimensional Array representing the menu items as they -* are grouped in the menu. -* @default [] -* @private -* @type Array -*/ -_aItemGroups: null, - - -/** -* @property _aListElements -* @description Array of <ul> elements, each of which is -* the parent node for each item's <li> element. -* @default [] -* @private -* @type Array -*/ -_aListElements: null, - - -/** -* @property _nCurrentMouseX -* @description The current x coordinate of the mouse inside the area of -* the menu. -* @default 0 -* @private -* @type Number -*/ -_nCurrentMouseX: 0, - - -/** -* @property _nMaxHeight -* @description The original value of the "maxheight" configuration property -* as set by the user. -* @default -1 -* @private -* @type Number -*/ -_nMaxHeight: -1, - - -/** -* @property _bStopMouseEventHandlers -* @description Stops "mouseover," "mouseout," and "mousemove" event handlers -* from executing. -* @default false -* @private -* @type Boolean -*/ -_bStopMouseEventHandlers: false, - - -/** -* @property _sClassName -* @description The current value of the "classname" configuration attribute. -* @default null -* @private -* @type String -*/ -_sClassName: null, - - - -// Public properties - - -/** -* @property lazyLoad -* @description Boolean indicating if the menu's "lazy load" feature is -* enabled. If set to "true," initialization and rendering of the menu's -* items will be deferred until the first time it is made visible. This -* property should be set via the constructor using the configuration -* object literal. -* @default false -* @type Boolean -*/ -lazyLoad: false, - - -/** -* @property itemData -* @description Array of items to be added to the menu. The array can contain -* strings representing the text for each item to be created, object literals -* representing the menu item configuration properties, or MenuItem instances. -* This property should be set via the constructor using the configuration -* object literal. -* @default null -* @type Array -*/ -itemData: null, - - -/** -* @property activeItem -* @description Object reference to the item in the menu that has focus. -* @default null -* @type YAHOO.widget.MenuItem -*/ -activeItem: null, - - -/** -* @property parent -* @description Object reference to the menu's parent menu or menu item. -* This property can be set via the constructor using the configuration -* object literal. -* @default null -* @type YAHOO.widget.MenuItem -*/ -parent: null, - - -/** -* @property srcElement -* @description Object reference to the HTML element (either -* <select> or <div>) used to -* create the menu. -* @default null -* @type HTMLSelectElement|HTMLDivElement -*/ -srcElement: null, - - - -// Events - - -/** -* @event mouseOverEvent -* @description Fires when the mouse has entered the menu. Passes back -* the DOM Event object as an argument. -*/ -mouseOverEvent: null, - - -/** -* @event mouseOutEvent -* @description Fires when the mouse has left the menu. Passes back the DOM -* Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -mouseOutEvent: null, - - -/** -* @event mouseDownEvent -* @description Fires when the user mouses down on the menu. Passes back the -* DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -mouseDownEvent: null, - - -/** -* @event mouseUpEvent -* @description Fires when the user releases a mouse button while the mouse is -* over the menu. Passes back the DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -mouseUpEvent: null, - - -/** -* @event clickEvent -* @description Fires when the user clicks the on the menu. Passes back the -* DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -clickEvent: null, - - -/** -* @event keyPressEvent -* @description Fires when the user presses an alphanumeric key when one of the -* menu's items has focus. Passes back the DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -keyPressEvent: null, - - -/** -* @event keyDownEvent -* @description Fires when the user presses a key when one of the menu's items -* has focus. Passes back the DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -keyDownEvent: null, - - -/** -* @event keyUpEvent -* @description Fires when the user releases a key when one of the menu's items -* has focus. Passes back the DOM Event object as an argument. -* @type YAHOO.util.CustomEvent -*/ -keyUpEvent: null, - - -/** -* @event itemAddedEvent -* @description Fires when an item is added to the menu. -* @type YAHOO.util.CustomEvent -*/ -itemAddedEvent: null, - - -/** -* @event itemRemovedEvent -* @description Fires when an item is removed to the menu. -* @type YAHOO.util.CustomEvent -*/ -itemRemovedEvent: null, - - -/** -* @method init -* @description The Menu class's initialization method. This method is -* automatically called by the constructor, and sets up all DOM references -* for pre-existing markup, and creates required markup if it is not -* already present. -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the menu. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source -* for the menu. -* @param {HTMLDivElement} p_oElement Object -* specifying the <div> element of the menu. -* @param {HTMLSelectElement} p_oElement -* Object specifying the <select> element to be used as -* the data source for the menu. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu. See configuration class documentation for -* more details. -*/ -init: function(p_oElement, p_oConfig) { - - this._aItemGroups = []; - this._aListElements = []; - this._aGroupTitleElements = []; - - - if(!this.ITEM_TYPE) { - - this.ITEM_TYPE = YAHOO.widget.MenuItem; - - } - - - var oElement; - - if(typeof p_oElement == "string") { - - oElement = document.getElementById(p_oElement); - - } - else if(p_oElement.tagName) { - - oElement = p_oElement; - - } - - - if(oElement && oElement.tagName) { - - switch(oElement.tagName.toUpperCase()) { - - case "DIV": - - this.srcElement = oElement; - - if(!oElement.id) { - - oElement.setAttribute("id", Dom.generateId()); - - } - - - /* - Note: we don't pass the user config in here yet - because we only want it executed once, at the lowest - subclass level. - */ - - YAHOO.widget.Menu.superclass.init.call(this, oElement); - - this.beforeInitEvent.fire(YAHOO.widget.Menu); - - - - break; - - case "SELECT": - - this.srcElement = oElement; - - - /* - The source element is not something that we can use - outright, so we need to create a new Overlay - - Note: we don't pass the user config in here yet - because we only want it executed once, at the lowest - subclass level. - */ - - YAHOO.widget.Menu.superclass.init.call(this, Dom.generateId()); - - this.beforeInitEvent.fire(YAHOO.widget.Menu); - - - - break; - - } - - } - else { - - /* - Note: we don't pass the user config in here yet - because we only want it executed once, at the lowest - subclass level. - */ - - YAHOO.widget.Menu.superclass.init.call(this, p_oElement); - - this.beforeInitEvent.fire(YAHOO.widget.Menu); - - - - } - - - if(this.element) { - - var oEl = this.element; - - Dom.addClass(oEl, this.CSS_CLASS_NAME); - - - // Subscribe to Custom Events - - this.initEvent.subscribe(this._onInit, this, true); - this.beforeRenderEvent.subscribe(this._onBeforeRender, this, true); - this.renderEvent.subscribe(this._setWidth, this, true); - this.beforeShowEvent.subscribe(this._onBeforeShow, this, true); - this.showEvent.subscribe(this._onShow, this, true); - this.beforeHideEvent.subscribe(this._onBeforeHide, this, true); - this.hideEvent.subscribe(this._onHide, this, true); - this.mouseOverEvent.subscribe(this._onMouseOver, this, true); - this.mouseOutEvent.subscribe(this._onMouseOut, this, true); - this.clickEvent.subscribe(this._onClick, this, true); - this.keyDownEvent.subscribe(this._onKeyDown, this, true); - this.keyPressEvent.subscribe(this._onKeyPress, this, true); - - YAHOO.widget.Module.textResizeEvent.subscribe( - this._onTextResize, - this, - true - ); - - - if(p_oConfig) { - - this.cfg.applyConfig(p_oConfig, true); - - } - - - // Register the Menu instance with the MenuManager - - YAHOO.widget.MenuManager.addMenu(this); - - - this.initEvent.fire(YAHOO.widget.Menu); - - } - -}, - - - -// Private methods - - -/** -* @method _initSubTree -* @description Iterates the childNodes of the source element to find nodes -* used to instantiate menu and menu items. -* @private -*/ -_initSubTree: function() { - - var oNode; - - if(this.srcElement.tagName.toUpperCase() == "DIV") { - - /* - Populate the collection of item groups and item - group titles - */ - - oNode = this.body.firstChild; - - var nGroup = 0, - sGroupTitleTagName = this.GROUP_TITLE_TAG_NAME.toUpperCase(); - - do { - - if(oNode && oNode.tagName) { - - switch(oNode.tagName.toUpperCase()) { - - case sGroupTitleTagName: - - this._aGroupTitleElements[nGroup] = oNode; - - break; - - case "UL": - - this._aListElements[nGroup] = oNode; - this._aItemGroups[nGroup] = []; - nGroup++; - - break; - - } - - } - - } - while((oNode = oNode.nextSibling)); - - - /* - Apply the "first-of-type" class to the first UL to mimic - the "first-of-type" CSS3 psuedo class. - */ - - if(this._aListElements[0]) { - - Dom.addClass(this._aListElements[0], "first-of-type"); - - } - - } - - - oNode = null; - - - if(this.srcElement.tagName) { - - var sSrcElementTagName = this.srcElement.tagName.toUpperCase(); - - - switch(sSrcElementTagName) { - - case "DIV": - - if(this._aListElements.length > 0) { - - - var i = this._aListElements.length - 1; - - do { - - oNode = this._aListElements[i].firstChild; - - - do { - - if( - oNode && - oNode.tagName && - oNode.tagName.toUpperCase() == "LI" - ) { - - - this.addItem( - new this.ITEM_TYPE( - oNode, - { parent: this } - ), - i - ); - - } - - } - while((oNode = oNode.nextSibling)); - - } - while(i--); - - } - - break; - - case "SELECT": - - - oNode = this.srcElement.firstChild; - - do { - - if(oNode && oNode.tagName) { - - switch(oNode.tagName.toUpperCase()) { - - case "OPTGROUP": - case "OPTION": - - - this.addItem( - new this.ITEM_TYPE( - oNode, - { parent: this } - ) - ); - - break; - - } - - } - - } - while((oNode = oNode.nextSibling)); - - break; - - } - - } - -}, - - -/** -* @method _getFirstEnabledItem -* @description Returns the first enabled item in the menu. -* @return {YAHOO.widget.MenuItem} -* @private -*/ -_getFirstEnabledItem: function() { - - var aItems = this.getItems(), - nItems = aItems.length, - oItem; - - for(var i=0; i= aGroup.length); - - - if(aGroup[p_nItemIndex]) { - - aGroup.splice(p_nItemIndex, 0, oItem); - - } - else { - - aGroup[p_nItemIndex] = oItem; - - } - - - oGroupItem = aGroup[p_nItemIndex]; - - if(oGroupItem) { - - if( - bAppend && - ( - !oGroupItem.element.parentNode || - oGroupItem.element.parentNode.nodeType == 11 - ) - ) { - - this._aListElements[nGroupIndex].appendChild( - oGroupItem.element - ); - - } - else { - - function getNextItemSibling(p_aArray, p_nStartIndex) { - - return ( - p_aArray[p_nStartIndex] || - getNextItemSibling( - p_aArray, - (p_nStartIndex+1) - ) - ); - - } - - - var oNextItemSibling = - getNextItemSibling(aGroup, (p_nItemIndex+1)); - - if( - oNextItemSibling && - ( - !oGroupItem.element.parentNode || - oGroupItem.element.parentNode.nodeType == 11 - ) - ) { - - this._aListElements[nGroupIndex].insertBefore( - oGroupItem.element, - oNextItemSibling.element - ); - - } - - } - - - oGroupItem.parent = this; - - this._subscribeToItemEvents(oGroupItem); - - this._configureSubmenu(oGroupItem); - - this._updateItemProperties(nGroupIndex); - - - this.itemAddedEvent.fire(oGroupItem); - - return oGroupItem; - - } - - } - else { - - var nItemIndex = aGroup.length; - - aGroup[nItemIndex] = oItem; - - oGroupItem = aGroup[nItemIndex]; - - - if(oGroupItem) { - - if( - !Dom.isAncestor( - this._aListElements[nGroupIndex], - oGroupItem.element - ) - ) { - - this._aListElements[nGroupIndex].appendChild( - oGroupItem.element - ); - - } - - oGroupItem.element.setAttribute("groupindex", nGroupIndex); - oGroupItem.element.setAttribute("index", nItemIndex); - - oGroupItem.parent = this; - - oGroupItem.index = nItemIndex; - oGroupItem.groupIndex = nGroupIndex; - - this._subscribeToItemEvents(oGroupItem); - - this._configureSubmenu(oGroupItem); - - if(nItemIndex === 0) { - - Dom.addClass(oGroupItem.element, "first-of-type"); - - } - - - - this.itemAddedEvent.fire(oGroupItem); - - return oGroupItem; - - } - - } - - } - -}, - - -/** -* @method _removeItemFromGroupByIndex -* @description Removes a menu item from a group by index. Returns the menu -* item that was removed. -* @private -* @param {Number} p_nGroupIndex Number indicating the group to which the menu -* item belongs. -* @param {Number} p_nItemIndex Number indicating the index of the menu item -* to be removed. -* @return {YAHOO.widget.MenuItem} -*/ -_removeItemFromGroupByIndex: function(p_nGroupIndex, p_nItemIndex) { - - var nGroupIndex = typeof p_nGroupIndex == "number" ? p_nGroupIndex : 0, - aGroup = this._getItemGroup(nGroupIndex); - - if(aGroup) { - - var aArray = aGroup.splice(p_nItemIndex, 1), - oItem = aArray[0]; - - if(oItem) { - - // Update the index and className properties of each member - - this._updateItemProperties(nGroupIndex); - - if(aGroup.length === 0) { - - // Remove the UL - - var oUL = this._aListElements[nGroupIndex]; - - if(this.body && oUL) { - - this.body.removeChild(oUL); - - } - - // Remove the group from the array of items - - this._aItemGroups.splice(nGroupIndex, 1); - - - // Remove the UL from the array of ULs - - this._aListElements.splice(nGroupIndex, 1); - - - /* - Assign the "first-of-type" class to the new first UL - in the collection - */ - - oUL = this._aListElements[0]; - - if(oUL) { - - Dom.addClass(oUL, "first-of-type"); - - } - - } - - - this.itemRemovedEvent.fire(oItem); - - - // Return a reference to the item that was removed - - return oItem; - - } - - } - -}, - - -/** -* @method _removeItemFromGroupByValue -* @description Removes a menu item from a group by reference. Returns the -* menu item that was removed. -* @private -* @param {Number} p_nGroupIndex Number indicating the group to which the -* menu item belongs. -* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem -* instance to be removed. -* @return {YAHOO.widget.MenuItem} -*/ -_removeItemFromGroupByValue: function(p_nGroupIndex, p_oItem) { - - var aGroup = this._getItemGroup(p_nGroupIndex); - - if(aGroup) { - - var nItems = aGroup.length, - nItemIndex = -1; - - if(nItems > 0) { - - var i = nItems-1; - - do { - - if(aGroup[i] == p_oItem) { - - nItemIndex = i; - break; - - } - - } - while(i--); - - if(nItemIndex > -1) { - - return this._removeItemFromGroupByIndex( - p_nGroupIndex, - nItemIndex - ); - - } - - } - - } - -}, - - -/** -* @method _updateItemProperties -* @description Updates the "index," "groupindex," and "className" properties -* of the menu items in the specified group. -* @private -* @param {Number} p_nGroupIndex Number indicating the group of items to update. -*/ -_updateItemProperties: function(p_nGroupIndex) { - - var aGroup = this._getItemGroup(p_nGroupIndex), - nItems = aGroup.length; - - if(nItems > 0) { - - var i = nItems - 1, - oItem, - oLI; - - // Update the index and className properties of each member - - do { - - oItem = aGroup[i]; - - if(oItem) { - - oLI = oItem.element; - - oItem.index = i; - oItem.groupIndex = p_nGroupIndex; - - oLI.setAttribute("groupindex", p_nGroupIndex); - oLI.setAttribute("index", i); - - Dom.removeClass(oLI, "first-of-type"); - - } - - } - while(i--); - - - if(oLI) { - - Dom.addClass(oLI, "first-of-type"); - - } - - } - -}, - - -/** -* @method _createItemGroup -* @description Creates a new menu item group (array) and its associated -* <ul> element. Returns an aray of menu item groups. -* @private -* @param {Number} p_nIndex Number indicating the group to create. -* @return {Array} -*/ -_createItemGroup: function(p_nIndex) { - - if(!this._aItemGroups[p_nIndex]) { - - this._aItemGroups[p_nIndex] = []; - - var oUL = document.createElement("ul"); - - this._aListElements[p_nIndex] = oUL; - - return this._aItemGroups[p_nIndex]; - - } - -}, - - -/** -* @method _getItemGroup -* @description Returns the menu item group at the specified index. -* @private -* @param {Number} p_nIndex Number indicating the index of the menu item group -* to be retrieved. -* @return {Array} -*/ -_getItemGroup: function(p_nIndex) { - - var nIndex = ((typeof p_nIndex == "number") ? p_nIndex : 0); - - return this._aItemGroups[nIndex]; - -}, - - -/** -* @method _configureSubmenu -* @description Subscribes the menu item's submenu to its parent menu's events. -* @private -* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem -* instance with the submenu to be configured. -*/ -_configureSubmenu: function(p_oItem) { - - var oSubmenu = p_oItem.cfg.getProperty("submenu"); - - if(oSubmenu) { - - /* - Listen for configuration changes to the parent menu - so they they can be applied to the submenu. - */ - - this.cfg.configChangedEvent.subscribe( - this._onParentMenuConfigChange, - oSubmenu, - true - ); - - this.renderEvent.subscribe( - this._onParentMenuRender, - oSubmenu, - true - ); - - oSubmenu.beforeShowEvent.subscribe( - this._onSubmenuBeforeShow, - oSubmenu, - true - ); - - oSubmenu.showEvent.subscribe( - this._onSubmenuShow, - oSubmenu, - true - ); - - oSubmenu.hideEvent.subscribe( - this._onSubmenuHide, - oSubmenu, - true - ); - - } - -}, - - -/** -* @method _subscribeToItemEvents -* @description Subscribes a menu to a menu item's event. -* @private -* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem -* instance whose events should be subscribed to. -*/ -_subscribeToItemEvents: function(p_oItem) { - - p_oItem.focusEvent.subscribe(this._onMenuItemFocus, p_oItem, this); - - p_oItem.blurEvent.subscribe(this._onMenuItemBlur, this, true); - - p_oItem.cfg.configChangedEvent.subscribe( - this._onMenuItemConfigChange, - p_oItem, - this - ); - -}, - - -/** -* @method _getOffsetWidth -* @description Returns the offset width of the menu's -* <div> element. -* @private -*/ -_getOffsetWidth: function() { - - var oClone = this.element.cloneNode(true); - - Dom.setStyle(oClone, "width", ""); - - document.body.appendChild(oClone); - - var sWidth = oClone.offsetWidth; - - document.body.removeChild(oClone); - - return sWidth; - -}, - - -/** -* @method _setWidth -* @description Sets the width of the menu's root <div> -* element to its offsetWidth. -* @private -*/ -_setWidth: function() { - - if(this.cfg.getProperty("position") == "dynamic") { - - var sWidth; - - if(this.element.parentNode.tagName.toUpperCase() == "BODY") { - - if(this.browser == "opera") { - - sWidth = this._getOffsetWidth(); - - } - else { - - Dom.setStyle(this.element, "width", "auto"); - - sWidth = this.element.offsetWidth; - - } - - } - else { - - sWidth = this._getOffsetWidth(); - - } - - this.cfg.setProperty("width", (sWidth + "px")); - - } - -}, - - -/** -* @method _cancelHideDelay -* @description Cancels the call to "hideMenu." -* @private -*/ -_cancelHideDelay: function() { - - var oRoot = this.getRoot(); - - if(oRoot._nHideDelayId) { - - window.clearTimeout(oRoot._nHideDelayId); - - } - -}, - - -/** -* @method _execHideDelay -* @description Hides the menu after the number of milliseconds specified by -* the "hidedelay" configuration property. -* @private -*/ -_execHideDelay: function() { - - this._cancelHideDelay(); - - var oRoot = this.getRoot(), - me = this; - - function hideMenu() { - - if(oRoot.activeItem) { - - oRoot.clearActiveItem(); - - } - - if(oRoot == me && me.cfg.getProperty("position") == "dynamic") { - - me.hide(); - - } - - } - - - oRoot._nHideDelayId = - window.setTimeout(hideMenu, oRoot.cfg.getProperty("hidedelay")); - -}, - - -/** -* @method _cancelShowDelay -* @description Cancels the call to the "showMenu." -* @private -*/ -_cancelShowDelay: function() { - - var oRoot = this.getRoot(); - - if(oRoot._nShowDelayId) { - - window.clearTimeout(oRoot._nShowDelayId); - - } - -}, - - -/** -* @method _execShowDelay -* @description Shows the menu after the number of milliseconds specified by -* the "showdelay" configuration property have ellapsed. -* @private -* @param {YAHOO.widget.Menu} p_oMenu Object specifying the menu that should -* be made visible. -*/ -_execShowDelay: function(p_oMenu) { - - var oRoot = this.getRoot(); - - function showMenu() { - - if(p_oMenu.parent.cfg.getProperty("selected")) { - - p_oMenu.show(); - - } - - } - - - oRoot._nShowDelayId = - window.setTimeout(showMenu, oRoot.cfg.getProperty("showdelay")); - -}, - - -/** -* @method _execSubmenuHideDelay -* @description Hides a submenu after the number of milliseconds specified by -* the "submenuhidedelay" configuration property have ellapsed. -* @private -* @param {YAHOO.widget.Menu} p_oSubmenu Object specifying the submenu that -* should be hidden. -* @param {Number} p_nMouseX The x coordinate of the mouse when it left -* the specified submenu's parent menu item. -* @param {Number} p_nHideDelay The number of milliseconds that should ellapse -* before the submenu is hidden. -*/ -_execSubmenuHideDelay: function(p_oSubmenu, p_nMouseX, p_nHideDelay) { - - var me = this; - - p_oSubmenu._nSubmenuHideDelayId = window.setTimeout(function () { - - if(me._nCurrentMouseX > (p_nMouseX + 10)) { - - p_oSubmenu._nSubmenuHideDelayId = window.setTimeout(function () { - - p_oSubmenu.hide(); - - }, p_nHideDelay); - - } - else { - - p_oSubmenu.hide(); - - } - - }, 50); - -}, - - - -// Protected methods - - -/** -* @method _disableScrollHeader -* @description Disables the header used for scrolling the body of the menu. -* @protected -*/ -_disableScrollHeader: function() { - - if(!this._bHeaderDisabled) { - - Dom.addClass(this.header, "topscrollbar_disabled"); - this._bHeaderDisabled = true; - - } - -}, - - -/** -* @method _disableScrollFooter -* @description Disables the footer used for scrolling the body of the menu. -* @protected -*/ -_disableScrollFooter: function() { - - if(!this._bFooterDisabled) { - - Dom.addClass(this.footer, "bottomscrollbar_disabled"); - this._bFooterDisabled = true; - - } - -}, - - -/** -* @method _enableScrollHeader -* @description Enables the header used for scrolling the body of the menu. -* @protected -*/ -_enableScrollHeader: function() { - - if(this._bHeaderDisabled) { - - Dom.removeClass(this.header, "topscrollbar_disabled"); - this._bHeaderDisabled = false; - - } - -}, - - -/** -* @method _enableScrollFooter -* @description Enables the footer used for scrolling the body of the menu. -* @protected -*/ -_enableScrollFooter: function() { - - if(this._bFooterDisabled) { - - Dom.removeClass(this.footer, "bottomscrollbar_disabled"); - this._bFooterDisabled = false; - - } - -}, - - - -/** -* @method _onMouseOver -* @description "mouseover" event handler for the menu. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onMouseOver: function(p_sType, p_aArgs, p_oMenu) { - - if(this._bStopMouseEventHandlers) { - - return false; - - } - - - var oEvent = p_aArgs[0], - oItem = p_aArgs[1], - oTarget = Event.getTarget(oEvent); - - - if( - !this._bHandledMouseOverEvent && - (oTarget == this.element || Dom.isAncestor(this.element, oTarget)) - ) { - - // Menu mouseover logic - - this._nCurrentMouseX = 0; - - Event.addListener( - this.element, - "mousemove", - this._onMouseMove, - this, - true - ); - - - this.clearActiveItem(); - - - if(this.parent && this._nSubmenuHideDelayId) { - - window.clearTimeout(this._nSubmenuHideDelayId); - - this.parent.cfg.setProperty("selected", true); - - var oParentMenu = this.parent.parent; - - oParentMenu.activeItem = this.parent; - - oParentMenu._bHandledMouseOutEvent = true; - oParentMenu._bHandledMouseOverEvent = false; - - } - - - this._bHandledMouseOverEvent = true; - this._bHandledMouseOutEvent = false; - - } - - - if( - oItem && !oItem.handledMouseOverEvent && - !oItem.cfg.getProperty("disabled") && - (oTarget == oItem.element || Dom.isAncestor(oItem.element, oTarget)) - ) { - - // Menu Item mouseover logic - - var nShowDelay = this.cfg.getProperty("showdelay"), - bShowDelay = (nShowDelay > 0); - - - if(bShowDelay) { - - this._cancelShowDelay(); - - } - - - var oActiveItem = this.activeItem; - - if(oActiveItem) { - - oActiveItem.cfg.setProperty("selected", false); - - } - - - var oItemCfg = oItem.cfg; - - // Select and focus the current menu item - - oItemCfg.setProperty("selected", true); - oItem.focus(); - - - if(this.cfg.getProperty("autosubmenudisplay")) { - - // Show the submenu this menu item - - var oSubmenu = oItemCfg.getProperty("submenu"); - - if(oSubmenu) { - - if(bShowDelay) { - - this._execShowDelay(oSubmenu); - - } - else { - - oSubmenu.show(); - - } - - } - - } - - oItem.handledMouseOverEvent = true; - oItem.handledMouseOutEvent = false; - - } - -}, - - -/** -* @method _onMouseOut -* @description "mouseout" event handler for the menu. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onMouseOut: function(p_sType, p_aArgs, p_oMenu) { - - if(this._bStopMouseEventHandlers) { - - return false; - - } - - - var oEvent = p_aArgs[0], - oItem = p_aArgs[1], - oRelatedTarget = Event.getRelatedTarget(oEvent), - bMovingToSubmenu = false; - - - if(oItem && !oItem.cfg.getProperty("disabled")) { - - var oItemCfg = oItem.cfg, - oSubmenu = oItemCfg.getProperty("submenu"); - - - if( - oSubmenu && - ( - oRelatedTarget == oSubmenu.element || - Dom.isAncestor(oSubmenu.element, oRelatedTarget) - ) - ) { - - bMovingToSubmenu = true; - - } - - - if( - !oItem.handledMouseOutEvent && - ( - ( - oRelatedTarget != oItem.element && - !Dom.isAncestor(oItem.element, oRelatedTarget) - ) || bMovingToSubmenu - ) - ) { - - // Menu Item mouseout logic - - if(!bMovingToSubmenu) { - - oItem.cfg.setProperty("selected", false); - - - if(oSubmenu) { - - var nSubmenuHideDelay = - this.cfg.getProperty("submenuhidedelay"), - - nShowDelay = this.cfg.getProperty("showdelay"); - - if( - !(this instanceof YAHOO.widget.MenuBar) && - nSubmenuHideDelay > 0 && - nShowDelay >= nSubmenuHideDelay - ) { - - this._execSubmenuHideDelay( - oSubmenu, - Event.getPageX(oEvent), - nSubmenuHideDelay - ); - - } - else { - - oSubmenu.hide(); - - } - - } - - } - - - oItem.handledMouseOutEvent = true; - oItem.handledMouseOverEvent = false; - - } - - } - - - if( - !this._bHandledMouseOutEvent && - ( - ( - oRelatedTarget != this.element && - !Dom.isAncestor(this.element, oRelatedTarget) - ) - || bMovingToSubmenu - ) - ) { - - // Menu mouseout logic - - Event.removeListener(this.element, "mousemove", this._onMouseMove); - - this._nCurrentMouseX = Event.getPageX(oEvent); - - this._bHandledMouseOutEvent = true; - this._bHandledMouseOverEvent = false; - - } - -}, - - -/** -* @method _onMouseMove -* @description "click" event handler for the menu. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onMouseMove: function(p_oEvent, p_oMenu) { - - if(this._bStopMouseEventHandlers) { - - return false; - - } - - this._nCurrentMouseX = Event.getPageX(p_oEvent); - -}, - - -/** -* @method _onClick -* @description "click" event handler for the menu. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onClick: function(p_sType, p_aArgs, p_oMenu) { - - var oEvent = p_aArgs[0], - oItem = p_aArgs[1], - oTarget = Event.getTarget(oEvent); - - if(oItem && !oItem.cfg.getProperty("disabled")) { - - var oItemCfg = oItem.cfg, - oSubmenu = oItemCfg.getProperty("submenu"); - - - /* - ACCESSIBILITY FEATURE FOR SCREEN READERS: - Expand/collapse the submenu when the user clicks - on the submenu indicator image. - */ - - if(oTarget == oItem.submenuIndicator && oSubmenu) { - - if(oSubmenu.cfg.getProperty("visible")) { - - oSubmenu.hide(); - - oSubmenu.parent.focus(); - - } - else { - - this.clearActiveItem(); - - this.activeItem = oItem; - - oItem.cfg.setProperty("selected", true); - - oSubmenu.show(); - - } - - } - else { - - var sURL = oItemCfg.getProperty("url"), - bCurrentPageURL = (sURL.substr((sURL.length-1),1) == "#"), - sTarget = oItemCfg.getProperty("target"), - bHasTarget = (sTarget && sTarget.length > 0); - - /* - Prevent the browser from following links - equal to "#" - */ - - if( - oTarget.tagName.toUpperCase() == "A" && - bCurrentPageURL && !bHasTarget - ) { - - Event.preventDefault(oEvent); - - } - - if( - oTarget.tagName.toUpperCase() != "A" && - !bCurrentPageURL && !bHasTarget - ) { - - /* - Follow the URL of the item regardless of - whether or not the user clicked specifically - on the anchor element. - */ - - document.location = sURL; - - } - - - /* - If the item doesn't navigate to a URL and it doesn't have - a submenu, then collapse the menu tree. - */ - - if(bCurrentPageURL && !oSubmenu) { - - var oRoot = this.getRoot(); - - if(oRoot.cfg.getProperty("position") == "static") { - - oRoot.clearActiveItem(); - - } - else if(oRoot.cfg.getProperty("clicktohide")) { - - oRoot.hide(); - - } - - } - - } - - } - -}, - - -/** -* @method _onKeyDown -* @description "keydown" event handler for the menu. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onKeyDown: function(p_sType, p_aArgs, p_oMenu) { - - var oEvent = p_aArgs[0], - oItem = p_aArgs[1], - me = this, - oSubmenu; - - - /* - This function is called to prevent a bug in Firefox. In Firefox, - moving a DOM element into a stationary mouse pointer will cause the - browser to fire mouse events. This can result in the menu mouse - event handlers being called uncessarily, especially when menus are - moved into a stationary mouse pointer as a result of a - key event handler. - */ - function stopMouseEventHandlers() { - - me._bStopMouseEventHandlers = true; - - window.setTimeout(function() { - - me._bStopMouseEventHandlers = false; - - }, 10); - - } - - - if(oItem && !oItem.cfg.getProperty("disabled")) { - - var oItemCfg = oItem.cfg, - oParentItem = this.parent, - oRoot, - oNextItem; - - - switch(oEvent.keyCode) { - - case 38: // Up arrow - case 40: // Down arrow - - if( - oItem == this.activeItem && - !oItemCfg.getProperty("selected") - ) { - - oItemCfg.setProperty("selected", true); - - } - else { - - oNextItem = (oEvent.keyCode == 38) ? - oItem.getPreviousEnabledSibling() : - oItem.getNextEnabledSibling(); - - if(oNextItem) { - - this.clearActiveItem(); - - oNextItem.cfg.setProperty("selected", true); - oNextItem.focus(); - - - if(this.cfg.getProperty("maxheight") > 0) { - - var oBody = this.body; - - oBody.scrollTop = - - ( - oNextItem.element.offsetTop + - oNextItem.element.offsetHeight - ) - oBody.offsetHeight; - - - var nScrollTop = oBody.scrollTop, - nScrollTarget = - oBody.scrollHeight - oBody.offsetHeight; - - if(nScrollTop === 0) { - - this._disableScrollHeader(); - this._enableScrollFooter(); - - } - else if(nScrollTop == nScrollTarget) { - - this._enableScrollHeader(); - this._disableScrollFooter(); - - } - else { - - this._enableScrollHeader(); - this._enableScrollFooter(); - - } - - } - - } - - } - - Event.preventDefault(oEvent); - - stopMouseEventHandlers(); - - break; - - - case 39: // Right arrow - - oSubmenu = oItemCfg.getProperty("submenu"); - - if(oSubmenu) { - - if(!oItemCfg.getProperty("selected")) { - - oItemCfg.setProperty("selected", true); - - } - - oSubmenu.show(); - - oSubmenu.setInitialSelection(); - - } - else { - - oRoot = this.getRoot(); - - if(oRoot instanceof YAHOO.widget.MenuBar) { - - oNextItem = oRoot.activeItem.getNextEnabledSibling(); - - if(oNextItem) { - - oRoot.clearActiveItem(); - - oNextItem.cfg.setProperty("selected", true); - - oSubmenu = oNextItem.cfg.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.show(); - - } - - oNextItem.focus(); - - } - - } - - } - - - Event.preventDefault(oEvent); - - stopMouseEventHandlers(); - - break; - - - case 37: // Left arrow - - if(oParentItem) { - - var oParentMenu = oParentItem.parent; - - if(oParentMenu instanceof YAHOO.widget.MenuBar) { - - oNextItem = - oParentMenu.activeItem.getPreviousEnabledSibling(); - - if(oNextItem) { - - oParentMenu.clearActiveItem(); - - oNextItem.cfg.setProperty("selected", true); - - oSubmenu = oNextItem.cfg.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.show(); - - } - - oNextItem.focus(); - - } - - } - else { - - this.hide(); - - oParentItem.focus(); - - } - - } - - Event.preventDefault(oEvent); - - stopMouseEventHandlers(); - - break; - - } - - - } - - - if(oEvent.keyCode == 27) { // Esc key - - if(this.cfg.getProperty("position") == "dynamic") { - - this.hide(); - - if(this.parent) { - - this.parent.focus(); - - } - - } - else if(this.activeItem) { - - oSubmenu = this.activeItem.cfg.getProperty("submenu"); - - if(oSubmenu && oSubmenu.cfg.getProperty("visible")) { - - oSubmenu.hide(); - this.activeItem.focus(); - - } - else { - - this.activeItem.cfg.setProperty("selected", false); - this.activeItem.blur(); - - } - - } - - - Event.preventDefault(oEvent); - - } - -}, - - -/** -* @method _onKeyPress -* @description "keypress" event handler for a Menu instance. -* @protected -* @param {String} p_sType The name of the event that was fired. -* @param {Array} p_aArgs Collection of arguments sent when the event -* was fired. -* @param {YAHOO.widget.Menu} p_oMenu The Menu instance that fired the event. -*/ -_onKeyPress: function(p_sType, p_aArgs, p_oMenu) { - - var oEvent = p_aArgs[0]; - - - if(oEvent.keyCode == 40 || oEvent.keyCode == 38) { - - YAHOO.util.Event.preventDefault(oEvent); - - } - -}, - - -/** -* @method _onTextResize -* @description "textresize" event handler for the menu. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onTextResize: function(p_sType, p_aArgs, p_oMenu) { - - if(this.browser == "gecko" && !this._handleResize) { - - this._handleResize = true; - return; - - } - - - var oConfig = this.cfg; - - if(oConfig.getProperty("position") == "dynamic") { - - oConfig.setProperty("width", (this._getOffsetWidth() + "px")); - - } - -}, - - -/** -* @method _onScrollTargetMouseOver -* @description "mouseover" event handler for the menu's "header" and "footer" -* elements. Used to scroll the body of the menu up and down when the -* menu's "maxheight" configuration property is set to a value greater than 0. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onScrollTargetMouseOver: function(p_oEvent, p_oMenu) { - - this._cancelHideDelay(); - - var oTarget = Event.getTarget(p_oEvent), - oBody = this.body, - me = this, - nScrollTarget, - fnScrollFunction; - - - function scrollBodyDown() { - - var nScrollTop = oBody.scrollTop; - - - if(nScrollTop < nScrollTarget) { - - oBody.scrollTop = (nScrollTop + 1); - - me._enableScrollHeader(); - - } - else { - - oBody.scrollTop = nScrollTarget; - - window.clearInterval(me._nBodyScrollId); - - me._disableScrollFooter(); - - } - - } - - - function scrollBodyUp() { - - var nScrollTop = oBody.scrollTop; - - - if(nScrollTop > 0) { - - oBody.scrollTop = (nScrollTop - 1); - - me._enableScrollFooter(); - - } - else { - - oBody.scrollTop = 0; - - window.clearInterval(me._nBodyScrollId); - - me._disableScrollHeader(); - - } - - } - - - if(Dom.hasClass(oTarget, "hd")) { - - fnScrollFunction = scrollBodyUp; - - } - else { - - nScrollTarget = oBody.scrollHeight - oBody.offsetHeight; - - fnScrollFunction = scrollBodyDown; - - } - - - this._nBodyScrollId = window.setInterval(fnScrollFunction, 10); - -}, - - -/** -* @method _onScrollTargetMouseOut -* @description "mouseout" event handler for the menu's "header" and "footer" -* elements. Used to stop scrolling the body of the menu up and down when the -* menu's "maxheight" configuration property is set to a value greater than 0. -* @protected -* @param {Event} p_oEvent Object representing the DOM event object passed -* back by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onScrollTargetMouseOut: function(p_oEvent, p_oMenu) { - - window.clearInterval(this._nBodyScrollId); - - this._cancelHideDelay(); - -}, - - - -// Private methods - - -/** -* @method _onInit -* @description "init" event handler for the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onInit: function(p_sType, p_aArgs, p_oMenu) { - - if( - ( - (this.parent && !this.lazyLoad) || - (!this.parent && this.cfg.getProperty("position") == "static") || - ( - !this.parent && - !this.lazyLoad && - this.cfg.getProperty("position") == "dynamic" - ) - ) && - this.getItemGroups().length === 0 - ) { - - if(this.srcElement) { - - this._initSubTree(); - - } - - - if(this.itemData) { - - this.addItems(this.itemData); - - } - - } - else if(this.lazyLoad) { - - this.cfg.fireQueue(); - - } - -}, - - -/** -* @method _onBeforeRender -* @description "beforerender" event handler for the menu. Appends all of the -* <ul>, <li> and their accompanying -* title elements to the body element of the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onBeforeRender: function(p_sType, p_aArgs, p_oMenu) { - - var oConfig = this.cfg, - oEl = this.element, - nListElements = this._aListElements.length; - - - if(nListElements > 0) { - - var i = 0, - bFirstList = true, - oUL, - oGroupTitle; - - - do { - - oUL = this._aListElements[i]; - - if(oUL) { - - if(bFirstList) { - - Dom.addClass(oUL, "first-of-type"); - bFirstList = false; - - } - - - if(!Dom.isAncestor(oEl, oUL)) { - - this.appendToBody(oUL); - - } - - - oGroupTitle = this._aGroupTitleElements[i]; - - if(oGroupTitle) { - - if(!Dom.isAncestor(oEl, oGroupTitle)) { - - oUL.parentNode.insertBefore(oGroupTitle, oUL); - - } - - - Dom.addClass(oUL, "hastitle"); - - } - - } - - i++; - - } - while(i < nListElements); - - } - -}, - - -/** -* @method _onBeforeShow -* @description "beforeshow" event handler for the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -_onBeforeShow: function(p_sType, p_aArgs, p_oMenu) { - - if(this.lazyLoad && this.getItemGroups().length === 0) { - - if(this.srcElement) { - - this._initSubTree(); - - } - - - if(this.itemData) { - - if( - this.parent && this.parent.parent && - this.parent.parent.srcElement && - this.parent.parent.srcElement.tagName.toUpperCase() == "SELECT" - ) { - - var nOptions = this.itemData.length; - - for(var n=0; n= nViewportHeight) { - - var nMaxHeight = this.cfg.getProperty("maxheight"); - - /* - Cache the original value for the "maxheight" configuration - property so that we can set it back when the menu is hidden. - */ - - this._nMaxHeight = nMaxHeight; - - this.cfg.setProperty("maxheight", (nViewportHeight - 20)); - - } - - - if(this.cfg.getProperty("maxheight") > 0) { - - var oBody = this.body; - - if(oBody.scrollTop > 0) { - - oBody.scrollTop = 0; - - } - - this._disableScrollHeader(); - this._enableScrollFooter(); - - } - - } - - -}, - - -/** -* @method _onShow -* @description "show" event handler for the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that fired -* the event. -*/ -_onShow: function(p_sType, p_aArgs, p_oMenu) { - - this.setInitialFocus(); - - var oParent = this.parent; - - if(oParent) { - - var oParentMenu = oParent.parent, - aParentAlignment = oParentMenu.cfg.getProperty("submenualignment"), - aAlignment = this.cfg.getProperty("submenualignment"); - - - if( - (aParentAlignment[0] != aAlignment[0]) && - (aParentAlignment[1] != aAlignment[1]) - ) { - - this.cfg.setProperty( - "submenualignment", - [ aParentAlignment[0], aParentAlignment[1] ] - ); - - } - - - if( - !oParentMenu.cfg.getProperty("autosubmenudisplay") && - oParentMenu.cfg.getProperty("position") == "static" - ) { - - oParentMenu.cfg.setProperty("autosubmenudisplay", true); - - - function disableAutoSubmenuDisplay(p_oEvent) { - - if( - p_oEvent.type == "mousedown" || - (p_oEvent.type == "keydown" && p_oEvent.keyCode == 27) - ) { - - /* - Set the "autosubmenudisplay" to "false" if the user - clicks outside the menu bar. - */ - - var oTarget = Event.getTarget(p_oEvent); - - if( - oTarget != oParentMenu.element || - !YAHOO.util.Dom.isAncestor(oParentMenu.element, oTarget) - ) { - - oParentMenu.cfg.setProperty( - "autosubmenudisplay", - false - ); - - Event.removeListener( - document, - "mousedown", - disableAutoSubmenuDisplay - ); - - Event.removeListener( - document, - "keydown", - disableAutoSubmenuDisplay - ); - - } - - } - - } - - Event.addListener(document, "mousedown", disableAutoSubmenuDisplay); - Event.addListener(document, "keydown", disableAutoSubmenuDisplay); - - } - - } - else if(!oParent && this.lazyLoad) { - - this.cfg.refireEvent("xy"); - - } - -}, - - -/** -* @method _onBeforeHide -* @description "beforehide" event handler for the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that fired -* the event. -*/ -_onBeforeHide: function(p_sType, p_aArgs, p_oMenu) { - - var oActiveItem = this.activeItem; - - if(oActiveItem) { - - var oConfig = oActiveItem.cfg; - - oConfig.setProperty("selected", false); - - var oSubmenu = oConfig.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.hide(); - - } - - oActiveItem.blur(); - - } - -}, - - -/** -* @method _onHide -* @description "hide" event handler for the menu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that fired -* the event. -*/ -_onHide: function(p_sType, p_aArgs, p_oMenu) { - - if(this._nMaxHeight != -1) { - - this.cfg.setProperty("maxheight", this._nMaxHeight); - - this._nMaxHeight = -1; - - } - -}, - - -/** -* @method _onParentMenuConfigChange -* @description "configchange" event handler for a submenu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that -* subscribed to the event. -*/ -_onParentMenuConfigChange: function(p_sType, p_aArgs, p_oSubmenu) { - - var sPropertyName = p_aArgs[0][0], - oPropertyValue = p_aArgs[0][1]; - - switch(sPropertyName) { - - case "iframe": - case "constraintoviewport": - case "hidedelay": - case "showdelay": - case "submenuhidedelay": - case "clicktohide": - case "effect": - case "classname": - - p_oSubmenu.cfg.setProperty(sPropertyName, oPropertyValue); - - break; - - } - -}, - - -/** -* @method _onParentMenuRender -* @description "render" event handler for a submenu. Renders a -* submenu in response to the firing of its parent's "render" event. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that -* subscribed to the event. -*/ -_onParentMenuRender: function(p_sType, p_aArgs, p_oSubmenu) { - - var oParentMenu = p_oSubmenu.parent.parent, - - oConfig = { - - constraintoviewport: - oParentMenu.cfg.getProperty("constraintoviewport"), - - xy: [0,0], - - clicktohide: oParentMenu.cfg.getProperty("clicktohide"), - - effect: oParentMenu.cfg.getProperty("effect"), - - showdelay: oParentMenu.cfg.getProperty("showdelay"), - - hidedelay: oParentMenu.cfg.getProperty("hidedelay"), - - submenuhidedelay: oParentMenu.cfg.getProperty("submenuhidedelay"), - - classname: oParentMenu.cfg.getProperty("classname") - - }; - - - /* - Only sync the "iframe" configuration property if the parent - menu's "position" configuration is the same. - */ - - if( - this.cfg.getProperty("position") == - oParentMenu.cfg.getProperty("position") - ) { - - oConfig.iframe = oParentMenu.cfg.getProperty("iframe"); - - } - - - p_oSubmenu.cfg.applyConfig(oConfig); - - - if(!this.lazyLoad) { - - var oLI = this.parent.element; - - if(this.element.parentNode == oLI) { - - this.render(); - - } - else { - - this.render(oLI); - - } - - } - -}, - - -/** -* @method _onSubmenuBeforeShow -* @description "beforeshow" event handler for a submenu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that -* subscribed to the event. -*/ -_onSubmenuBeforeShow: function(p_sType, p_aArgs, p_oSubmenu) { - - var oParent = this.parent, - aAlignment = oParent.parent.cfg.getProperty("submenualignment"); - - this.cfg.setProperty( - "context", - [oParent.element, aAlignment[0], aAlignment[1]] - ); - - - var nScrollTop = oParent.parent.body.scrollTop; - - if( - (this.browser == "gecko" || this.browser == "safari") - && nScrollTop > 0 - ) { - - this.cfg.setProperty("y", (this.cfg.getProperty("y") - nScrollTop)); - - } - -}, - - -/** -* @method _onSubmenuShow -* @description "show" event handler for a submenu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that -* subscribed to the event. -*/ -_onSubmenuShow: function(p_sType, p_aArgs, p_oSubmenu) { - - var oParent = this.parent; - - oParent.submenuIndicator.firstChild.nodeValue = - oParent.EXPANDED_SUBMENU_INDICATOR_TEXT; - -}, - - -/** -* @method _onSubmenuHide -* @description "hide" Custom Event handler for a submenu. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oSubmenu Object representing the submenu that -* subscribed to the event. -*/ -_onSubmenuHide: function(p_sType, p_aArgs, p_oSubmenu) { - - var oParent = this.parent; - - oParent.submenuIndicator.firstChild.nodeValue = - oParent.COLLAPSED_SUBMENU_INDICATOR_TEXT; - -}, - - -/** -* @method _onMenuItemFocus -* @description "focus" event handler for the menu's items. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item -* that fired the event. -*/ -_onMenuItemFocus: function(p_sType, p_aArgs, p_oItem) { - - this.activeItem = p_oItem; - -}, - - -/** -* @method _onMenuItemBlur -* @description "blur" event handler for the menu's items. -* @private -* @param {String} p_sType String representing the name of the event -* that was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -*/ -_onMenuItemBlur: function(p_sType, p_aArgs) { - - this.activeItem = null; - -}, - - -/** -* @method _onMenuItemConfigChange -* @description "configchange" event handler for the menu's items. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item -* that fired the event. -*/ -_onMenuItemConfigChange: function(p_sType, p_aArgs, p_oItem) { - - var sProperty = p_aArgs[0][0]; - - switch(sProperty) { - - case "submenu": - - var oSubmenu = p_aArgs[0][1]; - - if(oSubmenu) { - - this._configureSubmenu(p_oItem); - - } - - break; - - case "text": - case "helptext": - - /* - A change to an item's "text" or "helptext" - configuration properties requires the width of the parent - menu to be recalculated. - */ - - if(this.element.style.width) { - - var sWidth = this._getOffsetWidth() + "px"; - - Dom.setStyle(this.element, "width", sWidth); - - } - - break; - - } - -}, - - - -// Public event handlers for configuration properties - - -/** -* @method enforceConstraints -* @description The default event handler executed when the moveEvent is fired, -* if the "constraintoviewport" configuration property is set to true. -* @param {String} type The name of the event that was fired. -* @param {Array} args Collection of arguments sent when the -* event was fired. -* @param {Array} obj Array containing the current Menu instance -* and the item that fired the event. -*/ -enforceConstraints: function(type, args, obj) { - - var oConfig = this.cfg, - pos = args[0], - - x = pos[0], - y = pos[1], - - offsetHeight = this.element.offsetHeight, - offsetWidth = this.element.offsetWidth, - - viewPortWidth = YAHOO.util.Dom.getViewportWidth(), - viewPortHeight = YAHOO.util.Dom.getViewportHeight(), - - scrollX = Math.max( - document.documentElement.scrollLeft, - document.body.scrollLeft - ), - - scrollY = Math.max( - document.documentElement.scrollTop, - document.body.scrollTop - ), - - nPadding = ( - this.parent && - this.parent.parent instanceof YAHOO.widget.MenuBar - ) ? 0 : 10, - - topConstraint = scrollY + nPadding, - leftConstraint = scrollX + nPadding, - bottomConstraint = scrollY + viewPortHeight - offsetHeight - nPadding, - rightConstraint = scrollX + viewPortWidth - offsetWidth - nPadding, - - aContext = oConfig.getProperty("context"), - oContextElement = aContext ? aContext[0] : null; - - - if (x < 10) { - - x = leftConstraint; - - } else if ((x + offsetWidth) > viewPortWidth) { - - if( - oContextElement && - ((x - oContextElement.offsetWidth) > offsetWidth) - ) { - - x = (x - (oContextElement.offsetWidth + offsetWidth)); - - } - else { - - x = rightConstraint; - - } - - } - - if (y < 10) { - - y = topConstraint; - - } else if (y > bottomConstraint) { - - if(oContextElement && (y > offsetHeight)) { - - y = ((y + oContextElement.offsetHeight) - offsetHeight); - - } - else { - - y = bottomConstraint; - - } - - } - - oConfig.setProperty("x", x, true); - oConfig.setProperty("y", y, true); - oConfig.setProperty("xy", [x,y], true); - -}, - - -/** -* @method configVisible -* @description Event handler for when the "visible" configuration property -* the menu changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -configVisible: function(p_sType, p_aArgs, p_oMenu) { - - if(this.cfg.getProperty("position") == "dynamic") { - - YAHOO.widget.Menu.superclass.configVisible.call( - this, - p_sType, - p_aArgs, - p_oMenu - ); - - } - else { - - var bVisible = p_aArgs[0], - sDisplay = Dom.getStyle(this.element, "display"); - - if(bVisible) { - - if(sDisplay != "block") { - this.beforeShowEvent.fire(); - Dom.setStyle(this.element, "display", "block"); - this.showEvent.fire(); - } - - } - else { - - if(sDisplay == "block") { - this.beforeHideEvent.fire(); - Dom.setStyle(this.element, "display", "none"); - this.hideEvent.fire(); - } - - } - - } - -}, - - -/** -* @method configPosition -* @description Event handler for when the "position" configuration property -* of the menu changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -configPosition: function(p_sType, p_aArgs, p_oMenu) { - - var sCSSPosition = p_aArgs[0] == "static" ? "static" : "absolute", - oCfg = this.cfg; - - Dom.setStyle(this.element, "position", sCSSPosition); - - - if(sCSSPosition == "static") { - - /* - Remove the iframe for statically positioned menus since it will - intercept mouse events. - */ - - oCfg.setProperty("iframe", false); - - - // Statically positioned menus are visible by default - - Dom.setStyle(this.element, "display", "block"); - - oCfg.setProperty("visible", true); - - } - else { - - /* - Even though the "visible" property is queued to - "false" by default, we need to set the "visibility" property to - "hidden" since Overlay's "configVisible" implementation checks the - element's "visibility" style property before deciding whether - or not to show an Overlay instance. - */ - - Dom.setStyle(this.element, "visibility", "hidden"); - - } - - - if(sCSSPosition == "absolute") { - - var nZIndex = oCfg.getProperty("zindex"); - - if(!nZIndex || nZIndex === 0) { - - nZIndex = this.parent ? - (this.parent.parent.cfg.getProperty("zindex") + 1) : 1; - - oCfg.setProperty("zindex", nZIndex); - - } - - } - -}, - - -/** -* @method configIframe -* @description Event handler for when the "iframe" configuration property of -* the menu changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -configIframe: function(p_sType, p_aArgs, p_oMenu) { - - if(this.cfg.getProperty("position") == "dynamic") { - - YAHOO.widget.Menu.superclass.configIframe.call( - this, - p_sType, - p_aArgs, - p_oMenu - ); - - } - -}, - - -/** -* @method configHideDelay -* @description Event handler for when the "hidedelay" configuration property -* of the menu changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -configHideDelay: function(p_sType, p_aArgs, p_oMenu) { - - var nHideDelay = p_aArgs[0], - oMouseOutEvent = this.mouseOutEvent, - oMouseOverEvent = this.mouseOverEvent, - oKeyDownEvent = this.keyDownEvent; - - if(nHideDelay > 0) { - - /* - Only assign event handlers once. This way the user change - the value for the hidedelay as many times as they want. - */ - - if(!this._bHideDelayEventHandlersAssigned) { - - oMouseOutEvent.subscribe(this._execHideDelay, true); - oMouseOverEvent.subscribe(this._cancelHideDelay, this, true); - oKeyDownEvent.subscribe(this._cancelHideDelay, this, true); - - this._bHideDelayEventHandlersAssigned = true; - - } - - } - else { - - oMouseOutEvent.unsubscribe(this._execHideDelay, this); - oMouseOverEvent.unsubscribe(this._cancelHideDelay, this); - oKeyDownEvent.unsubscribe(this._cancelHideDelay, this); - - this._bHideDelayEventHandlersAssigned = false; - - } - -}, - - -/** -* @method configContainer -* @description Event handler for when the "container" configuration property -of the menu changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu Object representing the menu that -* fired the event. -*/ -configContainer: function(p_sType, p_aArgs, p_oMenu) { - - var oElement = p_aArgs[0]; - - if(typeof oElement == 'string') { - - this.cfg.setProperty( - "container", - document.getElementById(oElement), - true - ); - - } - -}, - - -/** -* @method configMaxHeight -* @description Event handler for when the "maxheight" configuration property of -* a Menu changes. -* @param {String} p_sType The name of the event that was fired. -* @param {Array} p_aArgs Collection of arguments sent when the event -* was fired. -* @param {YAHOO.widget.Menu} p_oMenu The Menu instance fired -* the event. -*/ -configMaxHeight: function(p_sType, p_aArgs, p_oMenu) { - - var nMaxHeight = p_aArgs[0], - oBody = this.body, - oHeader = this.header, - oFooter = this.footer, - fnMouseOver = this._onScrollTargetMouseOver, - fnMouseOut = this._onScrollTargetMouseOut; - - - if((nMaxHeight > 0) && (oBody.offsetHeight > nMaxHeight)) { - - if(!this.cfg.getProperty("width")) { - - this._setWidth(); - - } - - if(!oHeader && !oFooter) { - - this.setHeader(" "); - this.setFooter(" "); - - oHeader = this.header; - oFooter = this.footer; - - Dom.addClass(oHeader, "topscrollbar"); - Dom.addClass(oFooter, "bottomscrollbar"); - - this.element.insertBefore(oHeader, oBody); - this.element.appendChild(oFooter); - - Event.addListener(oHeader, "mouseover", fnMouseOver, this, true); - Event.addListener(oHeader, "mouseout", fnMouseOut, this, true); - Event.addListener(oFooter, "mouseover", fnMouseOver, this, true); - Event.addListener(oFooter, "mouseout", fnMouseOut, this, true); - - } - - var nHeight = - - ( - nMaxHeight - - (this.footer.offsetHeight + this.header.offsetHeight) - ); - - Dom.setStyle(oBody, "height", (nHeight + "px")); - Dom.setStyle(oBody, "overflow", "hidden"); - - } - else if(oHeader && oFooter) { - - Dom.setStyle(oBody, "height", "auto"); - Dom.setStyle(oBody, "overflow", "visible"); - - Event.removeListener(oHeader, "mouseover", fnMouseOver); - Event.removeListener(oHeader, "mouseout", fnMouseOut); - Event.removeListener(oFooter, "mouseover", fnMouseOver); - Event.removeListener(oFooter, "mouseout", fnMouseOut); - - this.element.removeChild(oHeader); - this.element.removeChild(oFooter); - - this.header = null; - this.footer = null; - - } - -}, - - -/** -* @method configClassName -* @description Event handler for when the "classname" configuration property of -* a menu changes. -* @param {String} p_sType The name of the event that was fired. -* @param {Array} p_aArgs Collection of arguments sent when the event was fired. -* @param {YAHOO.widget.Menu} p_oMenu The Menu instance fired the event. -*/ -configClassName: function(p_sType, p_aArgs, p_oMenu) { - - var sClassName = p_aArgs[0]; - - if(this._sClassName) { - - Dom.removeClass(this.element, this._sClassName); - - } - - Dom.addClass(this.element, sClassName); - this._sClassName = sClassName; - -}, - - -// Public methods - - -/** -* @method initEvents -* @description Initializes the custom events for the menu. -*/ -initEvents: function() { - - YAHOO.widget.Menu.superclass.initEvents.call(this); - - // Create custom events - - var CustomEvent = YAHOO.util.CustomEvent; - - this.mouseOverEvent = new CustomEvent("mouseOverEvent", this); - this.mouseOutEvent = new CustomEvent("mouseOutEvent", this); - this.mouseDownEvent = new CustomEvent("mouseDownEvent", this); - this.mouseUpEvent = new CustomEvent("mouseUpEvent", this); - this.clickEvent = new CustomEvent("clickEvent", this); - this.keyPressEvent = new CustomEvent("keyPressEvent", this); - this.keyDownEvent = new CustomEvent("keyDownEvent", this); - this.keyUpEvent = new CustomEvent("keyUpEvent", this); - this.itemAddedEvent = new CustomEvent("itemAddedEvent", this); - this.itemRemovedEvent = new CustomEvent("itemRemovedEvent", this); - -}, - - -/** -* @method getRoot -* @description Finds the menu's root menu. -*/ -getRoot: function() { - - var oItem = this.parent; - - if(oItem) { - - var oParentMenu = oItem.parent; - - return oParentMenu ? oParentMenu.getRoot() : this; - - } - else { - - return this; - - } - -}, - - -/** -* @method toString -* @description Returns a string representing the menu. -* @return {String} -*/ -toString: function() { - - return ("Menu " + this.id); - -}, - - -/** -* @method setItemGroupTitle -* @description Sets the title of a group of menu items. -* @param {String} p_sGroupTitle String specifying the title of the group. -* @param {Number} p_nGroupIndex Optional. Number specifying the group to which -* the title belongs. -*/ -setItemGroupTitle: function(p_sGroupTitle, p_nGroupIndex) { - - if(typeof p_sGroupTitle == "string" && p_sGroupTitle.length > 0) { - - var nGroupIndex = typeof p_nGroupIndex == "number" ? p_nGroupIndex : 0, - oTitle = this._aGroupTitleElements[nGroupIndex]; - - - if(oTitle) { - - oTitle.innerHTML = p_sGroupTitle; - - } - else { - - oTitle = document.createElement(this.GROUP_TITLE_TAG_NAME); - - oTitle.innerHTML = p_sGroupTitle; - - this._aGroupTitleElements[nGroupIndex] = oTitle; - - } - - - var i = this._aGroupTitleElements.length - 1, - nFirstIndex; - - do { - - if(this._aGroupTitleElements[i]) { - - Dom.removeClass(this._aGroupTitleElements[i], "first-of-type"); - - nFirstIndex = i; - - } - - } - while(i--); - - - if(nFirstIndex !== null) { - - Dom.addClass( - this._aGroupTitleElements[nFirstIndex], - "first-of-type" - ); - - } - - } - -}, - - - -/** -* @method addItem -* @description Appends an item to the menu. -* @param {YAHOO.widget.MenuItem} p_oItem Object reference for the MenuItem -* instance to be added to the menu. -* @param {String} p_oItem String specifying the text of the item to be added -* to the menu. -* @param {Object} p_oItem Object literal containing a set of menu item -* configuration properties. -* @param {Number} p_nGroupIndex Optional. Number indicating the group to -* which the item belongs. -* @return {YAHOO.widget.MenuItem} -*/ -addItem: function(p_oItem, p_nGroupIndex) { - - if(p_oItem) { - - return this._addItemToGroup(p_nGroupIndex, p_oItem); - - } - -}, - - -/** -* @method addItems -* @description Adds an array of items to the menu. -* @param {Array} p_aItems Array of items to be added to the menu. The array -* can contain strings specifying the text for each item to be created, object -* literals specifying each of the menu item configuration properties, -* or MenuItem instances. -* @param {Number} p_nGroupIndex Optional. Number specifying the group to -* which the items belongs. -* @return {Array} -*/ -addItems: function(p_aItems, p_nGroupIndex) { - - if(Lang.isArray(p_aItems)) { - - var nItems = p_aItems.length, - aItems = [], - oItem; - - - for(var i=0; i 0) { - - var i = nItems - 1, - oItem, - oSubmenu; - - do { - - oItem = aItems[i]; - - if(oItem) { - - oSubmenu = oItem.cfg.getProperty("submenu"); - - if(oSubmenu) { - - this.cfg.configChangedEvent.unsubscribe( - this._onParentMenuConfigChange, - oSubmenu - ); - - this.renderEvent.unsubscribe( - this._onParentMenuRender, - oSubmenu - ); - - } - - oItem.destroy(); - - } - - } - while(i--); - - } - - - if(oHeader) { - - Event.purgeElement(oHeader); - oElement.removeChild(oHeader); - - } - - - if(oFooter) { - - Event.purgeElement(oFooter); - oElement.removeChild(oFooter); - } - - - if(oBody) { - - Event.purgeElement(oBody); - - oBody.innerHTML = ""; - - } - - - this._aItemGroups = []; - this._aListElements = []; - this._aGroupTitleElements = []; - -}, - - -/** -* @method destroy -* @description Removes the menu's <div> element -* (and accompanying child nodes) from the document. -*/ -destroy: function() { - - // Remove all DOM event listeners - - Event.purgeElement(this.element); - - - // Remove Custom Event listeners - - this.mouseOverEvent.unsubscribeAll(); - this.mouseOutEvent.unsubscribeAll(); - this.mouseDownEvent.unsubscribeAll(); - this.mouseUpEvent.unsubscribeAll(); - this.clickEvent.unsubscribeAll(); - this.keyPressEvent.unsubscribeAll(); - this.keyDownEvent.unsubscribeAll(); - this.keyUpEvent.unsubscribeAll(); - this.itemAddedEvent.unsubscribeAll(); - this.itemRemovedEvent.unsubscribeAll(); - - YAHOO.widget.Module.textResizeEvent.unsubscribe(this._onTextResize, this); - - - // Remove all items - - this.clearContent(); - - - this._aItemGroups = null; - this._aListElements = null; - this._aGroupTitleElements = null; - - - // Continue with the superclass implementation of this method - - YAHOO.widget.Menu.superclass.destroy.call(this); - - -}, - - -/** -* @method setInitialFocus -* @description Sets focus to the menu's first enabled item. -*/ -setInitialFocus: function() { - - var oItem = this._getFirstEnabledItem(); - - if(oItem) { - - oItem.focus(); - } - -}, - - -/** -* @method setInitialSelection -* @description Sets the "selected" configuration property of the menu's first -* enabled item to "true." -*/ -setInitialSelection: function() { - - var oItem = this._getFirstEnabledItem(); - - if(oItem) { - - oItem.cfg.setProperty("selected", true); - } - -}, - - -/** -* @method clearActiveItem -* @description Sets the "selected" configuration property of the menu's active -* item to "false" and hides the item's submenu. -* @param {Boolean} p_bBlur Boolean indicating if the menu's active item -* should be blurred. -*/ -clearActiveItem: function(p_bBlur) { - - if(this.cfg.getProperty("showdelay") > 0) { - - this._cancelShowDelay(); - - } - - - var oActiveItem = this.activeItem; - - if(oActiveItem) { - - var oConfig = oActiveItem.cfg; - - oConfig.setProperty("selected", false); - - var oSubmenu = oConfig.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.hide(); - - } - - if(p_bBlur) { - - oActiveItem.blur(); - - } - - } - -}, - - -/** -* @description Initializes the class's configurable properties which can be -* changed using the menu's Config object ("cfg"). -* @method initDefaultConfig -*/ -initDefaultConfig: function() { - - YAHOO.widget.Menu.superclass.initDefaultConfig.call(this); - - var oConfig = this.cfg; - - // Add configuration attributes - - /* - Change the default value for the "visible" configuration - property to "false" by re-adding the property. - */ - - /** - * @config visible - * @description Boolean indicating whether or not the menu is visible. If - * the menu's "position" configuration property is set to "dynamic" (the - * default), this property toggles the menu's <div> - * element's "visibility" style property between "visible" (true) or - * "hidden" (false). If the menu's "position" configuration property is - * set to "static" this property toggles the menu's - * <div> element's "display" style property - * between "block" (true) or "none" (false). - * @default false - * @type Boolean - */ - oConfig.addProperty( - "visible", - { - value:false, - handler:this.configVisible, - validator:this.cfg.checkBoolean - } - ); - - - /* - Change the default value for the "constraintoviewport" configuration - property to "true" by re-adding the property. - */ - - /** - * @config constraintoviewport - * @description Boolean indicating if the menu will try to remain inside - * the boundaries of the size of viewport. - * @default true - * @type Boolean - */ - oConfig.addProperty( - "constraintoviewport", - { - value:true, - handler:this.configConstrainToViewport, - validator:this.cfg.checkBoolean, - supercedes:["iframe","x","y","xy"] - } - ); - - - /** - * @config position - * @description String indicating how a menu should be positioned on the - * screen. Possible values are "static" and "dynamic." Static menus are - * visible by default and reside in the normal flow of the document - * (CSS position: static). Dynamic menus are hidden by default, reside - * out of the normal flow of the document (CSS position: absolute), and - * can overlay other elements on the screen. - * @default dynamic - * @type String - */ - oConfig.addProperty( - "position", - { - value: "dynamic", - handler: this.configPosition, - validator: this._checkPosition, - supercedes: ["visible"] - } - ); - - - /** - * @config submenualignment - * @description Array defining how submenus should be aligned to their - * parent menu item. The format is: [itemCorner, submenuCorner]. By default - * a submenu's top left corner is aligned to its parent menu item's top - * right corner. - * @default ["tl","tr"] - * @type Array - */ - oConfig.addProperty("submenualignment", { value: ["tl","tr"] } ); - - - /** - * @config autosubmenudisplay - * @description Boolean indicating if submenus are automatically made - * visible when the user mouses over the menu's items. - * @default true - * @type Boolean - */ - oConfig.addProperty( - "autosubmenudisplay", - { - value: true, - validator: oConfig.checkBoolean - } - ); - - - /** - * @config showdelay - * @description Number indicating the time (in milliseconds) that should - * expire before a submenu is made visible when the user mouses over - * the menu's items. - * @default 250 - * @type Number - */ - oConfig.addProperty( - "showdelay", - { - value: 250, - validator: oConfig.checkNumber - } - ); - - - /** - * @config hidedelay - * @description Number indicating the time (in milliseconds) that should - * expire before the menu is hidden. - * @default 0 - * @type Number - */ - oConfig.addProperty( - "hidedelay", - { - value: 0, - validator: oConfig.checkNumber, - handler: this.configHideDelay, - suppressEvent: true - } - ); - - - /** - * @config submenuhidedelay - * @description Number indicating the time (in milliseconds) that should - * expire before a submenu is hidden when the user mouses out of a menu item - * heading in the direction of a submenu. The value must be greater than or - * equal to the value specified for the "showdelay" configuration property. - * @default 250 - * @type Number - */ - oConfig.addProperty( - "submenuhidedelay", - { - value: 250, - validator: oConfig.checkNumber - } - ); - - - /** - * @config clicktohide - * @description Boolean indicating if the menu will automatically be - * hidden if the user clicks outside of it. - * @default true - * @type Boolean - */ - oConfig.addProperty( - "clicktohide", - { - value: true, - validator: oConfig.checkBoolean - } - ); - - - /** - * @config container - * @description HTML element reference or string specifying the id - * attribute of the HTML element that the menu's markup should be - * rendered into. - * @type HTMLElement|String - * @default document.body - */ - oConfig.addProperty( - "container", - { - value:document.body, - handler:this.configContainer - } - ); - - - /** - * @config maxheight - * @description Defines the maximum height (in pixels) for a menu before the - * contents of the body are scrolled. - * @default 0 - * @type Number - */ - oConfig.addProperty( - "maxheight", - { - value: 0, - validator: oConfig.checkNumber, - handler: this.configMaxHeight - } - ); - - - /** - * @config classname - * @description CSS class to be applied to the menu's root - * <div> element. The specified class(es) are - * appended in addition to the default class as specified by the menu's - * CSS_CLASS_NAME constant. - * @default null - * @type String - */ - oConfig.addProperty( - "classname", - { - value: null, - handler: this.configClassName, - validator: this._checkString - } - ); - -} - -}); // END YAHOO.lang.extend - -})(); - - - -(function() { - -var Dom = YAHOO.util.Dom, - Module = YAHOO.widget.Module, - Menu = YAHOO.widget.Menu, - - m_oMenuItemElement = null, - m_oSubmenuIndicator = null, - m_oCheckedIndicator = null; - - -/** -* Creates an item for a menu. -* -* @param {String} p_oObject String specifying the text of the menu item. -* @param {HTMLLIElement} p_oObject Object specifying -* the <li> element of the menu item. -* @param {HTMLOptGroupElement} p_oObject Object -* specifying the <optgroup> element of the menu item. -* @param {HTMLOptionElement} p_oObject Object -* specifying the <option> element of the menu item. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu item. See configuration class documentation -* for more details. -* @class MenuItem -* @constructor -*/ -YAHOO.widget.MenuItem = function(p_oObject, p_oConfig) { - - if(p_oObject) { - - if(p_oConfig) { - - this.parent = p_oConfig.parent; - this.value = p_oConfig.value; - this.id = p_oConfig.id; - - } - - this.init(p_oObject, p_oConfig); - - } - -}; - - -YAHOO.widget.MenuItem.prototype = { - - // Constants - - - /** - * @property SUBMENU_INDICATOR_IMAGE_PATH - * @description String representing the path to the image to be used for the - * menu item's submenu arrow indicator. - * @default "nt/ic/ut/alt1/menuarorght8_nrm_1.gif" - * @final - * @type String - * @deprecated All submenu indicator images are applied via a CSS - * background image. See "submenuindicator" class name in menu.css. - */ - SUBMENU_INDICATOR_IMAGE_PATH: "nt/ic/ut/alt1/menuarorght8_nrm_1.gif", - - - /** - * @property SELECTED_SUBMENU_INDICATOR_IMAGE_PATH - * @description String representing the path to the image to be used for the - * submenu arrow indicator when the menu item is selected. - * @default "nt/ic/ut/alt1/menuarorght8_hov_1.gif" - * @final - * @type String - * @deprecated All submenu indicator images are applied via a CSS - * background image. See "submenuindicator" class name in menu.css. - */ - SELECTED_SUBMENU_INDICATOR_IMAGE_PATH: - "nt/ic/ut/alt1/menuarorght8_hov_1.gif", - - - /** - * @property DISABLED_SUBMENU_INDICATOR_IMAGE_PATH - * @description String representing the path to the image to be used for the - * submenu arrow indicator when the menu item is disabled. - * @default "nt/ic/ut/alt1/menuarorght8_dim_1.gif" - * @final - * @type String - * @deprecated All submenu indicator images are applied via a CSS - * background image. See "submenuindicator" class name in menu.css. - */ - DISABLED_SUBMENU_INDICATOR_IMAGE_PATH: - "nt/ic/ut/alt1/menuarorght8_dim_1.gif", - - - /** - * @property COLLAPSED_SUBMENU_INDICATOR_ALT_TEXT - * @description String representing the alt text for the image to be used - * for the submenu arrow indicator. - * @default "Collapsed. Click to expand." - * @final - * @type String - * @deprecated Use COLLAPSED_SUBMENU_INDICATOR_TEXT. - */ - COLLAPSED_SUBMENU_INDICATOR_ALT_TEXT: "Collapsed. Click to expand.", - - - /** - * @property EXPANDED_SUBMENU_INDICATOR_ALT_TEXT - * @description String representing the alt text for the image to be used - * for the submenu arrow indicator when the submenu is visible. - * @default "Expanded. Click to collapse." - * @final - * @type String - * @deprecated Use EXPANDED_SUBMENU_INDICATOR_TEXT. - */ - EXPANDED_SUBMENU_INDICATOR_ALT_TEXT: "Expanded. Click to collapse.", - - - /** - * @property DISABLED_SUBMENU_INDICATOR_ALT_TEXT - * @description String representing the alt text for the image to be used - * for the submenu arrow indicator when the menu item is disabled. - * @default "Disabled." - * @final - * @type String - * @deprecated Use DISABLED_SUBMENU_INDICATOR_TEXT. - */ - DISABLED_SUBMENU_INDICATOR_ALT_TEXT: "Disabled.", - - - /** - * @property COLLAPSED_SUBMENU_INDICATOR_TEXT - * @description String representing the text for the <em> - * element used for the submenu arrow indicator. - * @default "Submenu collapsed. Click to expand submenu." - * @final - * @type String - */ - COLLAPSED_SUBMENU_INDICATOR_TEXT: - "Submenu collapsed. Click to expand submenu.", - - - /** - * @property EXPANDED_SUBMENU_INDICATOR_TEXT - * @description String representing the text for the submenu arrow indicator - * element (<em>) when the submenu is visible. - * @default "Submenu expanded. Click to collapse submenu." - * @final - * @type String - */ - EXPANDED_SUBMENU_INDICATOR_TEXT: - "Submenu expanded. Click to collapse submenu.", - - - /** - * @property DISABLED_SUBMENU_INDICATOR_TEXT - * @description String representing the text for the submenu arrow indicator - * element (<em>) when the menu item is disabled. - * @default "Submenu collapsed. (Item disabled.)." - * @final - * @type String - */ - DISABLED_SUBMENU_INDICATOR_TEXT: "Submenu collapsed. (Item disabled.)", - - - /** - * @property CHECKED_IMAGE_PATH - * @description String representing the path to the image to be used for - * the checked state. - * @default "nt/ic/ut/bsc/menuchk8_nrm_1.gif" - * @final - * @type String - * @deprecated All checked indicator images are applied via a CSS - * background image. See "checkedindicator" class name in menu.css. - */ - CHECKED_IMAGE_PATH: "nt/ic/ut/bsc/menuchk8_nrm_1.gif", - - - /** - * @property SELECTED_CHECKED_IMAGE_PATH - * @description String representing the path to the image to be used for - * the selected checked state. - * @default "nt/ic/ut/bsc/menuchk8_hov_1.gif" - * @final - * @type String - * @deprecated All checked indicator images are applied via a CSS - * background image. See "checkedindicator" class name in menu.css. - */ - SELECTED_CHECKED_IMAGE_PATH: "nt/ic/ut/bsc/menuchk8_hov_1.gif", - - - /** - * @property DISABLED_CHECKED_IMAGE_PATH - * @description String representing the path to the image to be used for - * the disabled checked state. - * @default "nt/ic/ut/bsc/menuchk8_dim_1.gif" - * @final - * @type String - * @deprecated All checked indicator images are applied via a CSS - * background image. - */ - DISABLED_CHECKED_IMAGE_PATH: "nt/ic/ut/bsc/menuchk8_dim_1.gif", - - - /** - * @property CHECKED_IMAGE_ALT_TEXT - * @description String representing the alt text for the image to be used - * for the checked image. - * @default "Checked." - * @final - * @type String - * @deprecated Use CHECKED_TEXT. - */ - CHECKED_IMAGE_ALT_TEXT: "Checked.", - - - /** - * @property DISABLED_CHECKED_IMAGE_ALT_TEXT - * @description String representing the alt text for the image to be used - * for the checked image when the item is disabled. - * @default "Checked. (Item disabled.)" - * @final - * @type String - * @deprecated Use DISABLED_CHECKED_TEXT. - */ - DISABLED_CHECKED_IMAGE_ALT_TEXT: "Checked. (Item disabled.)", - - - /** - * @property CHECKED_TEXT - * @description String representing the text to be used for the checked - * indicator element (<em>). - * @default "Checked." - * @final - * @type String - */ - CHECKED_TEXT: "Menu item checked.", - - - /** - * @property DISABLED_CHECKED_TEXT - * @description String representing the text to be used for the checked - * indicator element (<em>) when the menu item - * is disabled. - * @default "Checked. (Item disabled.)" - * @final - * @type String - */ - DISABLED_CHECKED_TEXT: "Checked. (Item disabled.)", - - - /** - * @property CSS_CLASS_NAME - * @description String representing the CSS class(es) to be applied to the - * <li> element of the menu item. - * @default "yuimenuitem" - * @final - * @type String - */ - CSS_CLASS_NAME: "yuimenuitem", - - - /** - * @property SUBMENU_TYPE - * @description Object representing the type of menu to instantiate and - * add when parsing the child nodes of the menu item's source HTML element. - * @final - * @type YAHOO.widget.Menu - */ - SUBMENU_TYPE: null, - - - /** - * @property IMG_ROOT - * @description String representing the prefix path to use for - * non-secure images. - * @default "http://us.i1.yimg.com/us.yimg.com/i/" - * @type String - * @deprecated All menu item images are now applied via CSS - * background images. - */ - IMG_ROOT: "http://us.i1.yimg.com/us.yimg.com/i/", - - - /** - * @property IMG_ROOT_SSL - * @description String representing the prefix path to use for securely - * served images. - * @default "https://a248.e.akamai.net/sec.yimg.com/i/" - * @type String - * @deprecated All menu item images are now applied via CSS - * background images. - */ - IMG_ROOT_SSL: "https://a248.e.akamai.net/sec.yimg.com/i/", - - - - // Private member variables - - - /** - * @property _oAnchor - * @description Object reference to the menu item's - * <a> element. - * @default null - * @private - * @type HTMLAnchorElement - */ - _oAnchor: null, - - - /** - * @property _oText - * @description Object reference to the menu item's text node. - * @default null - * @private - * @type TextNode - */ - _oText: null, - - - /** - * @property _oHelpTextEM - * @description Object reference to the menu item's help text - * <em> element. - * @default null - * @private - * @type HTMLElement - */ - _oHelpTextEM: null, - - - /** - * @property _oSubmenu - * @description Object reference to the menu item's submenu. - * @default null - * @private - * @type YAHOO.widget.Menu - */ - _oSubmenu: null, - - - /** - * @property _checkImage - * @description Object reference to the menu item's checkmark image. - * @default null - * @private - * @type HTMLImageElement - * @deprecated Use _oCheckedIndicator. - */ - _checkImage: null, - - - /** - * @property _oCheckedIndicator - * @description Object reference to the menu item's checkmark image. - * @default HTMLElement - * @private - * @type HTMLElement - */ - _oCheckedIndicator: null, - - - /** - * @property _oOnclickAttributeValue - * @description Object reference to the menu item's current value for the - * "onclick" configuration attribute. - * @default null - * @private - * @type Object - */ - _oOnclickAttributeValue: null, - - - /** - * @property _sClassName - * @description The current value of the "classname" configuration attribute. - * @default null - * @private - * @type String - */ - _sClassName: null, - - - - // Public properties - - - /** - * @property constructor - * @description Object reference to the menu item's constructor function. - * @default YAHOO.widget.MenuItem - * @type YAHOO.widget.MenuItem - */ - constructor: YAHOO.widget.MenuItem, - - - /** - * @property imageRoot - * @description String representing the root path for all of the menu - * item's images. - * @type String - * @deprecated All menu item images are now applied via CSS - * background images. - */ - imageRoot: null, - - - /** - * @property isSecure - * @description Boolean representing whether or not the current browsing - * context is secure (HTTPS). - * @type Boolean - * @deprecated All menu item images are now applied via CSS - * background images. - */ - isSecure: Module.prototype.isSecure, - - - /** - * @property index - * @description Number indicating the ordinal position of the menu item in - * its group. - * @default null - * @type Number - */ - index: null, - - - /** - * @property groupIndex - * @description Number indicating the index of the group to which the menu - * item belongs. - * @default null - * @type Number - */ - groupIndex: null, - - - /** - * @property parent - * @description Object reference to the menu item's parent menu. - * @default null - * @type YAHOO.widget.Menu - */ - parent: null, - - - /** - * @property element - * @description Object reference to the menu item's - * <li> element. - * @default HTMLLIElement - * @type HTMLLIElement - */ - element: null, - - - /** - * @property srcElement - * @description Object reference to the HTML element (either - * <li>, <optgroup> or - * <option>) used create the menu item. - * @default HTMLLIElement|HTMLOptGroupElement|HTMLOptionElement - * @type HTMLLIElement| - * HTMLOptGroupElement|HTMLOptionElement - */ - srcElement: null, - - - /** - * @property value - * @description Object reference to the menu item's value. - * @default null - * @type Object - */ - value: null, - - - /** - * @property submenuIndicator - * @description Object reference to the <em> element - * used to create the submenu indicator for the menu item. - * @default HTMLElement - * @type HTMLElement - */ - submenuIndicator: null, - - - /** - * @property browser - * @description String representing the browser. - * @type String - */ - browser: Module.prototype.browser, - - - /** - * @property id - * @description Id of the menu item's root <li> - * element. This property should be set via the constructor using the - * configuration object literal. If an id is not specified, then one will - * be created using the "generateId" method of the Dom utility. - * @default null - * @type String - */ - id: null, - - - - // Events - - - /** - * @event destroyEvent - * @description Fires when the menu item's <li> - * element is removed from its parent <ul> element. - * @type YAHOO.util.CustomEvent - */ - destroyEvent: null, - - - /** - * @event mouseOverEvent - * @description Fires when the mouse has entered the menu item. Passes - * back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - mouseOverEvent: null, - - - /** - * @event mouseOutEvent - * @description Fires when the mouse has left the menu item. Passes back - * the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - mouseOutEvent: null, - - - /** - * @event mouseDownEvent - * @description Fires when the user mouses down on the menu item. Passes - * back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - mouseDownEvent: null, - - - /** - * @event mouseUpEvent - * @description Fires when the user releases a mouse button while the mouse - * is over the menu item. Passes back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - mouseUpEvent: null, - - - /** - * @event clickEvent - * @description Fires when the user clicks the on the menu item. Passes - * back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - clickEvent: null, - - - /** - * @event keyPressEvent - * @description Fires when the user presses an alphanumeric key when the - * menu item has focus. Passes back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - keyPressEvent: null, - - - /** - * @event keyDownEvent - * @description Fires when the user presses a key when the menu item has - * focus. Passes back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - keyDownEvent: null, - - - /** - * @event keyUpEvent - * @description Fires when the user releases a key when the menu item has - * focus. Passes back the DOM Event object as an argument. - * @type YAHOO.util.CustomEvent - */ - keyUpEvent: null, - - - /** - * @event focusEvent - * @description Fires when the menu item receives focus. - * @type YAHOO.util.CustomEvent - */ - focusEvent: null, - - - /** - * @event blurEvent - * @description Fires when the menu item loses the input focus. - * @type YAHOO.util.CustomEvent - */ - blurEvent: null, - - - /** - * @method init - * @description The MenuItem class's initialization method. This method is - * automatically called by the constructor, and sets up all DOM references - * for pre-existing markup, and creates required markup if it is not - * already present. - * @param {String} p_oObject String specifying the text of the menu item. - * @param {HTMLLIElement} p_oObject Object specifying - * the <li> element of the menu item. - * @param {HTMLOptGroupElement} p_oObject Object - * specifying the <optgroup> element of the menu item. - * @param {HTMLOptionElement} p_oObject Object - * specifying the <option> element of the menu item. - * @param {Object} p_oConfig Optional. Object literal specifying the - * configuration for the menu item. See configuration class documentation - * for more details. - */ - init: function(p_oObject, p_oConfig) { - - - if(!this.SUBMENU_TYPE) { - - this.SUBMENU_TYPE = Menu; - - } - - - // Create the config object - - this.cfg = new YAHOO.util.Config(this); - - this.initDefaultConfig(); - - var oConfig = this.cfg; - - - if(this._checkString(p_oObject)) { - - this._createRootNodeStructure(); - - oConfig.setProperty("text", p_oObject); - - } - else if(this._checkDOMNode(p_oObject)) { - - switch(p_oObject.tagName.toUpperCase()) { - - case "OPTION": - - this._createRootNodeStructure(); - - oConfig.setProperty("text", p_oObject.text); - - this.srcElement = p_oObject; - - break; - - case "OPTGROUP": - - this._createRootNodeStructure(); - - oConfig.setProperty("text", p_oObject.label); - - this.srcElement = p_oObject; - - this._initSubTree(); - - break; - - case "LI": - - // Get the anchor node (if it exists) - - var oAnchor = this._getFirstElement(p_oObject, "A"), - sURL = "#", - sTarget, - sText; - - - // Capture the "text" and/or the "URL" - - if(oAnchor) { - - sURL = oAnchor.getAttribute("href"); - sTarget = oAnchor.getAttribute("target"); - - if(oAnchor.innerText) { - - sText = oAnchor.innerText; - - } - else { - - var oRange = oAnchor.ownerDocument.createRange(); - - oRange.selectNodeContents(oAnchor); - - sText = oRange.toString(); - - } - - } - else { - - var oText = p_oObject.firstChild; - - sText = oText.nodeValue; - - oAnchor = document.createElement("a"); - - oAnchor.setAttribute("href", sURL); - - p_oObject.replaceChild(oAnchor, oText); - - oAnchor.appendChild(oText); - - } - - - this.srcElement = p_oObject; - this.element = p_oObject; - this._oAnchor = oAnchor; - - - // Check if emphasis has been applied to the MenuItem - - var oEmphasisNode = this._getFirstElement(oAnchor), - bEmphasis = false, - bStrongEmphasis = false; - - if(oEmphasisNode) { - - // Set a reference to the text node - - this._oText = oEmphasisNode.firstChild; - - switch(oEmphasisNode.tagName.toUpperCase()) { - - case "EM": - - bEmphasis = true; - - break; - - case "STRONG": - - bStrongEmphasis = true; - - break; - - } - - } - else { - - // Set a reference to the text node - - this._oText = oAnchor.firstChild; - - } - - - /* - Set these properties silently to sync up the - configuration object without making changes to the - element's DOM - */ - - oConfig.setProperty("text", sText, true); - oConfig.setProperty("url", sURL, true); - oConfig.setProperty("target", sTarget, true); - oConfig.setProperty("emphasis", bEmphasis, true); - oConfig.setProperty( - "strongemphasis", - bStrongEmphasis, - true - ); - - this._initSubTree(); - - break; - - } - - } - - - if(this.element) { - - var sId = this.element.id; - - if(!sId) { - - sId = this.id || Dom.generateId(); - - this.element.id = sId; - - } - - this.id = sId; - - - Dom.addClass(this.element, this.CSS_CLASS_NAME); - - - // Create custom events - - var CustomEvent = YAHOO.util.CustomEvent; - - this.destroyEvent = new CustomEvent("destroyEvent", this); - this.mouseOverEvent = new CustomEvent("mouseOverEvent", this); - this.mouseOutEvent = new CustomEvent("mouseOutEvent", this); - this.mouseDownEvent = new CustomEvent("mouseDownEvent", this); - this.mouseUpEvent = new CustomEvent("mouseUpEvent", this); - this.clickEvent = new CustomEvent("clickEvent", this); - this.keyPressEvent = new CustomEvent("keyPressEvent", this); - this.keyDownEvent = new CustomEvent("keyDownEvent", this); - this.keyUpEvent = new CustomEvent("keyUpEvent", this); - this.focusEvent = new CustomEvent("focusEvent", this); - this.blurEvent = new CustomEvent("blurEvent", this); - - - if(p_oConfig) { - - oConfig.applyConfig(p_oConfig); - - } - - oConfig.fireQueue(); - - - - - } - - }, - - - - // Private methods - - - /** - * @method _getFirstElement - * @description Returns an HTML element's first HTML element node. - * @private - * @param {HTMLElement} p_oElement Object - * reference specifying the element to be evaluated. - * @param {String} p_sTagName Optional. String specifying the tagname of - * the element to be retrieved. - * @return {HTMLElement} - */ - _getFirstElement: function(p_oElement, p_sTagName) { - - var oFirstChild = p_oElement.firstChild, - oElement; - - if(oFirstChild) { - - if(oFirstChild.nodeType == 1) { - - oElement = oFirstChild; - - } - else { - - var oNextSibling = oFirstChild.nextSibling; - - if(oNextSibling && oNextSibling.nodeType == 1) { - - oElement = oNextSibling; - - } - - } - - } - - - if(p_sTagName) { - - return (oElement && oElement.tagName.toUpperCase() == p_sTagName) ? - oElement : false; - - } - - return oElement; - - }, - - - /** - * @method _checkString - * @description Determines if an object is a string. - * @private - * @param {Object} p_oObject Object to be evaluated. - * @return {Boolean} - */ - _checkString: function(p_oObject) { - - return (typeof p_oObject == "string"); - - }, - - - /** - * @method _checkDOMNode - * @description Determines if an object is an HTML element. - * @private - * @param {Object} p_oObject Object to be evaluated. - * @return {Boolean} - */ - _checkDOMNode: function(p_oObject) { - - return (p_oObject && p_oObject.tagName); - - }, - - - /** - * @method _createRootNodeStructure - * @description Creates the core DOM structure for the menu item. - * @private - */ - _createRootNodeStructure: function () { - - if(!m_oMenuItemElement) { - - m_oMenuItemElement = document.createElement("li"); - m_oMenuItemElement.innerHTML = "s"; - - } - - this.element = m_oMenuItemElement.cloneNode(true); - this._oAnchor = this.element.firstChild; - this._oText = this._oAnchor.firstChild; - - this.element.appendChild(this._oAnchor); - - }, - - - /** - * @method _initSubTree - * @description Iterates the source element's childNodes collection and uses - * the child nodes to instantiate other menus. - * @private - */ - _initSubTree: function() { - - var oSrcEl = this.srcElement, - oConfig = this.cfg; - - - if(oSrcEl.childNodes.length > 0) { - - if( - this.parent.lazyLoad && - this.parent.srcElement && - this.parent.srcElement.tagName.toUpperCase() == "SELECT" - ) { - - oConfig.setProperty( - "submenu", - { id: Dom.generateId(), itemdata: oSrcEl.childNodes } - ); - - } - else { - - var oNode = oSrcEl.firstChild, - aOptions = []; - - do { - - if(oNode && oNode.tagName) { - - switch(oNode.tagName.toUpperCase()) { - - case "DIV": - - oConfig.setProperty("submenu", oNode); - - break; - - case "OPTION": - - aOptions[aOptions.length] = oNode; - - break; - - } - - } - - } - while((oNode = oNode.nextSibling)); - - - var nOptions = aOptions.length; - - if(nOptions > 0) { - - var oMenu = new this.SUBMENU_TYPE(Dom.generateId()); - - oConfig.setProperty("submenu", oMenu); - - for(var n=0; n 0) { - - oAnchor.setAttribute("target", sTarget); - - } - else { - - oAnchor.removeAttribute("target"); - - } - - }, - - - /** - * @method configEmphasis - * @description Event handler for when the "emphasis" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configEmphasis: function(p_sType, p_aArgs, p_oItem) { - - var bEmphasis = p_aArgs[0], - oAnchor = this._oAnchor, - oText = this._oText, - oConfig = this.cfg, - oEM; - - - if(bEmphasis && oConfig.getProperty("strongemphasis")) { - - oConfig.setProperty("strongemphasis", false); - - } - - - if(oAnchor) { - - if(bEmphasis) { - - oEM = document.createElement("em"); - oEM.appendChild(oText); - - oAnchor.appendChild(oEM); - - } - else { - - oEM = this._getFirstElement(oAnchor, "EM"); - - if(oEM) { - - oAnchor.removeChild(oEM); - oAnchor.appendChild(oText); - - } - - } - - } - - }, - - - /** - * @method configStrongEmphasis - * @description Event handler for when the "strongemphasis" configuration - * property of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configStrongEmphasis: function(p_sType, p_aArgs, p_oItem) { - - var bStrongEmphasis = p_aArgs[0], - oAnchor = this._oAnchor, - oText = this._oText, - oConfig = this.cfg, - oStrong; - - if(bStrongEmphasis && oConfig.getProperty("emphasis")) { - - oConfig.setProperty("emphasis", false); - - } - - if(oAnchor) { - - if(bStrongEmphasis) { - - oStrong = document.createElement("strong"); - oStrong.appendChild(oText); - - oAnchor.appendChild(oStrong); - - } - else { - - oStrong = this._getFirstElement(oAnchor, "STRONG"); - - if(oStrong) { - - oAnchor.removeChild(oStrong); - oAnchor.appendChild(oText); - - } - - } - - } - - }, - - - /** - * @method configChecked - * @description Event handler for when the "checked" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configChecked: function(p_sType, p_aArgs, p_oItem) { - - var bChecked = p_aArgs[0], - oEl = this.element, - oConfig = this.cfg, - oEM; - - - if(bChecked) { - - if(!m_oCheckedIndicator) { - - m_oCheckedIndicator = document.createElement("em"); - m_oCheckedIndicator.innerHTML = this.CHECKED_TEXT; - m_oCheckedIndicator.className = "checkedindicator"; - - } - - oEM = m_oCheckedIndicator.cloneNode(true); - - var oSubmenu = this.cfg.getProperty("submenu"); - - if(oSubmenu && oSubmenu.element) { - - oEl.insertBefore(oEM, oSubmenu.element); - - } - else { - - oEl.appendChild(oEM); - - } - - - Dom.addClass(oEl, "checked"); - - this._oCheckedIndicator = oEM; - - if(oConfig.getProperty("disabled")) { - - oConfig.refireEvent("disabled"); - - } - - if(oConfig.getProperty("selected")) { - - oConfig.refireEvent("selected"); - - } - - } - else { - - oEM = this._oCheckedIndicator; - - Dom.removeClass(oEl, "checked"); - - if(oEM) { - - oEl.removeChild(oEM); - - } - - this._oCheckedIndicator = null; - - } - - }, - - - - /** - * @method configDisabled - * @description Event handler for when the "disabled" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configDisabled: function(p_sType, p_aArgs, p_oItem) { - - var bDisabled = p_aArgs[0], - oConfig = this.cfg, - oAnchor = this._oAnchor, - aNodes = [this.element, oAnchor], - oHelpText = this._oHelpTextEM, - oCheckedIndicator = this._oCheckedIndicator, - oSubmenuIndicator = this.submenuIndicator, - i = 1; - - - if(oHelpText) { - - i++; - aNodes[i] = oHelpText; - - } - - - if(oCheckedIndicator) { - - oCheckedIndicator.firstChild.nodeValue = bDisabled ? - this.DISABLED_CHECKED_TEXT : - this.CHECKED_TEXT; - - i++; - aNodes[i] = oCheckedIndicator; - - } - - - if(oSubmenuIndicator) { - - oSubmenuIndicator.firstChild.nodeValue = bDisabled ? - this.DISABLED_SUBMENU_INDICATOR_TEXT : - this.COLLAPSED_SUBMENU_INDICATOR_TEXT; - - i++; - aNodes[i] = oSubmenuIndicator; - - } - - - if(bDisabled) { - - if(oConfig.getProperty("selected")) { - - oConfig.setProperty("selected", false); - - } - - oAnchor.removeAttribute("href"); - - Dom.addClass(aNodes, "disabled"); - - } - else { - - oAnchor.setAttribute("href", oConfig.getProperty("url")); - - Dom.removeClass(aNodes, "disabled"); - - } - - }, - - - /** - * @method configSelected - * @description Event handler for when the "selected" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configSelected: function(p_sType, p_aArgs, p_oItem) { - - if(!this.cfg.getProperty("disabled")) { - - var bSelected = p_aArgs[0], - oHelpText = this._oHelpTextEM, - oSubmenuIndicator = this.submenuIndicator, - oCheckedIndicator = this._oCheckedIndicator, - aNodes = [this.element, this._oAnchor], - i = 1; - - - if(oHelpText) { - - i++; - aNodes[i] = oHelpText; - - } - - - if(oSubmenuIndicator) { - - i++; - aNodes[i] = oSubmenuIndicator; - - } - - - if(oCheckedIndicator) { - - i++; - aNodes[i] = oCheckedIndicator; - - } - - - if(bSelected) { - - Dom.addClass(aNodes, "selected"); - - } - else { - - Dom.removeClass(aNodes, "selected"); - - } - - } - - }, - - - /** - * @method configSubmenu - * @description Event handler for when the "submenu" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configSubmenu: function(p_sType, p_aArgs, p_oItem) { - - var oEl = this.element, - oSubmenu = p_aArgs[0], - oSubmenuIndicator = this.submenuIndicator, - oConfig = this.cfg, - aNodes = [this.element, this._oAnchor], - bLazyLoad = this.parent && this.parent.lazyLoad, - oMenu; - - - if(oSubmenu) { - - if(oSubmenu instanceof Menu) { - - oMenu = oSubmenu; - oMenu.parent = this; - oMenu.lazyLoad = bLazyLoad; - - } - else if( - typeof oSubmenu == "object" && - oSubmenu.id && - !oSubmenu.nodeType - ) { - - var sSubmenuId = oSubmenu.id, - oSubmenuConfig = oSubmenu; - - oSubmenuConfig.lazyload = bLazyLoad; - oSubmenuConfig.parent = this; - - oMenu = new this.SUBMENU_TYPE(sSubmenuId, oSubmenuConfig); - - - // Set the value of the property to the Menu instance - - this.cfg.setProperty("submenu", oMenu, true); - - } - else { - - oMenu = new this.SUBMENU_TYPE( - oSubmenu, - { lazyload: bLazyLoad, parent: this } - ); - - - // Set the value of the property to the Menu instance - - this.cfg.setProperty("submenu", oMenu, true); - - } - - - if(oMenu) { - - this._oSubmenu = oMenu; - - - if(!oSubmenuIndicator) { - - - if(!m_oSubmenuIndicator) { - - m_oSubmenuIndicator = document.createElement("em"); - m_oSubmenuIndicator.innerHTML = - this.COLLAPSED_SUBMENU_INDICATOR_TEXT; - m_oSubmenuIndicator.className = "submenuindicator"; - - } - - - oSubmenuIndicator = m_oSubmenuIndicator.cloneNode(true); - - - if(oMenu.element.parentNode == oEl) { - - if(this.browser == "opera") { - - oEl.appendChild(oSubmenuIndicator); - - oMenu.renderEvent.subscribe(function() { - - oSubmenuIndicator.parentNode.insertBefore( - oSubmenuIndicator, - oMenu.element - ); - - }); - - } - else { - - oEl.insertBefore(oSubmenuIndicator, oMenu.element); - - } - - } - else { - - oEl.appendChild(oSubmenuIndicator); - - } - - this.submenuIndicator = oSubmenuIndicator; - - } - - - Dom.addClass(aNodes, "hassubmenu"); - - - if(oConfig.getProperty("disabled")) { - - oConfig.refireEvent("disabled"); - - } - - if(oConfig.getProperty("selected")) { - - oConfig.refireEvent("selected"); - - } - - } - - } - else { - - Dom.removeClass(aNodes, "hassubmenu"); - - if(oSubmenuIndicator) { - - oEl.removeChild(oSubmenuIndicator); - - } - - if(this._oSubmenu) { - - this._oSubmenu.destroy(); - - } - - } - - }, - - - /** - * @method configOnClick - * @description Event handler for when the "onclick" configuration property - * of the menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configOnClick: function(p_sType, p_aArgs, p_oItem) { - - var oObject = p_aArgs[0]; - - /* - Remove any existing listeners if a "click" event handler has - already been specified. - */ - - if( - this._oOnclickAttributeValue && - (this._oOnclickAttributeValue != oObject) - ) { - - this.clickEvent.unsubscribe( - this._oOnclickAttributeValue.fn, - this._oOnclickAttributeValue.obj - ); - - this._oOnclickAttributeValue = null; - - } - - - if( - !this._oOnclickAttributeValue && - typeof oObject == "object" && - typeof oObject.fn == "function" - ) { - - this.clickEvent.subscribe( - oObject.fn, - (oObject.obj || this), - oObject.scope - ); - - this._oOnclickAttributeValue = oObject; - - } - - }, - - - /** - * @method configClassName - * @description Event handler for when the "classname" configuration - * property of a menu item changes. - * @param {String} p_sType String representing the name of the event that - * was fired. - * @param {Array} p_aArgs Array of arguments sent when the event was fired. - * @param {YAHOO.widget.MenuItem} p_oItem Object representing the menu item - * that fired the event. - */ - configClassName: function(p_sType, p_aArgs, p_oItem) { - - var sClassName = p_aArgs[0]; - - if(this._sClassName) { - - Dom.removeClass(this.element, this._sClassName); - - } - - Dom.addClass(this.element, sClassName); - this._sClassName = sClassName; - - }, - - - - // Public methods - - - /** - * @method initDefaultConfig - * @description Initializes an item's configurable properties. - */ - initDefaultConfig : function() { - - var oConfig = this.cfg, - CheckBoolean = oConfig.checkBoolean; - - - // Define the configuration attributes - - /** - * @config text - * @description String specifying the text label for the menu item. - * When building a menu from existing HTML the value of this property - * will be interpreted from the menu's markup. - * @default "" - * @type String - */ - oConfig.addProperty( - "text", - { - value: "", - handler: this.configText, - validator: this._checkString, - suppressEvent: true - } - ); - - - /** - * @config helptext - * @description String specifying additional instructional text to - * accompany the text for the nenu item. - * @default null - * @type String| - * HTMLElement - */ - oConfig.addProperty("helptext", { handler: this.configHelpText }); - - - /** - * @config url - * @description String specifying the URL for the menu item's anchor's - * "href" attribute. When building a menu from existing HTML the value - * of this property will be interpreted from the menu's markup. - * @default "#" - * @type String - */ - oConfig.addProperty( - "url", - { value: "#", handler: this.configURL, suppressEvent: true } - ); - - - /** - * @config target - * @description String specifying the value for the "target" attribute - * of the menu item's anchor element. Specifying a target will - * require the user to click directly on the menu item's anchor node in - * order to cause the browser to navigate to the specified URL. - * When building a menu from existing HTML the value of this property - * will be interpreted from the menu's markup. - * @default null - * @type String - */ - oConfig.addProperty( - "target", - { handler: this.configTarget, suppressEvent: true } - ); - - - /** - * @config emphasis - * @description Boolean indicating if the text of the menu item will be - * rendered with emphasis. When building a menu from existing HTML the - * value of this property will be interpreted from the menu's markup. - * @default false - * @type Boolean - */ - oConfig.addProperty( - "emphasis", - { - value: false, - handler: this.configEmphasis, - validator: CheckBoolean, - suppressEvent: true - } - ); - - - /** - * @config strongemphasis - * @description Boolean indicating if the text of the menu item will be - * rendered with strong emphasis. When building a menu from existing - * HTML the value of this property will be interpreted from the - * menu's markup. - * @default false - * @type Boolean - */ - oConfig.addProperty( - "strongemphasis", - { - value: false, - handler: this.configStrongEmphasis, - validator: CheckBoolean, - suppressEvent: true - } - ); - - - /** - * @config checked - * @description Boolean indicating if the menu item should be rendered - * with a checkmark. - * @default false - * @type Boolean - */ - oConfig.addProperty( - "checked", - { - value: false, - handler: this.configChecked, - validator: this.cfg.checkBoolean, - suppressEvent: true, - supercedes:["disabled"] - } - ); - - - /** - * @config disabled - * @description Boolean indicating if the menu item should be disabled. - * (Disabled menu items are dimmed and will not respond to user input - * or fire events.) - * @default false - * @type Boolean - */ - oConfig.addProperty( - "disabled", - { - value: false, - handler: this.configDisabled, - validator: CheckBoolean, - suppressEvent: true - } - ); - - - /** - * @config selected - * @description Boolean indicating if the menu item should - * be highlighted. - * @default false - * @type Boolean - */ - oConfig.addProperty( - "selected", - { - value: false, - handler: this.configSelected, - validator: CheckBoolean, - suppressEvent: true - } - ); - - - /** - * @config submenu - * @description Object specifying the submenu to be appended to the - * menu item. The value can be one of the following:
    • Object - * specifying a Menu instance.
    • Object literal specifying the - * menu to be created. Format: { id: [menu id], itemdata: - * [array of values for - * items] }.
    • String specifying the id attribute - * of the <div> element of the menu.
    • - * Object specifying the <div> element of the - * menu.
    - * @default null - * @type Menu|String|Object| - * HTMLElement - */ - oConfig.addProperty("submenu", { handler: this.configSubmenu }); - - - /** - * @config onclick - * @description Object literal representing the code to be executed when - * the button is clicked. Format:
    {
    - * fn: Function, // The handler to call when - * the event fires.
    obj: Object, // An - * object to pass back to the handler.
    scope: - * Object // The object to use for the scope of the handler. - *
    }
    - * @type Object - * @default null - */ - oConfig.addProperty("onclick", { handler: this.configOnClick }); - - - /** - * @config classname - * @description CSS class to be applied to the menu item's root - * <li> element. The specified class(es) are - * appended in addition to the default class as specified by the menu - * item's CSS_CLASS_NAME constant. - * @default null - * @type String - */ - oConfig.addProperty( - "classname", - { - value: null, - handler: this.configClassName, - validator: this._checkString - } - ); - - }, - - - /** - * @method getNextEnabledSibling - * @description Finds the menu item's next enabled sibling. - * @return YAHOO.widget.MenuItem - */ - getNextEnabledSibling: function() { - - if(this.parent instanceof Menu) { - - var nGroupIndex = this.groupIndex; - - function getNextArrayItem(p_aArray, p_nStartIndex) { - - return p_aArray[p_nStartIndex] || - getNextArrayItem(p_aArray, (p_nStartIndex+1)); - - } - - - var aItemGroups = this.parent.getItemGroups(), - oNextItem; - - - if(this.index < (aItemGroups[nGroupIndex].length - 1)) { - - oNextItem = getNextArrayItem( - aItemGroups[nGroupIndex], - (this.index+1) - ); - - } - else { - - var nNextGroupIndex; - - if(nGroupIndex < (aItemGroups.length - 1)) { - - nNextGroupIndex = nGroupIndex + 1; - - } - else { - - nNextGroupIndex = 0; - - } - - var aNextGroup = getNextArrayItem(aItemGroups, nNextGroupIndex); - - // Retrieve the first menu item in the next group - - oNextItem = getNextArrayItem(aNextGroup, 0); - - } - - return ( - oNextItem.cfg.getProperty("disabled") || - oNextItem.element.style.display == "none" - ) ? - oNextItem.getNextEnabledSibling() : oNextItem; - - } - - }, - - - /** - * @method getPreviousEnabledSibling - * @description Finds the menu item's previous enabled sibling. - * @return {YAHOO.widget.MenuItem} - */ - getPreviousEnabledSibling: function() { - - if(this.parent instanceof Menu) { - - var nGroupIndex = this.groupIndex; - - function getPreviousArrayItem(p_aArray, p_nStartIndex) { - - return p_aArray[p_nStartIndex] || - getPreviousArrayItem(p_aArray, (p_nStartIndex-1)); - - } - - function getFirstItemIndex(p_aArray, p_nStartIndex) { - - return p_aArray[p_nStartIndex] ? - p_nStartIndex : - getFirstItemIndex(p_aArray, (p_nStartIndex+1)); - - } - - var aItemGroups = this.parent.getItemGroups(), - oPreviousItem; - - if( - this.index > getFirstItemIndex(aItemGroups[nGroupIndex], 0) - ) { - - oPreviousItem = - getPreviousArrayItem( - aItemGroups[nGroupIndex], - (this.index-1) - ); - - } - else { - - var nPreviousGroupIndex; - - if(nGroupIndex > getFirstItemIndex(aItemGroups, 0)) { - - nPreviousGroupIndex = nGroupIndex - 1; - - } - else { - - nPreviousGroupIndex = aItemGroups.length - 1; - - } - - var aPreviousGroup = - getPreviousArrayItem(aItemGroups, nPreviousGroupIndex); - - oPreviousItem = - getPreviousArrayItem( - aPreviousGroup, - (aPreviousGroup.length - 1) - ); - - } - - return ( - oPreviousItem.cfg.getProperty("disabled") || - oPreviousItem.element.style.display == "none" - ) ? - oPreviousItem.getPreviousEnabledSibling() : oPreviousItem; - - } - - }, - - - /** - * @method focus - * @description Causes the menu item to receive the focus and fires the - * focus event. - */ - focus: function() { - - var oParent = this.parent, - oAnchor = this._oAnchor, - oActiveItem = oParent.activeItem; - - - function setFocus() { - - try { - - oAnchor.focus(); - - } - catch(e) { - - } - - } - - - if( - !this.cfg.getProperty("disabled") && - oParent && - oParent.cfg.getProperty("visible") && - this.element.style.display != "none" - ) { - - if(oActiveItem) { - - oActiveItem.blur(); - - } - - - /* - Setting focus via a timer fixes a race condition in Firefox, IE - and Opera where the browser viewport jumps as it trys to - position and focus the menu. - */ - - window.setTimeout(setFocus, 0); - - this.focusEvent.fire(); - - } - - }, - - - /** - * @method blur - * @description Causes the menu item to lose focus and fires the - * onblur event. - */ - blur: function() { - - var oParent = this.parent; - - if( - !this.cfg.getProperty("disabled") && - oParent && - Dom.getStyle(oParent.element, "visibility") == "visible" - ) { - - this._oAnchor.blur(); - - this.blurEvent.fire(); - - } - - }, - - - /** - * @method destroy - * @description Removes the menu item's <li> element - * from its parent <ul> element. - */ - destroy: function() { - - var oEl = this.element; - - if(oEl) { - - - // If the item has a submenu, destroy it first - - var oSubmenu = this.cfg.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.destroy(); - - } - - - // Remove CustomEvent listeners - - this.mouseOverEvent.unsubscribeAll(); - this.mouseOutEvent.unsubscribeAll(); - this.mouseDownEvent.unsubscribeAll(); - this.mouseUpEvent.unsubscribeAll(); - this.clickEvent.unsubscribeAll(); - this.keyPressEvent.unsubscribeAll(); - this.keyDownEvent.unsubscribeAll(); - this.keyUpEvent.unsubscribeAll(); - this.focusEvent.unsubscribeAll(); - this.blurEvent.unsubscribeAll(); - this.cfg.configChangedEvent.unsubscribeAll(); - - - // Remove the element from the parent node - - var oParentNode = oEl.parentNode; - - if(oParentNode) { - - oParentNode.removeChild(oEl); - - this.destroyEvent.fire(); - - } - - this.destroyEvent.unsubscribeAll(); - - } - - }, - - - /** - * @method toString - * @description Returns a string representing the menu item. - * @return {String} - */ - toString: function() { - - return ("MenuItem: " + this.cfg.getProperty("text")); - - } - -}; - -})(); - - - -/** -* Creates a list of options or commands which are made visible in response to -* an HTML element's "contextmenu" event ("mousedown" for Opera). -* -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the context menu. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source for the -* context menu. -* @param {HTMLDivElement} p_oElement Object specifying the -* <div> element of the context menu. -* @param {HTMLSelectElement} p_oElement Object specifying -* the <select> element to be used as the data source for -* the context menu. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the context menu. See configuration class documentation -* for more details. -* @class ContextMenu -* @constructor -* @extends YAHOO.widget.Menu -* @namespace YAHOO.widget -*/ -YAHOO.widget.ContextMenu = function(p_oElement, p_oConfig) { - - YAHOO.widget.ContextMenu.superclass.constructor.call( - this, - p_oElement, - p_oConfig - ); - -}; - - -YAHOO.lang.extend(YAHOO.widget.ContextMenu, YAHOO.widget.Menu, { - - - -// Private properties - - -/** -* @property _oTrigger -* @description Object reference to the current value of the "trigger" -* configuration property. -* @default null -* @private -* @type String|HTMLElement|Array -*/ -_oTrigger: null, - - -/** -* @property _bCancelled -* @description Boolean indicating if the display of the context menu should -* be cancelled. -* @default false -* @private -* @type Boolean -*/ -_bCancelled: false, - - -// Public properties - - -/** -* @property contextEventTarget -* @description Object reference for the HTML element that was the target of the -* "contextmenu" DOM event ("mousedown" for Opera) that triggered the display of -* the context menu. -* @default null -* @type HTMLElement -*/ -contextEventTarget: null, - - - -// Events - - -/** -* @event triggerContextMenuEvent -* @description Custom Event wrapper for the "contextmenu" DOM event -* ("mousedown" for Opera) fired by the element(s) that trigger the display of -* the context menu. -*/ -triggerContextMenuEvent: null, - - - - - -/** -* @method init -* @description The ContextMenu class's initialization method. This method is -* automatically called by the constructor, and sets up all DOM references for -* pre-existing markup, and creates required markup if it is not already present. -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the context menu. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source for -* the context menu. -* @param {HTMLDivElement} p_oElement Object specifying the -* <div> element of the context menu. -* @param {HTMLSelectElement} p_oElement Object specifying -* the <select> element to be used as the data source for -* the context menu. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the context menu. See configuration class documentation -* for more details. -*/ -init: function(p_oElement, p_oConfig) { - - if(!this.ITEM_TYPE) { - - this.ITEM_TYPE = YAHOO.widget.ContextMenuItem; - - } - - - // Call the init of the superclass (YAHOO.widget.Menu) - - YAHOO.widget.ContextMenu.superclass.init.call(this, p_oElement); - - - this.beforeInitEvent.fire(YAHOO.widget.ContextMenu); - - - if(p_oConfig) { - - this.cfg.applyConfig(p_oConfig, true); - - } - - - this.initEvent.fire(YAHOO.widget.ContextMenu); - -}, - - -/** -* @method initEvents -* @description Initializes the custom events for the context menu. -*/ -initEvents: function() { - - YAHOO.widget.ContextMenu.superclass.initEvents.call(this); - - // Create custom events - - this.triggerContextMenuEvent = - new YAHOO.util.CustomEvent("triggerContextMenuEvent", this); - -}, - - -/** -* @method cancel -* @description Cancels the display of the context menu. -*/ -cancel: function() { - - this._bCancelled = true; - -}, - - - -// Private methods - - -/** -* @method _removeEventHandlers -* @description Removes all of the DOM event handlers from the HTML element(s) -* whose "context menu" event ("click" for Opera) trigger the display of -* the context menu. -* @private -*/ -_removeEventHandlers: function() { - - var Event = YAHOO.util.Event, - oTrigger = this._oTrigger, - bOpera = (this.browser == "opera"); - - - // Remove the event handlers from the trigger(s) - - Event.removeListener( - oTrigger, - (bOpera ? "mousedown" : "contextmenu"), - this._onTriggerContextMenu - ); - - if(bOpera) { - - Event.removeListener(oTrigger, "click", this._onTriggerClick); - - } - -}, - - - -// Private event handlers - - -/** -* @method _onTriggerClick -* @description "click" event handler for the HTML element(s) identified as the -* "trigger" for the context menu. Used to cancel default behaviors in Opera. -* @private -* @param {Event} p_oEvent Object representing the DOM event object passed back -* by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.ContextMenu} p_oMenu Object representing the context -* menu that is handling the event. -*/ -_onTriggerClick: function(p_oEvent, p_oMenu) { - - if(p_oEvent.ctrlKey) { - - YAHOO.util.Event.stopEvent(p_oEvent); - - } - -}, - - -/** -* @method _onTriggerContextMenu -* @description "contextmenu" event handler ("mousedown" for Opera) for the HTML -* element(s) that trigger the display of the context menu. -* @private -* @param {Event} p_oEvent Object representing the DOM event object passed back -* by the event utility (YAHOO.util.Event). -* @param {YAHOO.widget.ContextMenu} p_oMenu Object representing the context -* menu that is handling the event. -*/ -_onTriggerContextMenu: function(p_oEvent, p_oMenu) { - - var Event = YAHOO.util.Event; - - if(p_oEvent.type == "mousedown" && !p_oEvent.ctrlKey) { - - return; - - } - - - /* - Prevent the browser's default context menu from appearing and - stop the propagation of the "contextmenu" event so that - other ContextMenu instances are not displayed. - */ - - Event.stopEvent(p_oEvent); - - - // Hide any other ContextMenu instances that might be visible - - YAHOO.widget.MenuManager.hideVisible(); - - - this.contextEventTarget = Event.getTarget(p_oEvent); - - this.triggerContextMenuEvent.fire(p_oEvent); - - - if(!this._bCancelled) { - - // Position and display the context menu - - this.cfg.setProperty("xy", Event.getXY(p_oEvent)); - - this.show(); - - } - - this._bCancelled = false; - -}, - - - -// Public methods - - -/** -* @method toString -* @description Returns a string representing the context menu. -* @return {String} -*/ -toString: function() { - - return ("ContextMenu " + this.id); - -}, - - -/** -* @method initDefaultConfig -* @description Initializes the class's configurable properties which can be -* changed using the context menu's Config object ("cfg"). -*/ -initDefaultConfig: function() { - - YAHOO.widget.ContextMenu.superclass.initDefaultConfig.call(this); - - /** - * @config trigger - * @description The HTML element(s) whose "contextmenu" event ("mousedown" - * for Opera) trigger the display of the context menu. Can be a string - * representing the id attribute of the HTML element, an object reference - * for the HTML element, or an array of strings or HTML element references. - * @default null - * @type String|HTMLElement|Array - */ - this.cfg.addProperty("trigger", { handler: this.configTrigger }); - -}, - - -/** -* @method destroy -* @description Removes the context menu's <div> element -* (and accompanying child nodes) from the document. -*/ -destroy: function() { - - // Remove the DOM event handlers from the current trigger(s) - - this._removeEventHandlers(); - - - // Continue with the superclass implementation of this method - - YAHOO.widget.ContextMenu.superclass.destroy.call(this); - -}, - - - -// Public event handlers for configuration properties - - -/** -* @method configTrigger -* @description Event handler for when the value of the "trigger" configuration -* property changes. -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.ContextMenu} p_oMenu Object representing the context -* menu that fired the event. -*/ -configTrigger: function(p_sType, p_aArgs, p_oMenu) { - - var Event = YAHOO.util.Event, - oTrigger = p_aArgs[0]; - - if(oTrigger) { - - /* - If there is a current "trigger" - remove the event handlers - from that element(s) before assigning new ones - */ - - if(this._oTrigger) { - - this._removeEventHandlers(); - - } - - this._oTrigger = oTrigger; - - - /* - Listen for the "mousedown" event in Opera b/c it does not - support the "contextmenu" event - */ - - var bOpera = (this.browser == "opera"); - - Event.addListener( - oTrigger, - (bOpera ? "mousedown" : "contextmenu"), - this._onTriggerContextMenu, - this, - true - ); - - - /* - Assign a "click" event handler to the trigger element(s) for - Opera to prevent default browser behaviors. - */ - - if(bOpera) { - - Event.addListener( - oTrigger, - "click", - this._onTriggerClick, - this, - true - ); - - } - - } - else { - - this._removeEventHandlers(); - - } - -} - -}); // END YAHOO.lang.extend - - - -/** -* Creates an item for a context menu. -* -* @param {String} p_oObject String specifying the text of the context menu item. -* @param {HTMLLIElement} p_oObject Object specifying the -* <li> element of the context menu item. -* @param {HTMLOptGroupElement} p_oObject Object -* specifying the <optgroup> element of the context -* menu item. -* @param {HTMLOptionElement} p_oObject Object specifying -* the <option> element of the context menu item. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the context menu item. See configuration class -* documentation for more details. -* @class ContextMenuItem -* @constructor -* @extends YAHOO.widget.MenuItem -*/ -YAHOO.widget.ContextMenuItem = function(p_oObject, p_oConfig) { - - YAHOO.widget.ContextMenuItem.superclass.constructor.call( - this, - p_oObject, - p_oConfig - ); - -}; - -YAHOO.lang.extend(YAHOO.widget.ContextMenuItem, YAHOO.widget.MenuItem, { - - -/** -* @method init -* @description The ContextMenuItem class's initialization method. This method -* is automatically called by the constructor, and sets up all DOM references -* for pre-existing markup, and creates required markup if it is not -* already present. -* @param {String} p_oObject String specifying the text of the context menu item. -* @param {HTMLLIElement} p_oObject Object specifying the -* <li> element of the context menu item. -* @param {HTMLOptGroupElement} p_oObject Object -* specifying the <optgroup> element of the context -* menu item. -* @param {HTMLOptionElement} p_oObject Object specifying -* the <option> element of the context menu item. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the context menu item. See configuration class -* documentation for more details. -*/ -init: function(p_oObject, p_oConfig) { - - if(!this.SUBMENU_TYPE) { - - this.SUBMENU_TYPE = YAHOO.widget.ContextMenu; - - } - - - /* - Call the init of the superclass (YAHOO.widget.MenuItem) - Note: We don't pass the user config in here yet - because we only want it executed once, at the lowest - subclass level. - */ - - YAHOO.widget.ContextMenuItem.superclass.init.call(this, p_oObject); - - var oConfig = this.cfg; - - if(p_oConfig) { - - oConfig.applyConfig(p_oConfig, true); - - } - - oConfig.fireQueue(); - -}, - - - -// Public methods - - -/** -* @method toString -* @description Returns a string representing the context menu item. -* @return {String} -*/ -toString: function() { - - return ("ContextMenuItem: " + this.cfg.getProperty("text")); - -} - -}); // END YAHOO.lang.extend - - - -/** -* Horizontal collection of items, each of which can contain a submenu. -* -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the menu bar. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source for the -* menu bar. -* @param {HTMLDivElement} p_oElement Object specifying -* the <div> element of the menu bar. -* @param {HTMLSelectElement} p_oElement Object -* specifying the <select> element to be used as the data -* source for the menu bar. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu bar. See configuration class documentation for -* more details. -* @class Menubar -* @constructor -* @extends YAHOO.widget.Menu -* @namespace YAHOO.widget -*/ -YAHOO.widget.MenuBar = function(p_oElement, p_oConfig) { - - YAHOO.widget.MenuBar.superclass.constructor.call( - this, - p_oElement, - p_oConfig - ); - -}; - -YAHOO.lang.extend(YAHOO.widget.MenuBar, YAHOO.widget.Menu, { - -/** -* @method init -* @description The MenuBar class's initialization method. This method is -* automatically called by the constructor, and sets up all DOM references for -* pre-existing markup, and creates required markup if it is not already present. -* @param {String} p_oElement String specifying the id attribute of the -* <div> element of the menu bar. -* @param {String} p_oElement String specifying the id attribute of the -* <select> element to be used as the data source for the -* menu bar. -* @param {HTMLDivElement} p_oElement Object specifying -* the <div> element of the menu bar. -* @param {HTMLSelectElement} p_oElement Object -* specifying the <select> element to be used as the data -* source for the menu bar. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu bar. See configuration class documentation for -* more details. -*/ -init: function(p_oElement, p_oConfig) { - - if(!this.ITEM_TYPE) { - - this.ITEM_TYPE = YAHOO.widget.MenuBarItem; - - } - - - // Call the init of the superclass (YAHOO.widget.Menu) - - YAHOO.widget.MenuBar.superclass.init.call(this, p_oElement); - - - this.beforeInitEvent.fire(YAHOO.widget.MenuBar); - - - if(p_oConfig) { - - this.cfg.applyConfig(p_oConfig, true); - - } - - this.initEvent.fire(YAHOO.widget.MenuBar); - -}, - - - -// Constants - - -/** -* @property CSS_CLASS_NAME -* @description String representing the CSS class(es) to be applied to the menu -* bar's <div> element. -* @default "yuimenubar" -* @final -* @type String -*/ -CSS_CLASS_NAME: "yuimenubar", - - - -// Protected event handlers - - -/** -* @method _onKeyDown -* @description "keydown" Custom Event handler for the menu bar. -* @private -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.MenuBar} p_oMenuBar Object representing the menu bar -* that fired the event. -*/ -_onKeyDown: function(p_sType, p_aArgs, p_oMenuBar) { - - var Event = YAHOO.util.Event, - oEvent = p_aArgs[0], - oItem = p_aArgs[1], - oSubmenu; - - - if(oItem && !oItem.cfg.getProperty("disabled")) { - - var oItemCfg = oItem.cfg; - - switch(oEvent.keyCode) { - - case 37: // Left arrow - case 39: // Right arrow - - if( - oItem == this.activeItem && - !oItemCfg.getProperty("selected") - ) { - - oItemCfg.setProperty("selected", true); - - } - else { - - var oNextItem = (oEvent.keyCode == 37) ? - oItem.getPreviousEnabledSibling() : - oItem.getNextEnabledSibling(); - - if(oNextItem) { - - this.clearActiveItem(); - - oNextItem.cfg.setProperty("selected", true); - - - if(this.cfg.getProperty("autosubmenudisplay")) { - - oSubmenu = oNextItem.cfg.getProperty("submenu"); - - if(oSubmenu) { - - oSubmenu.show(); - oSubmenu.activeItem.blur(); - oSubmenu.activeItem = null; - - } - - } - - oNextItem.focus(); - - } - - } - - Event.preventDefault(oEvent); - - break; - - case 40: // Down arrow - - if(this.activeItem != oItem) { - - this.clearActiveItem(); - - oItemCfg.setProperty("selected", true); - oItem.focus(); - - } - - oSubmenu = oItemCfg.getProperty("submenu"); - - if(oSubmenu) { - - if(oSubmenu.cfg.getProperty("visible")) { - - oSubmenu.setInitialSelection(); - oSubmenu.setInitialFocus(); - - } - else { - - oSubmenu.show(); - - } - - } - - Event.preventDefault(oEvent); - - break; - - } - - } - - - if(oEvent.keyCode == 27 && this.activeItem) { // Esc key - - oSubmenu = this.activeItem.cfg.getProperty("submenu"); - - if(oSubmenu && oSubmenu.cfg.getProperty("visible")) { - - oSubmenu.hide(); - this.activeItem.focus(); - - } - else { - - this.activeItem.cfg.setProperty("selected", false); - this.activeItem.blur(); - - } - - Event.preventDefault(oEvent); - - } - -}, - - -/** -* @method _onClick -* @description "click" event handler for the menu bar. -* @protected -* @param {String} p_sType String representing the name of the event that -* was fired. -* @param {Array} p_aArgs Array of arguments sent when the event was fired. -* @param {YAHOO.widget.MenuBar} p_oMenuBar Object representing the menu bar -* that fired the event. -*/ -_onClick: function(p_sType, p_aArgs, p_oMenuBar) { - - YAHOO.widget.MenuBar.superclass._onClick.call( - this, - p_sType, - p_aArgs, - p_oMenuBar - ); - - - var oItem = p_aArgs[1]; - - if(oItem && !oItem.cfg.getProperty("disabled")) { - - var Event = YAHOO.util.Event, - Dom = YAHOO.util.Dom, - - oEvent = p_aArgs[0], - oTarget = Event.getTarget(oEvent), - - oActiveItem = this.activeItem, - oConfig = this.cfg; - - - // Hide any other submenus that might be visible - - if(oActiveItem && oActiveItem != oItem) { - - this.clearActiveItem(); - - } - - - // Select and focus the current item - - oItem.cfg.setProperty("selected", true); - oItem.focus(); - - - // Show the submenu for the item - - var oSubmenu = oItem.cfg.getProperty("submenu"); - - - if(oSubmenu && oTarget != oItem.submenuIndicator) { - - if(oSubmenu.cfg.getProperty("visible")) { - - oSubmenu.hide(); - - } - else { - - oSubmenu.show(); - - } - - } - - } - -}, - - - -// Public methods - - -/** -* @method toString -* @description Returns a string representing the menu bar. -* @return {String} -*/ -toString: function() { - - return ("MenuBar " + this.id); - -}, - - -/** -* @description Initializes the class's configurable properties which can be -* changed using the menu bar's Config object ("cfg"). -* @method initDefaultConfig -*/ -initDefaultConfig: function() { - - YAHOO.widget.MenuBar.superclass.initDefaultConfig.call(this); - - var oConfig = this.cfg; - - // Add configuration properties - - - /* - Set the default value for the "position" configuration property - to "static" by re-adding the property. - */ - - /** - * @config position - * @description String indicating how a menu bar should be positioned on the - * screen. Possible values are "static" and "dynamic." Static menu bars - * are visible by default and reside in the normal flow of the document - * (CSS position: static). Dynamic menu bars are hidden by default, reside - * out of the normal flow of the document (CSS position: absolute), and can - * overlay other elements on the screen. - * @default static - * @type String - */ - oConfig.addProperty( - "position", - { - value: "static", - handler: this.configPosition, - validator: this._checkPosition, - supercedes: ["visible"] - } - ); - - - /* - Set the default value for the "submenualignment" configuration property - to ["tl","bl"] by re-adding the property. - */ - - /** - * @config submenualignment - * @description Array defining how submenus should be aligned to their - * parent menu bar item. The format is: [itemCorner, submenuCorner]. - * @default ["tl","bl"] - * @type Array - */ - oConfig.addProperty("submenualignment", { value: ["tl","bl"] } ); - - - /* - Change the default value for the "autosubmenudisplay" configuration - property to "false" by re-adding the property. - */ - - /** - * @config autosubmenudisplay - * @description Boolean indicating if submenus are automatically made - * visible when the user mouses over the menu bar's items. - * @default false - * @type Boolean - */ - oConfig.addProperty( - "autosubmenudisplay", - { value: false, validator: oConfig.checkBoolean } - ); - -} - -}); // END YAHOO.lang.extend - - - -/** -* Creates an item for a menu bar. -* -* @param {String} p_oObject String specifying the text of the menu bar item. -* @param {HTMLLIElement} p_oObject Object specifying the -* <li> element of the menu bar item. -* @param {HTMLOptGroupElement} p_oObject Object -* specifying the <optgroup> element of the menu bar item. -* @param {HTMLOptionElement} p_oObject Object specifying -* the <option> element of the menu bar item. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu bar item. See configuration class documentation -* for more details. -* @class MenuBarItem -* @constructor -* @extends YAHOO.widget.MenuItem -*/ -YAHOO.widget.MenuBarItem = function(p_oObject, p_oConfig) { - - YAHOO.widget.MenuBarItem.superclass.constructor.call( - this, - p_oObject, - p_oConfig - ); - -}; - -YAHOO.lang.extend(YAHOO.widget.MenuBarItem, YAHOO.widget.MenuItem, { - - -/** -* @method init -* @description The MenuBarItem class's initialization method. This method is -* automatically called by the constructor, and sets up all DOM references for -* pre-existing markup, and creates required markup if it is not already present. -* @param {String} p_oObject String specifying the text of the menu bar item. -* @param {HTMLLIElement} p_oObject Object specifying the -* <li> element of the menu bar item. -* @param {HTMLOptGroupElement} p_oObject Object -* specifying the <optgroup> element of the menu bar item. -* @param {HTMLOptionElement} p_oObject Object specifying -* the <option> element of the menu bar item. -* @param {Object} p_oConfig Optional. Object literal specifying the -* configuration for the menu bar item. See configuration class documentation -* for more details. -*/ -init: function(p_oObject, p_oConfig) { - - if(!this.SUBMENU_TYPE) { - - this.SUBMENU_TYPE = YAHOO.widget.Menu; - - } - - - /* - Call the init of the superclass (YAHOO.widget.MenuItem) - Note: We don't pass the user config in here yet - because we only want it executed once, at the lowest - subclass level. - */ - - YAHOO.widget.MenuBarItem.superclass.init.call(this, p_oObject); - - - var oConfig = this.cfg; - - if(p_oConfig) { - - oConfig.applyConfig(p_oConfig, true); - - } - - oConfig.fireQueue(); - -}, - - - -// Constants - -/** -* @property CSS_CLASS_NAME -* @description String representing the CSS class(es) to be applied to the -* <li> element of the menu bar item. -* @default "yuimenubaritem" -* @final -* @type String -*/ -CSS_CLASS_NAME: "yuimenubaritem", - - - -// Public methods - - -/** -* @method toString -* @description Returns a string representing the menu bar item. -* @return {String} -*/ -toString: function() { - - return ("MenuBarItem: " + this.cfg.getProperty("text")); - -} - -}); // END YAHOO.lang.extend -YAHOO.register("menu", YAHOO.widget.Menu, {version: "2.2.0", build: "127"}); diff --git a/interface/ispconfig/interface/js/yui/reset-fonts-grids/README b/interface/ispconfig/interface/js/yui/reset-fonts-grids/README deleted file mode 100644 index d0b211725..000000000 --- a/interface/ispconfig/interface/js/yui/reset-fonts-grids/README +++ /dev/null @@ -1,24 +0,0 @@ -YUI Library - Reset+Fonts+Grids (RFG) - Release Notes - -*** NOTE *** - -This document is not updated with each release. Changes to -the reset-fonts-grids.css source are noted in the README -file for each component that comprises this aggregate: - -reset/README -fonts/README -grids/README - -************ - -Version 2.2.0 - - * No changes. - -Version 0.12.0 - - * Initial release. - - * This file is a convenience file containing an in-order - concatonation of Reset, Fonts, and Grids. \ No newline at end of file diff --git a/interface/ispconfig/interface/js/yui/reset-fonts-grids/reset-fonts-grids.css b/interface/ispconfig/interface/js/yui/reset-fonts-grids/reset-fonts-grids.css deleted file mode 100644 index 43d99e754..000000000 --- a/interface/ispconfig/interface/js/yui/reset-fonts-grids/reset-fonts-grids.css +++ /dev/null @@ -1,9 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ -/*reset.css*/body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul {list-style:none;}caption,th {text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym {border:0;} -/*fonts.css*/body{font:13px arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}table {font-size:inherit;font:100%;}select, input, textarea {font:99% arial,helvetica,clean,sans-serif;}pre, code {font:115% monospace;*font-size:100%;}body * {line-height:1.22em;} -/*grids.css*/body{text-align:center;}#ft{clear:both;}#doc,#doc2,#doc3,.yui-t1,.yui-t2,.yui-t3,.yui-t4,.yui-t5,.yui-t6,.yui-t7{margin:auto;text-align:left;width:57.69em;*width:56.3em;min-width:750px;}#doc2{width:73.074em;*width:71.313em;min-width:950px;}#doc3{margin:auto 10px;width:auto;}.yui-b{position:relative;}.yui-b{_position:static;}#yui-main .yui-b{position:static;}#yui-main{width:100%;}.yui-t1 #yui-main,.yui-t2 #yui-main,.yui-t3 #yui-main{float:right;margin-left:-25em;}.yui-t4 #yui-main,.yui-t5 #yui-main,.yui-t6 #yui-main{float:left;margin-right:-25em;}.yui-t1 .yui-b{float:left;width:12.3207em;*width:12.0106em;}.yui-t1 #yui-main .yui-b{margin-left:13.3207em;*margin-left:13.0106em;}.yui-t2 .yui-b{float:left;width:13.8456em;*width:13.512em;}.yui-t2 #yui-main .yui-b{margin-left:14.8456em;*margin-left:14.512em;}.yui-t3 .yui-b{float:left;width:23.0759em;*width:22.52em;}.yui-t3 #yui-main .yui-b{margin-left:24.0759em;*margin-left:23.52em;}.yui-t4 .yui-b{float:right;width:13.8456em;*width:13.512em;}.yui-t4 #yui-main .yui-b{margin-right:14.8456em;*margin-right:14.512em;}.yui-t5 .yui-b{float:right;width:18.4608em;*width:18.016em;}.yui-t5 #yui-main .yui-b{margin-right:19.4608em;*margin-right:19.016em;}.yui-t6 .yui-b{float:right;width:23.0759em;*width:22.52em;}.yui-t6 #yui-main .yui-b{margin-right:24.0759em;*margin-right:23.52em;}.yui-t7 #yui-main .yui-b{display:block;margin:0 0 1em 0;}#yui-main .yui-b{float:none;width:auto;}.yui-g .yui-u,.yui-g .yui-g,.yui-gc .yui-u,.yui-gc .yui-g .yui-u,.yui-ge .yui-u,.yui-gf .yui-u{float:right;display:inline;}.yui-g div.first,.yui-gc div.first,.yui-gc div.first div.first,.yui-gd div.first,.yui-ge div.first,.yui-gf div.first{float:left;}.yui-g .yui-u,.yui-g .yui-g{width:49.1%;}.yui-g .yui-g .yui-u,.yui-gc .yui-g .yui-u{width:48.1%;}.yui-gb .yui-u,.yui-gc .yui-u,.yui-gd .yui-u{float:left;margin-left:2%;*margin-left:1.895%;width:32%;}.yui-gb div.first,.yui-gc div.first,.yui-gd div.first{margin-left:0;}.yui-gc div.first,.yui-gd .yui-u{width:66%;}.yui-gd div.first{width:32%;}.yui-ge .yui-u{width:24%;}.yui-ge div.first,.yui-gf .yui-u{width:74.2%;}.yui-gf div.first{width:24%;}.yui-ge div.first{width:74.2%;}#bd:after,.yui-g:after,.yui-gb:after,.yui-gc:after,.yui-gd:after,.yui-ge:after,.yui-gf:after{content:".";display:block;height:0;clear:both;visibility:hidden;}#bd,.yui-g,.yui-gb,.yui-gc,.yui-gd,.yui-ge,.yui-gf{zoom:1;} \ No newline at end of file diff --git a/interface/ispconfig/interface/js/yui/reset/README b/interface/ispconfig/interface/js/yui/reset/README deleted file mode 100644 index e25df6826..000000000 --- a/interface/ispconfig/interface/js/yui/reset/README +++ /dev/null @@ -1,25 +0,0 @@ -YUI Library - Reset - Release Notes - -Version 2.2.0 - - * No changes. - -Version 0.12.1 - 0.12.2 - - * No changes. - -Version 0.12.0 - - * Added: h1,h2,h3,h4,h5,h6{font-weight:normal;} - - * Added: abbr,acronym {border:0;} - - * Added: textarea {padding:0;margin:0;} - -Version 0.11.0 - - * No changes. - -Version 0.10.0 - - * Initial release. \ No newline at end of file diff --git a/interface/ispconfig/interface/js/yui/reset/reset-min.css b/interface/ispconfig/interface/js/yui/reset/reset-min.css deleted file mode 100644 index 5ca0723fc..000000000 --- a/interface/ispconfig/interface/js/yui/reset/reset-min.css +++ /dev/null @@ -1,7 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ -body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul {list-style:none;}caption,th {text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym {border:0;} \ No newline at end of file diff --git a/interface/ispconfig/interface/js/yui/reset/reset.css b/interface/ispconfig/interface/js/yui/reset/reset.css deleted file mode 100644 index e5c5357da..000000000 --- a/interface/ispconfig/interface/js/yui/reset/reset.css +++ /dev/null @@ -1,15 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ -body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0;} -table{border-collapse:collapse;border-spacing:0;} -fieldset,img{border:0;} -address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;} -ol,ul {list-style:none;} -caption,th {text-align:left;} -h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;} -q:before,q:after{content:'';} -abbr,acronym {border:0;} \ No newline at end of file diff --git a/interface/ispconfig/interface/js/yui/slider/README b/interface/ispconfig/interface/js/yui/slider/README deleted file mode 100644 index e435635fa..000000000 --- a/interface/ispconfig/interface/js/yui/slider/README +++ /dev/null @@ -1,69 +0,0 @@ -Slider - Release Notes - -2.2.0 - - * Added the missing "force" parameter to the signature for setRegionValue - - * deprecated the moveComplete flag - -0.12.2 - - * No change - -0.12.1 - - * Removed unneccessary getXY calls that were contribuing to slower performance - in FireFox when the slider was deeply nested in the DOM. - -0.12.0 - - * Added "slideStart", "slideEnd", and "change" custom events. The abstract - methods these will eventually replace still work. - - * The default animation duration is 0.2 seconds (reduced from 0.4 seconds), - and is configurable via the animationDuration property. - - * Keyboard navigation is now built in. The background needs a tabindex for - keyboard nav to work. Keyboard nav can be disabled by setting enableKeys - to false. The number of pixels the slider moves when the arrow keys - are pressed is controlled by keyIncrement, and defaults to 20. Note, - Safari support limited to background element types that support focus - in that browser. http://bugs.webkit.org/show_bug.cgi?id=7138 - - * Fixed broken doctype in examples/index.html - - * Catching an unhandled script exception in FF that could occur when - attempting to focus the slider background while a text field without - autocomplete="false" has focus - -0.11.3 - - * No change - -0.11.0 - - * When the thumb is clicked and dragged, the click position delta is properly - applied. - - * The slider background can be disabled by setting backgroundEnabled to false. - - * Added SliderThumb->clearTicks - - * Incorporated updated drag and drop performance improvements - -0.10.0 - - * Drag and drop's autoscroll feature is now turned off by default - in the slider. - - * The slider no longer sets its initial value upon initialization - - * RGB slider example fixed for IE7. - - * Updated to work with the onAvailable feature in Drag and Drop. - - * Updated the basic slider example page to make the control more - accessible to non-FF1.5 browsers. - - * Split the examples into separate pages - diff --git a/interface/ispconfig/interface/js/yui/slider/slider-debug.js b/interface/ispconfig/interface/js/yui/slider/slider-debug.js deleted file mode 100644 index 815d514dc..000000000 --- a/interface/ispconfig/interface/js/yui/slider/slider-debug.js +++ /dev/null @@ -1,1259 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ -/** - * The Slider component is a UI control that enables the user to adjust - * values in a finite range along one or two axes. Typically, the Slider - * control is used in a web application as a rich, visual replacement - * for an input box that takes a number as input. The Slider control can - * also easily accommodate a second dimension, providing x,y output for - * a selection point chosen from a rectangular region. - * - * @module slider - * @title Slider Widget - * @namespace YAHOO.widget - * @requires yahoo,dom,dragdrop,event - * @optional animation - */ - -/** - * A DragDrop implementation that can be used as a background for a - * slider. It takes a reference to the thumb instance - * so it can delegate some of the events to it. The goal is to make the - * thumb jump to the location on the background when the background is - * clicked. - * - * @class Slider - * @extends YAHOO.util.DragDrop - * @uses YAHOO.util.EventProvider - * @constructor - * @param {String} id The id of the element linked to this instance - * @param {String} sGroup The group of related DragDrop items - * @param {SliderThumb} oThumb The thumb for this slider - * @param {String} sType The type of slider (horiz, vert, region) - */ -YAHOO.widget.Slider = function(sElementId, sGroup, oThumb, sType) { - if (sElementId) { - this.init(sElementId, sGroup, true); - this.initSlider(sType); - this.initThumb(oThumb); - } -}; - -/** - * Factory method for creating a horizontal slider - * @method YAHOO.widget.Slider.getHorizSlider - * @static - * @param {String} sBGElId the id of the slider's background element - * @param {String} sHandleElId the id of the thumb element - * @param {int} iLeft the number of pixels the element can move left - * @param {int} iRight the number of pixels the element can move right - * @param {int} iTickSize optional parameter for specifying that the element - * should move a certain number pixels at a time. - * @return {Slider} a horizontal slider control - */ -YAHOO.widget.Slider.getHorizSlider = - function (sBGElId, sHandleElId, iLeft, iRight, iTickSize) { - return new YAHOO.widget.Slider(sBGElId, sBGElId, - new YAHOO.widget.SliderThumb(sHandleElId, sBGElId, - iLeft, iRight, 0, 0, iTickSize), "horiz"); -}; - -/** - * Factory method for creating a vertical slider - * @method YAHOO.widget.Slider.getVertSlider - * @static - * @param {String} sBGElId the id of the slider's background element - * @param {String} sHandleElId the id of the thumb element - * @param {int} iUp the number of pixels the element can move up - * @param {int} iDown the number of pixels the element can move down - * @param {int} iTickSize optional parameter for specifying that the element - * should move a certain number pixels at a time. - * @return {Slider} a vertical slider control - */ -YAHOO.widget.Slider.getVertSlider = - function (sBGElId, sHandleElId, iUp, iDown, iTickSize) { - return new YAHOO.widget.Slider(sBGElId, sBGElId, - new YAHOO.widget.SliderThumb(sHandleElId, sBGElId, 0, 0, - iUp, iDown, iTickSize), "vert"); -}; - -/** - * Factory method for creating a slider region like the one in the color - * picker example - * @method YAHOO.widget.Slider.getSliderRegion - * @static - * @param {String} sBGElId the id of the slider's background element - * @param {String} sHandleElId the id of the thumb element - * @param {int} iLeft the number of pixels the element can move left - * @param {int} iRight the number of pixels the element can move right - * @param {int} iUp the number of pixels the element can move up - * @param {int} iDown the number of pixels the element can move down - * @param {int} iTickSize optional parameter for specifying that the element - * should move a certain number pixels at a time. - * @return {Slider} a slider region control - */ -YAHOO.widget.Slider.getSliderRegion = - function (sBGElId, sHandleElId, iLeft, iRight, iUp, iDown, iTickSize) { - return new YAHOO.widget.Slider(sBGElId, sBGElId, - new YAHOO.widget.SliderThumb(sHandleElId, sBGElId, iLeft, iRight, - iUp, iDown, iTickSize), "region"); -}; - -/** - * By default, animation is available if the animation library is detected. - * @property YAHOO.widget.Slider.ANIM_AVAIL - * @static - * @type boolean - */ -YAHOO.widget.Slider.ANIM_AVAIL = true; - -YAHOO.extend(YAHOO.widget.Slider, YAHOO.util.DragDrop, { - - /** - * Initializes the slider. Executed in the constructor - * @method initSlider - * @param {string} sType the type of slider (horiz, vert, region) - */ - initSlider: function(sType) { - - /** - * The type of the slider (horiz, vert, region) - * @property type - * @type string - */ - this.type = sType; - - //this.removeInvalidHandleType("A"); - - this.logger = new YAHOO.widget.LogWriter(this.toString()); - - /** - * Event the fires when the value of the control changes. If - * the control is animated the event will fire every point - * along the way. - * @event change - * @param {int} newOffset|x the new offset for normal sliders, or the new - * x offset for region sliders - * @param {int} y the number of pixels the thumb has moved on the y axis - * (region sliders only) - */ - this.createEvent("change", this); - - /** - * Event that fires at the beginning of a slider thumb move. - * @event slideStart - */ - this.createEvent("slideStart", this); - - /** - * Event that fires at the end of a slider thumb move - * @event slideEnd - */ - this.createEvent("slideEnd", this); - - /** - * Overrides the isTarget property in YAHOO.util.DragDrop - * @property isTarget - * @private - */ - this.isTarget = false; - - /** - * Flag that determines if the thumb will animate when moved - * @property animate - * @type boolean - */ - this.animate = YAHOO.widget.Slider.ANIM_AVAIL; - - /** - * Set to false to disable a background click thumb move - * @property backgroundEnabled - * @type boolean - */ - this.backgroundEnabled = true; - - /** - * Adjustment factor for tick animation, the more ticks, the - * faster the animation (by default) - * @property tickPause - * @type int - */ - this.tickPause = 40; - - /** - * Enables the arrow, home and end keys, defaults to true. - * @property enableKeys - * @type boolean - */ - this.enableKeys = true; - - /** - * Specifies the number of pixels the arrow keys will move the slider. - * Default is 25. - * @property keyIncrement - * @type int - */ - this.keyIncrement = 20; - - /** - * moveComplete is set to true when the slider has moved to its final - * destination. For animated slider, this value can be checked in - * the onChange handler to make it possible to execute logic only - * when the move is complete rather than at all points along the way. - * Deprecated because this flag is only useful when the background is - * clicked and the slider is animated. If the user drags the thumb, - * the flag is updated when the drag is over ... the final onDrag event - * fires before the mouseup the ends the drag, so the implementer will - * never see it. - * - * @property moveComplete - * @type Boolean - * @deprecated use the slideEnd event instead - */ - this.moveComplete = true; - - /** - * If animation is configured, specifies the length of the animation - * in seconds. - * @property animationDuration - * @type int - * @default 0.2 - */ - this.animationDuration = 0.2; - }, - - /** - * Initializes the slider's thumb. Executed in the constructor. - * @method initThumb - * @param {YAHOO.widget.SliderThumb} t the slider thumb - */ - initThumb: function(t) { - - var self = this; - - /** - * A YAHOO.widget.SliderThumb instance that we will use to - * reposition the thumb when the background is clicked - * @property thumb - * @type YAHOO.widget.SliderThumb - */ - this.thumb = t; - t.cacheBetweenDrags = true; - - // add handler for the handle onchange event - t.onChange = function() { - self.handleThumbChange(); - }; - - if (t._isHoriz && t.xTicks && t.xTicks.length) { - this.tickPause = Math.round(360 / t.xTicks.length); - } else if (t.yTicks && t.yTicks.length) { - this.tickPause = Math.round(360 / t.yTicks.length); - } - - this.logger.log("tickPause: " + this.tickPause); - - // delegate thumb methods - t.onMouseDown = function () { return self.focus(); }; - t.onMouseUp = function() { self.thumbMouseUp(); }; - t.onDrag = function() { self.fireEvents(true); }; - t.onAvailable = function() { return self.setStartSliderState(); }; - - }, - - /** - * Executed when the slider element is available - * @method onAvailable - */ - onAvailable: function() { - var Event = YAHOO.util.Event; - Event.on(this.id, "keydown", this.handleKeyDown, this, true); - Event.on(this.id, "keypress", this.handleKeyPress, this, true); - }, - - /** - * Executed when a keypress event happens with the control focused. - * Prevents the default behavior for navigation keys. The actual - * logic for moving the slider thumb in response to a key event - * happens in handleKeyDown. - * @param {Event} e the keypress event - */ - handleKeyPress: function(e) { - if (this.enableKeys) { - var Event = YAHOO.util.Event; - var kc = Event.getCharCode(e); - switch (kc) { - case 0x25: // left - case 0x26: // up - case 0x27: // right - case 0x28: // down - case 0x24: // home - case 0x23: // end - Event.preventDefault(e); - break; - default: - } - } - }, - - /** - * Executed when a keydown event happens with the control focused. - * Updates the slider value and display when the keypress is an - * arrow key, home, or end as long as enableKeys is set to true. - * @param {Event} e the keydown event - */ - handleKeyDown: function(e) { - if (this.enableKeys) { - var Event = YAHOO.util.Event; - - var kc = Event.getCharCode(e), t=this.thumb; - var h=this.getXValue(),v=this.getYValue(); - - var horiz = false; - var changeValue = true; - switch (kc) { - - // left - case 0x25: h -= this.keyIncrement; break; - - // up - case 0x26: v -= this.keyIncrement; break; - - // right - case 0x27: h += this.keyIncrement; break; - - // down - case 0x28: v += this.keyIncrement; break; - - // home - case 0x24: h = t.leftConstraint; - v = t.topConstraint; - break; - - // end - case 0x23: h = t.rightConstraint; - v = t.bottomConstraint; - break; - - default: changeValue = false; - } - - if (changeValue) { - if (t._isRegion) { - this.setRegionValue(h, v, true); - } else { - var newVal = (t._isHoriz) ? h : v; - this.setValue(newVal, true); - } - Event.stopEvent(e); - } - - } - }, - - /** - * Initialization that sets up the value offsets once the elements are ready - * @method setStartSliderState - */ - setStartSliderState: function() { - - this.logger.log("Fixing state"); - - this.setThumbCenterPoint(); - - /** - * The basline position of the background element, used - * to determine if the background has moved since the last - * operation. - * @property baselinePos - * @type [int, int] - */ - this.baselinePos = YAHOO.util.Dom.getXY(this.getEl()); - - this.thumb.startOffset = this.thumb.getOffsetFromParent(this.baselinePos); - - if (this.thumb._isRegion) { - if (this.deferredSetRegionValue) { - this.setRegionValue.apply(this, this.deferredSetRegionValue, true); - this.deferredSetRegionValue = null; - } else { - this.setRegionValue(0, 0, true, true); - } - } else { - if (this.deferredSetValue) { - this.setValue.apply(this, this.deferredSetValue, true); - this.deferredSetValue = null; - } else { - this.setValue(0, true, true); - } - } - }, - - /** - * When the thumb is available, we cache the centerpoint of the element so - * we can position the element correctly when the background is clicked - * @method setThumbCenterPoint - */ - setThumbCenterPoint: function() { - - var el = this.thumb.getEl(); - - if (el) { - /** - * The center of the slider element is stored so we can - * place it in the correct position when the background is clicked. - * @property thumbCenterPoint - * @type {"x": int, "y": int} - */ - this.thumbCenterPoint = { - x: parseInt(el.offsetWidth/2, 10), - y: parseInt(el.offsetHeight/2, 10) - }; - } - - }, - - /** - * Locks the slider, overrides YAHOO.util.DragDrop - * @method lock - */ - lock: function() { - this.logger.log("locking"); - this.thumb.lock(); - this.locked = true; - }, - - /** - * Unlocks the slider, overrides YAHOO.util.DragDrop - * @method unlock - */ - unlock: function() { - this.logger.log("unlocking"); - this.thumb.unlock(); - this.locked = false; - }, - - /** - * Handles mouseup event on the slider background - * @method thumbMouseUp - * @private - */ - thumbMouseUp: function() { - this.logger.log("bg mouseup"); - if (!this.isLocked() && !this.moveComplete) { - this.endMove(); - } - - }, - - /** - * Returns a reference to this slider's thumb - * @method getThumb - * @return {SliderThumb} this slider's thumb - */ - getThumb: function() { - return this.thumb; - }, - - /** - * Try to focus the element when clicked so we can add - * accessibility features - * @method focus - * @private - */ - focus: function() { - this.logger.log("focus"); - - // Focus the background element if possible - var el = this.getEl(); - - if (el.focus) { - try { - el.focus(); - } catch(e) { - // Prevent permission denied unhandled exception in FF that can - // happen when setting focus while another element is handling - // the blur. @TODO this is still writing to the error log - // (unhandled error) in FF1.5 with strict error checking on. - } - } - - this.verifyOffset(); - - if (this.isLocked()) { - return false; - } else { - this.onSlideStart(); - return true; - } - }, - - /** - * Event that fires when the value of the slider has changed - * @method onChange - * @param {int} firstOffset the number of pixels the thumb has moved - * from its start position. Normal horizontal and vertical sliders will only - * have the firstOffset. Regions will have both, the first is the horizontal - * offset, the second the vertical. - * @param {int} secondOffset the y offset for region sliders - * @deprecated use instance.subscribe("change") instead - */ - onChange: function (firstOffset, secondOffset) { - /* override me */ - this.logger.log("onChange: " + firstOffset + ", " + secondOffset); - }, - - /** - * Event that fires when the at the beginning of the slider thumb move - * @method onSlideStart - * @deprecated use instance.subscribe("slideStart") instead - */ - onSlideStart: function () { - /* override me */ - this.logger.log("onSlideStart"); - }, - - /** - * Event that fires at the end of a slider thumb move - * @method onSliderEnd - * @deprecated use instance.subscribe("slideEnd") instead - */ - onSlideEnd: function () { - /* override me */ - this.logger.log("onSlideEnd"); - }, - - /** - * Returns the slider's thumb offset from the start position - * @method getValue - * @return {int} the current value - */ - getValue: function () { - return this.thumb.getValue(); - }, - - /** - * Returns the slider's thumb X offset from the start position - * @method getXValue - * @return {int} the current horizontal offset - */ - getXValue: function () { - return this.thumb.getXValue(); - }, - - /** - * Returns the slider's thumb Y offset from the start position - * @method getYValue - * @return {int} the current vertical offset - */ - getYValue: function () { - return this.thumb.getYValue(); - }, - - /** - * Internal handler for the slider thumb's onChange event - * @method handleThumbChange - * @private - */ - handleThumbChange: function () { - var t = this.thumb; - if (t._isRegion) { - t.onChange(t.getXValue(), t.getYValue()); - this.fireEvent("change", { x: t.getXValue(), y: t.getYValue() } ); - } else { - t.onChange(t.getValue()); - this.fireEvent("change", t.getValue()); - } - - }, - - /** - * Provides a way to set the value of the slider in code. - * @method setValue - * @param {int} newOffset the number of pixels the thumb should be - * positioned away from the initial start point - * @param {boolean} skipAnim set to true to disable the animation - * for this move action (but not others). - * @param {boolean} force ignore the locked setting and set value anyway - * @return {boolean} true if the move was performed, false if it failed - */ - setValue: function(newOffset, skipAnim, force) { - this.logger.log("setValue " + newOffset); - - if (!this.thumb.available) { - this.logger.log("defer setValue until after onAvailble"); - this.deferredSetValue = arguments; - return false; - } - - if (this.isLocked() && !force) { - this.logger.log("Can't set the value, the control is locked"); - return false; - } - - if ( isNaN(newOffset) ) { - this.logger.log("setValue, Illegal argument: " + newOffset); - return false; - } - - var t = this.thumb; - var newX, newY; - this.verifyOffset(true); - if (t._isRegion) { - return false; - } else if (t._isHoriz) { - this.onSlideStart(); - // this.fireEvent("slideStart"); - newX = t.initPageX + newOffset + this.thumbCenterPoint.x; - this.moveThumb(newX, t.initPageY, skipAnim); - } else { - this.onSlideStart(); - // this.fireEvent("slideStart"); - newY = t.initPageY + newOffset + this.thumbCenterPoint.y; - this.moveThumb(t.initPageX, newY, skipAnim); - } - - return true; - }, - - /** - * Provides a way to set the value of the region slider in code. - * @method setRegionValue - * @param {int} newOffset the number of pixels the thumb should be - * positioned away from the initial start point (x axis for region) - * @param {int} newOffset2 the number of pixels the thumb should be - * positioned away from the initial start point (y axis for region) - * @param {boolean} skipAnim set to true to disable the animation - * for this move action (but not others). - * @param {boolean} force ignore the locked setting and set value anyway - * @return {boolean} true if the move was performed, false if it failed - */ - setRegionValue: function(newOffset, newOffset2, skipAnim, force) { - - if (!this.thumb.available) { - this.logger.log("defer setRegionValue until after onAvailble"); - this.deferredSetRegionValue = arguments; - return false; - } - - if (this.isLocked() && !force) { - this.logger.log("Can't set the value, the control is locked"); - return false; - } - - if ( isNaN(newOffset) ) { - this.logger.log("setRegionValue, Illegal argument: " + newOffset); - return false; - } - - var t = this.thumb; - if (t._isRegion) { - this.onSlideStart(); - var newX = t.initPageX + newOffset + this.thumbCenterPoint.x; - var newY = t.initPageY + newOffset2 + this.thumbCenterPoint.y; - this.moveThumb(newX, newY, skipAnim); - return true; - } - - return false; - - }, - - /** - * Checks the background position element position. If it has moved from the - * baseline position, the constraints for the thumb are reset - * @param checkPos {boolean} check the position instead of using cached value - * @method verifyOffset - * @return {boolean} True if the offset is the same as the baseline. - */ - verifyOffset: function(checkPos) { - - var newPos = YAHOO.util.Dom.getXY(this.getEl()); - //var newPos = [this.initPageX, this.initPageY]; - - this.logger.log("newPos: " + newPos, "warn"); - - if (newPos[0] != this.baselinePos[0] || newPos[1] != this.baselinePos[1]) { - this.logger.log("background moved, resetting constraints"); - this.thumb.resetConstraints(); - this.baselinePos = newPos; - return false; - } - - return true; - }, - - /** - * Move the associated slider moved to a timeout to try to get around the - * mousedown stealing moz does when I move the slider element between the - * cursor and the background during the mouseup event - * @method moveThumb - * @param {int} x the X coordinate of the click - * @param {int} y the Y coordinate of the click - * @param {boolean} skipAnim don't animate if the move happend onDrag - * @private - */ - moveThumb: function(x, y, skipAnim) { - - // this.logger.log("move thumb", "warn"); - - var t = this.thumb; - var self = this; - - if (!t.available) { - this.logger.log("thumb is not available yet, aborting move"); - return; - } - - this.logger.log("move thumb, x: " + x + ", y: " + y); - - // this.verifyOffset(); - - t.setDelta(this.thumbCenterPoint.x, this.thumbCenterPoint.y); - - var _p = t.getTargetCoord(x, y); - var p = [_p.x, _p.y]; - - - this.fireEvent("slideStart"); - - if (this.animate && YAHOO.widget.Slider.ANIM_AVAIL && t._graduated && !skipAnim) { - this.logger.log("graduated"); - // this.thumb._animating = true; - this.lock(); - - // cache the current thumb pos - this.curCoord = YAHOO.util.Dom.getXY(this.thumb.getEl()); - - setTimeout( function() { self.moveOneTick(p); }, this.tickPause ); - - } else if (this.animate && YAHOO.widget.Slider.ANIM_AVAIL && !skipAnim) { - this.logger.log("animating to " + p); - - // this.thumb._animating = true; - this.lock(); - - var oAnim = new YAHOO.util.Motion( - t.id, { points: { to: p } }, - this.animationDuration, - YAHOO.util.Easing.easeOut ); - - oAnim.onComplete.subscribe( function() { self.endMove(); } ); - oAnim.animate(); - } else { - t.setDragElPos(x, y); - // this.fireEvents(); - this.endMove(); - } - }, - - /** - * Move the slider one tick mark towards its final coordinate. Used - * for the animation when tick marks are defined - * @method moveOneTick - * @param {int[]} the destination coordinate - * @private - */ - moveOneTick: function(finalCoord) { - - var t = this.thumb, tmp; - - - // redundant call to getXY since we set the position most of time prior - // to getting here. Moved to this.curCoord - //var curCoord = YAHOO.util.Dom.getXY(t.getEl()); - - // alignElWithMouse caches position in lastPageX, lastPageY .. doesn't work - //var curCoord = [this.lastPageX, this.lastPageY]; - - // var thresh = Math.min(t.tickSize + (Math.floor(t.tickSize/2)), 10); - // var thresh = 10; - // var thresh = t.tickSize + (Math.floor(t.tickSize/2)); - - var nextCoord = null; - - if (t._isRegion) { - nextCoord = this._getNextX(this.curCoord, finalCoord); - var tmpX = (nextCoord) ? nextCoord[0] : this.curCoord[0]; - nextCoord = this._getNextY([tmpX, this.curCoord[1]], finalCoord); - - } else if (t._isHoriz) { - nextCoord = this._getNextX(this.curCoord, finalCoord); - } else { - nextCoord = this._getNextY(this.curCoord, finalCoord); - } - - this.logger.log("moveOneTick: " + - " finalCoord: " + finalCoord + - " this.curCoord: " + this.curCoord + - " nextCoord: " + nextCoord); - - if (nextCoord) { - - // cache the position - this.curCoord = nextCoord; - - // move to the next coord - // YAHOO.util.Dom.setXY(t.getEl(), nextCoord); - - // var el = t.getEl(); - // YAHOO.util.Dom.setStyle(el, "left", (nextCoord[0] + this.thumb.deltaSetXY[0]) + "px"); - // YAHOO.util.Dom.setStyle(el, "top", (nextCoord[1] + this.thumb.deltaSetXY[1]) + "px"); - - this.thumb.alignElWithMouse(t.getEl(), nextCoord[0], nextCoord[1]); - - // check if we are in the final position, if not make a recursive call - if (!(nextCoord[0] == finalCoord[0] && nextCoord[1] == finalCoord[1])) { - var self = this; - setTimeout(function() { self.moveOneTick(finalCoord); }, - this.tickPause); - } else { - this.endMove(); - } - } else { - this.endMove(); - } - - //this.tickPause = Math.round(this.tickPause/2); - }, - - /** - * Returns the next X tick value based on the current coord and the target coord. - * @method _getNextX - * @private - */ - _getNextX: function(curCoord, finalCoord) { - this.logger.log("getNextX: " + curCoord + ", " + finalCoord); - var t = this.thumb; - var thresh; - var tmp = []; - var nextCoord = null; - if (curCoord[0] > finalCoord[0]) { - thresh = t.tickSize - this.thumbCenterPoint.x; - tmp = t.getTargetCoord( curCoord[0] - thresh, curCoord[1] ); - nextCoord = [tmp.x, tmp.y]; - } else if (curCoord[0] < finalCoord[0]) { - thresh = t.tickSize + this.thumbCenterPoint.x; - tmp = t.getTargetCoord( curCoord[0] + thresh, curCoord[1] ); - nextCoord = [tmp.x, tmp.y]; - } else { - // equal, do nothing - } - - return nextCoord; - }, - - /** - * Returns the next Y tick value based on the current coord and the target coord. - * @method _getNextY - * @private - */ - _getNextY: function(curCoord, finalCoord) { - var t = this.thumb; - var thresh; - var tmp = []; - var nextCoord = null; - - if (curCoord[1] > finalCoord[1]) { - thresh = t.tickSize - this.thumbCenterPoint.y; - tmp = t.getTargetCoord( curCoord[0], curCoord[1] - thresh ); - nextCoord = [tmp.x, tmp.y]; - } else if (curCoord[1] < finalCoord[1]) { - thresh = t.tickSize + this.thumbCenterPoint.y; - tmp = t.getTargetCoord( curCoord[0], curCoord[1] + thresh ); - nextCoord = [tmp.x, tmp.y]; - } else { - // equal, do nothing - } - - return nextCoord; - }, - - /** - * Resets the constraints before moving the thumb. - * @method b4MouseDown - * @private - */ - b4MouseDown: function(e) { - this.thumb.autoOffset(); - this.thumb.resetConstraints(); - }, - - - /** - * Handles the mousedown event for the slider background - * @method onMouseDown - * @private - */ - onMouseDown: function(e) { - // this.resetConstraints(true); - // this.thumb.resetConstraints(true); - - if (! this.isLocked() && this.backgroundEnabled) { - var x = YAHOO.util.Event.getPageX(e); - var y = YAHOO.util.Event.getPageY(e); - this.logger.log("bg mousedown: " + x + "," + y); - - this.focus(); - this.moveThumb(x, y); - } - - }, - - /** - * Handles the onDrag event for the slider background - * @method onDrag - * @private - */ - onDrag: function(e) { - if (! this.isLocked()) { - var x = YAHOO.util.Event.getPageX(e); - var y = YAHOO.util.Event.getPageY(e); - this.moveThumb(x, y, true); - } - }, - - /** - * Fired when the slider movement ends - * @method endMove - * @private - */ - endMove: function () { - // this._animating = false; - this.unlock(); - this.moveComplete = true; - this.fireEvents(); - }, - - /** - * Fires the change event if the value has been changed. Ignored if we are in - * the middle of an animation as the event will fire when the animation is - * complete - * @method fireEvents - * @param {boolean} thumbEvent set to true if this event is fired from an event - * that occurred on the thumb. If it is, the state of the - * thumb dd object should be correct. Otherwise, the event - * originated on the background, so the thumb state needs to - * be refreshed before proceeding. - * @private - */ - fireEvents: function (thumbEvent) { - - var t = this.thumb; - // this.logger.log("FireEvents: " + t._isRegion); - - if (!thumbEvent) { - t.cachePosition(); - } - - if (! this.isLocked()) { - if (t._isRegion) { - this.logger.log("region"); - var newX = t.getXValue(); - var newY = t.getYValue(); - - if (newX != this.previousX || newY != this.previousY) { - // this.logger.log("Firing onchange"); - this.onChange(newX, newY); - this.fireEvent("change", { x: newX, y: newY }); - } - - this.previousX = newX; - this.previousY = newY; - - } else { - var newVal = t.getValue(); - if (newVal != this.previousVal) { - this.logger.log("Firing onchange: " + newVal); - this.onChange( newVal ); - this.fireEvent("change", newVal); - } - this.previousVal = newVal; - } - - if (this.moveComplete) { - this.onSlideEnd(); - this.fireEvent("slideEnd"); - this.moveComplete = false; - } - - } - }, - - /** - * Slider toString - * @method toString - * @return {string} string representation of the instance - */ - toString: function () { - return ("Slider (" + this.type +") " + this.id); - } - -}); - -YAHOO.augment(YAHOO.widget.Slider, YAHOO.util.EventProvider); - -/** - * A drag and drop implementation to be used as the thumb of a slider. - * @class SliderThumb - * @extends YAHOO.util.DD - * @constructor - * @param {String} id the id of the slider html element - * @param {String} sGroup the group of related DragDrop items - * @param {int} iLeft the number of pixels the element can move left - * @param {int} iRight the number of pixels the element can move right - * @param {int} iUp the number of pixels the element can move up - * @param {int} iDown the number of pixels the element can move down - * @param {int} iTickSize optional parameter for specifying that the element - * should move a certain number pixels at a time. - */ -YAHOO.widget.SliderThumb = function(id, sGroup, iLeft, iRight, iUp, iDown, iTickSize) { - - if (id) { - //this.init(id, sGroup); - YAHOO.widget.SliderThumb.superclass.constructor.call(this, id, sGroup); - - /** - * The id of the thumbs parent HTML element (the slider background - * element). - * @property parentElId - * @type string - */ - this.parentElId = sGroup; - } - - - //this.removeInvalidHandleType("A"); - - this.logger = new YAHOO.widget.LogWriter(this.toString()); - - /** - * Overrides the isTarget property in YAHOO.util.DragDrop - * @property isTarget - * @private - */ - this.isTarget = false; - - /** - * The tick size for this slider - * @property tickSize - * @type int - * @private - */ - this.tickSize = iTickSize; - - /** - * Informs the drag and drop util that the offsets should remain when - * resetting the constraints. This preserves the slider value when - * the constraints are reset - * @property maintainOffset - * @type boolean - * @private - */ - this.maintainOffset = true; - - this.initSlider(iLeft, iRight, iUp, iDown, iTickSize); - - /** - * Turns off the autoscroll feature in drag and drop - * @property scroll - * @private - */ - this.scroll = false; - -}; - -YAHOO.extend(YAHOO.widget.SliderThumb, YAHOO.util.DD, { - - /** - * The (X and Y) difference between the thumb location and its parent - * (the slider background) when the control is instantiated. - * @property startOffset - * @type [int, int] - */ - startOffset: null, - - /** - * Flag used to figure out if this is a horizontal or vertical slider - * @property _isHoriz - * @type boolean - * @private - */ - _isHoriz: false, - - /** - * Cache the last value so we can check for change - * @property _prevVal - * @type int - * @private - */ - _prevVal: 0, - - /** - * The slider is _graduated if there is a tick interval defined - * @property _graduated - * @type boolean - * @private - */ - _graduated: false, - - - /** - * Returns the difference between the location of the thumb and its parent. - * @method getOffsetFromParent - * @param {[int, int]} parentPos Optionally accepts the position of the parent - * @type [int, int] - */ - getOffsetFromParent0: function(parentPos) { - var myPos = YAHOO.util.Dom.getXY(this.getEl()); - var ppos = parentPos || YAHOO.util.Dom.getXY(this.parentElId); - - return [ (myPos[0] - ppos[0]), (myPos[1] - ppos[1]) ]; - }, - - getOffsetFromParent: function(parentPos) { - - var el = this.getEl(); - - if (!this.deltaOffset) { - - var myPos = YAHOO.util.Dom.getXY(el); - var ppos = parentPos || YAHOO.util.Dom.getXY(this.parentElId); - - var newOffset = [ (myPos[0] - ppos[0]), (myPos[1] - ppos[1]) ]; - - var l = parseInt( YAHOO.util.Dom.getStyle(el, "left"), 10 ); - var t = parseInt( YAHOO.util.Dom.getStyle(el, "top" ), 10 ); - - var deltaX = l - newOffset[0]; - var deltaY = t - newOffset[1]; - - if (isNaN(deltaX) || isNaN(deltaY)) { - this.logger.log("element does not have a position style def yet"); - } else { - this.deltaOffset = [deltaX, deltaY]; - } - - } else { - var newLeft = parseInt( YAHOO.util.Dom.getStyle(el, "left"), 10 ); - var newTop = parseInt( YAHOO.util.Dom.getStyle(el, "top" ), 10 ); - - newOffset = [newLeft + this.deltaOffset[0], newTop + this.deltaOffset[1]]; - } - - return newOffset; - - //return [ (myPos[0] - ppos[0]), (myPos[1] - ppos[1]) ]; - }, - - /** - * Set up the slider, must be called in the constructor of all subclasses - * @method initSlider - * @param {int} iLeft the number of pixels the element can move left - * @param {int} iRight the number of pixels the element can move right - * @param {int} iUp the number of pixels the element can move up - * @param {int} iDown the number of pixels the element can move down - * @param {int} iTickSize the width of the tick interval. - */ - initSlider: function (iLeft, iRight, iUp, iDown, iTickSize) { - - - //document these. new for 0.12.1 - this.initLeft = iLeft; - this.initRight = iRight; - this.initUp = iUp; - this.initDown = iDown; - - this.setXConstraint(iLeft, iRight, iTickSize); - this.setYConstraint(iUp, iDown, iTickSize); - - if (iTickSize && iTickSize > 1) { - this._graduated = true; - } - - this._isHoriz = (iLeft || iRight); - this._isVert = (iUp || iDown); - this._isRegion = (this._isHoriz && this._isVert); - - }, - - /** - * Clear's the slider's ticks - * @method clearTicks - */ - clearTicks: function () { - YAHOO.widget.SliderThumb.superclass.clearTicks.call(this); - this.tickSize = 0; - this._graduated = false; - }, - - - /** - * Gets the current offset from the element's start position in - * pixels. - * @method getValue - * @return {int} the number of pixels (positive or negative) the - * slider has moved from the start position. - */ - getValue: function () { - if (!this.available) { return 0; } - var val = (this._isHoriz) ? this.getXValue() : this.getYValue(); - //this.logger.log("getVal: " + val); - return val; - }, - - /** - * Gets the current X offset from the element's start position in - * pixels. - * @method getXValue - * @return {int} the number of pixels (positive or negative) the - * slider has moved horizontally from the start position. - */ - getXValue: function () { - if (!this.available) { return 0; } - var newOffset = this.getOffsetFromParent(); - return (newOffset[0] - this.startOffset[0]); - }, - - /** - * Gets the current Y offset from the element's start position in - * pixels. - * @method getYValue - * @return {int} the number of pixels (positive or negative) the - * slider has moved vertically from the start position. - */ - getYValue: function () { - if (!this.available) { return 0; } - var newOffset = this.getOffsetFromParent(); - return (newOffset[1] - this.startOffset[1]); - }, - - /** - * Thumb toString - * @method toString - * @return {string} string representation of the instance - */ - toString: function () { - return "SliderThumb " + this.id; - }, - - /** - * The onchange event for the handle/thumb is delegated to the YAHOO.widget.Slider - * instance it belongs to. - * @method onChange - * @private - */ - onChange: function (x, y) { - } - -}); - -if ("undefined" == typeof YAHOO.util.Anim) { - YAHOO.widget.Slider.ANIM_AVAIL = false; -} - -YAHOO.register("slider", YAHOO.widget.Slider, {version: "2.2.0", build: "127"}); diff --git a/interface/ispconfig/interface/js/yui/slider/slider-min.js b/interface/ispconfig/interface/js/yui/slider/slider-min.js deleted file mode 100644 index 84eeb0f28..000000000 --- a/interface/ispconfig/interface/js/yui/slider/slider-min.js +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ - -YAHOO.widget.Slider=function(sElementId,sGroup,oThumb,sType){if(sElementId){this.init(sElementId,sGroup,true);this.initSlider(sType);this.initThumb(oThumb);}};YAHOO.widget.Slider.getHorizSlider=function(sBGElId,sHandleElId,iLeft,iRight,iTickSize){return new YAHOO.widget.Slider(sBGElId,sBGElId,new YAHOO.widget.SliderThumb(sHandleElId,sBGElId,iLeft,iRight,0,0,iTickSize),"horiz");};YAHOO.widget.Slider.getVertSlider=function(sBGElId,sHandleElId,iUp,iDown,iTickSize){return new YAHOO.widget.Slider(sBGElId,sBGElId,new YAHOO.widget.SliderThumb(sHandleElId,sBGElId,0,0,iUp,iDown,iTickSize),"vert");};YAHOO.widget.Slider.getSliderRegion=function(sBGElId,sHandleElId,iLeft,iRight,iUp,iDown,iTickSize){return new YAHOO.widget.Slider(sBGElId,sBGElId,new YAHOO.widget.SliderThumb(sHandleElId,sBGElId,iLeft,iRight,iUp,iDown,iTickSize),"region");};YAHOO.widget.Slider.ANIM_AVAIL=true;YAHOO.extend(YAHOO.widget.Slider,YAHOO.util.DragDrop,{initSlider:function(sType){this.type=sType;this.createEvent("change",this);this.createEvent("slideStart",this);this.createEvent("slideEnd",this);this.isTarget=false;this.animate=YAHOO.widget.Slider.ANIM_AVAIL;this.backgroundEnabled=true;this.tickPause=40;this.enableKeys=true;this.keyIncrement=20;this.moveComplete=true;this.animationDuration=0.2;},initThumb:function(t){var self=this;this.thumb=t;t.cacheBetweenDrags=true;t.onChange=function(){self.handleThumbChange();};if(t._isHoriz&&t.xTicks&&t.xTicks.length){this.tickPause=Math.round(360/t.xTicks.length);}else if(t.yTicks&&t.yTicks.length){this.tickPause=Math.round(360/t.yTicks.length);} -t.onMouseDown=function(){return self.focus();};t.onMouseUp=function(){self.thumbMouseUp();};t.onDrag=function(){self.fireEvents(true);};t.onAvailable=function(){return self.setStartSliderState();};},onAvailable:function(){var Event=YAHOO.util.Event;Event.on(this.id,"keydown",this.handleKeyDown,this,true);Event.on(this.id,"keypress",this.handleKeyPress,this,true);},handleKeyPress:function(e){if(this.enableKeys){var Event=YAHOO.util.Event;var kc=Event.getCharCode(e);switch(kc){case 0x25:case 0x26:case 0x27:case 0x28:case 0x24:case 0x23:Event.preventDefault(e);break;default:}}},handleKeyDown:function(e){if(this.enableKeys){var Event=YAHOO.util.Event;var kc=Event.getCharCode(e),t=this.thumb;var h=this.getXValue(),v=this.getYValue();var horiz=false;var changeValue=true;switch(kc){case 0x25:h-=this.keyIncrement;break;case 0x26:v-=this.keyIncrement;break;case 0x27:h+=this.keyIncrement;break;case 0x28:v+=this.keyIncrement;break;case 0x24:h=t.leftConstraint;v=t.topConstraint;break;case 0x23:h=t.rightConstraint;v=t.bottomConstraint;break;default:changeValue=false;} -if(changeValue){if(t._isRegion){this.setRegionValue(h,v,true);}else{var newVal=(t._isHoriz)?h:v;this.setValue(newVal,true);} -Event.stopEvent(e);}}},setStartSliderState:function(){this.setThumbCenterPoint();this.baselinePos=YAHOO.util.Dom.getXY(this.getEl());this.thumb.startOffset=this.thumb.getOffsetFromParent(this.baselinePos);if(this.thumb._isRegion){if(this.deferredSetRegionValue){this.setRegionValue.apply(this,this.deferredSetRegionValue,true);this.deferredSetRegionValue=null;}else{this.setRegionValue(0,0,true,true);}}else{if(this.deferredSetValue){this.setValue.apply(this,this.deferredSetValue,true);this.deferredSetValue=null;}else{this.setValue(0,true,true);}}},setThumbCenterPoint:function(){var el=this.thumb.getEl();if(el){this.thumbCenterPoint={x:parseInt(el.offsetWidth/2,10),y:parseInt(el.offsetHeight/2,10)};}},lock:function(){this.thumb.lock();this.locked=true;},unlock:function(){this.thumb.unlock();this.locked=false;},thumbMouseUp:function(){if(!this.isLocked()&&!this.moveComplete){this.endMove();}},getThumb:function(){return this.thumb;},focus:function(){var el=this.getEl();if(el.focus){try{el.focus();}catch(e){}} -this.verifyOffset();if(this.isLocked()){return false;}else{this.onSlideStart();return true;}},onChange:function(firstOffset,secondOffset){},onSlideStart:function(){},onSlideEnd:function(){},getValue:function(){return this.thumb.getValue();},getXValue:function(){return this.thumb.getXValue();},getYValue:function(){return this.thumb.getYValue();},handleThumbChange:function(){var t=this.thumb;if(t._isRegion){t.onChange(t.getXValue(),t.getYValue());this.fireEvent("change",{x:t.getXValue(),y:t.getYValue()});}else{t.onChange(t.getValue());this.fireEvent("change",t.getValue());}},setValue:function(newOffset,skipAnim,force){if(!this.thumb.available){this.deferredSetValue=arguments;return false;} -if(this.isLocked()&&!force){return false;} -if(isNaN(newOffset)){return false;} -var t=this.thumb;var newX,newY;this.verifyOffset(true);if(t._isRegion){return false;}else if(t._isHoriz){this.onSlideStart();newX=t.initPageX+newOffset+this.thumbCenterPoint.x;this.moveThumb(newX,t.initPageY,skipAnim);}else{this.onSlideStart();newY=t.initPageY+newOffset+this.thumbCenterPoint.y;this.moveThumb(t.initPageX,newY,skipAnim);} -return true;},setRegionValue:function(newOffset,newOffset2,skipAnim,force){if(!this.thumb.available){this.deferredSetRegionValue=arguments;return false;} -if(this.isLocked()&&!force){return false;} -if(isNaN(newOffset)){return false;} -var t=this.thumb;if(t._isRegion){this.onSlideStart();var newX=t.initPageX+newOffset+this.thumbCenterPoint.x;var newY=t.initPageY+newOffset2+this.thumbCenterPoint.y;this.moveThumb(newX,newY,skipAnim);return true;} -return false;},verifyOffset:function(checkPos){var newPos=YAHOO.util.Dom.getXY(this.getEl());if(newPos[0]!=this.baselinePos[0]||newPos[1]!=this.baselinePos[1]){this.thumb.resetConstraints();this.baselinePos=newPos;return false;} -return true;},moveThumb:function(x,y,skipAnim){var t=this.thumb;var self=this;if(!t.available){return;} -t.setDelta(this.thumbCenterPoint.x,this.thumbCenterPoint.y);var _p=t.getTargetCoord(x,y);var p=[_p.x,_p.y];this.fireEvent("slideStart");if(this.animate&&YAHOO.widget.Slider.ANIM_AVAIL&&t._graduated&&!skipAnim){this.lock();this.curCoord=YAHOO.util.Dom.getXY(this.thumb.getEl());setTimeout(function(){self.moveOneTick(p);},this.tickPause);}else if(this.animate&&YAHOO.widget.Slider.ANIM_AVAIL&&!skipAnim){this.lock();var oAnim=new YAHOO.util.Motion(t.id,{points:{to:p}},this.animationDuration,YAHOO.util.Easing.easeOut);oAnim.onComplete.subscribe(function(){self.endMove();});oAnim.animate();}else{t.setDragElPos(x,y);this.endMove();}},moveOneTick:function(finalCoord){var t=this.thumb,tmp;var nextCoord=null;if(t._isRegion){nextCoord=this._getNextX(this.curCoord,finalCoord);var tmpX=(nextCoord)?nextCoord[0]:this.curCoord[0];nextCoord=this._getNextY([tmpX,this.curCoord[1]],finalCoord);}else if(t._isHoriz){nextCoord=this._getNextX(this.curCoord,finalCoord);}else{nextCoord=this._getNextY(this.curCoord,finalCoord);} -if(nextCoord){this.curCoord=nextCoord;this.thumb.alignElWithMouse(t.getEl(),nextCoord[0],nextCoord[1]);if(!(nextCoord[0]==finalCoord[0]&&nextCoord[1]==finalCoord[1])){var self=this;setTimeout(function(){self.moveOneTick(finalCoord);},this.tickPause);}else{this.endMove();}}else{this.endMove();}},_getNextX:function(curCoord,finalCoord){var t=this.thumb;var thresh;var tmp=[];var nextCoord=null;if(curCoord[0]>finalCoord[0]){thresh=t.tickSize-this.thumbCenterPoint.x;tmp=t.getTargetCoord(curCoord[0]-thresh,curCoord[1]);nextCoord=[tmp.x,tmp.y];}else if(curCoord[0]finalCoord[1]){thresh=t.tickSize-this.thumbCenterPoint.y;tmp=t.getTargetCoord(curCoord[0],curCoord[1]-thresh);nextCoord=[tmp.x,tmp.y];}else if(curCoord[1]1){this._graduated=true;} -this._isHoriz=(iLeft||iRight);this._isVert=(iUp||iDown);this._isRegion=(this._isHoriz&&this._isVert);},clearTicks:function(){YAHOO.widget.SliderThumb.superclass.clearTicks.call(this);this.tickSize=0;this._graduated=false;},getValue:function(){if(!this.available){return 0;} -var val=(this._isHoriz)?this.getXValue():this.getYValue();return val;},getXValue:function(){if(!this.available){return 0;} -var newOffset=this.getOffsetFromParent();return(newOffset[0]-this.startOffset[0]);},getYValue:function(){if(!this.available){return 0;} -var newOffset=this.getOffsetFromParent();return(newOffset[1]-this.startOffset[1]);},toString:function(){return"SliderThumb "+this.id;},onChange:function(x,y){}});if("undefined"==typeof YAHOO.util.Anim){YAHOO.widget.Slider.ANIM_AVAIL=false;} -YAHOO.register("slider",YAHOO.widget.Slider,{version:"2.2.0",build:"127"}); \ No newline at end of file diff --git a/interface/ispconfig/interface/js/yui/slider/slider.js b/interface/ispconfig/interface/js/yui/slider/slider.js deleted file mode 100644 index 9497d2c00..000000000 --- a/interface/ispconfig/interface/js/yui/slider/slider.js +++ /dev/null @@ -1,1222 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ -/** - * The Slider component is a UI control that enables the user to adjust - * values in a finite range along one or two axes. Typically, the Slider - * control is used in a web application as a rich, visual replacement - * for an input box that takes a number as input. The Slider control can - * also easily accommodate a second dimension, providing x,y output for - * a selection point chosen from a rectangular region. - * - * @module slider - * @title Slider Widget - * @namespace YAHOO.widget - * @requires yahoo,dom,dragdrop,event - * @optional animation - */ - -/** - * A DragDrop implementation that can be used as a background for a - * slider. It takes a reference to the thumb instance - * so it can delegate some of the events to it. The goal is to make the - * thumb jump to the location on the background when the background is - * clicked. - * - * @class Slider - * @extends YAHOO.util.DragDrop - * @uses YAHOO.util.EventProvider - * @constructor - * @param {String} id The id of the element linked to this instance - * @param {String} sGroup The group of related DragDrop items - * @param {SliderThumb} oThumb The thumb for this slider - * @param {String} sType The type of slider (horiz, vert, region) - */ -YAHOO.widget.Slider = function(sElementId, sGroup, oThumb, sType) { - if (sElementId) { - this.init(sElementId, sGroup, true); - this.initSlider(sType); - this.initThumb(oThumb); - } -}; - -/** - * Factory method for creating a horizontal slider - * @method YAHOO.widget.Slider.getHorizSlider - * @static - * @param {String} sBGElId the id of the slider's background element - * @param {String} sHandleElId the id of the thumb element - * @param {int} iLeft the number of pixels the element can move left - * @param {int} iRight the number of pixels the element can move right - * @param {int} iTickSize optional parameter for specifying that the element - * should move a certain number pixels at a time. - * @return {Slider} a horizontal slider control - */ -YAHOO.widget.Slider.getHorizSlider = - function (sBGElId, sHandleElId, iLeft, iRight, iTickSize) { - return new YAHOO.widget.Slider(sBGElId, sBGElId, - new YAHOO.widget.SliderThumb(sHandleElId, sBGElId, - iLeft, iRight, 0, 0, iTickSize), "horiz"); -}; - -/** - * Factory method for creating a vertical slider - * @method YAHOO.widget.Slider.getVertSlider - * @static - * @param {String} sBGElId the id of the slider's background element - * @param {String} sHandleElId the id of the thumb element - * @param {int} iUp the number of pixels the element can move up - * @param {int} iDown the number of pixels the element can move down - * @param {int} iTickSize optional parameter for specifying that the element - * should move a certain number pixels at a time. - * @return {Slider} a vertical slider control - */ -YAHOO.widget.Slider.getVertSlider = - function (sBGElId, sHandleElId, iUp, iDown, iTickSize) { - return new YAHOO.widget.Slider(sBGElId, sBGElId, - new YAHOO.widget.SliderThumb(sHandleElId, sBGElId, 0, 0, - iUp, iDown, iTickSize), "vert"); -}; - -/** - * Factory method for creating a slider region like the one in the color - * picker example - * @method YAHOO.widget.Slider.getSliderRegion - * @static - * @param {String} sBGElId the id of the slider's background element - * @param {String} sHandleElId the id of the thumb element - * @param {int} iLeft the number of pixels the element can move left - * @param {int} iRight the number of pixels the element can move right - * @param {int} iUp the number of pixels the element can move up - * @param {int} iDown the number of pixels the element can move down - * @param {int} iTickSize optional parameter for specifying that the element - * should move a certain number pixels at a time. - * @return {Slider} a slider region control - */ -YAHOO.widget.Slider.getSliderRegion = - function (sBGElId, sHandleElId, iLeft, iRight, iUp, iDown, iTickSize) { - return new YAHOO.widget.Slider(sBGElId, sBGElId, - new YAHOO.widget.SliderThumb(sHandleElId, sBGElId, iLeft, iRight, - iUp, iDown, iTickSize), "region"); -}; - -/** - * By default, animation is available if the animation library is detected. - * @property YAHOO.widget.Slider.ANIM_AVAIL - * @static - * @type boolean - */ -YAHOO.widget.Slider.ANIM_AVAIL = true; - -YAHOO.extend(YAHOO.widget.Slider, YAHOO.util.DragDrop, { - - /** - * Initializes the slider. Executed in the constructor - * @method initSlider - * @param {string} sType the type of slider (horiz, vert, region) - */ - initSlider: function(sType) { - - /** - * The type of the slider (horiz, vert, region) - * @property type - * @type string - */ - this.type = sType; - - //this.removeInvalidHandleType("A"); - - - /** - * Event the fires when the value of the control changes. If - * the control is animated the event will fire every point - * along the way. - * @event change - * @param {int} newOffset|x the new offset for normal sliders, or the new - * x offset for region sliders - * @param {int} y the number of pixels the thumb has moved on the y axis - * (region sliders only) - */ - this.createEvent("change", this); - - /** - * Event that fires at the beginning of a slider thumb move. - * @event slideStart - */ - this.createEvent("slideStart", this); - - /** - * Event that fires at the end of a slider thumb move - * @event slideEnd - */ - this.createEvent("slideEnd", this); - - /** - * Overrides the isTarget property in YAHOO.util.DragDrop - * @property isTarget - * @private - */ - this.isTarget = false; - - /** - * Flag that determines if the thumb will animate when moved - * @property animate - * @type boolean - */ - this.animate = YAHOO.widget.Slider.ANIM_AVAIL; - - /** - * Set to false to disable a background click thumb move - * @property backgroundEnabled - * @type boolean - */ - this.backgroundEnabled = true; - - /** - * Adjustment factor for tick animation, the more ticks, the - * faster the animation (by default) - * @property tickPause - * @type int - */ - this.tickPause = 40; - - /** - * Enables the arrow, home and end keys, defaults to true. - * @property enableKeys - * @type boolean - */ - this.enableKeys = true; - - /** - * Specifies the number of pixels the arrow keys will move the slider. - * Default is 25. - * @property keyIncrement - * @type int - */ - this.keyIncrement = 20; - - /** - * moveComplete is set to true when the slider has moved to its final - * destination. For animated slider, this value can be checked in - * the onChange handler to make it possible to execute logic only - * when the move is complete rather than at all points along the way. - * Deprecated because this flag is only useful when the background is - * clicked and the slider is animated. If the user drags the thumb, - * the flag is updated when the drag is over ... the final onDrag event - * fires before the mouseup the ends the drag, so the implementer will - * never see it. - * - * @property moveComplete - * @type Boolean - * @deprecated use the slideEnd event instead - */ - this.moveComplete = true; - - /** - * If animation is configured, specifies the length of the animation - * in seconds. - * @property animationDuration - * @type int - * @default 0.2 - */ - this.animationDuration = 0.2; - }, - - /** - * Initializes the slider's thumb. Executed in the constructor. - * @method initThumb - * @param {YAHOO.widget.SliderThumb} t the slider thumb - */ - initThumb: function(t) { - - var self = this; - - /** - * A YAHOO.widget.SliderThumb instance that we will use to - * reposition the thumb when the background is clicked - * @property thumb - * @type YAHOO.widget.SliderThumb - */ - this.thumb = t; - t.cacheBetweenDrags = true; - - // add handler for the handle onchange event - t.onChange = function() { - self.handleThumbChange(); - }; - - if (t._isHoriz && t.xTicks && t.xTicks.length) { - this.tickPause = Math.round(360 / t.xTicks.length); - } else if (t.yTicks && t.yTicks.length) { - this.tickPause = Math.round(360 / t.yTicks.length); - } - - - // delegate thumb methods - t.onMouseDown = function () { return self.focus(); }; - t.onMouseUp = function() { self.thumbMouseUp(); }; - t.onDrag = function() { self.fireEvents(true); }; - t.onAvailable = function() { return self.setStartSliderState(); }; - - }, - - /** - * Executed when the slider element is available - * @method onAvailable - */ - onAvailable: function() { - var Event = YAHOO.util.Event; - Event.on(this.id, "keydown", this.handleKeyDown, this, true); - Event.on(this.id, "keypress", this.handleKeyPress, this, true); - }, - - /** - * Executed when a keypress event happens with the control focused. - * Prevents the default behavior for navigation keys. The actual - * logic for moving the slider thumb in response to a key event - * happens in handleKeyDown. - * @param {Event} e the keypress event - */ - handleKeyPress: function(e) { - if (this.enableKeys) { - var Event = YAHOO.util.Event; - var kc = Event.getCharCode(e); - switch (kc) { - case 0x25: // left - case 0x26: // up - case 0x27: // right - case 0x28: // down - case 0x24: // home - case 0x23: // end - Event.preventDefault(e); - break; - default: - } - } - }, - - /** - * Executed when a keydown event happens with the control focused. - * Updates the slider value and display when the keypress is an - * arrow key, home, or end as long as enableKeys is set to true. - * @param {Event} e the keydown event - */ - handleKeyDown: function(e) { - if (this.enableKeys) { - var Event = YAHOO.util.Event; - - var kc = Event.getCharCode(e), t=this.thumb; - var h=this.getXValue(),v=this.getYValue(); - - var horiz = false; - var changeValue = true; - switch (kc) { - - // left - case 0x25: h -= this.keyIncrement; break; - - // up - case 0x26: v -= this.keyIncrement; break; - - // right - case 0x27: h += this.keyIncrement; break; - - // down - case 0x28: v += this.keyIncrement; break; - - // home - case 0x24: h = t.leftConstraint; - v = t.topConstraint; - break; - - // end - case 0x23: h = t.rightConstraint; - v = t.bottomConstraint; - break; - - default: changeValue = false; - } - - if (changeValue) { - if (t._isRegion) { - this.setRegionValue(h, v, true); - } else { - var newVal = (t._isHoriz) ? h : v; - this.setValue(newVal, true); - } - Event.stopEvent(e); - } - - } - }, - - /** - * Initialization that sets up the value offsets once the elements are ready - * @method setStartSliderState - */ - setStartSliderState: function() { - - - this.setThumbCenterPoint(); - - /** - * The basline position of the background element, used - * to determine if the background has moved since the last - * operation. - * @property baselinePos - * @type [int, int] - */ - this.baselinePos = YAHOO.util.Dom.getXY(this.getEl()); - - this.thumb.startOffset = this.thumb.getOffsetFromParent(this.baselinePos); - - if (this.thumb._isRegion) { - if (this.deferredSetRegionValue) { - this.setRegionValue.apply(this, this.deferredSetRegionValue, true); - this.deferredSetRegionValue = null; - } else { - this.setRegionValue(0, 0, true, true); - } - } else { - if (this.deferredSetValue) { - this.setValue.apply(this, this.deferredSetValue, true); - this.deferredSetValue = null; - } else { - this.setValue(0, true, true); - } - } - }, - - /** - * When the thumb is available, we cache the centerpoint of the element so - * we can position the element correctly when the background is clicked - * @method setThumbCenterPoint - */ - setThumbCenterPoint: function() { - - var el = this.thumb.getEl(); - - if (el) { - /** - * The center of the slider element is stored so we can - * place it in the correct position when the background is clicked. - * @property thumbCenterPoint - * @type {"x": int, "y": int} - */ - this.thumbCenterPoint = { - x: parseInt(el.offsetWidth/2, 10), - y: parseInt(el.offsetHeight/2, 10) - }; - } - - }, - - /** - * Locks the slider, overrides YAHOO.util.DragDrop - * @method lock - */ - lock: function() { - this.thumb.lock(); - this.locked = true; - }, - - /** - * Unlocks the slider, overrides YAHOO.util.DragDrop - * @method unlock - */ - unlock: function() { - this.thumb.unlock(); - this.locked = false; - }, - - /** - * Handles mouseup event on the slider background - * @method thumbMouseUp - * @private - */ - thumbMouseUp: function() { - if (!this.isLocked() && !this.moveComplete) { - this.endMove(); - } - - }, - - /** - * Returns a reference to this slider's thumb - * @method getThumb - * @return {SliderThumb} this slider's thumb - */ - getThumb: function() { - return this.thumb; - }, - - /** - * Try to focus the element when clicked so we can add - * accessibility features - * @method focus - * @private - */ - focus: function() { - - // Focus the background element if possible - var el = this.getEl(); - - if (el.focus) { - try { - el.focus(); - } catch(e) { - // Prevent permission denied unhandled exception in FF that can - // happen when setting focus while another element is handling - // the blur. @TODO this is still writing to the error log - // (unhandled error) in FF1.5 with strict error checking on. - } - } - - this.verifyOffset(); - - if (this.isLocked()) { - return false; - } else { - this.onSlideStart(); - return true; - } - }, - - /** - * Event that fires when the value of the slider has changed - * @method onChange - * @param {int} firstOffset the number of pixels the thumb has moved - * from its start position. Normal horizontal and vertical sliders will only - * have the firstOffset. Regions will have both, the first is the horizontal - * offset, the second the vertical. - * @param {int} secondOffset the y offset for region sliders - * @deprecated use instance.subscribe("change") instead - */ - onChange: function (firstOffset, secondOffset) { - /* override me */ - }, - - /** - * Event that fires when the at the beginning of the slider thumb move - * @method onSlideStart - * @deprecated use instance.subscribe("slideStart") instead - */ - onSlideStart: function () { - /* override me */ - }, - - /** - * Event that fires at the end of a slider thumb move - * @method onSliderEnd - * @deprecated use instance.subscribe("slideEnd") instead - */ - onSlideEnd: function () { - /* override me */ - }, - - /** - * Returns the slider's thumb offset from the start position - * @method getValue - * @return {int} the current value - */ - getValue: function () { - return this.thumb.getValue(); - }, - - /** - * Returns the slider's thumb X offset from the start position - * @method getXValue - * @return {int} the current horizontal offset - */ - getXValue: function () { - return this.thumb.getXValue(); - }, - - /** - * Returns the slider's thumb Y offset from the start position - * @method getYValue - * @return {int} the current vertical offset - */ - getYValue: function () { - return this.thumb.getYValue(); - }, - - /** - * Internal handler for the slider thumb's onChange event - * @method handleThumbChange - * @private - */ - handleThumbChange: function () { - var t = this.thumb; - if (t._isRegion) { - t.onChange(t.getXValue(), t.getYValue()); - this.fireEvent("change", { x: t.getXValue(), y: t.getYValue() } ); - } else { - t.onChange(t.getValue()); - this.fireEvent("change", t.getValue()); - } - - }, - - /** - * Provides a way to set the value of the slider in code. - * @method setValue - * @param {int} newOffset the number of pixels the thumb should be - * positioned away from the initial start point - * @param {boolean} skipAnim set to true to disable the animation - * for this move action (but not others). - * @param {boolean} force ignore the locked setting and set value anyway - * @return {boolean} true if the move was performed, false if it failed - */ - setValue: function(newOffset, skipAnim, force) { - - if (!this.thumb.available) { - this.deferredSetValue = arguments; - return false; - } - - if (this.isLocked() && !force) { - return false; - } - - if ( isNaN(newOffset) ) { - return false; - } - - var t = this.thumb; - var newX, newY; - this.verifyOffset(true); - if (t._isRegion) { - return false; - } else if (t._isHoriz) { - this.onSlideStart(); - // this.fireEvent("slideStart"); - newX = t.initPageX + newOffset + this.thumbCenterPoint.x; - this.moveThumb(newX, t.initPageY, skipAnim); - } else { - this.onSlideStart(); - // this.fireEvent("slideStart"); - newY = t.initPageY + newOffset + this.thumbCenterPoint.y; - this.moveThumb(t.initPageX, newY, skipAnim); - } - - return true; - }, - - /** - * Provides a way to set the value of the region slider in code. - * @method setRegionValue - * @param {int} newOffset the number of pixels the thumb should be - * positioned away from the initial start point (x axis for region) - * @param {int} newOffset2 the number of pixels the thumb should be - * positioned away from the initial start point (y axis for region) - * @param {boolean} skipAnim set to true to disable the animation - * for this move action (but not others). - * @param {boolean} force ignore the locked setting and set value anyway - * @return {boolean} true if the move was performed, false if it failed - */ - setRegionValue: function(newOffset, newOffset2, skipAnim, force) { - - if (!this.thumb.available) { - this.deferredSetRegionValue = arguments; - return false; - } - - if (this.isLocked() && !force) { - return false; - } - - if ( isNaN(newOffset) ) { - return false; - } - - var t = this.thumb; - if (t._isRegion) { - this.onSlideStart(); - var newX = t.initPageX + newOffset + this.thumbCenterPoint.x; - var newY = t.initPageY + newOffset2 + this.thumbCenterPoint.y; - this.moveThumb(newX, newY, skipAnim); - return true; - } - - return false; - - }, - - /** - * Checks the background position element position. If it has moved from the - * baseline position, the constraints for the thumb are reset - * @param checkPos {boolean} check the position instead of using cached value - * @method verifyOffset - * @return {boolean} True if the offset is the same as the baseline. - */ - verifyOffset: function(checkPos) { - - var newPos = YAHOO.util.Dom.getXY(this.getEl()); - //var newPos = [this.initPageX, this.initPageY]; - - - if (newPos[0] != this.baselinePos[0] || newPos[1] != this.baselinePos[1]) { - this.thumb.resetConstraints(); - this.baselinePos = newPos; - return false; - } - - return true; - }, - - /** - * Move the associated slider moved to a timeout to try to get around the - * mousedown stealing moz does when I move the slider element between the - * cursor and the background during the mouseup event - * @method moveThumb - * @param {int} x the X coordinate of the click - * @param {int} y the Y coordinate of the click - * @param {boolean} skipAnim don't animate if the move happend onDrag - * @private - */ - moveThumb: function(x, y, skipAnim) { - - - var t = this.thumb; - var self = this; - - if (!t.available) { - return; - } - - - // this.verifyOffset(); - - t.setDelta(this.thumbCenterPoint.x, this.thumbCenterPoint.y); - - var _p = t.getTargetCoord(x, y); - var p = [_p.x, _p.y]; - - - this.fireEvent("slideStart"); - - if (this.animate && YAHOO.widget.Slider.ANIM_AVAIL && t._graduated && !skipAnim) { - // this.thumb._animating = true; - this.lock(); - - // cache the current thumb pos - this.curCoord = YAHOO.util.Dom.getXY(this.thumb.getEl()); - - setTimeout( function() { self.moveOneTick(p); }, this.tickPause ); - - } else if (this.animate && YAHOO.widget.Slider.ANIM_AVAIL && !skipAnim) { - - // this.thumb._animating = true; - this.lock(); - - var oAnim = new YAHOO.util.Motion( - t.id, { points: { to: p } }, - this.animationDuration, - YAHOO.util.Easing.easeOut ); - - oAnim.onComplete.subscribe( function() { self.endMove(); } ); - oAnim.animate(); - } else { - t.setDragElPos(x, y); - // this.fireEvents(); - this.endMove(); - } - }, - - /** - * Move the slider one tick mark towards its final coordinate. Used - * for the animation when tick marks are defined - * @method moveOneTick - * @param {int[]} the destination coordinate - * @private - */ - moveOneTick: function(finalCoord) { - - var t = this.thumb, tmp; - - - // redundant call to getXY since we set the position most of time prior - // to getting here. Moved to this.curCoord - //var curCoord = YAHOO.util.Dom.getXY(t.getEl()); - - // alignElWithMouse caches position in lastPageX, lastPageY .. doesn't work - //var curCoord = [this.lastPageX, this.lastPageY]; - - // var thresh = Math.min(t.tickSize + (Math.floor(t.tickSize/2)), 10); - // var thresh = 10; - // var thresh = t.tickSize + (Math.floor(t.tickSize/2)); - - var nextCoord = null; - - if (t._isRegion) { - nextCoord = this._getNextX(this.curCoord, finalCoord); - var tmpX = (nextCoord) ? nextCoord[0] : this.curCoord[0]; - nextCoord = this._getNextY([tmpX, this.curCoord[1]], finalCoord); - - } else if (t._isHoriz) { - nextCoord = this._getNextX(this.curCoord, finalCoord); - } else { - nextCoord = this._getNextY(this.curCoord, finalCoord); - } - - - if (nextCoord) { - - // cache the position - this.curCoord = nextCoord; - - // move to the next coord - // YAHOO.util.Dom.setXY(t.getEl(), nextCoord); - - // var el = t.getEl(); - // YAHOO.util.Dom.setStyle(el, "left", (nextCoord[0] + this.thumb.deltaSetXY[0]) + "px"); - // YAHOO.util.Dom.setStyle(el, "top", (nextCoord[1] + this.thumb.deltaSetXY[1]) + "px"); - - this.thumb.alignElWithMouse(t.getEl(), nextCoord[0], nextCoord[1]); - - // check if we are in the final position, if not make a recursive call - if (!(nextCoord[0] == finalCoord[0] && nextCoord[1] == finalCoord[1])) { - var self = this; - setTimeout(function() { self.moveOneTick(finalCoord); }, - this.tickPause); - } else { - this.endMove(); - } - } else { - this.endMove(); - } - - //this.tickPause = Math.round(this.tickPause/2); - }, - - /** - * Returns the next X tick value based on the current coord and the target coord. - * @method _getNextX - * @private - */ - _getNextX: function(curCoord, finalCoord) { - var t = this.thumb; - var thresh; - var tmp = []; - var nextCoord = null; - if (curCoord[0] > finalCoord[0]) { - thresh = t.tickSize - this.thumbCenterPoint.x; - tmp = t.getTargetCoord( curCoord[0] - thresh, curCoord[1] ); - nextCoord = [tmp.x, tmp.y]; - } else if (curCoord[0] < finalCoord[0]) { - thresh = t.tickSize + this.thumbCenterPoint.x; - tmp = t.getTargetCoord( curCoord[0] + thresh, curCoord[1] ); - nextCoord = [tmp.x, tmp.y]; - } else { - // equal, do nothing - } - - return nextCoord; - }, - - /** - * Returns the next Y tick value based on the current coord and the target coord. - * @method _getNextY - * @private - */ - _getNextY: function(curCoord, finalCoord) { - var t = this.thumb; - var thresh; - var tmp = []; - var nextCoord = null; - - if (curCoord[1] > finalCoord[1]) { - thresh = t.tickSize - this.thumbCenterPoint.y; - tmp = t.getTargetCoord( curCoord[0], curCoord[1] - thresh ); - nextCoord = [tmp.x, tmp.y]; - } else if (curCoord[1] < finalCoord[1]) { - thresh = t.tickSize + this.thumbCenterPoint.y; - tmp = t.getTargetCoord( curCoord[0], curCoord[1] + thresh ); - nextCoord = [tmp.x, tmp.y]; - } else { - // equal, do nothing - } - - return nextCoord; - }, - - /** - * Resets the constraints before moving the thumb. - * @method b4MouseDown - * @private - */ - b4MouseDown: function(e) { - this.thumb.autoOffset(); - this.thumb.resetConstraints(); - }, - - - /** - * Handles the mousedown event for the slider background - * @method onMouseDown - * @private - */ - onMouseDown: function(e) { - // this.resetConstraints(true); - // this.thumb.resetConstraints(true); - - if (! this.isLocked() && this.backgroundEnabled) { - var x = YAHOO.util.Event.getPageX(e); - var y = YAHOO.util.Event.getPageY(e); - - this.focus(); - this.moveThumb(x, y); - } - - }, - - /** - * Handles the onDrag event for the slider background - * @method onDrag - * @private - */ - onDrag: function(e) { - if (! this.isLocked()) { - var x = YAHOO.util.Event.getPageX(e); - var y = YAHOO.util.Event.getPageY(e); - this.moveThumb(x, y, true); - } - }, - - /** - * Fired when the slider movement ends - * @method endMove - * @private - */ - endMove: function () { - // this._animating = false; - this.unlock(); - this.moveComplete = true; - this.fireEvents(); - }, - - /** - * Fires the change event if the value has been changed. Ignored if we are in - * the middle of an animation as the event will fire when the animation is - * complete - * @method fireEvents - * @param {boolean} thumbEvent set to true if this event is fired from an event - * that occurred on the thumb. If it is, the state of the - * thumb dd object should be correct. Otherwise, the event - * originated on the background, so the thumb state needs to - * be refreshed before proceeding. - * @private - */ - fireEvents: function (thumbEvent) { - - var t = this.thumb; - - if (!thumbEvent) { - t.cachePosition(); - } - - if (! this.isLocked()) { - if (t._isRegion) { - var newX = t.getXValue(); - var newY = t.getYValue(); - - if (newX != this.previousX || newY != this.previousY) { - this.onChange(newX, newY); - this.fireEvent("change", { x: newX, y: newY }); - } - - this.previousX = newX; - this.previousY = newY; - - } else { - var newVal = t.getValue(); - if (newVal != this.previousVal) { - this.onChange( newVal ); - this.fireEvent("change", newVal); - } - this.previousVal = newVal; - } - - if (this.moveComplete) { - this.onSlideEnd(); - this.fireEvent("slideEnd"); - this.moveComplete = false; - } - - } - }, - - /** - * Slider toString - * @method toString - * @return {string} string representation of the instance - */ - toString: function () { - return ("Slider (" + this.type +") " + this.id); - } - -}); - -YAHOO.augment(YAHOO.widget.Slider, YAHOO.util.EventProvider); - -/** - * A drag and drop implementation to be used as the thumb of a slider. - * @class SliderThumb - * @extends YAHOO.util.DD - * @constructor - * @param {String} id the id of the slider html element - * @param {String} sGroup the group of related DragDrop items - * @param {int} iLeft the number of pixels the element can move left - * @param {int} iRight the number of pixels the element can move right - * @param {int} iUp the number of pixels the element can move up - * @param {int} iDown the number of pixels the element can move down - * @param {int} iTickSize optional parameter for specifying that the element - * should move a certain number pixels at a time. - */ -YAHOO.widget.SliderThumb = function(id, sGroup, iLeft, iRight, iUp, iDown, iTickSize) { - - if (id) { - //this.init(id, sGroup); - YAHOO.widget.SliderThumb.superclass.constructor.call(this, id, sGroup); - - /** - * The id of the thumbs parent HTML element (the slider background - * element). - * @property parentElId - * @type string - */ - this.parentElId = sGroup; - } - - - //this.removeInvalidHandleType("A"); - - - /** - * Overrides the isTarget property in YAHOO.util.DragDrop - * @property isTarget - * @private - */ - this.isTarget = false; - - /** - * The tick size for this slider - * @property tickSize - * @type int - * @private - */ - this.tickSize = iTickSize; - - /** - * Informs the drag and drop util that the offsets should remain when - * resetting the constraints. This preserves the slider value when - * the constraints are reset - * @property maintainOffset - * @type boolean - * @private - */ - this.maintainOffset = true; - - this.initSlider(iLeft, iRight, iUp, iDown, iTickSize); - - /** - * Turns off the autoscroll feature in drag and drop - * @property scroll - * @private - */ - this.scroll = false; - -}; - -YAHOO.extend(YAHOO.widget.SliderThumb, YAHOO.util.DD, { - - /** - * The (X and Y) difference between the thumb location and its parent - * (the slider background) when the control is instantiated. - * @property startOffset - * @type [int, int] - */ - startOffset: null, - - /** - * Flag used to figure out if this is a horizontal or vertical slider - * @property _isHoriz - * @type boolean - * @private - */ - _isHoriz: false, - - /** - * Cache the last value so we can check for change - * @property _prevVal - * @type int - * @private - */ - _prevVal: 0, - - /** - * The slider is _graduated if there is a tick interval defined - * @property _graduated - * @type boolean - * @private - */ - _graduated: false, - - - /** - * Returns the difference between the location of the thumb and its parent. - * @method getOffsetFromParent - * @param {[int, int]} parentPos Optionally accepts the position of the parent - * @type [int, int] - */ - getOffsetFromParent0: function(parentPos) { - var myPos = YAHOO.util.Dom.getXY(this.getEl()); - var ppos = parentPos || YAHOO.util.Dom.getXY(this.parentElId); - - return [ (myPos[0] - ppos[0]), (myPos[1] - ppos[1]) ]; - }, - - getOffsetFromParent: function(parentPos) { - - var el = this.getEl(); - - if (!this.deltaOffset) { - - var myPos = YAHOO.util.Dom.getXY(el); - var ppos = parentPos || YAHOO.util.Dom.getXY(this.parentElId); - - var newOffset = [ (myPos[0] - ppos[0]), (myPos[1] - ppos[1]) ]; - - var l = parseInt( YAHOO.util.Dom.getStyle(el, "left"), 10 ); - var t = parseInt( YAHOO.util.Dom.getStyle(el, "top" ), 10 ); - - var deltaX = l - newOffset[0]; - var deltaY = t - newOffset[1]; - - if (isNaN(deltaX) || isNaN(deltaY)) { - } else { - this.deltaOffset = [deltaX, deltaY]; - } - - } else { - var newLeft = parseInt( YAHOO.util.Dom.getStyle(el, "left"), 10 ); - var newTop = parseInt( YAHOO.util.Dom.getStyle(el, "top" ), 10 ); - - newOffset = [newLeft + this.deltaOffset[0], newTop + this.deltaOffset[1]]; - } - - return newOffset; - - //return [ (myPos[0] - ppos[0]), (myPos[1] - ppos[1]) ]; - }, - - /** - * Set up the slider, must be called in the constructor of all subclasses - * @method initSlider - * @param {int} iLeft the number of pixels the element can move left - * @param {int} iRight the number of pixels the element can move right - * @param {int} iUp the number of pixels the element can move up - * @param {int} iDown the number of pixels the element can move down - * @param {int} iTickSize the width of the tick interval. - */ - initSlider: function (iLeft, iRight, iUp, iDown, iTickSize) { - - - //document these. new for 0.12.1 - this.initLeft = iLeft; - this.initRight = iRight; - this.initUp = iUp; - this.initDown = iDown; - - this.setXConstraint(iLeft, iRight, iTickSize); - this.setYConstraint(iUp, iDown, iTickSize); - - if (iTickSize && iTickSize > 1) { - this._graduated = true; - } - - this._isHoriz = (iLeft || iRight); - this._isVert = (iUp || iDown); - this._isRegion = (this._isHoriz && this._isVert); - - }, - - /** - * Clear's the slider's ticks - * @method clearTicks - */ - clearTicks: function () { - YAHOO.widget.SliderThumb.superclass.clearTicks.call(this); - this.tickSize = 0; - this._graduated = false; - }, - - - /** - * Gets the current offset from the element's start position in - * pixels. - * @method getValue - * @return {int} the number of pixels (positive or negative) the - * slider has moved from the start position. - */ - getValue: function () { - if (!this.available) { return 0; } - var val = (this._isHoriz) ? this.getXValue() : this.getYValue(); - return val; - }, - - /** - * Gets the current X offset from the element's start position in - * pixels. - * @method getXValue - * @return {int} the number of pixels (positive or negative) the - * slider has moved horizontally from the start position. - */ - getXValue: function () { - if (!this.available) { return 0; } - var newOffset = this.getOffsetFromParent(); - return (newOffset[0] - this.startOffset[0]); - }, - - /** - * Gets the current Y offset from the element's start position in - * pixels. - * @method getYValue - * @return {int} the number of pixels (positive or negative) the - * slider has moved vertically from the start position. - */ - getYValue: function () { - if (!this.available) { return 0; } - var newOffset = this.getOffsetFromParent(); - return (newOffset[1] - this.startOffset[1]); - }, - - /** - * Thumb toString - * @method toString - * @return {string} string representation of the instance - */ - toString: function () { - return "SliderThumb " + this.id; - }, - - /** - * The onchange event for the handle/thumb is delegated to the YAHOO.widget.Slider - * instance it belongs to. - * @method onChange - * @private - */ - onChange: function (x, y) { - } - -}); - -if ("undefined" == typeof YAHOO.util.Anim) { - YAHOO.widget.Slider.ANIM_AVAIL = false; -} - -YAHOO.register("slider", YAHOO.widget.Slider, {version: "2.2.0", build: "127"}); diff --git a/interface/ispconfig/interface/js/yui/tabview/README b/interface/ispconfig/interface/js/yui/tabview/README deleted file mode 100644 index 0c598a55d..000000000 --- a/interface/ispconfig/interface/js/yui/tabview/README +++ /dev/null @@ -1,21 +0,0 @@ -*** version 2.2.0 ** - -* Element broken out into seperate pkg - NOTE: new dependency required - element-beta.js - -*** version 0.12.2 *** - -* var Tab is now private -* fixed Element.configureAttribute - -*** version 0.12.1 *** - -* tabs.css renamed to tabview.css -* calls to "set" now queued so they can be made before "contentReady" - - -*** version 0.12.0 *** - -* TabView widget introduced - -* Note: border_tabs.css included as basic skin to enable "tabs" look diff --git a/interface/ispconfig/interface/js/yui/tabview/assets/border_tabs.css b/interface/ispconfig/interface/js/yui/tabview/assets/border_tabs.css deleted file mode 100644 index 57395f62c..000000000 --- a/interface/ispconfig/interface/js/yui/tabview/assets/border_tabs.css +++ /dev/null @@ -1,54 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ -.yui-navset .yui-nav li a, .yui-navset .yui-content { - border:1px solid #000; /* label and content borders */ -} - -.yui-navset .yui-nav .selected a, .yui-navset .yui-nav a:hover, .yui-navset .yui-content { - background-color:#f6f7ee; /* active tab, tab hover, and content bgcolor */ -} - -.yui-navset .yui-nav li em { padding:.5em; } /* tab padding */ - -/* defaults to orientation "top" */ -.yui-navset .yui-nav .selected a { - border-bottom-width:0; /* no bottom border for active tab */ - padding-bottom:1px; /* to match height of other tabs */ -} - -.yui-navset .yui-content { - margin-top:-1px; /* for active tab overlap */ -} - -/* overrides for other orientations */ - -.yui-navset-bottom .yui-nav .selected a { - border-width:0 1px 1px; /* no top border for active tab */ - padding:1px 0 0; /* to match height of other tabs */ -} - -.yui-navset-bottom .yui-content { - margin:0 0 -1px; /* for active tab overlap */ -} - -.yui-navset-left .yui-nav li.selected a { - border-width:1px 0 1px 1px; /* no right border for active tab */ - padding:0 1px 0 0; /* to match width of other tabs */ -} - -.yui-navset-left .yui-content { - margin:0 0 0 -1px; /* for active tab overlap */ -} - -.yui-navset-right .yui-nav li.selected a { - border-width:1px 1px 1px 0; /* no left border for active tab */ - padding:0 0 0 1px; /* to match width of other tabs */ -} - -.yui-navset-right .yui-content { - margin:0 -1px 0 0; /* for active tab overlap */ -} \ No newline at end of file diff --git a/interface/ispconfig/interface/js/yui/tabview/assets/tabview.css b/interface/ispconfig/interface/js/yui/tabview/assets/tabview.css deleted file mode 100644 index 2d6b788f5..000000000 --- a/interface/ispconfig/interface/js/yui/tabview/assets/tabview.css +++ /dev/null @@ -1,75 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ -/* default space between tabs */ -.yui-navset .yui-nav li { - margin-right:0.5em; /* horizontal tabs */ -} -.yui-navset-left .yui-nav li, .yui-navset-right .yui-nav li { - margin:0 0 0.5em; /* vertical tabs */ -} - -/* default width for side tabs */ -.yui-navset-left .yui-nav, .yui-navset-right .yui-nav { width:6em; } -.yui-navset-left { padding-left:6em; } /* map to nav width */ -.yui-navset-right { padding-right:6em; } /* ditto */ - -/* core */ - -.yui-nav, .yui-nav li { - margin:0; - padding:0; - list-style:none; -} -.yui-navset li em { font-style:normal; } - -.yui-navset { - position:relative; /* contain absolute positioned tabs (left/right) */ - zoom:1; -} - -.yui-navset .yui-content { zoom:1; } - -.yui-navset .yui-nav li { - display:inline-block; - display:-moz-inline-stack; - *display:inline; /* IE */ - vertical-align:bottom; /* safari: for overlap */ - cursor:pointer; /* gecko: due to -moz-inline-stack on anchor */ - zoom:1; /* IE: kill space between horizontal tabs */ -} - -.yui-navset-left .yui-nav li, .yui-navset-right .yui-nav li { - display:block; -} - -.yui-navset .yui-nav a { - outline:0; /* gecko: keep from shifting */ -} - -.yui-navset .yui-nav a { position:relative; } /* IE: to allow overlap */ - -.yui-navset .yui-nav li a { - display:block; - display:inline-block; - vertical-align:bottom; /* safari: for overlap */ - zoom:1; -} - -.yui-navset-left .yui-nav li a, .yui-navset-right .yui-nav li a { - display:block; -} - -.yui-navset-bottom .yui-nav li a { - vertical-align:text-top; /* for inline overlap (reverse for Op border bug) */ -} - -.yui-navset .yui-nav li a em { display:block; } - -/* position left and right oriented tabs */ -.yui-navset-left .yui-nav, .yui-navset-right .yui-nav { position:absolute; z-index:1; } -.yui-navset-left .yui-nav { left:0; } -.yui-navset-right .yui-nav { right:0; } diff --git a/interface/ispconfig/interface/js/yui/tabview/tabview-debug.js b/interface/ispconfig/interface/js/yui/tabview/tabview-debug.js deleted file mode 100644 index f84511aa2..000000000 --- a/interface/ispconfig/interface/js/yui/tabview/tabview-debug.js +++ /dev/null @@ -1,1025 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ -(function() { - - /** - * The tabview module provides a widget for managing content bound to tabs. - * @module tabview - * @requires yahoo, dom, event, element - * - */ - /** - * A widget to control tabbed views. - * @namespace YAHOO.widget - * @class TabView - * @extends YAHOO.util.Element - * @constructor - * @param {HTMLElement | String | Object} el(optional) The html - * element that represents the TabView, or the attribute object to use. - * An element will be created if none provided. - * @param {Object} attr (optional) A key map of the tabView's - * initial attributes. Ignored if first arg is attributes object. - */ - YAHOO.widget.TabView = function(el, attr) { - attr = attr || {}; - if (arguments.length == 1 && !YAHOO.lang.isString(el) && !el.nodeName) { - attr = el; // treat first arg as attr object - el = attr.element || null; - } - - if (!el && !attr.element) { // create if we dont have one - el = _createTabViewElement.call(this, attr); - } - YAHOO.widget.TabView.superclass.constructor.call(this, el, attr); - }; - - YAHOO.extend(YAHOO.widget.TabView, YAHOO.util.Element); - - var proto = YAHOO.widget.TabView.prototype; - var Dom = YAHOO.util.Dom; - var Event = YAHOO.util.Event; - var Tab = YAHOO.widget.Tab; - - - /** - * The className to add when building from scratch. - * @property CLASSNAME - * @default "navset" - */ - proto.CLASSNAME = 'yui-navset'; - - /** - * The className of the HTMLElement containing the TabView's tab elements - * to look for when building from existing markup, or to add when building - * from scratch. - * All childNodes of the tab container are treated as Tabs when building - * from existing markup. - * @property TAB_PARENT_CLASSNAME - * @default "nav" - */ - proto.TAB_PARENT_CLASSNAME = 'yui-nav'; - - /** - * The className of the HTMLElement containing the TabView's label elements - * to look for when building from existing markup, or to add when building - * from scratch. - * All childNodes of the content container are treated as content elements when - * building from existing markup. - * @property CONTENT_PARENT_CLASSNAME - * @default "nav-content" - */ - proto.CONTENT_PARENT_CLASSNAME = 'yui-content'; - - proto._tabParent = null; - proto._contentParent = null; - - /** - * Adds a Tab to the TabView instance. - * If no index is specified, the tab is added to the end of the tab list. - * @method addTab - * @param {YAHOO.widget.Tab} tab A Tab instance to add. - * @param {Integer} index The position to add the tab. - * @return void - */ - proto.addTab = function(tab, index) { - var tabs = this.get('tabs'); - if (!tabs) { // not ready yet - this._queue[this._queue.length] = ['addTab', arguments]; - return false; - } - - index = (index === undefined) ? tabs.length : index; - - var before = this.getTab(index); - - var self = this; - var el = this.get('element'); - var tabParent = this._tabParent; - var contentParent = this._contentParent; - - var tabElement = tab.get('element'); - var contentEl = tab.get('contentEl'); - - if ( before ) { - tabParent.insertBefore(tabElement, before.get('element')); - } else { - tabParent.appendChild(tabElement); - } - - if ( contentEl && !Dom.isAncestor(contentParent, contentEl) ) { - contentParent.appendChild(contentEl); - } - - if ( !tab.get('active') ) { - tab.set('contentVisible', false, true); /* hide if not active */ - } else { - this.set('activeTab', tab, true); - - } - - var activate = function(e) { - YAHOO.util.Event.preventDefault(e); - self.set('activeTab', this); - }; - - tab.addListener( tab.get('activationEvent'), activate); - - tab.addListener('activationEventChange', function(e) { - if (e.prevValue != e.newValue) { - tab.removeListener(e.prevValue, activate); - tab.addListener(e.newValue, activate); - } - }); - - tabs.splice(index, 0, tab); - }; - - /** - * Routes childNode events. - * @method DOMEventHandler - * @param {event} e The Dom event that is being handled. - * @return void - */ - proto.DOMEventHandler = function(e) { - var el = this.get('element'); - var target = YAHOO.util.Event.getTarget(e); - var tabParent = this._tabParent; - - if (Dom.isAncestor(tabParent, target) ) { - var tabEl; - var tab = null; - var contentEl; - var tabs = this.get('tabs'); - - for (var i = 0, len = tabs.length; i < len; i++) { - tabEl = tabs[i].get('element'); - contentEl = tabs[i].get('contentEl'); - - if ( target == tabEl || Dom.isAncestor(tabEl, target) ) { - tab = tabs[i]; - break; // note break - } - } - - if (tab) { - tab.fireEvent(e.type, e); - } - } - }; - - /** - * Returns the Tab instance at the specified index. - * @method getTab - * @param {Integer} index The position of the Tab. - * @return YAHOO.widget.Tab - */ - proto.getTab = function(index) { - return this.get('tabs')[index]; - }; - - /** - * Returns the index of given tab. - * @method getTabIndex - * @param {YAHOO.widget.Tab} tab The tab whose index will be returned. - * @return int - */ - proto.getTabIndex = function(tab) { - var index = null; - var tabs = this.get('tabs'); - for (var i = 0, len = tabs.length; i < len; ++i) { - if (tab == tabs[i]) { - index = i; - break; - } - } - - return index; - }; - - /** - * Removes the specified Tab from the TabView. - * @method removeTab - * @param {YAHOO.widget.Tab} item The Tab instance to be removed. - * @return void - */ - proto.removeTab = function(tab) { - var tabCount = this.get('tabs').length; - - var index = this.getTabIndex(tab); - var nextIndex = index + 1; - if ( tab == this.get('activeTab') ) { // select next tab - if (tabCount > 1) { - if (index + 1 == tabCount) { - this.set('activeIndex', index - 1); - } else { - this.set('activeIndex', index + 1); - } - } - } - - this._tabParent.removeChild( tab.get('element') ); - this._contentParent.removeChild( tab.get('contentEl') ); - this._configs.tabs.value.splice(index, 1); - - }; - - /** - * Provides a readable name for the TabView instance. - * @method toString - * @return String - */ - proto.toString = function() { - var name = this.get('id') || this.get('tagName'); - return "TabView " + name; - }; - - /** - * The transiton to use when switching between tabs. - * @method contentTransition - */ - proto.contentTransition = function(newTab, oldTab) { - newTab.set('contentVisible', true); - oldTab.set('contentVisible', false); - }; - - /** - * setAttributeConfigs TabView specific properties. - * @method initAttributes - * @param {Object} attr Hash of initial attributes - */ - proto.initAttributes = function(attr) { - YAHOO.widget.TabView.superclass.initAttributes.call(this, attr); - - if (!attr.orientation) { - attr.orientation = 'top'; - } - - var el = this.get('element'); - - /** - * The Tabs belonging to the TabView instance. - * @config tabs - * @type Array - */ - this.setAttributeConfig('tabs', { - value: [], - readOnly: true - }); - - /** - * The container of the tabView's label elements. - * @property _tabParent - * @private - * @type HTMLElement - */ - this._tabParent = - this.getElementsByClassName(this.TAB_PARENT_CLASSNAME, - 'ul' )[0] || _createTabParent.call(this); - - /** - * The container of the tabView's content elements. - * @property _contentParent - * @type HTMLElement - * @private - */ - this._contentParent = - this.getElementsByClassName(this.CONTENT_PARENT_CLASSNAME, - 'div')[0] || _createContentParent.call(this); - - /** - * How the Tabs should be oriented relative to the TabView. - * @config orientation - * @type String - * @default "top" - */ - this.setAttributeConfig('orientation', { - value: attr.orientation, - method: function(value) { - var current = this.get('orientation'); - this.addClass('yui-navset-' + value); - - if (current != value) { - this.removeClass('yui-navset-' + current); - } - - switch(value) { - case 'bottom': - this.appendChild(this._tabParent); - break; - } - } - }); - - /** - * The index of the tab currently active. - * @config activeIndex - * @type Int - */ - this.setAttributeConfig('activeIndex', { - value: attr.activeIndex, - method: function(value) { - this.set('activeTab', this.getTab(value)); - }, - validator: function(value) { - return !this.getTab(value).get('disabled'); // cannot activate if disabled - } - }); - - /** - * The tab currently active. - * @config activeTab - * @type YAHOO.widget.Tab - */ - this.setAttributeConfig('activeTab', { - value: attr.activeTab, - method: function(tab) { - var activeTab = this.get('activeTab'); - - if (tab) { - tab.set('active', true); - this._configs['activeIndex'].value = this.getTabIndex(tab); // keep in sync - } - - if (activeTab && activeTab != tab) { - activeTab.set('active', false); - } - - if (activeTab && tab != activeTab) { // no transition if only 1 - this.contentTransition(tab, activeTab); - } else if (tab) { - tab.set('contentVisible', true); - } - }, - validator: function(value) { - return !value.get('disabled'); // cannot activate if disabled - } - }); - - if ( this._tabParent ) { - _initTabs.call(this); - } - - for (var type in this.DOM_EVENTS) { - if ( YAHOO.lang.hasOwnProperty(this.DOM_EVENTS, type) ) { - this.addListener.call(this, type, this.DOMEventHandler); - } - } - }; - - /** - * Creates Tab instances from a collection of HTMLElements. - * @method createTabs - * @private - * @param {Array|HTMLCollection} elements The elements to use for Tabs. - * @return void - */ - var _initTabs = function() { - var tab, - attr, - contentEl; - - var el = this.get('element'); - var tabs = _getChildNodes(this._tabParent); - var contentElements = _getChildNodes(this._contentParent); - - for (var i = 0, len = tabs.length; i < len; ++i) { - attr = {}; - - if (contentElements[i]) { - attr.contentEl = contentElements[i]; - } - - tab = new YAHOO.widget.Tab(tabs[i], attr); - this.addTab(tab); - - if (tab.hasClass(tab.ACTIVE_CLASSNAME) ) { - this._configs.activeTab.value = tab; // dont invoke method - } - } - }; - - var _createTabViewElement = function(attr) { - var el = document.createElement('div'); - - if ( this.CLASSNAME ) { - el.className = this.CLASSNAME; - } - - return el; - }; - - var _createTabParent = function(attr) { - var el = document.createElement('ul'); - - if ( this.TAB_PARENT_CLASSNAME ) { - el.className = this.TAB_PARENT_CLASSNAME; - } - - this.get('element').appendChild(el); - - return el; - }; - - var _createContentParent = function(attr) { - var el = document.createElement('div'); - - if ( this.CONTENT_PARENT_CLASSNAME ) { - el.className = this.CONTENT_PARENT_CLASSNAME; - } - - this.get('element').appendChild(el); - - return el; - }; - - var _getChildNodes = function(el) { - var nodes = []; - var childNodes = el.childNodes; - - for (var i = 0, len = childNodes.length; i < len; ++i) { - if (childNodes[i].nodeType == 1) { - nodes[nodes.length] = childNodes[i]; - } - } - - return nodes; - }; - -/** - * Fires before the activeTab is changed. - *

    See: Element.addListener

    - *

    If handler returns false, the change will be cancelled, and the value will not - * be set.

    - *

    Event fields:
    - * <String> type beforeActiveTabChange
    - * <YAHOO.widget.Tab> - * prevValue the currently active tab
    - * <YAHOO.widget.Tab> - * newValue the tab to be made active

    - *

    Usage:
    - * var handler = function(e) {var previous = e.prevValue};
    - * myTabs.addListener('beforeActiveTabChange', handler);

    - * @event beforeActiveTabChange - */ - -/** - * Fires after the activeTab is changed. - *

    See: Element.addListener

    - *

    Event fields:
    - * <String> type activeTabChange
    - * <YAHOO.widget.Tab> - * prevValue the formerly active tab
    - * <YAHOO.widget.Tab> - * newValue the new active tab

    - *

    Usage:
    - * var handler = function(e) {var previous = e.prevValue};
    - * myTabs.addListener('activeTabChange', handler);

    - * @event activeTabChange - */ - -/** - * Fires before the orientation is changed. - *

    See: Element.addListener

    - *

    If handler returns false, the change will be cancelled, and the value will not - * be set.

    - *

    Event fields:
    - * <String> type beforeOrientationChange
    - * <String> - * prevValue the current orientation
    - * <String> - * newValue the new orientation to be applied

    - *

    Usage:
    - * var handler = function(e) {var previous = e.prevValue};
    - * myTabs.addListener('beforeOrientationChange', handler);

    - * @event beforeOrientationChange - */ - -/** - * Fires after the orientation is changed. - *

    See: Element.addListener

    - *

    Event fields:
    - * <String> type orientationChange
    - * <String> - * prevValue the former orientation
    - * <String> - * newValue the new orientation

    - *

    Usage:
    - * var handler = function(e) {var previous = e.prevValue};
    - * myTabs.addListener('orientationChange', handler);

    - * @event orientationChange - */ -})(); - -(function() { - var Dom = YAHOO.util.Dom, - Event = YAHOO.util.Event; - - /** - * A representation of a Tab's label and content. - * @namespace YAHOO.widget - * @class Tab - * @extends YAHOO.util.Element - * @constructor - * @param element {HTMLElement | String} (optional) The html element that - * represents the TabView. An element will be created if none provided. - * @param {Object} properties A key map of initial properties - */ - var Tab = function(el, attr) { - attr = attr || {}; - if (arguments.length == 1 && !YAHOO.lang.isString(el) && !el.nodeName) { - attr = el; - el = attr.element; - } - - if (!el && !attr.element) { - el = _createTabElement.call(this, attr); - } - - this.loadHandler = { - success: function(o) { - this.set('content', o.responseText); - }, - failure: function(o) { - YAHOO.log('loading failed: ' + o.statusText, - 'error', 'Tab'); - } - }; - - Tab.superclass.constructor.call(this, el, attr); - - this.DOM_EVENTS = {}; // delegating to tabView - }; - - YAHOO.extend(Tab, YAHOO.util.Element); - var proto = Tab.prototype; - - /** - * The default tag name for a Tab's inner element. - * @property LABEL_INNER_TAGNAME - * @type String - * @default "em" - */ - proto.LABEL_TAGNAME = 'em'; - - /** - * The class name applied to active tabs. - * @property ACTIVE_CLASSNAME - * @type String - * @default "on" - */ - proto.ACTIVE_CLASSNAME = 'selected'; - - /** - * The class name applied to disabled tabs. - * @property DISABLED_CLASSNAME - * @type String - * @default "disabled" - */ - proto.DISABLED_CLASSNAME = 'disabled'; - - /** - * The class name applied to dynamic tabs while loading. - * @property LOADING_CLASSNAME - * @type String - * @default "disabled" - */ - proto.LOADING_CLASSNAME = 'loading'; - - /** - * Provides a reference to the connection request object when data is - * loaded dynamically. - * @property dataConnection - * @type Object - */ - proto.dataConnection = null; - - /** - * Object containing success and failure callbacks for loading data. - * @property loadHandler - * @type object - */ - proto.loadHandler = null; - - /** - * Provides a readable name for the tab. - * @method toString - * @return String - */ - proto.toString = function() { - var el = this.get('element'); - var id = el.id || el.tagName; - return "Tab " + id; - }; - - /** - * setAttributeConfigs TabView specific properties. - * @method initAttributes - * @param {Object} attr Hash of initial attributes - */ - proto.initAttributes = function(attr) { - attr = attr || {}; - Tab.superclass.initAttributes.call(this, attr); - - var el = this.get('element'); - - /** - * The event that triggers the tab's activation. - * @config activationEvent - * @type String - */ - this.setAttributeConfig('activationEvent', { - value: attr.activationEvent || 'click' - }); - - /** - * The element that contains the tab's label. - * @config labelEl - * @type HTMLElement - */ - this.setAttributeConfig('labelEl', { - value: attr.labelEl || _getlabelEl.call(this), - method: function(value) { - var current = this.get('labelEl'); - - if (current) { - if (current == value) { - return false; // already set - } - - this.replaceChild(value, current); - } else if (el.firstChild) { // ensure label is firstChild by default - this.insertBefore(value, el.firstChild); - } else { - this.appendChild(value); - } - } - }); - - /** - * The tab's label text (or innerHTML). - * @config label - * @type String - */ - this.setAttributeConfig('label', { - value: attr.label || _getLabel.call(this), - method: function(value) { - var labelEl = this.get('labelEl'); - if (!labelEl) { // create if needed - this.set('labelEl', _createlabelEl.call(this)); - } - - _setLabel.call(this, value); - } - }); - - /** - * The HTMLElement that contains the tab's content. - * @config contentEl - * @type HTMLElement - */ - this.setAttributeConfig('contentEl', { - value: attr.contentEl || document.createElement('div'), - method: function(value) { - var current = this.get('contentEl'); - - if (current) { - if (current == value) { - return false; // already set - } - this.replaceChild(value, current); - } - } - }); - - /** - * The tab's content. - * @config content - * @type String - */ - this.setAttributeConfig('content', { - value: attr.content, - method: function(value) { - this.get('contentEl').innerHTML = value; - } - }); - - var _dataLoaded = false; - - /** - * The tab's data source, used for loading content dynamically. - * @config dataSrc - * @type String - */ - this.setAttributeConfig('dataSrc', { - value: attr.dataSrc - }); - - /** - * Whether or not content should be reloaded for every view. - * @config cacheData - * @type Boolean - * @default false - */ - this.setAttributeConfig('cacheData', { - value: attr.cacheData || false, - validator: YAHOO.lang.isBoolean - }); - - /** - * The method to use for the data request. - * @config loadMethod - * @type String - * @default "GET" - */ - this.setAttributeConfig('loadMethod', { - value: attr.loadMethod || 'GET', - validator: YAHOO.lang.isString - }); - - /** - * Whether or not any data has been loaded from the server. - * @config dataLoaded - * @type Boolean - */ - this.setAttributeConfig('dataLoaded', { - value: false, - validator: YAHOO.lang.isBoolean, - writeOnce: true - }); - - /** - * Number if milliseconds before aborting and calling failure handler. - * @config dataTimeout - * @type Number - * @default null - */ - this.setAttributeConfig('dataTimeout', { - value: attr.dataTimeout || null, - validator: YAHOO.lang.isNumber - }); - - /** - * Whether or not the tab is currently active. - * If a dataSrc is set for the tab, the content will be loaded from - * the given source. - * @config active - * @type Boolean - */ - this.setAttributeConfig('active', { - value: attr.active || this.hasClass(this.ACTIVE_CLASSNAME), - method: function(value) { - if (value === true) { - this.addClass(this.ACTIVE_CLASSNAME); - this.set('title', 'active'); - } else { - this.removeClass(this.ACTIVE_CLASSNAME); - this.set('title', ''); - } - }, - validator: function(value) { - return YAHOO.lang.isBoolean(value) && !this.get('disabled') ; - } - }); - - /** - * Whether or not the tab is disabled. - * @config disabled - * @type Boolean - */ - this.setAttributeConfig('disabled', { - value: attr.disabled || this.hasClass(this.DISABLED_CLASSNAME), - method: function(value) { - if (value === true) { - Dom.addClass(this.get('element'), this.DISABLED_CLASSNAME); - } else { - Dom.removeClass(this.get('element'), this.DISABLED_CLASSNAME); - } - }, - validator: YAHOO.lang.isBoolean - }); - - /** - * The href of the tab's anchor element. - * @config href - * @type String - * @default '#' - */ - this.setAttributeConfig('href', { - value: attr.href || '#', - method: function(value) { - this.getElementsByTagName('a')[0].href = value; - }, - validator: YAHOO.lang.isString - }); - - /** - * The Whether or not the tab's content is visible. - * @config contentVisible - * @type Boolean - * @default false - */ - this.setAttributeConfig('contentVisible', { - value: attr.contentVisible, - method: function(value) { - if (value) { - this.get('contentEl').style.display = 'block'; - - if ( this.get('dataSrc') ) { - // load dynamic content unless already loaded and caching - if ( !this.get('dataLoaded') || !this.get('cacheData') ) { - _dataConnect.call(this); - } - } - } else { - this.get('contentEl').style.display = 'none'; - } - }, - validator: YAHOO.lang.isBoolean - }); - }; - - var _createTabElement = function(attr) { - var el = document.createElement('li'); - var a = document.createElement('a'); - - a.href = attr.href || '#'; - - el.appendChild(a); - - var label = attr.label || null; - var labelEl = attr.labelEl || null; - - if (labelEl) { // user supplied labelEl - if (!label) { // user supplied label - label = _getLabel.call(this, labelEl); - } - } else { - labelEl = _createlabelEl.call(this); - } - - a.appendChild(labelEl); - - return el; - }; - - var _getlabelEl = function() { - return this.getElementsByTagName(this.LABEL_TAGNAME)[0]; - }; - - var _createlabelEl = function() { - var el = document.createElement(this.LABEL_TAGNAME); - return el; - }; - - var _setLabel = function(label) { - var el = this.get('labelEl'); - el.innerHTML = label; - }; - - var _getLabel = function() { - var label, - el = this.get('labelEl'); - - if (!el) { - return undefined; - } - - return el.innerHTML; - }; - - var _dataConnect = function() { - if (!YAHOO.util.Connect) { - YAHOO.log('YAHOO.util.Connect dependency not met', - 'error', 'Tab'); - return false; - } - - Dom.addClass(this.get('contentEl').parentNode, this.LOADING_CLASSNAME); - - this.dataConnection = YAHOO.util.Connect.asyncRequest( - this.get('loadMethod'), - this.get('dataSrc'), - { - success: function(o) { - this.loadHandler.success.call(this, o); - this.set('dataLoaded', true); - this.dataConnection = null; - Dom.removeClass(this.get('contentEl').parentNode, - this.LOADING_CLASSNAME); - }, - failure: function(o) { - this.loadHandler.failure.call(this, o); - this.dataConnection = null; - Dom.removeClass(this.get('contentEl').parentNode, - this.LOADING_CLASSNAME); - }, - scope: this, - timeout: this.get('dataTimeout') - } - ); - }; - - YAHOO.widget.Tab = Tab; - - /** - * Fires before the active state is changed. - *

    See: Element.addListener

    - *

    If handler returns false, the change will be cancelled, and the value will not - * be set.

    - *

    Event fields:
    - * <String> type beforeActiveChange
    - * <Boolean> - * prevValue the current value
    - * <Boolean> - * newValue the new value

    - *

    Usage:
    - * var handler = function(e) {var previous = e.prevValue};
    - * myTabs.addListener('beforeActiveChange', handler);

    - * @event beforeActiveChange - */ - - /** - * Fires after the active state is changed. - *

    See: Element.addListener

    - *

    Event fields:
    - * <String> type activeChange
    - * <Boolean> - * prevValue the previous value
    - * <Boolean> - * newValue the updated value

    - *

    Usage:
    - * var handler = function(e) {var previous = e.prevValue};
    - * myTabs.addListener('activeChange', handler);

    - * @event activeChange - */ - - /** - * Fires before the tab label is changed. - *

    See: Element.addListener

    - *

    If handler returns false, the change will be cancelled, and the value will not - * be set.

    - *

    Event fields:
    - * <String> type beforeLabelChange
    - * <String> - * prevValue the current value
    - * <String> - * newValue the new value

    - *

    Usage:
    - * var handler = function(e) {var previous = e.prevValue};
    - * myTabs.addListener('beforeLabelChange', handler);

    - * @event beforeLabelChange - */ - - /** - * Fires after the tab label is changed. - *

    See: Element.addListener

    - *

    Event fields:
    - * <String> type labelChange
    - * <String> - * prevValue the previous value
    - * <String> - * newValue the updated value

    - *

    Usage:
    - * var handler = function(e) {var previous = e.prevValue};
    - * myTabs.addListener('labelChange', handler);

    - * @event labelChange - */ - - /** - * Fires before the tab content is changed. - *

    See: Element.addListener

    - *

    If handler returns false, the change will be cancelled, and the value will not - * be set.

    - *

    Event fields:
    - * <String> type beforeContentChange
    - * <String> - * prevValue the current value
    - * <String> - * newValue the new value

    - *

    Usage:
    - * var handler = function(e) {var previous = e.prevValue};
    - * myTabs.addListener('beforeContentChange', handler);

    - * @event beforeContentChange - */ - - /** - * Fires after the tab content is changed. - *

    See: Element.addListener

    - *

    Event fields:
    - * <String> type contentChange
    - * <String> - * prevValue the previous value
    - * <Boolean> - * newValue the updated value

    - *

    Usage:
    - * var handler = function(e) {var previous = e.prevValue};
    - * myTabs.addListener('contentChange', handler);

    - * @event contentChange - */ -})(); - -YAHOO.register("tabview", YAHOO.widget.TabView, {version: "2.2.0", build: "127"}); diff --git a/interface/ispconfig/interface/js/yui/tabview/tabview-min.js b/interface/ispconfig/interface/js/yui/tabview/tabview-min.js deleted file mode 100644 index 0985d81f8..000000000 --- a/interface/ispconfig/interface/js/yui/tabview/tabview-min.js +++ /dev/null @@ -1,35 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ - -(function(){YAHOO.widget.TabView=function(el,attr){attr=attr||{};if(arguments.length==1&&!YAHOO.lang.isString(el)&&!el.nodeName){attr=el;el=attr.element||null;} -if(!el&&!attr.element){el=_createTabViewElement.call(this,attr);} -YAHOO.widget.TabView.superclass.constructor.call(this,el,attr);};YAHOO.extend(YAHOO.widget.TabView,YAHOO.util.Element);var proto=YAHOO.widget.TabView.prototype;var Dom=YAHOO.util.Dom;var Event=YAHOO.util.Event;var Tab=YAHOO.widget.Tab;proto.CLASSNAME='yui-navset';proto.TAB_PARENT_CLASSNAME='yui-nav';proto.CONTENT_PARENT_CLASSNAME='yui-content';proto._tabParent=null;proto._contentParent=null;proto.addTab=function(tab,index){var tabs=this.get('tabs');if(!tabs){this._queue[this._queue.length]=['addTab',arguments];return false;} -index=(index===undefined)?tabs.length:index;var before=this.getTab(index);var self=this;var el=this.get('element');var tabParent=this._tabParent;var contentParent=this._contentParent;var tabElement=tab.get('element');var contentEl=tab.get('contentEl');if(before){tabParent.insertBefore(tabElement,before.get('element'));}else{tabParent.appendChild(tabElement);} -if(contentEl&&!Dom.isAncestor(contentParent,contentEl)){contentParent.appendChild(contentEl);} -if(!tab.get('active')){tab.set('contentVisible',false,true);}else{this.set('activeTab',tab,true);} -var activate=function(e){YAHOO.util.Event.preventDefault(e);self.set('activeTab',this);};tab.addListener(tab.get('activationEvent'),activate);tab.addListener('activationEventChange',function(e){if(e.prevValue!=e.newValue){tab.removeListener(e.prevValue,activate);tab.addListener(e.newValue,activate);}});tabs.splice(index,0,tab);};proto.DOMEventHandler=function(e){var el=this.get('element');var target=YAHOO.util.Event.getTarget(e);var tabParent=this._tabParent;if(Dom.isAncestor(tabParent,target)){var tabEl;var tab=null;var contentEl;var tabs=this.get('tabs');for(var i=0,len=tabs.length;i1){if(index+1==tabCount){this.set('activeIndex',index-1);}else{this.set('activeIndex',index+1);}}} -this._tabParent.removeChild(tab.get('element'));this._contentParent.removeChild(tab.get('contentEl'));this._configs.tabs.value.splice(index,1);};proto.toString=function(){var name=this.get('id')||this.get('tagName');return"TabView "+name;};proto.contentTransition=function(newTab,oldTab){newTab.set('contentVisible',true);oldTab.set('contentVisible',false);};proto.initAttributes=function(attr){YAHOO.widget.TabView.superclass.initAttributes.call(this,attr);if(!attr.orientation){attr.orientation='top';} -var el=this.get('element');this.setAttributeConfig('tabs',{value:[],readOnly:true});this._tabParent=this.getElementsByClassName(this.TAB_PARENT_CLASSNAME,'ul')[0]||_createTabParent.call(this);this._contentParent=this.getElementsByClassName(this.CONTENT_PARENT_CLASSNAME,'div')[0]||_createContentParent.call(this);this.setAttributeConfig('orientation',{value:attr.orientation,method:function(value){var current=this.get('orientation');this.addClass('yui-navset-'+value);if(current!=value){this.removeClass('yui-navset-'+current);} -switch(value){case'bottom':this.appendChild(this._tabParent);break;}}});this.setAttributeConfig('activeIndex',{value:attr.activeIndex,method:function(value){this.set('activeTab',this.getTab(value));},validator:function(value){return!this.getTab(value).get('disabled');}});this.setAttributeConfig('activeTab',{value:attr.activeTab,method:function(tab){var activeTab=this.get('activeTab');if(tab){tab.set('active',true);this._configs['activeIndex'].value=this.getTabIndex(tab);} -if(activeTab&&activeTab!=tab){activeTab.set('active',false);} -if(activeTab&&tab!=activeTab){this.contentTransition(tab,activeTab);}else if(tab){tab.set('contentVisible',true);}},validator:function(value){return!value.get('disabled');}});if(this._tabParent){_initTabs.call(this);} -for(var type in this.DOM_EVENTS){if(YAHOO.lang.hasOwnProperty(this.DOM_EVENTS,type)){this.addListener.call(this,type,this.DOMEventHandler);}}};var _initTabs=function(){var tab,attr,contentEl;var el=this.get('element');var tabs=_getChildNodes(this._tabParent);var contentElements=_getChildNodes(this._contentParent);for(var i=0,len=tabs.length;i 1) { - if (index + 1 == tabCount) { - this.set('activeIndex', index - 1); - } else { - this.set('activeIndex', index + 1); - } - } - } - - this._tabParent.removeChild( tab.get('element') ); - this._contentParent.removeChild( tab.get('contentEl') ); - this._configs.tabs.value.splice(index, 1); - - }; - - /** - * Provides a readable name for the TabView instance. - * @method toString - * @return String - */ - proto.toString = function() { - var name = this.get('id') || this.get('tagName'); - return "TabView " + name; - }; - - /** - * The transiton to use when switching between tabs. - * @method contentTransition - */ - proto.contentTransition = function(newTab, oldTab) { - newTab.set('contentVisible', true); - oldTab.set('contentVisible', false); - }; - - /** - * setAttributeConfigs TabView specific properties. - * @method initAttributes - * @param {Object} attr Hash of initial attributes - */ - proto.initAttributes = function(attr) { - YAHOO.widget.TabView.superclass.initAttributes.call(this, attr); - - if (!attr.orientation) { - attr.orientation = 'top'; - } - - var el = this.get('element'); - - /** - * The Tabs belonging to the TabView instance. - * @config tabs - * @type Array - */ - this.setAttributeConfig('tabs', { - value: [], - readOnly: true - }); - - /** - * The container of the tabView's label elements. - * @property _tabParent - * @private - * @type HTMLElement - */ - this._tabParent = - this.getElementsByClassName(this.TAB_PARENT_CLASSNAME, - 'ul' )[0] || _createTabParent.call(this); - - /** - * The container of the tabView's content elements. - * @property _contentParent - * @type HTMLElement - * @private - */ - this._contentParent = - this.getElementsByClassName(this.CONTENT_PARENT_CLASSNAME, - 'div')[0] || _createContentParent.call(this); - - /** - * How the Tabs should be oriented relative to the TabView. - * @config orientation - * @type String - * @default "top" - */ - this.setAttributeConfig('orientation', { - value: attr.orientation, - method: function(value) { - var current = this.get('orientation'); - this.addClass('yui-navset-' + value); - - if (current != value) { - this.removeClass('yui-navset-' + current); - } - - switch(value) { - case 'bottom': - this.appendChild(this._tabParent); - break; - } - } - }); - - /** - * The index of the tab currently active. - * @config activeIndex - * @type Int - */ - this.setAttributeConfig('activeIndex', { - value: attr.activeIndex, - method: function(value) { - this.set('activeTab', this.getTab(value)); - }, - validator: function(value) { - return !this.getTab(value).get('disabled'); // cannot activate if disabled - } - }); - - /** - * The tab currently active. - * @config activeTab - * @type YAHOO.widget.Tab - */ - this.setAttributeConfig('activeTab', { - value: attr.activeTab, - method: function(tab) { - var activeTab = this.get('activeTab'); - - if (tab) { - tab.set('active', true); - this._configs['activeIndex'].value = this.getTabIndex(tab); // keep in sync - } - - if (activeTab && activeTab != tab) { - activeTab.set('active', false); - } - - if (activeTab && tab != activeTab) { // no transition if only 1 - this.contentTransition(tab, activeTab); - } else if (tab) { - tab.set('contentVisible', true); - } - }, - validator: function(value) { - return !value.get('disabled'); // cannot activate if disabled - } - }); - - if ( this._tabParent ) { - _initTabs.call(this); - } - - for (var type in this.DOM_EVENTS) { - if ( YAHOO.lang.hasOwnProperty(this.DOM_EVENTS, type) ) { - this.addListener.call(this, type, this.DOMEventHandler); - } - } - }; - - /** - * Creates Tab instances from a collection of HTMLElements. - * @method createTabs - * @private - * @param {Array|HTMLCollection} elements The elements to use for Tabs. - * @return void - */ - var _initTabs = function() { - var tab, - attr, - contentEl; - - var el = this.get('element'); - var tabs = _getChildNodes(this._tabParent); - var contentElements = _getChildNodes(this._contentParent); - - for (var i = 0, len = tabs.length; i < len; ++i) { - attr = {}; - - if (contentElements[i]) { - attr.contentEl = contentElements[i]; - } - - tab = new YAHOO.widget.Tab(tabs[i], attr); - this.addTab(tab); - - if (tab.hasClass(tab.ACTIVE_CLASSNAME) ) { - this._configs.activeTab.value = tab; // dont invoke method - } - } - }; - - var _createTabViewElement = function(attr) { - var el = document.createElement('div'); - - if ( this.CLASSNAME ) { - el.className = this.CLASSNAME; - } - - return el; - }; - - var _createTabParent = function(attr) { - var el = document.createElement('ul'); - - if ( this.TAB_PARENT_CLASSNAME ) { - el.className = this.TAB_PARENT_CLASSNAME; - } - - this.get('element').appendChild(el); - - return el; - }; - - var _createContentParent = function(attr) { - var el = document.createElement('div'); - - if ( this.CONTENT_PARENT_CLASSNAME ) { - el.className = this.CONTENT_PARENT_CLASSNAME; - } - - this.get('element').appendChild(el); - - return el; - }; - - var _getChildNodes = function(el) { - var nodes = []; - var childNodes = el.childNodes; - - for (var i = 0, len = childNodes.length; i < len; ++i) { - if (childNodes[i].nodeType == 1) { - nodes[nodes.length] = childNodes[i]; - } - } - - return nodes; - }; - -/** - * Fires before the activeTab is changed. - *

    See: Element.addListener

    - *

    If handler returns false, the change will be cancelled, and the value will not - * be set.

    - *

    Event fields:
    - * <String> type beforeActiveTabChange
    - * <YAHOO.widget.Tab> - * prevValue the currently active tab
    - * <YAHOO.widget.Tab> - * newValue the tab to be made active

    - *

    Usage:
    - * var handler = function(e) {var previous = e.prevValue};
    - * myTabs.addListener('beforeActiveTabChange', handler);

    - * @event beforeActiveTabChange - */ - -/** - * Fires after the activeTab is changed. - *

    See: Element.addListener

    - *

    Event fields:
    - * <String> type activeTabChange
    - * <YAHOO.widget.Tab> - * prevValue the formerly active tab
    - * <YAHOO.widget.Tab> - * newValue the new active tab

    - *

    Usage:
    - * var handler = function(e) {var previous = e.prevValue};
    - * myTabs.addListener('activeTabChange', handler);

    - * @event activeTabChange - */ - -/** - * Fires before the orientation is changed. - *

    See: Element.addListener

    - *

    If handler returns false, the change will be cancelled, and the value will not - * be set.

    - *

    Event fields:
    - * <String> type beforeOrientationChange
    - * <String> - * prevValue the current orientation
    - * <String> - * newValue the new orientation to be applied

    - *

    Usage:
    - * var handler = function(e) {var previous = e.prevValue};
    - * myTabs.addListener('beforeOrientationChange', handler);

    - * @event beforeOrientationChange - */ - -/** - * Fires after the orientation is changed. - *

    See: Element.addListener

    - *

    Event fields:
    - * <String> type orientationChange
    - * <String> - * prevValue the former orientation
    - * <String> - * newValue the new orientation

    - *

    Usage:
    - * var handler = function(e) {var previous = e.prevValue};
    - * myTabs.addListener('orientationChange', handler);

    - * @event orientationChange - */ -})(); - -(function() { - var Dom = YAHOO.util.Dom, - Event = YAHOO.util.Event; - - /** - * A representation of a Tab's label and content. - * @namespace YAHOO.widget - * @class Tab - * @extends YAHOO.util.Element - * @constructor - * @param element {HTMLElement | String} (optional) The html element that - * represents the TabView. An element will be created if none provided. - * @param {Object} properties A key map of initial properties - */ - var Tab = function(el, attr) { - attr = attr || {}; - if (arguments.length == 1 && !YAHOO.lang.isString(el) && !el.nodeName) { - attr = el; - el = attr.element; - } - - if (!el && !attr.element) { - el = _createTabElement.call(this, attr); - } - - this.loadHandler = { - success: function(o) { - this.set('content', o.responseText); - }, - failure: function(o) { - } - }; - - Tab.superclass.constructor.call(this, el, attr); - - this.DOM_EVENTS = {}; // delegating to tabView - }; - - YAHOO.extend(Tab, YAHOO.util.Element); - var proto = Tab.prototype; - - /** - * The default tag name for a Tab's inner element. - * @property LABEL_INNER_TAGNAME - * @type String - * @default "em" - */ - proto.LABEL_TAGNAME = 'em'; - - /** - * The class name applied to active tabs. - * @property ACTIVE_CLASSNAME - * @type String - * @default "on" - */ - proto.ACTIVE_CLASSNAME = 'selected'; - - /** - * The class name applied to disabled tabs. - * @property DISABLED_CLASSNAME - * @type String - * @default "disabled" - */ - proto.DISABLED_CLASSNAME = 'disabled'; - - /** - * The class name applied to dynamic tabs while loading. - * @property LOADING_CLASSNAME - * @type String - * @default "disabled" - */ - proto.LOADING_CLASSNAME = 'loading'; - - /** - * Provides a reference to the connection request object when data is - * loaded dynamically. - * @property dataConnection - * @type Object - */ - proto.dataConnection = null; - - /** - * Object containing success and failure callbacks for loading data. - * @property loadHandler - * @type object - */ - proto.loadHandler = null; - - /** - * Provides a readable name for the tab. - * @method toString - * @return String - */ - proto.toString = function() { - var el = this.get('element'); - var id = el.id || el.tagName; - return "Tab " + id; - }; - - /** - * setAttributeConfigs TabView specific properties. - * @method initAttributes - * @param {Object} attr Hash of initial attributes - */ - proto.initAttributes = function(attr) { - attr = attr || {}; - Tab.superclass.initAttributes.call(this, attr); - - var el = this.get('element'); - - /** - * The event that triggers the tab's activation. - * @config activationEvent - * @type String - */ - this.setAttributeConfig('activationEvent', { - value: attr.activationEvent || 'click' - }); - - /** - * The element that contains the tab's label. - * @config labelEl - * @type HTMLElement - */ - this.setAttributeConfig('labelEl', { - value: attr.labelEl || _getlabelEl.call(this), - method: function(value) { - var current = this.get('labelEl'); - - if (current) { - if (current == value) { - return false; // already set - } - - this.replaceChild(value, current); - } else if (el.firstChild) { // ensure label is firstChild by default - this.insertBefore(value, el.firstChild); - } else { - this.appendChild(value); - } - } - }); - - /** - * The tab's label text (or innerHTML). - * @config label - * @type String - */ - this.setAttributeConfig('label', { - value: attr.label || _getLabel.call(this), - method: function(value) { - var labelEl = this.get('labelEl'); - if (!labelEl) { // create if needed - this.set('labelEl', _createlabelEl.call(this)); - } - - _setLabel.call(this, value); - } - }); - - /** - * The HTMLElement that contains the tab's content. - * @config contentEl - * @type HTMLElement - */ - this.setAttributeConfig('contentEl', { - value: attr.contentEl || document.createElement('div'), - method: function(value) { - var current = this.get('contentEl'); - - if (current) { - if (current == value) { - return false; // already set - } - this.replaceChild(value, current); - } - } - }); - - /** - * The tab's content. - * @config content - * @type String - */ - this.setAttributeConfig('content', { - value: attr.content, - method: function(value) { - this.get('contentEl').innerHTML = value; - } - }); - - var _dataLoaded = false; - - /** - * The tab's data source, used for loading content dynamically. - * @config dataSrc - * @type String - */ - this.setAttributeConfig('dataSrc', { - value: attr.dataSrc - }); - - /** - * Whether or not content should be reloaded for every view. - * @config cacheData - * @type Boolean - * @default false - */ - this.setAttributeConfig('cacheData', { - value: attr.cacheData || false, - validator: YAHOO.lang.isBoolean - }); - - /** - * The method to use for the data request. - * @config loadMethod - * @type String - * @default "GET" - */ - this.setAttributeConfig('loadMethod', { - value: attr.loadMethod || 'GET', - validator: YAHOO.lang.isString - }); - - /** - * Whether or not any data has been loaded from the server. - * @config dataLoaded - * @type Boolean - */ - this.setAttributeConfig('dataLoaded', { - value: false, - validator: YAHOO.lang.isBoolean, - writeOnce: true - }); - - /** - * Number if milliseconds before aborting and calling failure handler. - * @config dataTimeout - * @type Number - * @default null - */ - this.setAttributeConfig('dataTimeout', { - value: attr.dataTimeout || null, - validator: YAHOO.lang.isNumber - }); - - /** - * Whether or not the tab is currently active. - * If a dataSrc is set for the tab, the content will be loaded from - * the given source. - * @config active - * @type Boolean - */ - this.setAttributeConfig('active', { - value: attr.active || this.hasClass(this.ACTIVE_CLASSNAME), - method: function(value) { - if (value === true) { - this.addClass(this.ACTIVE_CLASSNAME); - this.set('title', 'active'); - } else { - this.removeClass(this.ACTIVE_CLASSNAME); - this.set('title', ''); - } - }, - validator: function(value) { - return YAHOO.lang.isBoolean(value) && !this.get('disabled') ; - } - }); - - /** - * Whether or not the tab is disabled. - * @config disabled - * @type Boolean - */ - this.setAttributeConfig('disabled', { - value: attr.disabled || this.hasClass(this.DISABLED_CLASSNAME), - method: function(value) { - if (value === true) { - Dom.addClass(this.get('element'), this.DISABLED_CLASSNAME); - } else { - Dom.removeClass(this.get('element'), this.DISABLED_CLASSNAME); - } - }, - validator: YAHOO.lang.isBoolean - }); - - /** - * The href of the tab's anchor element. - * @config href - * @type String - * @default '#' - */ - this.setAttributeConfig('href', { - value: attr.href || '#', - method: function(value) { - this.getElementsByTagName('a')[0].href = value; - }, - validator: YAHOO.lang.isString - }); - - /** - * The Whether or not the tab's content is visible. - * @config contentVisible - * @type Boolean - * @default false - */ - this.setAttributeConfig('contentVisible', { - value: attr.contentVisible, - method: function(value) { - if (value) { - this.get('contentEl').style.display = 'block'; - - if ( this.get('dataSrc') ) { - // load dynamic content unless already loaded and caching - if ( !this.get('dataLoaded') || !this.get('cacheData') ) { - _dataConnect.call(this); - } - } - } else { - this.get('contentEl').style.display = 'none'; - } - }, - validator: YAHOO.lang.isBoolean - }); - }; - - var _createTabElement = function(attr) { - var el = document.createElement('li'); - var a = document.createElement('a'); - - a.href = attr.href || '#'; - - el.appendChild(a); - - var label = attr.label || null; - var labelEl = attr.labelEl || null; - - if (labelEl) { // user supplied labelEl - if (!label) { // user supplied label - label = _getLabel.call(this, labelEl); - } - } else { - labelEl = _createlabelEl.call(this); - } - - a.appendChild(labelEl); - - return el; - }; - - var _getlabelEl = function() { - return this.getElementsByTagName(this.LABEL_TAGNAME)[0]; - }; - - var _createlabelEl = function() { - var el = document.createElement(this.LABEL_TAGNAME); - return el; - }; - - var _setLabel = function(label) { - var el = this.get('labelEl'); - el.innerHTML = label; - }; - - var _getLabel = function() { - var label, - el = this.get('labelEl'); - - if (!el) { - return undefined; - } - - return el.innerHTML; - }; - - var _dataConnect = function() { - if (!YAHOO.util.Connect) { - return false; - } - - Dom.addClass(this.get('contentEl').parentNode, this.LOADING_CLASSNAME); - - this.dataConnection = YAHOO.util.Connect.asyncRequest( - this.get('loadMethod'), - this.get('dataSrc'), - { - success: function(o) { - this.loadHandler.success.call(this, o); - this.set('dataLoaded', true); - this.dataConnection = null; - Dom.removeClass(this.get('contentEl').parentNode, - this.LOADING_CLASSNAME); - }, - failure: function(o) { - this.loadHandler.failure.call(this, o); - this.dataConnection = null; - Dom.removeClass(this.get('contentEl').parentNode, - this.LOADING_CLASSNAME); - }, - scope: this, - timeout: this.get('dataTimeout') - } - ); - }; - - YAHOO.widget.Tab = Tab; - - /** - * Fires before the active state is changed. - *

    See: Element.addListener

    - *

    If handler returns false, the change will be cancelled, and the value will not - * be set.

    - *

    Event fields:
    - * <String> type beforeActiveChange
    - * <Boolean> - * prevValue the current value
    - * <Boolean> - * newValue the new value

    - *

    Usage:
    - * var handler = function(e) {var previous = e.prevValue};
    - * myTabs.addListener('beforeActiveChange', handler);

    - * @event beforeActiveChange - */ - - /** - * Fires after the active state is changed. - *

    See: Element.addListener

    - *

    Event fields:
    - * <String> type activeChange
    - * <Boolean> - * prevValue the previous value
    - * <Boolean> - * newValue the updated value

    - *

    Usage:
    - * var handler = function(e) {var previous = e.prevValue};
    - * myTabs.addListener('activeChange', handler);

    - * @event activeChange - */ - - /** - * Fires before the tab label is changed. - *

    See: Element.addListener

    - *

    If handler returns false, the change will be cancelled, and the value will not - * be set.

    - *

    Event fields:
    - * <String> type beforeLabelChange
    - * <String> - * prevValue the current value
    - * <String> - * newValue the new value

    - *

    Usage:
    - * var handler = function(e) {var previous = e.prevValue};
    - * myTabs.addListener('beforeLabelChange', handler);

    - * @event beforeLabelChange - */ - - /** - * Fires after the tab label is changed. - *

    See: Element.addListener

    - *

    Event fields:
    - * <String> type labelChange
    - * <String> - * prevValue the previous value
    - * <String> - * newValue the updated value

    - *

    Usage:
    - * var handler = function(e) {var previous = e.prevValue};
    - * myTabs.addListener('labelChange', handler);

    - * @event labelChange - */ - - /** - * Fires before the tab content is changed. - *

    See: Element.addListener

    - *

    If handler returns false, the change will be cancelled, and the value will not - * be set.

    - *

    Event fields:
    - * <String> type beforeContentChange
    - * <String> - * prevValue the current value
    - * <String> - * newValue the new value

    - *

    Usage:
    - * var handler = function(e) {var previous = e.prevValue};
    - * myTabs.addListener('beforeContentChange', handler);

    - * @event beforeContentChange - */ - - /** - * Fires after the tab content is changed. - *

    See: Element.addListener

    - *

    Event fields:
    - * <String> type contentChange
    - * <String> - * prevValue the previous value
    - * <Boolean> - * newValue the updated value

    - *

    Usage:
    - * var handler = function(e) {var previous = e.prevValue};
    - * myTabs.addListener('contentChange', handler);

    - * @event contentChange - */ -})(); - -YAHOO.register("tabview", YAHOO.widget.TabView, {version: "2.2.0", build: "127"}); diff --git a/interface/ispconfig/interface/js/yui/treeview/README b/interface/ispconfig/interface/js/yui/treeview/README deleted file mode 100644 index 6b24d39ee..000000000 --- a/interface/ispconfig/interface/js/yui/treeview/README +++ /dev/null @@ -1,147 +0,0 @@ -TreeView - Release Notes - -2.2.0 - - * Node::insertAfter properly nulls the nextSibling attribute when the - inserted before the firstChild. - - * MenuNodes inserted at the root level will no longer lose the menu behavior. - - * TextNode::setUpLabel sets the data.label property as well as the label property. - - * TaskNode example: made the logger optional, and moved the creation of the logger - instance to the proper location. - - * TaskNodes added to a node that is in a fully selected state will update the - parent to a partially selected state. - - * TaskNode example fixed to propagate the labelClick event - - -0.12.2 - - * removeChildren will now work properly on the root node. - -0.12.1 - - * Added custom events for expandComplete and collapseComplete. These events are - needed in situations where the implementer needs to resize or reposition - something based on the new offset. - - * Added a "nowrap" property to Node, and set the default to false. Specifies - whether or not the content area of the node should be allowed to wrap - naturally. - - * Added additional HTML elements to preserve the tree presentation when constrained - by a parent element. - -0.12.0 - - * TreeView now augments EventProvider, and has custom events for expand, - collapse, animStart, animComplete, and labelClick. Existing implementations - using abstract methods for these events (if they exist) will still work. - New events can be plugged into the tree by the Node implementation. For - example, TaskNode adds a checkClick event. EventProvider makes it safe - to do this because implementing code can call subscribe() prior to the - event creation. - - * YAHOO.util.Event is now a requirement for the widget - - * TreeView::removeChildren no longer expands and collapses the node. - - * Documented the moveComplete property - - * createElement("DIV") changed to createElement("div") - -0.11.4 - - * Fixed a javascript error on the HTML node example page. - -0.11.3 - - * popNode now clears the tree, previousSibling, nextSibling, and parent - properties of the node that is being removed from the tree. - - * Fixed the paths to the images in the tree.css file that is included in - build/assets. - -0.11.0 - - * Added TreeView -> popNode, which differs from removeNode in that the - node's children are preserved so the entire branch can be re-inserted - into another part of the tree, or another tree. - - * Added TreeView -> getNodesByProperty, which differs from - getNodeByProperty by returning an array of all nodes that have the - specified property rather than just the first one. - - * Added Node -> insertBefore, insertAfter, and appendTo. These method - can be used to reorganize the tree. - - * removeChildren properly resets the node icon when executed against a - collpased node. - - * Moved depth assignment from the constructor to appendChild so that the - value is set properly if the node is moved within the tree. - - * Fixed broken loop in removeChildren. - - * RootNode -> loadComplete calls tree.draw for hot-wiring the dynamic load - feature for the top level nodes. - - * The treeview constructor will accept an element instead of an id. - -0.10.0 - - * If the child collection changes prior to a refresh(), the icon is now - changed appropriately. - - * Added TreeView removeChildren(node). This will recursively purge the node's - children, and reset its dynamic load state. - - * previousSibling and nextSibling are now adjusted correctly when a - node is deleted. - - * expand()/collapse() now will not expand/collapse the node if false is - returned from the onExpand/onCollapse event handlers. - - * The onExpand and onCollapse events now fire before the node is expanded - or collapsed so that the implementer can modify the node's child collection - prior to display. - - * The childrenRendered property previous was used to indicate both that - a dynamically loaded node has received its data, and also to indicate - that the children html has been created. This has been split into - two properties. dynamicLoadComplete and childrenRendered. - - * Implemented the renderHidden flag. If set to true, the html for the entire - tree will be created when tree.draw() is called, not just the html for the - visible nodes. - - * Added an onLabelClick listener to TextNode - - * TreeView.removeNode no longer automatically refreshes the tree. It has an - optional parameter to perform the refresh. - - * removeNode can now be executed on nodes that have not been rendered. - - * You can now delete top-level nodes. - - * Added onCheckClick listener to the TaskNode example - - * Added Node.iconMode, which is a property that configures the way - dynamically loaded nodes are displayed when they are expanded and contain - no children. - - * TreeView/Node.setDynamicLoad now accepts an optional second parameter to - set the iconMode property. - - * Fixed an issue in the TaskNode.js example that prevented setting the checked - state of a node through the constructor. - - * Fixed an issue in HTMLNode that caused rendering issues when hasIcon was - set to true. - - * Added TreeView.removeNode - - * Added Node.refresh diff --git a/interface/ispconfig/interface/js/yui/treeview/assets/lm.gif b/interface/ispconfig/interface/js/yui/treeview/assets/lm.gif deleted file mode 100644 index e7d0a3ce92eb825a95ca188133567cd4f8f31499..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94 zcmZ?wbhEHb6krfzn8?8J|NsAnh6V;OL-8jIs|W)#gAS0(0Fq~5(x216Qtb79sX3ZA us+DiZoVZmeFVu3oV#=XiRnDKMs-2p#PO1G%cj6U(9b}?;FOZ diff --git a/interface/ispconfig/interface/js/yui/treeview/assets/ln.gif b/interface/ispconfig/interface/js/yui/treeview/assets/ln.gif deleted file mode 100644 index b7b3e55cd044af047e571b8e46d99dd4b801ee60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmZ?wbhEHb6krfz*v!Dt(9rPz|9=MJ08pjkPZmZ727U&`e=?ytsfj5H?w)Q6!MTY= zCBcbhsYME5Ky0LEz@P&%5oCu0i}Z(+o~!p-ygs}8e}YEQf$*yI>683lZcElVAIHLA F4FFl;B{Tp4 diff --git a/interface/ispconfig/interface/js/yui/treeview/assets/loading.gif b/interface/ispconfig/interface/js/yui/treeview/assets/loading.gif deleted file mode 100644 index 0bbf3bc0c0e5e635553e8d1bf9ceddefbc402396..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2673 zcmchY_gj;P7RTSb83YJ1>=8y5ONL=ZcEgk+C?FydumNNz8c=c6`n&|fmMu_HHG%^w zNLVjHyfy)hAgHK_Kxkz+0Ktm5M|X*?y?g!o_3yv`{_^F^wY9YuFJ3GxEUd1s-nnz<)vH(c?%i8n zUVirM+2rIT007UQKY#e};oRKZty{MqJa}MhYina;bNBAu-+udTYHDhBcJ|n@WA*j* z-+lL;iHS*OX6D|#dm|zu!o$ON?b=mbT)bh!26uP&kdP1u2Zx!N8486$B9X?&$DclZ zdgI28>FMdk#l`#g@Bj4EPc=0)2M!!4EG!%z9?s6rzI5r**|TSdhK8)HtXf)HHgDc+ zZEek9Fk)k4xm@nHZQC3j9o^jACMG6~jg9m3^EYnX2*Yq^XJ>6~?X_#y4jnqQbLUQp zM6z$+zMp^o*}}p?p-?n8H=jOzx~Zv&N~Km+RkgLX9X@>c=FOXxm6dsUd1NvZ zX=yul?BMZua=F~p)O7py?EwJ+w{PD*dGh2hzx?v((WCP6au$mb!vmnqSpF6-9Ona(JQT#e>!KODwxYzG5#S|?M#v6eD#mgO^`=~9EL;yL&>*dd5*+XG=_`^3=CG25PbLa+LJ%N(PW_s z=_-TaM{SB!w(n7k+dMDN2G6VPqUA$u7F4m@ABAZ1D`*UMfe}E6csJU}J1Trmp#~7hZ5QSGpNvd1Uz$!Rf3q28pgSj9o zx?zwoWa8GYK@TOz^)mp#V2_VR5WfJ0W9BSSbn+cKb z7B9l9)K#s!?PSt;g%c8u;y7rd?hkP%>vq5BY=N>c=98V=+T&RSPgSu|E(FAK>B?vNN1 zPszwcbxJ?Oh|1pGd!9?gxzSWOR8o=x5!rGh+6r3hBL-14aTaAQxvJ|Y-S_m4niV2S zK@?}-9Dkhg<+w{Ny!vjyp-QmjyGmIW1DFB{k>P2=8cm~9M^_P#8?JFDumGEPaqJvf zZ{f;B#CG;H7q8a_hQ$pR6%%6So8vKM+W+cNPE_TI46^dn9q@qBr@1bUgxcPGB*b-i z3Hx_0(Esy5KKx^Y0yfgB6~}t>@!ctk>J|!vgVRhE2CPQ;AOKY2y%5nM@YF^ZMS~q}%L-n>Lpor#4w48UHYViOt={{43LMRvkIp+rkbs*s; z14}4q0y6`s8DL?uo-~*R@5tnFsC1DR#BGxT8fA20u_o?`0iDNI6lf;^$@AkR1dPTz z>XF1ZAqNjU95c@Vn59Wo;Z6b(YG+L$xy3(?j2I*vQ>PmzMEdh`yw3=)E}JYMDG|*x mDkGVJ;D)fXhxDI?kcM(ish)oPv+$)O9m7&lFF%`-bKA@>z>*#XDKFr20=RDO%adz+epk!mc6H diff --git a/interface/ispconfig/interface/js/yui/treeview/assets/lph.gif b/interface/ispconfig/interface/js/yui/treeview/assets/lph.gif deleted file mode 100644 index e3478d8e37dadeba8c9d68c84ad29c3b2843a69b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 111 zcmZ?wbhEHb6krfzSj586(9qzWyyp6yrwj}X|Ns97k`SQylZBCifrUW_#09BkU^emC zb!Xj!lRuUA>b}?;FOZcNk%w1VGsZy1Cav&|Ns90004l1fdBvhA^8LW00093EC2ui01yBm0{{a5 zoR6s{>%SVDN!WWM*c`~(aUUXt+jx}0x_U$Nl_tuVt|Eu@i(%By01AUc;I0@!{*Fpg zbHaSSq>t#++QcfgNN&+P1PjGRs)M{VC)E{p+ns{PY55GCCfKT zdutnudlj5Dyj9$F{FNNGJl0(HoBNy=EnH1}ZJdp~t=!H0?Hmr>3p`F;E`5$S&AzVp z{?`tlZe5Rkubt1m@7)jnPh3E9yb6{Yh|XXugzgy9Q&`KPym)~q60+C`qA!W^6**q? znDL-Sb09BaG+A=fNOdVgwOqB*UQB#5_0{Be(_c=2I|cS6C^G26p9zIVB-#+^L!%p& zPJB7bX-BCasfHZNl%!RZTUBOd+0|uOm|tamHq3)NWI} zN%=0-tJUw*u~7w2HCz?()w_VfD(3pwYh$yM(N< zs&K4`v9z;VwY#}pyCWrW*|_c0@z(R$uJ^F-()E4(hW?AL_0z|Vpf`iy5Q;dvYwa^J{*Cj$a(RI*^pgD(@tTsX5~&4)K5=A5{*V$X{pgJ%4> zk!VMwABPGRiIn70lTA@ZRhg3IQW>=eEafa17mSEp06Pc% BB!B<_ diff --git a/interface/ispconfig/interface/js/yui/treeview/assets/tn.gif b/interface/ispconfig/interface/js/yui/treeview/assets/tn.gif deleted file mode 100644 index 4a280397de0ae7564f625d9356204a1cb6a1f399..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 504 zcmVi2fsz(rj1Z(I%uk_Z1$dUHLJCFC+@t*{rh7DQ$tg6bPOd)Ib9R>WJIOY zC1?7iG(~*cW?M%k^nH`*-V=i`xtK z>l-Y#TUe}i?3nDfEc#3uZ90uwt$NLx?Ya%yEz9_=8%|Cu4t!3WF5E0v&bw~>jvTK% z&s^_(54|tlPyNqYKx_lG736l%TS9Q=7LIEO5uQVI6V+8@m(N{9de0Z-ZN%5n-ba2T z{gniGQeaAgD-E_p_)=j^h7xB!tcjDOO^Q1$_QV)c-%pP@K@JsJlw?wqOHnpe`IKc; zms4R@m3ft>&a5}LdNsJN672wB*X9FPF}IdUNW|t3S66 u{d%%SVDDcF0XR#Je|A>GGlz1le|i8=~as(Px~3Y#jsDi#ZROFE0Y zt6NK!%i1gaYZh!fj9iR%44mw|tk!J&OdZWO&0MX0?UpUQ4c-m+jU8@2E_d#|PTsDb zepk*OpEvJbzjqJ+%A4QU&sRWV1CsGaU6>nC( zTlseN`xS6l!D9)RHGCFv+PjSNHs1TVZ{)v|16Lk=xp3ygn-h0l>^L-J(UM71HfVqJ9X~WyIc2u{X2H>*|v-0Hm(~vZ{@z319vVQI`QMwlUHAU dy?OTM+oN}%ZaqA9@!H9AH}4%ic+3R=06S)30ObGx diff --git a/interface/ispconfig/interface/js/yui/treeview/assets/tph.gif b/interface/ispconfig/interface/js/yui/treeview/assets/tph.gif deleted file mode 100644 index e4d7d991e44f0ebbe5f05ec261eb831d96332a4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 568 zcmV-80>}MFNk%w1VGsZy1EK@~*WBexW2^uG0Dypi|Ns900000000000A^8LW000C4 zEC2ui01yBm0{{d6NV?pvH@CVug*84wib4m7AKKl%9&5pQE9md6;~nrKG2-t)^qB zU9PdTVX}#@thKPWwqLl8yS}}^zh=j1$!g1N&2GDcSq!^Z7?+4Av#^Y-0ZW&C?{%!M{?3ielPvS1UOS*O@cQK=0vztVNZrX9j4qE zv|`bVM^CC8$};Ikrz4@36gjo!C6iB?!qh60D^0I9!QvFFlPpiOKG6bID|D$_qHK-E zMLJh0+_z2ZX2rXeZ&$xx0f!YlmT+0aXA!4Wyq0m>yO8rbmOGhlWxJ9i_tpHDb70Sd zK^GQ%m~>*(i%~aL{W!Dh&96Jh{yaN$?a{YO=RUnVb??=`Tf-hMn>cObwvppjuA4b; z=f0r>moB`x_2bu*XJ5X(dH3hvqlce9zB=~v+R<}Y@0~q(_u}D`mv273{q^_T=YMZI G0RTJi9wSr$ diff --git a/interface/ispconfig/interface/js/yui/treeview/assets/tree.css b/interface/ispconfig/interface/js/yui/treeview/assets/tree.css deleted file mode 100644 index afd444d78..000000000 --- a/interface/ispconfig/interface/js/yui/treeview/assets/tree.css +++ /dev/null @@ -1,102 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ -/* first or middle sibling, no children */ -.ygtvtn { - width:16px; height:22px; - background: url(tn.gif) 0 0 no-repeat; -} - -/* first or middle sibling, collapsable */ -.ygtvtm { - width:16px; height:22px; - cursor:pointer ; - background: url(tm.gif) 0 0 no-repeat; -} - -/* first or middle sibling, collapsable, hover */ -.ygtvtmh { - width:16px; height:22px; - cursor:pointer ; - background: url(tmh.gif) 0 0 no-repeat; -} - -/* first or middle sibling, expandable */ -.ygtvtp { - width:16px; height:22px; - cursor:pointer ; - background: url(tp.gif) 0 0 no-repeat; -} - -/* first or middle sibling, expandable, hover */ -.ygtvtph { - width:16px; height:22px; - cursor:pointer ; - background: url(tph.gif) 0 0 no-repeat; -} - -/* last sibling, no children */ -.ygtvln { - width:16px; height:22px; - background: url(ln.gif) 0 0 no-repeat; -} - -/* Last sibling, collapsable */ -.ygtvlm { - width:16px; height:22px; - cursor:pointer ; - background: url(lm.gif) 0 0 no-repeat; -} - -/* Last sibling, collapsable, hover */ -.ygtvlmh { - width:16px; height:22px; - cursor:pointer ; - background: url(lmh.gif) 0 0 no-repeat; -} - -/* Last sibling, expandable */ -.ygtvlp { - width:16px; height:22px; - cursor:pointer ; - background: url(lp.gif) 0 0 no-repeat; -} - -/* Last sibling, expandable, hover */ -.ygtvlph { - width:16px; height:22px; cursor:pointer ; - background: url(lph.gif) 0 0 no-repeat; -} - -/* Loading icon */ -.ygtvloading { - width:16px; height:22px; - background: url(loading.gif) 0 0 no-repeat; -} - -/* the style for the empty cells that are used for rendering the depth - * of the node */ -.ygtvdepthcell { - width:16px; height:22px; - background: url(vline.gif) 0 0 no-repeat; -} - -.ygtvblankdepthcell { width:16px; height:22px; } - -/* the style of the div around each node */ -.ygtvitem { } - -/* the style of the div around each node's collection of children */ -.ygtvchildren { } -* html .ygtvchildren { height:2%; } - -/* the style of the text label in ygTextNode */ -.ygtvlabel, .ygtvlabel:link, .ygtvlabel:visited, .ygtvlabel:hover { - margin-left:2px; - text-decoration: none; -} - -.ygtvspacer { height: 10px; width: 10px; margin: 2px; } diff --git a/interface/ispconfig/interface/js/yui/treeview/assets/vline.gif b/interface/ispconfig/interface/js/yui/treeview/assets/vline.gif deleted file mode 100644 index 1fb0de8bb2911a51ff29f91fe7d231c0a5529091..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 503 zcmV^fYPpKps`<(p>p2TrD|$=1D3^=ctGbK# zdo|2eJQh57td{J!4A)HgY!_`h&36sRSk21q>J1AnD^5#pYmSSqyUot4?)whhE*wu> zZ+wqDubj`k@7xdCKWPD}4YXDeTS9H_4t8_+4PrQn<0zK1cn)Jajn3;DdZfn@UPyT# z`Hi%95?@MvB>}GV*OK5%fiV%zG+6Ut&WJlF_N@5xV$h63Hx}&(@~B9qB$GNd$rNQ& zl~Y+hby*eWRhe07ZnfDJ=U1I$d6xBg7HC?bYl*fs`W7kFxJ&6aor@Q%U8#Gi_O+Uq z>tC&b!4CFXm~3LRi_tb#`$+IcfwtO2i=-iumcis&gwQteGNf$RAoON>7%V9T{{hW3I06UMq^ke`4 diff --git a/interface/ispconfig/interface/js/yui/treeview/treeview-debug.js b/interface/ispconfig/interface/js/yui/treeview/treeview-debug.js deleted file mode 100644 index 1259a971d..000000000 --- a/interface/ispconfig/interface/js/yui/treeview/treeview-debug.js +++ /dev/null @@ -1,2287 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ -/** - * The treeview widget is a generic tree building tool. - * @module treeview - * @title TreeView Widget - * @requires yahoo, event - * @optional animation - * @namespace YAHOO.widget - */ - -/** - * Contains the tree view state data and the root node. - * - * @class TreeView - * @uses YAHOO.util.EventProvider - * @constructor - * @param {string|HTMLElement} id The id of the element, or the element - * itself that the tree will be inserted into. - */ -YAHOO.widget.TreeView = function(id) { - if (id) { this.init(id); } -}; - -YAHOO.widget.TreeView.prototype = { - - /** - * The id of tree container element - * @property id - * @type String - */ - id: null, - - /** - * The host element for this tree - * @property _el - * @private - */ - _el: null, - - /** - * Flat collection of all nodes in this tree. This is a sparse - * array, so the length property can't be relied upon for a - * node count for the tree. - * @property _nodes - * @type Node[] - * @private - */ - _nodes: null, - - /** - * We lock the tree control while waiting for the dynamic loader to return - * @property locked - * @type boolean - */ - locked: false, - - /** - * The animation to use for expanding children, if any - * @property _expandAnim - * @type string - * @private - */ - _expandAnim: null, - - /** - * The animation to use for collapsing children, if any - * @property _collapseAnim - * @type string - * @private - */ - _collapseAnim: null, - - /** - * The current number of animations that are executing - * @property _animCount - * @type int - * @private - */ - _animCount: 0, - - /** - * The maximum number of animations to run at one time. - * @property maxAnim - * @type int - */ - maxAnim: 2, - - /** - * Sets up the animation for expanding children - * @method setExpandAnim - * @param {string} type the type of animation (acceptable values defined - * in YAHOO.widget.TVAnim) - */ - setExpandAnim: function(type) { - if (YAHOO.widget.TVAnim.isValid(type)) { - this._expandAnim = type; - } - }, - - /** - * Sets up the animation for collapsing children - * @method setCollapseAnim - * @param {string} the type of animation (acceptable values defined in - * YAHOO.widget.TVAnim) - */ - setCollapseAnim: function(type) { - if (YAHOO.widget.TVAnim.isValid(type)) { - this._collapseAnim = type; - } - }, - - /** - * Perform the expand animation if configured, or just show the - * element if not configured or too many animations are in progress - * @method animateExpand - * @param el {HTMLElement} the element to animate - * @param node {YAHOO.util.Node} the node that was expanded - * @return {boolean} true if animation could be invoked, false otherwise - */ - animateExpand: function(el, node) { - this.logger.log("animating expand"); - - if (this._expandAnim && this._animCount < this.maxAnim) { - // this.locked = true; - var tree = this; - var a = YAHOO.widget.TVAnim.getAnim(this._expandAnim, el, - function() { tree.expandComplete(node); }); - if (a) { - ++this._animCount; - this.fireEvent("animStart", { - "node": node, - "type": "expand" - }); - a.animate(); - } - - return true; - } - - return false; - }, - - /** - * Perform the collapse animation if configured, or just show the - * element if not configured or too many animations are in progress - * @method animateCollapse - * @param el {HTMLElement} the element to animate - * @param node {YAHOO.util.Node} the node that was expanded - * @return {boolean} true if animation could be invoked, false otherwise - */ - animateCollapse: function(el, node) { - this.logger.log("animating collapse"); - - if (this._collapseAnim && this._animCount < this.maxAnim) { - // this.locked = true; - var tree = this; - var a = YAHOO.widget.TVAnim.getAnim(this._collapseAnim, el, - function() { tree.collapseComplete(node); }); - if (a) { - ++this._animCount; - this.fireEvent("animStart", { - "node": node, - "type": "collapse" - }); - a.animate(); - } - - return true; - } - - return false; - }, - - /** - * Function executed when the expand animation completes - * @method expandComplete - */ - expandComplete: function(node) { - this.logger.log("expand complete: " + this.id); - --this._animCount; - this.fireEvent("animComplete", { - "node": node, - "type": "expand" - }); - // this.locked = false; - }, - - /** - * Function executed when the collapse animation completes - * @method collapseComplete - */ - collapseComplete: function(node) { - this.logger.log("collapse complete: " + this.id); - --this._animCount; - this.fireEvent("animComplete", { - "node": node, - "type": "collapse" - }); - // this.locked = false; - }, - - /** - * Initializes the tree - * @method init - * @parm {string|HTMLElement} id the id of the element that will hold the tree - * @private - */ - init: function(id) { - - this.id = id; - - if ("string" !== typeof id) { - this._el = id; - this.id = this.generateId(id); - } - - /** - * When animation is enabled, this event fires when the animation - * starts - * @event animStart - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that is expanding/collapsing - * @parm {String} type the type of animation ("expand" or "collapse") - */ - this.createEvent("animStart", this); - - /** - * When animation is enabled, this event fires when the animation - * completes - * @event animComplete - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that is expanding/collapsing - * @parm {String} type the type of animation ("expand" or "collapse") - */ - this.createEvent("animComplete", this); - - /** - * Fires when a node is going to be collapsed. Return false to stop - * the collapse. - * @event collapse - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that is collapsing - */ - this.createEvent("collapse", this); - - /** - * Fires after a node is successfully collapsed. This event will not fire - * if the "collapse" event was cancelled. - * @event collapseComplete - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that was collapsed - */ - this.createEvent("collapseComplete", this); - - /** - * Fires when a node is going to be expanded. Return false to stop - * the collapse. - * @event expand - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that is expanding - */ - this.createEvent("expand", this); - - /** - * Fires after a node is successfully expanded. This event will not fire - * if the "expand" event was cancelled. - * @event expandComplete - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that was expanded - */ - this.createEvent("expandComplete", this); - - this._nodes = []; - - // store a global reference - YAHOO.widget.TreeView.trees[this.id] = this; - - // Set up the root node - this.root = new YAHOO.widget.RootNode(this); - - this.logger = new YAHOO.widget.LogWriter(this.toString()); - - this.logger.log("tree init: " + this.id); - - //YAHOO.util.Event.onContentReady(this.id, this.handleAvailable, this, true); - YAHOO.util.Event.on(this.id, "click", this.handleClick, this, true); - }, - - - //handleAvailable: function() { - //var Event = YAHOO.util.Event; - //Event.on(this.id, - //}, - - /** - * Renders the tree boilerplate and visible nodes - * @method draw - */ - draw: function() { - var html = this.root.getHtml(); - this.getEl().innerHTML = html; - this.firstDraw = false; - }, - - /** - * Returns the tree's host element - * @method getEl - * @return {HTMLElement} the host element - */ - getEl: function() { - if (! this._el) { - this._el = document.getElementById(this.id); - } - return this._el; - }, - - /** - * Nodes register themselves with the tree instance when they are created. - * @method regNode - * @param node {Node} the node to register - * @private - */ - regNode: function(node) { - this._nodes[node.index] = node; - }, - - /** - * Returns the root node of this tree - * @method getRoot - * @return {Node} the root node - */ - getRoot: function() { - return this.root; - }, - - /** - * Configures this tree to dynamically load all child data - * @method setDynamicLoad - * @param {function} fnDataLoader the function that will be called to get the data - * @param iconMode {int} configures the icon that is displayed when a dynamic - * load node is expanded the first time without children. By default, the - * "collapse" icon will be used. If set to 1, the leaf node icon will be - * displayed. - */ - setDynamicLoad: function(fnDataLoader, iconMode) { - this.root.setDynamicLoad(fnDataLoader, iconMode); - }, - - /** - * Expands all child nodes. Note: this conflicts with the "multiExpand" - * node property. If expand all is called in a tree with nodes that - * do not allow multiple siblings to be displayed, only the last sibling - * will be expanded. - * @method expandAll - */ - expandAll: function() { - if (!this.locked) { - this.root.expandAll(); - } - }, - - /** - * Collapses all expanded child nodes in the entire tree. - * @method collapseAll - */ - collapseAll: function() { - if (!this.locked) { - this.root.collapseAll(); - } - }, - - /** - * Returns a node in the tree that has the specified index (this index - * is created internally, so this function probably will only be used - * in html generated for a given node.) - * @method getNodeByIndex - * @param {int} nodeIndex the index of the node wanted - * @return {Node} the node with index=nodeIndex, null if no match - */ - getNodeByIndex: function(nodeIndex) { - var n = this._nodes[nodeIndex]; - return (n) ? n : null; - }, - - /** - * Returns a node that has a matching property and value in the data - * object that was passed into its constructor. - * @method getNodeByProperty - * @param {object} property the property to search (usually a string) - * @param {object} value the value we want to find (usuall an int or string) - * @return {Node} the matching node, null if no match - */ - getNodeByProperty: function(property, value) { - for (var i in this._nodes) { - var n = this._nodes[i]; - if (n.data && value == n.data[property]) { - return n; - } - } - - return null; - }, - - /** - * Returns a collection of nodes that have a matching property - * and value in the data object that was passed into its constructor. - * @method getNodesByProperty - * @param {object} property the property to search (usually a string) - * @param {object} value the value we want to find (usuall an int or string) - * @return {Array} the matching collection of nodes, null if no match - */ - getNodesByProperty: function(property, value) { - var values = []; - for (var i in this._nodes) { - var n = this._nodes[i]; - if (n.data && value == n.data[property]) { - values.push(n); - } - } - - return (values.length) ? values : null; - }, - - /** - * Removes the node and its children, and optionally refreshes the - * branch of the tree that was affected. - * @method removeNode - * @param {Node} The node to remove - * @param {boolean} autoRefresh automatically refreshes branch if true - * @return {boolean} False is there was a problem, true otherwise. - */ - removeNode: function(node, autoRefresh) { - - // Don't delete the root node - if (node.isRoot()) { - return false; - } - - // Get the branch that we may need to refresh - var p = node.parent; - if (p.parent) { - p = p.parent; - } - - // Delete the node and its children - this._deleteNode(node); - - // Refresh the parent of the parent - if (autoRefresh && p && p.childrenRendered) { - p.refresh(); - } - - return true; - }, - - /** - * Deletes this nodes child collection, recursively. Also collapses - * the node, and resets the dynamic load flag. The primary use for - * this method is to purge a node and allow it to fetch its data - * dynamically again. - * @method removeChildren - * @param {Node} node the node to purge - */ - removeChildren: function(node) { - this.logger.log("Removing children for " + node); - while (node.children.length) { - this._deleteNode(node.children[0]); - } - - node.childrenRendered = false; - node.dynamicLoadComplete = false; - if (node.expanded) { - node.collapse(); - } else { - node.updateIcon(); - } - }, - - /** - * Deletes the node and recurses children - * @method _deleteNode - * @private - */ - _deleteNode: function(node) { - // Remove all the child nodes first - this.removeChildren(node); - - // Remove the node from the tree - this.popNode(node); - }, - - /** - * Removes the node from the tree, preserving the child collection - * to make it possible to insert the branch into another part of the - * tree, or another tree. - * @method popNode - * @param {Node} the node to remove - */ - popNode: function(node) { - var p = node.parent; - - // Update the parent's collection of children - var a = []; - - for (var i=0, len=p.children.length;i '; - } - - var f = document.createElement("div"); - var s = f.style; - s.position = "absolute"; - s.top = "-1000px"; - s.left = "-1000px"; - f.innerHTML = sb.join(""); - - document.body.appendChild(f); - - YAHOO.widget.TreeView.removeHandler(window, - "load", YAHOO.widget.TreeView.preload); - -}; - -YAHOO.widget.TreeView.addHandler(window, - "load", YAHOO.widget.TreeView.preload); - -/** - * The base class for all tree nodes. The node's presentation and behavior in - * response to mouse events is handled in Node subclasses. - * @namespace YAHOO.widget - * @class Node - * @uses YAHOO.util.EventProvider - * @param oData {object} a string or object containing the data that will - * be used to render this node - * @param oParent {Node} this node's parent node - * @param expanded {boolean} the initial expanded/collapsed state - * @constructor - */ -YAHOO.widget.Node = function(oData, oParent, expanded) { - if (oData) { this.init(oData, oParent, expanded); } -}; - -YAHOO.widget.Node.prototype = { - - /** - * The index for this instance obtained from global counter in YAHOO.widget.TreeView. - * @property index - * @type int - */ - index: 0, - - /** - * This node's child node collection. - * @property children - * @type Node[] - */ - children: null, - - /** - * Tree instance this node is part of - * @property tree - * @type TreeView - */ - tree: null, - - /** - * The data linked to this node. This can be any object or primitive - * value, and the data can be used in getNodeHtml(). - * @property data - * @type object - */ - data: null, - - /** - * Parent node - * @property parent - * @type Node - */ - parent: null, - - /** - * The depth of this node. We start at -1 for the root node. - * @property depth - * @type int - */ - depth: -1, - - /** - * The href for the node's label. If one is not specified, the href will - * be set so that it toggles the node. - * @property href - * @type string - */ - href: null, - - /** - * The label href target, defaults to current window - * @property target - * @type string - */ - target: "_self", - - /** - * The node's expanded/collapsed state - * @property expanded - * @type boolean - */ - expanded: false, - - /** - * Can multiple children be expanded at once? - * @property multiExpand - * @type boolean - */ - multiExpand: true, - - /** - * Should we render children for a collapsed node? It is possible that the - * implementer will want to render the hidden data... @todo verify that we - * need this, and implement it if we do. - * @property renderHidden - * @type boolean - */ - renderHidden: false, - - /** - * This flag is set to true when the html is generated for this node's - * children, and set to false when new children are added. - * @property childrenRendered - * @type boolean - */ - childrenRendered: false, - - /** - * Dynamically loaded nodes only fetch the data the first time they are - * expanded. This flag is set to true once the data has been fetched. - * @property dynamicLoadComplete - * @type boolean - */ - dynamicLoadComplete: false, - - /** - * This node's previous sibling - * @property previousSibling - * @type Node - */ - previousSibling: null, - - /** - * This node's next sibling - * @property nextSibling - * @type Node - */ - nextSibling: null, - - /** - * We can set the node up to call an external method to get the child - * data dynamically. - * @property _dynLoad - * @type boolean - * @private - */ - _dynLoad: false, - - /** - * Function to execute when we need to get this node's child data. - * @property dataLoader - * @type function - */ - dataLoader: null, - - /** - * This is true for dynamically loading nodes while waiting for the - * callback to return. - * @property isLoading - * @type boolean - */ - isLoading: false, - - /** - * The toggle/branch icon will not show if this is set to false. This - * could be useful if the implementer wants to have the child contain - * extra info about the parent, rather than an actual node. - * @property hasIcon - * @type boolean - */ - hasIcon: true, - - /** - * Used to configure what happens when a dynamic load node is expanded - * and we discover that it does not have children. By default, it is - * treated as if it still could have children (plus/minus icon). Set - * iconMode to have it display like a leaf node instead. - * @property iconMode - * @type int - */ - iconMode: 0, - - /** - * Specifies whether or not the content area of the node should be allowed - * to wrap. - * @property nowrap - * @type boolean - * @default true - */ - nowrap: false, - - /** - * The node type - * @property _type - * @private - */ - _type: "Node", - - /* - spacerPath: "http://us.i1.yimg.com/us.yimg.com/i/space.gif", - expandedText: "Expanded", - collapsedText: "Collapsed", - loadingText: "Loading", - */ - - /** - * Initializes this node, gets some of the properties from the parent - * @method init - * @param oData {object} a string or object containing the data that will - * be used to render this node - * @param oParent {Node} this node's parent node - * @param expanded {boolean} the initial expanded/collapsed state - */ - init: function(oData, oParent, expanded) { - - this.data = oData; - this.children = []; - this.index = YAHOO.widget.TreeView.nodeCount; - ++YAHOO.widget.TreeView.nodeCount; - this.expanded = expanded; - this.logger = new YAHOO.widget.LogWriter(this.toString()); - - /** - * The parentChange event is fired when a parent element is applied - * to the node. This is useful if you need to apply tree-level - * properties to a tree that need to happen if a node is moved from - * one tree to another. - * - * @event parentChange - * @type CustomEvent - */ - this.createEvent("parentChange", this); - - // oParent should never be null except when we create the root node. - if (oParent) { - oParent.appendChild(this); - } - }, - - /** - * Certain properties for the node cannot be set until the parent - * is known. This is called after the node is inserted into a tree. - * the parent is also applied to this node's children in order to - * make it possible to move a branch from one tree to another. - * @method applyParent - * @param {Node} parentNode this node's parent node - * @return {boolean} true if the application was successful - */ - applyParent: function(parentNode) { - if (!parentNode) { - return false; - } - - this.tree = parentNode.tree; - this.parent = parentNode; - this.depth = parentNode.depth + 1; - - if (!this.href) { - this.href = "javascript:" + this.getToggleLink(); - } - - // @todo why was this put here. This causes new nodes added at the - // root level to lose the menu behavior. - // if (! this.multiExpand) { - // this.multiExpand = parentNode.multiExpand; - // } - - this.tree.regNode(this); - parentNode.childrenRendered = false; - - // cascade update existing children - for (var i=0, len=this.children.length;i 0 || - (checkForLazyLoad && this.isDynamic() && !this.dynamicLoadComplete) ); - }, - - /** - * Expands if node is collapsed, collapses otherwise. - * @method toggle - */ - toggle: function() { - if (!this.tree.locked && ( this.hasChildren(true) || this.isDynamic()) ) { - if (this.expanded) { this.collapse(); } else { this.expand(); } - } - }, - - /** - * Returns the markup for this node and its children. - * @method getHtml - * @return {string} the markup for this node and its expanded children. - */ - getHtml: function() { - - this.childrenRendered = false; - - var sb = []; - sb[sb.length] = '
    '; - sb[sb.length] = this.getNodeHtml(); - sb[sb.length] = this.getChildrenHtml(); - sb[sb.length] = '
    '; - return sb.join(""); - }, - - /** - * Called when first rendering the tree. We always build the div that will - * contain this nodes children, but we don't render the children themselves - * unless this node is expanded. - * @method getChildrenHtml - * @return {string} the children container div html and any expanded children - * @private - */ - getChildrenHtml: function() { - - var sb = []; - sb[sb.length] = '
    = this.depth || depth < 0) { - this.logger.log("illegal getAncestor depth: " + depth); - return null; - } - - var p = this.parent; - - while (p.depth > depth) { - p = p.parent; - } - - return p; - }, - - /** - * Returns the css class for the spacer at the specified depth for - * this node. If this node's ancestor at the specified depth - * has a next sibling the presentation is different than if it - * does not have a next sibling - * @method getDepthStyle - * @param {int} depth the depth of the ancestor. - * @return {string} the css class for the spacer - */ - getDepthStyle: function(depth) { - return (this.getAncestor(depth).nextSibling) ? - "ygtvdepthcell" : "ygtvblankdepthcell"; - }, - - /** - * Get the markup for the node. This is designed to be overrided so that we can - * support different types of nodes. - * @method getNodeHtml - * @return {string} The HTML that will render this node. - */ - getNodeHtml: function() { - this.logger.log("Generating html"); - return ""; - }, - - /** - * Regenerates the html for this node and its children. To be used when the - * node is expanded and new children have been added. - * @method refresh - */ - refresh: function() { - // this.loadComplete(); - this.getChildrenEl().innerHTML = this.completeRender(); - - if (this.hasIcon) { - var el = this.getToggleEl(); - if (el) { - el.className = this.getStyle(); - } - } - }, - - /** - * Node toString - * @method toString - * @return {string} string representation of the node - */ - toString: function() { - return "Node (" + this.index + ")"; - } - -}; - -YAHOO.augment(YAHOO.widget.Node, YAHOO.util.EventProvider); - -/** - * The default node presentation. The first parameter should be - * either a string that will be used as the node's label, or an object - * that has a string propery called label. By default, the clicking the - * label will toggle the expanded/collapsed state of the node. By - * changing the href property of the instance, this behavior can be - * changed so that the label will go to the specified href. - * @namespace YAHOO.widget - * @class TextNode - * @extends YAHOO.widget.Node - * @constructor - * @param oData {object} a string or object containing the data that will - * be used to render this node - * @param oParent {YAHOO.widget.Node} this node's parent node - * @param expanded {boolean} the initial expanded/collapsed state - */ -YAHOO.widget.TextNode = function(oData, oParent, expanded) { - - if (oData) { - this.init(oData, oParent, expanded); - this.setUpLabel(oData); - } - - this.logger = new YAHOO.widget.LogWriter(this.toString()); -}; - -YAHOO.extend(YAHOO.widget.TextNode, YAHOO.widget.Node, { - - /** - * The CSS class for the label href. Defaults to ygtvlabel, but can be - * overridden to provide a custom presentation for a specific node. - * @property labelStyle - * @type string - */ - labelStyle: "ygtvlabel", - - /** - * The derived element id of the label for this node - * @property labelElId - * @type string - */ - labelElId: null, - - /** - * The text for the label. It is assumed that the oData parameter will - * either be a string that will be used as the label, or an object that - * has a property called "label" that we will use. - * @property label - * @type string - */ - label: null, - - textNodeParentChange: function() { - - /** - * Custom event that is fired when the text node label is clicked. The - * custom event is defined on the tree instance, so there is a single - * event that handles all nodes in the tree. The node clicked is - * provided as an argument - * - * @event labelClick - * @for YAHOO.widget.TreeView - * @param {YAHOO.widget.Node} node the node clicked - */ - if (this.tree && !this.tree.hasEvent("labelClick")) { - this.tree.createEvent("labelClick", this.tree); - } - - }, - - /** - * Sets up the node label - * @method setUpLabel - * @param oData string containing the label, or an object with a label property - */ - setUpLabel: function(oData) { - - // set up the custom event on the tree - this.textNodeParentChange(); - this.subscribe("parentChange", this.textNodeParentChange); - - if (typeof oData == "string") { - oData = { label: oData }; - } - this.label = oData.label; - this.data.label = oData.label; - - // update the link - if (oData.href) { - this.href = oData.href; - } - - // set the target - if (oData.target) { - this.target = oData.target; - } - - if (oData.style) { - this.labelStyle = oData.style; - } - - this.labelElId = "ygtvlabelel" + this.index; - }, - - /** - * Returns the label element - * @for YAHOO.widget.TextNode - * @method getLabelEl - * @return {object} the element - */ - getLabelEl: function() { - return document.getElementById(this.labelElId); - }, - - // overrides YAHOO.widget.Node - getNodeHtml: function() { - this.logger.log("Generating html"); - var sb = []; - - sb[sb.length] = ''; - sb[sb.length] = ''; - - for (var i=0;i '; - //sb[sb.length] = ''; - sb[sb.length] = ''; - } - - var getNode = 'YAHOO.widget.TreeView.getNode(\'' + - this.tree.id + '\',' + this.index + ')'; - - sb[sb.length] = ''; - - sb[sb.length] = '
    '; - - /* - sb[sb.length] = ' '; - sb[sb.length] = '
    '; - } - - if (this.hasIcon) { - sb[sb.length] = ' ';} -var f=document.createElement("div");var s=f.style;s.position="absolute";s.top="-1000px";s.left="-1000px";f.innerHTML=sb.join("");document.body.appendChild(f);YAHOO.widget.TreeView.removeHandler(window,"load",YAHOO.widget.TreeView.preload);};YAHOO.widget.TreeView.addHandler(window,"load",YAHOO.widget.TreeView.preload);YAHOO.widget.Node=function(oData,oParent,expanded){if(oData){this.init(oData,oParent,expanded);}};YAHOO.widget.Node.prototype={index:0,children:null,tree:null,data:null,parent:null,depth:-1,href:null,target:"_self",expanded:false,multiExpand:true,renderHidden:false,childrenRendered:false,dynamicLoadComplete:false,previousSibling:null,nextSibling:null,_dynLoad:false,dataLoader:null,isLoading:false,hasIcon:true,iconMode:0,nowrap:false,_type:"Node",init:function(oData,oParent,expanded){this.data=oData;this.children=[];this.index=YAHOO.widget.TreeView.nodeCount;++YAHOO.widget.TreeView.nodeCount;this.expanded=expanded;this.createEvent("parentChange",this);if(oParent){oParent.appendChild(this);}},applyParent:function(parentNode){if(!parentNode){return false;} -this.tree=parentNode.tree;this.parent=parentNode;this.depth=parentNode.depth+1;if(!this.href){this.href="javascript:"+this.getToggleLink();} -this.tree.regNode(this);parentNode.childrenRendered=false;for(var i=0,len=this.children.length;i0||(checkForLazyLoad&&this.isDynamic()&&!this.dynamicLoadComplete));},toggle:function(){if(!this.tree.locked&&(this.hasChildren(true)||this.isDynamic())){if(this.expanded){this.collapse();}else{this.expand();}}},getHtml:function(){this.childrenRendered=false;var sb=[];sb[sb.length]='
    ';sb[sb.length]=this.getNodeHtml();sb[sb.length]=this.getChildrenHtml();sb[sb.length]='
    ';return sb.join("");},getChildrenHtml:function(){var sb=[];sb[sb.length]='
    =this.depth||depth<0){return null;} -var p=this.parent;while(p.depth>depth){p=p.parent;} -return p;},getDepthStyle:function(depth){return(this.getAncestor(depth).nextSibling)?"ygtvdepthcell":"ygtvblankdepthcell";},getNodeHtml:function(){return"";},refresh:function(){this.getChildrenEl().innerHTML=this.completeRender();if(this.hasIcon){var el=this.getToggleEl();if(el){el.className=this.getStyle();}}},toString:function(){return"Node ("+this.index+")";}};YAHOO.augment(YAHOO.widget.Node,YAHOO.util.EventProvider);YAHOO.widget.TextNode=function(oData,oParent,expanded){if(oData){this.init(oData,oParent,expanded);this.setUpLabel(oData);}};YAHOO.extend(YAHOO.widget.TextNode,YAHOO.widget.Node,{labelStyle:"ygtvlabel",labelElId:null,label:null,textNodeParentChange:function(){if(this.tree&&!this.tree.hasEvent("labelClick")){this.tree.createEvent("labelClick",this.tree);}},setUpLabel:function(oData){this.textNodeParentChange();this.subscribe("parentChange",this.textNodeParentChange);if(typeof oData=="string"){oData={label:oData};} -this.label=oData.label;this.data.label=oData.label;if(oData.href){this.href=oData.href;} -if(oData.target){this.target=oData.target;} -if(oData.style){this.labelStyle=oData.style;} -this.labelElId="ygtvlabelel"+this.index;},getLabelEl:function(){return document.getElementById(this.labelElId);},getNodeHtml:function(){var sb=[];sb[sb.length]='
    ';sb[sb.length]='';for(var i=0;i
    ';} -var getNode='YAHOO.widget.TreeView.getNode(\''+ -this.tree.id+'\','+this.index+')';sb[sb.length]='';sb[sb.length]='
    ';sb[sb.length]='
    ';sb[sb.length]='';sb[sb.length]='
    ';sb[sb.length]='';sb[sb.length]='
    ';sb[sb.length]='
    ';return sb.join("");},onLabelClick:function(me){return me.tree.fireEvent("labelClick",me);},toString:function(){return"TextNode ("+this.index+") "+this.label;}});YAHOO.widget.RootNode=function(oTree){this.init(null,null,true);this.tree=oTree;};YAHOO.extend(YAHOO.widget.RootNode,YAHOO.widget.Node,{getNodeHtml:function(){return"";},toString:function(){return"RootNode";},loadComplete:function(){this.tree.draw();},collapse:function(){},expand:function(){}});YAHOO.widget.HTMLNode=function(oData,oParent,expanded,hasIcon){if(oData){this.init(oData,oParent,expanded);this.initContent(oData,hasIcon);}};YAHOO.extend(YAHOO.widget.HTMLNode,YAHOO.widget.Node,{contentStyle:"ygtvhtml",contentElId:null,content:null,initContent:function(oData,hasIcon){if(typeof oData=="string"){oData={html:oData};} -this.html=oData.html;this.contentElId="ygtvcontentel"+this.index;this.hasIcon=hasIcon;},getContentEl:function(){return document.getElementById(this.contentElId);},getNodeHtml:function(){var sb=[];sb[sb.length]='';sb[sb.length]='';for(var i=0;i
    ';} -if(this.hasIcon){sb[sb.length]='';sb[sb.length]='
    ';sb[sb.length]='
    ';return sb.join("");},toString:function(){return"HTMLNode ("+this.index+")";}});YAHOO.widget.MenuNode=function(oData,oParent,expanded){if(oData){this.init(oData,oParent,expanded);this.setUpLabel(oData);} -this.multiExpand=false;};YAHOO.extend(YAHOO.widget.MenuNode,YAHOO.widget.TextNode,{toString:function(){return"MenuNode ("+this.index+") "+this.label;}});YAHOO.widget.TVAnim=function(){return{FADE_IN:"TVFadeIn",FADE_OUT:"TVFadeOut",getAnim:function(type,el,callback){if(YAHOO.widget[type]){return new YAHOO.widget[type](el,callback);}else{return null;}},isValid:function(type){return(YAHOO.widget[type]);}};}();YAHOO.widget.TVFadeIn=function(el,callback){this.el=el;this.callback=callback;};YAHOO.widget.TVFadeIn.prototype={animate:function(){var tvanim=this;var s=this.el.style;s.opacity=0.1;s.filter="alpha(opacity=10)";s.display="";var dur=0.4;var a=new YAHOO.util.Anim(this.el,{opacity:{from:0.1,to:1,unit:""}},dur);a.onComplete.subscribe(function(){tvanim.onComplete();});a.animate();},onComplete:function(){this.callback();},toString:function(){return"TVFadeIn";}};YAHOO.widget.TVFadeOut=function(el,callback){this.el=el;this.callback=callback;};YAHOO.widget.TVFadeOut.prototype={animate:function(){var tvanim=this;var dur=0.4;var a=new YAHOO.util.Anim(this.el,{opacity:{from:1,to:0.1,unit:""}},dur);a.onComplete.subscribe(function(){tvanim.onComplete();});a.animate();},onComplete:function(){var s=this.el.style;s.display="none";s.filter="alpha(opacity=100)";this.callback();},toString:function(){return"TVFadeOut";}};YAHOO.register("treeview",YAHOO.widget.TreeView,{version:"2.2.0",build:"127"}); \ No newline at end of file diff --git a/interface/ispconfig/interface/js/yui/treeview/treeview.js b/interface/ispconfig/interface/js/yui/treeview/treeview.js deleted file mode 100644 index 2551856e9..000000000 --- a/interface/ispconfig/interface/js/yui/treeview/treeview.js +++ /dev/null @@ -1,2248 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ -/** - * The treeview widget is a generic tree building tool. - * @module treeview - * @title TreeView Widget - * @requires yahoo, event - * @optional animation - * @namespace YAHOO.widget - */ - -/** - * Contains the tree view state data and the root node. - * - * @class TreeView - * @uses YAHOO.util.EventProvider - * @constructor - * @param {string|HTMLElement} id The id of the element, or the element - * itself that the tree will be inserted into. - */ -YAHOO.widget.TreeView = function(id) { - if (id) { this.init(id); } -}; - -YAHOO.widget.TreeView.prototype = { - - /** - * The id of tree container element - * @property id - * @type String - */ - id: null, - - /** - * The host element for this tree - * @property _el - * @private - */ - _el: null, - - /** - * Flat collection of all nodes in this tree. This is a sparse - * array, so the length property can't be relied upon for a - * node count for the tree. - * @property _nodes - * @type Node[] - * @private - */ - _nodes: null, - - /** - * We lock the tree control while waiting for the dynamic loader to return - * @property locked - * @type boolean - */ - locked: false, - - /** - * The animation to use for expanding children, if any - * @property _expandAnim - * @type string - * @private - */ - _expandAnim: null, - - /** - * The animation to use for collapsing children, if any - * @property _collapseAnim - * @type string - * @private - */ - _collapseAnim: null, - - /** - * The current number of animations that are executing - * @property _animCount - * @type int - * @private - */ - _animCount: 0, - - /** - * The maximum number of animations to run at one time. - * @property maxAnim - * @type int - */ - maxAnim: 2, - - /** - * Sets up the animation for expanding children - * @method setExpandAnim - * @param {string} type the type of animation (acceptable values defined - * in YAHOO.widget.TVAnim) - */ - setExpandAnim: function(type) { - if (YAHOO.widget.TVAnim.isValid(type)) { - this._expandAnim = type; - } - }, - - /** - * Sets up the animation for collapsing children - * @method setCollapseAnim - * @param {string} the type of animation (acceptable values defined in - * YAHOO.widget.TVAnim) - */ - setCollapseAnim: function(type) { - if (YAHOO.widget.TVAnim.isValid(type)) { - this._collapseAnim = type; - } - }, - - /** - * Perform the expand animation if configured, or just show the - * element if not configured or too many animations are in progress - * @method animateExpand - * @param el {HTMLElement} the element to animate - * @param node {YAHOO.util.Node} the node that was expanded - * @return {boolean} true if animation could be invoked, false otherwise - */ - animateExpand: function(el, node) { - - if (this._expandAnim && this._animCount < this.maxAnim) { - // this.locked = true; - var tree = this; - var a = YAHOO.widget.TVAnim.getAnim(this._expandAnim, el, - function() { tree.expandComplete(node); }); - if (a) { - ++this._animCount; - this.fireEvent("animStart", { - "node": node, - "type": "expand" - }); - a.animate(); - } - - return true; - } - - return false; - }, - - /** - * Perform the collapse animation if configured, or just show the - * element if not configured or too many animations are in progress - * @method animateCollapse - * @param el {HTMLElement} the element to animate - * @param node {YAHOO.util.Node} the node that was expanded - * @return {boolean} true if animation could be invoked, false otherwise - */ - animateCollapse: function(el, node) { - - if (this._collapseAnim && this._animCount < this.maxAnim) { - // this.locked = true; - var tree = this; - var a = YAHOO.widget.TVAnim.getAnim(this._collapseAnim, el, - function() { tree.collapseComplete(node); }); - if (a) { - ++this._animCount; - this.fireEvent("animStart", { - "node": node, - "type": "collapse" - }); - a.animate(); - } - - return true; - } - - return false; - }, - - /** - * Function executed when the expand animation completes - * @method expandComplete - */ - expandComplete: function(node) { - --this._animCount; - this.fireEvent("animComplete", { - "node": node, - "type": "expand" - }); - // this.locked = false; - }, - - /** - * Function executed when the collapse animation completes - * @method collapseComplete - */ - collapseComplete: function(node) { - --this._animCount; - this.fireEvent("animComplete", { - "node": node, - "type": "collapse" - }); - // this.locked = false; - }, - - /** - * Initializes the tree - * @method init - * @parm {string|HTMLElement} id the id of the element that will hold the tree - * @private - */ - init: function(id) { - - this.id = id; - - if ("string" !== typeof id) { - this._el = id; - this.id = this.generateId(id); - } - - /** - * When animation is enabled, this event fires when the animation - * starts - * @event animStart - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that is expanding/collapsing - * @parm {String} type the type of animation ("expand" or "collapse") - */ - this.createEvent("animStart", this); - - /** - * When animation is enabled, this event fires when the animation - * completes - * @event animComplete - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that is expanding/collapsing - * @parm {String} type the type of animation ("expand" or "collapse") - */ - this.createEvent("animComplete", this); - - /** - * Fires when a node is going to be collapsed. Return false to stop - * the collapse. - * @event collapse - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that is collapsing - */ - this.createEvent("collapse", this); - - /** - * Fires after a node is successfully collapsed. This event will not fire - * if the "collapse" event was cancelled. - * @event collapseComplete - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that was collapsed - */ - this.createEvent("collapseComplete", this); - - /** - * Fires when a node is going to be expanded. Return false to stop - * the collapse. - * @event expand - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that is expanding - */ - this.createEvent("expand", this); - - /** - * Fires after a node is successfully expanded. This event will not fire - * if the "expand" event was cancelled. - * @event expandComplete - * @type CustomEvent - * @param {YAHOO.widget.Node} node the node that was expanded - */ - this.createEvent("expandComplete", this); - - this._nodes = []; - - // store a global reference - YAHOO.widget.TreeView.trees[this.id] = this; - - // Set up the root node - this.root = new YAHOO.widget.RootNode(this); - - - - //YAHOO.util.Event.onContentReady(this.id, this.handleAvailable, this, true); - YAHOO.util.Event.on(this.id, "click", this.handleClick, this, true); - }, - - - //handleAvailable: function() { - //var Event = YAHOO.util.Event; - //Event.on(this.id, - //}, - - /** - * Renders the tree boilerplate and visible nodes - * @method draw - */ - draw: function() { - var html = this.root.getHtml(); - this.getEl().innerHTML = html; - this.firstDraw = false; - }, - - /** - * Returns the tree's host element - * @method getEl - * @return {HTMLElement} the host element - */ - getEl: function() { - if (! this._el) { - this._el = document.getElementById(this.id); - } - return this._el; - }, - - /** - * Nodes register themselves with the tree instance when they are created. - * @method regNode - * @param node {Node} the node to register - * @private - */ - regNode: function(node) { - this._nodes[node.index] = node; - }, - - /** - * Returns the root node of this tree - * @method getRoot - * @return {Node} the root node - */ - getRoot: function() { - return this.root; - }, - - /** - * Configures this tree to dynamically load all child data - * @method setDynamicLoad - * @param {function} fnDataLoader the function that will be called to get the data - * @param iconMode {int} configures the icon that is displayed when a dynamic - * load node is expanded the first time without children. By default, the - * "collapse" icon will be used. If set to 1, the leaf node icon will be - * displayed. - */ - setDynamicLoad: function(fnDataLoader, iconMode) { - this.root.setDynamicLoad(fnDataLoader, iconMode); - }, - - /** - * Expands all child nodes. Note: this conflicts with the "multiExpand" - * node property. If expand all is called in a tree with nodes that - * do not allow multiple siblings to be displayed, only the last sibling - * will be expanded. - * @method expandAll - */ - expandAll: function() { - if (!this.locked) { - this.root.expandAll(); - } - }, - - /** - * Collapses all expanded child nodes in the entire tree. - * @method collapseAll - */ - collapseAll: function() { - if (!this.locked) { - this.root.collapseAll(); - } - }, - - /** - * Returns a node in the tree that has the specified index (this index - * is created internally, so this function probably will only be used - * in html generated for a given node.) - * @method getNodeByIndex - * @param {int} nodeIndex the index of the node wanted - * @return {Node} the node with index=nodeIndex, null if no match - */ - getNodeByIndex: function(nodeIndex) { - var n = this._nodes[nodeIndex]; - return (n) ? n : null; - }, - - /** - * Returns a node that has a matching property and value in the data - * object that was passed into its constructor. - * @method getNodeByProperty - * @param {object} property the property to search (usually a string) - * @param {object} value the value we want to find (usuall an int or string) - * @return {Node} the matching node, null if no match - */ - getNodeByProperty: function(property, value) { - for (var i in this._nodes) { - var n = this._nodes[i]; - if (n.data && value == n.data[property]) { - return n; - } - } - - return null; - }, - - /** - * Returns a collection of nodes that have a matching property - * and value in the data object that was passed into its constructor. - * @method getNodesByProperty - * @param {object} property the property to search (usually a string) - * @param {object} value the value we want to find (usuall an int or string) - * @return {Array} the matching collection of nodes, null if no match - */ - getNodesByProperty: function(property, value) { - var values = []; - for (var i in this._nodes) { - var n = this._nodes[i]; - if (n.data && value == n.data[property]) { - values.push(n); - } - } - - return (values.length) ? values : null; - }, - - /** - * Removes the node and its children, and optionally refreshes the - * branch of the tree that was affected. - * @method removeNode - * @param {Node} The node to remove - * @param {boolean} autoRefresh automatically refreshes branch if true - * @return {boolean} False is there was a problem, true otherwise. - */ - removeNode: function(node, autoRefresh) { - - // Don't delete the root node - if (node.isRoot()) { - return false; - } - - // Get the branch that we may need to refresh - var p = node.parent; - if (p.parent) { - p = p.parent; - } - - // Delete the node and its children - this._deleteNode(node); - - // Refresh the parent of the parent - if (autoRefresh && p && p.childrenRendered) { - p.refresh(); - } - - return true; - }, - - /** - * Deletes this nodes child collection, recursively. Also collapses - * the node, and resets the dynamic load flag. The primary use for - * this method is to purge a node and allow it to fetch its data - * dynamically again. - * @method removeChildren - * @param {Node} node the node to purge - */ - removeChildren: function(node) { - while (node.children.length) { - this._deleteNode(node.children[0]); - } - - node.childrenRendered = false; - node.dynamicLoadComplete = false; - if (node.expanded) { - node.collapse(); - } else { - node.updateIcon(); - } - }, - - /** - * Deletes the node and recurses children - * @method _deleteNode - * @private - */ - _deleteNode: function(node) { - // Remove all the child nodes first - this.removeChildren(node); - - // Remove the node from the tree - this.popNode(node); - }, - - /** - * Removes the node from the tree, preserving the child collection - * to make it possible to insert the branch into another part of the - * tree, or another tree. - * @method popNode - * @param {Node} the node to remove - */ - popNode: function(node) { - var p = node.parent; - - // Update the parent's collection of children - var a = []; - - for (var i=0, len=p.children.length;i '; - } - - var f = document.createElement("div"); - var s = f.style; - s.position = "absolute"; - s.top = "-1000px"; - s.left = "-1000px"; - f.innerHTML = sb.join(""); - - document.body.appendChild(f); - - YAHOO.widget.TreeView.removeHandler(window, - "load", YAHOO.widget.TreeView.preload); - -}; - -YAHOO.widget.TreeView.addHandler(window, - "load", YAHOO.widget.TreeView.preload); - -/** - * The base class for all tree nodes. The node's presentation and behavior in - * response to mouse events is handled in Node subclasses. - * @namespace YAHOO.widget - * @class Node - * @uses YAHOO.util.EventProvider - * @param oData {object} a string or object containing the data that will - * be used to render this node - * @param oParent {Node} this node's parent node - * @param expanded {boolean} the initial expanded/collapsed state - * @constructor - */ -YAHOO.widget.Node = function(oData, oParent, expanded) { - if (oData) { this.init(oData, oParent, expanded); } -}; - -YAHOO.widget.Node.prototype = { - - /** - * The index for this instance obtained from global counter in YAHOO.widget.TreeView. - * @property index - * @type int - */ - index: 0, - - /** - * This node's child node collection. - * @property children - * @type Node[] - */ - children: null, - - /** - * Tree instance this node is part of - * @property tree - * @type TreeView - */ - tree: null, - - /** - * The data linked to this node. This can be any object or primitive - * value, and the data can be used in getNodeHtml(). - * @property data - * @type object - */ - data: null, - - /** - * Parent node - * @property parent - * @type Node - */ - parent: null, - - /** - * The depth of this node. We start at -1 for the root node. - * @property depth - * @type int - */ - depth: -1, - - /** - * The href for the node's label. If one is not specified, the href will - * be set so that it toggles the node. - * @property href - * @type string - */ - href: null, - - /** - * The label href target, defaults to current window - * @property target - * @type string - */ - target: "_self", - - /** - * The node's expanded/collapsed state - * @property expanded - * @type boolean - */ - expanded: false, - - /** - * Can multiple children be expanded at once? - * @property multiExpand - * @type boolean - */ - multiExpand: true, - - /** - * Should we render children for a collapsed node? It is possible that the - * implementer will want to render the hidden data... @todo verify that we - * need this, and implement it if we do. - * @property renderHidden - * @type boolean - */ - renderHidden: false, - - /** - * This flag is set to true when the html is generated for this node's - * children, and set to false when new children are added. - * @property childrenRendered - * @type boolean - */ - childrenRendered: false, - - /** - * Dynamically loaded nodes only fetch the data the first time they are - * expanded. This flag is set to true once the data has been fetched. - * @property dynamicLoadComplete - * @type boolean - */ - dynamicLoadComplete: false, - - /** - * This node's previous sibling - * @property previousSibling - * @type Node - */ - previousSibling: null, - - /** - * This node's next sibling - * @property nextSibling - * @type Node - */ - nextSibling: null, - - /** - * We can set the node up to call an external method to get the child - * data dynamically. - * @property _dynLoad - * @type boolean - * @private - */ - _dynLoad: false, - - /** - * Function to execute when we need to get this node's child data. - * @property dataLoader - * @type function - */ - dataLoader: null, - - /** - * This is true for dynamically loading nodes while waiting for the - * callback to return. - * @property isLoading - * @type boolean - */ - isLoading: false, - - /** - * The toggle/branch icon will not show if this is set to false. This - * could be useful if the implementer wants to have the child contain - * extra info about the parent, rather than an actual node. - * @property hasIcon - * @type boolean - */ - hasIcon: true, - - /** - * Used to configure what happens when a dynamic load node is expanded - * and we discover that it does not have children. By default, it is - * treated as if it still could have children (plus/minus icon). Set - * iconMode to have it display like a leaf node instead. - * @property iconMode - * @type int - */ - iconMode: 0, - - /** - * Specifies whether or not the content area of the node should be allowed - * to wrap. - * @property nowrap - * @type boolean - * @default true - */ - nowrap: false, - - /** - * The node type - * @property _type - * @private - */ - _type: "Node", - - /* - spacerPath: "http://us.i1.yimg.com/us.yimg.com/i/space.gif", - expandedText: "Expanded", - collapsedText: "Collapsed", - loadingText: "Loading", - */ - - /** - * Initializes this node, gets some of the properties from the parent - * @method init - * @param oData {object} a string or object containing the data that will - * be used to render this node - * @param oParent {Node} this node's parent node - * @param expanded {boolean} the initial expanded/collapsed state - */ - init: function(oData, oParent, expanded) { - - this.data = oData; - this.children = []; - this.index = YAHOO.widget.TreeView.nodeCount; - ++YAHOO.widget.TreeView.nodeCount; - this.expanded = expanded; - - /** - * The parentChange event is fired when a parent element is applied - * to the node. This is useful if you need to apply tree-level - * properties to a tree that need to happen if a node is moved from - * one tree to another. - * - * @event parentChange - * @type CustomEvent - */ - this.createEvent("parentChange", this); - - // oParent should never be null except when we create the root node. - if (oParent) { - oParent.appendChild(this); - } - }, - - /** - * Certain properties for the node cannot be set until the parent - * is known. This is called after the node is inserted into a tree. - * the parent is also applied to this node's children in order to - * make it possible to move a branch from one tree to another. - * @method applyParent - * @param {Node} parentNode this node's parent node - * @return {boolean} true if the application was successful - */ - applyParent: function(parentNode) { - if (!parentNode) { - return false; - } - - this.tree = parentNode.tree; - this.parent = parentNode; - this.depth = parentNode.depth + 1; - - if (!this.href) { - this.href = "javascript:" + this.getToggleLink(); - } - - // @todo why was this put here. This causes new nodes added at the - // root level to lose the menu behavior. - // if (! this.multiExpand) { - // this.multiExpand = parentNode.multiExpand; - // } - - this.tree.regNode(this); - parentNode.childrenRendered = false; - - // cascade update existing children - for (var i=0, len=this.children.length;i 0 || - (checkForLazyLoad && this.isDynamic() && !this.dynamicLoadComplete) ); - }, - - /** - * Expands if node is collapsed, collapses otherwise. - * @method toggle - */ - toggle: function() { - if (!this.tree.locked && ( this.hasChildren(true) || this.isDynamic()) ) { - if (this.expanded) { this.collapse(); } else { this.expand(); } - } - }, - - /** - * Returns the markup for this node and its children. - * @method getHtml - * @return {string} the markup for this node and its expanded children. - */ - getHtml: function() { - - this.childrenRendered = false; - - var sb = []; - sb[sb.length] = '
    '; - sb[sb.length] = this.getNodeHtml(); - sb[sb.length] = this.getChildrenHtml(); - sb[sb.length] = '
    '; - return sb.join(""); - }, - - /** - * Called when first rendering the tree. We always build the div that will - * contain this nodes children, but we don't render the children themselves - * unless this node is expanded. - * @method getChildrenHtml - * @return {string} the children container div html and any expanded children - * @private - */ - getChildrenHtml: function() { - - var sb = []; - sb[sb.length] = '
    = this.depth || depth < 0) { - return null; - } - - var p = this.parent; - - while (p.depth > depth) { - p = p.parent; - } - - return p; - }, - - /** - * Returns the css class for the spacer at the specified depth for - * this node. If this node's ancestor at the specified depth - * has a next sibling the presentation is different than if it - * does not have a next sibling - * @method getDepthStyle - * @param {int} depth the depth of the ancestor. - * @return {string} the css class for the spacer - */ - getDepthStyle: function(depth) { - return (this.getAncestor(depth).nextSibling) ? - "ygtvdepthcell" : "ygtvblankdepthcell"; - }, - - /** - * Get the markup for the node. This is designed to be overrided so that we can - * support different types of nodes. - * @method getNodeHtml - * @return {string} The HTML that will render this node. - */ - getNodeHtml: function() { - return ""; - }, - - /** - * Regenerates the html for this node and its children. To be used when the - * node is expanded and new children have been added. - * @method refresh - */ - refresh: function() { - // this.loadComplete(); - this.getChildrenEl().innerHTML = this.completeRender(); - - if (this.hasIcon) { - var el = this.getToggleEl(); - if (el) { - el.className = this.getStyle(); - } - } - }, - - /** - * Node toString - * @method toString - * @return {string} string representation of the node - */ - toString: function() { - return "Node (" + this.index + ")"; - } - -}; - -YAHOO.augment(YAHOO.widget.Node, YAHOO.util.EventProvider); - -/** - * The default node presentation. The first parameter should be - * either a string that will be used as the node's label, or an object - * that has a string propery called label. By default, the clicking the - * label will toggle the expanded/collapsed state of the node. By - * changing the href property of the instance, this behavior can be - * changed so that the label will go to the specified href. - * @namespace YAHOO.widget - * @class TextNode - * @extends YAHOO.widget.Node - * @constructor - * @param oData {object} a string or object containing the data that will - * be used to render this node - * @param oParent {YAHOO.widget.Node} this node's parent node - * @param expanded {boolean} the initial expanded/collapsed state - */ -YAHOO.widget.TextNode = function(oData, oParent, expanded) { - - if (oData) { - this.init(oData, oParent, expanded); - this.setUpLabel(oData); - } - -}; - -YAHOO.extend(YAHOO.widget.TextNode, YAHOO.widget.Node, { - - /** - * The CSS class for the label href. Defaults to ygtvlabel, but can be - * overridden to provide a custom presentation for a specific node. - * @property labelStyle - * @type string - */ - labelStyle: "ygtvlabel", - - /** - * The derived element id of the label for this node - * @property labelElId - * @type string - */ - labelElId: null, - - /** - * The text for the label. It is assumed that the oData parameter will - * either be a string that will be used as the label, or an object that - * has a property called "label" that we will use. - * @property label - * @type string - */ - label: null, - - textNodeParentChange: function() { - - /** - * Custom event that is fired when the text node label is clicked. The - * custom event is defined on the tree instance, so there is a single - * event that handles all nodes in the tree. The node clicked is - * provided as an argument - * - * @event labelClick - * @for YAHOO.widget.TreeView - * @param {YAHOO.widget.Node} node the node clicked - */ - if (this.tree && !this.tree.hasEvent("labelClick")) { - this.tree.createEvent("labelClick", this.tree); - } - - }, - - /** - * Sets up the node label - * @method setUpLabel - * @param oData string containing the label, or an object with a label property - */ - setUpLabel: function(oData) { - - // set up the custom event on the tree - this.textNodeParentChange(); - this.subscribe("parentChange", this.textNodeParentChange); - - if (typeof oData == "string") { - oData = { label: oData }; - } - this.label = oData.label; - this.data.label = oData.label; - - // update the link - if (oData.href) { - this.href = oData.href; - } - - // set the target - if (oData.target) { - this.target = oData.target; - } - - if (oData.style) { - this.labelStyle = oData.style; - } - - this.labelElId = "ygtvlabelel" + this.index; - }, - - /** - * Returns the label element - * @for YAHOO.widget.TextNode - * @method getLabelEl - * @return {object} the element - */ - getLabelEl: function() { - return document.getElementById(this.labelElId); - }, - - // overrides YAHOO.widget.Node - getNodeHtml: function() { - var sb = []; - - sb[sb.length] = ''; - sb[sb.length] = ''; - - for (var i=0;i '; - //sb[sb.length] = ''; - sb[sb.length] = ''; - } - - var getNode = 'YAHOO.widget.TreeView.getNode(\'' + - this.tree.id + '\',' + this.index + ')'; - - sb[sb.length] = ''; - - sb[sb.length] = '
    '; - - /* - sb[sb.length] = ' '; - sb[sb.length] = '
    '; - } - - if (this.hasIcon) { - sb[sb.length] = '-1){return true;}else{return YAHOO.lang.isObject(obj)&&obj.constructor==Array;}},isBoolean:function(obj){return typeof obj=='boolean';},isFunction:function(obj){return typeof obj=='function';},isNull:function(obj){return obj===null;},isNumber:function(obj){return typeof obj=='number'&&isFinite(obj);},isObject:function(obj){return typeof obj=='object'||YAHOO.lang.isFunction(obj);},isString:function(obj){return typeof obj=='string';},isUndefined:function(obj){return typeof obj=='undefined';},hasOwnProperty:function(obj,prop){if(Object.prototype.hasOwnProperty){return obj.hasOwnProperty(prop);} -return!YAHOO.lang.isUndefined(obj[prop])&&obj.constructor.prototype[prop]!==obj[prop];},extend:function(subc,superc,overrides){var F=function(){};F.prototype=superc.prototype;subc.prototype=new F();subc.prototype.constructor=subc;subc.superclass=superc.prototype;if(superc.prototype.constructor==Object.prototype.constructor){superc.prototype.constructor=superc;} -if(overrides){for(var i in overrides){subc.prototype[i]=overrides[i];}}},augment:function(r,s){var rp=r.prototype,sp=s.prototype,a=arguments,i,p;if(a[2]){for(i=2;i-1),isSafari=(ua.indexOf('safari')>-1),isGecko=(!isOpera&&!isSafari&&ua.indexOf('gecko')>-1),isIE=(!isOpera&&ua.indexOf('msie')>-1);var patterns={HYPHEN:/(-[a-z])/i};var toCamel=function(property){if(!patterns.HYPHEN.test(property)){return property;} -if(propertyCache[property]){return propertyCache[property];} -while(patterns.HYPHEN.exec(property)){property=property.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());} -propertyCache[property]=property;return property;};if(document.defaultView&&document.defaultView.getComputedStyle){getStyle=function(el,property){var value=null;var computed=document.defaultView.getComputedStyle(el,'');if(computed){value=computed[toCamel(property)];} -return el.style[property]||value;};}else if(document.documentElement.currentStyle&&isIE){getStyle=function(el,property){switch(toCamel(property)){case'opacity':var val=100;try{val=el.filters['DXImageTransform.Microsoft.Alpha'].opacity;}catch(e){try{val=el.filters('alpha').opacity;}catch(e){}} -return val/100;break;default:var value=el.currentStyle?el.currentStyle[property]:null;return(el.style[property]||value);}};}else{getStyle=function(el,property){return el.style[property];};} -if(isIE){setStyle=function(el,property,val){switch(property){case'opacity':if(typeof el.style.filter=='string'){el.style.filter='alpha(opacity='+val*100+')';if(!el.currentStyle||!el.currentStyle.hasLayout){el.style.zoom=1;}} -break;default:el.style[property]=val;}};}else{setStyle=function(el,property,val){el.style[property]=val;};} -YAHOO.util.Dom={get:function(el){if(!el){return null;} -if(typeof el!='string'&&!(el instanceof Array)){return el;} -if(typeof el=='string'){return document.getElementById(el);} -else{var collection=[];for(var i=0,len=el.length;i=this.left&®ion.right<=this.right&®ion.top>=this.top&®ion.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(region){var t=Math.max(this.top,region.top);var r=Math.min(this.right,region.right);var b=Math.min(this.bottom,region.bottom);var l=Math.max(this.left,region.left);if(b>=t&&r>=l){return new YAHOO.util.Region(t,r,b,l);}else{return null;}};YAHOO.util.Region.prototype.union=function(region){var t=Math.min(this.top,region.top);var r=Math.max(this.right,region.right);var b=Math.max(this.bottom,region.bottom);var l=Math.min(this.left,region.left);return new YAHOO.util.Region(t,r,b,l);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+"}");};YAHOO.util.Region.getRegion=function(el){var p=YAHOO.util.Dom.getXY(el);var t=p[1];var r=p[0]+el.offsetWidth;var b=p[1]+el.offsetHeight;var l=p[0];return new YAHOO.util.Region(t,r,b,l);};YAHOO.util.Point=function(x,y){if(x instanceof Array){y=x[1];x=x[0];} -this.x=this.right=this.left=this[0]=x;this.y=this.top=this.bottom=this[1]=y;};YAHOO.util.Point.prototype=new YAHOO.util.Region();YAHOO.register("dom",YAHOO.util.Dom,{version:"2.2.0",build:"127"}); -if(!YAHOO.util.Event){YAHOO.util.Event=function(){var loadComplete=false;var listeners=[];var unloadListeners=[];var legacyEvents=[];var legacyHandlers=[];var retryCount=0;var onAvailStack=[];var legacyMap=[];var counter=0;var lastError=null;return{POLL_RETRYS:200,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,OBJ:3,ADJ_SCOPE:4,isSafari:(/KHTML/gi).test(navigator.userAgent),webkit:function(){var v=navigator.userAgent.match(/AppleWebKit\/([^ ]*)/);if(v&&v[1]){return v[1];} -return null;}(),isIE:(!this.webkit&&!navigator.userAgent.match(/opera/gi)&&navigator.userAgent.match(/msie/gi)),_interval:null,startInterval:function(){if(!this._interval){var self=this;var callback=function(){self._tryPreloadAttach();};this._interval=setInterval(callback,this.POLL_INTERVAL);}},onAvailable:function(p_id,p_fn,p_obj,p_override){onAvailStack.push({id:p_id,fn:p_fn,obj:p_obj,override:p_override,checkReady:false});retryCount=this.POLL_RETRYS;this.startInterval();},onContentReady:function(p_id,p_fn,p_obj,p_override){onAvailStack.push({id:p_id,fn:p_fn,obj:p_obj,override:p_override,checkReady:true});retryCount=this.POLL_RETRYS;this.startInterval();},addListener:function(el,sType,fn,obj,override){if(!fn||!fn.call){return false;} -if(this._isValidCollection(el)){var ok=true;for(var i=0,len=el.length;i=0){cacheItem=listeners[index];} -if(!el||!cacheItem){return false;} -if(this.useLegacyEvent(el,sType)){var legacyIndex=this.getLegacyIndex(el,sType);var llist=legacyHandlers[legacyIndex];if(llist){for(i=0,len=llist.length;i0);} -var notAvail=[];for(var i=0,len=onAvailStack.length;i0){for(var i=0,len=searchList.length;i0){j=listeners.length;while(j){index=j-1;l=listeners[index];if(l){EU.removeListener(l[EU.EL],l[EU.TYPE],l[EU.FN],index);} -j=j-1;} -l=null;EU.clearCache();} -for(i=0,len=legacyEvents.length;i0){param=args[0];} -ret=s.fn.call(scope,param,s.obj);}else{ret=s.fn.call(scope,this.type,args,s.obj);} -if(false===ret){if(!this.silent){} -return false;}}} -return true;},unsubscribeAll:function(){for(var i=0,len=this.subscribers.length;i=200&&httpStatus<300){responseObject=this.createResponseObject(o,callback.argument);if(callback.success){if(!callback.scope){callback.success(responseObject);} -else{callback.success.apply(callback.scope,[responseObject]);}}} -else{switch(httpStatus){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:responseObject=this.createExceptionObject(o.tId,callback.argument,(isAbort?isAbort:false));if(callback.failure){if(!callback.scope){callback.failure(responseObject);} -else{callback.failure.apply(callback.scope,[responseObject]);}} -break;default:responseObject=this.createResponseObject(o,callback.argument);if(callback.failure){if(!callback.scope){callback.failure(responseObject);} -else{callback.failure.apply(callback.scope,[responseObject]);}}}} -this.releaseObject(o);responseObject=null;},createResponseObject:function(o,callbackArg) -{var obj={};var headerObj={};try -{var headerStr=o.conn.getAllResponseHeaders();var header=headerStr.split('\n');for(var i=0;i');if(typeof secureUri=='boolean'){io.src='javascript:false';} -else if(typeof secureURI=='string'){io.src=secureUri;}} -else{var io=document.createElement('iframe');io.id=frameId;io.name=frameId;} -io.style.position='absolute';io.style.top='-1000px';io.style.left='-1000px';document.body.appendChild(io);},appendPostData:function(postData) -{var formElements=[];var postMessage=postData.split('&');for(var i=0;i0){for(var i=0;i0)?val:0;} -YAHOO.util.Dom.setStyle(this.getEl(),attr,val+unit);},getAttribute:function(attr){var el=this.getEl();var val=YAHOO.util.Dom.getStyle(el,attr);if(val!=='auto'&&!this.patterns.offsetUnit.test(val)){return parseFloat(val);} -var a=this.patterns.offsetAttribute.exec(attr)||[];var pos=!!(a[3]);var box=!!(a[2]);if(box||(YAHOO.util.Dom.getStyle(el,'position')=='absolute'&&pos)){val=el['offset'+a[0].charAt(0).toUpperCase()+a[0].substr(1)];}else{val=0;} -return val;},getDefaultUnit:function(attr){if(this.patterns.defaultUnit.test(attr)){return'px';} -return'';},setRuntimeAttribute:function(attr){var start;var end;var attributes=this.attributes;this.runtimeAttributes[attr]={};var isset=function(prop){return(typeof prop!=='undefined');};if(!isset(attributes[attr]['to'])&&!isset(attributes[attr]['by'])){return false;} -start=(isset(attributes[attr]['from']))?attributes[attr]['from']:this.getAttribute(attr);if(isset(attributes[attr]['to'])){end=attributes[attr]['to'];}else if(isset(attributes[attr]['by'])){if(start.constructor==Array){end=[];for(var i=0,len=start.length;i0&&isFinite(tweak)){if(tween.currentFrame+tweak>=frames){tweak=frames-(frame+1);} -tween.currentFrame+=tweak;}};};YAHOO.util.Bezier=new function(){this.getPosition=function(points,t){var n=points.length;var tmp=[];for(var i=0;i0&&!(control[0]instanceof Array)){control=[control];}else{var tmp=[];for(i=0,len=control.length;i0){this.runtimeAttributes[attr]=this.runtimeAttributes[attr].concat(control);} -this.runtimeAttributes[attr][this.runtimeAttributes[attr].length]=end;} -else{superclass.setRuntimeAttribute.call(this,attr);}};var translateValues=function(val,start){var pageXY=Y.Dom.getXY(this.getEl());val=[val[0]-pageXY[0]+start[0],val[1]-pageXY[1]+start[1]];return val;};var isset=function(prop){return(typeof prop!=='undefined');};})();(function(){YAHOO.util.Scroll=function(el,attributes,duration,method){if(el){YAHOO.util.Scroll.superclass.constructor.call(this,el,attributes,duration,method);}};YAHOO.extend(YAHOO.util.Scroll,YAHOO.util.ColorAnim);var Y=YAHOO.util;var superclass=Y.Scroll.superclass;var proto=Y.Scroll.prototype;proto.toString=function(){var el=this.getEl();var id=el.id||el.tagName;return("Scroll "+id);};proto.doMethod=function(attr,start,end){var val=null;if(attr=='scroll'){val=[this.method(this.currentFrame,start[0],end[0]-start[0],this.totalFrames),this.method(this.currentFrame,start[1],end[1]-start[1],this.totalFrames)];}else{val=superclass.doMethod.call(this,attr,start,end);} -return val;};proto.getAttribute=function(attr){var val=null;var el=this.getEl();if(attr=='scroll'){val=[el.scrollLeft,el.scrollTop];}else{val=superclass.getAttribute.call(this,attr);} -return val;};proto.setAttribute=function(attr,val,unit){var el=this.getEl();if(attr=='scroll'){el.scrollLeft=val[0];el.scrollTop=val[1];}else{superclass.setAttribute.call(this,attr,val,unit);}};})();YAHOO.register("animation",YAHOO.util.Anim,{version:"2.2.0",build:"127"}); -if(!YAHOO.util.DragDropMgr){YAHOO.util.DragDropMgr=function(){var Event=YAHOO.util.Event;return{ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initalized:false,locked:false,init:function(){this.initialized=true;},POINT:0,INTERSECT:1,STRICT_INTERSECT:2,mode:0,_execOnAll:function(sMethod,args){for(var i in this.ids){for(var j in this.ids[i]){var oDD=this.ids[i][j];if(!this.isTypeOfDD(oDD)){continue;} -oDD[sMethod].apply(oDD,args);}}},_onLoad:function(){this.init();Event.on(document,"mouseup",this.handleMouseUp,this,true);Event.on(document,"mousemove",this.handleMouseMove,this,true);Event.on(window,"unload",this._onUnload,this,true);Event.on(window,"resize",this._onResize,this,true);},_onResize:function(e){this._execOnAll("resetConstraints",[]);},lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isLocked:function(){return this.locked;},locationCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:1000,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,regDragDrop:function(oDD,sGroup){if(!this.initialized){this.init();} -if(!this.ids[sGroup]){this.ids[sGroup]={};} -this.ids[sGroup][oDD.id]=oDD;},removeDDFromGroup:function(oDD,sGroup){if(!this.ids[sGroup]){this.ids[sGroup]={};} -var obj=this.ids[sGroup];if(obj&&obj[oDD.id]){delete obj[oDD.id];}},_remove:function(oDD){for(var g in oDD.groups){if(g&&this.ids[g][oDD.id]){delete this.ids[g][oDD.id];}} -delete this.handleIds[oDD.id];},regHandle:function(sDDId,sHandleId){if(!this.handleIds[sDDId]){this.handleIds[sDDId]={};} -this.handleIds[sDDId][sHandleId]=sHandleId;},isDragDrop:function(id){return(this.getDDById(id))?true:false;},getRelated:function(p_oDD,bTargetsOnly){var oDDs=[];for(var i in p_oDD.groups){for(j in this.ids[i]){var dd=this.ids[i][j];if(!this.isTypeOfDD(dd)){continue;} -if(!bTargetsOnly||dd.isTarget){oDDs[oDDs.length]=dd;}}} -return oDDs;},isLegalTarget:function(oDD,oTargetDD){var targets=this.getRelated(oDD,true);for(var i=0,len=targets.length;ithis.clickPixelThresh||diffY>this.clickPixelThresh){this.startDrag(this.startX,this.startY);}} -if(this.dragThreshMet){this.dragCurrent.b4Drag(e);this.dragCurrent.onDrag(e);this.fireEvents(e,false);} -this.stopEvent(e);return true;},fireEvents:function(e,isDrop){var dc=this.dragCurrent;if(!dc||dc.isLocked()){return;} -var x=YAHOO.util.Event.getPageX(e);var y=YAHOO.util.Event.getPageY(e);var pt=new YAHOO.util.Point(x,y);var oldOvers=[];var outEvts=[];var overEvts=[];var dropEvts=[];var enterEvts=[];for(var i in this.dragOvers){var ddo=this.dragOvers[i];if(!this.isTypeOfDD(ddo)){continue;} -if(!this.isOverTarget(pt,ddo,this.mode)){outEvts.push(ddo);} -oldOvers[i]=true;delete this.dragOvers[i];} -for(var sGroup in dc.groups){if("string"!=typeof sGroup){continue;} -for(i in this.ids[sGroup]){var oDD=this.ids[sGroup][i];if(!this.isTypeOfDD(oDD)){continue;} -if(oDD.isTarget&&!oDD.isLocked()&&oDD!=dc){if(this.isOverTarget(pt,oDD,this.mode)){if(isDrop){dropEvts.push(oDD);}else{if(!oldOvers[oDD.id]){enterEvts.push(oDD);}else{overEvts.push(oDD);} -this.dragOvers[oDD.id]=oDD;}}}}} -if(this.mode){if(outEvts.length){dc.b4DragOut(e,outEvts);dc.onDragOut(e,outEvts);} -if(enterEvts.length){dc.onDragEnter(e,enterEvts);} -if(overEvts.length){dc.b4DragOver(e,overEvts);dc.onDragOver(e,overEvts);} -if(dropEvts.length){dc.b4DragDrop(e,dropEvts);dc.onDragDrop(e,dropEvts);}}else{var len=0;for(i=0,len=outEvts.length;i2000){}else{setTimeout(DDM._addListeners,10);if(document&&document.body){DDM._timeoutCount+=1;}}}},handleWasClicked:function(node,id){if(this.isHandle(id,node.id)){return true;}else{var p=node.parentNode;while(p){if(this.isHandle(id,p.id)){return true;}else{p=p.parentNode;}}} -return false;}};}();YAHOO.util.DDM=YAHOO.util.DragDropMgr;YAHOO.util.DDM._addListeners();} -(function(){var Event=YAHOO.util.Event;var Dom=YAHOO.util.Dom;YAHOO.util.DragDrop=function(id,sGroup,config){if(id){this.init(id,sGroup,config);}};YAHOO.util.DragDrop.prototype={id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isTarget:true,padding:null,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,b4StartDrag:function(x,y){},startDrag:function(x,y){},b4Drag:function(e){},onDrag:function(e){},onDragEnter:function(e,id){},b4DragOver:function(e){},onDragOver:function(e,id){},b4DragOut:function(e){},onDragOut:function(e,id){},b4DragDrop:function(e){},onDragDrop:function(e,id){},onInvalidDrop:function(e){},b4EndDrag:function(e){},endDrag:function(e){},b4MouseDown:function(e){},onMouseDown:function(e){},onMouseUp:function(e){},onAvailable:function(){},getEl:function(){if(!this._domRef){this._domRef=Dom.get(this.id);} -return this._domRef;},getDragEl:function(){return Dom.get(this.dragElId);},init:function(id,sGroup,config){this.initTarget(id,sGroup,config);Event.on(this.id,"mousedown",this.handleMouseDown,this,true);},initTarget:function(id,sGroup,config){this.config=config||{};this.DDM=YAHOO.util.DDM;this.groups={};if(typeof id!=="string"){id=Dom.generateId(id);} -this.id=id;this.addToGroup((sGroup)?sGroup:"default");this.handleElId=id;Event.onAvailable(id,this.handleOnAvailable,this,true);this.setDragElId(id);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();},applyConfig:function(){this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false);},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable();},setPadding:function(iTop,iRight,iBot,iLeft){if(!iRight&&0!==iRight){this.padding=[iTop,iTop,iTop,iTop];}else if(!iBot&&0!==iBot){this.padding=[iTop,iRight,iTop,iRight];}else{this.padding=[iTop,iRight,iBot,iLeft];}},setInitPosition:function(diffX,diffY){var el=this.getEl();if(!this.DDM.verifyEl(el)){return;} -var dx=diffX||0;var dy=diffY||0;var p=Dom.getXY(el);this.initPageX=p[0]-dx;this.initPageY=p[1]-dy;this.lastPageX=p[0];this.lastPageY=p[1];this.setStartPosition(p);},setStartPosition:function(pos){var p=pos||Dom.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=p[0];this.startPageY=p[1];},addToGroup:function(sGroup){this.groups[sGroup]=true;this.DDM.regDragDrop(this,sGroup);},removeFromGroup:function(sGroup){if(this.groups[sGroup]){delete this.groups[sGroup];} -this.DDM.removeDDFromGroup(this,sGroup);},setDragElId:function(id){this.dragElId=id;},setHandleElId:function(id){if(typeof id!=="string"){id=Dom.generateId(id);} -this.handleElId=id;this.DDM.regHandle(this.id,id);},setOuterHandleElId:function(id){if(typeof id!=="string"){id=Dom.generateId(id);} -Event.on(id,"mousedown",this.handleMouseDown,this,true);this.setHandleElId(id);this.hasOuterHandles=true;},unreg:function(){Event.removeListener(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this);},isLocked:function(){return(this.DDM.isLocked()||this.locked);},handleMouseDown:function(e,oDD){var button=e.which||e.button;if(this.primaryButtonOnly&&button>1){return;} -if(this.isLocked()){return;} -this.b4MouseDown(e);this.onMouseDown(e);this.DDM.refreshCache(this.groups);var pt=new YAHOO.util.Point(Event.getPageX(e),Event.getPageY(e));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(pt,this)){}else{if(this.clickValidator(e)){this.setStartPosition();this.DDM.handleMouseDown(e,this);this.DDM.stopEvent(e);}else{}}},clickValidator:function(e){var target=Event.getTarget(e);return(this.isValidHandleChild(target)&&(this.id==this.handleElId||this.DDM.handleWasClicked(target,this.id)));},addInvalidHandleType:function(tagName){var type=tagName.toUpperCase();this.invalidHandleTypes[type]=type;},addInvalidHandleId:function(id){if(typeof id!=="string"){id=Dom.generateId(id);} -this.invalidHandleIds[id]=id;},addInvalidHandleClass:function(cssClass){this.invalidHandleClasses.push(cssClass);},removeInvalidHandleType:function(tagName){var type=tagName.toUpperCase();delete this.invalidHandleTypes[type];},removeInvalidHandleId:function(id){if(typeof id!=="string"){id=Dom.generateId(id);} -delete this.invalidHandleIds[id];},removeInvalidHandleClass:function(cssClass){for(var i=0,len=this.invalidHandleClasses.length;i=this.minX;i=i-iTickSize){if(!tickMap[i]){this.xTicks[this.xTicks.length]=i;tickMap[i]=true;}} -for(i=this.initPageX;i<=this.maxX;i=i+iTickSize){if(!tickMap[i]){this.xTicks[this.xTicks.length]=i;tickMap[i]=true;}} -this.xTicks.sort(this.DDM.numericSort);},setYTicks:function(iStartY,iTickSize){this.yTicks=[];this.yTickSize=iTickSize;var tickMap={};for(var i=this.initPageY;i>=this.minY;i=i-iTickSize){if(!tickMap[i]){this.yTicks[this.yTicks.length]=i;tickMap[i]=true;}} -for(i=this.initPageY;i<=this.maxY;i=i+iTickSize){if(!tickMap[i]){this.yTicks[this.yTicks.length]=i;tickMap[i]=true;}} -this.yTicks.sort(this.DDM.numericSort);},setXConstraint:function(iLeft,iRight,iTickSize){this.leftConstraint=parseInt(iLeft,10);this.rightConstraint=parseInt(iRight,10);this.minX=this.initPageX-this.leftConstraint;this.maxX=this.initPageX+this.rightConstraint;if(iTickSize){this.setXTicks(this.initPageX,iTickSize);} -this.constrainX=true;},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks();},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0;},setYConstraint:function(iUp,iDown,iTickSize){this.topConstraint=parseInt(iUp,10);this.bottomConstraint=parseInt(iDown,10);this.minY=this.initPageY-this.topConstraint;this.maxY=this.initPageY+this.bottomConstraint;if(iTickSize){this.setYTicks(this.initPageY,iTickSize);} -this.constrainY=true;},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var dx=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var dy=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(dx,dy);}else{this.setInitPosition();} -if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);} -if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize);}},getTick:function(val,tickArray){if(!tickArray){return val;}else if(tickArray[0]>=val){return tickArray[0];}else{for(var i=0,len=tickArray.length;i=val){var diff1=val-tickArray[i];var diff2=tickArray[next]-val;return(diff2>diff1)?tickArray[i]:tickArray[next];}} -return tickArray[tickArray.length-1];}},toString:function(){return("DragDrop "+this.id);}};})();YAHOO.util.DD=function(id,sGroup,config){if(id){this.init(id,sGroup,config);}};YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop,{scroll:true,autoOffset:function(iPageX,iPageY){var x=iPageX-this.startPageX;var y=iPageY-this.startPageY;this.setDelta(x,y);},setDelta:function(iDeltaX,iDeltaY){this.deltaX=iDeltaX;this.deltaY=iDeltaY;},setDragElPos:function(iPageX,iPageY){var el=this.getDragEl();this.alignElWithMouse(el,iPageX,iPageY);},alignElWithMouse:function(el,iPageX,iPageY){var oCoord=this.getTargetCoord(iPageX,iPageY);if(!this.deltaSetXY){var aCoord=[oCoord.x,oCoord.y];YAHOO.util.Dom.setXY(el,aCoord);var newLeft=parseInt(YAHOO.util.Dom.getStyle(el,"left"),10);var newTop=parseInt(YAHOO.util.Dom.getStyle(el,"top"),10);this.deltaSetXY=[newLeft-oCoord.x,newTop-oCoord.y];}else{YAHOO.util.Dom.setStyle(el,"left",(oCoord.x+this.deltaSetXY[0])+"px");YAHOO.util.Dom.setStyle(el,"top",(oCoord.y+this.deltaSetXY[1])+"px");} -this.cachePosition(oCoord.x,oCoord.y);this.autoScroll(oCoord.x,oCoord.y,el.offsetHeight,el.offsetWidth);},cachePosition:function(iPageX,iPageY){if(iPageX){this.lastPageX=iPageX;this.lastPageY=iPageY;}else{var aCoord=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=aCoord[0];this.lastPageY=aCoord[1];}},autoScroll:function(x,y,h,w){if(this.scroll){var clientH=this.DDM.getClientHeight();var clientW=this.DDM.getClientWidth();var st=this.DDM.getScrollTop();var sl=this.DDM.getScrollLeft();var bot=h+y;var right=w+x;var toBot=(clientH+st-y-this.deltaY);var toRight=(clientW+sl-x-this.deltaX);var thresh=40;var scrAmt=(document.all)?80:30;if(bot>clientH&&toBot0&&y-stclientW&&toRight0&&x-slthis.maxX){x=this.maxX;}} -if(this.constrainY){if(ythis.maxY){y=this.maxY;}} -x=this.getTick(x,this.xTicks);y=this.getTick(y,this.yTicks);return{x:x,y:y};},applyConfig:function(){YAHOO.util.DD.superclass.applyConfig.call(this);this.scroll=(this.config.scroll!==false);},b4MouseDown:function(e){this.setStartPosition();this.autoOffset(YAHOO.util.Event.getPageX(e),YAHOO.util.Event.getPageY(e));},b4Drag:function(e){this.setDragElPos(YAHOO.util.Event.getPageX(e),YAHOO.util.Event.getPageY(e));},toString:function(){return("DD "+this.id);}});YAHOO.util.DDProxy=function(id,sGroup,config){if(id){this.init(id,sGroup,config);this.initFrame();}};YAHOO.util.DDProxy.dragElId="ygddfdiv";YAHOO.extend(YAHOO.util.DDProxy,YAHOO.util.DD,{resizeFrame:true,centerFrame:false,createFrame:function(){var self=this;var body=document.body;if(!body||!body.firstChild){setTimeout(function(){self.createFrame();},50);return;} -var div=this.getDragEl();if(!div){div=document.createElement("div");div.id=this.dragElId;var s=div.style;s.position="absolute";s.visibility="hidden";s.cursor="move";s.border="2px solid #aaa";s.zIndex=999;body.insertBefore(div,body.firstChild);}},initFrame:function(){this.createFrame();},applyConfig:function(){YAHOO.util.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||YAHOO.util.DDProxy.dragElId);},showFrame:function(iPageX,iPageY){var el=this.getEl();var dragEl=this.getDragEl();var s=dragEl.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(s.width,10)/2),Math.round(parseInt(s.height,10)/2));} -this.setDragElPos(iPageX,iPageY);YAHOO.util.Dom.setStyle(dragEl,"visibility","visible");},_resizeProxy:function(){if(this.resizeFrame){var DOM=YAHOO.util.Dom;var el=this.getEl();var dragEl=this.getDragEl();var bt=parseInt(DOM.getStyle(dragEl,"borderTopWidth"),10);var br=parseInt(DOM.getStyle(dragEl,"borderRightWidth"),10);var bb=parseInt(DOM.getStyle(dragEl,"borderBottomWidth"),10);var bl=parseInt(DOM.getStyle(dragEl,"borderLeftWidth"),10);if(isNaN(bt)){bt=0;} -if(isNaN(br)){br=0;} -if(isNaN(bb)){bb=0;} -if(isNaN(bl)){bl=0;} -var newWidth=Math.max(0,el.offsetWidth-br-bl);var newHeight=Math.max(0,el.offsetHeight-bt-bb);DOM.setStyle(dragEl,"width",newWidth+"px");DOM.setStyle(dragEl,"height",newHeight+"px");}},b4MouseDown:function(e){this.setStartPosition();var x=YAHOO.util.Event.getPageX(e);var y=YAHOO.util.Event.getPageY(e);this.autoOffset(x,y);this.setDragElPos(x,y);},b4StartDrag:function(x,y){this.showFrame(x,y);},b4EndDrag:function(e){YAHOO.util.Dom.setStyle(this.getDragEl(),"visibility","hidden");},endDrag:function(e){var DOM=YAHOO.util.Dom;var lel=this.getEl();var del=this.getDragEl();DOM.setStyle(del,"visibility","");DOM.setStyle(lel,"visibility","hidden");YAHOO.util.DDM.moveToEl(lel,del);DOM.setStyle(del,"visibility","hidden");DOM.setStyle(lel,"visibility","");},toString:function(){return("DDProxy "+this.id);}});YAHOO.util.DDTarget=function(id,sGroup,config){if(id){this.initTarget(id,sGroup,config);}};YAHOO.extend(YAHOO.util.DDTarget,YAHOO.util.DragDrop,{toString:function(){return("DDTarget "+this.id);}});YAHOO.register("dragdrop",YAHOO.util.DragDropMgr,{version:"2.2.0",build:"127"}); -YAHOO.util.Attribute=function(hash,owner){if(owner){this.owner=owner;this.configure(hash,true);}};YAHOO.util.Attribute.prototype={name:undefined,value:null,owner:null,readOnly:false,writeOnce:false,_initialConfig:null,_written:false,method:null,validator:null,getValue:function(){return this.value;},setValue:function(value,silent){var beforeRetVal;var owner=this.owner;var name=this.name;var event={type:name,prevValue:this.getValue(),newValue:value};if(this.readOnly||(this.writeOnce&&this._written)){return false;} -if(this.validator&&!this.validator.call(owner,value)){return false;} -if(!silent){beforeRetVal=owner.fireBeforeChangeEvent(event);if(beforeRetVal===false){return false;}} -if(this.method){this.method.call(owner,value);} -this.value=value;this._written=true;event.type=name;if(!silent){this.owner.fireChangeEvent(event);} -return true;},configure:function(map,init){map=map||{};this._written=false;this._initialConfig=this._initialConfig||{};for(var key in map){if(key&&YAHOO.lang.hasOwnProperty(map,key)){this[key]=map[key];if(init){this._initialConfig[key]=map[key];}}}},resetValue:function(){return this.setValue(this._initialConfig.value);},resetConfig:function(){this.configure(this._initialConfig);},refresh:function(silent){this.setValue(this.value,silent);}};(function(){var Lang=YAHOO.util.Lang;YAHOO.util.AttributeProvider=function(){};YAHOO.util.AttributeProvider.prototype={_configs:null,get:function(key){var configs=this._configs||{};var config=configs[key];if(!config){return undefined;} -return config.value;},set:function(key,value,silent){var configs=this._configs||{};var config=configs[key];if(!config){return false;} -return config.setValue(value,silent);},getAttributeKeys:function(){var configs=this._configs;var keys=[];var config;for(var key in configs){config=configs[key];if(Lang.hasOwnProperty(configs,key)&&!Lang.isUndefined(config)){keys[keys.length]=key;}} -return keys;},setAttributes:function(map,silent){for(var key in map){if(Lang.hasOwnProperty(map,key)){this.set(key,map[key],silent);}}},resetValue:function(key,silent){var configs=this._configs||{};if(configs[key]){this.set(key,configs[key]._initialConfig.value,silent);return true;} -return false;},refresh:function(key,silent){var configs=this._configs;key=((Lang.isString(key))?[key]:key)||this.getAttributeKeys();for(var i=0,len=key.length;i-1){return true;}else{return YAHOO.lang.isObject(obj)&&obj.constructor==Array;}},isBoolean:function(obj){return typeof obj=='boolean';},isFunction:function(obj){return typeof obj=='function';},isNull:function(obj){return obj===null;},isNumber:function(obj){return typeof obj=='number'&&isFinite(obj);},isObject:function(obj){return typeof obj=='object'||YAHOO.lang.isFunction(obj);},isString:function(obj){return typeof obj=='string';},isUndefined:function(obj){return typeof obj=='undefined';},hasOwnProperty:function(obj,prop){if(Object.prototype.hasOwnProperty){return obj.hasOwnProperty(prop);} -return!YAHOO.lang.isUndefined(obj[prop])&&obj.constructor.prototype[prop]!==obj[prop];},extend:function(subc,superc,overrides){var F=function(){};F.prototype=superc.prototype;subc.prototype=new F();subc.prototype.constructor=subc;subc.superclass=superc.prototype;if(superc.prototype.constructor==Object.prototype.constructor){superc.prototype.constructor=superc;} -if(overrides){for(var i in overrides){subc.prototype[i]=overrides[i];}}},augment:function(r,s){var rp=r.prototype,sp=s.prototype,a=arguments,i,p;if(a[2]){for(i=2;i-1),isSafari=(ua.indexOf('safari')>-1),isGecko=(!isOpera&&!isSafari&&ua.indexOf('gecko')>-1),isIE=(!isOpera&&ua.indexOf('msie')>-1);var patterns={HYPHEN:/(-[a-z])/i};var toCamel=function(property){if(!patterns.HYPHEN.test(property)){return property;} -if(propertyCache[property]){return propertyCache[property];} -while(patterns.HYPHEN.exec(property)){property=property.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());} -propertyCache[property]=property;return property;};if(document.defaultView&&document.defaultView.getComputedStyle){getStyle=function(el,property){var value=null;var computed=document.defaultView.getComputedStyle(el,'');if(computed){value=computed[toCamel(property)];} -return el.style[property]||value;};}else if(document.documentElement.currentStyle&&isIE){getStyle=function(el,property){switch(toCamel(property)){case'opacity':var val=100;try{val=el.filters['DXImageTransform.Microsoft.Alpha'].opacity;}catch(e){try{val=el.filters('alpha').opacity;}catch(e){}} -return val/100;break;default:var value=el.currentStyle?el.currentStyle[property]:null;return(el.style[property]||value);}};}else{getStyle=function(el,property){return el.style[property];};} -if(isIE){setStyle=function(el,property,val){switch(property){case'opacity':if(typeof el.style.filter=='string'){el.style.filter='alpha(opacity='+val*100+')';if(!el.currentStyle||!el.currentStyle.hasLayout){el.style.zoom=1;}} -break;default:el.style[property]=val;}};}else{setStyle=function(el,property,val){el.style[property]=val;};} -YAHOO.util.Dom={get:function(el){if(!el){return null;} -if(typeof el!='string'&&!(el instanceof Array)){return el;} -if(typeof el=='string'){return document.getElementById(el);} -else{var collection=[];for(var i=0,len=el.length;i=this.left&®ion.right<=this.right&®ion.top>=this.top&®ion.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(region){var t=Math.max(this.top,region.top);var r=Math.min(this.right,region.right);var b=Math.min(this.bottom,region.bottom);var l=Math.max(this.left,region.left);if(b>=t&&r>=l){return new YAHOO.util.Region(t,r,b,l);}else{return null;}};YAHOO.util.Region.prototype.union=function(region){var t=Math.min(this.top,region.top);var r=Math.max(this.right,region.right);var b=Math.max(this.bottom,region.bottom);var l=Math.min(this.left,region.left);return new YAHOO.util.Region(t,r,b,l);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+"}");};YAHOO.util.Region.getRegion=function(el){var p=YAHOO.util.Dom.getXY(el);var t=p[1];var r=p[0]+el.offsetWidth;var b=p[1]+el.offsetHeight;var l=p[0];return new YAHOO.util.Region(t,r,b,l);};YAHOO.util.Point=function(x,y){if(x instanceof Array){y=x[1];x=x[0];} -this.x=this.right=this.left=this[0]=x;this.y=this.top=this.bottom=this[1]=y;};YAHOO.util.Point.prototype=new YAHOO.util.Region();YAHOO.register("dom",YAHOO.util.Dom,{version:"2.2.0",build:"127"}); -if(!YAHOO.util.Event){YAHOO.util.Event=function(){var loadComplete=false;var listeners=[];var unloadListeners=[];var legacyEvents=[];var legacyHandlers=[];var retryCount=0;var onAvailStack=[];var legacyMap=[];var counter=0;var lastError=null;return{POLL_RETRYS:200,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,OBJ:3,ADJ_SCOPE:4,isSafari:(/KHTML/gi).test(navigator.userAgent),webkit:function(){var v=navigator.userAgent.match(/AppleWebKit\/([^ ]*)/);if(v&&v[1]){return v[1];} -return null;}(),isIE:(!this.webkit&&!navigator.userAgent.match(/opera/gi)&&navigator.userAgent.match(/msie/gi)),_interval:null,startInterval:function(){if(!this._interval){var self=this;var callback=function(){self._tryPreloadAttach();};this._interval=setInterval(callback,this.POLL_INTERVAL);}},onAvailable:function(p_id,p_fn,p_obj,p_override){onAvailStack.push({id:p_id,fn:p_fn,obj:p_obj,override:p_override,checkReady:false});retryCount=this.POLL_RETRYS;this.startInterval();},onContentReady:function(p_id,p_fn,p_obj,p_override){onAvailStack.push({id:p_id,fn:p_fn,obj:p_obj,override:p_override,checkReady:true});retryCount=this.POLL_RETRYS;this.startInterval();},addListener:function(el,sType,fn,obj,override){if(!fn||!fn.call){return false;} -if(this._isValidCollection(el)){var ok=true;for(var i=0,len=el.length;i=0){cacheItem=listeners[index];} -if(!el||!cacheItem){return false;} -if(this.useLegacyEvent(el,sType)){var legacyIndex=this.getLegacyIndex(el,sType);var llist=legacyHandlers[legacyIndex];if(llist){for(i=0,len=llist.length;i0);} -var notAvail=[];for(var i=0,len=onAvailStack.length;i0){for(var i=0,len=searchList.length;i0){j=listeners.length;while(j){index=j-1;l=listeners[index];if(l){EU.removeListener(l[EU.EL],l[EU.TYPE],l[EU.FN],index);} -j=j-1;} -l=null;EU.clearCache();} -for(i=0,len=legacyEvents.length;i0){param=args[0];} -ret=s.fn.call(scope,param,s.obj);}else{ret=s.fn.call(scope,this.type,args,s.obj);} -if(false===ret){if(!this.silent){} -return false;}}} -return true;},unsubscribeAll:function(){for(var i=0,len=this.subscribers.length;i - * YAHOO.env.getVersion for the description of the version data structure. - * @property listener - * @static - */ -if (typeof YAHOO == "undefined") { - /** - * The YAHOO global namespace object. If YAHOO is already defined, the - * existing YAHOO object will not be overwritten so that defined - * namespaces are preserved. - * @class YAHOO - * @static - */ - var YAHOO = {}; -} - -/** - * Returns the namespace specified and creates it if it doesn't exist - *
    - * YAHOO.namespace("property.package");
    - * YAHOO.namespace("YAHOO.property.package");
    - * 
    - * Either of the above would create YAHOO.property, then - * YAHOO.property.package - * - * Be careful when naming packages. Reserved words may work in some browsers - * and not others. For instance, the following will fail in Safari: - *
    - * YAHOO.namespace("really.long.nested.namespace");
    - * 
    - * This fails because "long" is a future reserved word in ECMAScript - * - * @method namespace - * @static - * @param {String*} arguments 1-n namespaces to create - * @return {Object} A reference to the last namespace object created - */ -YAHOO.namespace = function() { - var a=arguments, o=null, i, j, d; - for (i=0; i - *
    name:
    The name of the module
    - *
    version:
    The version in use
    - *
    build:
    The build number in use
    - *
    versions:
    All versions that were registered
    - *
    builds:
    All builds that were registered.
    - *
    mainClass:
    An object that was was stamped with the - * current version and build. If - * mainClass.VERSION != version or mainClass.BUILD != build, - * multiple versions of pieces of the library have been - * loaded, potentially causing issues.
    - * - * - * @method getVersion - * @static - * @param {String} name the name of the module (event, slider, etc) - * @return {Object} The version info - */ - getVersion: function(name) { - return YAHOO.env.modules[name] || null; - } -}; - -/** - * Provides the language utilites and extensions used by the library - * @class YAHOO.lang - */ -YAHOO.lang = { - /** - * Determines whether or not the provided object is an array - * @method isArray - * @param {any} obj The object being testing - * @return Boolean - */ - isArray: function(obj) { // frames lose type, so test constructor string - if (obj.constructor && obj.constructor.toString().indexOf('Array') > -1) { - return true; - } else { - return YAHOO.lang.isObject(obj) && obj.constructor == Array; - } - }, - - /** - * Determines whether or not the provided object is a boolean - * @method isBoolean - * @param {any} obj The object being testing - * @return Boolean - */ - isBoolean: function(obj) { - return typeof obj == 'boolean'; - }, - - /** - * Determines whether or not the provided object is a function - * @method isFunction - * @param {any} obj The object being testing - * @return Boolean - */ - isFunction: function(obj) { - return typeof obj == 'function'; - }, - - /** - * Determines whether or not the provided object is null - * @method isNull - * @param {any} obj The object being testing - * @return Boolean - */ - isNull: function(obj) { - return obj === null; - }, - - /** - * Determines whether or not the provided object is a legal number - * @method isNumber - * @param {any} obj The object being testing - * @return Boolean - */ - isNumber: function(obj) { - return typeof obj == 'number' && isFinite(obj); - }, - - /** - * Determines whether or not the provided object is of type object - * or function - * @method isObject - * @param {any} obj The object being testing - * @return Boolean - */ - isObject: function(obj) { - return typeof obj == 'object' || YAHOO.lang.isFunction(obj); - }, - - /** - * Determines whether or not the provided object is a string - * @method isString - * @param {any} obj The object being testing - * @return Boolean - */ - isString: function(obj) { - return typeof obj == 'string'; - }, - - /** - * Determines whether or not the provided object is undefined - * @method isUndefined - * @param {any} obj The object being testing - * @return Boolean - */ - isUndefined: function(obj) { - return typeof obj == 'undefined'; - }, - - /** - * Determines whether or not the property was added - * to the object instance. Returns false if the property is not present - * in the object, or was inherited from the prototype. - * This abstraction is provided to enable hasOwnProperty for Safari 1.3.x. - * There is a discrepancy between YAHOO.lang.hasOwnProperty and - * Object.prototype.hasOwnProperty when the property is a primitive added to - * both the instance AND prototype with the same value: - *
    -     * var A = function() {};
    -     * A.prototype.foo = 'foo';
    -     * var a = new A();
    -     * a.foo = 'foo';
    -     * alert(a.hasOwnProperty('foo')); // true
    -     * alert(YAHOO.lang.hasOwnProperty(a, 'foo')); // false when using fallback
    -     * 
    - * @method hasOwnProperty - * @param {any} obj The object being testing - * @return Boolean - */ - hasOwnProperty: function(obj, prop) { - if (Object.prototype.hasOwnProperty) { - return obj.hasOwnProperty(prop); - } - - return !YAHOO.lang.isUndefined(obj[prop]) && - obj.constructor.prototype[prop] !== obj[prop]; - }, - - /** - * Utility to set up the prototype, constructor and superclass properties to - * support an inheritance strategy that can chain constructors and methods. - * - * @method extend - * @static - * @param {Function} subc the object to modify - * @param {Function} superc the object to inherit - * @param {Object} overrides additional properties/methods to add to the - * subclass prototype. These will override the - * matching items obtained from the superclass - * if present. - */ - extend: function(subc, superc, overrides) { - var F = function() {}; - F.prototype=superc.prototype; - subc.prototype=new F(); - subc.prototype.constructor=subc; - subc.superclass=superc.prototype; - if (superc.prototype.constructor == Object.prototype.constructor) { - superc.prototype.constructor=superc; - } - - if (overrides) { - for (var i in overrides) { - subc.prototype[i]=overrides[i]; - } - } - }, - - /** - * Applies all prototype properties in the supplier to the receiver if the - * receiver does not have these properties yet. Optionally, one or more - * methods/properties can be specified (as additional parameters). This - * option will overwrite the property if receiver has it already. - * - * @method augment - * @static - * @param {Function} r the object to receive the augmentation - * @param {Function} s the object that supplies the properties to augment - * @param {String*} arguments zero or more properties methods to augment the - * receiver with. If none specified, everything - * in the supplier will be used unless it would - * overwrite an existing property in the receiver - */ - augment: function(r, s) { - var rp=r.prototype, sp=s.prototype, a=arguments, i, p; - if (a[2]) { - for (i=2; iYAHOO.lang - * @class YAHOO.util.Lang - */ -YAHOO.util.Lang = YAHOO.lang; - -/** - * An alias for YAHOO.lang.augment - * @for YAHOO - * @method augment - * @static - * @param {Function} r the object to receive the augmentation - * @param {Function} s the object that supplies the properties to augment - * @param {String*} arguments zero or more properties methods to augment the - * receiver with. If none specified, everything - * in the supplier will be used unless it would - * overwrite an existing property in the receiver - */ -YAHOO.augment = YAHOO.lang.augment; - -/** - * An alias for YAHOO.lang.extend - * @method extend - * @static - * @param {Function} subc the object to modify - * @param {Function} superc the object to inherit - * @param {Object} overrides additional properties/methods to add to the - * subclass prototype. These will override the - * matching items obtained from the superclass - * if present. - */ -YAHOO.extend = YAHOO.lang.extend; - -YAHOO.register("yahoo", YAHOO, {version: "2.2.0", build: "127"}); diff --git a/interface/ispconfig/interface/js/yui/yahoo/yahoo-min.js b/interface/ispconfig/interface/js/yui/yahoo/yahoo-min.js deleted file mode 100644 index 0747668a4..000000000 --- a/interface/ispconfig/interface/js/yui/yahoo/yahoo-min.js +++ /dev/null @@ -1,15 +0,0 @@ -/* -Copyright (c) 2007, Yahoo! Inc. All rights reserved. -Code licensed under the BSD License: -http://developer.yahoo.net/yui/license.txt -version: 2.2.0 -*/ - -if(typeof YAHOO=="undefined"){var YAHOO={};} -YAHOO.namespace=function(){var a=arguments,o=null,i,j,d;for(i=0;i-1){return true;}else{return YAHOO.lang.isObject(obj)&&obj.constructor==Array;}},isBoolean:function(obj){return typeof obj=='boolean';},isFunction:function(obj){return typeof obj=='function';},isNull:function(obj){return obj===null;},isNumber:function(obj){return typeof obj=='number'&&isFinite(obj);},isObject:function(obj){return typeof obj=='object'||YAHOO.lang.isFunction(obj);},isString:function(obj){return typeof obj=='string';},isUndefined:function(obj){return typeof obj=='undefined';},hasOwnProperty:function(obj,prop){if(Object.prototype.hasOwnProperty){return obj.hasOwnProperty(prop);} -return!YAHOO.lang.isUndefined(obj[prop])&&obj.constructor.prototype[prop]!==obj[prop];},extend:function(subc,superc,overrides){var F=function(){};F.prototype=superc.prototype;subc.prototype=new F();subc.prototype.constructor=subc;subc.superclass=superc.prototype;if(superc.prototype.constructor==Object.prototype.constructor){superc.prototype.constructor=superc;} -if(overrides){for(var i in overrides){subc.prototype[i]=overrides[i];}}},augment:function(r,s){var rp=r.prototype,sp=s.prototype,a=arguments,i,p;if(a[2]){for(i=2;i - * YAHOO.env.getVersion for the description of the version data structure. - * @property listener - * @static - */ -if (typeof YAHOO == "undefined") { - /** - * The YAHOO global namespace object. If YAHOO is already defined, the - * existing YAHOO object will not be overwritten so that defined - * namespaces are preserved. - * @class YAHOO - * @static - */ - var YAHOO = {}; -} - -/** - * Returns the namespace specified and creates it if it doesn't exist - *
    - * YAHOO.namespace("property.package");
    - * YAHOO.namespace("YAHOO.property.package");
    - * 
    - * Either of the above would create YAHOO.property, then - * YAHOO.property.package - * - * Be careful when naming packages. Reserved words may work in some browsers - * and not others. For instance, the following will fail in Safari: - *
    - * YAHOO.namespace("really.long.nested.namespace");
    - * 
    - * This fails because "long" is a future reserved word in ECMAScript - * - * @method namespace - * @static - * @param {String*} arguments 1-n namespaces to create - * @return {Object} A reference to the last namespace object created - */ -YAHOO.namespace = function() { - var a=arguments, o=null, i, j, d; - for (i=0; i - *
    name:
    The name of the module
    - *
    version:
    The version in use
    - *
    build:
    The build number in use
    - *
    versions:
    All versions that were registered
    - *
    builds:
    All builds that were registered.
    - *
    mainClass:
    An object that was was stamped with the - * current version and build. If - * mainClass.VERSION != version or mainClass.BUILD != build, - * multiple versions of pieces of the library have been - * loaded, potentially causing issues.
    - * - * - * @method getVersion - * @static - * @param {String} name the name of the module (event, slider, etc) - * @return {Object} The version info - */ - getVersion: function(name) { - return YAHOO.env.modules[name] || null; - } -}; - -/** - * Provides the language utilites and extensions used by the library - * @class YAHOO.lang - */ -YAHOO.lang = { - /** - * Determines whether or not the provided object is an array - * @method isArray - * @param {any} obj The object being testing - * @return Boolean - */ - isArray: function(obj) { // frames lose type, so test constructor string - if (obj.constructor && obj.constructor.toString().indexOf('Array') > -1) { - return true; - } else { - return YAHOO.lang.isObject(obj) && obj.constructor == Array; - } - }, - - /** - * Determines whether or not the provided object is a boolean - * @method isBoolean - * @param {any} obj The object being testing - * @return Boolean - */ - isBoolean: function(obj) { - return typeof obj == 'boolean'; - }, - - /** - * Determines whether or not the provided object is a function - * @method isFunction - * @param {any} obj The object being testing - * @return Boolean - */ - isFunction: function(obj) { - return typeof obj == 'function'; - }, - - /** - * Determines whether or not the provided object is null - * @method isNull - * @param {any} obj The object being testing - * @return Boolean - */ - isNull: function(obj) { - return obj === null; - }, - - /** - * Determines whether or not the provided object is a legal number - * @method isNumber - * @param {any} obj The object being testing - * @return Boolean - */ - isNumber: function(obj) { - return typeof obj == 'number' && isFinite(obj); - }, - - /** - * Determines whether or not the provided object is of type object - * or function - * @method isObject - * @param {any} obj The object being testing - * @return Boolean - */ - isObject: function(obj) { - return typeof obj == 'object' || YAHOO.lang.isFunction(obj); - }, - - /** - * Determines whether or not the provided object is a string - * @method isString - * @param {any} obj The object being testing - * @return Boolean - */ - isString: function(obj) { - return typeof obj == 'string'; - }, - - /** - * Determines whether or not the provided object is undefined - * @method isUndefined - * @param {any} obj The object being testing - * @return Boolean - */ - isUndefined: function(obj) { - return typeof obj == 'undefined'; - }, - - /** - * Determines whether or not the property was added - * to the object instance. Returns false if the property is not present - * in the object, or was inherited from the prototype. - * This abstraction is provided to enable hasOwnProperty for Safari 1.3.x. - * There is a discrepancy between YAHOO.lang.hasOwnProperty and - * Object.prototype.hasOwnProperty when the property is a primitive added to - * both the instance AND prototype with the same value: - *
    -     * var A = function() {};
    -     * A.prototype.foo = 'foo';
    -     * var a = new A();
    -     * a.foo = 'foo';
    -     * alert(a.hasOwnProperty('foo')); // true
    -     * alert(YAHOO.lang.hasOwnProperty(a, 'foo')); // false when using fallback
    -     * 
    - * @method hasOwnProperty - * @param {any} obj The object being testing - * @return Boolean - */ - hasOwnProperty: function(obj, prop) { - if (Object.prototype.hasOwnProperty) { - return obj.hasOwnProperty(prop); - } - - return !YAHOO.lang.isUndefined(obj[prop]) && - obj.constructor.prototype[prop] !== obj[prop]; - }, - - /** - * Utility to set up the prototype, constructor and superclass properties to - * support an inheritance strategy that can chain constructors and methods. - * - * @method extend - * @static - * @param {Function} subc the object to modify - * @param {Function} superc the object to inherit - * @param {Object} overrides additional properties/methods to add to the - * subclass prototype. These will override the - * matching items obtained from the superclass - * if present. - */ - extend: function(subc, superc, overrides) { - var F = function() {}; - F.prototype=superc.prototype; - subc.prototype=new F(); - subc.prototype.constructor=subc; - subc.superclass=superc.prototype; - if (superc.prototype.constructor == Object.prototype.constructor) { - superc.prototype.constructor=superc; - } - - if (overrides) { - for (var i in overrides) { - subc.prototype[i]=overrides[i]; - } - } - }, - - /** - * Applies all prototype properties in the supplier to the receiver if the - * receiver does not have these properties yet. Optionally, one or more - * methods/properties can be specified (as additional parameters). This - * option will overwrite the property if receiver has it already. - * - * @method augment - * @static - * @param {Function} r the object to receive the augmentation - * @param {Function} s the object that supplies the properties to augment - * @param {String*} arguments zero or more properties methods to augment the - * receiver with. If none specified, everything - * in the supplier will be used unless it would - * overwrite an existing property in the receiver - */ - augment: function(r, s) { - var rp=r.prototype, sp=s.prototype, a=arguments, i, p; - if (a[2]) { - for (i=2; iYAHOO.lang - * @class YAHOO.util.Lang - */ -YAHOO.util.Lang = YAHOO.lang; - -/** - * An alias for YAHOO.lang.augment - * @for YAHOO - * @method augment - * @static - * @param {Function} r the object to receive the augmentation - * @param {Function} s the object that supplies the properties to augment - * @param {String*} arguments zero or more properties methods to augment the - * receiver with. If none specified, everything - * in the supplier will be used unless it would - * overwrite an existing property in the receiver - */ -YAHOO.augment = YAHOO.lang.augment; - -/** - * An alias for YAHOO.lang.extend - * @method extend - * @static - * @param {Function} subc the object to modify - * @param {Function} superc the object to inherit - * @param {Object} overrides additional properties/methods to add to the - * subclass prototype. These will override the - * matching items obtained from the superclass - * if present. - */ -YAHOO.extend = YAHOO.lang.extend; - -YAHOO.register("yahoo", YAHOO, {version: "2.2.0", build: "127"}); diff --git a/interface/ispconfig/interface/keepalive.php b/interface/ispconfig/interface/keepalive.php deleted file mode 100644 index 6ba2b8f59..000000000 --- a/interface/ispconfig/interface/keepalive.php +++ /dev/null @@ -1,36 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/login/index.php b/interface/ispconfig/interface/login/index.php deleted file mode 100644 index a1e2befa4..000000000 --- a/interface/ispconfig/interface/login/index.php +++ /dev/null @@ -1,203 +0,0 @@ -uses('tpl'); - $app->tpl->newTemplate('form.tpl.htm'); - - $error = ''; - - $app->load_language_file('web/login/lib/lang/'.$conf["language"].'.lng'); - - - //* Login Form was send - if(count($_POST) > 0) { - - //** Check variables - if(!preg_match("/^[\w\.\-\_]{1,64}$/", $_POST['username'])) $error = $app->lng('user_regex_error'); - if(!preg_match("/^.{1,64}$/i", $_POST['passwort'])) $error = $app->lng('pw_error_length'); - - //** iporting variables - $ip = $app->db->quote(ip2long($_SERVER['REMOTE_ADDR'])); - $username = $app->db->quote($_POST['username']); - $passwort = $app->db->quote($_POST['passwort']); - $loginAs = false; - $time = time(); - - if($username != '' && $passwort != '' && $error == '') { - /* - * Check, if there is a "login as" instead of a "normal" login - */ - if (isset($_SESSION['s']['user']) && $_SESSION['s']['user']['active'] == 1){ - /* - * only the admin can "login as" so if the user is NOT a admin, we - * open the startpage (after killing the old session), so the user - * is logout and has to start again! - */ - if ($_SESSION['s']['user']['typ'] != 'admin') { - /* - * The actual user is NOT a admin, but maybe the admin - * has logged in as "normal" user bevore... - */ - if (isset($_SESSION['s_old'])&& ($_SESSION['s_old']['user']['typ'] == 'admin')){ - /* The "old" user is admin, so everything is ok */ - } - else { - die("You don't have the right to 'login as'!"); - } - } - $loginAs = true; - } - else { - /* normal login */ - $loginAs = false; - } - - //* Check if there are already wrong logins - $sql = "SELECT * FROM `attempts_login` WHERE `ip`= '{$ip}' AND `login_time` > (NOW() - INTERVAL 1 MINUTE) LIMIT 1"; - $alreadyfailed = $app->db->queryOneRecord($sql); - //* login to much wrong - if($alreadyfailed['times'] > 5) { - $error = $app->lng('error_user_too_many_logins'); - } else { - if ($loginAs){ - $sql = "SELECT * FROM sys_user WHERE USERNAME = '$username' and PASSWORT = '". $passwort. "'"; - $user = $app->db->queryOneRecord($sql); - } else { - $sql = "SELECT * FROM sys_user WHERE USERNAME = '$username'"; - $user = $app->db->queryOneRecord($sql); - if($user && $user['active'] == 1) { - $saved_password = stripslashes($user['passwort']); - if(substr($saved_password,0,3) == '$1$') { - //* The password is crypt-md5 encrypted - $salt = '$1$'.substr($saved_password,3,8).'$'; - if(crypt($passwort,$salt) != $saved_password) { - $user = false; - } - } else { - //* The password is md5 encrypted - if(md5($passwort) != $saved_password) { - $user = false; - } - } - } else { - $user = false; - } - } - - if($user) { - if($user['active'] == 1) { - // User login right, so attempts can be deleted - $sql = "DELETE FROM `attempts_login` WHERE `ip`='{$ip}'"; - $app->db->query($sql); - $user = $app->db->toLower($user); - if ($loginAs) $oldSession = $_SESSION['s']; - $_SESSION = array(); - if ($loginAs) $_SESSION['s_old'] = $oldSession; // keep the way back! - $_SESSION['s']['user'] = $user; - $_SESSION['s']['user']['theme'] = isset($user['app_theme']) ? $user['app_theme'] : 'default'; - $_SESSION['s']['language'] = $user['language']; - $_SESSION["s"]['theme'] = $_SESSION['s']['user']['theme']; - - if(is_file($_SESSION['s']['user']['startmodule'].'/lib/module.conf.php')) { - include_once($_SESSION['s']['user']['startmodule'].'/lib/module.conf.php'); - $_SESSION['s']['module'] = $module; - } - - $app->plugin->raiseEvent('login',$this); - - echo 'HEADER_REDIRECT:'.$_SESSION['s']['module']['startpage']; - - exit; - } else { - $error = $app->lng('error_user_blocked'); - } - } else { - if(!$alreadyfailed['times'] ) - { - //* user login the first time wrong - $sql = "INSERT INTO `attempts_login` (`ip`, `times`, `login_time`) VALUES ('{$ip}', 1, NOW())"; - $app->db->query($sql); - } elseif($alreadyfailed['times'] >= 1) { - //* update times wrong - $sql = "UPDATE `attempts_login` SET `times`=`times`+1, `login_time`=NOW() WHERE `login_time` >= '{$time}' LIMIT 1"; - $app->db->query($sql); - } - //* Incorrect login - Username and password incorrect - $error = $app->lng('error_user_password_incorrect'); - if($app->db->errorMessage != '') $error .= '
    '.$app->db->errorMessage != ''; - } - } - } else { - //* Username or password empty - if($error == '') $error = $app->lng('error_user_password_empty'); - } - } - if($error != ''){ - $error = '

    Error

    '.$error.'
    '; - } - - - - $app->tpl->setVar('error', $error); - $app->tpl->setVar('username_txt', $app->lng('username_txt')); - $app->tpl->setVar('password_txt', $app->lng('password_txt')); - $app->tpl->setVar('login_button_txt', $app->lng('login_button_txt')); - $app->tpl->setInclude('content_tpl','login/templates/index.htm'); - $app->tpl_defaults(); - - $this->status = 'OK'; - - return $app->tpl->grab(); - - } // << end function - -} // << end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/login/lib/lang/bg.lng b/interface/ispconfig/interface/login/lib/lang/bg.lng deleted file mode 100644 index 9a9103417..000000000 --- a/interface/ispconfig/interface/login/lib/lang/bg.lng +++ /dev/null @@ -1,17 +0,0 @@ - 64 characters.'; -$wb['error_user_password_empty'] = 'Username or Password empty.'; -$wb['error_user_password_incorrect'] = 'Username or Password wrong.'; -$wb['error_user_blocked'] = 'User is blocked.'; -$wb['error_user_too_many_logins'] = 'To many wrong logins, Please retry it after 15 minutes'; -$wb['username_txt'] = 'Username'; -$wb['password_txt'] = 'Password'; -$wb['login_button_txt'] = 'Login'; -?> diff --git a/interface/ispconfig/interface/login/lib/lang/br.lng b/interface/ispconfig/interface/login/lib/lang/br.lng deleted file mode 100644 index 4f2d676d6..000000000 --- a/interface/ispconfig/interface/login/lib/lang/br.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/login/lib/lang/de.lng b/interface/ispconfig/interface/login/lib/lang/de.lng deleted file mode 100644 index 855798aa6..000000000 --- a/interface/ispconfig/interface/login/lib/lang/de.lng +++ /dev/null @@ -1,17 +0,0 @@ - 64 Zeichen.'; -$wb['error_user_password_empty'] = 'Bwnutzername oder Passwort leer.'; -$wb['error_user_password_incorrect'] = 'Benutzername oder Passwort falsch.'; -$wb['error_user_blocked'] = 'Benutzer ist gesperrt.'; -$wb['error_user_too_many_logins'] = 'Zu viele falsche Logins. Bitte nach 15 Minuten nochmal probieren.'; -$wb['username_txt'] = 'Benutzername'; -$wb['password_txt'] = 'Passwort'; -$wb['login_button_txt'] = 'Login'; -?> diff --git a/interface/ispconfig/interface/login/lib/lang/en.lng b/interface/ispconfig/interface/login/lib/lang/en.lng deleted file mode 100644 index fc488cd56..000000000 --- a/interface/ispconfig/interface/login/lib/lang/en.lng +++ /dev/null @@ -1,22 +0,0 @@ - 64 characters.'; - -$wb['username_txt'] = "Username"; -$wb['password_txt'] = "Password"; -$wb['login_button_txt'] = "Login"; - -?> diff --git a/interface/ispconfig/interface/login/lib/lang/es.lng b/interface/ispconfig/interface/login/lib/lang/es.lng deleted file mode 100644 index 9db2714ea..000000000 --- a/interface/ispconfig/interface/login/lib/lang/es.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/login/lib/lang/fi.lng b/interface/ispconfig/interface/login/lib/lang/fi.lng deleted file mode 100644 index 7385385af..000000000 --- a/interface/ispconfig/interface/login/lib/lang/fi.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/login/lib/lang/fr.lng b/interface/ispconfig/interface/login/lib/lang/fr.lng deleted file mode 100644 index 115a33a20..000000000 --- a/interface/ispconfig/interface/login/lib/lang/fr.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/login/lib/lang/hu.lng b/interface/ispconfig/interface/login/lib/lang/hu.lng deleted file mode 100644 index 109276262..000000000 --- a/interface/ispconfig/interface/login/lib/lang/hu.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/login/lib/lang/it.lng b/interface/ispconfig/interface/login/lib/lang/it.lng deleted file mode 100644 index 23940d3f2..000000000 --- a/interface/ispconfig/interface/login/lib/lang/it.lng +++ /dev/null @@ -1,17 +0,0 @@ - 64 characters.'; -$wb['error_user_password_empty'] = 'Username or Password empty.'; -$wb['error_user_password_incorrect'] = 'Username or Password wrong.'; -$wb['error_user_blocked'] = 'User is blocked.'; -$wb['error_user_too_many_logins'] = 'To many wrong logins, Please retry it after 15 minutes'; -$wb['username_txt'] = 'Username'; -$wb['password_txt'] = 'Password'; -$wb['login_button_txt'] = 'Login'; -?> diff --git a/interface/ispconfig/interface/login/lib/lang/ja.lng b/interface/ispconfig/interface/login/lib/lang/ja.lng deleted file mode 100644 index 7cfb1d8bb..000000000 --- a/interface/ispconfig/interface/login/lib/lang/ja.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/login/lib/lang/nl.lng b/interface/ispconfig/interface/login/lib/lang/nl.lng deleted file mode 100644 index 46e1175c8..000000000 --- a/interface/ispconfig/interface/login/lib/lang/nl.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/login/lib/lang/pl.lng b/interface/ispconfig/interface/login/lib/lang/pl.lng deleted file mode 100644 index 52f31b61b..000000000 --- a/interface/ispconfig/interface/login/lib/lang/pl.lng +++ /dev/null @@ -1,17 +0,0 @@ - 64 znaki.'; -$wb['error_user_password_empty'] = 'Username or Password empty.'; -$wb['error_user_password_incorrect'] = 'Username or Password wrong.'; -$wb['error_user_blocked'] = 'User is blocked.'; -$wb['error_user_too_many_logins'] = 'To many wrong logins, Please retry it after 15 minutes'; -$wb['username_txt'] = 'Username'; -$wb['password_txt'] = 'Password'; -$wb['login_button_txt'] = 'Login'; -?> diff --git a/interface/ispconfig/interface/login/lib/lang/pt.lng b/interface/ispconfig/interface/login/lib/lang/pt.lng deleted file mode 100644 index 48e217f59..000000000 --- a/interface/ispconfig/interface/login/lib/lang/pt.lng +++ /dev/null @@ -1,18 +0,0 @@ - - diff --git a/interface/ispconfig/interface/login/lib/lang/ro.lng b/interface/ispconfig/interface/login/lib/lang/ro.lng deleted file mode 100644 index bcd64f446..000000000 --- a/interface/ispconfig/interface/login/lib/lang/ro.lng +++ /dev/null @@ -1,17 +0,0 @@ - 64 caractere.'; -$wb['error_user_password_empty'] = 'Username or Password empty.'; -$wb['error_user_password_incorrect'] = 'Username or Password wrong.'; -$wb['error_user_blocked'] = 'User is blocked.'; -$wb['error_user_too_many_logins'] = 'To many wrong logins, Please retry it after 15 minutes'; -$wb['username_txt'] = 'Username'; -$wb['password_txt'] = 'Password'; -$wb['login_button_txt'] = 'Login'; -?> diff --git a/interface/ispconfig/interface/login/lib/lang/ru.lng b/interface/ispconfig/interface/login/lib/lang/ru.lng deleted file mode 100644 index 200d43d97..000000000 --- a/interface/ispconfig/interface/login/lib/lang/ru.lng +++ /dev/null @@ -1,18 +0,0 @@ - - diff --git a/interface/ispconfig/interface/login/lib/lang/se.lng b/interface/ispconfig/interface/login/lib/lang/se.lng deleted file mode 100644 index 24fbbe1e0..000000000 --- a/interface/ispconfig/interface/login/lib/lang/se.lng +++ /dev/null @@ -1,17 +0,0 @@ - 64 characters.'; -$wb['error_user_password_empty'] = 'Username or Password empty.'; -$wb['error_user_password_incorrect'] = 'Username or Password wrong.'; -$wb['error_user_blocked'] = 'User is blocked.'; -$wb['error_user_too_many_logins'] = 'To many wrong logins, Please retry it after 15 minutes'; -$wb['username_txt'] = 'Username'; -$wb['password_txt'] = 'Password'; -$wb['login_button_txt'] = 'Login'; -?> diff --git a/interface/ispconfig/interface/login/lib/lang/sk.lng b/interface/ispconfig/interface/login/lib/lang/sk.lng deleted file mode 100644 index ff376aef1..000000000 --- a/interface/ispconfig/interface/login/lib/lang/sk.lng +++ /dev/null @@ -1,17 +0,0 @@ - 64 znakov.'; -$wb['username_txt'] = 'Užívate?ské meno'; -$wb['password_txt'] = 'Heslo'; -$wb['login_button_txt'] = 'Prihlásenie'; -?> diff --git a/interface/ispconfig/interface/login/lib/lang/tr.lng b/interface/ispconfig/interface/login/lib/lang/tr.lng deleted file mode 100644 index 73d464b8a..000000000 --- a/interface/ispconfig/interface/login/lib/lang/tr.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/login/lib/module.conf.php b/interface/ispconfig/interface/login/lib/module.conf.php deleted file mode 100644 index b199ad575..000000000 --- a/interface/ispconfig/interface/login/lib/module.conf.php +++ /dev/null @@ -1,6 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/login/logout.php b/interface/ispconfig/interface/login/logout.php deleted file mode 100644 index bb3ba95eb..000000000 --- a/interface/ispconfig/interface/login/logout.php +++ /dev/null @@ -1,80 +0,0 @@ -


    - Do you want to re-login as admin or log out?
    -
    - - -
    - - -
    - - -
    - '; - exit; -} - -$app->plugin->raiseEvent('logout',true); - -$_SESSION["s"]["user"] = null; -$_SESSION["s"]["module"] = null; -$_SESSION['s_old'] = null; - -//header("Location: ../index.php?phpsessid=".$_SESSION["s"]["id"]); - -if($_SESSION["s"]["site"]["logout"] != '') { - echo('URL_REDIRECT:'.$_SESSION["s"]["site"]["logout"]); -} else { - if($conf["interface_logout_url"] != '') { - echo('URL_REDIRECT:'.$conf["interface_logout_url"]); - } else { - echo('URL_REDIRECT:index.php'); - } -} -exit; -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/login/password_reset.php b/interface/ispconfig/interface/login/password_reset.php deleted file mode 100644 index ebe8154e4..000000000 --- a/interface/ispconfig/interface/login/password_reset.php +++ /dev/null @@ -1,92 +0,0 @@ -uses('tpl'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl','templates/password_reset.htm'); - -$app->tpl_defaults(); - -include(ISPC_ROOT_PATH.'/web/login/lib/lang/'.$_SESSION['s']['language'].'.lng'); -$app->tpl->setVar($wb); - -if(isset($_POST['username']) && $_POST['username'] != '' && $_POST['email'] != '' && $_POST['username'] != 'admin') { - - if(!preg_match("/^[\w\.\-\_]{1,64}$/", $_POST['username'])) die($app->lng('user_regex_error')); - if(!preg_match("/^\w+[\w.-]*\w+@\w+[\w.-]*\w+\.[a-z]{2,10}$/i", $_POST['email'])) die($app->lng('email_error')); - - $username = $app->db->quote($_POST['username']); - $email = $app->db->quote($_POST['email']); - - $client = $app->db->queryOneRecord("SELECT * FROM client WHERE username = '$username' AND email = '$email'"); - - if($client['client_id'] > 0) { - $new_password = md5 (uniqid (rand())); - $salt="$1$"; - $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - for ($n=0;$n<8;$n++) { - //$salt.=chr(mt_rand(64,126)); - $salt.=$base64_alphabet[mt_rand(0,63)]; - } - $salt.="$"; - $new_password_encrypted = crypt($new_password,$salt); - $new_password_encrypted = $app->db->quote($new_password_encrypted); - - $username = $app->db->quote($client['username']); - $app->db->query("UPDATE sys_user SET passwort = '$new_password_encrypted' WHERE username = '$username'"); - $app->db->query("UPDATE client SET ´password´ = '$new_password_encrypted' WHERE username = '$username'"); - $app->tpl->setVar("message",$wb['pw_reset']); - - mail($client['email'],$wb['pw_reset_mail_title'],$wb['pw_reset_mail_msg'].$new_password); - - $app->plugin->raiseEvent('password_reset',true); - - } else { - $app->tpl->setVar("message",$wb['pw_error']); - } - -} else { - $app->tpl->setVar("message",$wb['pw_error_noinput']); -} - - - -$app->tpl_defaults(); -$app->tpl->pparse(); - - - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/login/templates/index.htm b/interface/ispconfig/interface/login/templates/index.htm deleted file mode 100644 index cd12199a5..000000000 --- a/interface/ispconfig/interface/login/templates/index.htm +++ /dev/null @@ -1,33 +0,0 @@ -

    Login

    -

    - - diff --git a/interface/ispconfig/interface/login/templates/password_reset.htm b/interface/ispconfig/interface/login/templates/password_reset.htm deleted file mode 100644 index f3f99d225..000000000 --- a/interface/ispconfig/interface/login/templates/password_reset.htm +++ /dev/null @@ -1,33 +0,0 @@ -

    Password Reset

    -

    - -
    - - -

    -
    - -

    ERROR

    -
    - -
    -
    Password reset -
    - - -
    -
    - - -
    -
    - - - - -
    - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/form/mail_alias.tform.php b/interface/ispconfig/interface/mail/form/mail_alias.tform.php deleted file mode 100644 index b74e36a12..000000000 --- a/interface/ispconfig/interface/mail/form/mail_alias.tform.php +++ /dev/null @@ -1,114 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['alias'] = array ( - 'title' => "Email Alias", - 'width' => 100, - 'template' => "templates/mail_alias_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'source' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISEMAIL', - 'errmsg'=> 'email_error_isemail'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'destination' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT email FROM mail_user WHERE {AUTHSQL} ORDER BY email', - 'keyfield' => 'email', - 'valuefield' => 'email' - ), - 'validators' => array ( 0 => array ( 'type' => 'ISEMAIL', - 'errmsg'=> 'destination_error_isemail'), - ), - 'value' => '' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('alias' => 'Alias','forward'=>'Forward') - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/form/mail_aliasdomain.tform.php b/interface/ispconfig/interface/mail/form/mail_aliasdomain.tform.php deleted file mode 100644 index cc60cec1f..000000000 --- a/interface/ispconfig/interface/mail/form/mail_aliasdomain.tform.php +++ /dev/null @@ -1,113 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['alias'] = array ( - 'title' => "Domain Alias", - 'width' => 100, - 'template' => "templates/mail_aliasdomain_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'source' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'source_error_empty'), - 1 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'source_error_unique'), - 2 => array ( 'type' => 'REGEX', - 'regex' => '/^\@[\w\.\-]{2,64}\.[a-zA-Z]{2,10}$/', - 'errmsg'=> 'source_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'destination' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('alias' => 'Alias','forward'=>'Forward') - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/form/mail_blacklist.tform.php b/interface/ispconfig/interface/mail/form/mail_blacklist.tform.php deleted file mode 100644 index 83fc255d4..000000000 --- a/interface/ispconfig/interface/mail/form/mail_blacklist.tform.php +++ /dev/null @@ -1,110 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['blacklist'] = array ( - 'title' => "Blacklist", - 'width' => 100, - 'template' => "templates/mail_blacklist_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'source' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'source_error_notempty'), - ), - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'access' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'REJECT', - 'value' => 'REJECT', - 'width' => '30', - 'maxlength' => '255' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'y', - 'value' => array('recipient' => 'Recipient', 'sender' => 'Sender', 'client' => 'Client') - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/form/mail_content_filter.tform.php b/interface/ispconfig/interface/mail/form/mail_content_filter.tform.php deleted file mode 100644 index d07cb561d..000000000 --- a/interface/ispconfig/interface/mail/form/mail_content_filter.tform.php +++ /dev/null @@ -1,116 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['filter'] = array ( - 'title' => "Filter", - 'width' => 100, - 'template' => "templates/mail_content_filter_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('header' => 'Header Filter','body' => 'Body Filter','mime_header' => 'MIME-Header Filter','nested_header' => 'Nested-Header Filter') - ), - 'pattern' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'pattern_error_empty'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'data' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'action' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('DISCARD' => 'DISCARD','DUNNO'=>'DUNNO','FILTER'=>'FILTER','HOLD'=>'HOLD','IGNORE'=>'IGNORE','PREPEND'=>'PREPEND','REDIRECT'=>'REDIRECT','REPLACE'=>'REPLACE','REJECT'=>'REJECT','WARN'=>'WARN') - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/form/mail_domain.tform.php b/interface/ispconfig/interface/mail/form/mail_domain.tform.php deleted file mode 100644 index 35f3218d6..000000000 --- a/interface/ispconfig/interface/mail/form/mail_domain.tform.php +++ /dev/null @@ -1,101 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['domain'] = array ( - 'title' => "Domain", - 'width' => 100, - 'template' => "templates/mail_domain_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE mail_server = 1 AND mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'domain' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'domain_error_empty'), - 1 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'domain_error_unique'), - 2 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z]{2,10}$/', - 'errmsg'=> 'domain_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/form/mail_domain_catchall.tform.php b/interface/ispconfig/interface/mail/form/mail_domain_catchall.tform.php deleted file mode 100644 index a5982507d..000000000 --- a/interface/ispconfig/interface/mail/form/mail_domain_catchall.tform.php +++ /dev/null @@ -1,119 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['catchall'] = array ( - 'title' => "Email Catchall", - 'width' => 100, - 'template' => "templates/mail_domain_catchall_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'source' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'domain_error_empty'), - 1 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'domain_error_unique'), - 2 => array ( 'type' => 'REGEX', - 'regex' => '/^\@[\w\.\-]{2,255}\.[a-zA-Z]{2,10}$/', - 'errmsg'=> 'domain_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'destination' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT email FROM mail_user WHERE {AUTHSQL} ORDER BY email', - 'keyfield' => 'email', - 'valuefield' => 'email' - ), - 'validators' => array ( 0 => array ( 'type' => 'ISEMAIL', - 'errmsg'=> 'destination_error_isemail'), - ), - 'value' => '' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('alias' => 'Alias','forward'=>'Forward','catchall'=>'Catchall') - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/form/mail_forward.tform.php b/interface/ispconfig/interface/mail/form/mail_forward.tform.php deleted file mode 100644 index ef348f977..000000000 --- a/interface/ispconfig/interface/mail/form/mail_forward.tform.php +++ /dev/null @@ -1,108 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['forward'] = array ( - 'title' => "Email Forward", - 'width' => 100, - 'template' => "templates/mail_forward_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'source' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISEMAIL', - 'errmsg'=> 'email_error_isemail'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'destination' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('forward'=>'Forward','alias' => 'Alias') - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/form/mail_get.tform.php b/interface/ispconfig/interface/mail/form/mail_get.tform.php deleted file mode 100644 index 41bc01473..000000000 --- a/interface/ispconfig/interface/mail/form/mail_get.tform.php +++ /dev/null @@ -1,148 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['mailget'] = array ( - 'title' => "Get Email", - 'width' => 100, - 'template' => "templates/mail_get_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('pop3' => 'POP3','imap'=>'IMAP','pop3ssl' => 'POP3SSL','imapssl'=>'IMAPSSL') - ), - 'source_server' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'source_server_error_isempty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{2,64}\.[a-zA-Z]{2,10}$/', - 'errmsg'=> 'source_server_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'source_username' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'source_username_error_isempty'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'source_password' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'source_password_error_isempty'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'source_delete' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - 'destination' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT email FROM mail_user WHERE {AUTHSQL} ORDER BY email', - 'keyfield' => 'email', - 'valuefield' => 'email' - ), - 'validators' => array ( 0 => array ( 'type' => 'ISEMAIL', - 'errmsg'=> 'destination_error_isemail'), - ), - 'value' => '' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/form/mail_relay_recipient.tform.php b/interface/ispconfig/interface/mail/form/mail_relay_recipient.tform.php deleted file mode 100644 index b89a7997f..000000000 --- a/interface/ispconfig/interface/mail/form/mail_relay_recipient.tform.php +++ /dev/null @@ -1,104 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['relay_recipient'] = array ( - 'title' => "Relay recipient", - 'width' => 100, - 'template' => "templates/mail_relay_recipient_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'source' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'source_error_notempty'), - ), - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'access' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'OK', - 'value' => 'OK', - 'width' => '30', - 'maxlength' => '255' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/form/mail_spamfilter.tform.php b/interface/ispconfig/interface/mail/form/mail_spamfilter.tform.php deleted file mode 100644 index e85f7ffdc..000000000 --- a/interface/ispconfig/interface/mail/form/mail_spamfilter.tform.php +++ /dev/null @@ -1,146 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['spamfilter'] = array ( - 'title' => "Spamfilter", - 'width' => 100, - 'template' => "templates/mail_spamfilter_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'email' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'email_error_notempty'), - 1 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'email_error_unique'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'spam_rewrite_score_int' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '5.00', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'spam_redirect_score_int' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '7.00', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'spam_delete_score_int' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '15.00', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'spam_rewrite_subject' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '***SPAM***', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'spam_redirect_maildir' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT mailbox_id,email FROM mail_box WHERE {AUTHSQL} ORDER BY email', - 'keyfield'=> 'mailbox_id', - 'valuefield'=> 'email' - ), - 'default' => '', - 'value' => '' - ), - 'spam_redirect_maildir_purge' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '7', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/form/mail_transport.tform.php b/interface/ispconfig/interface/mail/form/mail_transport.tform.php deleted file mode 100644 index f277f9270..000000000 --- a/interface/ispconfig/interface/mail/form/mail_transport.tform.php +++ /dev/null @@ -1,111 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['transport'] = array ( - 'title' => "Email transport", - 'width' => 100, - 'template' => "templates/mail_transport_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'domain' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'domain_error_unique'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'transport' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'sort_order' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => 5, - 'value' => array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10) - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/form/mail_user.tform.php b/interface/ispconfig/interface/mail/form/mail_user.tform.php deleted file mode 100644 index 570ccb4ea..000000000 --- a/interface/ispconfig/interface/mail/form/mail_user.tform.php +++ /dev/null @@ -1,280 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['mailuser'] = array ( - 'title' => "Mailbox", - 'width' => 100, - 'template' => "templates/mail_user_mailbox_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'email' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISEMAIL', - 'errmsg'=> 'email_error_isemail'), - 1 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'email_error_unique'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'password' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'PASSWORD', - 'encryption'=> 'ENCRYPT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'quota' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'quota_error_isint'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^([0-9]*)$/', - 'errmsg'=> 'quota_error_value'), - ), - 'default' => '-1', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'maildir' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'homedir' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'uid' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'gid' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'postfix' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(1 => 'y',0 => 'n') - ), - /* - 'access' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(1 => 'y',0 => 'n') - ), - */ - 'disableimap' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(1 => 'y',0 => 'n') - ), - 'disablepop3' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(1 => 'y',0 => 'n') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -$form["tabs"]['autoresponder'] = array ( - 'title' => "Autoresponder", - 'width' => 100, - 'template' => "templates/mail_user_autoresponder_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'autoresponder_text' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'TEXTAREA', - 'default' => '', - 'value' => '', - 'cols' => '30', - 'rows' => '15' - ), - 'autoresponder' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(1 => 'y',0 => 'n') - ), - 'autoresponder_start_date' => array ( - 'datatype' => 'DATETIME', - 'formtype' => 'DATETIME', - 'validators'=> array ( 0 => array ( 'type' => 'CUSTOM', - 'class' => 'validate_autoresponder', - 'function' => 'start_date', - 'errmsg'=> 'autoresponder_start_date_isfuture'), - ), - ), - 'autoresponder_end_date' => array ( - 'datatype' => 'DATETIME', - 'formtype' => 'DATETIME', - 'validators'=> array ( 0 => array ( 'type' => 'CUSTOM', - 'class' => 'validate_autoresponder', - 'function' => 'end_date', - 'errmsg'=> 'autoresponder_end_date_isgreater'), - ), - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -$form["tabs"]['filter_records'] = array ( - 'title' => "Mail Filter", - 'width' => 100, - 'template' => "templates/mail_user_mailfilter_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'move_junk' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ), - 'plugins' => array ( - 'filter_records' => array ( - 'class' => 'plugin_listview', - 'options' => array( - 'listdef' => 'list/mail_user_filter.list.php', - 'sqlextwhere' => "mailuser_id = ".@intval(@$_REQUEST['id']), - 'sql_order_by' => "ORDER BY rulename" - ) - ) - ) -); - -if($_SESSION["s"]["user"]["typ"] == 'admin' || 'user') { - -$form["tabs"]['mailfilter'] = array ( - 'title' => "Custom Rules", - 'width' => 100, - 'template' => "templates/mail_user_custom_rules_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'custom_mailfilter' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'TEXTAREA', - 'default' => '', - 'value' => '', - 'cols' => '30', - 'rows' => '15' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -} - - -?> diff --git a/interface/ispconfig/interface/mail/form/mail_user.tform.php.orig b/interface/ispconfig/interface/mail/form/mail_user.tform.php.orig deleted file mode 100644 index 5214b6209..000000000 --- a/interface/ispconfig/interface/mail/form/mail_user.tform.php.orig +++ /dev/null @@ -1,280 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['mailuser'] = array ( - 'title' => "Mailbox", - 'width' => 100, - 'template' => "templates/mail_user_mailbox_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'email' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISEMAIL', - 'errmsg'=> 'email_error_isemail'), - 1 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'email_error_unique'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'password' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'PASSWORD', - 'encryption'=> 'CRYPT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'quota' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISINT', - 'errmsg'=> 'quota_error_isint'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^([0-9]*)$/', - 'errmsg'=> 'quota_error_value'), - ), - 'default' => '-1', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'maildir' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'homedir' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'uid' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'gid' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '10', - 'maxlength' => '10' - ), - 'postfix' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(1 => 'y',0 => 'n') - ), - /* - 'access' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(1 => 'y',0 => 'n') - ), - */ - 'disableimap' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(1 => 'y',0 => 'n') - ), - 'disablepop3' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(1 => 'y',0 => 'n') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -$form["tabs"]['autoresponder'] = array ( - 'title' => "Autoresponder", - 'width' => 100, - 'template' => "templates/mail_user_autoresponder_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'autoresponder_text' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'TEXTAREA', - 'default' => '', - 'value' => '', - 'cols' => '30', - 'rows' => '15' - ), - 'autoresponder' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(1 => 'y',0 => 'n') - ), - 'autoresponder_start_date' => array ( - 'datatype' => 'DATETIME', - 'formtype' => 'DATETIME', - 'validators'=> array ( 0 => array ( 'type' => 'CUSTOM', - 'class' => 'validate_autoresponder', - 'function' => 'start_date', - 'errmsg'=> 'autoresponder_start_date_isfuture'), - ), - ), - 'autoresponder_end_date' => array ( - 'datatype' => 'DATETIME', - 'formtype' => 'DATETIME', - 'validators'=> array ( 0 => array ( 'type' => 'CUSTOM', - 'class' => 'validate_autoresponder', - 'function' => 'end_date', - 'errmsg'=> 'autoresponder_end_date_isgreater'), - ), - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -$form["tabs"]['filter_records'] = array ( - 'title' => "Mail Filter", - 'width' => 100, - 'template' => "templates/mail_user_mailfilter_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'move_junk' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ), - 'plugins' => array ( - 'filter_records' => array ( - 'class' => 'plugin_listview', - 'options' => array( - 'listdef' => 'list/mail_user_filter.list.php', - 'sqlextwhere' => "mailuser_id = ".@intval(@$_REQUEST['id']), - 'sql_order_by' => "ORDER BY rulename" - ) - ) - ) -); - -if($_SESSION["s"]["user"]["typ"] == 'admin') { - -$form["tabs"]['mailfilter'] = array ( - 'title' => "Custom Rules", - 'width' => 100, - 'template' => "templates/mail_user_custom_rules_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'custom_mailfilter' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'TEXTAREA', - 'default' => '', - 'value' => '', - 'cols' => '30', - 'rows' => '15' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -} - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/form/mail_user_filter.tform.php b/interface/ispconfig/interface/mail/form/mail_user_filter.tform.php deleted file mode 100644 index cafab8ad6..000000000 --- a/interface/ispconfig/interface/mail/form/mail_user_filter.tform.php +++ /dev/null @@ -1,135 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = 'r'; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['filter'] = array ( - 'title' => "Filter", - 'width' => 100, - 'template' => "templates/mail_user_filter_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'mailuser_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => @intval($_REQUEST["mailuser_id"]), - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'rulename' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'rulename_error_empty'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'source' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('Subject' => 'Subject','From'=>'From','To'=>'To') - ), - 'op' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('contains'=>'Contains','is' => 'Is','begins'=>'Begins with','ends'=>'Ends with') - ), - 'searchterm' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'searchterm_is_empty'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'action' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('move' => 'Move to','delete'=>'Delete') - ), - 'target' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-9\.\-\_\ ]{0,100}$/', - 'errmsg'=> 'target_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> diff --git a/interface/ispconfig/interface/mail/form/mail_user_filter.tform.php.orig b/interface/ispconfig/interface/mail/form/mail_user_filter.tform.php.orig deleted file mode 100644 index 565d5c497..000000000 --- a/interface/ispconfig/interface/mail/form/mail_user_filter.tform.php.orig +++ /dev/null @@ -1,135 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = 'r'; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['filter'] = array ( - 'title' => "Filter", - 'width' => 100, - 'template' => "templates/mail_user_filter_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'mailuser_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => @intval($_REQUEST["mailuser_id"]), - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'rulename' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'rulename_error_empty'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'source' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('Subject' => 'Subject','From'=>'From','To'=>'To') - ), - 'op' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('contains'=>'Contains','is' => 'Is','begins'=>'Begins with','ends'=>'Ends with') - ), - 'searchterm' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'searchterm_is_empty'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'action' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('move' => 'Move to','delete'=>'Delete') - ), - 'target' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-9\.\-\_\ ]{0,100}$/', - 'errmsg'=> 'target_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> diff --git a/interface/ispconfig/interface/mail/form/mail_whitelist.tform.php b/interface/ispconfig/interface/mail/form/mail_whitelist.tform.php deleted file mode 100644 index bf52f561a..000000000 --- a/interface/ispconfig/interface/mail/form/mail_whitelist.tform.php +++ /dev/null @@ -1,110 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['whitelist'] = array ( - 'title' => "Witelist", - 'width' => 100, - 'template' => "templates/mail_whitelist_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'source' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'source_error_notempty'), - ), - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'access' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'OK', - 'value' => 'OK', - 'width' => '30', - 'maxlength' => '255' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'y', - 'value' => array('recipient' => 'Recipient', 'sender' => 'Sender', 'client' => 'Client') - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/form/spamfilter_blacklist.tform.php b/interface/ispconfig/interface/mail/form/spamfilter_blacklist.tform.php deleted file mode 100644 index 098c0dadc..000000000 --- a/interface/ispconfig/interface/mail/form/spamfilter_blacklist.tform.php +++ /dev/null @@ -1,119 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['blacklist'] = array ( - 'title' => "Blacklist", - 'width' => 100, - 'template' => "templates/spamfilter_blacklist_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'wb' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'B', - 'value' => array('W' => 'blacklist', 'B' => 'Blacklist') - ), - 'rid' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT id,email FROM spamfilter_users WHERE {AUTHSQL} ORDER BY email', - 'keyfield'=> 'id', - 'valuefield'=> 'email' - ), - 'value' => '' - ), - 'email' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'email_error_notempty'), - ), - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'priority' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => 5, - 'value' => array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10) - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/form/spamfilter_config.tform.php b/interface/ispconfig/interface/mail/form/spamfilter_config.tform.php deleted file mode 100644 index c04b50e77..000000000 --- a/interface/ispconfig/interface/mail/form/spamfilter_config.tform.php +++ /dev/null @@ -1,275 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['server'] = array ( - 'title' => "Server", - 'width' => 100, - 'template' => "templates/spamfilter_config_server_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'ip_address' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '192.168.0.105', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'ip_address_error_empty'), - ), - 'value' => '', - 'width' => '15', - 'maxlength' => '255' - ), - 'netmask' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '255.255.255.0', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'netmask_error_empty'), - ), - 'value' => '', - 'width' => '15', - 'maxlength' => '255' - ), - 'gateway' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '192.168.0.1', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'gateway_error_empty'), - ), - 'value' => '', - 'width' => '15', - 'maxlength' => '255' - ), - 'hostname' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'server1.domain.tld', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'hostname_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'nameservers' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '192.168.0.1,192.168.0.2', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'nameservers_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -$form["tabs"]['mail'] = array ( - 'title' => "Mail", - 'width' => 100, - 'template' => "templates/spamfilter_config_mail_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'module' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('postfix_mysql' => 'postfix_mysql') - ), - 'maildir_path' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '/home/vmail/[domain]/[localpart]/', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'maildir_path_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'homedir_path' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '/home/vmail/', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'homedir_path_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'mailuser_uid' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '5000', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'mailuser_uid_error_empty'), - ), - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'mailuser_gid' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '5000', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'mailuser_gid_error_empty'), - ), - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'mailuser_name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'vmail', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'mailuser_name_error_empty'), - ), - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'mailuser_group' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'vmail', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'mailuser_group_error_empty'), - ), - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'relayhost' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'relayhost_user' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'relayhost_password' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'mailbox_size_limit' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '15' - ), - 'message_size_limit' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '15' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -$form["tabs"]['getmail'] = array ( - 'title' => "Getmail", - 'width' => 100, - 'template' => "templates/spamfilter_config_getmail_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'getmail_config_dir' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'getmail_config_dir_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/form/spamfilter_policy.tform.php b/interface/ispconfig/interface/mail/form/spamfilter_policy.tform.php deleted file mode 100644 index bf6588c52..000000000 --- a/interface/ispconfig/interface/mail/form/spamfilter_policy.tform.php +++ /dev/null @@ -1,382 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = 'r'; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['policy'] = array ( - 'title' => "Policy", - 'width' => 100, - 'template' => "templates/spamfilter_policy_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'policy_name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'policyname_error_notempty'), - ), - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'virus_lover' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'N', - 'value' => array('N' => 'No','Y' => 'Yes') - ), - 'spam_lover' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'N', - 'value' => array('N' => 'No','Y' => 'Yes') - ), - 'banned_files_lover' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'N', - 'value' => array('N' => 'No','Y' => 'Yes') - ), - 'bad_header_lover' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'N', - 'value' => array('N' => 'No','Y' => 'Yes') - ), - 'bypass_virus_checks' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'N', - 'value' => array('N' => 'No','Y' => 'Yes') - ), - 'bypass_banned_checks' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'N', - 'value' => array('N' => 'No','Y' => 'Yes') - ), - 'bypass_header_checks' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'N', - 'value' => array('N' => 'No','Y' => 'Yes') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - -$form["tabs"]['quarantine'] = array ( - 'title' => "Quarantine", - 'width' => 100, - 'template' => "templates/spamfilter_quarantine_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'virus_quarantine_to' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'spam_quarantine_to' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'banned_quarantine_to' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'bad_header_quarantine_to' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'clean_quarantine_to' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'other_quarantine_to' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -$form["tabs"]['taglevel'] = array ( - 'title' => "Tag-Level", - 'width' => 100, - 'template' => "templates/spamfilter_taglevel_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'spam_tag_level' => array ( - 'datatype' => 'DOUBLE', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'spam_tag2_level' => array ( - 'datatype' => 'DOUBLE', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'spam_kill_level' => array ( - 'datatype' => 'DOUBLE', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'spam_dsn_cutoff_level' => array ( - 'datatype' => 'DOUBLE', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'spam_quarantine_cutoff_level' => array ( - 'datatype' => 'DOUBLE', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'spam_modifies_subj' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'N', - 'value' => array('N' => 'No','Y' => 'Yes') - ), - 'spam_subject_tag' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'spam_subject_tag2' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - -$form["tabs"]['other'] = array ( - 'title' => "Other", - 'width' => 100, - 'template' => "templates/spamfilter_other_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'addr_extension_virus' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'addr_extension_spam' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'addr_extension_banned' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'addr_extension_bad_header' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'warnvirusrecip' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'N', - 'value' => array('N' => 'No','Y' => 'Yes') - ), - 'warnbannedrecip' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'N', - 'value' => array('N' => 'No','Y' => 'Yes') - ), - 'warnbadhrecip' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'N', - 'value' => array('N' => 'No','Y' => 'Yes') - ), - 'newvirus_admin' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'virus_admin' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'banned_admin' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'bad_header_admin' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'spam_admin' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - - 'message_size_limit' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'banned_rulenames' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - - ################################## - # ENDE Datatable fields - ################################## - ) -); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/form/spamfilter_users.tform.php b/interface/ispconfig/interface/mail/form/spamfilter_users.tform.php deleted file mode 100644 index 75cc35dc9..000000000 --- a/interface/ispconfig/interface/mail/form/spamfilter_users.tform.php +++ /dev/null @@ -1,125 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['users'] = array ( - 'title' => "Users", - 'width' => 100, - 'template' => "templates/spamfilter_users_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'priority' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => 5, - 'value' => array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10) - ), - 'policy_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT id,policy_name FROM spamfilter_policy WHERE {AUTHSQL} ORDER BY policy_name', - 'keyfield'=> 'id', - 'valuefield'=> 'policy_name' - ), - 'value' => '' - ), - 'email' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'email_error_notempty'), - ), - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'fullname' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'fullname_error_notempty'), - ), - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'local' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'Y', - 'value' => array('Y' => 'Yes','N' => 'No') - ), - - ################################## - # ENDE Datatable fields - ################################## - ) -); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/form/spamfilter_whitelist.tform.php b/interface/ispconfig/interface/mail/form/spamfilter_whitelist.tform.php deleted file mode 100644 index f3b541408..000000000 --- a/interface/ispconfig/interface/mail/form/spamfilter_whitelist.tform.php +++ /dev/null @@ -1,119 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['whitelist'] = array ( - 'title' => "Whitelist", - 'width' => 100, - 'template' => "templates/spamfilter_whitelist_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'wb' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'W', - 'value' => array('W' => 'Whitelist', 'B' => 'Blacklist') - ), - 'rid' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT id,email FROM spamfilter_users WHERE {AUTHSQL} ORDER BY email', - 'keyfield'=> 'id', - 'valuefield'=> 'email' - ), - 'value' => '' - ), - 'email' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'email_error_notempty'), - ), - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'priority' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => 5, - 'value' => array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10) - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/admin.conf.php b/interface/ispconfig/interface/mail/lib/admin.conf.php deleted file mode 100644 index a45d44034..000000000 --- a/interface/ispconfig/interface/mail/lib/admin.conf.php +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/bg.lng b/interface/ispconfig/interface/mail/lib/lang/bg.lng deleted file mode 100644 index e3a31e332..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg.lng +++ /dev/null @@ -1,47 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_alias.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_alias.lng deleted file mode 100644 index 44b6fed86..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_alias.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_alias_list.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_alias_list.lng deleted file mode 100644 index 0a44ea4f7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_alias_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_aliasdomain.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_aliasdomain.lng deleted file mode 100644 index 5815d1e60..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_aliasdomain.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_aliasdomain_list.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_aliasdomain_list.lng deleted file mode 100644 index d96a63e2a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_aliasdomain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_blacklist.lng deleted file mode 100644 index 5b2815c0d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_blacklist_list.lng deleted file mode 100644 index a72052f08..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_blacklist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_content_filter.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_content_filter.lng deleted file mode 100644 index 9d5e5f9ba..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_content_filter.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_content_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_content_filter_list.lng deleted file mode 100644 index 8c1e5e2e7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_content_filter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_domain.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_domain.lng deleted file mode 100644 index 6120e82b7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_domain.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_domain_catchall.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_domain_catchall.lng deleted file mode 100644 index 382e97f0e..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_domain_catchall.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_domain_catchall_list.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_domain_catchall_list.lng deleted file mode 100644 index 7d076dd4c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_domain_catchall_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_domain_list.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_domain_list.lng deleted file mode 100644 index d84478131..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_domain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_forward.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_forward.lng deleted file mode 100644 index 7d237e14f..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_forward.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_forward_list.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_forward_list.lng deleted file mode 100644 index f4529440c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_forward_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_get.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_get.lng deleted file mode 100644 index 5e42823b6..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_get.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_get_list.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_get_list.lng deleted file mode 100644 index 4baf67e02..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_get_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_relay_recipient.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_relay_recipient.lng deleted file mode 100644 index b5c8724da..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_relay_recipient.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_relay_recipient_list.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_relay_recipient_list.lng deleted file mode 100644 index 36045f4e3..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_relay_recipient_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_spamfilter.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_spamfilter.lng deleted file mode 100644 index e0a2a2f9a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_spamfilter.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_spamfilter_list.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_spamfilter_list.lng deleted file mode 100644 index 728f3d365..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_spamfilter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_transport.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_transport.lng deleted file mode 100644 index a4d7bbc44..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_transport.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_transport_list.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_transport_list.lng deleted file mode 100644 index a96c081e6..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_transport_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_user.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_user.lng deleted file mode 100644 index 374503643..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_user.lng +++ /dev/null @@ -1,41 +0,0 @@ - 1'; -$wb['autoresponder_start_date_txt'] = 'Start on'; -$wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; -$wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; -$wb['move_junk_txt'] = 'Move Spam Emails to Junk directory'; -$wb['name_txt'] = 'Realname'; -$wb['name_optional_txt'] = '(Optional)'; -?> diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_user_filter.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_user_filter.lng deleted file mode 100644 index e633c1bd1..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_user_filter.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_user_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_user_filter_list.lng deleted file mode 100644 index 2754259f4..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_user_filter_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_user_list.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_user_list.lng deleted file mode 100644 index 6063cef12..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_user_stats_list.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_user_stats_list.lng deleted file mode 100644 index edde65bd7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_user_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_whitelist.lng deleted file mode 100644 index 92c365ba2..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_mail_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/bg_mail_whitelist_list.lng deleted file mode 100644 index eaa7eb3fc..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_mail_whitelist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_blacklist.lng deleted file mode 100644 index 5a85949ab..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_blacklist_list.lng deleted file mode 100644 index 1b17e6442..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_blacklist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_config.lng b/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_config.lng deleted file mode 100644 index 2843133ca..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_config.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_config_list.lng b/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_config_list.lng deleted file mode 100644 index 70e49e22b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_config_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_policy.lng b/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_policy.lng deleted file mode 100644 index e876330a6..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_policy.lng +++ /dev/null @@ -1,38 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_policy_list.lng b/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_policy_list.lng deleted file mode 100644 index 04491ae4c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_policy_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_users.lng b/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_users.lng deleted file mode 100644 index a93d94dba..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_users.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_users_list.lng b/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_users_list.lng deleted file mode 100644 index ed3d7a399..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_users_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_whitelist.lng deleted file mode 100644 index 5a85949ab..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_whitelist_list.lng deleted file mode 100644 index d209d17a4..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/bg_spamfilter_whitelist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br.lng b/interface/ispconfig/interface/mail/lib/lang/br.lng deleted file mode 100644 index 5e325a567..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br.lng +++ /dev/null @@ -1,47 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_alias.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_alias.lng deleted file mode 100644 index b3b08e349..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_alias.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_alias_list.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_alias_list.lng deleted file mode 100644 index c503b0bcc..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_alias_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_aliasdomain.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_aliasdomain.lng deleted file mode 100644 index 7d8602823..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_aliasdomain.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_aliasdomain_list.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_aliasdomain_list.lng deleted file mode 100644 index beb2c8205..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_aliasdomain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_blacklist.lng deleted file mode 100644 index 6d2cdb2a2..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_blacklist_list.lng deleted file mode 100644 index 9395a2ccb..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_blacklist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_content_filter.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_content_filter.lng deleted file mode 100644 index d5cda471f..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_content_filter.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_content_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_content_filter_list.lng deleted file mode 100644 index c3a616ef3..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_content_filter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_domain.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_domain.lng deleted file mode 100644 index a1cab1cfa..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_domain.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_domain_catchall.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_domain_catchall.lng deleted file mode 100644 index 1b794de61..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_domain_catchall.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_domain_catchall_list.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_domain_catchall_list.lng deleted file mode 100644 index c4d548173..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_domain_catchall_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_domain_list.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_domain_list.lng deleted file mode 100644 index 2afb7db7f..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_domain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_forward.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_forward.lng deleted file mode 100644 index 1dab622dd..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_forward.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_forward_list.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_forward_list.lng deleted file mode 100644 index f9f7ce406..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_forward_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_get.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_get.lng deleted file mode 100644 index bd3a3c221..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_get.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_get_list.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_get_list.lng deleted file mode 100644 index 9eaf45b73..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_get_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_relay_recipient.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_relay_recipient.lng deleted file mode 100644 index cdbf7ca73..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_relay_recipient.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_relay_recipient_list.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_relay_recipient_list.lng deleted file mode 100644 index e6d898c97..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_relay_recipient_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_spamfilter.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_spamfilter.lng deleted file mode 100644 index 7f8a33642..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_spamfilter.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_spamfilter_list.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_spamfilter_list.lng deleted file mode 100644 index 9b549a939..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_spamfilter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_transport.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_transport.lng deleted file mode 100644 index 51df05db4..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_transport.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_transport_list.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_transport_list.lng deleted file mode 100644 index 4c6728056..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_transport_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_user.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_user.lng deleted file mode 100644 index 46449972f..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_user.lng +++ /dev/null @@ -1,39 +0,0 @@ - 1'; -$wb['autoresponder_start_date_txt'] = 'Início:'; -$wb['autoresponder_start_date_isfuture'] = 'A data de ínicio não pode estar no passado.'; -$wb['autoresponder_end_date_txt'] = 'Termino:'; -$wb['autoresponder_end_date_isgreater'] = 'A data de início deve ser menor que a data de termino.'; -$wb['move_junk_txt'] = 'Mover Spam para o diretório JUNK'; -$wb['name_txt'] = 'Realname'; -$wb['name_optional_txt'] = '(Optional)'; -?> diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_user_filter.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_user_filter.lng deleted file mode 100644 index a9c054b37..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_user_filter.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_user_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_user_filter_list.lng deleted file mode 100644 index 847d72c3a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_user_filter_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_user_list.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_user_list.lng deleted file mode 100644 index d399f482d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_user_stats_list.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_user_stats_list.lng deleted file mode 100644 index 0457c2da5..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_user_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_whitelist.lng deleted file mode 100644 index 15db38f28..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_mail_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/br_mail_whitelist_list.lng deleted file mode 100644 index bd84205e4..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_mail_whitelist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_blacklist.lng deleted file mode 100644 index c282beab9..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_blacklist_list.lng deleted file mode 100644 index 81906532a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_blacklist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_config.lng b/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_config.lng deleted file mode 100644 index 30d01386c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_config.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_config_list.lng b/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_config_list.lng deleted file mode 100644 index 345903fe5..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_config_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_policy.lng b/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_policy.lng deleted file mode 100644 index 24eb2ed0a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_policy.lng +++ /dev/null @@ -1,38 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_policy_list.lng b/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_policy_list.lng deleted file mode 100644 index 7247b2a17..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_policy_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_users.lng b/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_users.lng deleted file mode 100644 index 451500940..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_users.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_users_list.lng b/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_users_list.lng deleted file mode 100644 index 1fe408eb4..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_users_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_whitelist.lng deleted file mode 100644 index 951c3f468..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_whitelist_list.lng deleted file mode 100644 index 4420bca63..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/br_spamfilter_whitelist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de.lng b/interface/ispconfig/interface/mail/lib/lang/de.lng deleted file mode 100644 index e4a2347c7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de.lng +++ /dev/null @@ -1,47 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_alias.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_alias.lng deleted file mode 100644 index f9112df59..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_alias.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_alias_list.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_alias_list.lng deleted file mode 100644 index f24906024..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_alias_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_aliasdomain.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_aliasdomain.lng deleted file mode 100644 index 4ea7715fd..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_aliasdomain.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_aliasdomain_list.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_aliasdomain_list.lng deleted file mode 100644 index 1c486c92d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_aliasdomain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_blacklist.lng deleted file mode 100644 index 75b20e201..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_blacklist_list.lng deleted file mode 100644 index 276d3a62d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_blacklist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_content_filter.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_content_filter.lng deleted file mode 100644 index 9ea542249..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_content_filter.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_content_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_content_filter_list.lng deleted file mode 100644 index 126f23ce4..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_content_filter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_domain.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_domain.lng deleted file mode 100644 index e1cf325dc..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_domain.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_domain_catchall.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_domain_catchall.lng deleted file mode 100644 index d67fa10d9..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_domain_catchall.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_domain_catchall_list.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_domain_catchall_list.lng deleted file mode 100644 index 2c5763f05..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_domain_catchall_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_domain_list.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_domain_list.lng deleted file mode 100644 index 0449bc9a9..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_domain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_forward.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_forward.lng deleted file mode 100644 index 7fcf306c1..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_forward.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_forward_list.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_forward_list.lng deleted file mode 100644 index 2eee574b0..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_forward_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_get.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_get.lng deleted file mode 100644 index eb4a3b0c1..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_get.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_get_list.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_get_list.lng deleted file mode 100644 index 3f7cf2486..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_get_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_relay_recipient.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_relay_recipient.lng deleted file mode 100644 index 535ceb33c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_relay_recipient.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_relay_recipient_list.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_relay_recipient_list.lng deleted file mode 100644 index fc5d6f47c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_relay_recipient_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_spamfilter.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_spamfilter.lng deleted file mode 100644 index d411cb14c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_spamfilter.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_spamfilter_list.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_spamfilter_list.lng deleted file mode 100644 index f0acef3c2..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_spamfilter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_transport.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_transport.lng deleted file mode 100644 index 16d1e6405..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_transport.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_transport_list.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_transport_list.lng deleted file mode 100644 index 3efda20ee..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_transport_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_user.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_user.lng deleted file mode 100644 index 6312cd8b2..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_user.lng +++ /dev/null @@ -1,39 +0,0 @@ - 1'; -$wb['autoresponder_start_date_txt'] = 'Startet am'; -$wb['autoresponder_start_date_isfuture'] = 'Startdatum kann nicht in der Vergangenheit liegen.'; -$wb['autoresponder_end_date_txt'] = 'Endet am'; -$wb['autoresponder_end_date_isgreater'] = 'Enddatum muss angegeben werden und muss später als das Startdatum sein.'; -$wb['move_junk_txt'] = 'Spam Emails in den Junk Ordner verschieben'; -$wb['name_txt'] = 'Realname'; -$wb['name_optional_txt'] = '(Optional)'; -?> diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_user_filter.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_user_filter.lng deleted file mode 100644 index cc6d3d180..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_user_filter.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_user_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_user_filter_list.lng deleted file mode 100644 index 3d9fd82db..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_user_filter_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_user_list.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_user_list.lng deleted file mode 100644 index f2e3d7a11..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_user_stats_list.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_user_stats_list.lng deleted file mode 100644 index 88ad07a60..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_user_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_whitelist.lng deleted file mode 100644 index 528c7cfce..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_mail_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/de_mail_whitelist_list.lng deleted file mode 100644 index cb7f293b3..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_mail_whitelist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_blacklist.lng deleted file mode 100644 index f2bc79a6b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_blacklist_list.lng deleted file mode 100644 index ca726a90d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_blacklist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_config.lng b/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_config.lng deleted file mode 100644 index f82f27f5c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_config.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_config_list.lng b/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_config_list.lng deleted file mode 100644 index db92a4bd0..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_config_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_policy.lng b/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_policy.lng deleted file mode 100644 index ff2426f70..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_policy.lng +++ /dev/null @@ -1,38 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_policy_list.lng b/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_policy_list.lng deleted file mode 100644 index 8f77a6475..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_policy_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_users.lng b/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_users.lng deleted file mode 100644 index fcb58114f..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_users.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_users_list.lng b/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_users_list.lng deleted file mode 100644 index b85e23de3..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_users_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_whitelist.lng deleted file mode 100644 index 1f47c716d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_whitelist_list.lng deleted file mode 100644 index ea53892ff..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/de_spamfilter_whitelist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/en.lng b/interface/ispconfig/interface/mail/lib/lang/en.lng deleted file mode 100644 index 0570dfa40..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en.lng +++ /dev/null @@ -1,51 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_alias.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_alias.lng deleted file mode 100644 index d7c5e7a07..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_alias.lng +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_alias_list.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_alias_list.lng deleted file mode 100644 index 10d5a6c7e..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_alias_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_aliasdomain.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_aliasdomain.lng deleted file mode 100644 index 241eb64ce..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_aliasdomain.lng +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_aliasdomain_list.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_aliasdomain_list.lng deleted file mode 100644 index 8ebfa7dec..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_aliasdomain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_blacklist.lng deleted file mode 100644 index 440784775..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_blacklist_list.lng deleted file mode 100644 index 9eb28ce3b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_blacklist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_content_filter.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_content_filter.lng deleted file mode 100644 index c72c78bd2..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_content_filter.lng +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_content_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_content_filter_list.lng deleted file mode 100644 index 58de44a51..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_content_filter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_domain.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_domain.lng deleted file mode 100644 index ad9310069..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_domain.lng +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_domain_catchall.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_domain_catchall.lng deleted file mode 100644 index 211ea3d3a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_domain_catchall.lng +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_domain_catchall_list.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_domain_catchall_list.lng deleted file mode 100644 index 589423b9a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_domain_catchall_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_domain_list.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_domain_list.lng deleted file mode 100644 index 787216c3c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_domain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_forward.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_forward.lng deleted file mode 100644 index dee627153..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_forward.lng +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_forward_list.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_forward_list.lng deleted file mode 100644 index f850512f1..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_forward_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_get.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_get.lng deleted file mode 100644 index e2180e5eb..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_get.lng +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_get_list.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_get_list.lng deleted file mode 100644 index f8b307d3c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_get_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_relay_recipient.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_relay_recipient.lng deleted file mode 100644 index fdec9ab0a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_relay_recipient.lng +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_relay_recipient_list.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_relay_recipient_list.lng deleted file mode 100644 index 44cd894ac..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_relay_recipient_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_spamfilter.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_spamfilter.lng deleted file mode 100644 index 72c126cd9..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_spamfilter.lng +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_spamfilter_list.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_spamfilter_list.lng deleted file mode 100644 index 22316fa12..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_spamfilter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_transport.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_transport.lng deleted file mode 100644 index 152c2eba4..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_transport.lng +++ /dev/null @@ -1,10 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_transport_list.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_transport_list.lng deleted file mode 100644 index febadb874..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_transport_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_user.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_user.lng deleted file mode 100644 index c393e0ce7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_user.lng +++ /dev/null @@ -1,40 +0,0 @@ - 1'; -$wb["move_junk_txt"] = 'Move Spam Emails to Junk directory'; -$wb["name_txt"] = 'Realname'; -$wb["name_optional_txt"] = '(Optional)'; -$wb['autoresponder_active'] = 'Enable the autoresponder'; -?> diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_user_filter.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_user_filter.lng deleted file mode 100644 index 3245a095d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_user_filter.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_user_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_user_filter_list.lng deleted file mode 100644 index 97cc11a61..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_user_filter_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_user_list.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_user_list.lng deleted file mode 100644 index 70497def6..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_user_stats_list.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_user_stats_list.lng deleted file mode 100644 index a2947f740..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_user_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_whitelist.lng deleted file mode 100644 index 6c6bed933..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_mail_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/en_mail_whitelist_list.lng deleted file mode 100644 index 22aedf23d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_mail_whitelist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_blacklist.lng deleted file mode 100644 index 6478b1f2f..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_blacklist_list.lng deleted file mode 100644 index ca387fba3..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_blacklist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_config.lng b/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_config.lng deleted file mode 100644 index 28c6b3407..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_config.lng +++ /dev/null @@ -1,20 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_config_list.lng b/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_config_list.lng deleted file mode 100644 index 710e22b00..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_config_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_policy.lng b/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_policy.lng deleted file mode 100644 index 2e0f05d6c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_policy.lng +++ /dev/null @@ -1,38 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_policy_list.lng b/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_policy_list.lng deleted file mode 100644 index 1e87733a0..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_policy_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_users.lng b/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_users.lng deleted file mode 100644 index 78b346c3e..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_users.lng +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_users_list.lng b/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_users_list.lng deleted file mode 100644 index 75fc98e76..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_users_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_whitelist.lng deleted file mode 100644 index 6478b1f2f..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_whitelist_list.lng deleted file mode 100644 index 72495f5e0..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/en_spamfilter_whitelist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/es.lng b/interface/ispconfig/interface/mail/lib/lang/es.lng deleted file mode 100644 index fb3317046..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es.lng +++ /dev/null @@ -1,47 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_alias.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_alias.lng deleted file mode 100644 index c23956890..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_alias.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_alias_list.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_alias_list.lng deleted file mode 100644 index 2f5df201f..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_alias_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_aliasdomain.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_aliasdomain.lng deleted file mode 100644 index 5815d1e60..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_aliasdomain.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_aliasdomain_list.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_aliasdomain_list.lng deleted file mode 100644 index d96a63e2a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_aliasdomain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_blacklist.lng deleted file mode 100644 index 8efc603be..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_blacklist_list.lng deleted file mode 100644 index a7394e2f8..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_blacklist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_content_filter.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_content_filter.lng deleted file mode 100644 index ec1ca9621..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_content_filter.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_content_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_content_filter_list.lng deleted file mode 100644 index d70bf425f..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_content_filter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_domain.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_domain.lng deleted file mode 100644 index 1bf9bc3f6..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_domain.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_domain_catchall.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_domain_catchall.lng deleted file mode 100644 index f29db0533..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_domain_catchall.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_domain_catchall_list.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_domain_catchall_list.lng deleted file mode 100644 index c70887eb1..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_domain_catchall_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_domain_list.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_domain_list.lng deleted file mode 100644 index c647e23af..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_domain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_forward.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_forward.lng deleted file mode 100644 index 771ef2877..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_forward.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_forward_list.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_forward_list.lng deleted file mode 100644 index 2c5d9af25..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_forward_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_get.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_get.lng deleted file mode 100644 index c0c57ce99..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_get.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_get_list.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_get_list.lng deleted file mode 100644 index 3c133e723..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_get_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_relay_recipient.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_relay_recipient.lng deleted file mode 100644 index b5c8724da..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_relay_recipient.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_relay_recipient_list.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_relay_recipient_list.lng deleted file mode 100644 index 36045f4e3..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_relay_recipient_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_spamfilter.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_spamfilter.lng deleted file mode 100644 index e4e615c94..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_spamfilter.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_spamfilter_list.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_spamfilter_list.lng deleted file mode 100644 index f2e2cb1b8..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_spamfilter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_transport.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_transport.lng deleted file mode 100644 index 87904c398..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_transport.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_transport_list.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_transport_list.lng deleted file mode 100644 index b23483f6c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_transport_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_user.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_user.lng deleted file mode 100644 index 172b2bfcb..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_user.lng +++ /dev/null @@ -1,39 +0,0 @@ - 1'; -$wb['autoresponder_start_date_txt'] = 'Start on'; -$wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; -$wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; -$wb['move_junk_txt'] = 'Move Spam Emails to Junk directory'; -$wb['name_txt'] = 'Realname'; -$wb['name_optional_txt'] = '(Optional)'; -?> diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_user_filter.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_user_filter.lng deleted file mode 100644 index 743e53fde..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_user_filter.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_user_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_user_filter_list.lng deleted file mode 100644 index 31e0e9855..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_user_filter_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_user_list.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_user_list.lng deleted file mode 100644 index 163033d24..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_user_stats_list.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_user_stats_list.lng deleted file mode 100644 index 9837a3ff8..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_user_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_whitelist.lng deleted file mode 100644 index 1d681a72e..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_mail_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/es_mail_whitelist_list.lng deleted file mode 100644 index 233a25cbe..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_mail_whitelist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_blacklist.lng deleted file mode 100644 index a411046a4..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_blacklist_list.lng deleted file mode 100644 index 628510699..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_blacklist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_config.lng b/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_config.lng deleted file mode 100644 index f2ba6932d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_config.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_config_list.lng b/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_config_list.lng deleted file mode 100644 index a46257a3c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_config_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_policy.lng b/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_policy.lng deleted file mode 100644 index 2932f5607..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_policy.lng +++ /dev/null @@ -1,38 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_policy_list.lng b/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_policy_list.lng deleted file mode 100644 index ce196bb0c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_policy_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_users.lng b/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_users.lng deleted file mode 100644 index 361c2fe1c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_users.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_users_list.lng b/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_users_list.lng deleted file mode 100644 index 60d8388a8..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_users_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_whitelist.lng deleted file mode 100644 index a411046a4..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_whitelist_list.lng deleted file mode 100644 index e1c7f66b1..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/es_spamfilter_whitelist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi.lng b/interface/ispconfig/interface/mail/lib/lang/fi.lng deleted file mode 100644 index 840936608..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi.lng +++ /dev/null @@ -1,47 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_alias.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_alias.lng deleted file mode 100644 index 135c179c2..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_alias.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_alias_list.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_alias_list.lng deleted file mode 100644 index 37dad6eaa..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_alias_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_aliasdomain.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_aliasdomain.lng deleted file mode 100644 index 5815d1e60..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_aliasdomain.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_aliasdomain_list.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_aliasdomain_list.lng deleted file mode 100644 index d96a63e2a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_aliasdomain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_blacklist.lng deleted file mode 100644 index 66cb93004..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_blacklist_list.lng deleted file mode 100644 index 2d792ffc6..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_blacklist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_content_filter.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_content_filter.lng deleted file mode 100644 index 9cac6d38f..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_content_filter.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_content_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_content_filter_list.lng deleted file mode 100644 index ccd1b895e..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_content_filter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_domain.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_domain.lng deleted file mode 100644 index fc92040a1..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_domain.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_domain_catchall.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_domain_catchall.lng deleted file mode 100644 index 802f83d81..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_domain_catchall.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_domain_catchall_list.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_domain_catchall_list.lng deleted file mode 100644 index 73f8c7598..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_domain_catchall_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_domain_list.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_domain_list.lng deleted file mode 100644 index e8c4d2862..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_domain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_forward.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_forward.lng deleted file mode 100644 index 2368ddeb7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_forward.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_forward_list.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_forward_list.lng deleted file mode 100644 index 15aab44bf..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_forward_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_get.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_get.lng deleted file mode 100644 index 5db3b0cd9..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_get.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_get_list.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_get_list.lng deleted file mode 100644 index be7a29f7c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_get_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_relay_recipient.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_relay_recipient.lng deleted file mode 100644 index b5c8724da..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_relay_recipient.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_relay_recipient_list.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_relay_recipient_list.lng deleted file mode 100644 index 36045f4e3..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_relay_recipient_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_spamfilter.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_spamfilter.lng deleted file mode 100644 index a833ecacf..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_spamfilter.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_spamfilter_list.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_spamfilter_list.lng deleted file mode 100644 index 41f6e3b0d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_spamfilter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_transport.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_transport.lng deleted file mode 100644 index 4b4ad896a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_transport.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_transport_list.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_transport_list.lng deleted file mode 100644 index e91c76e29..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_transport_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_user.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_user.lng deleted file mode 100644 index 71e74404a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_user.lng +++ /dev/null @@ -1,39 +0,0 @@ - 1 tai 0 rajoittamattomalle.'; -$wb['autoresponder_start_date_txt'] = 'Start on'; -$wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; -$wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; -$wb['move_junk_txt'] = 'Move Spam Emails to Junk directory'; -$wb['name_txt'] = 'Realname'; -$wb['name_optional_txt'] = '(Optional)'; -?> diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_user_filter.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_user_filter.lng deleted file mode 100644 index a9f7a2b8f..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_user_filter.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_user_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_user_filter_list.lng deleted file mode 100644 index ed6639a5e..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_user_filter_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_user_list.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_user_list.lng deleted file mode 100644 index f37a7b808..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_user_stats_list.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_user_stats_list.lng deleted file mode 100644 index 5f5b0391f..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_user_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_whitelist.lng deleted file mode 100644 index abd8e85f2..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_mail_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/fi_mail_whitelist_list.lng deleted file mode 100644 index d6b134948..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_mail_whitelist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_blacklist.lng deleted file mode 100644 index 287d968cf..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_blacklist_list.lng deleted file mode 100644 index d448876ef..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_blacklist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_config.lng b/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_config.lng deleted file mode 100644 index 7447b48c7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_config.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_config_list.lng b/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_config_list.lng deleted file mode 100644 index aee0c8173..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_config_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_policy.lng b/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_policy.lng deleted file mode 100644 index 8f61ba411..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_policy.lng +++ /dev/null @@ -1,38 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_policy_list.lng b/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_policy_list.lng deleted file mode 100644 index 3074d45ff..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_policy_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_users.lng b/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_users.lng deleted file mode 100644 index d960f5c82..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_users.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_users_list.lng b/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_users_list.lng deleted file mode 100644 index 385d617a7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_users_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_whitelist.lng deleted file mode 100644 index 9dee91858..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_whitelist_list.lng deleted file mode 100644 index a3f00fc84..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fi_spamfilter_whitelist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr.lng b/interface/ispconfig/interface/mail/lib/lang/fr.lng deleted file mode 100644 index be44ddafd..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr.lng +++ /dev/null @@ -1,47 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_alias.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_alias.lng deleted file mode 100644 index 8c4921b3d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_alias.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_alias_list.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_alias_list.lng deleted file mode 100644 index ae4947afe..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_alias_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_aliasdomain.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_aliasdomain.lng deleted file mode 100644 index 5815d1e60..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_aliasdomain.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_aliasdomain_list.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_aliasdomain_list.lng deleted file mode 100644 index d96a63e2a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_aliasdomain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_blacklist.lng deleted file mode 100644 index ca715af0b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_blacklist_list.lng deleted file mode 100644 index 18ae28f51..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_blacklist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_content_filter.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_content_filter.lng deleted file mode 100644 index 5aa0caac0..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_content_filter.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_content_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_content_filter_list.lng deleted file mode 100644 index bee77a2cb..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_content_filter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_domain.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_domain.lng deleted file mode 100644 index da7e9839b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_domain.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_domain_catchall.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_domain_catchall.lng deleted file mode 100644 index 49c9fab11..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_domain_catchall.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_domain_catchall_list.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_domain_catchall_list.lng deleted file mode 100644 index 44542bf40..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_domain_catchall_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_domain_list.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_domain_list.lng deleted file mode 100644 index 0d89f254b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_domain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_forward.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_forward.lng deleted file mode 100644 index dc04099fb..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_forward.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_forward_list.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_forward_list.lng deleted file mode 100644 index d8d5db2d9..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_forward_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_get.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_get.lng deleted file mode 100644 index 9aeb86389..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_get.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_get_list.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_get_list.lng deleted file mode 100644 index 86fb4d171..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_get_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_relay_recipient.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_relay_recipient.lng deleted file mode 100644 index b5c8724da..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_relay_recipient.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_relay_recipient_list.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_relay_recipient_list.lng deleted file mode 100644 index 36045f4e3..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_relay_recipient_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_spamfilter.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_spamfilter.lng deleted file mode 100644 index f93f485c5..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_spamfilter.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_spamfilter_list.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_spamfilter_list.lng deleted file mode 100644 index 1a7c0fb42..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_spamfilter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_transport.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_transport.lng deleted file mode 100644 index 7fcdca0c5..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_transport.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_transport_list.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_transport_list.lng deleted file mode 100644 index 4430c77d8..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_transport_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_user.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_user.lng deleted file mode 100644 index c7a818bb4..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_user.lng +++ /dev/null @@ -1,41 +0,0 @@ - 1'; -$wb['move_junk_txt'] = 'Move Spam Emails to Junk directory'; -$wb['name_txt'] = 'Realname'; -$wb['name_optional_txt'] = '(Optional)'; -?> diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_user_filter.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_user_filter.lng deleted file mode 100644 index aaa31129a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_user_filter.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_user_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_user_filter_list.lng deleted file mode 100644 index 96bde24ea..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_user_filter_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_user_list.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_user_list.lng deleted file mode 100644 index 3e037c040..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_user_stats_list.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_user_stats_list.lng deleted file mode 100644 index 341dfdd7e..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_user_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_whitelist.lng deleted file mode 100644 index 2d80229bc..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_mail_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/fr_mail_whitelist_list.lng deleted file mode 100644 index 1537a96f8..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_mail_whitelist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_blacklist.lng deleted file mode 100644 index 530a59e54..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_blacklist_list.lng deleted file mode 100644 index e13895c9a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_blacklist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_config.lng b/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_config.lng deleted file mode 100644 index 2843133ca..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_config.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_config_list.lng b/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_config_list.lng deleted file mode 100644 index d59ed84c2..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_config_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_policy.lng b/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_policy.lng deleted file mode 100644 index d40fd4a0c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_policy.lng +++ /dev/null @@ -1,38 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_policy_list.lng b/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_policy_list.lng deleted file mode 100644 index 81e5ebfde..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_policy_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_users.lng b/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_users.lng deleted file mode 100644 index e88d33e39..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_users.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_users_list.lng b/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_users_list.lng deleted file mode 100644 index 55448926a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_users_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_whitelist.lng deleted file mode 100644 index dc51f7b5e..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_whitelist_list.lng deleted file mode 100644 index d209d17a4..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/fr_spamfilter_whitelist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu.lng b/interface/ispconfig/interface/mail/lib/lang/hu.lng deleted file mode 100644 index c799c3502..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu.lng +++ /dev/null @@ -1,47 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_alias.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_alias.lng deleted file mode 100644 index f6fb82760..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_alias.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_alias_list.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_alias_list.lng deleted file mode 100644 index a349fba2b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_alias_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_aliasdomain.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_aliasdomain.lng deleted file mode 100644 index 5815d1e60..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_aliasdomain.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_aliasdomain_list.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_aliasdomain_list.lng deleted file mode 100644 index d96a63e2a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_aliasdomain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_blacklist.lng deleted file mode 100644 index 1d2f0e014..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_blacklist_list.lng deleted file mode 100644 index 0552cdae7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_blacklist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_content_filter.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_content_filter.lng deleted file mode 100644 index 687443d24..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_content_filter.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_content_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_content_filter_list.lng deleted file mode 100644 index 557c9baed..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_content_filter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_domain.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_domain.lng deleted file mode 100644 index abaf7595b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_domain.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_domain_catchall.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_domain_catchall.lng deleted file mode 100644 index e064f3056..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_domain_catchall.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_domain_catchall_list.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_domain_catchall_list.lng deleted file mode 100644 index effd97914..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_domain_catchall_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_domain_list.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_domain_list.lng deleted file mode 100644 index aa90c422c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_domain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_forward.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_forward.lng deleted file mode 100644 index ec3e281a8..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_forward.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_forward_list.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_forward_list.lng deleted file mode 100644 index d9f917709..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_forward_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_get.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_get.lng deleted file mode 100644 index d3e066175..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_get.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_get_list.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_get_list.lng deleted file mode 100644 index bb18a849c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_get_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_relay_recipient.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_relay_recipient.lng deleted file mode 100644 index b5c8724da..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_relay_recipient.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_relay_recipient_list.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_relay_recipient_list.lng deleted file mode 100644 index 36045f4e3..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_relay_recipient_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_spamfilter.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_spamfilter.lng deleted file mode 100644 index 1aeef9c88..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_spamfilter.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_spamfilter_list.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_spamfilter_list.lng deleted file mode 100644 index aa5879e32..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_spamfilter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_transport.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_transport.lng deleted file mode 100644 index d5089f3c1..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_transport.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_transport_list.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_transport_list.lng deleted file mode 100644 index c2e7bf2a4..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_transport_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_user.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_user.lng deleted file mode 100644 index 3aaeca146..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_user.lng +++ /dev/null @@ -1,39 +0,0 @@ - 1'; -$wb['autoresponder_start_date_txt'] = 'Start on'; -$wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; -$wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; -$wb['move_junk_txt'] = 'Move Spam Emails to Junk directory'; -$wb['name_txt'] = 'Realname'; -$wb['name_optional_txt'] = '(Optional)'; -?> diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_user_filter.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_user_filter.lng deleted file mode 100644 index e51ddd0cf..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_user_filter.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_user_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_user_filter_list.lng deleted file mode 100644 index 1adaa5ecd..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_user_filter_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_user_list.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_user_list.lng deleted file mode 100644 index 71d8e6beb..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_user_stats_list.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_user_stats_list.lng deleted file mode 100644 index 88b4b81bf..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_user_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_whitelist.lng deleted file mode 100644 index 71c3cf39b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_mail_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/hu_mail_whitelist_list.lng deleted file mode 100644 index b5bc46825..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_mail_whitelist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_blacklist.lng deleted file mode 100644 index 077a7bc23..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_blacklist_list.lng deleted file mode 100644 index c526bbb10..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_blacklist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_config.lng b/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_config.lng deleted file mode 100644 index c137e9a68..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_config.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_config_list.lng b/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_config_list.lng deleted file mode 100644 index 59d0449d8..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_config_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_policy.lng b/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_policy.lng deleted file mode 100644 index 06cbda576..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_policy.lng +++ /dev/null @@ -1,38 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_policy_list.lng b/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_policy_list.lng deleted file mode 100644 index a592422d5..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_policy_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_users.lng b/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_users.lng deleted file mode 100644 index 4fd29bbd5..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_users.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_users_list.lng b/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_users_list.lng deleted file mode 100644 index 796a5f959..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_users_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_whitelist.lng deleted file mode 100644 index 077a7bc23..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_whitelist_list.lng deleted file mode 100644 index 9a1a63587..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/hu_spamfilter_whitelist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it.lng b/interface/ispconfig/interface/mail/lib/lang/it.lng deleted file mode 100644 index e3a31e332..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it.lng +++ /dev/null @@ -1,47 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_alias.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_alias.lng deleted file mode 100644 index 44b6fed86..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_alias.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_alias_list.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_alias_list.lng deleted file mode 100644 index 0a44ea4f7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_alias_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_aliasdomain.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_aliasdomain.lng deleted file mode 100644 index 5815d1e60..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_aliasdomain.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_aliasdomain_list.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_aliasdomain_list.lng deleted file mode 100644 index d96a63e2a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_aliasdomain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_blacklist.lng deleted file mode 100644 index 5b2815c0d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_blacklist_list.lng deleted file mode 100644 index a72052f08..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_blacklist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_content_filter.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_content_filter.lng deleted file mode 100644 index 9d5e5f9ba..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_content_filter.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_content_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_content_filter_list.lng deleted file mode 100644 index 8c1e5e2e7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_content_filter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_domain.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_domain.lng deleted file mode 100644 index 6120e82b7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_domain.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_domain_catchall.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_domain_catchall.lng deleted file mode 100644 index 382e97f0e..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_domain_catchall.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_domain_catchall_list.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_domain_catchall_list.lng deleted file mode 100644 index 7d076dd4c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_domain_catchall_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_domain_list.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_domain_list.lng deleted file mode 100644 index d84478131..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_domain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_forward.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_forward.lng deleted file mode 100644 index 7d237e14f..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_forward.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_forward_list.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_forward_list.lng deleted file mode 100644 index f4529440c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_forward_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_get.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_get.lng deleted file mode 100644 index 5e42823b6..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_get.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_get_list.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_get_list.lng deleted file mode 100644 index 4baf67e02..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_get_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_relay_recipient.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_relay_recipient.lng deleted file mode 100644 index b5c8724da..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_relay_recipient.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_relay_recipient_list.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_relay_recipient_list.lng deleted file mode 100644 index 36045f4e3..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_relay_recipient_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_spamfilter.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_spamfilter.lng deleted file mode 100644 index e0a2a2f9a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_spamfilter.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_spamfilter_list.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_spamfilter_list.lng deleted file mode 100644 index 728f3d365..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_spamfilter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_transport.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_transport.lng deleted file mode 100644 index a4d7bbc44..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_transport.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_transport_list.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_transport_list.lng deleted file mode 100644 index a96c081e6..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_transport_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_user.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_user.lng deleted file mode 100644 index 374503643..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_user.lng +++ /dev/null @@ -1,41 +0,0 @@ - 1'; -$wb['autoresponder_start_date_txt'] = 'Start on'; -$wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; -$wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; -$wb['move_junk_txt'] = 'Move Spam Emails to Junk directory'; -$wb['name_txt'] = 'Realname'; -$wb['name_optional_txt'] = '(Optional)'; -?> diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_user_filter.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_user_filter.lng deleted file mode 100644 index e633c1bd1..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_user_filter.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_user_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_user_filter_list.lng deleted file mode 100644 index 2754259f4..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_user_filter_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_user_list.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_user_list.lng deleted file mode 100644 index 6063cef12..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_user_stats_list.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_user_stats_list.lng deleted file mode 100644 index edde65bd7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_user_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_whitelist.lng deleted file mode 100644 index 92c365ba2..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_mail_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/it_mail_whitelist_list.lng deleted file mode 100644 index eaa7eb3fc..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_mail_whitelist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_blacklist.lng deleted file mode 100644 index 5a85949ab..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_blacklist_list.lng deleted file mode 100644 index 1b17e6442..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_blacklist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_config.lng b/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_config.lng deleted file mode 100644 index 2843133ca..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_config.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_config_list.lng b/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_config_list.lng deleted file mode 100644 index 70e49e22b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_config_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_policy.lng b/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_policy.lng deleted file mode 100644 index e876330a6..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_policy.lng +++ /dev/null @@ -1,38 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_policy_list.lng b/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_policy_list.lng deleted file mode 100644 index 04491ae4c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_policy_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_users.lng b/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_users.lng deleted file mode 100644 index a93d94dba..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_users.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_users_list.lng b/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_users_list.lng deleted file mode 100644 index ed3d7a399..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_users_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_whitelist.lng deleted file mode 100644 index 5a85949ab..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_whitelist_list.lng deleted file mode 100644 index d209d17a4..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/it_spamfilter_whitelist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja.lng b/interface/ispconfig/interface/mail/lib/lang/ja.lng deleted file mode 100644 index 91dcde5ca..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja.lng +++ /dev/null @@ -1,47 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_alias.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_alias.lng deleted file mode 100644 index 032fb286f..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_alias.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_alias_list.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_alias_list.lng deleted file mode 100644 index d7782802c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_alias_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_aliasdomain.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_aliasdomain.lng deleted file mode 100644 index 5815d1e60..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_aliasdomain.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_aliasdomain_list.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_aliasdomain_list.lng deleted file mode 100644 index d96a63e2a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_aliasdomain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_blacklist.lng deleted file mode 100644 index 9007f6bb0..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_blacklist_list.lng deleted file mode 100644 index 35bea5fc6..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_blacklist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_content_filter.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_content_filter.lng deleted file mode 100644 index ba657bbae..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_content_filter.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_content_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_content_filter_list.lng deleted file mode 100644 index 58470067c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_content_filter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_domain.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_domain.lng deleted file mode 100644 index 37867b047..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_domain.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_domain_catchall.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_domain_catchall.lng deleted file mode 100644 index 9c29cfbb9..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_domain_catchall.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_domain_catchall_list.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_domain_catchall_list.lng deleted file mode 100644 index e459645b2..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_domain_catchall_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_domain_list.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_domain_list.lng deleted file mode 100644 index 89eaf06f3..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_domain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_forward.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_forward.lng deleted file mode 100644 index e52a15d86..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_forward.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_forward_list.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_forward_list.lng deleted file mode 100644 index bf0deec14..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_forward_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_get.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_get.lng deleted file mode 100644 index a4dd18c4c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_get.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_get_list.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_get_list.lng deleted file mode 100644 index 1bf625eef..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_get_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_relay_recipient.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_relay_recipient.lng deleted file mode 100644 index b5c8724da..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_relay_recipient.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_relay_recipient_list.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_relay_recipient_list.lng deleted file mode 100644 index 36045f4e3..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_relay_recipient_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_spamfilter.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_spamfilter.lng deleted file mode 100644 index 77ef6dd16..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_spamfilter.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_spamfilter_list.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_spamfilter_list.lng deleted file mode 100644 index bcc2a12c8..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_spamfilter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_transport.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_transport.lng deleted file mode 100644 index b922a0e02..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_transport.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_transport_list.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_transport_list.lng deleted file mode 100644 index 77684972d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_transport_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_user.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_user.lng deleted file mode 100644 index 35eecb9a0..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_user.lng +++ /dev/null @@ -1,39 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_user_filter.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_user_filter.lng deleted file mode 100644 index 94d29d413..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_user_filter.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_user_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_user_filter_list.lng deleted file mode 100644 index 847a415cc..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_user_filter_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_user_list.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_user_list.lng deleted file mode 100644 index 6063cef12..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_user_stats_list.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_user_stats_list.lng deleted file mode 100644 index ee0b9b9af..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_user_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_whitelist.lng deleted file mode 100644 index 74d51da92..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_mail_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/ja_mail_whitelist_list.lng deleted file mode 100644 index 3f9d10414..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_mail_whitelist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_blacklist.lng deleted file mode 100644 index 3e85ceeb4..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_blacklist_list.lng deleted file mode 100644 index 2e3cc45f9..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_blacklist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_config.lng b/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_config.lng deleted file mode 100644 index 30211081b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_config.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_config_list.lng b/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_config_list.lng deleted file mode 100644 index 49e2dbe37..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_config_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_policy.lng b/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_policy.lng deleted file mode 100644 index 89d377a38..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_policy.lng +++ /dev/null @@ -1,38 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_policy_list.lng b/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_policy_list.lng deleted file mode 100644 index b2656b78e..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_policy_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_users.lng b/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_users.lng deleted file mode 100644 index 815e723c2..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_users.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_users_list.lng b/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_users_list.lng deleted file mode 100644 index 00459dc54..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_users_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_whitelist.lng deleted file mode 100644 index 3e85ceeb4..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_whitelist_list.lng deleted file mode 100644 index 36009973d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ja_spamfilter_whitelist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl.lng b/interface/ispconfig/interface/mail/lib/lang/nl.lng deleted file mode 100644 index b903ae51c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl.lng +++ /dev/null @@ -1,47 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_alias.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_alias.lng deleted file mode 100644 index 5ee32421d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_alias.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_alias_list.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_alias_list.lng deleted file mode 100644 index 28fe08fb0..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_alias_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_aliasdomain.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_aliasdomain.lng deleted file mode 100644 index c6d8352dc..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_aliasdomain.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_aliasdomain_list.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_aliasdomain_list.lng deleted file mode 100644 index 860e583ae..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_aliasdomain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_blacklist.lng deleted file mode 100644 index f3dd2f487..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_blacklist_list.lng deleted file mode 100644 index a44f067d0..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_blacklist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_content_filter.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_content_filter.lng deleted file mode 100644 index 97f102ad7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_content_filter.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_content_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_content_filter_list.lng deleted file mode 100644 index bb92651dc..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_content_filter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_domain.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_domain.lng deleted file mode 100644 index 5fbdeac27..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_domain.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_domain_catchall.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_domain_catchall.lng deleted file mode 100644 index d68f7d821..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_domain_catchall.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_domain_catchall_list.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_domain_catchall_list.lng deleted file mode 100644 index 379f879aa..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_domain_catchall_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_domain_list.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_domain_list.lng deleted file mode 100644 index 0218e9c59..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_domain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_forward.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_forward.lng deleted file mode 100644 index 180a13846..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_forward.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_forward_list.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_forward_list.lng deleted file mode 100644 index 88cf50b91..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_forward_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_get.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_get.lng deleted file mode 100644 index f5097afad..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_get.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_get_list.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_get_list.lng deleted file mode 100644 index e680ab12c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_get_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_relay_recipient.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_relay_recipient.lng deleted file mode 100644 index 68e0739e5..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_relay_recipient.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_relay_recipient_list.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_relay_recipient_list.lng deleted file mode 100644 index 57e832354..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_relay_recipient_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_spamfilter.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_spamfilter.lng deleted file mode 100644 index 707c6f7d3..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_spamfilter.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_spamfilter_list.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_spamfilter_list.lng deleted file mode 100644 index 556cb5da2..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_spamfilter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_transport.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_transport.lng deleted file mode 100644 index 447fde847..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_transport.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_transport_list.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_transport_list.lng deleted file mode 100644 index 99f3d4175..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_transport_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_user.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_user.lng deleted file mode 100644 index 85a08bb62..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_user.lng +++ /dev/null @@ -1,39 +0,0 @@ -1)'; -$wb['autoresponder_start_date_txt'] = 'Begin'; -$wb['autoresponder_start_date_isfuture'] = 'Begin-datum kan niet in het verleden liggen.'; -$wb['autoresponder_end_date_txt'] = 'Einde'; -$wb['autoresponder_end_date_isgreater'] = 'Eind-datum mag niet eerder zijn dan de begin-datum.'; -$wb['move_junk_txt'] = 'Verplaats SPAM naar map Ongewenste e-mail'; -$wb['name_txt'] = 'Realname'; -$wb['name_optional_txt'] = '(Optional)'; -?> diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_user_filter.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_user_filter.lng deleted file mode 100644 index 1a89f9009..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_user_filter.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_user_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_user_filter_list.lng deleted file mode 100644 index fc0af5b2f..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_user_filter_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_user_list.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_user_list.lng deleted file mode 100644 index efd76bf79..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_user_stats_list.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_user_stats_list.lng deleted file mode 100644 index 7d9406b49..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_user_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_whitelist.lng deleted file mode 100644 index 8bdc7a744..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_mail_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/nl_mail_whitelist_list.lng deleted file mode 100644 index e9ed520fb..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_mail_whitelist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_blacklist.lng deleted file mode 100644 index 7c3d30c94..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_blacklist_list.lng deleted file mode 100644 index adf40b954..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_blacklist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_config.lng b/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_config.lng deleted file mode 100644 index 7e487c94b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_config.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_config_list.lng b/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_config_list.lng deleted file mode 100644 index cbae14cde..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_config_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_policy.lng b/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_policy.lng deleted file mode 100644 index d2ea79df2..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_policy.lng +++ /dev/null @@ -1,38 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_policy_list.lng b/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_policy_list.lng deleted file mode 100644 index 139e395f8..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_policy_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_users.lng b/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_users.lng deleted file mode 100644 index acf65d6ab..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_users.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_users_list.lng b/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_users_list.lng deleted file mode 100644 index 51f63097e..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_users_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_whitelist.lng deleted file mode 100644 index 7c3d30c94..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_whitelist_list.lng deleted file mode 100644 index aa4fe00b3..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/nl_spamfilter_whitelist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl.lng b/interface/ispconfig/interface/mail/lib/lang/pl.lng deleted file mode 100644 index 2e9f8d975..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl.lng +++ /dev/null @@ -1,47 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_alias.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_alias.lng deleted file mode 100644 index 8556be818..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_alias.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_alias_list.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_alias_list.lng deleted file mode 100644 index b6ce95d0c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_alias_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_aliasdomain.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_aliasdomain.lng deleted file mode 100644 index 5815d1e60..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_aliasdomain.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_aliasdomain_list.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_aliasdomain_list.lng deleted file mode 100644 index d96a63e2a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_aliasdomain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_blacklist.lng deleted file mode 100644 index 528f2f741..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_blacklist_list.lng deleted file mode 100644 index ebef66657..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_blacklist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_content_filter.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_content_filter.lng deleted file mode 100644 index 54efa4fed..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_content_filter.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_content_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_content_filter_list.lng deleted file mode 100644 index 6b0dd9bb8..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_content_filter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_domain.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_domain.lng deleted file mode 100644 index 6f9c68cdc..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_domain.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_domain_catchall.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_domain_catchall.lng deleted file mode 100644 index c77cc73ba..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_domain_catchall.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_domain_catchall_list.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_domain_catchall_list.lng deleted file mode 100644 index 1f0aad197..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_domain_catchall_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_domain_list.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_domain_list.lng deleted file mode 100644 index ec51e2cdb..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_domain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_forward.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_forward.lng deleted file mode 100644 index 4e100d615..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_forward.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_forward_list.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_forward_list.lng deleted file mode 100644 index 1044bd512..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_forward_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_get.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_get.lng deleted file mode 100644 index 66fe5a1f8..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_get.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_get_list.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_get_list.lng deleted file mode 100644 index cd473d9de..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_get_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_relay_recipient.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_relay_recipient.lng deleted file mode 100644 index b5c8724da..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_relay_recipient.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_relay_recipient_list.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_relay_recipient_list.lng deleted file mode 100644 index 36045f4e3..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_relay_recipient_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_spamfilter.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_spamfilter.lng deleted file mode 100644 index 3879f2424..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_spamfilter.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_spamfilter_list.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_spamfilter_list.lng deleted file mode 100644 index d6097bb33..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_spamfilter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_transport.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_transport.lng deleted file mode 100644 index 035a5b049..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_transport.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_transport_list.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_transport_list.lng deleted file mode 100644 index fa5c58431..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_transport_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_user.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_user.lng deleted file mode 100644 index 12f4f7ec6..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_user.lng +++ /dev/null @@ -1,39 +0,0 @@ - 1'; -$wb['autoresponder_start_date_txt'] = 'Start on'; -$wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; -$wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; -$wb['move_junk_txt'] = 'Move Spam Emails to Junk directory'; -$wb['name_txt'] = 'Realname'; -$wb['name_optional_txt'] = '(Optional)'; -?> diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_user_filter.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_user_filter.lng deleted file mode 100644 index 129fdae9d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_user_filter.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_user_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_user_filter_list.lng deleted file mode 100644 index cea7c44db..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_user_filter_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_user_list.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_user_list.lng deleted file mode 100644 index 287f520f6..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_user_stats_list.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_user_stats_list.lng deleted file mode 100644 index b9780687d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_user_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_whitelist.lng deleted file mode 100644 index 203c5bae7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_mail_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/pl_mail_whitelist_list.lng deleted file mode 100644 index 10e6dfcf0..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_mail_whitelist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_blacklist.lng deleted file mode 100644 index 6da8ddc9d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_blacklist_list.lng deleted file mode 100644 index c237a7a77..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_blacklist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_config.lng b/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_config.lng deleted file mode 100644 index c750d9593..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_config.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_config_list.lng b/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_config_list.lng deleted file mode 100644 index 45b3f315c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_config_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_policy.lng b/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_policy.lng deleted file mode 100644 index 0e4df55a3..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_policy.lng +++ /dev/null @@ -1,38 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_policy_list.lng b/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_policy_list.lng deleted file mode 100644 index 43d9d414d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_policy_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_users.lng b/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_users.lng deleted file mode 100644 index 573f9bec0..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_users.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_users_list.lng b/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_users_list.lng deleted file mode 100644 index dde2a62c6..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_users_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_whitelist.lng deleted file mode 100644 index be836015d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_whitelist_list.lng deleted file mode 100644 index 6517cf41a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pl_spamfilter_whitelist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt.lng b/interface/ispconfig/interface/mail/lib/lang/pt.lng deleted file mode 100644 index 2c051ce57..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt.lng +++ /dev/null @@ -1,48 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_alias.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_alias.lng deleted file mode 100644 index abb37dc55..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_alias.lng +++ /dev/null @@ -1,12 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_alias_list.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_alias_list.lng deleted file mode 100644 index 7c5c9e3fc..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_alias_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_aliasdomain.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_aliasdomain.lng deleted file mode 100644 index f98f59e76..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_aliasdomain.lng +++ /dev/null @@ -1,12 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_aliasdomain_list.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_aliasdomain_list.lng deleted file mode 100644 index 518720679..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_aliasdomain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_blacklist.lng deleted file mode 100644 index 5a2da4f48..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_blacklist.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_blacklist_list.lng deleted file mode 100644 index efb50b1d9..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_blacklist_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_content_filter.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_content_filter.lng deleted file mode 100644 index 39c0a618d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_content_filter.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_content_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_content_filter_list.lng deleted file mode 100644 index e81fded7b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_content_filter_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_domain.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_domain.lng deleted file mode 100644 index ec01a7eb7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_domain.lng +++ /dev/null @@ -1,14 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_domain_catchall.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_domain_catchall.lng deleted file mode 100644 index 3a18b2f55..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_domain_catchall.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_domain_catchall_list.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_domain_catchall_list.lng deleted file mode 100644 index f23bc6781..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_domain_catchall_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_domain_list.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_domain_list.lng deleted file mode 100644 index 6a493a187..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_domain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_forward.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_forward.lng deleted file mode 100644 index 9acc18a91..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_forward.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_forward_list.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_forward_list.lng deleted file mode 100644 index db6622f6b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_forward_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_get.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_get.lng deleted file mode 100644 index 0d86fe648..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_get.lng +++ /dev/null @@ -1,17 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_get_list.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_get_list.lng deleted file mode 100644 index 3ec9b263c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_get_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_relay_recipient.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_relay_recipient.lng deleted file mode 100644 index fe741e271..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_relay_recipient.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_relay_recipient_list.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_relay_recipient_list.lng deleted file mode 100644 index 4e2ca4c93..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_relay_recipient_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_spamfilter.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_spamfilter.lng deleted file mode 100644 index 580c204b5..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_spamfilter.lng +++ /dev/null @@ -1,18 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_spamfilter_list.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_spamfilter_list.lng deleted file mode 100644 index 03ef40df8..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_spamfilter_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_transport.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_transport.lng deleted file mode 100644 index c749a8157..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_transport.lng +++ /dev/null @@ -1,11 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_transport_list.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_transport_list.lng deleted file mode 100644 index 43136582a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_transport_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_user.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_user.lng deleted file mode 100644 index 939dade35..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_user.lng +++ /dev/null @@ -1,40 +0,0 @@ - 1'; -$wb['autoresponder_start_date_txt'] = 'Início:'; -$wb['autoresponder_start_date_isfuture'] = 'A data de ínicio não pode estar no passado.'; -$wb['autoresponder_end_date_txt'] = 'Termino:'; -$wb['autoresponder_end_date_isgreater'] = 'A data de início deve ser menor que a data de termino.'; -$wb['move_junk_txt'] = 'Mover Spam para a pasta JUNK'; -$wb['name_txt'] = 'Realname'; -$wb['name_optional_txt'] = '(Optional)'; -?> - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_user_filter.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_user_filter.lng deleted file mode 100644 index 7554389ff..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_user_filter.lng +++ /dev/null @@ -1,11 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_user_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_user_filter_list.lng deleted file mode 100644 index f0075f92b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_user_filter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_user_list.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_user_list.lng deleted file mode 100644 index 615004561..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_user_stats_list.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_user_stats_list.lng deleted file mode 100644 index bb8a6a4cd..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_user_stats_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_whitelist.lng deleted file mode 100644 index 6853a4b83..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_whitelist.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_mail_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/pt_mail_whitelist_list.lng deleted file mode 100644 index 1ec69a34b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_mail_whitelist_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_blacklist.lng deleted file mode 100644 index 16b8bc632..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_blacklist.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_blacklist_list.lng deleted file mode 100644 index b93d91b8d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_blacklist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_config.lng b/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_config.lng deleted file mode 100644 index 5d2d639a1..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_config.lng +++ /dev/null @@ -1,21 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_config_list.lng b/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_config_list.lng deleted file mode 100644 index 9857bc759..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_config_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_policy.lng b/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_policy.lng deleted file mode 100644 index 18df72b1f..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_policy.lng +++ /dev/null @@ -1,39 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_policy_list.lng b/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_policy_list.lng deleted file mode 100644 index 7675b1de2..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_policy_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_users.lng b/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_users.lng deleted file mode 100644 index aa8eea9d1..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_users.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_users_list.lng b/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_users_list.lng deleted file mode 100644 index b2398ddcf..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_users_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_whitelist.lng deleted file mode 100644 index 092bf347a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_whitelist.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_whitelist_list.lng deleted file mode 100644 index b5b68ba1e..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/pt_spamfilter_whitelist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro.lng b/interface/ispconfig/interface/mail/lib/lang/ro.lng deleted file mode 100644 index f9ad4e65c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro.lng +++ /dev/null @@ -1,47 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_alias.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_alias.lng deleted file mode 100644 index dbc2f7abf..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_alias.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_alias_list.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_alias_list.lng deleted file mode 100644 index e9f37c807..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_alias_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_aliasdomain.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_aliasdomain.lng deleted file mode 100644 index 241eb64ce..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_aliasdomain.lng +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_aliasdomain_list.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_aliasdomain_list.lng deleted file mode 100644 index 8ebfa7dec..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_aliasdomain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_blacklist.lng deleted file mode 100644 index a0feb7826..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_blacklist_list.lng deleted file mode 100644 index b0342fcf1..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_blacklist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_content_filter.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_content_filter.lng deleted file mode 100644 index d6f2d8cd1..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_content_filter.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_content_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_content_filter_list.lng deleted file mode 100644 index 8cd0f8377..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_content_filter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_domain.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_domain.lng deleted file mode 100644 index ce579c204..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_domain.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_domain_catchall.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_domain_catchall.lng deleted file mode 100644 index 9b7134d84..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_domain_catchall.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_domain_catchall_list.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_domain_catchall_list.lng deleted file mode 100644 index 362af948a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_domain_catchall_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_domain_list.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_domain_list.lng deleted file mode 100644 index 600eefc7c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_domain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_forward.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_forward.lng deleted file mode 100644 index f75e39630..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_forward.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_forward_list.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_forward_list.lng deleted file mode 100644 index 620cb0de8..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_forward_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_get.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_get.lng deleted file mode 100644 index 7a8ea8ec8..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_get.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_get_list.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_get_list.lng deleted file mode 100644 index dcfa65c0f..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_get_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_relay_recipient.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_relay_recipient.lng deleted file mode 100644 index fdec9ab0a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_relay_recipient.lng +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_relay_recipient_list.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_relay_recipient_list.lng deleted file mode 100644 index 44cd894ac..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_relay_recipient_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_spamfilter.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_spamfilter.lng deleted file mode 100644 index ce7b3a98c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_spamfilter.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_spamfilter_list.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_spamfilter_list.lng deleted file mode 100644 index f39841361..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_spamfilter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_transport.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_transport.lng deleted file mode 100644 index 6693e9fa8..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_transport.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_transport_list.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_transport_list.lng deleted file mode 100644 index 5775d2717..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_transport_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_user.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_user.lng deleted file mode 100644 index 19928116f..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_user.lng +++ /dev/null @@ -1,39 +0,0 @@ - 1'; -$wb['move_junk_txt'] = 'Move Spam Emails to Junk directory'; -$wb['name_txt'] = 'Realname'; -$wb['name_optional_txt'] = '(Optional)'; -?> diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_user_filter.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_user_filter.lng deleted file mode 100644 index 5442a3da0..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_user_filter.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_user_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_user_filter_list.lng deleted file mode 100644 index d0df16766..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_user_filter_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_user_list.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_user_list.lng deleted file mode 100644 index 6d45a926b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_user_stats_list.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_user_stats_list.lng deleted file mode 100644 index 525483d85..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_user_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_whitelist.lng deleted file mode 100644 index 7a3f9f515..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_mail_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/ro_mail_whitelist_list.lng deleted file mode 100644 index e2ab48b66..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_mail_whitelist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_blacklist.lng deleted file mode 100644 index f24efb551..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_blacklist_list.lng deleted file mode 100644 index de9cbc975..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_blacklist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_config.lng b/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_config.lng deleted file mode 100644 index 1ed8aac8c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_config.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_config_list.lng b/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_config_list.lng deleted file mode 100644 index 059001111..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_config_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_policy.lng b/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_policy.lng deleted file mode 100644 index 3645b3e1d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_policy.lng +++ /dev/null @@ -1,38 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_policy_list.lng b/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_policy_list.lng deleted file mode 100644 index d72f80207..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_policy_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_users.lng b/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_users.lng deleted file mode 100644 index d07cd4987..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_users.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_users_list.lng b/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_users_list.lng deleted file mode 100644 index fb352a16b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_users_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_whitelist.lng deleted file mode 100644 index f24efb551..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_whitelist_list.lng deleted file mode 100644 index adb312d41..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ro_spamfilter_whitelist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru.lng b/interface/ispconfig/interface/mail/lib/lang/ru.lng deleted file mode 100644 index eaeaf4d24..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru.lng +++ /dev/null @@ -1,48 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_alias.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_alias.lng deleted file mode 100644 index 31408f90a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_alias.lng +++ /dev/null @@ -1,12 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_alias_list.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_alias_list.lng deleted file mode 100644 index 079c7697a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_alias_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_aliasdomain.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_aliasdomain.lng deleted file mode 100644 index 10f6db67c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_aliasdomain.lng +++ /dev/null @@ -1,12 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_aliasdomain_list.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_aliasdomain_list.lng deleted file mode 100644 index cfc133851..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_aliasdomain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_blacklist.lng deleted file mode 100644 index e0136d21d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_blacklist.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_blacklist_list.lng deleted file mode 100644 index 239741682..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_blacklist_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_content_filter.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_content_filter.lng deleted file mode 100644 index 74514c3e4..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_content_filter.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_content_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_content_filter_list.lng deleted file mode 100644 index f3925847a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_content_filter_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_domain.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_domain.lng deleted file mode 100644 index 1ce7bcff7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_domain.lng +++ /dev/null @@ -1,14 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_domain_catchall.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_domain_catchall.lng deleted file mode 100644 index c33e7ed55..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_domain_catchall.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_domain_catchall_list.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_domain_catchall_list.lng deleted file mode 100644 index 53fba7f13..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_domain_catchall_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_domain_list.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_domain_list.lng deleted file mode 100644 index d79119142..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_domain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_forward.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_forward.lng deleted file mode 100644 index 91c8de4f7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_forward.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_forward_list.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_forward_list.lng deleted file mode 100644 index 6fbccc231..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_forward_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_get.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_get.lng deleted file mode 100644 index d1df0ca6e..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_get.lng +++ /dev/null @@ -1,17 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_get_list.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_get_list.lng deleted file mode 100644 index 624356864..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_get_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_relay_recipient.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_relay_recipient.lng deleted file mode 100644 index f01fe7313..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_relay_recipient.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_relay_recipient_list.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_relay_recipient_list.lng deleted file mode 100644 index e31964124..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_relay_recipient_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_spamfilter.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_spamfilter.lng deleted file mode 100644 index 4b9003bb6..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_spamfilter.lng +++ /dev/null @@ -1,18 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_spamfilter_list.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_spamfilter_list.lng deleted file mode 100644 index 60ea0a804..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_spamfilter_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_transport.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_transport.lng deleted file mode 100644 index 8120616f6..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_transport.lng +++ /dev/null @@ -1,11 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_transport_list.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_transport_list.lng deleted file mode 100644 index 7a8316172..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_transport_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_user.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_user.lng deleted file mode 100644 index e704e5b0c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_user.lng +++ /dev/null @@ -1,42 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_user_filter.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_user_filter.lng deleted file mode 100644 index 2c4ec7593..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_user_filter.lng +++ /dev/null @@ -1,11 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_user_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_user_filter_list.lng deleted file mode 100644 index 31cdd3690..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_user_filter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_user_list.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_user_list.lng deleted file mode 100644 index 50504e9c2..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_user_stats_list.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_user_stats_list.lng deleted file mode 100644 index 8d2d0a5cf..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_user_stats_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_whitelist.lng deleted file mode 100644 index b2da2503b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_whitelist.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_mail_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/ru_mail_whitelist_list.lng deleted file mode 100644 index 9d1bc9658..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_mail_whitelist_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_blacklist.lng deleted file mode 100644 index 2254ce98d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_blacklist.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_blacklist_list.lng deleted file mode 100644 index 2a9bad5a5..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_blacklist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_config.lng b/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_config.lng deleted file mode 100644 index 96ab7c2ab..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_config.lng +++ /dev/null @@ -1,21 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_config_list.lng b/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_config_list.lng deleted file mode 100644 index 8d7fb329e..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_config_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_policy.lng b/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_policy.lng deleted file mode 100644 index 39c08439f..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_policy.lng +++ /dev/null @@ -1,39 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_policy_list.lng b/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_policy_list.lng deleted file mode 100644 index e62998610..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_policy_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_users.lng b/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_users.lng deleted file mode 100644 index d529a4124..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_users.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_users_list.lng b/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_users_list.lng deleted file mode 100644 index f7bd251f5..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_users_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_whitelist.lng deleted file mode 100644 index df2fb91ec..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_whitelist.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_whitelist_list.lng deleted file mode 100644 index b81b3e9ad..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/ru_spamfilter_whitelist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/interface/ispconfig/interface/mail/lib/lang/se.lng b/interface/ispconfig/interface/mail/lib/lang/se.lng deleted file mode 100644 index e3a31e332..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se.lng +++ /dev/null @@ -1,47 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_alias.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_alias.lng deleted file mode 100644 index 742a20aff..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_alias.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_alias_list.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_alias_list.lng deleted file mode 100644 index c2fd19e36..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_alias_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_aliasdomain.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_aliasdomain.lng deleted file mode 100644 index 5815d1e60..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_aliasdomain.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_aliasdomain_list.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_aliasdomain_list.lng deleted file mode 100644 index d96a63e2a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_aliasdomain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_blacklist.lng deleted file mode 100644 index a15814164..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_blacklist_list.lng deleted file mode 100644 index 497e24d8b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_blacklist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_content_filter.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_content_filter.lng deleted file mode 100644 index 9d5e5f9ba..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_content_filter.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_content_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_content_filter_list.lng deleted file mode 100644 index 8c1e5e2e7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_content_filter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_domain.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_domain.lng deleted file mode 100644 index dc8cf7bfd..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_domain.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_domain_catchall.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_domain_catchall.lng deleted file mode 100644 index 8108545c2..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_domain_catchall.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_domain_catchall_list.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_domain_catchall_list.lng deleted file mode 100644 index 9f4b84cdf..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_domain_catchall_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_domain_list.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_domain_list.lng deleted file mode 100644 index d0c8ba979..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_domain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_forward.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_forward.lng deleted file mode 100644 index be714f48c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_forward.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_forward_list.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_forward_list.lng deleted file mode 100644 index 1856a7205..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_forward_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_get.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_get.lng deleted file mode 100644 index 5e42823b6..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_get.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_get_list.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_get_list.lng deleted file mode 100644 index 4baf67e02..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_get_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_relay_recipient.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_relay_recipient.lng deleted file mode 100644 index b5c8724da..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_relay_recipient.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_relay_recipient_list.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_relay_recipient_list.lng deleted file mode 100644 index 36045f4e3..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_relay_recipient_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_spamfilter.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_spamfilter.lng deleted file mode 100644 index e0a2a2f9a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_spamfilter.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_spamfilter_list.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_spamfilter_list.lng deleted file mode 100644 index 728f3d365..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_spamfilter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_transport.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_transport.lng deleted file mode 100644 index a4d7bbc44..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_transport.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_transport_list.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_transport_list.lng deleted file mode 100644 index a96c081e6..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_transport_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_user.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_user.lng deleted file mode 100644 index 374503643..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_user.lng +++ /dev/null @@ -1,41 +0,0 @@ - 1'; -$wb['autoresponder_start_date_txt'] = 'Start on'; -$wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; -$wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; -$wb['move_junk_txt'] = 'Move Spam Emails to Junk directory'; -$wb['name_txt'] = 'Realname'; -$wb['name_optional_txt'] = '(Optional)'; -?> diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_user_filter.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_user_filter.lng deleted file mode 100644 index e633c1bd1..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_user_filter.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_user_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_user_filter_list.lng deleted file mode 100644 index 2754259f4..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_user_filter_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_user_list.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_user_list.lng deleted file mode 100644 index 6063cef12..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_user_stats_list.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_user_stats_list.lng deleted file mode 100644 index edde65bd7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_user_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_whitelist.lng deleted file mode 100644 index 355f8be34..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_mail_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/se_mail_whitelist_list.lng deleted file mode 100644 index 5534d5852..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_mail_whitelist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_blacklist.lng deleted file mode 100644 index 5a85949ab..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_blacklist_list.lng deleted file mode 100644 index 1b17e6442..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_blacklist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_config.lng b/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_config.lng deleted file mode 100644 index 2843133ca..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_config.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_config_list.lng b/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_config_list.lng deleted file mode 100644 index 70e49e22b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_config_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_policy.lng b/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_policy.lng deleted file mode 100644 index e876330a6..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_policy.lng +++ /dev/null @@ -1,38 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_policy_list.lng b/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_policy_list.lng deleted file mode 100644 index 04491ae4c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_policy_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_users.lng b/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_users.lng deleted file mode 100644 index a93d94dba..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_users.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_users_list.lng b/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_users_list.lng deleted file mode 100644 index ed3d7a399..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_users_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_whitelist.lng deleted file mode 100644 index 5a85949ab..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_whitelist_list.lng deleted file mode 100644 index d209d17a4..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/se_spamfilter_whitelist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk.lng b/interface/ispconfig/interface/mail/lib/lang/sk.lng deleted file mode 100644 index f981e016b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk.lng +++ /dev/null @@ -1,47 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_alias.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_alias.lng deleted file mode 100644 index 9bc1f12da..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_alias.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_alias_list.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_alias_list.lng deleted file mode 100644 index de07deada..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_alias_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_aliasdomain.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_aliasdomain.lng deleted file mode 100644 index 5815d1e60..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_aliasdomain.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_aliasdomain_list.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_aliasdomain_list.lng deleted file mode 100644 index d96a63e2a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_aliasdomain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_blacklist.lng deleted file mode 100644 index 40723a2b0..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_blacklist_list.lng deleted file mode 100644 index f5ffaad58..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_blacklist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_content_filter.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_content_filter.lng deleted file mode 100644 index 973c52259..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_content_filter.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_content_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_content_filter_list.lng deleted file mode 100644 index 6f9e80ae8..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_content_filter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_domain.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_domain.lng deleted file mode 100644 index 3f944d820..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_domain.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_domain_catchall.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_domain_catchall.lng deleted file mode 100644 index 57d42f510..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_domain_catchall.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_domain_catchall_list.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_domain_catchall_list.lng deleted file mode 100644 index b9ea643b5..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_domain_catchall_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_domain_list.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_domain_list.lng deleted file mode 100644 index e954961ce..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_domain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_forward.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_forward.lng deleted file mode 100644 index 6ff58d703..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_forward.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_forward_list.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_forward_list.lng deleted file mode 100644 index 1f2f72488..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_forward_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_get.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_get.lng deleted file mode 100644 index c1bd07915..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_get.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_get_list.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_get_list.lng deleted file mode 100644 index deb73fa70..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_get_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_relay_recipient.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_relay_recipient.lng deleted file mode 100644 index b5c8724da..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_relay_recipient.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_relay_recipient_list.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_relay_recipient_list.lng deleted file mode 100644 index 36045f4e3..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_relay_recipient_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_spamfilter.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_spamfilter.lng deleted file mode 100644 index 03a632d56..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_spamfilter.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_spamfilter_list.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_spamfilter_list.lng deleted file mode 100644 index 05736a842..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_spamfilter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_transport.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_transport.lng deleted file mode 100644 index e259510b8..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_transport.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_transport_list.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_transport_list.lng deleted file mode 100644 index c4c17c65a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_transport_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_user.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_user.lng deleted file mode 100644 index e76911049..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_user.lng +++ /dev/null @@ -1,39 +0,0 @@ - 1'; -$wb['autoresponder_start_date_txt'] = 'Start on'; -$wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; -$wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; -$wb['move_junk_txt'] = 'Move Spam Emails to Junk directory'; -$wb['name_txt'] = 'Realname'; -$wb['name_optional_txt'] = '(Optional)'; -?> diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_user_filter.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_user_filter.lng deleted file mode 100644 index 1d3966dcb..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_user_filter.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_user_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_user_filter_list.lng deleted file mode 100644 index f2ae6e92c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_user_filter_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_user_list.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_user_list.lng deleted file mode 100644 index aa3a3c20c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_user_stats_list.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_user_stats_list.lng deleted file mode 100644 index 8d9361ee5..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_user_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_whitelist.lng deleted file mode 100644 index b5caaf450..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_mail_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/sk_mail_whitelist_list.lng deleted file mode 100644 index 00c2e4d9c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_mail_whitelist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_blacklist.lng deleted file mode 100644 index 844c9f323..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_blacklist_list.lng deleted file mode 100644 index 707477f3a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_blacklist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_config.lng b/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_config.lng deleted file mode 100644 index c8de92cb0..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_config.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_config_list.lng b/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_config_list.lng deleted file mode 100644 index f2199097e..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_config_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_policy.lng b/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_policy.lng deleted file mode 100644 index 4cd6a4303..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_policy.lng +++ /dev/null @@ -1,38 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_policy_list.lng b/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_policy_list.lng deleted file mode 100644 index cb21bd264..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_policy_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_users.lng b/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_users.lng deleted file mode 100644 index f193d421c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_users.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_users_list.lng b/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_users_list.lng deleted file mode 100644 index 2865596d3..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_users_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_whitelist.lng deleted file mode 100644 index 351ae0e93..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_whitelist_list.lng deleted file mode 100644 index 3e6e0e830..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/sk_spamfilter_whitelist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr.lng b/interface/ispconfig/interface/mail/lib/lang/tr.lng deleted file mode 100644 index 5878a9822..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr.lng +++ /dev/null @@ -1,47 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_alias.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_alias.lng deleted file mode 100644 index 1c9499750..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_alias.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_alias_list.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_alias_list.lng deleted file mode 100644 index 4f0690d9a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_alias_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_aliasdomain.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_aliasdomain.lng deleted file mode 100644 index 5815d1e60..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_aliasdomain.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_aliasdomain_list.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_aliasdomain_list.lng deleted file mode 100644 index d96a63e2a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_aliasdomain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_blacklist.lng deleted file mode 100644 index 77bb386ea..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_blacklist_list.lng deleted file mode 100644 index a32e81e64..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_blacklist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_content_filter.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_content_filter.lng deleted file mode 100644 index fc3901f0d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_content_filter.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_content_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_content_filter_list.lng deleted file mode 100644 index 8dae62917..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_content_filter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_domain.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_domain.lng deleted file mode 100644 index e8696816e..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_domain.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_domain_catchall.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_domain_catchall.lng deleted file mode 100644 index 3c6338b42..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_domain_catchall.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_domain_catchall_list.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_domain_catchall_list.lng deleted file mode 100644 index fdec4fd53..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_domain_catchall_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_domain_list.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_domain_list.lng deleted file mode 100644 index 596262449..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_domain_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_forward.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_forward.lng deleted file mode 100644 index 154641e99..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_forward.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_forward_list.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_forward_list.lng deleted file mode 100644 index 88df7144c..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_forward_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_get.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_get.lng deleted file mode 100644 index 641c6c267..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_get.lng +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_get_list.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_get_list.lng deleted file mode 100644 index 7cd54a18a..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_get_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_relay_recipient.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_relay_recipient.lng deleted file mode 100644 index b5c8724da..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_relay_recipient.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_relay_recipient_list.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_relay_recipient_list.lng deleted file mode 100644 index 36045f4e3..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_relay_recipient_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_spamfilter.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_spamfilter.lng deleted file mode 100644 index 08e90f9fc..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_spamfilter.lng +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_spamfilter_list.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_spamfilter_list.lng deleted file mode 100644 index 5caf34414..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_spamfilter_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_transport.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_transport.lng deleted file mode 100644 index b9c1d90d9..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_transport.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_transport_list.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_transport_list.lng deleted file mode 100644 index 44d1e00a3..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_transport_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_user.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_user.lng deleted file mode 100644 index ed15471cc..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_user.lng +++ /dev/null @@ -1,39 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_user_filter.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_user_filter.lng deleted file mode 100644 index abf45c443..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_user_filter.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_user_filter_list.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_user_filter_list.lng deleted file mode 100644 index cd8b0780d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_user_filter_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_user_list.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_user_list.lng deleted file mode 100644 index ee99944db..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_user_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_user_stats_list.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_user_stats_list.lng deleted file mode 100644 index ddb4fa9f7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_user_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_whitelist.lng deleted file mode 100644 index 05ada4ae0..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_mail_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/tr_mail_whitelist_list.lng deleted file mode 100644 index 5f795797d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_mail_whitelist_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_blacklist.lng b/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_blacklist.lng deleted file mode 100644 index fe6afeeb0..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_blacklist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_blacklist_list.lng b/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_blacklist_list.lng deleted file mode 100644 index f9dd9ed6d..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_blacklist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_config.lng b/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_config.lng deleted file mode 100644 index 1f4a076d7..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_config.lng +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_config_list.lng b/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_config_list.lng deleted file mode 100644 index dd5ce0f34..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_config_list.lng +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_policy.lng b/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_policy.lng deleted file mode 100644 index 11dedf40b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_policy.lng +++ /dev/null @@ -1,38 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_policy_list.lng b/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_policy_list.lng deleted file mode 100644 index 1344e8573..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_policy_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_users.lng b/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_users.lng deleted file mode 100644 index b1e3ff81b..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_users.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_users_list.lng b/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_users_list.lng deleted file mode 100644 index 095a4bd77..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_users_list.lng +++ /dev/null @@ -1,10 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_whitelist.lng b/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_whitelist.lng deleted file mode 100644 index fe6afeeb0..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_whitelist.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_whitelist_list.lng b/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_whitelist_list.lng deleted file mode 100644 index 7b9bf4351..000000000 --- a/interface/ispconfig/interface/mail/lib/lang/tr_spamfilter_whitelist_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/mail/lib/module.conf.php b/interface/ispconfig/interface/mail/lib/module.conf.php deleted file mode 100644 index 4ea0529d6..000000000 --- a/interface/ispconfig/interface/mail/lib/module.conf.php +++ /dev/null @@ -1,125 +0,0 @@ - 'Domain', - 'target' => 'content', - 'link' => 'mail/mail_domain_list.php'); - -$items[] = array( 'title' => 'Domain Alias', - 'target' => 'content', - 'link' => 'mail/mail_aliasdomain_list.php'); - -$items[] = array( 'title' => 'Email Mailbox', - 'target' => 'content', - 'link' => 'mail/mail_user_list.php'); - -$items[] = array( 'title' => 'Email Alias', - 'target' => 'content', - 'link' => 'mail/mail_alias_list.php'); - -$items[] = array( 'title' => 'Email Forward', - 'target' => 'content', - 'link' => 'mail/mail_forward_list.php'); - -$items[] = array( 'title' => 'Email Catchall', - 'target' => 'content', - 'link' => 'mail/mail_domain_catchall_list.php'); - -$items[] = array( 'title' => 'Email Routing', - 'target' => 'content', - 'link' => 'mail/mail_transport_list.php'); - -$module['nav'][] = array( 'title' => 'Email Accounts', - 'open' => 1, - 'items' => $items); - -//**** Spamfilter menu -$items = array(); - -$items[] = array( 'title' => 'Whitelist', - 'target' => 'content', - 'link' => 'mail/spamfilter_whitelist_list.php'); - -$items[] = array( 'title' => 'Blacklist', - 'target' => 'content', - 'link' => 'mail/spamfilter_blacklist_list.php'); - -if($_SESSION['s']['user']['typ'] == 'admin') { - - $items[] = array( 'title' => 'User / Domain', - 'target' => 'content', - 'link' => 'mail/spamfilter_users_list.php'); - - $items[] = array( 'title' => 'Policy', - 'target' => 'content', - 'link' => 'mail/spamfilter_policy_list.php'); - -// $items[] = array( 'title' => 'Server Settings', -// 'target' => 'content', -// 'link' => 'mail/spamfilter_config_list.php'); -} - -$module['nav'][] = array( 'title' => 'Spamfilter', - 'open' => 1, - 'items' => $items); - -//**** Fetchmail menu -$items = array(); - -$items[] = array( 'title' => 'Fetchmail', - 'target' => 'content', - 'link' => 'mail/mail_get_list.php'); - - -$module['nav'][] = array( 'title' => 'Fetchmail', - 'open' => 1, - 'items' => $items); - -//**** Statistics menu -$items = array(); - -$items[] = array( 'title' => 'Mailbox traffic', - 'target' => 'content', - 'link' => 'mail/mail_user_stats.php'); - - -$module['nav'][] = array( 'title' => 'Statistics', - 'open' => 1, - 'items' => $items); - - -//**** Global filters menu -$items = array(); -if($_SESSION['s']['user']['typ'] == 'admin') { - - $items[] = array( 'title' => 'Postfix Whitelist', - 'target' => 'content', - 'link' => 'mail/mail_whitelist_list.php'); - - $items[] = array( 'title' => 'Postfix Blacklist', - 'target' => 'content', - 'link' => 'mail/mail_blacklist_list.php'); - - $items[] = array( 'title' => 'Content Filter', - 'target' => 'content', - 'link' => 'mail/mail_content_filter_list.php'); - - $items[] = array( 'title' => 'Relay Recipients', - 'target' => 'content', - 'link' => 'mail/mail_relay_recipient_list.php'); - - $module['nav'][] = array( 'title' => 'Global Filters', - 'open' => 1, - 'items' => $items); -} - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/list/mail_alias.list.php b/interface/ispconfig/interface/mail/list/mail_alias.list.php deleted file mode 100644 index 57b7ef663..000000000 --- a/interface/ispconfig/interface/mail/list/mail_alias.list.php +++ /dev/null @@ -1,79 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
    Yes
    ", 'n' => "
    No
    ")); - - -$liste["item"][] = array( 'field' => "source", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "destination", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/list/mail_aliasdomain.list.php b/interface/ispconfig/interface/mail/list/mail_aliasdomain.list.php deleted file mode 100644 index 7cb7a9ee2..000000000 --- a/interface/ispconfig/interface/mail/list/mail_aliasdomain.list.php +++ /dev/null @@ -1,79 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
    Yes
    ", 'n' => "
    No
    ")); - - -$liste["item"][] = array( 'field' => "source", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "destination", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/list/mail_blacklist.list.php b/interface/ispconfig/interface/mail/list/mail_blacklist.list.php deleted file mode 100644 index 8f730125f..000000000 --- a/interface/ispconfig/interface/mail/list/mail_blacklist.list.php +++ /dev/null @@ -1,95 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
    Yes
    ", 'n' => "
    No
    ")); - - - -$liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "source", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -$liste["item"][] = array( 'field' => "type", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('recipient' => 'Recipient', 'sender' => 'Sender', 'client' => 'Client')); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/list/mail_content_filter.list.php b/interface/ispconfig/interface/mail/list/mail_content_filter.list.php deleted file mode 100644 index 2d16f7dc0..000000000 --- a/interface/ispconfig/interface/mail/list/mail_content_filter.list.php +++ /dev/null @@ -1,96 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
    Yes
    ", 'n' => "
    No
    ")); - - - -$liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "pattern", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "action", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => array('DISCARD' => 'DISCARD','DUNNO'=>'DUNNO','FILTER'=>'FILTER','HOLD'=>'HOLD','IGNORE'=>'IGNORE','PREPEND'=>'PREPEND','REDIRECT'=>'REDIRECT','REPLACE'=>'REPLACE','REJECT'=>'REJECT','WARN'=>'WARN')); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/list/mail_domain.list.php b/interface/ispconfig/interface/mail/list/mail_domain.list.php deleted file mode 100644 index 34b1fb1fd..000000000 --- a/interface/ispconfig/interface/mail/list/mail_domain.list.php +++ /dev/null @@ -1,86 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
    Yes
    ", 'n' => "
    No
    ")); - - - -$liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "domain", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/list/mail_domain_catchall.list.php b/interface/ispconfig/interface/mail/list/mail_domain_catchall.list.php deleted file mode 100644 index 118856b09..000000000 --- a/interface/ispconfig/interface/mail/list/mail_domain_catchall.list.php +++ /dev/null @@ -1,79 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
    Yes
    ", 'n' => "
    No
    ")); - - -$liste["item"][] = array( 'field' => "source", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "destination", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/list/mail_forward.list.php b/interface/ispconfig/interface/mail/list/mail_forward.list.php deleted file mode 100644 index 7af79a5fb..000000000 --- a/interface/ispconfig/interface/mail/list/mail_forward.list.php +++ /dev/null @@ -1,79 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
    Yes
    ", 'n' => "
    No
    ")); - - -$liste["item"][] = array( 'field' => "source", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "destination", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/list/mail_get.list.php b/interface/ispconfig/interface/mail/list/mail_get.list.php deleted file mode 100644 index 0e0beb0c0..000000000 --- a/interface/ispconfig/interface/mail/list/mail_get.list.php +++ /dev/null @@ -1,102 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
    Yes
    ", 'n' => "
    No
    ")); - - -$liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "source_server", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "source_username", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "destination", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/list/mail_relay_recipient.list.php b/interface/ispconfig/interface/mail/list/mail_relay_recipient.list.php deleted file mode 100644 index 0302fff7d..000000000 --- a/interface/ispconfig/interface/mail/list/mail_relay_recipient.list.php +++ /dev/null @@ -1,85 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
    Yes
    ", 'n' => "
    No
    ")); - - -$liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => "", - 'value' => ""); - - -$liste["item"][] = array( 'field' => "source", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/list/mail_spamfilter.list.php b/interface/ispconfig/interface/mail/list/mail_spamfilter.list.php deleted file mode 100644 index 91963c0ec..000000000 --- a/interface/ispconfig/interface/mail/list/mail_spamfilter.list.php +++ /dev/null @@ -1,85 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('1' => "
    Yes
    ", '0' => "
    No
    ")); - - -$liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "server_name", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/list/mail_transport.list.php b/interface/ispconfig/interface/mail/list/mail_transport.list.php deleted file mode 100644 index 5d3afdd79..000000000 --- a/interface/ispconfig/interface/mail/list/mail_transport.list.php +++ /dev/null @@ -1,104 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
    Yes
    ", 'n' => "
    No
    ")); - - -$liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "domain", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -$liste["item"][] = array( 'field' => "transport", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -$liste["item"][] = array( 'field' => "sort_order", - 'datatype' => "INTEGER", - 'formtype' => "TEXT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => ""); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/list/mail_user.list.php b/interface/ispconfig/interface/mail/list/mail_user.list.php deleted file mode 100644 index a3fc54b99..000000000 --- a/interface/ispconfig/interface/mail/list/mail_user.list.php +++ /dev/null @@ -1,78 +0,0 @@ - "email", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "name", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "autoresponder", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/list/mail_user_filter.list.php b/interface/ispconfig/interface/mail/list/mail_user_filter.list.php deleted file mode 100644 index d4c29a57c..000000000 --- a/interface/ispconfig/interface/mail/list/mail_user_filter.list.php +++ /dev/null @@ -1,60 +0,0 @@ - "rulename", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/list/mail_user_stats.list.php b/interface/ispconfig/interface/mail/list/mail_user_stats.list.php deleted file mode 100644 index f7bc46486..000000000 --- a/interface/ispconfig/interface/mail/list/mail_user_stats.list.php +++ /dev/null @@ -1,60 +0,0 @@ - "email", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/list/mail_whitelist.list.php b/interface/ispconfig/interface/mail/list/mail_whitelist.list.php deleted file mode 100644 index b34d97fdc..000000000 --- a/interface/ispconfig/interface/mail/list/mail_whitelist.list.php +++ /dev/null @@ -1,94 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
    Yes
    ", 'n' => "
    No
    ")); - - -$liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => "", - 'value' => ""); - - -$liste["item"][] = array( 'field' => "source", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "type", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('recipient' => 'Recipient', 'sender' => 'Sender', 'client' => 'Client')); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/list/spamfilter_blacklist.list.php b/interface/ispconfig/interface/mail/list/spamfilter_blacklist.list.php deleted file mode 100644 index d0827844f..000000000 --- a/interface/ispconfig/interface/mail/list/spamfilter_blacklist.list.php +++ /dev/null @@ -1,108 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
    Yes
    ", 'n' => "
    No
    ")); - - -$liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => "", - 'value' => ""); - - -$liste["item"][] = array( 'field' => "priority", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10)); - -$liste["item"][] = array( 'field' => "rid", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT id,email FROM spamfilter_users WHERE {AUTHSQL} ORDER BY email', - 'keyfield'=> 'id', - 'valuefield'=> 'email' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "email", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/list/spamfilter_config.list.php b/interface/ispconfig/interface/mail/list/spamfilter_config.list.php deleted file mode 100644 index 8d672ff1f..000000000 --- a/interface/ispconfig/interface/mail/list/spamfilter_config.list.php +++ /dev/null @@ -1,60 +0,0 @@ - "server_name", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/list/spamfilter_policy.list.php b/interface/ispconfig/interface/mail/list/spamfilter_policy.list.php deleted file mode 100644 index 2b60ff053..000000000 --- a/interface/ispconfig/interface/mail/list/spamfilter_policy.list.php +++ /dev/null @@ -1,116 +0,0 @@ - "policy_name", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -$liste["item"][] = array( 'field' => "virus_lover", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('Y' => "
    Yes
    ", 'N' => "
    No
    ")); - - -$liste["item"][] = array( 'field' => "spam_lover", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('Y' => "
    Yes
    ", 'N' => "
    No
    ")); - - -$liste["item"][] = array( 'field' => "banned_files_lover", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('Y' => "
    Yes
    ", 'N' => "
    No
    ")); - - -$liste["item"][] = array( 'field' => "bad_header_lover", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('Y' => "
    Yes
    ", 'N' => "
    No
    ")); - - - - - - - - - - - - - - - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/list/spamfilter_users.list.php b/interface/ispconfig/interface/mail/list/spamfilter_users.list.php deleted file mode 100644 index e088a3bc6..000000000 --- a/interface/ispconfig/interface/mail/list/spamfilter_users.list.php +++ /dev/null @@ -1,108 +0,0 @@ - "local", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('Y' => "
    Yes
    ", 'N' => "
    No
    ")); - - -$liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => "", - 'value' => ""); - - -$liste["item"][] = array( 'field' => "priority", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10)); - -$liste["item"][] = array( 'field' => "policy_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT id,policy_name FROM spamfilter_policy WHERE {AUTHSQL} ORDER BY policy_name', - 'keyfield'=> 'id', - 'valuefield'=> 'policy_name' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "fullname", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/list/spamfilter_whitelist.list.php b/interface/ispconfig/interface/mail/list/spamfilter_whitelist.list.php deleted file mode 100644 index f765fd89f..000000000 --- a/interface/ispconfig/interface/mail/list/spamfilter_whitelist.list.php +++ /dev/null @@ -1,108 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
    Yes
    ", 'n' => "
    No
    ")); - - -$liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => "", - 'value' => ""); - - -$liste["item"][] = array( 'field' => "priority", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10)); - -$liste["item"][] = array( 'field' => "rid", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT id,email FROM spamfilter_users WHERE {AUTHSQL} ORDER BY email', - 'keyfield'=> 'id', - 'valuefield'=> 'email' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "email", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_alias_del.php b/interface/ispconfig/interface/mail/mail_alias_del.php deleted file mode 100644 index 4d4c5b2bf..000000000 --- a/interface/ispconfig/interface/mail/mail_alias_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_alias_edit.php b/interface/ispconfig/interface/mail/mail_alias_edit.php deleted file mode 100644 index d031d29f2..000000000 --- a/interface/ispconfig/interface/mail/mail_alias_edit.php +++ /dev/null @@ -1,145 +0,0 @@ -auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_mailalias',"type = 'alias'")) { - $app->error($app->tform->wordbook["limit_mailalias_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_mailalias',"type = 'alias'")) { - $app->error('Reseller: '.$app->tform->wordbook["limit_mailalias_txt"]); - } - } - - parent::onShowNew(); - } - - function onShowEnd() { - global $app, $conf; - - $email = $this->dataRecord["source"]; - $email_parts = explode("@",$email); - $app->tpl->setVar("email_local_part",$email_parts[0]); - - // Getting Domains of the user - $sql = "SELECT domain FROM mail_domain WHERE ".$app->tform->getAuthSQL('r').' ORDER BY domain'; - $domains = $app->db->queryAllRecords($sql); - $domain_select = ''; - if(is_array($domains)) { - foreach( $domains as $domain) { - $selected = ($domain["domain"] == @$email_parts[1])?'SELECTED':''; - $domain_select .= "\r\n"; - } - } - $app->tpl->setVar("email_domain",$domain_select); - - parent::onShowEnd(); - } - - function onSubmit() { - global $app, $conf; - - // Check if Domain belongs to user - $domain = $app->db->queryOneRecord("SELECT server_id, domain FROM mail_domain WHERE domain = '".$app->db->quote($_POST["email_domain"])."' AND ".$app->tform->getAuthSQL('r')); - if($domain["domain"] != $_POST["email_domain"]) $app->tform->errorMessage .= $app->tform->wordbook["no_domain_perm"]; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_mailalias FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($this->id == 0 && $client["limit_mailalias"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(forwarding_id) as number FROM mail_forwarding WHERE sys_groupid = $client_group_id AND type = 'alias'"); - if($tmp["number"] >= $client["limit_mailalias"]) { - $app->tform->errorMessage .= $app->tform->wordbook["limit_mailalias_txt"]."
    "; - } - unset($tmp); - } - } // end if user is not admin - - - // compose the email field - $this->dataRecord["source"] = $_POST["email_local_part"]."@".$_POST["email_domain"]; - // Set the server id of the mailbox = server ID of mail domain. - $this->dataRecord["server_id"] = $domain["server_id"]; - - unset($this->dataRecord["email_local_part"]); - unset($this->dataRecord["email_domain"]); - - //* Check if there is no active mailbox with this address - $tmp = $app->db->queryOneRecord("SELECT count(mailuser_id) as number FROM mail_user WHERE postfix = 'y' AND email = '".$app->db->quote($this->dataRecord["source"])."'"); - if($tmp['number'] > 0) $app->tform->errorMessage .= $app->tform->lng("duplicate_mailbox_txt")."
    "; - unset($tmp); - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app; - - $domain = $app->db->queryOneRecord("SELECT sys_groupid FROM mail_domain WHERE domain = '".$app->db->quote($_POST["email_domain"])."' AND ".$app->tform->getAuthSQL('r')); - $app->db->query("update mail_forwarding SET sys_groupid = ".$domain['sys_groupid']." WHERE forwarding_id = ".$this->id); - - } - - -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_alias_list.php b/interface/ispconfig/interface/mail/mail_alias_list.php deleted file mode 100644 index f4a3d7cef..000000000 --- a/interface/ispconfig/interface/mail/mail_alias_list.php +++ /dev/null @@ -1,26 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses('listform_actions'); - -// Limit the results to alias domains -$app->listform_actions->SQLExtWhere = "type = 'alias'"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_aliasdomain_del.php b/interface/ispconfig/interface/mail/mail_aliasdomain_del.php deleted file mode 100644 index 52a54a1cc..000000000 --- a/interface/ispconfig/interface/mail/mail_aliasdomain_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_aliasdomain_edit.php b/interface/ispconfig/interface/mail/mail_aliasdomain_edit.php deleted file mode 100644 index 91fbf930a..000000000 --- a/interface/ispconfig/interface/mail/mail_aliasdomain_edit.php +++ /dev/null @@ -1,141 +0,0 @@ -auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_mailaliasdomain',"type = 'aliasdomain'")) { - $app->error($app->tform->wordbook["limit_mailaliasdomain_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_mailaliasdomain',"type = 'aliasdomain'")) { - $app->error('Reseller: '.$app->tform->wordbook["limit_mailaliasdomain_txt"]); - } - } - - parent::onShowNew(); - } - - function onShowEnd() { - global $app, $conf; - - $source_domain = substr($this->dataRecord["source"],1); - $destination_domain = substr($this->dataRecord["destination"],1); - - // Getting Domains of the user - $sql = "SELECT domain FROM mail_domain WHERE ".$app->tform->getAuthSQL('r').' ORDER BY domain'; - $domains = $app->db->queryAllRecords($sql); - - $source_select = ''; - $destination_select = ''; - if(is_array($domains)) { - foreach( $domains as $domain) { - $selected = ($domain["domain"] == @$source_domain)?'SELECTED':''; - $source_select .= "\r\n"; - $selected = ($domain["domain"] == @$destination_domain)?'SELECTED':''; - $destination_select .= "\r\n"; - } - } - $app->tpl->setVar("source_domain",$source_select); - $app->tpl->setVar("destination_domain",$destination_select); - - parent::onShowEnd(); - } - - function onSubmit() { - global $app, $conf; - - // Check if source Domain belongs to user - $domain = $app->db->queryOneRecord("SELECT server_id, domain FROM mail_domain WHERE domain = '".$app->db->quote($_POST["source"])."' AND ".$app->tform->getAuthSQL('r')); - if($domain["domain"] != $_POST["source"]) $app->tform->errorMessage .= $app->tform->wordbook["no_domain_perm"]; - - // Check if the destination domain belongs to the user - $domain = $app->db->queryOneRecord("SELECT server_id, domain FROM mail_domain WHERE domain = '".$app->db->quote($_POST["destination"])."' AND ".$app->tform->getAuthSQL('r')); - if($domain["domain"] != $_POST["destination"]) $app->tform->errorMessage .= $app->tform->wordbook["no_domain_perm"]; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - if(!$app->tform->checkClientLimit('limit_mailaliasdomain',"type = 'aliasdomain'")) { - $app->error($app->tform->wordbook["limit_mailaliasdomain_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_mailaliasdomain',"type = 'aliasdomain'")) { - $app->error('Reseller: '.$app->tform->wordbook["limit_mailaliasdomain_txt"]); - } - } // end if user is not admin - - if($this->dataRecord["source"] == $this->dataRecord["destination"]) $app->tform->errorMessage .= $app->tform->wordbook["source_destination_identical_txt"]; - - // compose the source and destination field - $this->dataRecord["source"] = "@".$app->db->quote($this->dataRecord["source"]); - $this->dataRecord["destination"] = "@".$app->db->quote($this->dataRecord["destination"]); - // Set the server id of the mailbox = server ID of mail domain. - $this->dataRecord["server_id"] = $domain["server_id"]; - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app; - - $domain = $app->db->queryOneRecord("SELECT sys_groupid FROM mail_domain WHERE domain = '".$app->db->quote($_POST["destination"])."' AND ".$app->tform->getAuthSQL('r')); - $app->db->query("update mail_forwarding SET sys_groupid = ".$domain['sys_groupid']." WHERE forwarding_id = ".$this->id); - - } - - -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_aliasdomain_list.php b/interface/ispconfig/interface/mail/mail_aliasdomain_list.php deleted file mode 100644 index 2725d4553..000000000 --- a/interface/ispconfig/interface/mail/mail_aliasdomain_list.php +++ /dev/null @@ -1,26 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses('listform_actions'); - -// Limit the results to alias domains -$app->listform_actions->SQLExtWhere = "type = 'aliasdomain'"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_blacklist_del.php b/interface/ispconfig/interface/mail/mail_blacklist_del.php deleted file mode 100644 index b11d70d05..000000000 --- a/interface/ispconfig/interface/mail/mail_blacklist_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_blacklist_edit.php b/interface/ispconfig/interface/mail/mail_blacklist_edit.php deleted file mode 100644 index b0ac8c8be..000000000 --- a/interface/ispconfig/interface/mail/mail_blacklist_edit.php +++ /dev/null @@ -1,114 +0,0 @@ -auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_mailfilter')) { - $app->error($app->tform->wordbook["limit_mailfilter_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_mailfilter')) { - $app->error('Reseller: '.$app->tform->wordbook["limit_mailfilter_txt"]); - } - } - - parent::onShowNew(); - } - - - function onBeforeUpdate() { - global $app, $conf; - - //* Check if the server has been changed - // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway - if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - $rec = $app->db->queryOneRecord("SELECT server_id from mail_access WHERE access_id = ".$this->id); - if($rec['server_id'] != $this->dataRecord["server_id"]) { - //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The Server can not be changed.'); - $this->dataRecord["server_id"] = $rec['server_id']; - } - unset($rec); - } - } - - function onSubmit() { - global $app, $conf; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_mailfilter FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($this->id == 0 && $client["limit_mailfilter"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(access_id) as number FROM mail_access WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_mailfilter"]) { - $app->tform->errorMessage .= $app->tform->wordbook["limit_mailfilter_txt"]."
    "; - } - unset($tmp); - } - } // end if user is not admin - - parent::onSubmit(); - } - -} - -$app->tform_actions = new page_action; -$app->tform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_blacklist_list.php b/interface/ispconfig/interface/mail/mail_blacklist_list.php deleted file mode 100644 index 7e144758b..000000000 --- a/interface/ispconfig/interface/mail/mail_blacklist_list.php +++ /dev/null @@ -1,24 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses('listform_actions'); -$app->listform_actions->SQLExtWhere = "access = 'REJECT'"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_content_filter_del.php b/interface/ispconfig/interface/mail/mail_content_filter_del.php deleted file mode 100644 index 872658997..000000000 --- a/interface/ispconfig/interface/mail/mail_content_filter_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_content_filter_edit.php b/interface/ispconfig/interface/mail/mail_content_filter_edit.php deleted file mode 100644 index d2cd61850..000000000 --- a/interface/ispconfig/interface/mail/mail_content_filter_edit.php +++ /dev/null @@ -1,75 +0,0 @@ -auth->check_module_permissions('mail'); - -if(!$_SESSION["s"]["user"]["typ"] == 'admin') die('These Filters are only for Admins.'); - - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - function onBeforeUpdate() { - global $app, $conf; - - //* Check if the server has been changed - // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway - if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - $rec = $app->db->queryOneRecord("SELECT server_id from mail_content_filter WHERE content_filter_id = ".$this->id); - if($rec['server_id'] != $this->dataRecord["server_id"]) { - //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The Server can not be changed.'); - $this->dataRecord["server_id"] = $rec['server_id']; - } - unset($rec); - } - } -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_content_filter_list.php b/interface/ispconfig/interface/mail/mail_content_filter_list.php deleted file mode 100644 index aa47d9d40..000000000 --- a/interface/ispconfig/interface/mail/mail_content_filter_list.php +++ /dev/null @@ -1,26 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses('listform_actions'); - -// Limit the results to alias domains -// $app->listform_actions->SQLExtWhere = "type = 'local'"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_domain_catchall_del.php b/interface/ispconfig/interface/mail/mail_domain_catchall_del.php deleted file mode 100644 index 2560facdd..000000000 --- a/interface/ispconfig/interface/mail/mail_domain_catchall_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_domain_catchall_edit.php b/interface/ispconfig/interface/mail/mail_domain_catchall_edit.php deleted file mode 100644 index 219926e3c..000000000 --- a/interface/ispconfig/interface/mail/mail_domain_catchall_edit.php +++ /dev/null @@ -1,138 +0,0 @@ -auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_mailcatchall',"type = 'catchall'")) { - $app->error($app->tform->wordbook["limit_mailcatchall_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_mailcatchall',"type = 'catchall'")) { - $app->error('Reseller: '.$app->tform->wordbook["limit_mailcatchall_txt"]); - } - } - - parent::onShowNew(); - } - - function onShowEnd() { - global $app, $conf; - - $email = $this->dataRecord["source"]; - $email_parts = explode("@",$email); - $app->tpl->setVar("email_local_part",$email_parts[0]); - - // Getting Domains of the user - $sql = "SELECT domain FROM mail_domain WHERE ".$app->tform->getAuthSQL('r'); - $domains = $app->db->queryAllRecords($sql); - $domain_select = ''; - if(is_array($domains)) { - foreach( $domains as $domain) { - $selected = (isset($email_parts[1]) && $domain["domain"] == $email_parts[1])?'SELECTED':''; - $domain_select .= "\r\n"; - } - } - $app->tpl->setVar("email_domain",$domain_select); - - parent::onShowEnd(); - } - - function onSubmit() { - global $app, $conf; - - // Check if Domain belongs to user - $domain = $app->db->queryOneRecord("SELECT server_id, domain FROM mail_domain WHERE domain = '".$app->db->quote($_POST["email_domain"])."' AND ".$app->tform->getAuthSQL('r')); - if($domain["domain"] != $_POST["email_domain"]) $app->tform->errorMessage .= $app->tform->wordbook["no_domain_perm"]; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_mailcatchall FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another catchall - if($this->id == 0 && $client["limit_mailcatchall"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(forwarding_id) as number FROM mail_forwarding WHERE sys_groupid = $client_group_id AND type = 'catchall'"); - if($tmp["number"] >= $client["limit_mailcatchall"]) { - $app->tform->errorMessage .= $app->tform->wordbook["limit_mailcatchall_txt"]."
    "; - } - unset($tmp); - } - } // end if user is not admin - - // compose the email field - $this->dataRecord["source"] = "@".$_POST["email_domain"]; - // Set the server id of the mailbox = server ID of mail domain. - $this->dataRecord["server_id"] = $domain["server_id"]; - - //unset($this->dataRecord["email_local_part"]); - unset($this->dataRecord["email_domain"]); - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app; - - $domain = $app->db->queryOneRecord("SELECT sys_groupid FROM mail_domain WHERE domain = '".$app->db->quote($_POST["email_domain"])."' AND ".$app->tform->getAuthSQL('r')); - $app->db->query("update mail_forwarding SET sys_groupid = ".$domain['sys_groupid']." WHERE forwarding_id = ".$this->id); - - } - -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_domain_catchall_list.php b/interface/ispconfig/interface/mail/mail_domain_catchall_list.php deleted file mode 100644 index f698668b7..000000000 --- a/interface/ispconfig/interface/mail/mail_domain_catchall_list.php +++ /dev/null @@ -1,26 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses('listform_actions'); - -// Limit the results to alias domains -$app->listform_actions->SQLExtWhere = "type = 'catchall'"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_domain_del.php b/interface/ispconfig/interface/mail/mail_domain_del.php deleted file mode 100644 index 9713642dc..000000000 --- a/interface/ispconfig/interface/mail/mail_domain_del.php +++ /dev/null @@ -1,92 +0,0 @@ -auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onBeforeDelete() { - global $app; $conf; - - $domain = $this->dataRecord['domain']; - - // Before we delete the email domain, - // we will delete all depending records. - - // Delete all forwardings where the osurce or destination belongs to this domain - $records = $app->db->queryAllRecords("SELECT forwarding_id as id FROM mail_forwarding WHERE source like '%@".$app->db->quote($domain)."' OR destination like '%@".$app->db->quote($domain)."'"); - foreach($records as $rec) { - $app->db->datalogDelete('mail_forwarding','forwarding_id',$rec['id']); - } - - // Delete all fetchmail accounts where destination belongs to this domain - $records = $app->db->queryAllRecords("SELECT mailget_id as id FROM mail_get WHERE destination like '%@".$app->db->quote($domain)."'"); - foreach($records as $rec) { - $app->db->datalogDelete('mail_get','mailget_id',$rec['id']); - } - - // Delete all mailboxes where destination belongs to this domain - $records = $app->db->queryAllRecords("SELECT mailuser_id as id FROM mail_user WHERE email like '%@".$app->db->quote($domain)."'"); - foreach($records as $rec) { - $app->db->datalogDelete('mail_user','mailuser_id',$rec['id']); - } - - // Delete all spamfilters that belong to this domain - $records = $app->db->queryAllRecords("SELECT id FROM spamfilter_users WHERE email = '@".$app->db->quote($domain)."'"); - foreach($records as $rec) { - $app->db->datalogDelete('spamfilter_users','id',$rec['id']); - } - - } -} - -$page = new page_action; -$page->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_domain_edit.php b/interface/ispconfig/interface/mail/mail_domain_edit.php deleted file mode 100644 index 7acf67367..000000000 --- a/interface/ispconfig/interface/mail/mail_domain_edit.php +++ /dev/null @@ -1,327 +0,0 @@ -auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_maildomain')) { - $app->error($app->tform->wordbook["limit_maildomain_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_maildomain')) { - $app->error('Reseller: '.$app->tform->wordbook["limit_maildomain_txt"]); - } - } - - parent::onShowNew(); - } - - function onShowEnd() { - global $app, $conf; - - if($_SESSION["s"]["user"]["typ"] == 'admin') { - // Getting Clients of the user - if($_SESSION["s"]["user"]["typ"] == 'admin') { - $sql = "SELECT groupid, name FROM sys_group WHERE client_id > 0 ORDER BY name"; - } else { - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $sql = "SELECT client.client_id, limit_web_domain, default_webserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"; - } - $clients = $app->db->queryAllRecords($sql); - $client_select = ''; - if($_SESSION["s"]["user"]["typ"] == 'admin') $client_select .= ""; - $tmp_data_record = $app->tform->getDataRecord($this->id); - if(is_array($clients)) { - foreach( $clients as $client) { - $selected = ($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':''; - $client_select .= "\r\n"; - } - } - $app->tpl->setVar("client_group_id",$client_select); - - } elseif ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT client.client_id, contact_name FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id order by contact_name"); - - // Set the webserver to the default server of the client - $tmp = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = $client[default_webserver]"); - $app->tpl->setVar("server_id",""); - unset($tmp); - - // Fill the client select field - $sql = "SELECT groupid, name FROM sys_group, client WHERE sys_group.client_id = client.client_id AND client.parent_client_id = ".$client['client_id']; - $clients = $app->db->queryAllRecords($sql); - $tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$client['client_id']); - $client_select = ''; - $tmp_data_record = $app->tform->getDataRecord($this->id); - if(is_array($clients)) { - foreach( $clients as $client) { - $selected = @($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':''; - $client_select .= "\r\n"; - } - } - $app->tpl->setVar("client_group_id",$client_select); - - } - - - - - // Get the spamfilter policys for the user - $tmp_user = $app->db->queryOneRecord("SELECT policy_id FROM spamfilter_users WHERE email = '@".$this->dataRecord["domain"]."'"); - $sql = "SELECT id, policy_name FROM spamfilter_policy WHERE ".$app->tform->getAuthSQL('r'); - $policys = $app->db->queryAllRecords($sql); - $policy_select = ""; - if(is_array($policys)) { - foreach( $policys as $p) { - $selected = ($p["id"] == $tmp_user["policy_id"])?'SELECTED':''; - $policy_select .= "\r\n"; - } - } - $app->tpl->setVar("policy",$policy_select); - unset($policys); - unset($policy_select); - unset($tmp_user); - - if($this->id > 0) { - //* we are editing a existing record - $app->tpl->setVar("edit_disabled", 1); - $app->tpl->setVar("server_id_value", $this->dataRecord["server_id"]); - } else { - $app->tpl->setVar("edit_disabled", 0); - } - - parent::onShowEnd(); - } - - function onSubmit() { - global $app, $conf; - if($_SESSION["s"]["user"]["typ"] != 'admin') { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_maildomain, default_mailserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // When the record is updated - if($this->id > 0) { - // restore the server ID if the user is not admin and record is edited - $tmp = $app->db->queryOneRecord("SELECT server_id FROM mail_domain WHERE domain_id = ".intval($this->id)); - $this->dataRecord["server_id"] = $tmp["server_id"]; - unset($tmp); - // When the record is inserted - } else { - // set the server ID to the default mailserver of the client - $this->dataRecord["server_id"] = $client["default_mailserver"]; - - // Check if the user may add another mail_domain - if($client["limit_maildomain"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(domain_id) as number FROM mail_domain WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_maildomain"]) { - $app->error($app->tform->wordbook["limit_maildomain_txt"]); - } - } - } - - // Clients may not set the client_group_id, so we unset them if user is not a admin - if(!$app->auth->has_clients($_SESSION['s']['user']['userid'])) unset($this->dataRecord["client_group_id"]); - } - - //* make sure that the email domain is lowercase - if(isset($this->dataRecord["domain"])) $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]); - - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app, $conf; - - // make sure that the record belongs to the client group and not the admin group when a dmin inserts it - // also make sure that the user can not delete domain created by a admin - if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE mail_domain SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE domain_id = ".$this->id); - } - if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE mail_domain SET sys_groupid = $client_group_id, sys_perm_group = 'riud' WHERE domain_id = ".$this->id); - } - - // Spamfilter policy - $policy_id = intval($this->dataRecord["policy"]); - if($policy_id > 0) { - $tmp_user = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = '@".mysql_real_escape_string($this->dataRecord["domain"])."'"); - if($tmp_user["id"] > 0) { - // There is already a record that we will update - $app->db->datalogUpdate('spamfilter_users', "policy_id = $ploicy_id", 'id', $tmp_user["id"]); - } else { - $tmp_domain = $app->db->queryOneRecord("SELECT sys_groupid FROM mail_domain WHERE domain_id = ".$this->id); - // We create a new record - $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `priority`, `policy_id`, `email`, `fullname`, `local`) - VALUES (".$_SESSION["s"]["user"]["userid"].", ".$tmp_domain["sys_groupid"].", 'riud', 'riud', '', ".$this->dataRecord["server_id"].", 5, ".$policy_id.", '@".mysql_real_escape_string($this->dataRecord["domain"])."', '@".mysql_real_escape_string($this->dataRecord["domain"])."', 'Y')"; - $app->db->datalogInsert('spamfilter_users', $insert_data, 'id'); - unset($tmp_domain); - } - } // endif spamfilter policy - } - - function onBeforeUpdate() { - global $app, $conf; - - //* Check if the server has been changed - // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway - if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - $rec = $app->db->queryOneRecord("SELECT server_id, domain from mail_domain WHERE domain_id = ".$this->id); - if($rec['server_id'] != $this->dataRecord["server_id"]) { - //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The Server can not be changed.'); - $this->dataRecord["server_id"] = $rec['server_id']; - } - unset($rec); - //* If the user is neither admin nor reseller - } else { - //* We do not allow users to change a domain which has been created by the admin - $rec = $app->db->queryOneRecord("SELECT domain from mail_domain WHERE domain_id = ".$this->id); - if($rec['domain'] != $this->dataRecord["domain"] && $app->tform->checkPerm($this->id,'u')) { - //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'); - $this->dataRecord["domain"] = $rec['domain']; - } - unset($rec); - } - } - - - - function onAfterUpdate() { - global $app, $conf; - - // make sure that the record belongs to the clinet group and not the admin group when admin inserts it - // also make sure that the user can not delete domain created by a admin - if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE mail_domain SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE domain_id = ".$this->id); - } - if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE mail_domain SET sys_groupid = $client_group_id, sys_perm_group = 'riud' WHERE domain_id = ".$this->id); - } - - // Spamfilter policy - $policy_id = intval($this->dataRecord["policy"]); - $tmp_user = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = '@".mysql_real_escape_string($this->dataRecord["domain"])."'"); - if($policy_id > 0) { - if($tmp_user["id"] > 0) { - // There is already a record that we will update - $app->db->datalogUpdate('spamfilter_users', "policy_id = $policy_id", 'id', $tmp_user["id"]); - } else { - $tmp_domain = $app->db->queryOneRecord("SELECT sys_groupid FROM mail_domain WHERE domain_id = ".$this->id); - // We create a new record - $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `priority`, `policy_id`, `email`, `fullname`, `local`) - VALUES (".$_SESSION["s"]["user"]["userid"].", ".$tmp_domain["sys_groupid"].", 'riud', 'riud', '', ".$this->dataRecord["server_id"].", 5, ".$policy_id.", '@".mysql_real_escape_string($this->dataRecord["domain"])."', '@".mysql_real_escape_string($this->dataRecord["domain"])."', 'Y')"; - $app->db->datalogInsert('spamfilter_users', $insert_data, 'id'); - unset($tmp_domain); - } - } else { - if($tmp_user["id"] > 0) { - // There is already a record but the user shall have no policy, so we delete it - $app->db->datalogDelete('spamfilter_users', 'id', $tmp_user["id"]); - } - } // endif spamfilter policy - //** If the domain name or owner has been changed, change the domain and owner in all mailbox records - if($this->oldDataRecord['domain'] != $this->dataRecord['domain'] || (isset($this->dataRecord['client_group_id']) && $this->oldDataRecord['sys_groupid'] != $this->dataRecord['client_group_id'])) { - $app->uses('getconf'); - $mail_config = $app->getconf->get_server_config($this->dataRecord["server_id"],'mail'); - - //* Update the mailboxes - $mailusers = $app->db->queryAllRecords("SELECT * FROM mail_user WHERE email like '%@".mysql_real_escape_string($this->oldDataRecord['domain'])."'"); - $sys_groupid = (isset($this->dataRecord['client_group_id']))?$this->dataRecord['client_group_id']:$this->oldDataRecord['sys_groupid']; - if(is_array($mailusers)) { - foreach($mailusers as $rec) { - // setting Maildir, Homedir, UID and GID - $mail_parts = explode("@",$rec['email']); - $maildir = str_replace("[domain]",$this->dataRecord['domain'],$mail_config["maildir_path"]); - $maildir = str_replace("[localpart]",$mail_parts[0],$maildir); - $maildir = mysql_real_escape_string($maildir); - $email = mysql_real_escape_string($mail_parts[0].'@'.$this->dataRecord['domain']); - $app->db->datalogUpdate('mail_user', "maildir = '$maildir', email = '$email', sys_groupid = '$sys_groupid'", 'mailuser_id', $rec['mailuser_id']); - } - } - - //* Update the aliases - $forwardings = $app->db->queryAllRecords("SELECT * FROM mail_forwarding WHERE source like '%@".mysql_real_escape_string($this->oldDataRecord['domain'])."' OR destination like '%@".mysql_real_escape_string($this->oldDataRecord['domain'])."'"); - if(is_array($forwardings)) { - foreach($forwardings as $rec) { - $destination = mysql_real_escape_string(str_replace($this->oldDataRecord['domain'],$this->dataRecord['domain'],$rec['destination'])); - $source = mysql_real_escape_string(str_replace($this->oldDataRecord['domain'],$this->dataRecord['domain'],$rec['source'])); - $app->db->datalogUpdate('mail_forwarding', "source = '$source', destination = '$destination', sys_groupid = '$sys_groupid'", 'forwarding_id', $rec['forwarding_id']); - } - } - - //* Delete the old spamfilter record - $tmp = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = '@".mysql_real_escape_string($this->oldDataRecord["domain"])."'"); - $app->db->datalogDelete('spamfilter_users', 'id', $tmp["id"]); - unset($tmp); - - } // end if domain name changed - - } - -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_domain_list.php b/interface/ispconfig/interface/mail/mail_domain_list.php deleted file mode 100644 index 0d26bd917..000000000 --- a/interface/ispconfig/interface/mail/mail_domain_list.php +++ /dev/null @@ -1,27 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses('listform_actions'); - -// Limit the results to alias domains -// $app->listform_actions->SQLExtWhere = "type = 'local'"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_forward_del.php b/interface/ispconfig/interface/mail/mail_forward_del.php deleted file mode 100644 index 9fc76db42..000000000 --- a/interface/ispconfig/interface/mail/mail_forward_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_forward_edit.php b/interface/ispconfig/interface/mail/mail_forward_edit.php deleted file mode 100644 index 0fef7a506..000000000 --- a/interface/ispconfig/interface/mail/mail_forward_edit.php +++ /dev/null @@ -1,141 +0,0 @@ -auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_mailforward',"type = 'forward'")) { - $app->error($app->tform->wordbook["limit_mailforward_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_mailforward',"type = 'forward'")) { - $app->error('Reseller: '.$app->tform->wordbook["limit_mailforward_txt"]); - } - } - - parent::onShowNew(); - } - - function onShowEnd() { - global $app, $conf; - - $email = $this->dataRecord["source"]; - $email_parts = explode("@",$email); - $app->tpl->setVar("email_local_part",$email_parts[0]); - - // Getting Domains of the user - $sql = "SELECT domain FROM mail_domain WHERE ".$app->tform->getAuthSQL('r').' ORDER BY domain'; - $domains = $app->db->queryAllRecords($sql); - $domain_select = ''; - foreach( $domains as $domain) { - $selected = (isset($email_parts[1]) && $domain["domain"] == $email_parts[1])?'SELECTED':''; - $domain_select .= "\r\n"; - } - $app->tpl->setVar("email_domain",$domain_select); - - parent::onShowEnd(); - } - - function onSubmit() { - global $app, $conf; - - // Check if Domain belongs to user - $domain = $app->db->queryOneRecord("SELECT server_id, domain FROM mail_domain WHERE domain = '".$app->db->quote($_POST["email_domain"])."' AND ".$app->tform->getAuthSQL('r')); - if($domain["domain"] != $_POST["email_domain"]) $app->tform->errorMessage .= $app->tform->wordbook["no_domain_perm"]; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_mailforward FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($this->id == 0 && $client["limit_mailforward"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(forwarding_id) as number FROM mail_forwarding WHERE sys_groupid = $client_group_id AND type = 'forward'"); - if($tmp["number"] >= $client["limit_mailforward"]) { - $app->tform->errorMessage .= $app->tform->wordbook["limit_mailforward_txt"]."
    "; - } - unset($tmp); - } - } // end if user is not admin - - // compose the email field - $this->dataRecord["source"] = $_POST["email_local_part"]."@".$_POST["email_domain"]; - // Set the server id of the mailbox = server ID of mail domain. - $this->dataRecord["server_id"] = $domain["server_id"]; - - unset($this->dataRecord["email_local_part"]); - unset($this->dataRecord["email_domain"]); - - //* Check if there is no active mailbox with this address - $tmp = $app->db->queryOneRecord("SELECT count(mailuser_id) as number FROM mail_user WHERE postfix = 'y' AND email = '".$app->db->quote($this->dataRecord["source"])."'"); - if($tmp['number'] > 0) $app->tform->errorMessage .= $app->tform->lng("duplicate_mailbox_txt")."
    "; - unset($tmp); - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app; - - $domain = $app->db->queryOneRecord("SELECT sys_groupid FROM mail_domain WHERE domain = '".$app->db->quote($_POST["email_domain"])."' AND ".$app->tform->getAuthSQL('r')); - $app->db->query("update mail_forwarding SET sys_groupid = ".$domain['sys_groupid']." WHERE forwarding_id = ".$this->id); - - } - -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_forward_list.php b/interface/ispconfig/interface/mail/mail_forward_list.php deleted file mode 100644 index da5c57d93..000000000 --- a/interface/ispconfig/interface/mail/mail_forward_list.php +++ /dev/null @@ -1,26 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses('listform_actions'); - -// Limit the results to alias domains -$app->listform_actions->SQLExtWhere = "type = 'forward'"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_get_del.php b/interface/ispconfig/interface/mail/mail_get_del.php deleted file mode 100644 index e66f85202..000000000 --- a/interface/ispconfig/interface/mail/mail_get_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_get_edit.php b/interface/ispconfig/interface/mail/mail_get_edit.php deleted file mode 100644 index f088e220a..000000000 --- a/interface/ispconfig/interface/mail/mail_get_edit.php +++ /dev/null @@ -1,109 +0,0 @@ -auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_fetchmail')) { - $app->error($app->tform->wordbook["limit_fetchmail_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_fetchmail')) { - $app->error('Reseller: '.$app->tform->wordbook["limit_fetchmail_txt"]); - } - } - - parent::onShowNew(); - } - - function onSubmit() { - global $app, $conf; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_fetchmail FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another transport. - if($this->id == 0 && $client["limit_fetchmail"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(mailget_id) as number FROM mail_get WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_fetchmail"]) { - $app->tform->errorMessage .= $app->tform->wordbook["limit_fetchmail_txt"]."
    "; - } - unset($tmp); - } - } // end if user is not admin - - // Set the server ID according to the selected destination - $tmp = $app->db->queryOneRecord("SELECT server_id FROM mail_user WHERE email = '".$app->db->quote($this->dataRecord["destination"])."'"); - $this->dataRecord["server_id"] = $tmp["server_id"]; - unset($tmp); - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app; - - $tmp = $app->db->queryOneRecord("SELECT sys_groupid FROM mail_user WHERE email = '".$app->db->quote($this->dataRecord["destination"])."'"); - $app->db->query("update mail_get SET sys_groupid = ".$tmp['sys_groupid']." WHERE mailget_id = ".$this->id); - - } - -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_get_list.php b/interface/ispconfig/interface/mail/mail_get_list.php deleted file mode 100644 index c08b0645c..000000000 --- a/interface/ispconfig/interface/mail/mail_get_list.php +++ /dev/null @@ -1,26 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses('listform_actions'); - -// Limit the results to alias domains -// $app->listform_actions->SQLExtWhere = ""; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_relay_recipient_del.php b/interface/ispconfig/interface/mail/mail_relay_recipient_del.php deleted file mode 100644 index acb264c03..000000000 --- a/interface/ispconfig/interface/mail/mail_relay_recipient_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_relay_recipient_edit.php b/interface/ispconfig/interface/mail/mail_relay_recipient_edit.php deleted file mode 100644 index 70a18bd3b..000000000 --- a/interface/ispconfig/interface/mail/mail_relay_recipient_edit.php +++ /dev/null @@ -1,59 +0,0 @@ -auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - -} - -$app->tform_actions = new page_action; -$app->tform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_relay_recipient_list.php b/interface/ispconfig/interface/mail/mail_relay_recipient_list.php deleted file mode 100644 index 6c9f3b4a6..000000000 --- a/interface/ispconfig/interface/mail/mail_relay_recipient_list.php +++ /dev/null @@ -1,24 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses('listform_actions'); -# $app->listform_actions->SQLExtWhere = "access = 'OK'"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_spamfilter_del.php b/interface/ispconfig/interface/mail/mail_spamfilter_del.php deleted file mode 100644 index 02832b878..000000000 --- a/interface/ispconfig/interface/mail/mail_spamfilter_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_spamfilter_edit.php b/interface/ispconfig/interface/mail/mail_spamfilter_edit.php deleted file mode 100644 index bafdfb4eb..000000000 --- a/interface/ispconfig/interface/mail/mail_spamfilter_edit.php +++ /dev/null @@ -1,124 +0,0 @@ -auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowEnd() { - global $app, $conf; - - // Getting email from data record - $email = $this->dataRecord["email"]; - $email_parts = explode("@",$email); - $app->tpl->setVar("email_local_part",$email_parts[0]); - - // Getting Domains of the user - $sql = "SELECT domain FROM mail_domain WHERE type = 'local' AND ".$app->tform->getAuthSQL('r'); - $domains = $app->db->queryAllRecords($sql); - $domain_select = ''; - foreach( $domains as $domain) { - $selected = ($domain["domain"] == $email_parts[1])?'SELECTED':''; - $domain_select .= "\r\n"; - } - $app->tpl->setVar("email_domain",$domain_select); - - // calculate scores - if(count($this->dataRecord) > 0) { - $app->tpl->setVar("spam_rewrite_score_int",number_format($this->dataRecord["spam_rewrite_score_int"] / 100, 2, '.', '')); - $app->tpl->setVar("spam_redirect_score_int",number_format($this->dataRecord["spam_redirect_score_int"] / 100, 2, '.', '')); - $app->tpl->setVar("spam_delete_score_int",number_format($this->dataRecord["spam_delete_score_int"] / 100, 2, '.', '')); - } - - // Changing maildir to mailbox_id - $sql = "SELECT mailbox_id FROM mail_box WHERE maildir = '".$this->dataRecord["spam_redirect_maildir"]."' AND ".$app->tform->getAuthSQL('r'); - $mailbox = $app->db->queryOneRecord($sql); - $this->dataRecord["spam_redirect_maildir"] = $mailbox["mailbox_id"]; - - parent::onShowEnd(); - } - - function onSubmit() { - global $app, $conf; - - // Check if Domain belongs to user - $domain = $app->db->queryOneRecord("SELECT server_id, domain FROM mail_domain WHERE domain = '".$app->db->quote($_POST["email_domain"])."' AND ".$app->tform->getAuthSQL('r')); - if($domain["domain"] != $_POST["email_domain"]) $app->tform->errorMessage .= $app->tform->wordbook["no_domain_perm"]; - - // compose the email field - if($_POST["email_local_part"] != '') { - $this->dataRecord["email"] = $_POST["email_local_part"]."@".$_POST["email_domain"]; - } else { - $this->dataRecord["email"] = $_POST["email_domain"]; - } - // Set the server id of the mailbox = server ID of mail domain. - $this->dataRecord["server_id"] = $domain["server_id"]; - - unset($this->dataRecord["email_local_part"]); - unset($this->dataRecord["email_domain"]); - - // calculate scores - $this->dataRecord["spam_rewrite_score_int"] = $_POST["spam_rewrite_score_int"] * 100; - $this->dataRecord["spam_redirect_score_int"] = $_POST["spam_redirect_score_int"] * 100; - $this->dataRecord["spam_delete_score_int"] = $_POST["spam_delete_score_int"] * 100; - - // Changing mailbox_id to maildir - $sql = "SELECT maildir FROM mail_box WHERE mailbox_id = '".intval($_POST["spam_redirect_maildir"])."' AND ".$app->tform->getAuthSQL('r'); - $mailbox = $app->db->queryOneRecord($sql); - $this->dataRecord["spam_redirect_maildir"] = $mailbox["maildir"]; - - parent::onSubmit(); - } - -} - -$app->tform_actions = new page_action; -$app->tform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_spamfilter_list.php b/interface/ispconfig/interface/mail/mail_spamfilter_list.php deleted file mode 100644 index 51c75b4cb..000000000 --- a/interface/ispconfig/interface/mail/mail_spamfilter_list.php +++ /dev/null @@ -1,23 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses('listform_actions'); - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_transport_del.php b/interface/ispconfig/interface/mail/mail_transport_del.php deleted file mode 100644 index b6463a21a..000000000 --- a/interface/ispconfig/interface/mail/mail_transport_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_transport_edit.php b/interface/ispconfig/interface/mail/mail_transport_edit.php deleted file mode 100644 index 4223a8132..000000000 --- a/interface/ispconfig/interface/mail/mail_transport_edit.php +++ /dev/null @@ -1,179 +0,0 @@ -auth->check_module_permissions('mail'); - - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_mailrouting')) { - $app->error($app->tform->wordbook["limit_mailrouting_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_mailrouting')) { - $app->error('Reseller: '.$app->tform->wordbook["limit_mailrouting_txt"]); - } - } - - parent::onShowNew(); - } - - function onShowEnd() { - global $app, $conf; - - $tmp_parts = explode(":",$this->dataRecord["transport"]); - if(!empty($this->id) && !stristr($this->dataRecord["transport"],':')) { - $rec["type"] = 'custom'; - } else { - if(empty($this->id) && empty($tmp_parts[0])) { - $rec["type"] = 'smtp'; - } else { - $rec["type"] = $tmp_parts[0]; - } - } - if(@$tmp_parts[2] != '') { - $dest = @$tmp_parts[1].':'.@$tmp_parts[2]; - } elseif($tmp_parts[1] != '') { - $dest = $tmp_parts[1]; - } else { - $dest = $this->dataRecord["transport"]; - } - if(@substr($dest,0,1) == '[') { - $rec["mx"] = 'checked="CHECKED"'; - $rec["destination"] = @str_replace(']','',@str_replace('[','',$dest)); - } else { - $rec["mx"] = ''; - $rec["destination"] = @$dest; - } - - $types = array('smtp' => 'smtp','uucp' => 'uucp','slow' => 'slow', 'error' => 'error', 'custom' => 'custom','' => 'null'); - $type_select = ''; - if(is_array($types)) { - foreach( $types as $key => $val) { - $selected = ($key == $rec["type"])?'SELECTED':''; - $type_select .= "\r\n"; - } - } - $rec["type"] = $type_select; - $app->tpl->setVar($rec); - unset($type); - unset($types); - - parent::onShowEnd(); - } - - function onBeforeUpdate() { - global $app, $conf; - - //* Check if the server has been changed - // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway - if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - $rec = $app->db->queryOneRecord("SELECT server_id from mail_transport WHERE transport_id = ".$this->id); - if($rec['server_id'] != $this->dataRecord["server_id"]) { - //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The Server can not be changed.'); - $this->dataRecord["server_id"] = $rec['server_id']; - } - unset($rec); - } - } - - function onSubmit() { - global $app, $conf; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_mailrouting FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another transport. - if($this->id == 0 && $client["limit_mailrouting"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(transport_id) as number FROM mail_transport WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_mailrouting"]) { - $app->tform->errorMessage .= $app->tform->wordbook["limit_mailrouting_txt"]."
    "; - } - unset($tmp); - } - } // end if user is not admin - - //* Compose transport field - if($this->dataRecord["mx"] == 'y') { - if(stristr($this->dataRecord["destination"],':')) { - $tmp_parts = explode(":",$this->dataRecord["destination"]); - $transport = '['.$tmp_parts[0].']:'.$tmp_parts[1]; - } else { - $transport = '['.$this->dataRecord["destination"].']'; - } - } else { - $transport = $this->dataRecord["destination"]; - } - - if($this->dataRecord["type"] == 'custom') { - $this->dataRecord["transport"] = $transport; - } else { - $this->dataRecord["transport"] = $this->dataRecord["type"].':'.$transport; - } - - unset($this->dataRecord["type"]); - unset($this->dataRecord["mx"]); - unset($this->dataRecord["destination"]); - - parent::onSubmit(); - } - -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_transport_list.php b/interface/ispconfig/interface/mail/mail_transport_list.php deleted file mode 100644 index 42db6aec1..000000000 --- a/interface/ispconfig/interface/mail/mail_transport_list.php +++ /dev/null @@ -1,26 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses('listform_actions'); - -// Limit the results to alias domains -// $app->listform_actions->SQLExtWhere = "type = 'local'"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_user_del.php b/interface/ispconfig/interface/mail/mail_user_del.php deleted file mode 100644 index cb180fc90..000000000 --- a/interface/ispconfig/interface/mail/mail_user_del.php +++ /dev/null @@ -1,66 +0,0 @@ -auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onBeforeDelete() { - global $app; $conf; - - $tmp_user = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = '".mysql_real_escape_string($this->dataRecord["email"])."'"); - $app->db->datalogDelete('spamfilter_users', 'id', $tmp_user["id"]); - - } -} - -$page = new page_action; -$page->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_user_edit.php b/interface/ispconfig/interface/mail/mail_user_edit.php deleted file mode 100644 index 3e769753d..000000000 --- a/interface/ispconfig/interface/mail/mail_user_edit.php +++ /dev/null @@ -1,328 +0,0 @@ -auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_mailbox')) { - $app->error($app->tform->wordbook["limit_mailbox_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_mailbox')) { - $app->error('Reseller: '.$app->tform->wordbook["limit_mailbox_txt"]); - } - } - - parent::onShowNew(); - } - - function onShowEnd() { - global $app, $conf; - - $email = $this->dataRecord["email"]; - $email_parts = explode("@",$email); - $app->tpl->setVar("email_local_part",$email_parts[0]); - - // Getting Domains of the user - $sql = "SELECT domain FROM mail_domain WHERE ".$app->tform->getAuthSQL('r').' ORDER BY domain'; - $domains = $app->db->queryAllRecords($sql); - $domain_select = ''; - if(is_array($domains)) { - foreach( $domains as $domain) { - $selected = ($domain["domain"] == @$email_parts[1])?'SELECTED':''; - $domain_select .= "\r\n"; - } - } - $app->tpl->setVar("email_domain",$domain_select); - unset($domains); - unset($domain_select); - - // Get the spamfilter policys for the user - $tmp_user = $app->db->queryOneRecord("SELECT policy_id FROM spamfilter_users WHERE email = '".$this->dataRecord["email"]."'"); - $sql = "SELECT id, policy_name FROM spamfilter_policy WHERE ".$app->tform->getAuthSQL('r'); - $policys = $app->db->queryAllRecords($sql); - $policy_select = ""; - if(is_array($policys)) { - foreach( $policys as $p) { - $selected = ($p["id"] == $tmp_user["policy_id"])?'SELECTED':''; - $policy_select .= "\r\n"; - } - } - $app->tpl->setVar("policy",$policy_select); - unset($policys); - unset($policy_select); - unset($tmp_user); - - // Convert quota from Bytes to MB - if($this->dataRecord["quota"] != -1) $app->tpl->setVar("quota",$this->dataRecord["quota"] / 1024 / 1024); - - // Is autoresponder set? - if ($this->dataRecord['autoresponder'] == 'y') { - $app->tpl->setVar("ar_active", 'checked="checked"'); - } else { - $app->tpl->setVar("ar_active", ''); - } - - parent::onShowEnd(); - } - - function onSubmit() { - global $app, $conf; - - //* Check if Domain belongs to user - if(isset($_POST["email_domain"])) { - $domain = $app->db->queryOneRecord("SELECT server_id, domain FROM mail_domain WHERE domain = '".$app->db->quote($_POST["email_domain"])."' AND ".$app->tform->getAuthSQL('r')); - if($domain["domain"] != $_POST["email_domain"]) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm"); - } - - - //* if its an insert, check that the password is not empty - if($this->id == 0 && $_POST["password"] == '') { - $app->tform->errorMessage .= $app->tform->lng("error_no_pwd")."
    "; - } - - //* Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_mailbox, limit_mailquota FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - - // Check if the user may add another mailbox. - if($this->id == 0 && $client["limit_mailbox"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(mailuser_id) as number FROM mail_user WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_mailbox"]) { - $app->tform->errorMessage .= $app->tform->lng("limit_mailbox_txt")."
    "; - } - unset($tmp); - } - - // Check the quota and adjust - if(isset($_POST["quota"]) && $client["limit_mailquota"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT sum(quota) as mailquota FROM mail_user WHERE mailuser_id != ".intval($this->id)." AND ".$app->tform->getAuthSQL('u')); - $mailquota = $tmp["mailquota"] / 1024 / 1024; - $new_mailbox_quota = intval($this->dataRecord["quota"]); - if(($mailquota + $new_mailbox_quota > $client["limit_mailquota"]) || ($new_mailbox_quota == 0 && $client["limit_mailquota"] != -1)) { - $max_free_quota = $client["limit_mailquota"] - $mailquota; - $app->tform->errorMessage .= $app->tform->lng("limit_mailquota_txt").": ".$max_free_quota."
    "; - // Set the quota field to the max free space - $this->dataRecord["quota"] = $max_free_quota; - } - unset($tmp); - unset($tmp_quota); - } - } // end if user is not admin - - - //* compose the email field - if(isset($_POST["email_local_part"]) && isset($_POST["email_domain"])) { - $this->dataRecord["email"] = strtolower($_POST["email_local_part"]."@".$_POST["email_domain"]); - - // Set the server id of the mailbox = server ID of mail domain. - $this->dataRecord["server_id"] = $domain["server_id"]; - - unset($this->dataRecord["email_local_part"]); - unset($this->dataRecord["email_domain"]); - - // Convert quota from MB to Bytes - if($this->dataRecord["quota"] != -1) $this->dataRecord["quota"] = $this->dataRecord["quota"] * 1024 * 1024; - - // setting Maildir, Homedir, UID and GID - $app->uses('getconf'); - $mail_config = $app->getconf->get_server_config($domain["server_id"],'mail'); - $maildir = str_replace("[domain]",$domain["domain"],$mail_config["maildir_path"]); - $maildir = str_replace("[localpart]",strtolower($_POST["email_local_part"]),$maildir); - $this->dataRecord["maildir"] = $maildir; - $this->dataRecord["homedir"] = $mail_config["homedir_path"]; - $this->dataRecord["uid"] = $mail_config["mailuser_uid"]; - $this->dataRecord["gid"] = $mail_config["mailuser_gid"]; - - //* Check if there is no alias or forward with this address - $tmp = $app->db->queryOneRecord("SELECT count(forwarding_id) as number FROM mail_forwarding WHERE active = 'y' AND source = '".$app->db->quote($this->dataRecord["email"])."'"); - if($tmp['number'] > 0) $app->tform->errorMessage .= $app->tform->lng("duplicate_alias_or_forward_txt")."
    "; - unset($tmp); - - } - - //* if autoresponder checkbox not selected, do not save dates - if (!isset($_POST['autoresponder']) && array_key_exists('autoresponder_start_date', $_POST)) { - $this->dataRecord['autoresponder_start_date'] = array_map(create_function('$item','return 0;'), $this->dataRecord['autoresponder_start_date']); - $this->dataRecord['autoresponder_end_date'] = array_map(create_function('$item','return 0;'), $this->dataRecord['autoresponder_end_date']); - } - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app, $conf; - - // Set the domain owner as mailbox owner - $domain = $app->db->queryOneRecord("SELECT sys_groupid, server_id FROM mail_domain WHERE domain = '".$app->db->quote($_POST["email_domain"])."' AND ".$app->tform->getAuthSQL('r')); - $app->db->query("UPDATE mail_user SET sys_groupid = ".$domain["sys_groupid"]." WHERE mailuser_id = ".$this->id); - - // send a welcome email to create the mailbox -// mail($this->dataRecord["email"],$app->tform->wordbook["welcome_mail_subject"],$app->tform->wordbook["welcome_mail_message"]); - - // tries to detect current charset, and encode subject-header and body from it to ISO-8859-1. - $fromCharset = mb_detect_encoding($app->tform->lng("welcome_mail_subject")); - $iconvPreferences = array("input-charset" => $fromCharset, - "output-charset" => "ISO-8859-1", - "line-length" => 76, - "line-break-chars" => "\n", - "scheme" => "Q"); - - $welcomeFromName = $app->tform->lng("welcome_mail_fromname_txt"); - $welcomeFromEmail = $app->tform->lng("welcome_mail_fromemail_txt"); - $mailHeaders = "MIME-Version: 1.0" . "\n"; - $mailHeaders .= "Content-type: text/plain; charset=iso-8859-1" . "\n"; - $mailHeaders .= "From: $welcomeFromName <$welcomeFromEmail>" . "\n"; - $mailHeaders .= "Reply-To: <$welcomeFromEmail>" . "\n"; - $mailTarget = $this->dataRecord["email"]; - $mailSubject = iconv_mime_encode("trimoff", $app->tform->lng("welcome_mail_subject"), $iconvPreferences); - $mailSubject = str_replace("trimoff: ", "", $mailSubject); - $mailBody = iconv ($fromCharset, "ISO-8859-1", $app->tform->lng("welcome_mail_message")); - - mail($mailTarget, $mailSubject, $mailBody, $mailHeaders); - - // Spamfilter policy - $policy_id = intval($this->dataRecord["policy"]); - if($policy_id > 0) { - $tmp_user = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = '".mysql_real_escape_string($this->dataRecord["email"])."'"); - if($tmp_user["id"] > 0) { - // There is already a record that we will update - $app->db->datalogUpdate('spamfilter_users', "policy_id = $ploicy_id", 'id', $tmp_user["id"]); - } else { - // We create a new record - $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `priority`, `policy_id`, `email`, `fullname`, `local`) - VALUES (".$_SESSION["s"]["user"]["userid"].", ".$domain["sys_groupid"].", 'riud', 'riud', '', ".$domain["server_id"].", 10, ".$policy_id.", '".mysql_real_escape_string($this->dataRecord["email"])."', '".mysql_real_escape_string($this->dataRecord["email"])."', 'Y')"; - $app->db->datalogInsert('spamfilter_users', $insert_data, 'id'); - } - } // endif spamfilter policy - - - // Set the fields for dovecot - if(isset($this->dataRecord["email"])) { - $disableimap = ($this->dataRecord["disableimap"])?'y':'n'; - $disablepop3 = ($this->dataRecord["disablepop3"])?'y':'n'; - $disabledeliver = ($this->dataRecord["postfix"] == 'y')?'n':'y'; - $disablesmtp = ($this->dataRecord["postfix"] == 'y')?'n':'y'; - - $sql = "UPDATE mail_user SET disableimap = '$disableimap', disablepop3 = '$disablepop3', disablesmtp = '$disablesmtp', disabledeliver = '$disabledeliver' WHERE mailuser_id = ".$this->id; - $app->db->query($sql); - } - } - - function onAfterUpdate() { - global $app, $conf; - - // Set the domain owner as mailbox owner - if(isset($_POST["email_domain"])) { - $domain = $app->db->queryOneRecord("SELECT sys_groupid, server_id FROM mail_domain WHERE domain = '".$app->db->quote($_POST["email_domain"])."' AND ".$app->tform->getAuthSQL('r')); - $app->db->query("UPDATE mail_user SET sys_groupid = ".$domain["sys_groupid"]." WHERE mailuser_id = ".$this->id); - - // Spamfilter policy - $policy_id = intval($this->dataRecord["policy"]); - $tmp_user = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = '".mysql_real_escape_string($this->dataRecord["email"])."'"); - if($policy_id > 0) { - if($tmp_user["id"] > 0) { - // There is already a record that we will update - $app->db->datalogUpdate('spamfilter_users', "policy_id = $policy_id", 'id', $tmp_user["id"]); - } else { - // We create a new record - $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `priority`, `policy_id`, `email`, `fullname`, `local`) - VALUES (".$_SESSION["s"]["user"]["userid"].", ".$domain["sys_groupid"].", 'riud', 'riud', '', ".$domain["server_id"].", 10, ".$policy_id.", '".mysql_real_escape_string($this->dataRecord["email"])."', '".mysql_real_escape_string($this->dataRecord["email"])."', 'Y')"; - $app->db->datalogInsert('spamfilter_users', $insert_data, 'id'); - } - }else { - if($tmp_user["id"] > 0) { - // There is already a record but the user shall have no policy, so we delete it - $app->db->datalogDelete('spamfilter_users', 'id', $tmp_user["id"]); - } - } // endif spamfilter policy - } - - // Set the fields for dovecot - if(isset($this->dataRecord["email"])) { - $disableimap = ($this->dataRecord["disableimap"])?'y':'n'; - $disablepop3 = ($this->dataRecord["disablepop3"])?'y':'n'; - $disabledeliver = ($this->dataRecord["postfix"] == 'y')?'n':'y'; - $disablesmtp = ($this->dataRecord["postfix"] == 'y')?'n':'y'; - - $sql = "UPDATE mail_user SET disableimap = '$disableimap', disablepop3 = '$disablepop3', disablesmtp = '$disablesmtp', disabledeliver = '$disabledeliver' WHERE mailuser_id = ".$this->id; - $app->db->query($sql); - } - - //** If the email address has been changed, change it in all aliases too - if(isset($this->dataRecord['email']) && $this->oldDataRecord['email'] != $this->dataRecord['email']) { - //if($this->oldDataRecord['email'] != $this->dataRecord['email']) { - - //* Update the aliases - $forwardings = $app->db->queryAllRecords("SELECT * FROM mail_forwarding WHERE destination = '".$app->db->quote($this->oldDataRecord['email'])."'"); - if(is_array($forwardings)) { - foreach($forwardings as $rec) { - $destination = $app->db->quote($this->dataRecord['email']); - $app->db->datalogUpdate('mail_forwarding', "destination = '$destination'", 'forwarding_id', $rec['forwarding_id']); - } - } - - } // end if email addess changed - - } - -} - -$app->tform_actions = new page_action; -$app->tform_actions->onLoad(); - -?> diff --git a/interface/ispconfig/interface/mail/mail_user_filter_del.php b/interface/ispconfig/interface/mail/mail_user_filter_del.php deleted file mode 100644 index 81689b17b..000000000 --- a/interface/ispconfig/interface/mail/mail_user_filter_del.php +++ /dev/null @@ -1,83 +0,0 @@ -auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onAfterDelete() { - global $app, $conf; - - $mailuser = $app->db->queryOneRecord("SELECT custom_mailfilter FROM mail_user WHERE mailuser_id = ".$this->dataRecord["mailuser_id"]); - $skip = false; - $lines = explode("\n",$mailuser['custom_mailfilter']); - $out = ''; - - foreach($lines as $line) { - $line = trim($line); - if($line == '### BEGIN FILTER_ID:'.$this->id) { - $skip = true; - } - if($skip == false && $line != '') $out .= $line ."\n"; - if($line == '### END FILTER_ID:'.$this->id) { - $skip = false; - } - } - - $out = mysql_real_escape_string($out); - $app->db->datalogUpdate('mail_user', "custom_mailfilter = '$out'", 'mailuser_id', $this->dataRecord["mailuser_id"]); - - } - -} - -$page = new page_action; -$page->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_user_filter_edit.php b/interface/ispconfig/interface/mail/mail_user_filter_edit.php deleted file mode 100644 index 382460a01..000000000 --- a/interface/ispconfig/interface/mail/mail_user_filter_edit.php +++ /dev/null @@ -1,232 +0,0 @@ -auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onSubmit() { - global $app, $conf; - - // Get the parent mail_user record - $mailuser = $app->db->queryOneRecord("SELECT * FROM mail_user WHERE mailuser_id = '".intval($_REQUEST["mailuser_id"])."' AND ".$app->tform->getAuthSQL('r')); - - // Check if Domain belongs to user - if($mailuser["mailuser_id"] != $_POST["mailuser_id"]) $app->tform->errorMessage .= $app->tform->wordbook["no_mailuser_perm"]; - - // Set the mailuser_id - $this->dataRecord["mailuser_id"] = $mailuser["mailuser_id"]; - - // Remove leading dots - if(substr($this->dataRecord['target'],0,1) == '.') $this->dataRecord['target'] = substr($this->dataRecord['target'],1); - - parent::onSubmit(); - } - - /* - function onAfterInsert() { - global $app, $conf; - - $this->onAfterUpdate(); - - $app->db->query("UPDATE mail_user_filter SET sys_groupid = ".$mailuser['sys_groupid']." WHERE filter_id = ".$this->id); - } - - function onAfterUpdate() { - global $app, $conf; - - $mailuser = $app->db->queryOneRecord("SELECT custom_mailfilter FROM mail_user WHERE mailuser_id = ".$this->dataRecord["mailuser_id"]); - $skip = false; - $lines = explode("\n",$mailuser['custom_mailfilter']); - $out = ''; - $found = false; - - foreach($lines as $line) { - $line = rtrim($line); - if($line == '### BEGIN FILTER_ID:'.$this->id) { - $skip = true; - $found = true; - } - if($skip == false && $line != '') $out .= $line ."\n"; - if($line == '### END FILTER_ID:'.$this->id) { - $out .= $this->getRule(); - $skip = false; - } - } - - // We did not found our rule, so we add it now as first rule. - if($found == false) { - $new_rule = $this->getRule(); - $out = $new_rule . $out; - } - - $out = $app->db->quote($out); - $app->db->datalogUpdate('mail_user', "custom_mailfilter = '$out'", 'mailuser_id', $this->dataRecord["mailuser_id"]); - - } - - function getRule() { - - global $app,$conf; - - $app->uses("getconf"); - $mailuser_rec = $app->db->queryOneRecord("SELECT server_id FROM mail_user WHERE mailuser_id = ".intval($this->dataRecord["mailuser_id"])); - $mail_config = $app->getconf->get_server_config(intval($mailuser_rec["server_id"]),'mail'); - - if($mail_config['mail_filter_syntax'] == 'sieve') { - - // ####################################################### - // Filter in Sieve Syntax - // ####################################################### - - $content = ''; - $content .= '### BEGIN FILTER_ID:'.$this->id."\n"; - - //$content .= 'require ["fileinto", "regex", "vacation"];'."\n"; - - $content .= 'if header :regex ["'.strtolower($this->dataRecord["source"]).'"] ["'; - - $searchterm = preg_quote($this->dataRecord["searchterm"]); - - if($this->dataRecord["op"] == 'contains') { - $content .= ".*".$searchterm; - } elseif ($this->dataRecord["op"] == 'is') { - $content .= $searchterm."$"; - } elseif ($this->dataRecord["op"] == 'begins') { - $content .= " ".$searchterm.""; - } elseif ($this->dataRecord["op"] == 'ends') { - $content .= ".*".$searchterm."$"; - } - - $content .= '"] {'."\n"; - - if($this->dataRecord["action"] == 'move') { - $content .= ' fileinto "'.$this->dataRecord["target"].'";' . "\n"; - } else { - $content .= " discard;\n"; - } - - $content .= " stop;\n}\n"; - - $content .= '### END FILTER_ID:'.$this->id."\n"; - - } else { - - // ####################################################### - // Filter in Maildrop Syntax - // ####################################################### - $content = ''; - $content .= '### BEGIN FILTER_ID:'.$this->id."\n"; - - $TargetNoQuotes = $this->dataRecord["target"]; - $TargetQuotes = "\"$TargetNoQuotes\""; - - $TestChDirNoQuotes = '$DEFAULT/.'.$TargetNoQuotes; - $TestChDirQuotes = "\"$TestChDirNoQuotes\""; - - $MailDirMakeNoQuotes = $TargetQuotes.' $DEFAULT'; - - $EchoTargetFinal = $TargetNoQuotes; - - - if($this->dataRecord["action"] == 'move') { - - $content .= " -`test -e ".$TestChDirQuotes." && exit 1 || exit 0` -if ( ".'$RETURNCODE'." != 1 ) -{ - `maildirmake -f $MailDirMakeNoQuotes` - `chmod -R 0700 ".$TestChDirQuotes."` - `echo \"INBOX.$EchoTargetFinal\" >> ".'$DEFAULT'."/courierimapsubscribed` -} -"; - } - - $content .= "if (/^".$this->dataRecord["source"].":"; - - $searchterm = preg_quote($this->dataRecord["searchterm"]); - - if($this->dataRecord["op"] == 'contains') { - $content .= ".*".$searchterm."/:h)\n"; - } elseif ($this->dataRecord["op"] == 'is') { - $content .= $searchterm."$/:h)\n"; - } elseif ($this->dataRecord["op"] == 'begins') { - $content .= " ".$searchterm."/:h)\n"; - } elseif ($this->dataRecord["op"] == 'ends') { - $content .= ".*".$searchterm."$/:h)\n"; - } - - $content .= "{\n"; - $content .= "exception {\n"; - - if($this->dataRecord["action"] == 'move') { - $content .= 'ID' . "$this->id" . 'EndFolder = "$DEFAULT/.' . $this->dataRecord['target'] . '/"' . "\n"; - $content .= "to ". '$ID' . "$this->id" . 'EndFolder' . "\n"; - } else { - $content .= "to /dev/null\n"; - } - - $content .= "}\n"; - $content .= "}\n"; - - //} - - $content .= '### END FILTER_ID:'.$this->id."\n"; - - } - - return $content; - } - */ - -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_user_list.php b/interface/ispconfig/interface/mail/mail_user_list.php deleted file mode 100644 index e7cb7c8ad..000000000 --- a/interface/ispconfig/interface/mail/mail_user_list.php +++ /dev/null @@ -1,44 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->load('listform_actions'); - - -class list_action extends listform_actions { - - function onShow() { - global $app,$conf; - - $app->uses('getconf'); - $global_config = $app->getconf->get_global_config('mail'); - - if($global_config['mailboxlist_webmail_link'] == 'y') { - $app->tpl->setVar('mailboxlist_webmail_link',1); - } else { - $app->tpl->setVar('mailboxlist_webmail_link',0); - } - - parent::onShow(); - } - -} - -$list = new list_action; -$list->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_user_stats.php b/interface/ispconfig/interface/mail/mail_user_stats.php deleted file mode 100644 index 694202fd1..000000000 --- a/interface/ispconfig/interface/mail/mail_user_stats.php +++ /dev/null @@ -1,63 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->load('listform_actions'); - -class list_action extends listform_actions { - - function prepareDataRow($rec) - { - global $app; - - $rec = $app->listform->decode($rec); - - //* Alternating datarow colors - $this->DataRowColor = ($this->DataRowColor == '#FFFFFF') ? '#EEEEEE' : '#FFFFFF'; - $rec['bgcolor'] = $this->DataRowColor; - - //* Set the statistics colums - //** Traffic of the current month - $tmp_date = date('Y-m'); - $tmp_rec = $app->db->queryOneRecord("SELECT traffic as t FROM mail_traffic WHERE mailuser_id = ".$rec['mailuser_id']." AND month = '$tmp_date'"); - $rec['this_month'] = number_format(intval($tmp_rec['t'])/1024/1024, 0, '.', ' '); - - //** Traffic of the current year - $tmp_date = date('Y'); - $tmp_rec = $app->db->queryOneRecord("SELECT sum(traffic) as t FROM mail_traffic WHERE mailuser_id = ".$rec['mailuser_id']." AND month like '$tmp_date%'"); - $rec['this_year'] = number_format(intval($tmp_rec['t'])/1024/1024, 0, '.', ' '); - - //** Traffic of the last month - $tmp_date = date('Y-m',mktime(0, 0, 0, date("m")-1, date("d"), date("Y"))); - $tmp_rec = $app->db->queryOneRecord("SELECT traffic as t FROM mail_traffic WHERE mailuser_id = ".$rec['mailuser_id']." AND month = '$tmp_date'"); - $rec['last_month'] = number_format(intval($tmp_rec['t'])/1024/1024, 0, '.', ' '); - - //** Traffic of the last year - $tmp_date = date('Y',mktime(0, 0, 0, date("m"), date("d"), date("Y")-1)); - $tmp_rec = $app->db->queryOneRecord("SELECT sum(traffic) as t FROM mail_traffic WHERE mailuser_id = ".$rec['mailuser_id']." AND month like '$tmp_date%'"); - $rec['last_year'] = number_format(intval($tmp_rec['t'])/1024/1024, 0, '.', ' '); - - //* The variable "id" contains always the index variable - $rec['id'] = $rec[$this->idx_key]; - return $rec; - } -} - -$list = new list_action; -$list->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_whitelist_del.php b/interface/ispconfig/interface/mail/mail_whitelist_del.php deleted file mode 100644 index 217f49e2b..000000000 --- a/interface/ispconfig/interface/mail/mail_whitelist_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_whitelist_edit.php b/interface/ispconfig/interface/mail/mail_whitelist_edit.php deleted file mode 100644 index 092f5783d..000000000 --- a/interface/ispconfig/interface/mail/mail_whitelist_edit.php +++ /dev/null @@ -1,113 +0,0 @@ -auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_mailfilter')) { - $app->error($app->tform->wordbook["limit_mailfilter_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_mailfilter')) { - $app->error('Reseller: '.$app->tform->wordbook["limit_mailfilter_txt"]); - } - } - - parent::onShowNew(); - } - - function onBeforeUpdate() { - global $app, $conf; - - //* Check if the server has been changed - // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway - if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - $rec = $app->db->queryOneRecord("SELECT server_id from mail_access WHERE access_id = ".$this->id); - if($rec['server_id'] != $this->dataRecord["server_id"]) { - //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The Server can not be changed.'); - $this->dataRecord["server_id"] = $rec['server_id']; - } - unset($rec); - } - } - - function onSubmit() { - global $app, $conf; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_mailfilter FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($this->id == 0 && $client["limit_mailfilter"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(access_id) as number FROM mail_access WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_mailfilter"]) { - $app->tform->errorMessage .= $app->tform->wordbook["limit_mailfilter_txt"]."
    "; - } - unset($tmp); - } - } // end if user is not admin - - parent::onSubmit(); - } - -} - -$app->tform_actions = new page_action; -$app->tform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/mail_whitelist_list.php b/interface/ispconfig/interface/mail/mail_whitelist_list.php deleted file mode 100644 index b2470084a..000000000 --- a/interface/ispconfig/interface/mail/mail_whitelist_list.php +++ /dev/null @@ -1,24 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses('listform_actions'); -$app->listform_actions->SQLExtWhere = "access = 'OK'"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/spamfilter_blacklist_del.php b/interface/ispconfig/interface/mail/spamfilter_blacklist_del.php deleted file mode 100644 index d3ca8c40c..000000000 --- a/interface/ispconfig/interface/mail/spamfilter_blacklist_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/spamfilter_blacklist_edit.php b/interface/ispconfig/interface/mail/spamfilter_blacklist_edit.php deleted file mode 100644 index 3f7e5f085..000000000 --- a/interface/ispconfig/interface/mail/spamfilter_blacklist_edit.php +++ /dev/null @@ -1,118 +0,0 @@ -auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_spamfilter_wblist')) { - $app->error($app->tform->wordbook["limit_spamfilter_wblist_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_spamfilter_wblist')) { - $app->error('Reseller: '.$app->tform->wordbook["limit_spamfilter_wblist_txt"]); - } - } - - parent::onShowNew(); - } - - /* - function onBeforeUpdate() { - global $app, $conf; - - //* Check if the server has been changed - // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway - if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - $rec = $app->db->queryOneRecord("SELECT server_id from spamfilter_wblist WHERE id = ".$this->id); - if($rec['server_id'] != $this->dataRecord["server_id"]) { - //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The Server can not be changed.'); - $this->dataRecord["server_id"] = $rec['server_id']; - } - unset($rec); - } - } - */ - -function onSubmit() { - global $app, $conf; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_spamfilter_wblist FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($this->id == 0 && $client["limit_spamfilter_wblist"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(wblist_id) as number FROM spamfilter_wblist WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_spamfilter_wblist"]) { - $app->tform->errorMessage .= $app->tform->wordbook["limit_spamfilter_wblist_txt"]."
    "; - } - unset($tmp); - } - } // end if user is not admin - - // Select and set the server_id so it matches the server_id of the spa,filter_users record - $tmp = $app->db->queryOneRecord("SELECT server_id FROM spamfilter_users WHERE id = ".intval($this->dataRecord["rid"])); - $this->dataRecord["server_id"] = $tmp["server_id"]; - unset($tmp); - - parent::onSubmit(); - } -} - -$app->tform_actions = new page_action; -$app->tform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/spamfilter_blacklist_list.php b/interface/ispconfig/interface/mail/spamfilter_blacklist_list.php deleted file mode 100644 index 4733bdc77..000000000 --- a/interface/ispconfig/interface/mail/spamfilter_blacklist_list.php +++ /dev/null @@ -1,24 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses('listform_actions'); -$app->listform_actions->SQLExtWhere = "wb = 'B'"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/spamfilter_config_del.php b/interface/ispconfig/interface/mail/spamfilter_config_del.php deleted file mode 100644 index 31357e95f..000000000 --- a/interface/ispconfig/interface/mail/spamfilter_config_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/spamfilter_config_edit.php b/interface/ispconfig/interface/mail/spamfilter_config_edit.php deleted file mode 100644 index 26f369de4..000000000 --- a/interface/ispconfig/interface/mail/spamfilter_config_edit.php +++ /dev/null @@ -1,96 +0,0 @@ -auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowEdit() { - global $app, $conf; - - if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); - - if($app->tform->errorMessage == '') { - $app->uses('ini_parser,getconf'); - - $section = $this->active_tab; - $server_id = $this->id; - - $this->dataRecord = $app->getconf->get_server_config($server_id,$section); - } - - $record = $app->tform->getHTML($this->dataRecord, $this->active_tab,'EDIT'); - - $record['id'] = $this->id; - $app->tpl->setVar($record); - } - - function onUpdateSave($sql) { - global $app; - - if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); - $app->uses('ini_parser,getconf'); - - $section = $app->tform->getCurrentTab(); - $server_id = $this->id; - - $server_config_array = $app->getconf->get_server_config($server_id); - $server_config_array[$section] = $app->tform->encode($this->dataRecord,$section); - $server_config_str = $app->ini_parser->get_ini_string($server_config_array); - - $sql = "UPDATE server SET config = '".$app->db->quote($server_config_str)."' WHERE server_id = ".$server_id; - $app->db->query($sql); - } - -} - -$app->tform_actions = new page_action; -$app->tform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/spamfilter_config_list.php b/interface/ispconfig/interface/mail/spamfilter_config_list.php deleted file mode 100644 index 16cc359dc..000000000 --- a/interface/ispconfig/interface/mail/spamfilter_config_list.php +++ /dev/null @@ -1,24 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses('listform_actions'); -//$app->listform_actions->SQLExtWhere = "wb = 'W'"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/spamfilter_policy_del.php b/interface/ispconfig/interface/mail/spamfilter_policy_del.php deleted file mode 100644 index 04d15e079..000000000 --- a/interface/ispconfig/interface/mail/spamfilter_policy_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/spamfilter_policy_edit.php b/interface/ispconfig/interface/mail/spamfilter_policy_edit.php deleted file mode 100644 index 795b31b15..000000000 --- a/interface/ispconfig/interface/mail/spamfilter_policy_edit.php +++ /dev/null @@ -1,95 +0,0 @@ -auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_spamfilter_policy')) { - $app->error($app->tform->wordbook["limit_spamfilter_policy_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_spamfilter_policy')) { - $app->error('Reseller: '.$app->tform->wordbook["limit_spamfilter_policy_txt"]); - } - } - - parent::onShowNew(); - } - - function onSubmit() { - global $app, $conf; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_spamfilter_policy FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($this->id == 0 && $client["limit_spamfilter_policy"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM spamfilter_policy WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_spamfilter_policy"]) { - $app->tform->errorMessage .= $app->tform->wordbook["limit_spamfilter_policy_txt"]."
    "; - } - unset($tmp); - } - } // end if user is not admin - - parent::onSubmit(); - } -} - -$app->tform_actions = new page_action; -$app->tform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/spamfilter_policy_list.php b/interface/ispconfig/interface/mail/spamfilter_policy_list.php deleted file mode 100644 index 3d97b60cb..000000000 --- a/interface/ispconfig/interface/mail/spamfilter_policy_list.php +++ /dev/null @@ -1,24 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses('listform_actions'); -//$app->listform_actions->SQLExtWhere = "wb = 'W'"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/spamfilter_users_del.php b/interface/ispconfig/interface/mail/spamfilter_users_del.php deleted file mode 100644 index 9bc5e3154..000000000 --- a/interface/ispconfig/interface/mail/spamfilter_users_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/spamfilter_users_edit.php b/interface/ispconfig/interface/mail/spamfilter_users_edit.php deleted file mode 100644 index 20ae7fe1c..000000000 --- a/interface/ispconfig/interface/mail/spamfilter_users_edit.php +++ /dev/null @@ -1,111 +0,0 @@ -auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_spamfilter_user')) { - $app->error($app->tform->wordbook["limit_spamfilter_user_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_spamfilter_user')) { - $app->error('Reseller: '.$app->tform->wordbook["limit_spamfilter_user_txt"]); - } - } - - parent::onShowNew(); - } - - function onBeforeUpdate() { - global $app, $conf; - - //* Check if the server has been changed - // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway - if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - $rec = $app->db->queryOneRecord("SELECT server_id from spamfilter_users WHERE id = ".$this->id); - if($rec['server_id'] != $this->dataRecord["server_id"]) { - //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The Server can not be changed.'); - $this->dataRecord["server_id"] = $rec['server_id']; - } - unset($rec); - } - } - -function onSubmit() { - global $app, $conf; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_spamfilter_user FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($this->id == 0 && $client["limit_spamfilter_user"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM spamfilter_users WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_spamfilter_user"]) { - $app->tform->errorMessage .= $app->tform->wordbook["limit_spamfilter_user_txt"]."
    "; - } - unset($tmp); - } - } // end if user is not admin - - parent::onSubmit(); - } -} - -$app->tform_actions = new page_action; -$app->tform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/spamfilter_users_list.php b/interface/ispconfig/interface/mail/spamfilter_users_list.php deleted file mode 100644 index 9d4ea2103..000000000 --- a/interface/ispconfig/interface/mail/spamfilter_users_list.php +++ /dev/null @@ -1,24 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses('listform_actions'); -//$app->listform_actions->SQLExtWhere = "wb = 'W'"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/spamfilter_whitelist_del.php b/interface/ispconfig/interface/mail/spamfilter_whitelist_del.php deleted file mode 100644 index b7e2e36ac..000000000 --- a/interface/ispconfig/interface/mail/spamfilter_whitelist_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/spamfilter_whitelist_edit.php b/interface/ispconfig/interface/mail/spamfilter_whitelist_edit.php deleted file mode 100644 index ddef3ae08..000000000 --- a/interface/ispconfig/interface/mail/spamfilter_whitelist_edit.php +++ /dev/null @@ -1,119 +0,0 @@ -auth->check_module_permissions('mail'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_spamfilter_wblist')) { - $app->error($app->tform->wordbook["limit_spamfilter_wblist_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_spamfilter_wblist')) { - $app->error('Reseller: '.$app->tform->wordbook["limit_spamfilter_wblist_txt"]); - } - } - - parent::onShowNew(); - } - - /* - function onBeforeUpdate() { - global $app, $conf; - - //* Check if the server has been changed - // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway - if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - $rec = $app->db->queryOneRecord("SELECT server_id from spamfilter_wblist WHERE id = ".$this->id); - if($rec['server_id'] != $this->dataRecord["server_id"]) { - //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The Server can not be changed.'); - $this->dataRecord["server_id"] = $rec['server_id']; - } - unset($rec); - } - } - */ - - function onSubmit() { - global $app, $conf; - - // Check the client limits, if user is not the admin - if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_spamfilter_wblist FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Check if the user may add another mailbox. - if($this->id == 0 && $client["limit_spamfilter_wblist"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(wblist_id) as number FROM spamfilter_wblist WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_spamfilter_wblist"]) { - $app->tform->errorMessage .= $app->tform->wordbook["limit_spamfilter_wblist_txt"]."
    "; - } - unset($tmp); - } - } // end if user is not admin - - // Select and set the server_id so it matches the server_id of the spa,filter_users record - $tmp = $app->db->queryOneRecord("SELECT server_id FROM spamfilter_users WHERE id = ".intval($this->dataRecord["rid"])); - $this->dataRecord["server_id"] = $tmp["server_id"]; - unset($tmp); - - - parent::onSubmit(); - } -} - -$app->tform_actions = new page_action; -$app->tform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/spamfilter_whitelist_list.php b/interface/ispconfig/interface/mail/spamfilter_whitelist_list.php deleted file mode 100644 index 5944ee07e..000000000 --- a/interface/ispconfig/interface/mail/spamfilter_whitelist_list.php +++ /dev/null @@ -1,24 +0,0 @@ -auth->check_module_permissions('mail'); - -$app->uses('listform_actions'); -$app->listform_actions->SQLExtWhere = "wb = 'W'"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/templates/mail_alias_edit.htm b/interface/ispconfig/interface/mail/templates/mail_alias_edit.htm deleted file mode 100644 index cfa724b7b..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_alias_edit.htm +++ /dev/null @@ -1,39 +0,0 @@ -

    -

    - -
    - -
    -
    -
    -

    * {tmpl_var name='email_txt'}

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

    {tmpl_var name='active_txt'}

    -
    - {tmpl_var name='active'} -
    -
    -
    - - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_alias_list.htm b/interface/ispconfig/interface/mail/templates/mail_alias_list.htm deleted file mode 100644 index 489e5af77..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_alias_list.htm +++ /dev/null @@ -1,57 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="active"}{tmpl_var name="source"}{tmpl_var name="destination"} - -
    - -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_aliasdomain_edit.htm b/interface/ispconfig/interface/mail/templates/mail_aliasdomain_edit.htm deleted file mode 100644 index 53fd3e331..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_aliasdomain_edit.htm +++ /dev/null @@ -1,37 +0,0 @@ -

    -

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

    {tmpl_var name='active_txt'}

    -
    - {tmpl_var name='active'} -
    -
    -
    - - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_aliasdomain_list.htm b/interface/ispconfig/interface/mail/templates/mail_aliasdomain_list.htm deleted file mode 100644 index 8761af083..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_aliasdomain_list.htm +++ /dev/null @@ -1,57 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="active"}{tmpl_var name="source"}{tmpl_var name="destination"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_blacklist_edit.htm b/interface/ispconfig/interface/mail/templates/mail_blacklist_edit.htm deleted file mode 100644 index e64fe2d5d..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_blacklist_edit.htm +++ /dev/null @@ -1,41 +0,0 @@ -

    -

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

    {tmpl_var name='active_txt'}

    -
    - {tmpl_var name='active'} -
    -
    -
    - - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_blacklist_list.htm b/interface/ispconfig/interface/mail/templates/mail_blacklist_list.htm deleted file mode 100644 index d2f37856a..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_blacklist_list.htm +++ /dev/null @@ -1,60 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="active"}{tmpl_var name="server_id"}{tmpl_var name="source"}{tmpl_var name="type"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_content_filter_edit.htm b/interface/ispconfig/interface/mail/templates/mail_content_filter_edit.htm deleted file mode 100644 index ffe844e8d..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_content_filter_edit.htm +++ /dev/null @@ -1,50 +0,0 @@ -

    -

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

    {tmpl_var name='active_txt'}

    -
    - {tmpl_var name='active'} -
    -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_content_filter_list.htm b/interface/ispconfig/interface/mail/templates/mail_content_filter_list.htm deleted file mode 100644 index 87150837d..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_content_filter_list.htm +++ /dev/null @@ -1,60 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="active"}{tmpl_var name="server_id"}{tmpl_var name="pattern"}{tmpl_var name="action"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_domain_catchall_edit.htm b/interface/ispconfig/interface/mail/templates/mail_domain_catchall_edit.htm deleted file mode 100644 index 6970fbaee..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_domain_catchall_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -

    -

    - -
    - -
    -
    -
    -

    {tmpl_var name='email_txt'}

    -
    - - -
    -
    -
    - - -
    -
    -

    {tmpl_var name='active_txt'}

    -
    - {tmpl_var name='active'} -
    -
    -
    - - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_domain_catchall_list.htm b/interface/ispconfig/interface/mail/templates/mail_domain_catchall_list.htm deleted file mode 100644 index 0ae6a3189..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_domain_catchall_list.htm +++ /dev/null @@ -1,57 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="active"}{tmpl_var name="source"}{tmpl_var name="destination"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_domain_edit.htm b/interface/ispconfig/interface/mail/templates/mail_domain_edit.htm deleted file mode 100644 index f0dd1a4cc..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_domain_edit.htm +++ /dev/null @@ -1,67 +0,0 @@ -

    -

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

    {tmpl_var name='active_txt'}

    -
    - {tmpl_var name='active'} -
    -
    -
    - - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_domain_list.htm b/interface/ispconfig/interface/mail/templates/mail_domain_list.htm deleted file mode 100644 index fabeaad0d..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_domain_list.htm +++ /dev/null @@ -1,57 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="active"}{tmpl_var name="server_id"}{tmpl_var name="domain"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_forward_edit.htm b/interface/ispconfig/interface/mail/templates/mail_forward_edit.htm deleted file mode 100644 index d64504f1c..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_forward_edit.htm +++ /dev/null @@ -1,37 +0,0 @@ -

    -

    - -
    - -
    -
    -
    -

    * {tmpl_var name='email_txt'}

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

    {tmpl_var name='active_txt'}

    -
    - {tmpl_var name='active'} -
    -
    -
    - - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_forward_list.htm b/interface/ispconfig/interface/mail/templates/mail_forward_list.htm deleted file mode 100644 index 833a433af..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_forward_list.htm +++ /dev/null @@ -1,57 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="active"}{tmpl_var name="source"}{tmpl_var name="destination"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_get_edit.htm b/interface/ispconfig/interface/mail/templates/mail_get_edit.htm deleted file mode 100644 index 2da485e38..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_get_edit.htm +++ /dev/null @@ -1,54 +0,0 @@ -

    -

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

    {tmpl_var name='source_delete_txt'}

    -
    - {tmpl_var name='source_delete'} -
    -
    -
    - - -
    -
    -

    {tmpl_var name='active_txt'}

    -
    - {tmpl_var name='active'} -
    -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_get_list.htm b/interface/ispconfig/interface/mail/templates/mail_get_list.htm deleted file mode 100644 index 924aa31d6..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_get_list.htm +++ /dev/null @@ -1,63 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="active"}{tmpl_var name="server_id"}{tmpl_var name="source_server"}{tmpl_var name="source_username"}{tmpl_var name="destination"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_relay_recipient_edit.htm b/interface/ispconfig/interface/mail/templates/mail_relay_recipient_edit.htm deleted file mode 100644 index 4d02075d4..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_relay_recipient_edit.htm +++ /dev/null @@ -1,35 +0,0 @@ -

    -

    - -
    - -
    -
    Relay recipient -
    - - -
    -
    - - -
    -
    -

    {tmpl_var name='active_txt'}

    -
    - {tmpl_var name='active'} -
    -
    -
    - - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_relay_recipient_list.htm b/interface/ispconfig/interface/mail/templates/mail_relay_recipient_list.htm deleted file mode 100644 index 072e9f887..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_relay_recipient_list.htm +++ /dev/null @@ -1,55 +0,0 @@ -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="active"}{tmpl_var name="server_id"}{tmpl_var name="source"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_transport_edit.htm b/interface/ispconfig/interface/mail/templates/mail_transport_edit.htm deleted file mode 100644 index 5f16db366..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_transport_edit.htm +++ /dev/null @@ -1,56 +0,0 @@ -

    -

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

    {tmpl_var name='mx_txt'}

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

    {tmpl_var name='active_txt'}

    -
    - {tmpl_var name='active'} -
    -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_transport_list.htm b/interface/ispconfig/interface/mail/templates/mail_transport_list.htm deleted file mode 100644 index ede0f2312..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_transport_list.htm +++ /dev/null @@ -1,63 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="active"}{tmpl_var name="server_id"}{tmpl_var name="domain"}{tmpl_var name="transport"}{tmpl_var name="sort_order"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_user_autoresponder_edit.htm b/interface/ispconfig/interface/mail/templates/mail_user_autoresponder_edit.htm deleted file mode 100644 index 594f2e416..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_user_autoresponder_edit.htm +++ /dev/null @@ -1,37 +0,0 @@ -

    -

    - -
    - -
    -
    -
    - - -
    -
    -

    {tmpl_var name='autoresponder_txt'}

    -
    -
    -  {tmpl_var name='autoresponder_active'}
    -
    - -

    - - {tmpl_var name='autoresponder_start_date'} now

    - - - {tmpl_var name='autoresponder_end_date'} -
    -
    -
    - - - -
    - - -
    -
    - -
    \ No newline at end of file diff --git a/interface/ispconfig/interface/mail/templates/mail_user_custom_rules_edit.htm b/interface/ispconfig/interface/mail/templates/mail_user_custom_rules_edit.htm deleted file mode 100644 index 0ca1b3c6e..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_user_custom_rules_edit.htm +++ /dev/null @@ -1,22 +0,0 @@ -

    -

    - -
    - -
    -
    -
    - - -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_user_filter_edit.htm b/interface/ispconfig/interface/mail/templates/mail_user_filter_edit.htm deleted file mode 100644 index 8a99287fc..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_user_filter_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -

    -

    - -
    - -
    -
    -
    - - -
    -
    - - - - -
    -
    - - - -
    -
    - - {tmpl_var name='active'} -
    -
    - - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_user_filter_list.htm b/interface/ispconfig/interface/mail/templates/mail_user_filter_list.htm deleted file mode 100644 index 22b3c23ac..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_user_filter_list.htm +++ /dev/null @@ -1,45 +0,0 @@ - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="rulename"} - -
    -
    -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_user_list.htm b/interface/ispconfig/interface/mail/templates/mail_user_list.htm deleted file mode 100644 index 254fd8c12..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_user_list.htm +++ /dev/null @@ -1,58 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="email"}{tmpl_var name="name"}{tmpl_var name="autoresponder"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_user_mailbox_edit.htm b/interface/ispconfig/interface/mail/templates/mail_user_mailbox_edit.htm deleted file mode 100644 index 80f142224..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_user_mailbox_edit.htm +++ /dev/null @@ -1,67 +0,0 @@ -

    -

    - -
    - -
    -
    -
    - -   {tmpl_var name='name_optional_txt'} -
    -
    -

    * {tmpl_var name='email_txt'}

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

    {tmpl_var name='password_strength_txt'}

    -
    -

     

    -
    -
    - -

     MB

    -
    -
    - - -
    -
    -

    {tmpl_var name='postfix_txt'}

    -
    - {tmpl_var name='postfix'} -
    -
    -
    -

    {tmpl_var name='disableimap_txt'}

    -
    - {tmpl_var name='disableimap'} -
    -
    -
    -

    {tmpl_var name='disablepop3_txt'}

    -
    - {tmpl_var name='disablepop3'} -
    -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_user_mailfilter_edit.htm b/interface/ispconfig/interface/mail/templates/mail_user_mailfilter_edit.htm deleted file mode 100644 index 12a6f627b..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_user_mailfilter_edit.htm +++ /dev/null @@ -1,26 +0,0 @@ -

    -

    - -
    - -
    -
    -
    -

    {tmpl_var name='move_junk_txt'}

    -
    - {tmpl_var name='move_junk'} -
    -
    -
    - - {tmpl_var name='filter_records'} - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_user_stats_list.htm b/interface/ispconfig/interface/mail/templates/mail_user_stats_list.htm deleted file mode 100644 index 47e4b07b6..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_user_stats_list.htm +++ /dev/null @@ -1,52 +0,0 @@ -

    -

    - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="email"}{tmpl_var name="this_month"} MB{tmpl_var name="last_month"} MB{tmpl_var name="this_year"} MB{tmpl_var name="last_year"} MB -
    -
    -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_whitelist_edit.htm b/interface/ispconfig/interface/mail/templates/mail_whitelist_edit.htm deleted file mode 100644 index d8e6b8b53..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_whitelist_edit.htm +++ /dev/null @@ -1,41 +0,0 @@ -

    -

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

    {tmpl_var name='active_txt'}

    -
    - {tmpl_var name='active'} -
    -
    -
    - - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/mail_whitelist_list.htm b/interface/ispconfig/interface/mail/templates/mail_whitelist_list.htm deleted file mode 100644 index ad8a69a76..000000000 --- a/interface/ispconfig/interface/mail/templates/mail_whitelist_list.htm +++ /dev/null @@ -1,60 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="active"}{tmpl_var name="server_id"}{tmpl_var name="source"}{tmpl_var name="type"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/spamfilter_blacklist_edit.htm b/interface/ispconfig/interface/mail/templates/spamfilter_blacklist_edit.htm deleted file mode 100644 index 36058d9a4..000000000 --- a/interface/ispconfig/interface/mail/templates/spamfilter_blacklist_edit.htm +++ /dev/null @@ -1,49 +0,0 @@ -

    -

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

    {tmpl_var name='active_txt'}

    -
    - {tmpl_var name='active'} -
    -
    -
    - - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/spamfilter_blacklist_list.htm b/interface/ispconfig/interface/mail/templates/spamfilter_blacklist_list.htm deleted file mode 100644 index 5594044c4..000000000 --- a/interface/ispconfig/interface/mail/templates/spamfilter_blacklist_list.htm +++ /dev/null @@ -1,63 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="active"}{tmpl_var name="server_id"}{tmpl_var name="priority"}{tmpl_var name="rid"}{tmpl_var name="email"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/spamfilter_config_getmail_edit.htm b/interface/ispconfig/interface/mail/templates/spamfilter_config_getmail_edit.htm deleted file mode 100644 index 1bdb88675..000000000 --- a/interface/ispconfig/interface/mail/templates/spamfilter_config_getmail_edit.htm +++ /dev/null @@ -1,22 +0,0 @@ -

    -

    - -
    - -
    -
    - - - - -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/spamfilter_config_list.htm b/interface/ispconfig/interface/mail/templates/spamfilter_config_list.htm deleted file mode 100644 index 0a6680a6f..000000000 --- a/interface/ispconfig/interface/mail/templates/spamfilter_config_list.htm +++ /dev/null @@ -1,51 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="server_name"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/spamfilter_config_mail_edit.htm b/interface/ispconfig/interface/mail/templates/spamfilter_config_mail_edit.htm deleted file mode 100644 index 3526589ab..000000000 --- a/interface/ispconfig/interface/mail/templates/spamfilter_config_mail_edit.htm +++ /dev/null @@ -1,66 +0,0 @@ -

    -

    - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/spamfilter_config_server_edit.htm b/interface/ispconfig/interface/mail/templates/spamfilter_config_server_edit.htm deleted file mode 100644 index ac45009fd..000000000 --- a/interface/ispconfig/interface/mail/templates/spamfilter_config_server_edit.htm +++ /dev/null @@ -1,38 +0,0 @@ -

    -

    - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/spamfilter_other_edit.htm b/interface/ispconfig/interface/mail/templates/spamfilter_other_edit.htm deleted file mode 100644 index 404067198..000000000 --- a/interface/ispconfig/interface/mail/templates/spamfilter_other_edit.htm +++ /dev/null @@ -1,80 +0,0 @@ -

    -

    - -
    - -
    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/spamfilter_policy_edit.htm b/interface/ispconfig/interface/mail/templates/spamfilter_policy_edit.htm deleted file mode 100644 index b725df5fb..000000000 --- a/interface/ispconfig/interface/mail/templates/spamfilter_policy_edit.htm +++ /dev/null @@ -1,64 +0,0 @@ -

    -

    - -
    - -
    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/spamfilter_policy_list.htm b/interface/ispconfig/interface/mail/templates/spamfilter_policy_list.htm deleted file mode 100644 index 276dd537b..000000000 --- a/interface/ispconfig/interface/mail/templates/spamfilter_policy_list.htm +++ /dev/null @@ -1,63 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="policy_name"}{tmpl_var name="virus_lover"}{tmpl_var name="spam_lover"}{tmpl_var name="banned_files_lover"}{tmpl_var name="bad_header_lover"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/spamfilter_quarantine_edit.htm b/interface/ispconfig/interface/mail/templates/spamfilter_quarantine_edit.htm deleted file mode 100644 index de33b33c8..000000000 --- a/interface/ispconfig/interface/mail/templates/spamfilter_quarantine_edit.htm +++ /dev/null @@ -1,44 +0,0 @@ -

    -

    - -
    - -
    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    - -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/spamfilter_taglevel_edit.htm b/interface/ispconfig/interface/mail/templates/spamfilter_taglevel_edit.htm deleted file mode 100644 index aef98d3d2..000000000 --- a/interface/ispconfig/interface/mail/templates/spamfilter_taglevel_edit.htm +++ /dev/null @@ -1,52 +0,0 @@ -

    -

    - -
    - -
    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/spamfilter_users_edit.htm b/interface/ispconfig/interface/mail/templates/spamfilter_users_edit.htm deleted file mode 100644 index 01d569922..000000000 --- a/interface/ispconfig/interface/mail/templates/spamfilter_users_edit.htm +++ /dev/null @@ -1,50 +0,0 @@ -

    -

    - -
    - -
    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/spamfilter_users_list.htm b/interface/ispconfig/interface/mail/templates/spamfilter_users_list.htm deleted file mode 100644 index f57432706..000000000 --- a/interface/ispconfig/interface/mail/templates/spamfilter_users_list.htm +++ /dev/null @@ -1,63 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="local"}{tmpl_var name="server_id"}{tmpl_var name="priority"}{tmpl_var name="policy_id"}{tmpl_var name="fullname"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/spamfilter_whitelist_edit.htm b/interface/ispconfig/interface/mail/templates/spamfilter_whitelist_edit.htm deleted file mode 100644 index 3ef8f5fb2..000000000 --- a/interface/ispconfig/interface/mail/templates/spamfilter_whitelist_edit.htm +++ /dev/null @@ -1,49 +0,0 @@ -

    -

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

    {tmpl_var name='active_txt'}

    -
    - {tmpl_var name='active'} -
    -
    -
    - - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/templates/spamfilter_whitelist_list.htm b/interface/ispconfig/interface/mail/templates/spamfilter_whitelist_list.htm deleted file mode 100644 index e4c2b20bd..000000000 --- a/interface/ispconfig/interface/mail/templates/spamfilter_whitelist_list.htm +++ /dev/null @@ -1,63 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="active"}{tmpl_var name="server_id"}{tmpl_var name="priority"}{tmpl_var name="rid"}{tmpl_var name="email"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/mail/webmailer.php b/interface/ispconfig/interface/mail/webmailer.php deleted file mode 100644 index ee2ea3813..000000000 --- a/interface/ispconfig/interface/mail/webmailer.php +++ /dev/null @@ -1,68 +0,0 @@ -auth->check_module_permissions('mail'); - -/* get the id of the mail (must be int!) */ -if (!isset($_GET['id'])){ - die ("No E-Mail selected!"); -} -$emailId = intval($_GET['id']); - -/* - * Get the data to connect to the database - */ -$dbData = $app->db->queryOneRecord("SELECT server_id FROM mail_user WHERE mailuser_id = " . $emailId); -$serverId = intval($dbData['server_id']); -if ($serverId == 0){ - die ("No E-Mail - Server found!"); -} - -$serverData = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = ".$serverId); - -$app->uses('getconf'); -$global_config = $app->getconf->get_global_config('mail'); - -if($global_config['webmail_url'] != '') { - header('Location:' . $global_config['webmail_url']); -} else { - -/* - * We only redirect to the login-form, so there is no need, to check any rights - */ - isset($_SERVER['HTTPS'])? $http = 'https' : $http = 'http'; - header('Location:' . $http . '://' . $serverData['server_name'] . '/webmail'); -} -exit; -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/monitor/datalog_del.php b/interface/ispconfig/interface/monitor/datalog_del.php deleted file mode 100644 index ab52f7b8a..000000000 --- a/interface/ispconfig/interface/monitor/datalog_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('monitor'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/monitor/datalog_list.php b/interface/ispconfig/interface/monitor/datalog_list.php deleted file mode 100644 index 2a6bf4257..000000000 --- a/interface/ispconfig/interface/monitor/datalog_list.php +++ /dev/null @@ -1,64 +0,0 @@ -auth->check_module_permissions('monitor'); - -$app->uses('listform_actions'); - -$servers = $app->db->queryAllRecords("SELECT server_id, updated FROM server"); - -$sql = '('; -foreach($servers as $sv) { - $sql .= " (datalog_id > ".$sv['updated']." AND server_id = ".$sv['server_id'].") OR "; -} -$sql = substr($sql,0,-4); -$sql .= ')'; - -$app->listform_actions->SQLExtWhere = $sql; -$app->listform_actions->SQLOrderBy = "ORDER BY tstamp DESC, datalog_id DESC"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/monitor/lib/admin.conf.php b/interface/ispconfig/interface/monitor/lib/admin.conf.php deleted file mode 100644 index a45d44034..000000000 --- a/interface/ispconfig/interface/monitor/lib/admin.conf.php +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/monitor/lib/lang/bg.lng b/interface/ispconfig/interface/monitor/lib/lang/bg.lng deleted file mode 100644 index 5512e7e07..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/bg.lng +++ /dev/null @@ -1,138 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/bg_datalog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/bg_datalog_list.lng deleted file mode 100644 index 8ad63ffd4..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/bg_datalog_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/bg_syslog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/bg_syslog_list.lng deleted file mode 100644 index 00da5abc7..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/bg_syslog_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/br.lng b/interface/ispconfig/interface/monitor/lib/lang/br.lng deleted file mode 100644 index c0b781a89..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/br.lng +++ /dev/null @@ -1,138 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/br_datalog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/br_datalog_list.lng deleted file mode 100644 index 04fdf2415..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/br_datalog_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/br_syslog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/br_syslog_list.lng deleted file mode 100644 index 23f3c6d5d..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/br_syslog_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/de.lng b/interface/ispconfig/interface/monitor/lib/lang/de.lng deleted file mode 100644 index b600d2806..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/de.lng +++ /dev/null @@ -1,138 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/de_datalog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/de_datalog_list.lng deleted file mode 100644 index 0b6bf9a4b..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/de_datalog_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/de_syslog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/de_syslog_list.lng deleted file mode 100644 index bd879a006..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/de_syslog_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/en.lng b/interface/ispconfig/interface/monitor/lib/lang/en.lng deleted file mode 100644 index a28cf0924..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/en.lng +++ /dev/null @@ -1,138 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/en_datalog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/en_datalog_list.lng deleted file mode 100644 index 1cb7f590e..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/en_datalog_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/monitor/lib/lang/en_syslog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/en_syslog_list.lng deleted file mode 100644 index 96c1322bd..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/en_syslog_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/monitor/lib/lang/es.lng b/interface/ispconfig/interface/monitor/lib/lang/es.lng deleted file mode 100644 index 63363bcc8..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/es.lng +++ /dev/null @@ -1,138 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/es_datalog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/es_datalog_list.lng deleted file mode 100644 index 38f384f58..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/es_datalog_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/es_syslog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/es_syslog_list.lng deleted file mode 100644 index 17f89f201..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/es_syslog_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/fi.lng b/interface/ispconfig/interface/monitor/lib/lang/fi.lng deleted file mode 100644 index 6b3978da0..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/fi.lng +++ /dev/null @@ -1,138 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/fi_datalog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/fi_datalog_list.lng deleted file mode 100644 index eb2658261..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/fi_datalog_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/fi_syslog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/fi_syslog_list.lng deleted file mode 100644 index 54aaa4e30..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/fi_syslog_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/fr.lng b/interface/ispconfig/interface/monitor/lib/lang/fr.lng deleted file mode 100644 index a322c4f6e..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/fr.lng +++ /dev/null @@ -1,138 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/fr_datalog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/fr_datalog_list.lng deleted file mode 100644 index e47b9f09e..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/fr_datalog_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/fr_syslog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/fr_syslog_list.lng deleted file mode 100644 index 00da5abc7..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/fr_syslog_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/hu.lng b/interface/ispconfig/interface/monitor/lib/lang/hu.lng deleted file mode 100644 index 8135d99c5..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/hu.lng +++ /dev/null @@ -1,138 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/hu_datalog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/hu_datalog_list.lng deleted file mode 100644 index a88ef9214..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/hu_datalog_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/hu_syslog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/hu_syslog_list.lng deleted file mode 100644 index d306d66be..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/hu_syslog_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/it.lng b/interface/ispconfig/interface/monitor/lib/lang/it.lng deleted file mode 100644 index a898c7dbb..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/it.lng +++ /dev/null @@ -1,138 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/it_datalog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/it_datalog_list.lng deleted file mode 100644 index 740dff161..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/it_datalog_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/it_syslog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/it_syslog_list.lng deleted file mode 100644 index 3b372ec0f..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/it_syslog_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/ja.lng b/interface/ispconfig/interface/monitor/lib/lang/ja.lng deleted file mode 100644 index b08f3b258..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/ja.lng +++ /dev/null @@ -1,138 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/ja_datalog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/ja_datalog_list.lng deleted file mode 100644 index c1f136dae..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/ja_datalog_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/ja_syslog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/ja_syslog_list.lng deleted file mode 100644 index 598b8d451..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/ja_syslog_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/nl.lng b/interface/ispconfig/interface/monitor/lib/lang/nl.lng deleted file mode 100644 index 331557268..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/nl.lng +++ /dev/null @@ -1,138 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/nl_datalog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/nl_datalog_list.lng deleted file mode 100644 index 87e01c2a2..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/nl_datalog_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/nl_syslog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/nl_syslog_list.lng deleted file mode 100644 index 90a685f68..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/nl_syslog_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/pl.lng b/interface/ispconfig/interface/monitor/lib/lang/pl.lng deleted file mode 100644 index 8ffd29831..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/pl.lng +++ /dev/null @@ -1,138 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/pl_datalog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/pl_datalog_list.lng deleted file mode 100644 index 398ca51ed..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/pl_datalog_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/pl_syslog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/pl_syslog_list.lng deleted file mode 100644 index 125494bf8..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/pl_syslog_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/pt.lng b/interface/ispconfig/interface/monitor/lib/lang/pt.lng deleted file mode 100644 index 6720285f4..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/pt.lng +++ /dev/null @@ -1,139 +0,0 @@ - - diff --git a/interface/ispconfig/interface/monitor/lib/lang/pt_datalog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/pt_datalog_list.lng deleted file mode 100644 index 655e1e3f5..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/pt_datalog_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/monitor/lib/lang/pt_syslog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/pt_syslog_list.lng deleted file mode 100644 index f8ff04ce0..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/pt_syslog_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/interface/ispconfig/interface/monitor/lib/lang/ro.lng b/interface/ispconfig/interface/monitor/lib/lang/ro.lng deleted file mode 100644 index a28cf0924..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/ro.lng +++ /dev/null @@ -1,138 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/ro_datalog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/ro_datalog_list.lng deleted file mode 100644 index 35c79acbb..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/ro_datalog_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/ro_syslog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/ro_syslog_list.lng deleted file mode 100644 index 572095d8d..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/ro_syslog_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/ru.lng b/interface/ispconfig/interface/monitor/lib/lang/ru.lng deleted file mode 100644 index a4eb13148..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/ru.lng +++ /dev/null @@ -1,139 +0,0 @@ - - diff --git a/interface/ispconfig/interface/monitor/lib/lang/ru_datalog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/ru_datalog_list.lng deleted file mode 100644 index 1ad3c88e9..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/ru_datalog_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/monitor/lib/lang/ru_syslog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/ru_syslog_list.lng deleted file mode 100644 index e940f1aaf..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/ru_syslog_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/se.lng b/interface/ispconfig/interface/monitor/lib/lang/se.lng deleted file mode 100644 index 499f62cb5..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/se.lng +++ /dev/null @@ -1,138 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/se_datalog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/se_datalog_list.lng deleted file mode 100644 index 8ad63ffd4..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/se_datalog_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/se_syslog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/se_syslog_list.lng deleted file mode 100644 index 00da5abc7..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/se_syslog_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/sk.lng b/interface/ispconfig/interface/monitor/lib/lang/sk.lng deleted file mode 100644 index 4f84e6c38..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/sk.lng +++ /dev/null @@ -1,138 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/sk_datalog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/sk_datalog_list.lng deleted file mode 100644 index 98997242f..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/sk_datalog_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/sk_syslog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/sk_syslog_list.lng deleted file mode 100644 index 6a28f3854..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/sk_syslog_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/tr.lng b/interface/ispconfig/interface/monitor/lib/lang/tr.lng deleted file mode 100644 index 3a375a233..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/tr.lng +++ /dev/null @@ -1,138 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/tr_datalog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/tr_datalog_list.lng deleted file mode 100644 index 8752c6ba9..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/tr_datalog_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/lang/tr_syslog_list.lng b/interface/ispconfig/interface/monitor/lib/lang/tr_syslog_list.lng deleted file mode 100644 index 32346de9f..000000000 --- a/interface/ispconfig/interface/monitor/lib/lang/tr_syslog_list.lng +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/monitor/lib/module.conf.php b/interface/ispconfig/interface/monitor/lib/module.conf.php deleted file mode 100644 index 5161ba834..000000000 --- a/interface/ispconfig/interface/monitor/lib/module.conf.php +++ /dev/null @@ -1,160 +0,0 @@ - "Show Overview", - 'target' => 'content', - 'link' => 'monitor/show_sys_state.php?state=system'); - -$items[] = array( 'title' => "Show System-Log", - 'target' => 'content', - 'link' => 'monitor/log_list.php'); - -$items[] = array( 'title' => 'Show Jobqueue', - 'target' => 'content', - 'link' => 'monitor/datalog_list.php'); - -$module["nav"][] = array( 'title' => 'System State (All Servers)', - 'open' => 1, - 'items' => $items); - - -/* - We need all the available servers on the left navigation. - So fetch them from the database and add then to the navigation as dropdown-list -*/ - -$servers = $app->db->queryAllRecords("SELECT server_id, server_name FROM server order by server_name"); - -$dropDown = ""; - -/* - Now add them as dropdown to the navigation - */ -unset($items); -$items[] = array( 'title' => $dropDown, - 'target' => '', // no action! - 'link' => ''); // no action! - -$module["nav"][] = array( 'title' => 'Server to Monitor', - 'open' => 1, - 'items' => $items); - -/* - The first Server at the list is the server first selected - */ -$_SESSION['monitor']['server_id'] = $servers[0]['server_id']; -$_SESSION['monitor']['server_name'] = $servers[0]['server_name']; - -/* - * Clear and set the Navigation-Items - */ -unset($items); - -$items[] = array( 'title' => "Show CPU info", - 'target' => 'content', - 'link' => 'monitor/show_data.php?type=cpu_info'); - -$module["nav"][] = array( 'title' => 'Hardware-Information', - 'open' => 1, - 'items' => $items); - -/* - * Clear and set the Navigation-Items - */ -unset($items); -$items[] = array( 'title' => "Show Overview", - 'target' => 'content', - 'link' => 'monitor/show_sys_state.php?state=server'); - -$items[] = array( 'title' => "Show Update State", - 'target' => 'content', - 'link' => 'monitor/show_data.php?type=system_update'); - -$items[] = array( 'title' => "Show RAID state", - 'target' => 'content', - 'link' => 'monitor/show_data.php?type=raid_state'); - -$items[] = array( 'title' => "Show Server load", - 'target' => 'content', - 'link' => 'monitor/show_data.php?type=server_load'); - -$items[] = array( 'title' => "Show Disk usage", - 'target' => 'content', - 'link' => 'monitor/show_data.php?type=disk_usage'); - -$items[] = array( 'title' => "Show Memory usage", - 'target' => 'content', - 'link' => 'monitor/show_data.php?type=mem_usage'); - -$items[] = array( 'title' => "Show Services", - 'target' => 'content', - 'link' => 'monitor/show_data.php?type=services'); - - -$module["nav"][] = array( 'title' => 'Server State', - 'open' => 1, - 'items' => $items); - -/* - * Clear and set the Navigation-Items - */ -unset($items); - -$items[] = array( 'title' => "Show Mail-Queue", - 'target' => 'content', - 'link' => 'monitor/show_data.php?type=mailq'); - -$items[] = array( 'title' => "Show Mail-Log", - 'target' => 'content', - 'link' => 'monitor/show_log.php?log=log_mail'); - -$items[] = array( 'title' => "Show Mail warn-Log", - 'target' => 'content', - 'link' => 'monitor/show_log.php?log=log_mail_warn'); - -$items[] = array( 'title' => "Show Mail err-Log", - 'target' => 'content', - 'link' => 'monitor/show_log.php?log=log_mail_err'); - -$items[] = array( 'title' => "Show System-Log", - 'target' => 'content', - 'link' => 'monitor/show_log.php?log=log_messages'); - -$items[] = array( 'title' => "Show ISPC Cron-Log", - 'target' => 'content', - 'link' => 'monitor/show_log.php?log=log_ispc_cron'); - -$items[] = array( 'title' => "Show Freshclam-Log", - 'target' => 'content', - 'link' => 'monitor/show_log.php?log=log_freshclam'); - -$items[] = array( 'title' => "Show Clamav-Log", - 'target' => 'content', - 'link' => 'monitor/show_log.php?log=log_clamav'); - -$items[] = array( 'title' => "Show RKHunter-Log", - 'target' => 'content', - 'link' => 'monitor/show_data.php?type=rkhunter'); - -$items[] = array( 'title' => "Show fail2ban-Log", - 'target' => 'content', - 'link' => 'monitor/show_data.php?type=fail2ban'); - -$module["nav"][] = array( 'title' => 'Logfiles', - 'open' => 1, - 'items' => $items); -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/monitor/list/datalog.list.php b/interface/ispconfig/interface/monitor/list/datalog.list.php deleted file mode 100644 index 330e603f0..000000000 --- a/interface/ispconfig/interface/monitor/list/datalog.list.php +++ /dev/null @@ -1,91 +0,0 @@ - "tstamp", - 'datatype' => "DATETIME", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => ""); - - -$liste['item'][] = array( 'field' => 'server_id', - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'op' => 'like', - 'prefix' => '%', - 'suffix' => '%', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => '', - 'value' => ''); - -$liste["item"][] = array( 'field' => "action", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('i' => "Insert",'u' => "Update",'d' => "Delete")); - - -$liste["item"][] = array( 'field' => "dbtable", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/monitor/list/log.list.php b/interface/ispconfig/interface/monitor/list/log.list.php deleted file mode 100644 index 12dad4a89..000000000 --- a/interface/ispconfig/interface/monitor/list/log.list.php +++ /dev/null @@ -1,90 +0,0 @@ - "tstamp", - 'datatype' => "DATETIME", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => ""); - - -$liste['item'][] = array( 'field' => 'server_id', - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'op' => 'like', - 'prefix' => '%', - 'suffix' => '%', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => '', - 'value' => ''); - -$liste["item"][] = array( 'field' => "loglevel", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('0' => "Debug",'1' => "Warning",'2' => "Error")); - - -$liste["item"][] = array( 'field' => "message", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/monitor/log_del.php b/interface/ispconfig/interface/monitor/log_del.php deleted file mode 100644 index 1c33a21a2..000000000 --- a/interface/ispconfig/interface/monitor/log_del.php +++ /dev/null @@ -1,44 +0,0 @@ -auth->check_module_permissions('monitor'); - -$syslog_id = intval($_GET['id']); -$app->db->query("UPDATE sys_log SET loglevel = 0 WHERE syslog_id = '$syslog_id'"); - -header('Location: log_list.php'); -exit; - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/monitor/log_list.php b/interface/ispconfig/interface/monitor/log_list.php deleted file mode 100644 index c0587c06a..000000000 --- a/interface/ispconfig/interface/monitor/log_list.php +++ /dev/null @@ -1,55 +0,0 @@ -auth->check_module_permissions('monitor'); - -$app->uses('listform_actions'); -//$app->listform_actions->SQLExtWhere = "wb = 'W'"; - -$app->listform_actions->SQLOrderBy = "ORDER BY tstamp DESC, syslog_id DESC"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/monitor/show_data.php b/interface/ispconfig/interface/monitor/show_data.php deleted file mode 100644 index cd3f00dd5..000000000 --- a/interface/ispconfig/interface/monitor/show_data.php +++ /dev/null @@ -1,139 +0,0 @@ -auth->check_module_permissions('monitor'); - - -/* Get the dataType to show */ -$dataType = $_GET["type"]; - -/* Get some translations */ -$monTransDate = $app->lng("monitor_settings_datafromdate_txt"); -$monTransSrv = $app->lng("monitor_settings_server_txt"); - - -$output = ''; - -switch($dataType) { - case 'server_load': - $template = 'templates/show_data.htm'; - $output .= showServerLoad(); - $time = getDataTime('server_load'); - $title = $app->lng("Server Load").' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')'; - $description = ''; - break; - case 'disk_usage': - $template = 'templates/show_data.htm'; - $output .= showDiskUsage(); - $time = getDataTime('disk_usage'); - $title = $app->lng("Disk usage").' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')'; - $description = ''; - break; - case 'mem_usage': - $template = 'templates/show_data.htm'; - $output .= showMemUsage(); - $time = getDataTime('mem_usage'); - $title = $app->lng("Memory usage").' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')'; - $description = ''; - break; - case 'cpu_info': - $template = 'templates/show_data.htm'; - $output .= showCpuInfo(); - $time = getDataTime('cpu_info'); - $title = $app->lng("monitor_title_cpuinfo_txt").' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')'; - $description = ''; - break; - case 'services': - $template = 'templates/show_data.htm'; - $output .= showServices(); - $time = getDataTime('services'); - $title = $app->lng("Status of services").' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')'; - $description = ''; - break; - case 'system_update': - $template = 'templates/show_data.htm'; - $output .= showSystemUpdate(); - $time = getDataTime('system_update'); - $title = $app->lng("monitor_title_updatestate_txt"). ' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')'; - $description = ''; - break; - case 'mailq': - $template = 'templates/show_data.htm'; - $output .= showMailq(); - $time = getDataTime('mailq'); - $title = $app->lng("monitor_title_mailq_txt"). ' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')'; - $description = ''; - break; - case 'raid_state': - $template = 'templates/show_data.htm'; - $output .= showRaidState(); - $time = getDataTime('raid_state'); - $title = $app->lng("monitor_title_raidstate_txt"). ' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')'; - $description = ''; - break; - case 'rkhunter': - $template = 'templates/show_data.htm'; - $output .= showRKHunter(); - $time = getDataTime('rkhunter'); - $title = $app->lng("monitor_title_rkhunterlog_txt"). ' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')'; - $description = ''; - break; - case 'fail2ban': - $template = 'templates/show_data.htm'; - $output .= showFail2ban(); - $time = getDataTime('log_fail2ban'); - $title = $app->lng("monitor_title_fail2ban_txt") . ' (' . $monTransSrv . ' : ' . $_SESSION['monitor']['server_name'] . ')'; - $description = ''; - break; - default: - $template = ''; - break; -} - - -// Loading the template -$app->uses('tpl'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl', $template); - -$app->tpl->setVar("output", $output); -$app->tpl->setVar("list_head_txt", $title); -$app->tpl->setVar("list_desc_txt", $description); -$app->tpl->setVar("time", $time); -$app->tpl->setVar("monTransDate", $monTransDate); - -$app->tpl_defaults(); -$app->tpl->pparse(); -?> diff --git a/interface/ispconfig/interface/monitor/show_log.php b/interface/ispconfig/interface/monitor/show_log.php deleted file mode 100644 index d64eedce1..000000000 --- a/interface/ispconfig/interface/monitor/show_log.php +++ /dev/null @@ -1,143 +0,0 @@ -auth->check_module_permissions('monitor'); - -// Loading the template -$app->uses('tpl'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl','templates/show_log.htm'); - -// Importing the GET values -$refresh = (isset($_GET["refresh"]))?intval($_GET["refresh"]):0; -$logParam = $_GET["log"]; - -/* Get some translations */ -$monTransDate = $app->lng("monitor_settings_datafromdate_txt"); -$monTransSrv = $app->lng("monitor_settings_server_txt"); -$monTransRefreshsq = $app->lng("monitor_settings_refreshsq_txt"); - -/* - Setting the db-type and the caption - */ -switch($logParam) { - case 'log_mail': - $logId = 'log_mail'; - $title = $app->lng("monitor_logs_mail_txt").' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')'; - $description = ''; - break; - case 'log_mail_warn': - $logId = 'log_mail_warn'; - $title = $app->lng("monitor_logs_mailwarn_txt").' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')'; - $description = ''; - break; - case 'log_mail_err': - $logId = 'log_mail_err'; - $title = $app->lng("monitor_logs_mailerr_txt").' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')'; - $description = ''; - break; - case 'log_messages': - $logId = 'log_messages'; - $title = $app->lng("monitor_logs_messages_txt").' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')'; - $description = ''; - break; - case 'log_ispc_cron': - $logId = 'log_ispc_cron'; - $title = $app->lng("monitor_logs_ispccron_txt").' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')'; - $description = ''; - break; - case 'log_freshclam': - $logId = 'log_freshclam'; - $title = $app->lng("monitor_logs_freshclam_txt").' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')'; - $description = ''; - break; - case 'log_clamav': - $logId = 'log_clamav'; - $title = $app->lng("monitor_logs_clamav_txt").' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')'; - $description = ''; - break; - case 'log_ispconfig': - $logId = 'log_ispconfig'; - $title = $app->lng("monitor_logs_ispc_txt").' ('. $monTransSrv .' : ' . $_SESSION['monitor']['server_name'] . ')'; - $description = ''; - break; - default: - $logId = '???'; - $title = '???'; - $description = ''; - break; -} - - -/* - Creating the array with the refresh intervals - Attention: the core-moule ist triggered every 5 minutes, - so reload every 2 minutes is impossible! -*/ -$refresh_values = array('0' => '- '.$app->lng("No Refresh").' -','5' => '5 '.$app->lng("minutes"),'10' => '10 '.$app->lng("minutes"),'15' => '15 '.$app->lng("minutes"),'30' => '30 '.$app->lng("minutes"),'60' => '60 '.$app->lng("minutes")); -$tmp = ''; -foreach($refresh_values as $key => $val) { - if($key == $refresh) { - $tmp .= ""; - } else { - $tmp .= ""; - } -} -$app->tpl->setVar("refresh",$tmp); - - -/* fetch the Data from the DB */ -$record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = '" . $app->db->quote($logId) . "' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc"); - -if(isset($record['data'])) { - $data = unserialize($record['data']); - - $logData = nl2br($data); - - $app->tpl->setVar("log_data", $logData); -} else { - $app->tpl->setVar("log_data", $app->lng("no_logdata_txt")); -} - -$app->tpl->setVar("title", $title); -$app->tpl->setVar("log_id",$logId); -$app->tpl->setVar("description", $description); -$app->tpl->setVar("time", getDataTime($logId)); -$app->tpl->setVar("monTransDate", $monTransDate); -$app->tpl->setVar("monTransRefreshsq", $monTransRefreshsq); - -$app->tpl_defaults(); -$app->tpl->pparse(); -?> diff --git a/interface/ispconfig/interface/monitor/show_sys_state.php b/interface/ispconfig/interface/monitor/show_sys_state.php deleted file mode 100644 index 75353ffad..000000000 --- a/interface/ispconfig/interface/monitor/show_sys_state.php +++ /dev/null @@ -1,508 +0,0 @@ -auth->check_module_permissions('monitor'); - -/* Change the Server if needed */ -if (isset($_GET['server'])){ - $server = explode('|', $_GET['server'], 2); - $_SESSION['monitor']['server_id'] = $server[0]; - $_SESSION['monitor']['server_name'] = $server[1]; -} - -/* - * Loading the template - */ -$app->uses('tpl'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl','templates/show_sys_state.htm'); - -/* Get some translations */ -$monTransRefreshsq = $app->lng("monitor_settings_refreshsq_txt"); - -/* - * setting the content - */ -if ($_GET['state'] == 'server') -{ - $output = _getServerState($_SESSION['monitor']['server_id'], $_SESSION['monitor']['server_name'], true); - $title = $app->lng("monitor_general_serverstate_txt"); - $stateType = 'server'; -} -else -{ - $output = _getSysState(); - $title = $app->lng("monitor_general_systemstate_txt"); - $stateType = 'system'; -} - -$app->tpl->setVar("state_data",$output); -$app->tpl->setVar("state_type",$stateType); -$app->tpl->setVar("list_head_txt",$title); -$app->tpl->setVar("list_desc_txt",$description); -$app->tpl->setVar("monTransRefreshsq", $monTransRefreshsq); - -/* - Creating the array with the refresh intervals - Attention: the core-module ist triggered every 5 minutes, - so reload every 2 minutes is impossible! -*/ -$refresh = (isset($_GET["refresh"]))?intval($_GET["refresh"]):0; - -$refresh_values = array('0' => '- '.$app->lng("No Refresh").' -','5' => '5 '.$app->lng("minutes"),'10' => '10 '.$app->lng("minutes"),'15' => '15 '.$app->lng("minutes"),'30' => '30 '.$app->lng("minutes"),'60' => '60 '.$app->lng("minutes")); -$tmp = ''; -foreach($refresh_values as $key => $val) { - if($key == $refresh) { - $tmp .= ""; - } else { - $tmp .= ""; - } -} -$app->tpl->setVar("refresh",$tmp); - -/* - * doing the output - */ -$app->tpl_defaults(); -$app->tpl->pparse(); - - -function _getSysState(){ - global $app; - - /* - * Get all Servers and calculate the state of them - */ - $html = ''; - - $servers = $app->db->queryAllRecords("SELECT server_id, server_name FROM server order by server_name"); - foreach ($servers as $server) - { - $html .= _getServerState($server['server_id'], $server['server_name'], false); - } - - return $html; -} - -/* - * Calculates the State of ONE Server - */ -function _getServerState($serverId, $serverName, $showAll) -{ - global $app; - - /* The State of the server */ - $serverState = 'ok'; - - /** The messages */ - $messages = array(); - - /** The Result of the function */ - $res = ''; - - /* - * get all monitoring-data from the server als process then - * (count them and set the server-state) - */ - $records = $app->db->queryAllRecords("SELECT DISTINCT type FROM monitor_data WHERE server_id = " . $serverId); - foreach($records as $record){ - _processDbState($record['type'], $serverId, &$serverState, &$messages); - } - - $res .= '
    '; - $res .= '
    '; - $res .= '
    '; - $res .= $app->lng("monitor_serverstate_server_txt") . ': ' . $serverName . '
    '; - $res .= $app->lng("monitor_serverstate_state_txt") . ': ' . $serverState . '
    '; - // $res .= sizeof($messages[$app->lng("monitor_serverstate_listok_txt")]) . ' ok | '; - $res .= sizeof($messages[$app->lng("monitor_serverstate_listunknown_txt")]) . ' ' . $app->lng("monitor_serverstate_unknown_txt") . ' | '; - $res .= sizeof($messages[$app->lng("monitor_serverstate_listinfo_txt")]) . ' ' . $app->lng("monitor_serverstate_info_txt") . ' | '; - $res .= sizeof($messages[$app->lng("monitor_serverstate_listwarning_txt")]) . ' ' . $app->lng("monitor_serverstate_warning_txt") . ' | '; - $res .= sizeof($messages[$app->lng("monitor_serverstate_listcritical_txt")]) . ' ' . $app->lng("monitor_serverstate_critical_txt") . ' | '; - $res .= sizeof($messages[$app->lng("monitor_serverstate_listerror_txt")]) . ' ' . $app->lng("monitor_serverstate_error_txt") . '
    '; - $res .= '
    '; - - if ($showAll){ - /* - * if we have to show all, then we do it... - */ - - /* - * Show all messages - */ - foreach($messages as $key => $state){ - /* - * There is no need, to show the "ok" - messages - */ -// if ($key != 'ok') - { - $res .= $key . ':
    '; - foreach ($state as $msg) - { - $res .= $msg . '
    '; - } - $res .= '
    '; - } - } - } - else - { - /* - * if not, we only show a link to the server... - */ - $res .= "" . $app->lng("monitor_serverstate_moreinfo_txt") . ""; - } - $res .= '
    '; - $res .= '
    '; - $res .= '
    '; - - if ($showAll){ - /* - * Show some state-info - */ - //$res .= showServerLoad(); - //$res .= ' '. showDiskUsage(); - //$res .= ' '.showServices(); - } - - - return $res; -} - -/* - * gets the state from the db and process it - */ -function _processDbState($type, $serverId, $serverState, $messages) -{ - global $app; - - /* - * Always the NEWEST record of each monitoring is responsible for the - * state - */ - // get the State from the DB - $record = $app->db->queryOneRecord("SELECT state FROM monitor_data WHERE type = '" . $type . "' and server_id = " . $serverId . " order by created desc"); - // change the new state to the highest state - $serverState = _setState($serverState, $record['state']); - - /* - * The message depands on the type and the state - */ - if ($type == 'cpu_info'){ - /* this type has no state */ - } - if ($type == 'disk_usage'){ - switch ($record['state']) { - case 'ok': - $messages[$app->lng("monitor_serverstate_listok_txt")][] = $app->lng("monitor_serverstate_hdok_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - case 'info': - $messages[$app->lng("monitor_serverstate_listinfo_txt")][] = $app->lng("monitor_serverstate_hdgoingfull_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - case 'warning': - $messages[$app->lng("monitor_serverstate_listwarning_txt")][] = $app->lng("monitor_serverstate_hdnearlyfull_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - case 'critical': - $messages[$app->lng("monitor_serverstate_listcritical_txt")][] = $app->lng("monitor_serverstate_hdveryfull_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - case 'error': - $messages[$app->lng("monitor_serverstate_listerror_txt")][] = $app->lng("monitor_serverstate_hdfull_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - - default: - $messages[$app->lng("monitor_serverstate_listunknown_txt")][] = $app->lng("monitor_serverstate_hdunknown_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - } - } - if ($type == 'mem_usage'){ - /* this type has no state */ - } - if ($type == 'server_load'){ - switch ($record['state']) { - case 'ok': - $messages[$app->lng("monitor_serverstate_listok_txt")][] = $app->lng("monitor_serverstate_loadok_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - case 'info': - $messages[$app->lng("monitor_serverstate_listinfo_txt")][] = $app->lng("monitor_serverstate_loadheavy_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - case 'warning': - $messages[$app->lng("monitor_serverstate_listwarning_txt")][] = $app->lng("monitor_serverstate_loadhigh_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - case 'critical': - $messages[$app->lng("monitor_serverstate_listcritical_txt")][] = $app->lng("monitor_serverstate_loadhigher_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - case 'error': - $messages[$app->lng("monitor_serverstate_listerror_txt")][] = $app->lng("monitor_serverstate_loadhighest_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - default: - $messages[$app->lng("monitor_serverstate_listunknown_txt")][] = $app->lng("monitor_serverstate_loadunknown_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - } - } - if ($type == 'services'){ - switch ($record['state']) { - case 'ok': - $messages[$app->lng("monitor_serverstate_listok_txt")][] = $app->lng("monitor_serverstate_servicesonline_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - - break; - case 'error': - $messages[$app->lng("monitor_serverstate_listerror_txt")][] = $app->lng("monitor_serverstate_servicesoffline_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - default: - $messages[$app->lng("monitor_serverstate_listunknown_txt")][] = $app->lng("monitor_serverstate_servicesunknown_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - } - } - if ($type == 'system_update'){ - switch ($record['state']) { - case 'ok': - $messages[$app->lng("monitor_serverstate_listok_txt")][] = $app->lng("monitor_serverstate_updatesok_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - - break; - case 'warning': - $messages[$app->lng("monitor_serverstate_listwarning_txt")][] = $app->lng("monitor_serverstate_updatesneeded_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - case 'no_state': - /* - * not debian and not Ubuntu, so the state could not be monitored... - */ - break; - default: - $messages[$app->lng("monitor_serverstate_listunknown_txt")][] = $app->lng("monitor_serverstate_updatesunknown_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - } - } - - if ($type == 'raid_state'){ - switch ($record['state']) { - case 'ok': - $messages[$app->lng("monitor_serverstate_listok_txt")][] = $app->lng("monitor_serverstate_raidok_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - case 'info': - $messages[$app->lng("monitor_serverstate_listinfo_txt")][] = $app->lng("monitor_serverstate_raidresync_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - case 'critical': - $messages[$app->lng("monitor_serverstate_listcritical_txt")][] = $app->lng("monitor_serverstate_raidfault_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - case 'error': - $messages[$app->lng("monitor_serverstate_listerror_txt")][] = $app->lng("monitor_serverstate_raiderror_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - case 'no_state': - /* - * mdadm is not installed or the RAID is not supported... - */ - break; - default: - $messages[$app->lng("monitor_serverstate_listunknown_txt")][] = $app->lng("monitor_serverstate_raidunknown_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - } - } - - - if ($type == 'mailq'){ - switch ($record['state']) { - case 'ok': - $messages[$app->lng("monitor_serverstate_listok_txt")][] = $app->lng("monitor_serverstate_mailqok_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - case 'info': - $messages[$app->lng("monitor_serverstate_listinfo_txt")][] = $app->lng("monitor_serverstate_mailqheavy_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - case 'warning': - $messages[$app->lng("monitor_serverstate_listwarning_txt")][] = $app->lng("monitor_serverstate_mailqhigh_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - case 'critical': - $messages[$app->lng("monitor_serverstate_listcritical_txt")][] = $app->lng("monitor_serverstate_mailqhigher_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - case 'error': - $messages[$app->lng("monitor_serverstate_listerror_txt")][] = $app->lng("monitor_serverstate_mailqhighest_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - default: - $messages[$app->lng("monitor_serverstate_listunknown_txt")][] = $app->lng("monitor_serverstate_mailqunknown_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - } - } - - if ($type == 'sys_log'){ - switch ($record['state']) { - case 'ok': - $messages[$app->lng("monitor_serverstate_listok_txt")][] = $app->lng("monitor_serverstate_syslogok_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - case 'warning': - $messages[$app->lng("monitor_serverstate_listwarning_txt")][] = $app->lng("monitor_serverstate_syslogwarning_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - case 'error': - $messages[$app->lng("monitor_serverstate_listerror_txt")][] = $app->lng("monitor_serverstate_syslogerror_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - default: - $messages[$app->lng("monitor_serverstate_listunknown_txt")][] = $app->lng("monitor_serverstate_syslogunknown_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - } - } - - if ($type == 'log_clamav'){ - /* this type has no state */ - } - - if ($type == 'log_freshclam'){ - switch ($record['state']) { - case 'ok': - $messages[$app->lng("monitor_serverstate_listok_txt")][] = $app->lng("monitor_serverstate_fclamok_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - case 'warning': - $messages[$app->lng("monitor_serverstate_listwarning_txt")][] = $app->lng("monitor_serverstate_fclamoutdated_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - default: - $messages[$app->lng("monitor_serverstate_listunknown_txt")][] = $app->lng("monitor_serverstate_fclamunknown_txt") . ' ' . - "[" . $app->lng("monitor_serverstate_more_txt") . "]"; - break; - } - } - - if ($type == 'log_ispconfig'){ - /* this type has no state */ - } - if ($type == 'log_mail'){ - /* this type has no state */ - } - if ($type == 'log_mail_err'){ - /* this type has no state */ - } - if ($type == 'log_mail_warn'){ - /* this type has no state */ - } - if ($type == 'log_messages'){ - /* this type has no state */ - } - if ($type == 'rkhunter'){ - /* this type has no state */ - } -} - - /* - * Set the state to the given level (or higher, but not lesser). - * * If the actual state is critical and you call the method with ok, - * then the state is critical. - * - * * If the actual state is critical and you call the method with error, - * then the state is error. - */ -function _setState($oldState, $newState) -{ - /* - * Calculate the weight of the old state - */ - switch ($oldState) { - case 'no_state': $oldInt = 0; - break; - case 'ok': $oldInt = 1; - break; - case 'unknown': $oldInt = 2; - break; - case 'info': $oldInt = 3; - break; - case 'warning': $oldInt = 4; - break; - case 'critical': $oldInt = 5; - break; - case 'error': $oldInt = 6; - break; - } - /* - * Calculate the weight of the new state - */ - switch ($newState) { - case 'no_state': $newInt = 0 ; - break; - case 'ok': $newInt = 1 ; - break; - case 'unknown': $newInt = 2 ; - break; - case 'info': $newInt = 3 ; - break; - case 'warning': $newInt = 4 ; - break; - case 'critical': $newInt = 5 ; - break; - case 'error': $newInt = 6 ; - break; - } - - /* - * Set to the higher level - */ - if ($newInt > $oldInt){ - return $newState; - } - else - { - return $oldState; - } -} - -?> diff --git a/interface/ispconfig/interface/monitor/templates/datalog_list.htm b/interface/ispconfig/interface/monitor/templates/datalog_list.htm deleted file mode 100644 index 93eede057..000000000 --- a/interface/ispconfig/interface/monitor/templates/datalog_list.htm +++ /dev/null @@ -1,49 +0,0 @@ -

    -

    - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
     
    {tmpl_var name="tstamp"}{tmpl_var name="server_id"}{tmpl_var name="action"}{tmpl_var name="dbtable"} -
    - -
    -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/monitor/templates/show_data.htm b/interface/ispconfig/interface/monitor/templates/show_data.htm deleted file mode 100644 index f83440fe4..000000000 --- a/interface/ispconfig/interface/monitor/templates/show_data.htm +++ /dev/null @@ -1,12 +0,0 @@ -

    -

    - -
    - -
    -
    -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/monitor/templates/show_log.htm b/interface/ispconfig/interface/monitor/templates/show_log.htm deleted file mode 100644 index b6077277c..000000000 --- a/interface/ispconfig/interface/monitor/templates/show_log.htm +++ /dev/null @@ -1,25 +0,0 @@ -

    -

    - -
    - -
    -
    -
    -
    - - -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/monitor/templates/show_sys_state.htm b/interface/ispconfig/interface/monitor/templates/show_sys_state.htm deleted file mode 100644 index 904361cb1..000000000 --- a/interface/ispconfig/interface/monitor/templates/show_sys_state.htm +++ /dev/null @@ -1,25 +0,0 @@ -

    -

    - -
    - -
    -
    -
    -
    - - -
    -
    -
    -
    - -
    -
    -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/monitor/templates/syslog_list.htm b/interface/ispconfig/interface/monitor/templates/syslog_list.htm deleted file mode 100644 index 0bbb03cfb..000000000 --- a/interface/ispconfig/interface/monitor/templates/syslog_list.htm +++ /dev/null @@ -1,56 +0,0 @@ -

    -

    - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
     
    {tmpl_var name="tstamp"}{tmpl_var name="server_id"}{tmpl_var name="loglevel"}{tmpl_var name="message"} - - - - - - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/monitor/tools.inc.php b/interface/ispconfig/interface/monitor/tools.inc.php deleted file mode 100644 index 0001bd931..000000000 --- a/interface/ispconfig/interface/monitor/tools.inc.php +++ /dev/null @@ -1,456 +0,0 @@ -db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'server_load' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc"); - - if(isset($record['data'])) { - $data = unserialize($record['data']); - - /* - Format the data - */ - if (strlen($data['up_minutes']) == "1") $data['up_minutes'] = "0".$data['up_minutes']; - $html = - '
    -
    - - - - - - - - - ' . - ' - - - - - - - - - - - -
    ' . $app->lng("Server online since").':' . $data['up_days'] . ' days, ' . $data['up_hours'] . ':' . $data['up_minutes'] . ' hours
    ' . $app->lng("Users online").':' . $data['user_online'] . '
    ' . $app->lng("System load 1 minute") . ':' . $data['load_1'] . '
    ' . $app->lng("System load 5 minutes") . ':' . $data['load_5'] . '
    '.$app->lng("System load 15 minutes").':' . $data['load_15'] . '
    -
    -
    '; - } else { - $html = '

    '.$app->lng("no_data_serverload_txt").'

    '; - } - - return $html; -} - -function showDiskUsage () { - global $app; - - /* fetch the Data from the DB */ - $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'disk_usage' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc"); - - if(isset($record['data'])) { - $data = unserialize($record['data']); - - /* - Format the data - */ - $html = - '
    -
    - - - - - - - - - - '; - foreach($data as $line) { - $html .= ''; - foreach ($line as $item) { - $html .= ''; - } - $html .= ''; - } - $html .= '
    '.$app->lng("monitor_diskusage_filesystem_txt").''.$app->lng("monitor_diskusage_type_txt").''.$app->lng("monitor_diskusage_size_txt").''.$app->lng("monitor_diskusage_used_txt").''.$app->lng("monitor_diskusage_available_txt").''.$app->lng("monitor_diskusage_usage_txt").''.$app->lng("monitor_diskusage_mounted_txt").'
    ' . $item . '
    '; - $html .= '
    '; - } else { - $html = '

    '.$app->lng("no_data_diskusage_txt").'

    '; - } - - - return $html; -} - -function showMemUsage () { - global $app; - - /* fetch the Data from the DB */ - $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'mem_usage' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc"); - - if(isset($record['data'])) { - $data = unserialize($record['data']); - - /* - Format the data - */ - $html = - '
    -
    - '; - - foreach($data as $key => $value){ - if ($key != '') { - $html .= ' - - - '; - } - } - $html .= '
    ' . $key . ':' . $value . '
    '; - $html .= '
    '; - - } else { - $html = '

    '.$app->lng("no_data_memusage_txt").'

    '; - } - - return $html; -} - -function showCpuInfo () { - global $app; - - /* fetch the Data from the DB */ - $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'cpu_info' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc"); - - if(isset($record['data'])) { - $data = unserialize($record['data']); - - /* - Format the data - */ - $html = - '
    -
    - '; - foreach($data as $key => $value){ - if ($key != '') { - $html .= ' - - - '; - } - } - $html .= '
    ' . $key . ':' . $value . '
    '; - $html .= '
    '; - } else { - $html = '

    '.$app->lng("no_data_cpuinfo_txt").'

    '; - } - - return $html; -} - -function showServices () { - global $app; - - /* fetch the Data from the DB */ - $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'services' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc"); - - if(isset($record['data'])) { - $data = unserialize($record['data']); - - /* - Format the data - */ - $html = - '
    -
    - '; - - if($data['webserver'] != -1) { - if($data['webserver'] == 1) { - $status = ''.$app->lng("monitor_services_online_txt").''; - } else { - $status = ''.$app->lng("monitor_services_offline_txt").''; - } - $html .= ' - - - '; - } - - - if($data['ftpserver'] != -1) { - if($data['ftpserver'] == 1) { - $status = ''.$app->lng("monitor_services_online_txt").''; - } else { - $status = ''.$app->lng("monitor_services_offline_txt").''; - } - $html .= ' - - - '; - } - - if($data['smtpserver'] != -1) { - if($data['smtpserver'] == 1) { - $status = ''.$app->lng("monitor_services_online_txt").''; - } else { - $status = ''.$app->lng("monitor_services_offline_txt").''; - } - $html .= ' - - - '; - } - - if($data['pop3server'] != -1) { - if($data['pop3server'] == 1) { - $status = ''.$app->lng("monitor_services_online_txt").''; - } else { - $status = ''.$app->lng("monitor_services_offline_txt").''; - } - $html .= ' - - - '; - } - - if($data['imapserver'] != -1) { - if($data['imapserver'] == 1) { - $status = ''.$app->lng("monitor_services_online_txt").''; - } else { - $status = ''.$app->lng("monitor_services_offline_txt").''; - } - $html .= ' - - - '; - } - - if($data['bindserver'] != -1) { - if($data['bindserver'] == 1) { - $status = ''.$app->lng("monitor_services_online_txt").''; - } else { - $status = ''.$app->lng("monitor_services_offline_txt").''; - } - $html .= ' - - - '; - } - - if($data['mysqlserver'] != -1) { - if($data['mysqlserver'] == 1) { - $status = ''.$app->lng("monitor_services_online_txt").''; - } else { - $status = ''.$app->lng("monitor_services_offline_txt").''; - } - $html .= ' - - - '; - } - - - $html .= '
    '.$app->lng("monitor_services_web_txt").''.$status.'
    '.$app->lng("monitor_services_ftp_txt").''.$status.'
    '.$app->lng("monitor_services_smtp_txt").''.$status.'
    '.$app->lng("monitor_services_pop_txt").''.$status.'
    '.$app->lng("monitor_services_imap_txt").''.$status.'
    '.$app->lng("monitor_services_mydns_txt").''.$status.'
    '.$app->lng("monitor_services_mysql_txt").''.$status.'
    '; - } else { - $html = '

    '.$app->lng("no_data_services_txt").'

    '; - } - - - return $html; -} - -function showSystemUpdate() { - global $app; - - /* fetch the Data from the DB */ - $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'system_update' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc"); - - if(isset($record['data'])) { - $html = - '
    -
    '; - /* - * First, we have to detect, if there is any monitoring-data. - * If not (because the destribution is not supported) show this. - */ - if ($record['state'] == 'no_state'){ - $html .= '

    '.$app->lng("monitor_updates_nosupport_txt").'

    '; - } - else { - $data = unserialize($record['data']); - $html .= nl2br($data['output']); - } - $html .= '
    '; - } else { - $html = '

    '.$app->lng("no_data_updates_txt").'

    '; - } - - return $html; -} - -function showRaidState() { - global $app; - - /* fetch the Data from the DB */ - $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'raid_state' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc"); - - if(isset($record['data'])) { - $html = - '
    -
    '; - - /* - * First, we have to detect, if there is any monitoring-data. - * If not (because the destribution is not supported) show this. - */ - if ($record['state'] == 'no_state'){ - $html .= '

    '.$app->lng("monitor_nomdadm_txt").'

    '; - } - else { - $data = unserialize($record['data']); - $html .= nl2br($data['output']); - } - $html .= '
    '; - - } else { - $html = '

    '.$app->lng("no_data_raid_txt").'

    '; - } - - return $html; -} - -function showRKHunter() { - global $app; - - /* fetch the Data from the DB */ - $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'rkhunter' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc"); - - if(isset($record['data'])) { - $html = - '
    -
    '; - - /* - * First, we have to detect, if there is any monitoring-data. - * If not (because rkhunter is not installed) show this. - */ - $data = unserialize($record['data']); - if ($data['output'] == ''){ - $html .= '

    '.$app->lng("monitor_norkhunter_txt").'

    '; - } - else { - $html .= nl2br($data['output']); - } - $html .= '
    '; - - } else { - $html = '

    '.$app->lng("no_data_rkhunter_txt").'

    '; - } - - return $html; -} - -function showFail2ban() { - global $app; - - /* fetch the Data from the DB */ - $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'log_fail2ban' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc"); - - if(isset($record['data'])) { - $html = - '
    -
    '; - - /* - * First, we have to detect, if there is any monitoring-data. - * If not (because fail2ban is not installed) show this. - */ - $data = unserialize($record['data']); - if ($data == ''){ - $html .= '

    '. - 'fail2ban is not installed at this server.
    ' . - 'See more (for debian) here...'. - '

    '; - } - else { - $html .= nl2br($data); - } - $html .= '
    '; - - } else { - $html = '

    There is no data available at the moment.

    '; - } - - return $html; -} - -function showMailq() { - global $app; - - /* fetch the Data from the DB */ - $record = $app->db->queryOneRecord("SELECT data, state FROM monitor_data WHERE type = 'mailq' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc"); - - if(isset($record['data'])) { - $data = unserialize($record['data']); - $html = nl2br($data['output']); - } else { - $html = '

    '.$app->lng("no_data_mailq_txt").'

    '; - } - - return $html; -} - -function getDataTime($type) { - global $app; - - /* fetch the Data from the DB */ - $record = $app->db->queryOneRecord("SELECT created FROM monitor_data WHERE type = '" . $type . "' and server_id = " . $_SESSION['monitor']['server_id'] . " order by created desc"); - - /* TODO: datetimeformat should be set somewhat other way */ - $dateTimeFormat = $app->lng("monitor_settings_datetimeformat_txt"); - - if(isset($record['created'])) { -// $res = date('Y-m-d H:i', $record['created']); - $res = date($dateTimeFormat, $record['created']); - } else { - $res = '????-??-?? ??:??'; - } - return $res; -} -?> diff --git a/interface/ispconfig/interface/mymodule/form/support_message.tform.php b/interface/ispconfig/interface/mymodule/form/support_message.tform.php deleted file mode 100644 index 638f6ae4a..000000000 --- a/interface/ispconfig/interface/mymodule/form/support_message.tform.php +++ /dev/null @@ -1,132 +0,0 @@ - 0 id must match with id of current user -$form['auth_preset']['userid'] = 0; - - // 0 = default groupid of the user, > 0 id must match with groupid of current -$form['auth_preset']['groupid'] = 0; // user - -// Permissions with the following codes: r = read, i = insert, u = update, d = delete -$form['auth_preset']['perm_user'] = 'riud'; -$form['auth_preset']['perm_group'] = 'riud'; -$form['auth_preset']['perm_other'] = ''; - -// The form definition of the first tab. The name of the tab is called 'message'. We refer -// to this name in the $form['tab_default'] setting above. -$form['tabs']['message'] = array( - 'title' => 'Message', // Title of the Tab - 'width' => 100, // Tab width - 'template' => 'templates/support_message_edit.htm', // Template file name - 'fields' => array( - - //*** BEGIN Datatable columns ********************************** - - 'recipient_id' => array( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array( - 'type' => 'SQL', - 'querystring' => 'SELECT userid,username FROM sys_user WHERE {AUTHSQL} ORDER BY username', - 'keyfield' => 'userid', - 'valuefield' => 'username' - ), - 'validators' => array( 0 => array( 'type' => 'ISINT', - 'errmsg'=> 'recipient_id_is_not_integer' - ), - ), - 'value' => '' - ), - - 'sender_id' => array( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array( - 'type' => 'SQL', - 'querystring' => 'SELECT userid,username FROM sys_user WHERE {AUTHSQL} ORDER BY username', - 'keyfield' => 'userid', - 'valuefield' => 'username' - ), - 'validators' => array( 0 => array( 'type' => 'ISINT', - 'errmsg' => 'recipient_id_is_not_integer' - ), - ), - 'value' => '' - ), - - 'subject' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array( 0 => array( 'type' => 'NOTEMPTY', - 'errmsg'=> 'subject_is_empty' - ), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - - 'message' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXTAREA', - 'validators' => array( 0 => array( 'type' => 'NOTEMPTY', - 'errmsg'=> 'message_is_empty' - ), - ), - 'default' => '', - 'value' => '', - 'cols' => '30', - 'rows' => '10', - 'maxlength' => '255' - ), - - 'tstamp' => array( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => time(), - 'value' => '', - 'width' => '30', - 'maxlength' => '30' - ), - - //*** END Datatable columns ********************************** - ) -); -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mymodule/lib/admin.conf.php b/interface/ispconfig/interface/mymodule/lib/admin.conf.php deleted file mode 100644 index 3e558caea..000000000 --- a/interface/ispconfig/interface/mymodule/lib/admin.conf.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/interface/ispconfig/interface/mymodule/lib/mymodule.config.php b/interface/ispconfig/interface/mymodule/lib/mymodule.config.php deleted file mode 100644 index 3ff943166..000000000 --- a/interface/ispconfig/interface/mymodule/lib/mymodule.config.php +++ /dev/null @@ -1,47 +0,0 @@ - 'Send message', - 'target' => 'content', - 'link' => 'mymodule/support_message_edit.php' - ); - -// Add a menu item with the label 'View messages' -$items[] = array( 'title' => 'View messages', - 'target' => 'content', - 'link' => 'mymodule/support_message_list.php' - ); - -// Append the menu $items defined above to a menu section labeled 'Support' -$module['nav'][] = array( 'title' => 'Support', - 'open' => 1, - 'items' => $items - ); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mymodule/list/support_message.list.php b/interface/ispconfig/interface/mymodule/list/support_message.list.php deleted file mode 100644 index e1fd4f50e..000000000 --- a/interface/ispconfig/interface/mymodule/list/support_message.list.php +++ /dev/null @@ -1,63 +0,0 @@ - 'sender_id', - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'op' => '=', - 'prefix' => '', - 'suffix' => '', - 'width' => '', - 'datasource' => array( - 'type' => 'SQL', - 'querystring' => 'SELECT userid,username FROM sys_user WHERE {AUTHSQL} ORDER BY username', - 'keyfield' => 'userid', - 'valuefield' => 'username' - ), - 'value' => '' - ); - -$liste['item'][] = array( - 'field' => 'subject', - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'op' => 'like', - 'prefix' => '%', - 'suffix' => '%', - 'width' => '', - 'value' => '' - ); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mymodule/support_message_del.php b/interface/ispconfig/interface/mymodule/support_message_del.php deleted file mode 100644 index a01ba1a73..000000000 --- a/interface/ispconfig/interface/mymodule/support_message_del.php +++ /dev/null @@ -1,21 +0,0 @@ -uses('tform_actions'); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mymodule/support_message_edit.php b/interface/ispconfig/interface/mymodule/support_message_edit.php deleted file mode 100644 index 8dee49689..000000000 --- a/interface/ispconfig/interface/mymodule/support_message_edit.php +++ /dev/null @@ -1,33 +0,0 @@ -uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -// Create a class page_action that extends the tform_actions base class -class page_action extends tform_actions { - - //* Customisations for the page actions will be defined here - -} - -// Create the new page object -$page = new page_action(); - -// Start the page rendering and action handling -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mymodule/support_message_list.php b/interface/ispconfig/interface/mymodule/support_message_list.php deleted file mode 100644 index 43cd9bc1f..000000000 --- a/interface/ispconfig/interface/mymodule/support_message_list.php +++ /dev/null @@ -1,24 +0,0 @@ -uses('listform_actions'); - -// Optional limit -// $app->listform_actions->SQLExtWhere = 'type = 'alias''; - -// Start the form rendering and action ahndling -$app->listform_actions->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/mymodule/templates/support_message_edit.html b/interface/ispconfig/interface/mymodule/templates/support_message_edit.html deleted file mode 100644 index 6bd86f28f..000000000 --- a/interface/ispconfig/interface/mymodule/templates/support_message_edit.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - -
    TODO write content
    - - diff --git a/interface/ispconfig/interface/mymodule/templates/support_message_view.html b/interface/ispconfig/interface/mymodule/templates/support_message_view.html deleted file mode 100644 index 6bd86f28f..000000000 --- a/interface/ispconfig/interface/mymodule/templates/support_message_view.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - -
    TODO write content
    - - diff --git a/interface/ispconfig/interface/nav.php b/interface/ispconfig/interface/nav.php deleted file mode 100644 index 73a637172..000000000 --- a/interface/ispconfig/interface/nav.php +++ /dev/null @@ -1,102 +0,0 @@ -uses('tpl'); - -//** Top Naviation -if(isset($_GET['nav']) && $_GET['nav'] == 'top') { - - $app->tpl->newTemplate('topnav.tpl.htm'); - - //* Check User Login and current module - if(isset($_SESSION["s"]["user"]) && $_SESSION["s"]["user"]['active'] == 1 && is_array($_SESSION['s']['module'])) { - //* Loading modules of the user and building top navigation - $modules = explode(',', $_SESSION['s']['user']['modules']); - if(is_array($modules)) { - foreach($modules as $mt) { - if(is_file($mt.'/lib/module.conf.php')) { - if(!preg_match("/^[a-z]{2,20}$/i", $mt)) die('module name contains unallowed chars.'); - include_once($mt.'/lib/module.conf.php'); - $active = ($module['name'] == $_SESSION['s']['module']['name']) ? 1 : 0; - $topnav[] = array( 'title' => $app->lng($module['title']), - 'active' => $active, - 'module' => $module['name']); - } - } - } - } else { - //* Loading Login Module - include_once('login/lib/module.conf.php'); - $_SESSION['s']['module'] = $module; - $topnav[] = array( 'title' => 'Login', - 'active' => 1); - $module = null; - unset($module); - } - - //* Topnavigation - $app->tpl->setLoop('nav_top',$topnav); - -} - -//** Side Naviation -if(isset($_GET['nav']) && $_GET['nav'] == 'side') { - - $app->tpl->newTemplate('sidenav.tpl.htm'); - - //* translating module navigation - $nav_translated = array(); - if(isset($_SESSION['s']['module']['nav']) && is_array($_SESSION['s']['module']['nav'])) { - foreach($_SESSION['s']['module']['nav'] as $nav) { - $tmp_items = array(); - foreach($nav['items'] as $item) { - $item['title'] = $app->lng($item['title']); - $tmp_items[] = $item; - } - $nav['title'] = $app->lng($nav['title']); - $nav['startpage'] = $nav['items'][0]['link']; - $nav['items'] = $tmp_items; - $nav_translated[] = $nav; - } - } else { - $nav_translated = null; - } - - $app->tpl->setLoop('nav_left',$nav_translated); - -} - -$app->tpl_defaults(); -$app->tpl->pparse(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/remote/index.php b/interface/ispconfig/interface/remote/index.php deleted file mode 100644 index 25ebc8f0b..000000000 --- a/interface/ispconfig/interface/remote/index.php +++ /dev/null @@ -1,15 +0,0 @@ -load('remoting'); - -$server = new SoapServer(null, array('uri' => $_SERVER['REQUEST_URI'])); -$server->setClass('remoting'); -$server->handle(); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/robots.txt b/interface/ispconfig/interface/robots.txt deleted file mode 100644 index 61186cb25..000000000 --- a/interface/ispconfig/interface/robots.txt +++ /dev/null @@ -1,2 +0,0 @@ -User-Agent: * -Disallow: / \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/ajax_get_ip.php b/interface/ispconfig/interface/sites/ajax_get_ip.php deleted file mode 100644 index 603c82404..000000000 --- a/interface/ispconfig/interface/sites/ajax_get_ip.php +++ /dev/null @@ -1,56 +0,0 @@ -auth->check_module_permissions('sites'); - -$server_id = intval($_GET["server_id"]); - -if($_SESSION["s"]["user"]["typ"] == 'admin') { - - $sql = "SELECT ip_address FROM server_ip WHERE server_id = $server_id"; - $ips = $app->db->queryAllRecords($sql); - // $ip_select = ""; - $ip_select = "*"; - if(is_array($ips)) { - foreach( $ips as $ip) { - //$selected = ($ip["ip_address"] == $this->dataRecord["ip_address"])?'SELECTED':''; - $ip_select .= "#$ip[ip_address]"; - } - } - unset($tmp); - unset($ips); -} - -echo $ip_select; -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/cron_del.php b/interface/ispconfig/interface/sites/cron_del.php deleted file mode 100644 index 516b4473b..000000000 --- a/interface/ispconfig/interface/sites/cron_del.php +++ /dev/null @@ -1,64 +0,0 @@ -auth->check_module_permissions('sites'); - -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onBeforeDelete() { - global $app; $conf; - - if($app->tform->checkPerm($this->id,'d') == false) $app->error($app->lng('error_no_delete_permission')); - } -} - -$page = new page_action; -$page->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/cron_edit.php b/interface/ispconfig/interface/sites/cron_edit.php deleted file mode 100644 index 6301fc910..000000000 --- a/interface/ispconfig/interface/sites/cron_edit.php +++ /dev/null @@ -1,221 +0,0 @@ -auth->check_module_permissions('sites'); - -// Loading classes -$app->uses('tpl,tform,tform_actions,validate_cron'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_cron')) { - $app->error($app->tform->wordbook["limit_cron_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_cron')) { - $app->error('Reseller: '.$app->tform->wordbook["limit_cron_txt"]); - } - } - - parent::onShowNew(); - } - - function onShowEnd() { - global $app, $conf; - - if($this->id > 0) { - //* we are editing a existing record - $app->tpl->setVar("edit_disabled", 1); - $app->tpl->setVar("parent_domain_id_value", $this->dataRecord["parent_domain_id"]); - } else { - $app->tpl->setVar("edit_disabled", 0); - } - - parent::onShowEnd(); - } - - function onSubmit() { - global $app, $conf; - - if($_SESSION["s"]["user"]["typ"] != 'admin') { - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_cron, limit_cron_type FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // When the record is updated - if($this->id > 0) { - // When the record is inserted - } else { - // Check if the user may add another cron job. - if($client["limit_cron"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM cron WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_cron"]) { - $app->error($app->tform->wordbook["limit_cron_txt"]); - } - } - } - } - - // Get the record of the parent domain - $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".intval(@$this->dataRecord["parent_domain_id"])); - - // Set fixed values - $this->dataRecord["server_id"] = $parent_domain["server_id"]; - - //* get type of command - $command = $this->dataRecord["command"]; - if(preg_match("'^http(s)?:\/\/'i", $command)) { - $this->dataRecord["type"] = 'url'; - } else { - $domain_owner = $app->db->queryOneRecord("SELECT limit_cron_type FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ".intval($parent_domain["sys_groupid"])); - if($domain_owner["limit_cron_type"] == 'full') $this->dataRecord["type"] = 'full'; - else $this->dataRecord["type"] = 'chrooted'; - } - - parent::onSubmit(); - } - - function onUpdateSave($sql) { - global $app; - - $has_error = false; - //* last chance to stop this, so check frequency limit! - if($_SESSION["s"]["user"]["typ"] != 'admin') { - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_cron_frequency FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - if($client["limit_cron_frequency"] > 1) { - if($app->tform->cron_min_freq < $client["limit_cron_frequency"]) { - $app->error($app->tform->wordbook["limit_cron_frequency_txt"]); - $has_error = true; - } - } - } - - if($has_error == true) { - parent::onError(); - exit; - } - else parent::onUpdateSave($sql); - } - - function onInsertSave($sql) { - global $app; - - $has_error = false; - //* last chance to stop this, so check frequency limit! - if($_SESSION["s"]["user"]["typ"] != 'admin') { - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_cron_frequency FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - if($client["limit_cron_frequency"] > 1) { - if($app->tform->cron_min_freq < $client["limit_cron_frequency"]) { - $app->error($app->tform->wordbook["limit_cron_frequency_txt"]); - $has_error = true; - } - } - } - - if($has_error == true) { - parent::onError(); - exit; - } else { - return parent::onInsertSave($sql); - } - } - - function onAfterInsert() { - global $app, $conf; - - $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".intval($this->dataRecord["parent_domain_id"])); - $server_id = $web["server_id"]; - - // The cron shall be owned by the same group then the website - $sys_groupid = $web['sys_groupid']; - - $sql = "UPDATE shell_user SET server_id = $server_id, sys_groupid = '$sys_groupid' WHERE id = ".$this->id; - $app->db->query($sql); - } - - function onAfterUpdate() { - global $app, $conf; - - - } - - function getClientName() { - global $app, $conf; - - if($_SESSION["s"]["user"]["typ"] != 'admin') { - // Get the group-id of the user - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - } else { - // Get the group-id from the data itself - $web = $app->db->queryOneRecord("SELECT sys_groupid FROM web_domain WHERE domain_id = ".intval($this->dataRecord['parent_domain_id'])); - $client_group_id = $web['sys_groupid']; - } - /* get the name of the client */ - $tmp = $app->db->queryOneRecord("SELECT name FROM sys_group WHERE groupid = " . $client_group_id); - $clientName = $tmp['name']; - if ($clientName == "") $clientName = 'default'; - $clientName = convertClientName($clientName); - - return $clientName; - - } - -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/cron_list.php b/interface/ispconfig/interface/sites/cron_list.php deleted file mode 100644 index 68e23163f..000000000 --- a/interface/ispconfig/interface/sites/cron_list.php +++ /dev/null @@ -1,23 +0,0 @@ -auth->check_module_permissions('sites'); - -$app->uses('listform_actions'); - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/database_del.php b/interface/ispconfig/interface/sites/database_del.php deleted file mode 100644 index aa958a180..000000000 --- a/interface/ispconfig/interface/sites/database_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('sites'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/database_edit.php b/interface/ispconfig/interface/sites/database_edit.php deleted file mode 100644 index 3b06bde96..000000000 --- a/interface/ispconfig/interface/sites/database_edit.php +++ /dev/null @@ -1,338 +0,0 @@ -auth->check_module_permissions('sites'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_database')) { - $app->error($app->tform->wordbook["limit_database_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_database')) { - $app->error('Reseller: '.$app->tform->wordbook["limit_database_txt"]); - } - } - - parent::onShowNew(); - } - - function onShowEnd() { - global $app, $conf, $interfaceConf; - - if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT default_dbserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Set the webserver to the default server of the client - $tmp = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = $client[default_dbserver]"); - $app->tpl->setVar("server_id",""); - unset($tmp); - - } elseif ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT client.client_id, limit_web_domain, default_webserver, contact_name FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Set the webserver to the default server of the client - $tmp = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = $client[default_webserver]"); - $app->tpl->setVar("server_id",""); - unset($tmp); - - // Fill the client select field - $sql = "SELECT groupid, name FROM sys_group, client WHERE sys_group.client_id = client.client_id AND client.parent_client_id = ".$client['client_id']." ORDER BY name"; - $clients = $app->db->queryAllRecords($sql); - $tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$client['client_id']); - $client_select = ''; - $tmp_data_record = $app->tform->getDataRecord($this->id); - if(is_array($clients)) { - foreach( $clients as $client) { - $selected = @($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':''; - $client_select .= "\r\n"; - } - } - $app->tpl->setVar("client_group_id",$client_select); - - } else { - - // The user is admin - if($this->id > 0) { - $server_id = $this->dataRecord["server_id"]; - } else { - // Get the first server ID - $tmp = $app->db->queryOneRecord("SELECT server_id FROM server WHERE web_server = 1 ORDER BY server_name LIMIT 0,1"); - $server_id = $tmp['server_id']; - } - - $sql = "SELECT ip_address FROM server_ip WHERE server_id = $server_id"; - $ips = $app->db->queryAllRecords($sql); - $ip_select = ""; - //$ip_select = ""; - if(is_array($ips)) { - foreach( $ips as $ip) { - $selected = ($ip["ip_address"] == $this->dataRecord["ip_address"])?'SELECTED':''; - $ip_select .= "\r\n"; - } - } - $app->tpl->setVar("ip_address",$ip_select); - unset($tmp); - unset($ips); - - // Fill the client select field - $sql = "SELECT groupid, name FROM sys_group WHERE client_id > 0 ORDER BY name"; - $clients = $app->db->queryAllRecords($sql); - $client_select = ""; - $tmp_data_record = $app->tform->getDataRecord($this->id); - if(is_array($clients)) { - foreach( $clients as $client) { - $selected = @($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':''; - $client_select .= "\r\n"; - } - } - $app->tpl->setVar("client_group_id",$client_select); - - } - - /* - * If the names are restricted -> remove the restriction, so that the - * data can be edited - */ - - //* Get the database name and database user prefix - $app->uses('getconf'); - $global_config = $app->getconf->get_global_config('sites'); - $dbname_prefix = replacePrefix($global_config['dbname_prefix'], $this->dataRecord); - $dbuser_prefix = replacePrefix($global_config['dbuser_prefix'], $this->dataRecord); - - if ($this->dataRecord['database_name'] != ""){ - /* REMOVE the restriction */ - $app->tpl->setVar("database_name", str_replace($dbname_prefix , '', $this->dataRecord['database_name'])); - $app->tpl->setVar("database_user", str_replace($dbuser_prefix , '', $this->dataRecord['database_user'])); - } - - if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - $app->tpl->setVar("database_name_prefix", $global_config['dbname_prefix']); - $app->tpl->setVar("database_user_prefix", $global_config['dbuser_prefix']); - } else { - $app->tpl->setVar("database_name_prefix", $dbname_prefix); - $app->tpl->setVar("database_user_prefix", $dbuser_prefix); - } - - if($this->id > 0) { - //* we are editing a existing record - $app->tpl->setVar("edit_disabled", 1); - $app->tpl->setVar("server_id_value", $this->dataRecord["server_id"]); - $app->tpl->setVar("database_charset_value", $this->dataRecord["database_charset"]); - } else { - $app->tpl->setVar("edit_disabled", 0); - } - - parent::onShowEnd(); - } - - function onSubmit() { - global $app, $conf; - - if($_SESSION["s"]["user"]["typ"] != 'admin') { - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT default_dbserver, limit_database FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // When the record is updated - if($this->id > 0) { - // restore the server ID if the user is not admin and record is edited - $tmp = $app->db->queryOneRecord("SELECT server_id FROM web_database WHERE database_id = ".intval($this->id)); - $this->dataRecord["server_id"] = $tmp["server_id"]; - unset($tmp); - // When the record is inserted - } else { - // set the server ID to the default dbserver of the client - $this->dataRecord["server_id"] = $client["default_dbserver"]; - - - // Check if the user may add another database - if($client["limit_database"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(database_id) as number FROM web_database WHERE sys_groupid = $client_group_id"); - if($tmp["number"] >= $client["limit_database"]) { - $app->error($app->tform->wordbook["limit_database_txt"]); - } - } - - } - - // Clients may not set the client_group_id, so we unset them if user is not a admin and the client is not a reseller - if(!$app->auth->has_clients($_SESSION['s']['user']['userid'])) unset($this->dataRecord["client_group_id"]); - } - - - parent::onSubmit(); - } - - function onBeforeUpdate() { - global $app, $conf, $interfaceConf; - - /* - * If the names should be restricted -> do it! - */ - - - //* Get the database name and database user prefix - $app->uses('getconf'); - $global_config = $app->getconf->get_global_config('sites'); - $dbname_prefix = replacePrefix($global_config['dbname_prefix'], $this->dataRecord); - $dbuser_prefix = replacePrefix($global_config['dbuser_prefix'], $this->dataRecord); - - //* Prevent that the database name and charset is changed - $old_record = $app->tform->getDataRecord($this->id); - if($old_record["database_name"] != $dbname_prefix . $this->dataRecord["database_name"]) { - $app->tform->errorMessage .= $app->tform->wordbook["database_name_change_txt"].'
    '; - } - if($old_record["database_charset"] != $this->dataRecord["database_charset"]) { - $app->tform->errorMessage .= $app->tform->wordbook["database_charset_change_txt"].'
    '; - } - - //* Database username and database name shall not be empty - if($this->dataRecord['database_name'] == '') $app->tform->errorMessage .= $app->tform->wordbook["database_name_error_empty"].'
    '; - if($this->dataRecord['database_user'] == '') $app->tform->errorMessage .= $app->tform->wordbook["database_user_error_empty"].'
    '; - - //* Check if the server has been changed - // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway - if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - if($old_record["server_id"] != $this->dataRecord["server_id"]) { - //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The Server can not be changed.'); - $this->dataRecord["server_id"] = $rec['server_id']; - } - } - unset($old_record); - - if(strlen($dbname_prefix . $this->dataRecord['database_name']) > 64) $app->tform->errorMessage .= str_replace('{db}',$dbname_prefix . $this->dataRecord['database_name'],$app->tform->wordbook["database_name_error_len"]).'
    '; - if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16) $app->tform->errorMessage .= str_replace('{user}',$dbuser_prefix . $this->dataRecord['database_user'],$app->tform->wordbook["database_user_error_len"]).'
    '; - - if ($app->tform->errorMessage == ''){ - /* restrict the names if there is no error */ - /* crop user and db names if they are too long -> mysql: user: 16 chars / db: 64 chars */ - $this->dataRecord['database_name'] = substr($dbname_prefix . $this->dataRecord['database_name'], 0, 64); - $this->dataRecord['database_user'] = substr($dbuser_prefix . $this->dataRecord['database_user'], 0, 16); - } - - parent::onBeforeUpdate(); - } - - function onBeforeInsert() { - global $app, $conf, $interfaceConf; - - //* Database username and database name shall not be empty - if($this->dataRecord['database_name'] == '') $app->tform->errorMessage .= $app->tform->wordbook["database_name_error_empty"].'
    '; - if($this->dataRecord['database_user'] == '') $app->tform->errorMessage .= $app->tform->wordbook["database_user_error_empty"].'
    '; - - //* Get the database name and database user prefix - $app->uses('getconf'); - $global_config = $app->getconf->get_global_config('sites'); - $dbname_prefix = replacePrefix($global_config['dbname_prefix'], $this->dataRecord); - $dbuser_prefix = replacePrefix($global_config['dbuser_prefix'], $this->dataRecord); - - if(strlen($dbname_prefix . $this->dataRecord['database_name']) > 64) $app->tform->errorMessage .= str_replace('{db}',$dbname_prefix . $this->dataRecord['database_name'],$app->tform->wordbook["database_name_error_len"]).'
    '; - if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16) $app->tform->errorMessage .= str_replace('{user}',$dbuser_prefix . $this->dataRecord['database_user'],$app->tform->wordbook["database_user_error_len"]).'
    '; - - - /* restrict the names */ - /* crop user and db names if they are too long -> mysql: user: 16 chars / db: 64 chars */ - if ($app->tform->errorMessage == ''){ - $this->dataRecord['database_name'] = substr($dbname_prefix . $this->dataRecord['database_name'], 0, 64); - $this->dataRecord['database_user'] = substr($dbuser_prefix . $this->dataRecord['database_user'], 0, 16); - } - - parent::onBeforeInsert(); - } - - function onAfterInsert() { - global $app, $conf; - - // make sure that the record belongs to the clinet group and not the admin group when a dmin inserts it - // also make sure that the user can not delete domain created by a admin - if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE web_database SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE database_id = ".$this->id); - } - if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE web_database SET sys_groupid = $client_group_id, sys_perm_group = 'riud' WHERE database_id = ".$this->id); - } - } - - function onAfterUpdate() { - global $app, $conf; - - // make sure that the record belongs to the client group and not the admin group when a admin inserts it - // also make sure that the user can not delete domain created by a admin - if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE web_database SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE database_id = ".$this->id); - } - if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE web_database SET sys_groupid = $client_group_id, sys_perm_group = 'riud' WHERE database_id = ".$this->id); - } - - } - -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/database_list.php b/interface/ispconfig/interface/sites/database_list.php deleted file mode 100644 index d04284368..000000000 --- a/interface/ispconfig/interface/sites/database_list.php +++ /dev/null @@ -1,73 +0,0 @@ -auth->check_module_permissions('sites'); - -$app->load('listform_actions'); - - -class list_action extends listform_actions { - - function onShow() { - global $app,$conf; - - $app->uses('getconf'); - $global_config = $app->getconf->get_global_config('sites'); - - if($global_config['dblist_phpmyadmin_link'] == 'y') { - $app->tpl->setVar('dblist_phpmyadmin_link',1); - } else { - $app->tpl->setVar('dblist_phpmyadmin_link',0); - } - - parent::onShow(); - } - -} - -$list = new list_action; -$list->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/database_phpmyadmin.php b/interface/ispconfig/interface/sites/database_phpmyadmin.php deleted file mode 100644 index 1dc153012..000000000 --- a/interface/ispconfig/interface/sites/database_phpmyadmin.php +++ /dev/null @@ -1,70 +0,0 @@ -auth->check_module_permissions('sites'); - -/* - * get the id of the database (must be int!) - */ -if (!isset($_GET['id'])){ - die ("No DB selected!"); -} -$databaseId = intval($_GET['id']); - -/* - * Get the data to connect to the database - */ -$dbData = $app->db->queryOneRecord("SELECT server_id FROM web_database WHERE database_id = " . $databaseId); -$serverId = intval($dbData['server_id']); -if ($serverId == 0){ - die ("No DB-Server found!"); -} -$serverData = $app->db->queryOneRecord( - "SELECT server_name FROM server WHERE server_id = " . - $serverId); - -$app->uses('getconf'); -$global_config = $app->getconf->get_global_config('sites'); - -/* - * We only redirect to the login-form, so there is no need, to check any rights - */ -if($global_config['phpmyadmin_url'] != '') { - header('Location:'.$global_config['phpmyadmin_url']); -} else { - isset($_SERVER['HTTPS'])? $http = 'https' : $http = 'http'; - header('location:' . $http . '://' . $serverData['server_name'] . '/phpmyadmin'); -} -exit; -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/form/cron.tform.php b/interface/ispconfig/interface/sites/form/cron.tform.php deleted file mode 100644 index 2440271a2..000000000 --- a/interface/ispconfig/interface/sites/form/cron.tform.php +++ /dev/null @@ -1,189 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['cron'] = array ( - 'title' => "Cron Job", - 'width' => 100, - 'template' => "templates/cron_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND web_server = 1 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'server_id_error_empty'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'parent_domain_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => "SELECT domain_id,domain FROM web_domain WHERE type = 'vhost' AND {AUTHSQL} ORDER BY domain", - 'keyfield'=> 'domain_id', - 'valuefield'=> 'domain' - ), - 'value' => '' - ), - 'run_min' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'CUSTOM', - 'class' => 'validate_cron', - 'function' => 'run_time_format', - 'errmsg'=> 'run_min_error_format'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'run_hour' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'CUSTOM', - 'class' => 'validate_cron', - 'function' => 'run_time_format', - 'errmsg'=> 'run_hour_error_format'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'run_mday' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'CUSTOM', - 'class' => 'validate_cron', - 'function' => 'run_time_format', - 'errmsg'=> 'run_mday_error_format'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'run_month' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'CUSTOM', - 'class' => 'validate_cron', - 'function' => 'run_time_format', - 'errmsg'=> 'run_month_error_format'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'run_wday' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'CUSTOM', - 'class' => 'validate_cron', - 'function' => 'run_time_format', - 'errmsg'=> 'run_wday_error_format'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'command' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'command_error_empty'), - 1 => array ( 'type' => 'CUSTOM', - 'class' => 'validate_cron', - 'function' => 'command_format', - 'errmsg'=> 'command_error_format'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'url', - 'valuelimit' => 'list:url,full,chrooted', - 'value' => array('url' => 'Url', 'full' => 'Full', 'chrooted' => 'Chrooted') - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/form/database.tform.php b/interface/ispconfig/interface/sites/form/database.tform.php deleted file mode 100644 index a7e30452d..000000000 --- a/interface/ispconfig/interface/sites/form/database.tform.php +++ /dev/null @@ -1,155 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['database'] = array ( - 'title' => "Database", - 'width' => 100, - 'template' => "templates/database_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} AND db_server = 1 ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'y', - 'value' => array('mysql' => 'MySQL') - ), - 'database_name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'database_name_error_empty'), - 1 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'database_name_error_unique'), - 2 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-9_]{2,64}$/', - 'errmsg'=> 'database_name_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'database_user' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'database_user_error_empty'), - 1 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'database_user_error_unique'), - 2 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-9_]{2,64}$/', - 'errmsg'=> 'database_user_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'database_password' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'database_charset' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'y', - 'value' => array('' => 'DB-Default','latin1' => 'Latin 1','utf8' => 'UTF-8') - ), - 'remote_access' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - 'remote_ips' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'CUSTOM', - 'class' => 'validate_database', - 'function' => 'valid_ip_list', - 'errmsg' => 'database_remote_error_ips'), - ), - 'default' => '', - 'value' => '', - 'width' => '60' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/form/ftp_user.tform.php b/interface/ispconfig/interface/sites/form/ftp_user.tform.php deleted file mode 100644 index 2b65c8531..000000000 --- a/interface/ispconfig/interface/sites/form/ftp_user.tform.php +++ /dev/null @@ -1,253 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['ftp'] = array ( - 'title' => "FTP User", - 'width' => 100, - 'template' => "templates/ftp_user_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'parent_domain_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => "SELECT domain_id,domain FROM web_domain WHERE type = 'vhost' AND {AUTHSQL} ORDER BY domain", - 'keyfield'=> 'domain_id', - 'valuefield'=> 'domain' - ), - 'value' => '' - ), - 'username' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'username_error_unique'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{0,64}$/', - 'errmsg'=> 'username_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'password' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'PASSWORD', - 'encryption' => 'CRYPT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'quota_size' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'quota_size_error_empty'), - ), - 'default' => '-1', - 'value' => '', - 'width' => '7', - 'maxlength' => '7' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -if($_SESSION["s"]["user"]["typ"] == 'admin') { - -$form["tabs"]['advanced'] = array ( - 'title' => "Options", - 'width' => 100, - 'template' => "templates/ftp_user_advanced.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'uid' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'uid_error_empty'), - ), - 'default' => '0', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'gid' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'uid_error_empty'), - ), - 'default' => '0', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'dir' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'directory_error_empty'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'quota_files' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '7', - 'maxlength' => '7' - ), - 'ul_ratio' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '7', - 'maxlength' => '7' - ), - 'dl_ratio' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '7', - 'maxlength' => '7' - ), - 'ul_bandwidth' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '7', - 'maxlength' => '7' - ), - 'dl_bandwidth' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '7', - 'maxlength' => '7' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -} else { - -$form["tabs"]['advanced'] = array ( - 'title' => "Options", - 'width' => 100, - 'template' => "templates/ftp_user_advanced_client.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'dir' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'directory_error_empty'), - 1 => array ( 'type' => 'CUSTOM', - 'class' => 'validate_ftpuser', - 'function' => 'ftp_dir', - 'errmsg' => 'directory_error_notinweb'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -} - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/form/shell_user.tform.php b/interface/ispconfig/interface/sites/form/shell_user.tform.php deleted file mode 100644 index cd4dadff6..000000000 --- a/interface/ispconfig/interface/sites/form/shell_user.tform.php +++ /dev/null @@ -1,196 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['shell'] = array ( - 'title' => "Shell User", - 'width' => 100, - 'template' => "templates/shell_user_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'parent_domain_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => "SELECT domain_id,domain FROM web_domain WHERE type = 'vhost' AND {AUTHSQL} ORDER BY domain", - 'keyfield'=> 'domain_id', - 'valuefield'=> 'domain' - ), - 'value' => '' - ), - 'username' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'username_error_unique'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{0,64}$/', - 'errmsg'=> 'username_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'password' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'PASSWORD', - 'encryption' => 'CRYPT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'chroot' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'valuelimit' => 'client:ssh_chroot', - 'value' => array('no' => 'None', 'jailkit' => 'Jailkit') - ), - 'quota_size' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'quota_size_error_empty'), - ), - 'default' => '-1', - 'value' => '', - 'width' => '7', - 'maxlength' => '7' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -if($_SESSION["s"]["user"]["typ"] == 'admin') { - -$form["tabs"]['advanced'] = array ( - 'title' => "Options", - 'width' => 100, - 'template' => "templates/shell_user_advanced.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'puser' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'uid_error_empty'), - ), - 'default' => '0', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'pgroup' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'uid_error_empty'), - ), - 'default' => '0', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'shell' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '/bin/bash', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'dir' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'directory_error_empty'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -} - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/form/web_aliasdomain.tform.php b/interface/ispconfig/interface/sites/form/web_aliasdomain.tform.php deleted file mode 100644 index 1a8dc0b61..000000000 --- a/interface/ispconfig/interface/sites/form/web_aliasdomain.tform.php +++ /dev/null @@ -1,142 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['domain'] = array ( - 'title' => "Domain", - 'width' => 100, - 'template' => "templates/web_aliasdomain_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'domain' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'domain_error_empty'), - 1 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'domain_error_unique'), - 2 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z]{2,10}$/', - 'errmsg'=> 'domain_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'y', - 'value' => array('vhost' => 'Site', 'alias' => 'Alias', 'subdomain' => 'Subdomain') - ), - 'parent_domain_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => "SELECT domain_id,domain FROM web_domain WHERE type = 'vhost' AND {AUTHSQL} ORDER BY domain", - 'keyfield'=> 'domain_id', - 'valuefield'=> 'domain' - ), - 'value' => '' - ), - 'redirect_type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'y', - 'value' => array('' => 'No redirect', 'no' => 'No flag', 'R' => 'R', 'L' => 'L', 'R,L' => 'R,L') - ), - 'redirect_path' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '@^(([.]{0})|(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.\-\,\+\?]*(\?\S+)?)?)?)|(/[\w/_\.\-]{1,255}/))$@', - 'errmsg'=> 'redirect_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'subdomain' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'y', - 'value' => array('none' => 'none', 'www' => 'www.', '*' => '*.') - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/form/web_domain.tform.php b/interface/ispconfig/interface/sites/form/web_domain.tform.php deleted file mode 100644 index a91e7fb29..000000000 --- a/interface/ispconfig/interface/sites/form/web_domain.tform.php +++ /dev/null @@ -1,463 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -// Clients may not change the website basic settings if they are not resellers -if($app->auth->has_clients($_SESSION['s']['user']['userid']) || $app->auth->is_admin()) { - $web_domain_edit_readonly = false; -} else { - $web_domain_edit_readonly = true; -} - - -$form["tabs"]['domain'] = array ( - 'title' => "Domain", - 'width' => 100, - 'template' => "templates/web_domain_edit.htm", - 'readonly' => $web_domain_edit_readonly, - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND web_server = 1 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'ip_address' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT ip_address,ip_address FROM server_ip WHERE {AUTHSQL} ORDER BY ip_address', - 'keyfield'=> 'ip_address', - 'valuefield'=> 'ip_address' - ), - 'value' => '' - ), - 'domain' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'domain_error_empty'), - 1 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'domain_error_unique'), - 2 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z]{2,10}$/', - 'errmsg'=> 'domain_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'y', - 'value' => array('vhost' => 'Site', 'alias' => 'Alias') - ), - 'parent_domain_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => "SELECT domain_id,domain FROM web_domain WHERE type = 'site' AND {AUTHSQL} ORDER BY domain", - 'keyfield'=> 'domain_id', - 'valuefield'=> 'domain' - ), - 'value' => '' - ), - 'vhost_type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'y', - 'value' => array('name' => 'Namebased', 'ip' => 'IP-Based') - ), - 'hd_quota' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'hd_quota_error_empty'), - ), - 'default' => '-1', - 'value' => '', - 'width' => '7', - 'maxlength' => '7' - ), - 'traffic_quota' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'traffic_quota_error_empty'), - ), - 'default' => '-1', - 'value' => '', - 'width' => '7', - 'maxlength' => '7' - ), - 'cgi' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n',1 => 'y') - ), - 'ssi' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n',1 => 'y') - ), - 'suexec' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n',1 => 'y') - ), - 'errordocs' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'CHECKBOX', - 'default' => '1', - 'value' => array(0 => '0',1 => '1') - ), - 'subdomain' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'y', - 'value' => array('none' => 'none', 'www' => 'www.', '*' => '*.') - ), - 'ssl' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n',1 => 'y') - ), - 'php' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'fast-cgi', - 'valuelimit' => 'client:web_php_options', - 'value' => array('no' => 'Disabled', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP') - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - -$form["tabs"]['redirect'] = array ( - 'title' => "Redirect", - 'width' => 100, - 'template' => "templates/web_domain_redirect.htm", - 'readonly' => false, - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'redirect_type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('' => 'No redirect', 'no' => 'No flag', 'R' => 'R', 'L' => 'L', 'R,L' => 'R,L') - ), - 'redirect_path' => array ( - 'datatype' => 'VARCHAR', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '@^(([.]{0})|(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.\,\-\+\?]*(\?\S+)?)?)?)|(/[\w/_\.\-]{1,255}/))$@', - 'errmsg'=> 'redirect_error_regex'), - ), - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -$form["tabs"]['ssl'] = array ( - 'title' => "SSL", - 'width' => 100, - 'template' => "templates/web_domain_ssl.htm", - 'readonly' => false, - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'ssl_state' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^(([.]{0})|([a-zA-Z0-9\ \.\-\_\,]{1,255}))$/', - 'errmsg'=> 'ssl_state_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'ssl_locality' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^(([.]{0})|([a-zA-Z0-9\ \.\-\_\,]{1,255}))$/', - 'errmsg'=> 'ssl_locality_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'ssl_organisation' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^(([.]{0})|([a-zA-Z0-9\ \.\-\_\,]{1,255}))$/', - 'errmsg'=> 'ssl_organisation_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'ssl_organisation_unit' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^(([.]{0})|([a-zA-Z0-9\ \.\-\_\,]{1,255}))$/', - 'errmsg'=> 'ssl_organistaion_unit_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'ssl_country' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^(([.]{0})|([A-Z]{2,2}))$/', - 'errmsg'=> 'ssl_country_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '2', - 'maxlength' => '2' - ), - 'ssl_domain' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'ssl_request' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'TEXTAREA', - 'default' => '', - 'value' => '', - 'cols' => '30', - 'rows' => '10' - ), - 'ssl_cert' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'TEXTAREA', - 'default' => '', - 'value' => '', - 'cols' => '30', - 'rows' => '10' - ), - 'ssl_bundle' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'TEXTAREA', - 'default' => '', - 'value' => '', - 'cols' => '30', - 'rows' => '10' - ), - 'ssl_action' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('' => 'None', 'save' => 'Save Certificate', 'create' => 'Create Certificate','del' => 'Delete Certificate') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -//* Statistics -$form["tabs"]['stats'] = array ( - 'title' => "Stats", - 'width' => 100, - 'template' => "templates/web_domain_stats.htm", - 'readonly' => false, - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'stats_password' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'PASSWORD', - 'encryption' => 'CRYPT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -if($_SESSION["s"]["user"]["typ"] == 'admin') { - -$form["tabs"]['advanced'] = array ( - 'title' => "Options", - 'width' => 100, - 'template' => "templates/web_domain_advanced.htm", - 'readonly' => false, - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'document_root' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'documentroot_error_empty'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'system_user' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'sysuser_error_empty'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'system_group' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'sysgroup_error_empty'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'allow_override' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'allow_override_error_empty'), - ), - 'default' => 'All', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'php_open_basedir' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'php_open_basedir_error_empty'), - ), - 'default' => 'All', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'apache_directives' => array ( - 'datatype' => 'TEXT', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - -} - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/form/web_subdomain.tform.php b/interface/ispconfig/interface/sites/form/web_subdomain.tform.php deleted file mode 100644 index b6b1a3c29..000000000 --- a/interface/ispconfig/interface/sites/form/web_subdomain.tform.php +++ /dev/null @@ -1,136 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['domain'] = array ( - 'title' => "Domain", - 'width' => 100, - 'template' => "templates/web_subdomain_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'server_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'value' => '' - ), - 'domain' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'domain_error_empty'), - 1 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'domain_error_unique'), - 2 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z]{2,10}$/', - 'errmsg'=> 'domain_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'y', - 'value' => array('vhost' => 'Site', 'alias' => 'Alias', 'subdomain' => 'Subdomain') - ), - 'parent_domain_id' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '', - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => "SELECT domain_id,domain FROM web_domain WHERE type = 'vhost' AND {AUTHSQL} ORDER BY domain", - 'keyfield'=> 'domain_id', - 'valuefield'=> 'domain' - ), - 'value' => '' - ), - 'redirect_type' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'y', - 'value' => array('' => 'No redirect', 'no' => 'No flag', 'R' => 'R', 'L' => 'L', 'R,L' => 'R,L') - ), - 'redirect_path' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '@^(([.]{0})|(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.\-\,\+\?]*(\?\S+)?)?)?)|(/[\w/_\.\-]{1,255}/))$@', - 'errmsg'=> 'redirect_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n',1 => 'y') - ), - ################################## - # ENDE Datatable fields - ################################## - ) -); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/ftp_user_del.php b/interface/ispconfig/interface/sites/ftp_user_del.php deleted file mode 100644 index 479e19a97..000000000 --- a/interface/ispconfig/interface/sites/ftp_user_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('sites'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/ftp_user_edit.php b/interface/ispconfig/interface/sites/ftp_user_edit.php deleted file mode 100644 index 9823813e6..000000000 --- a/interface/ispconfig/interface/sites/ftp_user_edit.php +++ /dev/null @@ -1,209 +0,0 @@ -auth->check_module_permissions('sites'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_ftp_user')) { - $app->error($app->tform->wordbook["limit_ftp_user_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_ftp_user')) { - $app->error('Reseller: '.$app->tform->wordbook["limit_ftp_user_txt"]); - } - } - - parent::onShowNew(); - } - - function onShowEnd() { - global $app, $conf, $interfaceConf; - /* - * If the names are restricted -> remove the restriction, so that the - * data can be edited - */ - - $app->uses('getconf'); - $global_config = $app->getconf->get_global_config('sites'); - // $ftpuser_prefix = ($global_config['ftpuser_prefix'] == '')?'':str_replace('[CLIENTNAME]', $this->getClientName(), $global_config['ftpuser_prefix']); - $ftpuser_prefix = replacePrefix($global_config['ftpuser_prefix'], $this->dataRecord); - - if ($this->dataRecord['username'] != ""){ - /* REMOVE the restriction */ - $app->tpl->setVar("username", str_replace($ftpuser_prefix , '', $this->dataRecord['username'])); - } - if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - $app->tpl->setVar("username_prefix", $global_config['ftpuser_prefix']); - } - else { - $app->tpl->setVar("username_prefix", $ftpuser_prefix); - } - - parent::onShowEnd(); - } - - function onSubmit() { - global $app, $conf; - - // Get the record of the parent domain - $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".intval(@$this->dataRecord["parent_domain_id"])); - - // Set a few fixed values - $this->dataRecord["server_id"] = $parent_domain["server_id"]; - - //die(print_r($this->dataRecord)); - - if(isset($this->dataRecord['username']) && trim($this->dataRecord['username']) == '') $app->tform->errorMessage .= $app->tform->lng('username_error_empty').'
    '; - if(isset($this->dataRecord['username']) && empty($this->dataRecord['parent_domain_id'])) $app->tform->errorMessage .= $app->tform->lng('parent_domain_id_error_empty').'
    '; - - parent::onSubmit(); - } - - function onBeforeInsert() { - global $app, $conf, $interfaceConf; - - $app->uses('getconf'); - $global_config = $app->getconf->get_global_config('sites'); - //$ftpuser_prefix = ($global_config['ftpuser_prefix'] == '')?'':str_replace('[CLIENTNAME]', $this->getClientName(), $global_config['ftpuser_prefix']); - $ftpuser_prefix = replacePrefix($global_config['ftpuser_prefix'], $this->dataRecord); - - if ($app->tform->errorMessage == '') { - $this->dataRecord['username'] = $ftpuser_prefix . $this->dataRecord['username']; - } - - parent::onBeforeInsert(); - } - - function onAfterInsert() { - global $app, $conf; - - $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".intval($this->dataRecord["parent_domain_id"])); - $server_id = $web["server_id"]; - $dir = $web["document_root"]; - $uid = $web["system_user"]; - $gid = $web["system_group"]; - - // The FTP user shall be owned by the same group then the website - $sys_groupid = $web['sys_groupid']; - - $sql = "UPDATE ftp_user SET server_id = $server_id, dir = '$dir', uid = '$uid', gid = '$gid', sys_groupid = '$sys_groupid' WHERE ftp_user_id = ".$this->id; - $app->db->query($sql); - - - } - - function onBeforeUpdate() { - global $app, $conf, $interfaceConf; - - /* - * If the names should be restricted -> do it! - */ - - $app->uses('getconf'); - $global_config = $app->getconf->get_global_config('sites'); - //$ftpuser_prefix = ($global_config['ftpuser_prefix'] == '')?'':str_replace('[CLIENTNAME]', $this->getClientName(), $global_config['ftpuser_prefix']); - $ftpuser_prefix = replacePrefix($global_config['ftpuser_prefix'], $this->dataRecord); - - /* restrict the names */ - if ($app->tform->errorMessage == '') { - $this->dataRecord['username'] = $ftpuser_prefix . $this->dataRecord['username']; - } - } - - function onAfterUpdate() { - global $app, $conf; - - //* When the site of the FTP user has been changed - if($this->oldDataRecord['parent_domain_id'] != $this->dataRecord['parent_domain_id']) { - $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".intval($this->dataRecord["parent_domain_id"])); - $server_id = $web["server_id"]; - $dir = $web["document_root"]; - $uid = $web["system_user"]; - $gid = $web["system_group"]; - - // The FTP user shall be owned by the same group then the website - $sys_groupid = $web['sys_groupid']; - - $sql = "UPDATE ftp_user SET server_id = $server_id, dir = '$dir', uid = '$uid', gid = '$gid', sys_groupid = '$sys_groupid' WHERE ftp_user_id = ".$this->id; - $app->db->query($sql); - } - - } - - function getClientName() { - global $app, $conf; - - if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) { - // Get the group-id of the user - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - } else { - // Get the group-id from the data itself - $web = $app->db->queryOneRecord("SELECT sys_groupid FROM web_domain WHERE domain_id = ".intval($this->dataRecord['parent_domain_id'])); - $client_group_id = $web['sys_groupid']; - } - /* get the name of the client */ - $tmp = $app->db->queryOneRecord("SELECT name FROM sys_group WHERE groupid = " . $client_group_id); - $clientName = $tmp['name']; - if ($clientName == "") $clientName = 'default'; - $clientName = convertClientName($clientName); - return $clientName; - - } - -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/ftp_user_list.php b/interface/ispconfig/interface/sites/ftp_user_list.php deleted file mode 100644 index 2daaf6b5d..000000000 --- a/interface/ispconfig/interface/sites/ftp_user_list.php +++ /dev/null @@ -1,55 +0,0 @@ -auth->check_module_permissions('sites'); - -$app->uses('listform_actions'); - -// Limit the results to alias domains -//$app->listform_actions->SQLExtWhere = "type = 'subdomain'"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/lib/admin.conf.php b/interface/ispconfig/interface/sites/lib/admin.conf.php deleted file mode 100644 index a45d44034..000000000 --- a/interface/ispconfig/interface/sites/lib/admin.conf.php +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/lib/lang/bg.lng b/interface/ispconfig/interface/sites/lib/lang/bg.lng deleted file mode 100644 index 96c4d23e4..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/bg.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/bg_cron.lng b/interface/ispconfig/interface/sites/lib/lang/bg_cron.lng deleted file mode 100644 index fecb4ab45..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/bg_cron.lng +++ /dev/null @@ -1,21 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/bg_cron_list.lng b/interface/ispconfig/interface/sites/lib/lang/bg_cron_list.lng deleted file mode 100644 index ad56ea956..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/bg_cron_list.lng +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/bg_database.lng b/interface/ispconfig/interface/sites/lib/lang/bg_database.lng deleted file mode 100644 index 36a772a9e..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/bg_database.lng +++ /dev/null @@ -1,25 +0,0 @@ -any)'; -$wb['database_remote_error_ips'] = 'At least one of the entered ip addresses is invalid.'; -$wb['database_name_error_len'] = 'Database name - {db} - too long. The max. database name length incl. prefix is 64 chars.'; -$wb['database_user_error_len'] = 'Database username - {user}- too long. The max. database username length incl. prefix is 16 chars.'; -?> diff --git a/interface/ispconfig/interface/sites/lib/lang/bg_database_list.lng b/interface/ispconfig/interface/sites/lib/lang/bg_database_list.lng deleted file mode 100644 index 4ca18c1fd..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/bg_database_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/bg_ftp_user.lng b/interface/ispconfig/interface/sites/lib/lang/bg_ftp_user.lng deleted file mode 100644 index 7627ad7d6..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/bg_ftp_user.lng +++ /dev/null @@ -1,27 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/bg_ftp_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/bg_ftp_user_list.lng deleted file mode 100644 index b5663c545..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/bg_ftp_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/bg_shell_user.lng b/interface/ispconfig/interface/sites/lib/lang/bg_shell_user.lng deleted file mode 100644 index 5e7541320..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/bg_shell_user.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/bg_shell_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/bg_shell_user_list.lng deleted file mode 100644 index 254095ecd..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/bg_shell_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/bg_web_aliasdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/bg_web_aliasdomain_list.lng deleted file mode 100644 index c30d559a2..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/bg_web_aliasdomain_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/bg_web_domain.lng b/interface/ispconfig/interface/sites/lib/lang/bg_web_domain.lng deleted file mode 100644 index d705cb4bf..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/bg_web_domain.lng +++ /dev/null @@ -1,60 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/bg_web_domain_list.lng b/interface/ispconfig/interface/sites/lib/lang/bg_web_domain_list.lng deleted file mode 100644 index 57d63e561..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/bg_web_domain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/bg_web_sites_stats_list.lng b/interface/ispconfig/interface/sites/lib/lang/bg_web_sites_stats_list.lng deleted file mode 100644 index b217f80cc..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/bg_web_sites_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/bg_web_subdomain.lng b/interface/ispconfig/interface/sites/lib/lang/bg_web_subdomain.lng deleted file mode 100644 index 265bb171f..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/bg_web_subdomain.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/bg_web_subdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/bg_web_subdomain_list.lng deleted file mode 100644 index d08e40579..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/bg_web_subdomain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/br.lng b/interface/ispconfig/interface/sites/lib/lang/br.lng deleted file mode 100644 index f78b138b7..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/br.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/br_cron.lng b/interface/ispconfig/interface/sites/lib/lang/br_cron.lng deleted file mode 100644 index f0739c6d7..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/br_cron.lng +++ /dev/null @@ -1,21 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/br_cron_list.lng b/interface/ispconfig/interface/sites/lib/lang/br_cron_list.lng deleted file mode 100644 index b974f0fb1..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/br_cron_list.lng +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/br_database.lng b/interface/ispconfig/interface/sites/lib/lang/br_database.lng deleted file mode 100644 index a0f3d6847..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/br_database.lng +++ /dev/null @@ -1,25 +0,0 @@ -quaisquer ips)'; -$wb['database_remote_error_ips'] = 'Pelo menos um dos endereços ip informados não é válido.'; -$wb['database_name_error_len'] = 'Nome do banco de dados - {db} - é muito longo. 64 caracteres é o número máximo permitido incluindo prefixo.'; -$wb['database_user_error_len'] = 'Nome de usuário de banco - {user}- é muito longo. 16 caracteres é o número máximo permitido incluindo prefixo.'; -?> diff --git a/interface/ispconfig/interface/sites/lib/lang/br_database_list.lng b/interface/ispconfig/interface/sites/lib/lang/br_database_list.lng deleted file mode 100644 index 449baa8bb..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/br_database_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/br_ftp_user.lng b/interface/ispconfig/interface/sites/lib/lang/br_ftp_user.lng deleted file mode 100644 index e24355fb4..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/br_ftp_user.lng +++ /dev/null @@ -1,27 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/br_ftp_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/br_ftp_user_list.lng deleted file mode 100644 index a9540c9cd..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/br_ftp_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/br_shell_user.lng b/interface/ispconfig/interface/sites/lib/lang/br_shell_user.lng deleted file mode 100644 index 2a99587eb..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/br_shell_user.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/br_shell_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/br_shell_user_list.lng deleted file mode 100644 index 512f9fe83..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/br_shell_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/br_web_aliasdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/br_web_aliasdomain_list.lng deleted file mode 100644 index f9dbfa277..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/br_web_aliasdomain_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/br_web_domain.lng b/interface/ispconfig/interface/sites/lib/lang/br_web_domain.lng deleted file mode 100644 index 5f8321faf..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/br_web_domain.lng +++ /dev/null @@ -1,60 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/br_web_domain_list.lng b/interface/ispconfig/interface/sites/lib/lang/br_web_domain_list.lng deleted file mode 100644 index dc5200387..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/br_web_domain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/br_web_sites_stats_list.lng b/interface/ispconfig/interface/sites/lib/lang/br_web_sites_stats_list.lng deleted file mode 100644 index 903c90571..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/br_web_sites_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/br_web_subdomain.lng b/interface/ispconfig/interface/sites/lib/lang/br_web_subdomain.lng deleted file mode 100644 index 0a63c460d..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/br_web_subdomain.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/br_web_subdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/br_web_subdomain_list.lng deleted file mode 100644 index 83511672a..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/br_web_subdomain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/de.lng b/interface/ispconfig/interface/sites/lib/lang/de.lng deleted file mode 100644 index d921ad4d8..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/de.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/de_cron.lng b/interface/ispconfig/interface/sites/lib/lang/de_cron.lng deleted file mode 100644 index f002b126a..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/de_cron.lng +++ /dev/null @@ -1,21 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/de_cron_list.lng b/interface/ispconfig/interface/sites/lib/lang/de_cron_list.lng deleted file mode 100644 index 9778e9fa9..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/de_cron_list.lng +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/de_database.lng b/interface/ispconfig/interface/sites/lib/lang/de_database.lng deleted file mode 100644 index f604997ba..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/de_database.lng +++ /dev/null @@ -1,25 +0,0 @@ -alle)'; -$wb['database_remote_error_ips'] = 'Mindestens eine der eingegebenen IP Adressen ist ungültig.'; -$wb['client_txt'] = 'Kunde'; -$wb['active_txt'] = 'Aktiv'; -$wb['database_name_error_empty'] = 'Datenbankname ist leer.'; -$wb['database_name_error_unique'] = 'Es existiert bereits eine Datenbank mit diesem Namen am Server. Um einen eindeutigen Namen zu erhalten können sie z.B. den Domainnamen vor dem Datenbanknamen verwenden.'; -$wb['database_name_error_regex'] = 'Ungültiger Datenbankname. Der Datenbankname darf die Zeichen: a-z, A-Z, 0-9 und den Unterstrich beinhalten. Länge: 2 - 64 Zeichen.'; -$wb['database_user_error_empty'] = 'Datenbank Benutzer ist leer.'; -$wb['database_user_error_unique'] = 'Es existiert bereits ein Benutzer mit diesem Namen am Server. Um einen eindeutigen Namen zu erhalten können sie z.B. den Domainnamen vor dem Benutzernamen verwenden.'; -$wb['database_user_error_regex'] = 'Ungültiger Benutzername. Der Benutzername darf die Zeichen: a-z, A-Z, 0-9 und den Unterstrich beinhalten. Länge: 2 - 64 Zeichen.'; -$wb['limit_database_txt'] = 'Die maximale Anzahl an Datenbanken wurde erreicht.'; -$wb['database_name_change_txt'] = 'Der Datenbankname kann nicht geändert werden.'; -$wb['database_charset_change_txt'] = 'Der Zeichensatz der Datenbank kann nicht geändert werden.'; -$wb['password_strength_txt'] = 'Passwortkomplexität'; -$wb['database_name_error_len'] = 'Datenbank Name - {db} - zu lang. Die max. Datenbank Namen Länge inkl. Präfix ist 64 Zeichen.'; -$wb['database_user_error_len'] = 'Datenbank Benutzername - {user}- zu lang. Die max. Datenbank Benutzernamen Länge inkl. Präfix ist 16 Zeichen.'; -?> diff --git a/interface/ispconfig/interface/sites/lib/lang/de_database_list.lng b/interface/ispconfig/interface/sites/lib/lang/de_database_list.lng deleted file mode 100644 index b34ac4e69..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/de_database_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/de_ftp_user.lng b/interface/ispconfig/interface/sites/lib/lang/de_ftp_user.lng deleted file mode 100644 index dcd8b0291..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/de_ftp_user.lng +++ /dev/null @@ -1,27 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/de_ftp_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/de_ftp_user_list.lng deleted file mode 100644 index a2d162c0b..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/de_ftp_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/de_shell_user.lng b/interface/ispconfig/interface/sites/lib/lang/de_shell_user.lng deleted file mode 100644 index 92589ee77..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/de_shell_user.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/de_shell_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/de_shell_user_list.lng deleted file mode 100644 index cd822899c..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/de_shell_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/de_web_aliasdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/de_web_aliasdomain_list.lng deleted file mode 100644 index 98fb1a3e7..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/de_web_aliasdomain_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/de_web_domain.lng b/interface/ispconfig/interface/sites/lib/lang/de_web_domain.lng deleted file mode 100644 index d8cbfcd94..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/de_web_domain.lng +++ /dev/null @@ -1,60 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/de_web_domain_list.lng b/interface/ispconfig/interface/sites/lib/lang/de_web_domain_list.lng deleted file mode 100644 index 71f0e0ae6..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/de_web_domain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/de_web_sites_stats_list.lng b/interface/ispconfig/interface/sites/lib/lang/de_web_sites_stats_list.lng deleted file mode 100644 index 660abfb25..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/de_web_sites_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/de_web_subdomain.lng b/interface/ispconfig/interface/sites/lib/lang/de_web_subdomain.lng deleted file mode 100644 index 8b1fa8ddd..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/de_web_subdomain.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/de_web_subdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/de_web_subdomain_list.lng deleted file mode 100644 index ba4fc6dad..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/de_web_subdomain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/en.lng b/interface/ispconfig/interface/sites/lib/lang/en.lng deleted file mode 100644 index 36c63bc5b..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/en.lng +++ /dev/null @@ -1,22 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/lib/lang/en_cron.lng b/interface/ispconfig/interface/sites/lib/lang/en_cron.lng deleted file mode 100644 index 8cb7f08e6..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/en_cron.lng +++ /dev/null @@ -1,21 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/lib/lang/en_cron_list.lng b/interface/ispconfig/interface/sites/lib/lang/en_cron_list.lng deleted file mode 100644 index b5c8d1566..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/en_cron_list.lng +++ /dev/null @@ -1,12 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/lib/lang/en_database.lng b/interface/ispconfig/interface/sites/lib/lang/en_database.lng deleted file mode 100644 index 48d7ea3b1..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/en_database.lng +++ /dev/null @@ -1,25 +0,0 @@ -any)'; -$wb["database_remote_error_ips"] = 'At least one of the entered ip addresses is invalid.'; -$wb["client_txt"] = 'Client'; -$wb["active_txt"] = 'Active'; -$wb["database_name_error_empty"] = 'Database name is empty.'; -$wb["database_name_error_unique"] = 'There is already a database with this name on the server. To get a unique name, e.g. prepend your domain name to the database name.'; -$wb["database_name_error_regex"] = 'Invalid database name. The database name may contain these characters: a-z, A-Z, 0-9 and the underscore. Length: 2 - 64 characters.'; -$wb["database_user_error_empty"] = 'Database user is empty.'; -$wb["database_user_error_unique"] = 'There is already a database user with this name on the server. To get a unique name, e.g. prepend your domain name to the username.'; -$wb["database_user_error_regex"] = 'Invalid database user name. The username may contain these characters: a-z, A-Z, 0-9 and the underscore. Length: 2 - 64 characters.'; -$wb["limit_database_txt"] = 'The max. number of databases is reached.'; -$wb["database_name_change_txt"] = 'The database name can not be changed'; -$wb["database_charset_change_txt"] = 'The database charset can not be changed'; -$wb["database_name_error_len"] = 'Database name - {db} - too long. The max. database name length incl. prefix is 64 chars.'; -$wb["database_user_error_len"] = 'Database username - {user}- too long. The max. database username length incl. prefix is 16 chars.'; -?> diff --git a/interface/ispconfig/interface/sites/lib/lang/en_database_list.lng b/interface/ispconfig/interface/sites/lib/lang/en_database_list.lng deleted file mode 100644 index ff599d270..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/en_database_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/lib/lang/en_ftp_user.lng b/interface/ispconfig/interface/sites/lib/lang/en_ftp_user.lng deleted file mode 100644 index f5b111639..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/en_ftp_user.lng +++ /dev/null @@ -1,28 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/en_ftp_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/en_ftp_user_list.lng deleted file mode 100644 index 2c4f87f72..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/en_ftp_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/lib/lang/en_shell_user.lng b/interface/ispconfig/interface/sites/lib/lang/en_shell_user.lng deleted file mode 100644 index 80e3e0a4f..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/en_shell_user.lng +++ /dev/null @@ -1,23 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/en_shell_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/en_shell_user_list.lng deleted file mode 100644 index 5b6f613d6..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/en_shell_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/lib/lang/en_web_aliasdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/en_web_aliasdomain_list.lng deleted file mode 100644 index 3945d2316..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/en_web_aliasdomain_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/lib/lang/en_web_domain.lng b/interface/ispconfig/interface/sites/lib/lang/en_web_domain.lng deleted file mode 100644 index b26014db9..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/en_web_domain.lng +++ /dev/null @@ -1,61 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/en_web_domain_list.lng b/interface/ispconfig/interface/sites/lib/lang/en_web_domain_list.lng deleted file mode 100644 index 493350e85..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/en_web_domain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/lib/lang/en_web_sites_stats_list.lng b/interface/ispconfig/interface/sites/lib/lang/en_web_sites_stats_list.lng deleted file mode 100644 index 20f018b82..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/en_web_sites_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/lib/lang/en_web_subdomain.lng b/interface/ispconfig/interface/sites/lib/lang/en_web_subdomain.lng deleted file mode 100644 index 6bd3b0895..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/en_web_subdomain.lng +++ /dev/null @@ -1,40 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/lib/lang/en_web_subdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/en_web_subdomain_list.lng deleted file mode 100644 index 8273dbd06..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/en_web_subdomain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/lib/lang/es.lng b/interface/ispconfig/interface/sites/lib/lang/es.lng deleted file mode 100644 index 29ce8ded6..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/es.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/es_cron.lng b/interface/ispconfig/interface/sites/lib/lang/es_cron.lng deleted file mode 100644 index cce69f3f8..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/es_cron.lng +++ /dev/null @@ -1,21 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/es_cron_list.lng b/interface/ispconfig/interface/sites/lib/lang/es_cron_list.lng deleted file mode 100644 index f2d2ce4e8..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/es_cron_list.lng +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/es_database.lng b/interface/ispconfig/interface/sites/lib/lang/es_database.lng deleted file mode 100644 index 70df8eed1..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/es_database.lng +++ /dev/null @@ -1,25 +0,0 @@ -cualquiera)'; -$wb['database_remote_error_ips'] = 'Al menos una de las IP introducidas no es válida.'; -$wb['database_name_error_len'] = 'El nombre de la base de datos - {db} - es demasiado largo. La longitud máxima del nombre de la base de datos, incluyendo el prefijo, es de 64 caracteres.'; -$wb['database_user_error_len'] = 'El nombre de usuario de la base de datos - {user}- es demasiado largo. La longitud máxima del nombre de usuario de la base de datos, incluyendo el prefijo, es de 16 caracteres.'; -?> diff --git a/interface/ispconfig/interface/sites/lib/lang/es_database_list.lng b/interface/ispconfig/interface/sites/lib/lang/es_database_list.lng deleted file mode 100644 index 66fcbdcaf..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/es_database_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/es_ftp_user.lng b/interface/ispconfig/interface/sites/lib/lang/es_ftp_user.lng deleted file mode 100644 index efa6f3307..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/es_ftp_user.lng +++ /dev/null @@ -1,27 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/es_ftp_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/es_ftp_user_list.lng deleted file mode 100644 index c96552304..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/es_ftp_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/es_shell_user.lng b/interface/ispconfig/interface/sites/lib/lang/es_shell_user.lng deleted file mode 100644 index 6bafd7073..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/es_shell_user.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/es_shell_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/es_shell_user_list.lng deleted file mode 100644 index a64cc4e55..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/es_shell_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/es_web_aliasdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/es_web_aliasdomain_list.lng deleted file mode 100644 index a383b3d01..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/es_web_aliasdomain_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/es_web_domain.lng b/interface/ispconfig/interface/sites/lib/lang/es_web_domain.lng deleted file mode 100644 index feaa5323a..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/es_web_domain.lng +++ /dev/null @@ -1,60 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/es_web_domain_list.lng b/interface/ispconfig/interface/sites/lib/lang/es_web_domain_list.lng deleted file mode 100644 index f0248c5fe..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/es_web_domain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/es_web_sites_stats_list.lng b/interface/ispconfig/interface/sites/lib/lang/es_web_sites_stats_list.lng deleted file mode 100644 index 8c31b6fc5..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/es_web_sites_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/es_web_subdomain.lng b/interface/ispconfig/interface/sites/lib/lang/es_web_subdomain.lng deleted file mode 100644 index 0b799ccd2..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/es_web_subdomain.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/es_web_subdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/es_web_subdomain_list.lng deleted file mode 100644 index 2b3afa50e..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/es_web_subdomain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fi.lng b/interface/ispconfig/interface/sites/lib/lang/fi.lng deleted file mode 100644 index 4e6e6b612..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fi.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fi_cron.lng b/interface/ispconfig/interface/sites/lib/lang/fi_cron.lng deleted file mode 100644 index 648b85c6c..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fi_cron.lng +++ /dev/null @@ -1,21 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fi_cron_list.lng b/interface/ispconfig/interface/sites/lib/lang/fi_cron_list.lng deleted file mode 100644 index b5072ec89..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fi_cron_list.lng +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fi_database.lng b/interface/ispconfig/interface/sites/lib/lang/fi_database.lng deleted file mode 100644 index 2d2dcd875..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fi_database.lng +++ /dev/null @@ -1,25 +0,0 @@ -kaikki)'; -$wb['database_remote_error_ips'] = 'Ainakin yksi annetuista ip-osoitteista on väärin.'; -$wb['database_name_error_len'] = 'Tietokannan nimi on liian pitkä. Nimen enimmäispituus etuliite mukaanlukien on 64 merkkiä.'; -$wb['database_user_error_len'] = 'Tietokanan käyttäjän nimi on liian pitkä. Nimen enimmäispituus etuliite mukaanlukien on 16 merkkiä.'; -?> diff --git a/interface/ispconfig/interface/sites/lib/lang/fi_database_list.lng b/interface/ispconfig/interface/sites/lib/lang/fi_database_list.lng deleted file mode 100644 index a231a6fb9..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fi_database_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fi_ftp_user.lng b/interface/ispconfig/interface/sites/lib/lang/fi_ftp_user.lng deleted file mode 100644 index 3e6da305a..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fi_ftp_user.lng +++ /dev/null @@ -1,27 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fi_ftp_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/fi_ftp_user_list.lng deleted file mode 100644 index 81c60b6d7..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fi_ftp_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fi_shell_user.lng b/interface/ispconfig/interface/sites/lib/lang/fi_shell_user.lng deleted file mode 100644 index 94d8ca8dd..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fi_shell_user.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fi_shell_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/fi_shell_user_list.lng deleted file mode 100644 index c09edb230..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fi_shell_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fi_web_aliasdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/fi_web_aliasdomain_list.lng deleted file mode 100644 index 8f5c5ccf1..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fi_web_aliasdomain_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fi_web_domain.lng b/interface/ispconfig/interface/sites/lib/lang/fi_web_domain.lng deleted file mode 100644 index 9845b3cf4..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fi_web_domain.lng +++ /dev/null @@ -1,60 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fi_web_domain_list.lng b/interface/ispconfig/interface/sites/lib/lang/fi_web_domain_list.lng deleted file mode 100644 index 8f5691c2f..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fi_web_domain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fi_web_sites_stats_list.lng b/interface/ispconfig/interface/sites/lib/lang/fi_web_sites_stats_list.lng deleted file mode 100644 index 3d9b079bf..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fi_web_sites_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fi_web_subdomain.lng b/interface/ispconfig/interface/sites/lib/lang/fi_web_subdomain.lng deleted file mode 100644 index 79f789e37..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fi_web_subdomain.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fi_web_subdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/fi_web_subdomain_list.lng deleted file mode 100644 index 31fb17028..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fi_web_subdomain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fr.lng b/interface/ispconfig/interface/sites/lib/lang/fr.lng deleted file mode 100644 index 11bf18ef0..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fr.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fr_cron.lng b/interface/ispconfig/interface/sites/lib/lang/fr_cron.lng deleted file mode 100644 index 67722ca78..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fr_cron.lng +++ /dev/null @@ -1,21 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fr_cron_list.lng b/interface/ispconfig/interface/sites/lib/lang/fr_cron_list.lng deleted file mode 100644 index 72bd11985..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fr_cron_list.lng +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fr_database.lng b/interface/ispconfig/interface/sites/lib/lang/fr_database.lng deleted file mode 100644 index a8e5a1976..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fr_database.lng +++ /dev/null @@ -1,25 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fr_database_list.lng b/interface/ispconfig/interface/sites/lib/lang/fr_database_list.lng deleted file mode 100644 index feb751bfb..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fr_database_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fr_ftp_user.lng b/interface/ispconfig/interface/sites/lib/lang/fr_ftp_user.lng deleted file mode 100644 index 466273d2e..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fr_ftp_user.lng +++ /dev/null @@ -1,27 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fr_ftp_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/fr_ftp_user_list.lng deleted file mode 100644 index 2281e48d7..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fr_ftp_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fr_shell_user.lng b/interface/ispconfig/interface/sites/lib/lang/fr_shell_user.lng deleted file mode 100644 index d80f39a38..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fr_shell_user.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fr_shell_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/fr_shell_user_list.lng deleted file mode 100644 index ff862e1b3..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fr_shell_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fr_web_aliasdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/fr_web_aliasdomain_list.lng deleted file mode 100644 index b21201285..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fr_web_aliasdomain_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fr_web_domain.lng b/interface/ispconfig/interface/sites/lib/lang/fr_web_domain.lng deleted file mode 100644 index 895ccef5f..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fr_web_domain.lng +++ /dev/null @@ -1,60 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fr_web_domain_list.lng b/interface/ispconfig/interface/sites/lib/lang/fr_web_domain_list.lng deleted file mode 100644 index ddf66f8d9..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fr_web_domain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fr_web_sites_stats_list.lng b/interface/ispconfig/interface/sites/lib/lang/fr_web_sites_stats_list.lng deleted file mode 100644 index 41018d301..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fr_web_sites_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fr_web_subdomain.lng b/interface/ispconfig/interface/sites/lib/lang/fr_web_subdomain.lng deleted file mode 100644 index 8558868ed..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fr_web_subdomain.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/fr_web_subdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/fr_web_subdomain_list.lng deleted file mode 100644 index 9bfbd30f2..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/fr_web_subdomain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/hu.lng b/interface/ispconfig/interface/sites/lib/lang/hu.lng deleted file mode 100644 index c02b30f39..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/hu.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/hu_cron.lng b/interface/ispconfig/interface/sites/lib/lang/hu_cron.lng deleted file mode 100644 index fecb4ab45..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/hu_cron.lng +++ /dev/null @@ -1,21 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/hu_cron_list.lng b/interface/ispconfig/interface/sites/lib/lang/hu_cron_list.lng deleted file mode 100644 index ad56ea956..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/hu_cron_list.lng +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/hu_database.lng b/interface/ispconfig/interface/sites/lib/lang/hu_database.lng deleted file mode 100644 index 621f6a0dc..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/hu_database.lng +++ /dev/null @@ -1,25 +0,0 @@ -any)'; -$wb['database_remote_error_ips'] = 'At least one of the entered ip addresses is invalid.'; -$wb['database_name_error_len'] = 'Database name - {db} - too long. The max. database name length incl. prefix is 64 chars.'; -$wb['database_user_error_len'] = 'Database username - {user}- too long. The max. database username length incl. prefix is 16 chars.'; -?> diff --git a/interface/ispconfig/interface/sites/lib/lang/hu_database_list.lng b/interface/ispconfig/interface/sites/lib/lang/hu_database_list.lng deleted file mode 100644 index 8560704aa..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/hu_database_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/hu_ftp_user.lng b/interface/ispconfig/interface/sites/lib/lang/hu_ftp_user.lng deleted file mode 100644 index a2f816918..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/hu_ftp_user.lng +++ /dev/null @@ -1,27 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/hu_ftp_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/hu_ftp_user_list.lng deleted file mode 100644 index 54578fd6c..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/hu_ftp_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/hu_shell_user.lng b/interface/ispconfig/interface/sites/lib/lang/hu_shell_user.lng deleted file mode 100644 index 30d6e0453..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/hu_shell_user.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/hu_shell_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/hu_shell_user_list.lng deleted file mode 100644 index 22a38a1ea..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/hu_shell_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/hu_web_aliasdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/hu_web_aliasdomain_list.lng deleted file mode 100644 index a8506ee71..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/hu_web_aliasdomain_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/hu_web_domain.lng b/interface/ispconfig/interface/sites/lib/lang/hu_web_domain.lng deleted file mode 100644 index 0f042134b..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/hu_web_domain.lng +++ /dev/null @@ -1,60 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/hu_web_domain_list.lng b/interface/ispconfig/interface/sites/lib/lang/hu_web_domain_list.lng deleted file mode 100644 index 88ec412da..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/hu_web_domain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/hu_web_sites_stats_list.lng b/interface/ispconfig/interface/sites/lib/lang/hu_web_sites_stats_list.lng deleted file mode 100644 index b217f80cc..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/hu_web_sites_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/hu_web_subdomain.lng b/interface/ispconfig/interface/sites/lib/lang/hu_web_subdomain.lng deleted file mode 100644 index 369622b5c..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/hu_web_subdomain.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/hu_web_subdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/hu_web_subdomain_list.lng deleted file mode 100644 index 268a1b95e..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/hu_web_subdomain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/it.lng b/interface/ispconfig/interface/sites/lib/lang/it.lng deleted file mode 100644 index 2dd1d27e1..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/it.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/it_cron.lng b/interface/ispconfig/interface/sites/lib/lang/it_cron.lng deleted file mode 100644 index fecb4ab45..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/it_cron.lng +++ /dev/null @@ -1,21 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/it_cron_list.lng b/interface/ispconfig/interface/sites/lib/lang/it_cron_list.lng deleted file mode 100644 index ad56ea956..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/it_cron_list.lng +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/it_database.lng b/interface/ispconfig/interface/sites/lib/lang/it_database.lng deleted file mode 100644 index 8921c1173..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/it_database.lng +++ /dev/null @@ -1,25 +0,0 @@ -any)'; -$wb['database_remote_error_ips'] = 'At least one of the entered ip addresses is invalid.'; -$wb['database_name_error_len'] = 'Database name - {db} - too long. The max. database name length incl. prefix is 64 chars.'; -$wb['database_user_error_len'] = 'Database username - {user}- too long. The max. database username length incl. prefix is 16 chars.'; -?> diff --git a/interface/ispconfig/interface/sites/lib/lang/it_database_list.lng b/interface/ispconfig/interface/sites/lib/lang/it_database_list.lng deleted file mode 100644 index 891b4d66a..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/it_database_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/it_ftp_user.lng b/interface/ispconfig/interface/sites/lib/lang/it_ftp_user.lng deleted file mode 100644 index 9da271951..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/it_ftp_user.lng +++ /dev/null @@ -1,27 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/it_ftp_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/it_ftp_user_list.lng deleted file mode 100644 index 946962577..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/it_ftp_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/it_shell_user.lng b/interface/ispconfig/interface/sites/lib/lang/it_shell_user.lng deleted file mode 100644 index 0f2ea6c84..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/it_shell_user.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/it_shell_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/it_shell_user_list.lng deleted file mode 100644 index e6fc063c8..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/it_shell_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/it_web_aliasdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/it_web_aliasdomain_list.lng deleted file mode 100644 index e734adb16..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/it_web_aliasdomain_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/it_web_domain.lng b/interface/ispconfig/interface/sites/lib/lang/it_web_domain.lng deleted file mode 100644 index 2bb621fec..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/it_web_domain.lng +++ /dev/null @@ -1,60 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/it_web_domain_list.lng b/interface/ispconfig/interface/sites/lib/lang/it_web_domain_list.lng deleted file mode 100644 index a7491480b..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/it_web_domain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/it_web_sites_stats_list.lng b/interface/ispconfig/interface/sites/lib/lang/it_web_sites_stats_list.lng deleted file mode 100644 index b217f80cc..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/it_web_sites_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/it_web_subdomain.lng b/interface/ispconfig/interface/sites/lib/lang/it_web_subdomain.lng deleted file mode 100644 index 53ee315c5..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/it_web_subdomain.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/it_web_subdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/it_web_subdomain_list.lng deleted file mode 100644 index 5ba43b029..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/it_web_subdomain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ja.lng b/interface/ispconfig/interface/sites/lib/lang/ja.lng deleted file mode 100644 index 4d2723223..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ja.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ja_cron.lng b/interface/ispconfig/interface/sites/lib/lang/ja_cron.lng deleted file mode 100644 index fecb4ab45..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ja_cron.lng +++ /dev/null @@ -1,21 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ja_cron_list.lng b/interface/ispconfig/interface/sites/lib/lang/ja_cron_list.lng deleted file mode 100644 index 276b548ca..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ja_cron_list.lng +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ja_database.lng b/interface/ispconfig/interface/sites/lib/lang/ja_database.lng deleted file mode 100644 index 48d7ea3b1..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ja_database.lng +++ /dev/null @@ -1,25 +0,0 @@ -any)'; -$wb["database_remote_error_ips"] = 'At least one of the entered ip addresses is invalid.'; -$wb["client_txt"] = 'Client'; -$wb["active_txt"] = 'Active'; -$wb["database_name_error_empty"] = 'Database name is empty.'; -$wb["database_name_error_unique"] = 'There is already a database with this name on the server. To get a unique name, e.g. prepend your domain name to the database name.'; -$wb["database_name_error_regex"] = 'Invalid database name. The database name may contain these characters: a-z, A-Z, 0-9 and the underscore. Length: 2 - 64 characters.'; -$wb["database_user_error_empty"] = 'Database user is empty.'; -$wb["database_user_error_unique"] = 'There is already a database user with this name on the server. To get a unique name, e.g. prepend your domain name to the username.'; -$wb["database_user_error_regex"] = 'Invalid database user name. The username may contain these characters: a-z, A-Z, 0-9 and the underscore. Length: 2 - 64 characters.'; -$wb["limit_database_txt"] = 'The max. number of databases is reached.'; -$wb["database_name_change_txt"] = 'The database name can not be changed'; -$wb["database_charset_change_txt"] = 'The database charset can not be changed'; -$wb["database_name_error_len"] = 'Database name - {db} - too long. The max. database name length incl. prefix is 64 chars.'; -$wb["database_user_error_len"] = 'Database username - {user}- too long. The max. database username length incl. prefix is 16 chars.'; -?> diff --git a/interface/ispconfig/interface/sites/lib/lang/ja_database_list.lng b/interface/ispconfig/interface/sites/lib/lang/ja_database_list.lng deleted file mode 100644 index 50ed81aba..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ja_database_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ja_ftp_user.lng b/interface/ispconfig/interface/sites/lib/lang/ja_ftp_user.lng deleted file mode 100644 index 837401216..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ja_ftp_user.lng +++ /dev/null @@ -1,27 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ja_ftp_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/ja_ftp_user_list.lng deleted file mode 100644 index eee5a0c78..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ja_ftp_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ja_shell_user.lng b/interface/ispconfig/interface/sites/lib/lang/ja_shell_user.lng deleted file mode 100644 index e87896e0e..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ja_shell_user.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ja_shell_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/ja_shell_user_list.lng deleted file mode 100644 index 18ce00721..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ja_shell_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ja_web_aliasdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/ja_web_aliasdomain_list.lng deleted file mode 100644 index 7d916734f..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ja_web_aliasdomain_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ja_web_domain.lng b/interface/ispconfig/interface/sites/lib/lang/ja_web_domain.lng deleted file mode 100644 index 5e97a9826..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ja_web_domain.lng +++ /dev/null @@ -1,60 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ja_web_domain_list.lng b/interface/ispconfig/interface/sites/lib/lang/ja_web_domain_list.lng deleted file mode 100644 index e987d407d..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ja_web_domain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ja_web_sites_stats_list.lng b/interface/ispconfig/interface/sites/lib/lang/ja_web_sites_stats_list.lng deleted file mode 100644 index 53a9ae367..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ja_web_sites_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ja_web_subdomain.lng b/interface/ispconfig/interface/sites/lib/lang/ja_web_subdomain.lng deleted file mode 100644 index 10b02ecbb..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ja_web_subdomain.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ja_web_subdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/ja_web_subdomain_list.lng deleted file mode 100644 index dc91127dc..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ja_web_subdomain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/nl.lng b/interface/ispconfig/interface/sites/lib/lang/nl.lng deleted file mode 100644 index 78860abe2..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/nl.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/nl_cron.lng b/interface/ispconfig/interface/sites/lib/lang/nl_cron.lng deleted file mode 100644 index f85eca227..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/nl_cron.lng +++ /dev/null @@ -1,21 +0,0 @@ -(Shell-commando -> sh, URL -> wget)'; -$wb['limit_cron_txt'] = 'Het max. aantal toegestane Cron taken is bereikt.'; -$wb['limit_cron_frequency_txt'] = 'De cronjob frequentie overschrijdt de toegestaande limiet.'; -$wb['run_min_error_format'] = 'Ongeldige indeling voor minuten.'; -$wb['run_hour_error_format'] = 'Ongeldige indeling voor uren.'; -$wb['run_mday_error_format'] = 'Ongeldige indeling voor dagen van maand.'; -$wb['run_month_error_format'] = 'Ongeldige indeling maand.'; -$wb['run_wday_error_format'] = 'Ongeldige indeling voor dagen van week.'; -$wb['command_error_format'] = 'Ongeldige commando indeling. In geval van een URL, alleen http/https wordt ondersteund.'; -$wb['unknown_fieldtype_error'] = 'Een onbekend veld-type wordt gebruikt.'; -?> diff --git a/interface/ispconfig/interface/sites/lib/lang/nl_cron_list.lng b/interface/ispconfig/interface/sites/lib/lang/nl_cron_list.lng deleted file mode 100644 index 1785ec191..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/nl_cron_list.lng +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/nl_database.lng b/interface/ispconfig/interface/sites/lib/lang/nl_database.lng deleted file mode 100644 index d4dfbf69e..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/nl_database.lng +++ /dev/null @@ -1,25 +0,0 @@ -(Komma-gescheiden, lege waarden = iedereen accepteren)'; -$wb['database_remote_error_ips'] = 'Tenminste 1 IP-adres is ongeldig.'; -$wb['database_name_error_len'] = 'Databasenaam - {db} - is te lang. De maximale lengte is 64 tekens.'; -$wb['database_user_error_len'] = 'Database gebruikersnaam - {user} - is te lang. De maximale lengte inclusief prefix is 16 tekens.'; -?> diff --git a/interface/ispconfig/interface/sites/lib/lang/nl_database_list.lng b/interface/ispconfig/interface/sites/lib/lang/nl_database_list.lng deleted file mode 100644 index d6a243e59..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/nl_database_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/nl_ftp_user.lng b/interface/ispconfig/interface/sites/lib/lang/nl_ftp_user.lng deleted file mode 100644 index ebf411d45..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/nl_ftp_user.lng +++ /dev/null @@ -1,27 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/nl_ftp_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/nl_ftp_user_list.lng deleted file mode 100644 index 449092fca..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/nl_ftp_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/nl_shell_user.lng b/interface/ispconfig/interface/sites/lib/lang/nl_shell_user.lng deleted file mode 100644 index f38dca8d1..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/nl_shell_user.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/nl_shell_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/nl_shell_user_list.lng deleted file mode 100644 index 33568635f..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/nl_shell_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/nl_web_aliasdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/nl_web_aliasdomain_list.lng deleted file mode 100644 index a698fad62..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/nl_web_aliasdomain_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/nl_web_domain.lng b/interface/ispconfig/interface/sites/lib/lang/nl_web_domain.lng deleted file mode 100644 index ba8743fa0..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/nl_web_domain.lng +++ /dev/null @@ -1,60 +0,0 @@ -zie codes)'; -$wb['ssl_request_txt'] = 'SSL verzoek'; -$wb['ssl_cert_txt'] = 'SSL certificaat'; -$wb['ssl_bundle_txt'] = 'SSL bundel'; -$wb['ssl_action_txt'] = 'SSL actie'; -$wb['server_id_txt'] = 'Server'; -$wb['domain_txt'] = 'Domeinnaam'; -$wb['type_txt'] = 'Type'; -$wb['parent_domain_id_txt'] = 'Koppelen aan website'; -$wb['redirect_type_txt'] = 'Redirect type'; -$wb['redirect_path_txt'] = 'Redirect pad'; -$wb['active_txt'] = 'Actief?'; -$wb['document_root_txt'] = 'Documentroot'; -$wb['system_user_txt'] = 'Linux gebruiker'; -$wb['system_group_txt'] = 'Linux groep'; -$wb['ip_address_txt'] = 'IP-adres'; -$wb['vhost_type_txt'] = 'VHost type'; -$wb['hd_quota_txt'] = 'Schijfruimte limiet'; -$wb['traffic_quota_txt'] = 'Dataverkeer limiet'; -$wb['cgi_txt'] = 'CGI scripts'; -$wb['ssi_txt'] = 'SSI (CGI)'; -$wb['ssl_txt'] = 'SSL'; -$wb['suexec_txt'] = 'SuEXEC'; -$wb['php_txt'] = 'PHP5 module'; -$wb['client_txt'] = 'Klant'; -$wb['limit_web_domain_txt'] = 'Het max. aantal web domeinen voor uw account is bereikt.'; -$wb['limit_web_aliasdomain_txt'] = 'Het max. aantal domeinaliassen voor uw account is bereikt.'; -$wb['limit_web_subdomain_txt'] = 'Het max. aantal web subdomeinen voor uw account is bereikt.'; -$wb['apache_directives_txt'] = 'Apache richtlijnen'; -$wb['domain_error_empty'] = 'Domeinnaam is leeg.'; -$wb['domain_error_unique'] = 'Domein moet uniek zijn.'; -$wb['domain_error_regex'] = 'Domeinnaam is ongeldig.'; -$wb['hd_quota_error_empty'] = 'Schijfruimte limiet is leeg.'; -$wb['traffic_quota_error_empty'] = 'Dataverkeer limiet is leeg.'; -$wb['errordocs_txt'] = 'Eigen fout-paginas'; -$wb['error_ssl_state_empty'] = 'SSL: provincie is leeg.'; -$wb['error_ssl_locality_empty'] = 'SSL: plaats is leeg.'; -$wb['error_ssl_organisation_empty'] = 'SSL: organisatie is leeg.'; -$wb['error_ssl_organisation_unit_empty'] = 'SSL: organsatie afdeling is leeg.'; -$wb['error_ssl_country_empty'] = 'SSL: Land is leeg.'; -$wb['subdomain_txt'] = 'Automatische subdomeinen'; -$wb['client_group_id_txt'] = 'Klant'; -$wb['stats_password_txt'] = 'Website statistieken wachtwoord'; -$wb['ssl_domain_txt'] = 'SSL Domein'; -$wb['allow_override_txt'] = 'Optie: Allow Override'; -$wb['limit_web_quota_free_txt'] = 'Maximale beschikbare schijfruimte-gebruik'; -$wb['ssl_state_error_regex'] = 'Ongeldige SSL Provincie. Geldige tekens zijn: a-z, 0-9 en .,-_'; -$wb['ssl_locality_error_regex'] = 'Ongeldige SSL Plaats. Geldige tekens zijn: a-z, 0-9 en .,-_'; -$wb['ssl_organisation_error_regex'] = 'Ongeldige SSL Organisatie. Geldige tekens zijn: a-z, 0-9 en .,-_'; -$wb['ssl_organistaion_unit_error_regex'] = 'Ongeldige SSL Organisatie afdeling. Geldige tekens zijn: a-z, 0-9 en .,-_'; -$wb['ssl_country_error_regex'] = 'Ongeldige SSL Landcode. Geldige tekens zijn: A-Z'; -$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; -$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; -$wb['php_open_basedir_txt'] = 'PHP open_basedir'; -?> diff --git a/interface/ispconfig/interface/sites/lib/lang/nl_web_domain_list.lng b/interface/ispconfig/interface/sites/lib/lang/nl_web_domain_list.lng deleted file mode 100644 index 1158d6dd2..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/nl_web_domain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/nl_web_sites_stats_list.lng b/interface/ispconfig/interface/sites/lib/lang/nl_web_sites_stats_list.lng deleted file mode 100644 index 67ce6f4bf..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/nl_web_sites_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/nl_web_subdomain.lng b/interface/ispconfig/interface/sites/lib/lang/nl_web_subdomain.lng deleted file mode 100644 index 58f5be41f..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/nl_web_subdomain.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/nl_web_subdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/nl_web_subdomain_list.lng deleted file mode 100644 index db8db0946..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/nl_web_subdomain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/pl.lng b/interface/ispconfig/interface/sites/lib/lang/pl.lng deleted file mode 100644 index bd25bfd71..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pl.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/pl_cron.lng b/interface/ispconfig/interface/sites/lib/lang/pl_cron.lng deleted file mode 100644 index 7771708be..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pl_cron.lng +++ /dev/null @@ -1,21 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/pl_cron_list.lng b/interface/ispconfig/interface/sites/lib/lang/pl_cron_list.lng deleted file mode 100644 index 3c1d83636..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pl_cron_list.lng +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/pl_database.lng b/interface/ispconfig/interface/sites/lib/lang/pl_database.lng deleted file mode 100644 index 75b44c439..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pl_database.lng +++ /dev/null @@ -1,25 +0,0 @@ -każdego)'; -$wb['database_remote_error_ips'] = 'Jeden z podanych adresów IP ma niepoprawny format.'; -$wb['client_txt'] = 'Klient'; -$wb['active_txt'] = 'Aktywny'; -$wb['database_name_error_empty'] = 'Nazwa bazy danych jest pusta.'; -$wb['database_name_error_unique'] = 'Istnieje już baza danych o takiej nazwie na serwerze. Aby mieć unikatowÄ… nazwÄ™, np.: nazwij bazÄ™ danych tak samo jak domenÄ™.'; -$wb['database_name_error_regex'] = 'NieprawidÅ‚owa nazwa bazy danych. Nazwa bazy danych może zawierać znaki takie jak: a-z, A-Z, 0-9 oraz podkreÅ›lenie. DÅ‚ugość: 2 - 64 znaków.'; -$wb['database_user_error_empty'] = 'Nazwa użytkownika bazy danych jest pusta.'; -$wb['database_user_error_unique'] = 'Jest już użytkownik bazy danych o takiej nazwie. Aby mieć unikatowÄ… nazwÄ™, np.: nazwij użytkownika tak samo jak domenÄ™.'; -$wb['database_user_error_regex'] = 'NieprawidÅ‚owa nazwa użytkownika bazy danych. Nazwa użytkownika bazy danych może zawierać znaki takie jak: a-z, A-Z, 0-9 oraz podkreÅ›lenie. DÅ‚ugość: 2 - 64 znaków.'; -$wb['limit_database_txt'] = 'Maksymalna liczba baz danych zostaÅ‚a przekroczona.'; -$wb['database_name_change_txt'] = 'Nie można zmienić nazwy bazy danych'; -$wb['database_charset_change_txt'] = 'Nie można zmienić kodowania bazy danych'; -$wb['database_name_error_len'] = 'Database name - {db} - too long. The max. database name length incl. prefix is 64 chars.'; -$wb['database_user_error_len'] = 'Database username - {user}- too long. The max. database username length incl. prefix is 16 chars.'; -?> diff --git a/interface/ispconfig/interface/sites/lib/lang/pl_database_list.lng b/interface/ispconfig/interface/sites/lib/lang/pl_database_list.lng deleted file mode 100644 index ca92d9883..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pl_database_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/pl_ftp_user.lng b/interface/ispconfig/interface/sites/lib/lang/pl_ftp_user.lng deleted file mode 100644 index 0c49209b2..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pl_ftp_user.lng +++ /dev/null @@ -1,27 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/pl_ftp_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/pl_ftp_user_list.lng deleted file mode 100644 index fecbba355..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pl_ftp_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/pl_shell_user.lng b/interface/ispconfig/interface/sites/lib/lang/pl_shell_user.lng deleted file mode 100644 index ff60f8f19..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pl_shell_user.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/pl_shell_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/pl_shell_user_list.lng deleted file mode 100644 index 850c0eb91..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pl_shell_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/pl_web_aliasdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/pl_web_aliasdomain_list.lng deleted file mode 100644 index 6dd8022e9..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pl_web_aliasdomain_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/pl_web_domain.lng b/interface/ispconfig/interface/sites/lib/lang/pl_web_domain.lng deleted file mode 100644 index 5b5106ce1..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pl_web_domain.lng +++ /dev/null @@ -1,60 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/pl_web_domain_list.lng b/interface/ispconfig/interface/sites/lib/lang/pl_web_domain_list.lng deleted file mode 100644 index 62b7455ff..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pl_web_domain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/pl_web_sites_stats_list.lng b/interface/ispconfig/interface/sites/lib/lang/pl_web_sites_stats_list.lng deleted file mode 100644 index e7b96d715..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pl_web_sites_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/pl_web_subdomain.lng b/interface/ispconfig/interface/sites/lib/lang/pl_web_subdomain.lng deleted file mode 100644 index 18e5a936c..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pl_web_subdomain.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/pl_web_subdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/pl_web_subdomain_list.lng deleted file mode 100644 index 9ccb0a3c7..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pl_web_subdomain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/pt.lng b/interface/ispconfig/interface/sites/lib/lang/pt.lng deleted file mode 100644 index d6bc1e110..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pt.lng +++ /dev/null @@ -1,23 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/pt_cron.lng b/interface/ispconfig/interface/sites/lib/lang/pt_cron.lng deleted file mode 100644 index 373a37dcc..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pt_cron.lng +++ /dev/null @@ -1,22 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/pt_cron_list.lng b/interface/ispconfig/interface/sites/lib/lang/pt_cron_list.lng deleted file mode 100644 index f5cd15a3f..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pt_cron_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/pt_database.lng b/interface/ispconfig/interface/sites/lib/lang/pt_database.lng deleted file mode 100644 index 5ffc49eb3..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pt_database.lng +++ /dev/null @@ -1,26 +0,0 @@ -quaisquer ips)'; -$wb['database_remote_error_ips'] = 'Pelo menos um dos endereços ip informados não é válido.'; -$wb['database_name_error_len'] = 'O nome da base de dados - {db} - é muito longo. 64 caracteres é o número máximo permitido incluindo prefixo.'; -$wb['database_user_error_len'] = 'O nome de utilizador da base de dados - {user}- é muito longo. 16 caracteres é o número máximo permitido incluindo prefixo.'; -?> - diff --git a/interface/ispconfig/interface/sites/lib/lang/pt_database_list.lng b/interface/ispconfig/interface/sites/lib/lang/pt_database_list.lng deleted file mode 100644 index 6a09c6901..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pt_database_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/pt_ftp_user.lng b/interface/ispconfig/interface/sites/lib/lang/pt_ftp_user.lng deleted file mode 100644 index 5573ba300..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pt_ftp_user.lng +++ /dev/null @@ -1,28 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/pt_ftp_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/pt_ftp_user_list.lng deleted file mode 100644 index c9f7ed2c2..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pt_ftp_user_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/pt_shell_user.lng b/interface/ispconfig/interface/sites/lib/lang/pt_shell_user.lng deleted file mode 100644 index 4e4cddb6c..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pt_shell_user.lng +++ /dev/null @@ -1,23 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/pt_shell_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/pt_shell_user_list.lng deleted file mode 100644 index f704ab620..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pt_shell_user_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/pt_web_aliasdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/pt_web_aliasdomain_list.lng deleted file mode 100644 index 9295fb109..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pt_web_aliasdomain_list.lng +++ /dev/null @@ -1,12 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/pt_web_domain.lng b/interface/ispconfig/interface/sites/lib/lang/pt_web_domain.lng deleted file mode 100644 index 0cf10f81c..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pt_web_domain.lng +++ /dev/null @@ -1,61 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/pt_web_domain_list.lng b/interface/ispconfig/interface/sites/lib/lang/pt_web_domain_list.lng deleted file mode 100644 index fadc95c84..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pt_web_domain_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/pt_web_sites_stats_list.lng b/interface/ispconfig/interface/sites/lib/lang/pt_web_sites_stats_list.lng deleted file mode 100644 index 18bf04427..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pt_web_sites_stats_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/pt_web_subdomain.lng b/interface/ispconfig/interface/sites/lib/lang/pt_web_subdomain.lng deleted file mode 100644 index a1f332d9d..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pt_web_subdomain.lng +++ /dev/null @@ -1,41 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/pt_web_subdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/pt_web_subdomain_list.lng deleted file mode 100644 index ce29103f9..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/pt_web_subdomain_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/ro.lng b/interface/ispconfig/interface/sites/lib/lang/ro.lng deleted file mode 100644 index 44f2fbcf7..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ro.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ro_cron.lng b/interface/ispconfig/interface/sites/lib/lang/ro_cron.lng deleted file mode 100644 index 8cb7f08e6..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ro_cron.lng +++ /dev/null @@ -1,21 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/lib/lang/ro_cron_list.lng b/interface/ispconfig/interface/sites/lib/lang/ro_cron_list.lng deleted file mode 100644 index b5c8d1566..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ro_cron_list.lng +++ /dev/null @@ -1,12 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/lib/lang/ro_database.lng b/interface/ispconfig/interface/sites/lib/lang/ro_database.lng deleted file mode 100644 index 07566e810..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ro_database.lng +++ /dev/null @@ -1,25 +0,0 @@ -any)'; -$wb['database_remote_error_ips'] = 'At least one of the entered ip addresses is invalid.'; -$wb['database_name_error_len'] = 'Database name - {db} - too long. The max. database name length incl. prefix is 64 chars.'; -$wb['database_user_error_len'] = 'Database username - {user}- too long. The max. database username length incl. prefix is 16 chars.'; -?> diff --git a/interface/ispconfig/interface/sites/lib/lang/ro_database_list.lng b/interface/ispconfig/interface/sites/lib/lang/ro_database_list.lng deleted file mode 100644 index 9f45d098c..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ro_database_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ro_ftp_user.lng b/interface/ispconfig/interface/sites/lib/lang/ro_ftp_user.lng deleted file mode 100644 index 6efddadd8..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ro_ftp_user.lng +++ /dev/null @@ -1,27 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ro_ftp_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/ro_ftp_user_list.lng deleted file mode 100644 index bb4e25df5..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ro_ftp_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ro_shell_user.lng b/interface/ispconfig/interface/sites/lib/lang/ro_shell_user.lng deleted file mode 100644 index a32638e62..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ro_shell_user.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ro_shell_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/ro_shell_user_list.lng deleted file mode 100644 index 2916771f3..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ro_shell_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ro_web_aliasdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/ro_web_aliasdomain_list.lng deleted file mode 100644 index dd612325a..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ro_web_aliasdomain_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ro_web_domain.lng b/interface/ispconfig/interface/sites/lib/lang/ro_web_domain.lng deleted file mode 100644 index eefd66053..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ro_web_domain.lng +++ /dev/null @@ -1,60 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ro_web_domain_list.lng b/interface/ispconfig/interface/sites/lib/lang/ro_web_domain_list.lng deleted file mode 100644 index e84427d2a..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ro_web_domain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ro_web_sites_stats_list.lng b/interface/ispconfig/interface/sites/lib/lang/ro_web_sites_stats_list.lng deleted file mode 100644 index 20f018b82..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ro_web_sites_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/lib/lang/ro_web_subdomain.lng b/interface/ispconfig/interface/sites/lib/lang/ro_web_subdomain.lng deleted file mode 100644 index fd319c5a7..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ro_web_subdomain.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ro_web_subdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/ro_web_subdomain_list.lng deleted file mode 100644 index 445ec6ca9..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ro_web_subdomain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/ru.lng b/interface/ispconfig/interface/sites/lib/lang/ru.lng deleted file mode 100644 index 93f0501dc..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ru.lng +++ /dev/null @@ -1,23 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/ru_cron.lng b/interface/ispconfig/interface/sites/lib/lang/ru_cron.lng deleted file mode 100644 index daa4ed3af..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ru_cron.lng +++ /dev/null @@ -1,22 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/ru_cron_list.lng b/interface/ispconfig/interface/sites/lib/lang/ru_cron_list.lng deleted file mode 100644 index 49c6cbe41..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ru_cron_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/ru_database.lng b/interface/ispconfig/interface/sites/lib/lang/ru_database.lng deleted file mode 100644 index ae0ebeaf1..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ru_database.lng +++ /dev/null @@ -1,26 +0,0 @@ -любого)'; -$wb['database_remote_error_ips'] = 'Минимум один введенный Ð°Ð´Ñ€ÐµÑ Ð½ÐµÐ²ÐµÑ€ÐµÐ½.'; -$wb['database_name_error_len'] = 'Ð˜Ð¼Ñ Ð‘Ð” - {db} - cлишком длинное. МакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° имени БД Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ - 64 Ñимвола'; -$wb['database_user_error_len'] = 'Логин Ð´Ð»Ñ Ð‘Ð” - {user} - cлишком длинное. МакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° логина - 16 Ñимволов'; -?> - diff --git a/interface/ispconfig/interface/sites/lib/lang/ru_database_list.lng b/interface/ispconfig/interface/sites/lib/lang/ru_database_list.lng deleted file mode 100644 index 707b9f5af..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ru_database_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/ru_ftp_user.lng b/interface/ispconfig/interface/sites/lib/lang/ru_ftp_user.lng deleted file mode 100644 index 26a4cc1ea..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ru_ftp_user.lng +++ /dev/null @@ -1,28 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/ru_ftp_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/ru_ftp_user_list.lng deleted file mode 100644 index 1ba6ad527..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ru_ftp_user_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/ru_shell_user.lng b/interface/ispconfig/interface/sites/lib/lang/ru_shell_user.lng deleted file mode 100644 index b0a7c7c6d..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ru_shell_user.lng +++ /dev/null @@ -1,23 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/ru_shell_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/ru_shell_user_list.lng deleted file mode 100644 index 54e40c303..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ru_shell_user_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/ru_web_aliasdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/ru_web_aliasdomain_list.lng deleted file mode 100644 index 5bda44b03..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ru_web_aliasdomain_list.lng +++ /dev/null @@ -1,12 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/ru_web_domain.lng b/interface/ispconfig/interface/sites/lib/lang/ru_web_domain.lng deleted file mode 100644 index 36997768f..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ru_web_domain.lng +++ /dev/null @@ -1,61 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/ru_web_domain_list.lng b/interface/ispconfig/interface/sites/lib/lang/ru_web_domain_list.lng deleted file mode 100644 index 4e3d84ce8..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ru_web_domain_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/ru_web_sites_stats_list.lng b/interface/ispconfig/interface/sites/lib/lang/ru_web_sites_stats_list.lng deleted file mode 100644 index edd1db250..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ru_web_sites_stats_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/ru_web_subdomain.lng b/interface/ispconfig/interface/sites/lib/lang/ru_web_subdomain.lng deleted file mode 100644 index 7a7212bf5..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ru_web_subdomain.lng +++ /dev/null @@ -1,41 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/ru_web_subdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/ru_web_subdomain_list.lng deleted file mode 100644 index a13d51953..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/ru_web_subdomain_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/sites/lib/lang/se.lng b/interface/ispconfig/interface/sites/lib/lang/se.lng deleted file mode 100644 index d31e8079a..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/se.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/se_cron.lng b/interface/ispconfig/interface/sites/lib/lang/se_cron.lng deleted file mode 100644 index fecb4ab45..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/se_cron.lng +++ /dev/null @@ -1,21 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/se_cron_list.lng b/interface/ispconfig/interface/sites/lib/lang/se_cron_list.lng deleted file mode 100644 index ad56ea956..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/se_cron_list.lng +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/se_database.lng b/interface/ispconfig/interface/sites/lib/lang/se_database.lng deleted file mode 100644 index 21058d47e..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/se_database.lng +++ /dev/null @@ -1,25 +0,0 @@ -any)'; -$wb['database_remote_error_ips'] = 'At least one of the entered ip addresses is invalid.'; -$wb['database_name_error_len'] = 'Database name - {db} - too long. The max. database name length incl. prefix is 64 chars.'; -$wb['database_user_error_len'] = 'Database username - {user}- too long. The max. database username length incl. prefix is 16 chars.'; -?> diff --git a/interface/ispconfig/interface/sites/lib/lang/se_database_list.lng b/interface/ispconfig/interface/sites/lib/lang/se_database_list.lng deleted file mode 100644 index 9c4df5704..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/se_database_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/se_ftp_user.lng b/interface/ispconfig/interface/sites/lib/lang/se_ftp_user.lng deleted file mode 100644 index 190f4a397..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/se_ftp_user.lng +++ /dev/null @@ -1,27 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/se_ftp_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/se_ftp_user_list.lng deleted file mode 100644 index 6ef3e3760..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/se_ftp_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/se_shell_user.lng b/interface/ispconfig/interface/sites/lib/lang/se_shell_user.lng deleted file mode 100644 index 0f2ea6c84..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/se_shell_user.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/se_shell_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/se_shell_user_list.lng deleted file mode 100644 index 4a9d7cb9a..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/se_shell_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/se_web_aliasdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/se_web_aliasdomain_list.lng deleted file mode 100644 index e734adb16..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/se_web_aliasdomain_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/se_web_domain.lng b/interface/ispconfig/interface/sites/lib/lang/se_web_domain.lng deleted file mode 100644 index 142f1e5ab..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/se_web_domain.lng +++ /dev/null @@ -1,60 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/se_web_domain_list.lng b/interface/ispconfig/interface/sites/lib/lang/se_web_domain_list.lng deleted file mode 100644 index 88ec412da..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/se_web_domain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/se_web_sites_stats_list.lng b/interface/ispconfig/interface/sites/lib/lang/se_web_sites_stats_list.lng deleted file mode 100644 index b217f80cc..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/se_web_sites_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/se_web_subdomain.lng b/interface/ispconfig/interface/sites/lib/lang/se_web_subdomain.lng deleted file mode 100644 index a814ed30e..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/se_web_subdomain.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/se_web_subdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/se_web_subdomain_list.lng deleted file mode 100644 index 1c16bcda2..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/se_web_subdomain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/sk.lng b/interface/ispconfig/interface/sites/lib/lang/sk.lng deleted file mode 100644 index e56941b15..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/sk.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/sk_cron.lng b/interface/ispconfig/interface/sites/lib/lang/sk_cron.lng deleted file mode 100644 index 21e5a9b41..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/sk_cron.lng +++ /dev/null @@ -1,21 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/sk_cron_list.lng b/interface/ispconfig/interface/sites/lib/lang/sk_cron_list.lng deleted file mode 100644 index 338da15a7..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/sk_cron_list.lng +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/sk_database.lng b/interface/ispconfig/interface/sites/lib/lang/sk_database.lng deleted file mode 100644 index ca733ca00..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/sk_database.lng +++ /dev/null @@ -1,25 +0,0 @@ - všetky )'; -$wb['database_remote_error_ips'] = 'Aspo? jedna zo zadaných IP adries je neplatná.'; -$wb['client_txt'] = 'Klient'; -$wb['active_txt'] = 'Aktívne'; -$wb['database_name_error_empty'] = 'Názov databázy je prázdny.'; -$wb['database_name_error_unique'] = 'V sú?asnosti už existuje databáza s týmto názvom na serveri. Ak chcete získa? jedine?né meno, napr. predradte názov vašej domény pred názov databázy.'; -$wb['database_name_error_regex'] = 'Neplatný názov databázy. Názov databázy môže obsahova? tieto znaky: az, AZ, 0-9 pod?iarknutia. D?žka: 2 - 64 znakov.'; -$wb['database_user_error_empty'] = 'Databázový užívate? je prázdny.'; -$wb['database_user_error_unique'] = 'V sú?asnosti už existuje databázový užívate? s týmto názvom na serveri. Ak chcete získa? jedine?né meno, napr. predradte názov vašej domény pred užívate?ským menom.'; -$wb['database_user_error_regex'] = 'Neplatné databázové užívate?ské meno. Užívate?ské meno môže obsahova? tieto znaky: az, AZ, 0-9 pod?iarknutia. D?žka: 2 - 64 znakov.'; -$wb['limit_database_txt'] = 'Max. po?et databáz je dosiahnutý.'; -$wb['database_name_change_txt'] = 'Názov databázy nie je možné meni?'; -$wb['database_charset_change_txt'] = 'Databázový charset nemožno meni?'; -$wb['database_name_error_len'] = 'Názov databázy - (db) - príliš dlhý. Max. názov databázy d?žka v?. prefix je 64 znakov.'; -$wb['database_user_error_len'] = 'Databázové užívate?ské meno - (user) - príliš dlho. Max. Databáza meno d?žka v?. prefix je 16 znakov.'; -?> diff --git a/interface/ispconfig/interface/sites/lib/lang/sk_database_list.lng b/interface/ispconfig/interface/sites/lib/lang/sk_database_list.lng deleted file mode 100644 index c76042850..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/sk_database_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/sk_ftp_user.lng b/interface/ispconfig/interface/sites/lib/lang/sk_ftp_user.lng deleted file mode 100644 index afc027e42..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/sk_ftp_user.lng +++ /dev/null @@ -1,27 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/sk_ftp_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/sk_ftp_user_list.lng deleted file mode 100644 index 64e06b4b1..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/sk_ftp_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/sk_shell_user.lng b/interface/ispconfig/interface/sites/lib/lang/sk_shell_user.lng deleted file mode 100644 index 0cdf9db84..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/sk_shell_user.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/sk_shell_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/sk_shell_user_list.lng deleted file mode 100644 index 73c5e6ef8..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/sk_shell_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/sk_web_aliasdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/sk_web_aliasdomain_list.lng deleted file mode 100644 index 8ca467b3c..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/sk_web_aliasdomain_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/sk_web_domain.lng b/interface/ispconfig/interface/sites/lib/lang/sk_web_domain.lng deleted file mode 100644 index 87393706b..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/sk_web_domain.lng +++ /dev/null @@ -1,60 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/sk_web_domain_list.lng b/interface/ispconfig/interface/sites/lib/lang/sk_web_domain_list.lng deleted file mode 100644 index 64f197943..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/sk_web_domain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/sk_web_sites_stats_list.lng b/interface/ispconfig/interface/sites/lib/lang/sk_web_sites_stats_list.lng deleted file mode 100644 index d8480cbaa..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/sk_web_sites_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/sk_web_subdomain.lng b/interface/ispconfig/interface/sites/lib/lang/sk_web_subdomain.lng deleted file mode 100644 index 74cfd761b..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/sk_web_subdomain.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/sk_web_subdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/sk_web_subdomain_list.lng deleted file mode 100644 index 8df87d681..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/sk_web_subdomain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/tr.lng b/interface/ispconfig/interface/sites/lib/lang/tr.lng deleted file mode 100644 index 1c3b93e60..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/tr.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/tr_cron.lng b/interface/ispconfig/interface/sites/lib/lang/tr_cron.lng deleted file mode 100644 index 4643bafd5..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/tr_cron.lng +++ /dev/null @@ -1,21 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/tr_cron_list.lng b/interface/ispconfig/interface/sites/lib/lang/tr_cron_list.lng deleted file mode 100644 index f54e67cba..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/tr_cron_list.lng +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/tr_database.lng b/interface/ispconfig/interface/sites/lib/lang/tr_database.lng deleted file mode 100644 index 63601ca5c..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/tr_database.lng +++ /dev/null @@ -1,25 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/tr_database_list.lng b/interface/ispconfig/interface/sites/lib/lang/tr_database_list.lng deleted file mode 100644 index f05b2bd1e..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/tr_database_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/tr_ftp_user.lng b/interface/ispconfig/interface/sites/lib/lang/tr_ftp_user.lng deleted file mode 100644 index 88602906e..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/tr_ftp_user.lng +++ /dev/null @@ -1,27 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/tr_ftp_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/tr_ftp_user_list.lng deleted file mode 100644 index f4c9c3f6a..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/tr_ftp_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/tr_shell_user.lng b/interface/ispconfig/interface/sites/lib/lang/tr_shell_user.lng deleted file mode 100644 index c6d39d321..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/tr_shell_user.lng +++ /dev/null @@ -1,22 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/tr_shell_user_list.lng b/interface/ispconfig/interface/sites/lib/lang/tr_shell_user_list.lng deleted file mode 100644 index a72b3e481..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/tr_shell_user_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/tr_web_aliasdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/tr_web_aliasdomain_list.lng deleted file mode 100644 index 8bbca6090..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/tr_web_aliasdomain_list.lng +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/tr_web_domain.lng b/interface/ispconfig/interface/sites/lib/lang/tr_web_domain.lng deleted file mode 100644 index a3f9e369c..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/tr_web_domain.lng +++ /dev/null @@ -1,60 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/tr_web_domain_list.lng b/interface/ispconfig/interface/sites/lib/lang/tr_web_domain_list.lng deleted file mode 100644 index 8dbf8fd45..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/tr_web_domain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/tr_web_sites_stats_list.lng b/interface/ispconfig/interface/sites/lib/lang/tr_web_sites_stats_list.lng deleted file mode 100644 index e795c5157..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/tr_web_sites_stats_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/tr_web_subdomain.lng b/interface/ispconfig/interface/sites/lib/lang/tr_web_subdomain.lng deleted file mode 100644 index 228503614..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/tr_web_subdomain.lng +++ /dev/null @@ -1,40 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/lang/tr_web_subdomain_list.lng b/interface/ispconfig/interface/sites/lib/lang/tr_web_subdomain_list.lng deleted file mode 100644 index 44b7bbeec..000000000 --- a/interface/ispconfig/interface/sites/lib/lang/tr_web_subdomain_list.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/sites/lib/module.conf.php b/interface/ispconfig/interface/sites/lib/module.conf.php deleted file mode 100644 index 686ae1687..000000000 --- a/interface/ispconfig/interface/sites/lib/module.conf.php +++ /dev/null @@ -1,113 +0,0 @@ - "Website", - 'target' => 'content', - 'link' => 'sites/web_domain_list.php'); - - -$items[] = array( 'title' => "Subdomain", - 'target' => 'content', - 'link' => 'sites/web_subdomain_list.php'); - - -$items[] = array( 'title' => "Aliasdomain", - 'target' => 'content', - 'link' => 'sites/web_aliasdomain_list.php'); - -$module["nav"][] = array( 'title' => 'Websites', - 'open' => 1, - 'items' => $items); - -// clean up -unset($items); - -/* - FTP User menu -*/ - -$items[] = array( 'title' => "FTP-User", - 'target' => 'content', - 'link' => 'sites/ftp_user_list.php'); - - -$module["nav"][] = array( 'title' => 'FTP', - 'open' => 1, - 'items' => $items); - -// clean up -unset($items); - -/* - FTP User menu -*/ - -$items[] = array( 'title' => "Shell-User", - 'target' => 'content', - 'link' => 'sites/shell_user_list.php'); - - -$module["nav"][] = array( 'title' => 'Shell', - 'open' => 1, - 'items' => $items); - -// clean up -unset($items); - -/* - Databases menu -*/ - -$items[] = array( 'title' => "Database", - 'target' => 'content', - 'link' => 'sites/database_list.php'); - - -$module["nav"][] = array( 'title' => 'Database', - 'open' => 1, - 'items' => $items); - - -/* - Cron menu -*/ -$items = array(); - -$items[] = array( 'title' => "Cron Jobs", - 'target' => 'content', - 'link' => 'sites/cron_list.php'); - - -$module["nav"][] = array( 'title' => 'Cron', - 'open' => 1, - 'items' => $items); - - -//**** Statistics menu -$items = array(); - -$items[] = array( 'title' => 'Web traffic', - 'target' => 'content', - 'link' => 'sites/web_sites_stats.php'); - - -$module['nav'][] = array( 'title' => 'Statistics', - 'open' => 1, - 'items' => $items); - - - -// clean up -unset($items); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/list/cron.list.php b/interface/ispconfig/interface/sites/list/cron.list.php deleted file mode 100644 index e5e2ab7de..000000000 --- a/interface/ispconfig/interface/sites/list/cron.list.php +++ /dev/null @@ -1,152 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
    Yes
    ",'n' => "
    No
    ")); - - -$liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "parent_domain_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => "SELECT domain_id,domain FROM web_domain WHERE type = 'vhost' AND {AUTHSQL} ORDER BY domain", - 'keyfield'=> 'domain_id', - 'valuefield'=> 'domain' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "run_min", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "run_hour", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "run_mday", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "run_month", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "run_wday", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => ""); - - -$liste["item"][] = array( 'field' => "command", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - - - - - - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/list/database.list.php b/interface/ispconfig/interface/sites/list/database.list.php deleted file mode 100644 index b0ff42c59..000000000 --- a/interface/ispconfig/interface/sites/list/database.list.php +++ /dev/null @@ -1,101 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
    Yes
    ",'n' => "
    No
    ")); - -$liste["item"][] = array( 'field' => "remote_access", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "Yes",'n' => "No")); - -$liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} AND db_server = 1 ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "database_user", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "database_name", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/list/ftp_user.list.php b/interface/ispconfig/interface/sites/list/ftp_user.list.php deleted file mode 100644 index 7931e7165..000000000 --- a/interface/ispconfig/interface/sites/list/ftp_user.list.php +++ /dev/null @@ -1,99 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
    Yes
    ",'n' => "
    No
    ")); - - -$liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "parent_domain_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => "SELECT domain_id,domain FROM web_domain WHERE type = 'vhost' AND {AUTHSQL} ORDER BY domain", - 'keyfield'=> 'domain_id', - 'valuefield'=> 'domain' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "username", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/list/shell_user.list.php b/interface/ispconfig/interface/sites/list/shell_user.list.php deleted file mode 100644 index e754a800b..000000000 --- a/interface/ispconfig/interface/sites/list/shell_user.list.php +++ /dev/null @@ -1,99 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
    Yes
    ",'n' => "
    No
    ")); - - -$liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "parent_domain_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => "SELECT domain_id,domain FROM web_domain WHERE type = 'vhost' AND {AUTHSQL} ORDER BY domain", - 'keyfield'=> 'domain_id', - 'valuefield'=> 'domain' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "username", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/list/web_aliasdomain.list.php b/interface/ispconfig/interface/sites/list/web_aliasdomain.list.php deleted file mode 100644 index 233964218..000000000 --- a/interface/ispconfig/interface/sites/list/web_aliasdomain.list.php +++ /dev/null @@ -1,99 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
    Yes
    ",'n' => "
    No
    ")); - - -$liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "parent_domain_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => "SELECT domain_id,domain FROM web_domain WHERE type = 'vhost' AND {AUTHSQL} ORDER BY domain", - 'keyfield'=> 'domain_id', - 'valuefield'=> 'domain' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "domain", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/list/web_domain.list.php b/interface/ispconfig/interface/sites/list/web_domain.list.php deleted file mode 100644 index 057948486..000000000 --- a/interface/ispconfig/interface/sites/list/web_domain.list.php +++ /dev/null @@ -1,94 +0,0 @@ - "domain_id", - 'datatype' => "INTEGER", - 'formtype' => "TEXT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => ""); - - -$liste["item"][] = array( 'field' => "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
    Yes
    ",'n' => "
    No
    ")); - - -$liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "domain", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/list/web_sites_stats.list.php b/interface/ispconfig/interface/sites/list/web_sites_stats.list.php deleted file mode 100644 index 6ad7cc9ac..000000000 --- a/interface/ispconfig/interface/sites/list/web_sites_stats.list.php +++ /dev/null @@ -1,60 +0,0 @@ - "domain", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/list/web_subdomain.list.php b/interface/ispconfig/interface/sites/list/web_subdomain.list.php deleted file mode 100644 index 49ae42556..000000000 --- a/interface/ispconfig/interface/sites/list/web_subdomain.list.php +++ /dev/null @@ -1,99 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => "
    Yes
    ",'n' => "
    No
    ")); - - -$liste["item"][] = array( 'field' => "server_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', - 'keyfield'=> 'server_id', - 'valuefield'=> 'server_name' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "parent_domain_id", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'datasource' => array ( 'type' => 'SQL', - 'querystring' => "SELECT domain_id,domain FROM web_domain WHERE type = 'vhost' AND {AUTHSQL} ORDER BY domain", - 'keyfield'=> 'domain_id', - 'valuefield'=> 'domain' - ), - 'width' => "", - 'value' => ""); - -$liste["item"][] = array( 'field' => "domain", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/shell_user_del.php b/interface/ispconfig/interface/sites/shell_user_del.php deleted file mode 100644 index 30ded4297..000000000 --- a/interface/ispconfig/interface/sites/shell_user_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('sites'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/shell_user_edit.php b/interface/ispconfig/interface/sites/shell_user_edit.php deleted file mode 100644 index c20d2b40d..000000000 --- a/interface/ispconfig/interface/sites/shell_user_edit.php +++ /dev/null @@ -1,224 +0,0 @@ -auth->check_module_permissions('sites'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_shell_user')) { - $app->error($app->tform->wordbook["limit_shell_user_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_shell_user')) { - $app->error('Reseller: '.$app->tform->wordbook["limit_shell_user_txt"]); - } - } - - parent::onShowNew(); - } - - function onShowEnd() { - global $app, $conf, $interfaceConf; - /* - * If the names are restricted -> remove the restriction, so that the - * data can be edited - */ - - $app->uses('getconf'); - $global_config = $app->getconf->get_global_config('sites'); - //$shelluser_prefix = ($global_config['shelluser_prefix'] == '')?'':str_replace('[CLIENTNAME]', $this->getClientName(), $global_config['shelluser_prefix']); - $shelluser_prefix = replacePrefix($global_config['shelluser_prefix'], $this->dataRecord); - - if ($this->dataRecord['username'] != ""){ - /* REMOVE the restriction */ - $app->tpl->setVar("username", str_replace($shelluser_prefix , '', $this->dataRecord['username'])); - } - if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - $app->tpl->setVar("username_prefix", $global_config['shelluser_prefix']); - } else { - $app->tpl->setVar("username_prefix", $shelluser_prefix); - } - - if($this->id > 0) { - //* we are editing a existing record - $app->tpl->setVar("edit_disabled", 1); - $app->tpl->setVar("parent_domain_id_value", $this->dataRecord["parent_domain_id"]); - } else { - $app->tpl->setVar("edit_disabled", 0); - } - - parent::onShowEnd(); - } - - function onSubmit() { - global $app, $conf; - - // Get the record of the parent domain - $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".intval(@$this->dataRecord["parent_domain_id"])); - - // Set a few fixed values - $this->dataRecord["server_id"] = $parent_domain["server_id"]; - - if(isset($this->dataRecord['username']) && trim($this->dataRecord['username']) == '') $app->tform->errorMessage .= $app->tform->lng('username_error_empty').'
    '; - if(isset($this->dataRecord['username']) && empty($this->dataRecord['parent_domain_id'])) $app->tform->errorMessage .= $app->tform->lng('parent_domain_id_error_empty').'
    '; - - parent::onSubmit(); - } - - function onBeforeInsert() { - global $app, $conf, $interfaceConf; - - // check if the username is not blacklisted - $blacklist = file(ISPC_LIB_PATH.'/shelluser_blacklist'); - foreach($blacklist as $line) { - if(strtolower(trim($line)) == strtolower(trim($this->dataRecord['username']))){ - $app->tform->errorMessage .= 'The username is not allowed.'; - } - } - unset($blacklist); - - /* - * If the names should be restricted -> do it! - */ - if ($app->tform->errorMessage == ''){ - - $app->uses('getconf'); - $global_config = $app->getconf->get_global_config('sites'); - // $shelluser_prefix = ($global_config['shelluser_prefix'] == '')?'':str_replace('[CLIENTNAME]', $this->getClientName(), $global_config['shelluser_prefix']); - $shelluser_prefix = replacePrefix($global_config['shelluser_prefix'], $this->dataRecord); - - /* restrict the names */ - $this->dataRecord['username'] = $shelluser_prefix . $this->dataRecord['username']; - } - parent::onBeforeInsert(); - } - - function onAfterInsert() { - global $app, $conf; - - $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".intval($this->dataRecord["parent_domain_id"])); - $server_id = $web["server_id"]; - $dir = $web["document_root"]; - $puser = $web["system_user"]; - $pgroup = $web["system_group"]; - - // The FTP user shall be owned by the same group then the website - $sys_groupid = $web['sys_groupid']; - - $sql = "UPDATE shell_user SET server_id = $server_id, dir = '$dir', puser = '$puser', pgroup = '$pgroup', sys_groupid = '$sys_groupid' WHERE shell_user_id = ".$this->id; - $app->db->query($sql); - - } - - function onBeforeUpdate() { - global $app, $conf, $interfaceConf; - - // check if the username is not blacklisted - $blacklist = file(ISPC_LIB_PATH.'/shelluser_blacklist'); - foreach($blacklist as $line) { - if(strtolower(trim($line)) == strtolower(trim($this->dataRecord['username']))){ - $app->tform->errorMessage .= 'The username is not allowed.'; - } - } - unset($blacklist); - - /* - * If the names should be restricted -> do it! - */ - if ($app->tform->errorMessage == '') { - /* - * If the names should be restricted -> do it! - */ - $app->uses('getconf'); - $global_config = $app->getconf->get_global_config('sites'); - // $shelluser_prefix = ($global_config['shelluser_prefix'] == '')?'':str_replace('[CLIENTNAME]', $this->getClientName(), $global_config['shelluser_prefix']); - $shelluser_prefix = replacePrefix($global_config['shelluser_prefix'], $this->dataRecord); - - /* restrict the names */ - $this->dataRecord['username'] = $shelluser_prefix . $this->dataRecord['username']; - } - } - - function onAfterUpdate() { - global $app, $conf; - - - } - - function getClientName() { - global $app, $conf; - - if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) { - // Get the group-id of the user - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - } else { - // Get the group-id from the data itself - $web = $app->db->queryOneRecord("SELECT sys_groupid FROM web_domain WHERE domain_id = ".intval($this->dataRecord['parent_domain_id'])); - $client_group_id = $web['sys_groupid']; - } - /* get the name of the client */ - $tmp = $app->db->queryOneRecord("SELECT name FROM sys_group WHERE groupid = " . $client_group_id); - $clientName = $tmp['name']; - if ($clientName == "") $clientName = 'default'; - $clientName = convertClientName($clientName); - - return $clientName; - - } - -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/shell_user_list.php b/interface/ispconfig/interface/sites/shell_user_list.php deleted file mode 100644 index e6c772404..000000000 --- a/interface/ispconfig/interface/sites/shell_user_list.php +++ /dev/null @@ -1,55 +0,0 @@ -auth->check_module_permissions('sites'); - -$app->uses('listform_actions'); - -// Limit the results to alias domains -//$app->listform_actions->SQLExtWhere = "type = 'subdomain'"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/templates/cron_edit.htm b/interface/ispconfig/interface/sites/templates/cron_edit.htm deleted file mode 100644 index 39f9bc646..000000000 --- a/interface/ispconfig/interface/sites/templates/cron_edit.htm +++ /dev/null @@ -1,68 +0,0 @@ -

    -

    - -
    - -
    -
    Cron Job -
    - - - - - - - - -
    -
    - - -

    e.g. *, */3, 10-20

    -
    -
    - - -

    e.g. *, */2, 0, 10-12

    -
    -
    - - -

    e.g. *, */4, 1-5

    -
    -
    - - -

    e.g. *, 1-6

    -
    -
    - - -

    e.g. *, 0, 1-5

    -
    -
    - - -

    e.g. /var/www/clients/client1/myscript.sh or http://www.mydomain.com/path/script.php

    -
    -
    -

    {tmpl_var name='active_txt'}

    -
    - {tmpl_var name='active'} -
    -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/sites/templates/cron_list.htm b/interface/ispconfig/interface/sites/templates/cron_list.htm deleted file mode 100644 index 31551f26d..000000000 --- a/interface/ispconfig/interface/sites/templates/cron_list.htm +++ /dev/null @@ -1,71 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="server_id"}{tmpl_var name="run_min"}{tmpl_var name="run_hour"}{tmpl_var name="run_mday"}{tmpl_var name="run_month"}{tmpl_var name="run_wday"}{tmpl_var name="command"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/sites/templates/database_edit.htm b/interface/ispconfig/interface/sites/templates/database_edit.htm deleted file mode 100644 index 89f1afdb6..000000000 --- a/interface/ispconfig/interface/sites/templates/database_edit.htm +++ /dev/null @@ -1,108 +0,0 @@ -

    -

    - -
    - -
    -
    - -
    - - - - - - - - -
    -
    - - -
    -
    - -
    - - -
    -
    -
    - - -
    -
    - -
    {tmpl_var name='database_name_prefix'}
    - - - - - - -
    -
    - -
    {tmpl_var name='database_user_prefix'}
    - -
    -
    - - -
    -
    -

    {tmpl_var name='password_strength_txt'}

    -
    -

     

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

    {tmpl_var name='remote_access_txt'}

    -
    - {tmpl_var name='remote_access'} -
    -
    -
    - - -
    -
    -

    {tmpl_var name='active_txt'}

    -
    - {tmpl_var name='active'} -
    -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/sites/templates/database_list.htm b/interface/ispconfig/interface/sites/templates/database_list.htm deleted file mode 100644 index fa954872f..000000000 --- a/interface/ispconfig/interface/sites/templates/database_list.htm +++ /dev/null @@ -1,64 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="active"}{tmpl_var name="remote_access"}{tmpl_var name="server_id"}{tmpl_var name="database_user"}{tmpl_var name="database_name"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/sites/templates/ftp_user_advanced.htm b/interface/ispconfig/interface/sites/templates/ftp_user_advanced.htm deleted file mode 100644 index 1520630b5..000000000 --- a/interface/ispconfig/interface/sites/templates/ftp_user_advanced.htm +++ /dev/null @@ -1,50 +0,0 @@ -

    -

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

     {tmpl_var name='quota_files_unity_txt'}

    -
    -
    - -

     MB

    -
    -
    - -

     MB

    -
    -
    - -

     kb/s

    -
    -
    - -

     kb/s

    -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/sites/templates/ftp_user_advanced_client.htm b/interface/ispconfig/interface/sites/templates/ftp_user_advanced_client.htm deleted file mode 100644 index fd8d617ce..000000000 --- a/interface/ispconfig/interface/sites/templates/ftp_user_advanced_client.htm +++ /dev/null @@ -1,22 +0,0 @@ -

    -

    - -
    - -
    -
    -
    - - -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/sites/templates/ftp_user_edit.htm b/interface/ispconfig/interface/sites/templates/ftp_user_edit.htm deleted file mode 100644 index f7588b331..000000000 --- a/interface/ispconfig/interface/sites/templates/ftp_user_edit.htm +++ /dev/null @@ -1,48 +0,0 @@ -

    -

    - -
    - -
    -
    -
    - - -
    -
    - -
    {tmpl_var name='username_prefix'}
    - -
    -
    - - -
    -
    -

    {tmpl_var name='password_strength_txt'}

    -
    -

     

    -
    -
    - -

     MB

    -
    -
    -

    {tmpl_var name='active_txt'}

    -
    - {tmpl_var name='active'} -
    -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/sites/templates/ftp_user_list.htm b/interface/ispconfig/interface/sites/templates/ftp_user_list.htm deleted file mode 100644 index d281feb07..000000000 --- a/interface/ispconfig/interface/sites/templates/ftp_user_list.htm +++ /dev/null @@ -1,59 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="active"}{tmpl_var name="server_id"}{tmpl_var name="parent_domain_id"}{tmpl_var name="username"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/sites/templates/shell_user_advanced.htm b/interface/ispconfig/interface/sites/templates/shell_user_advanced.htm deleted file mode 100644 index eb7d8ceb1..000000000 --- a/interface/ispconfig/interface/sites/templates/shell_user_advanced.htm +++ /dev/null @@ -1,34 +0,0 @@ -

    -

    - -
    - -
    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/sites/templates/shell_user_edit.htm b/interface/ispconfig/interface/sites/templates/shell_user_edit.htm deleted file mode 100644 index 765574350..000000000 --- a/interface/ispconfig/interface/sites/templates/shell_user_edit.htm +++ /dev/null @@ -1,62 +0,0 @@ -

    -

    - -
    - -
    -
    -
    - - - - - - - - -
    -
    - -
    {tmpl_var name='username_prefix'}
    - -
    -
    - - -
    -
    -

    {tmpl_var name='password_strength_txt'}

    -
    -

     

    -
    -
    - - -
    -
    - -

     MB

    -
    -
    -

    {tmpl_var name='active_txt'}

    -
    - {tmpl_var name='active'} -
    -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/sites/templates/shell_user_list.htm b/interface/ispconfig/interface/sites/templates/shell_user_list.htm deleted file mode 100644 index a7504ac3f..000000000 --- a/interface/ispconfig/interface/sites/templates/shell_user_list.htm +++ /dev/null @@ -1,59 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="active"}{tmpl_var name="server_id"}{tmpl_var name="parent_domain_id"}{tmpl_var name="username"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/sites/templates/web_aliasdomain_edit.htm b/interface/ispconfig/interface/sites/templates/web_aliasdomain_edit.htm deleted file mode 100644 index 76aca15f8..000000000 --- a/interface/ispconfig/interface/sites/templates/web_aliasdomain_edit.htm +++ /dev/null @@ -1,50 +0,0 @@ -

    -

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

    {tmpl_var name='active_txt'}

    -
    - {tmpl_var name='active'} -
    -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/sites/templates/web_aliasdomain_list.htm b/interface/ispconfig/interface/sites/templates/web_aliasdomain_list.htm deleted file mode 100644 index b43f22aee..000000000 --- a/interface/ispconfig/interface/sites/templates/web_aliasdomain_list.htm +++ /dev/null @@ -1,59 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="active"}{tmpl_var name="server_id"}{tmpl_var name="parent_domain_id"}{tmpl_var name="domain"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/sites/templates/web_domain_advanced.htm b/interface/ispconfig/interface/sites/templates/web_domain_advanced.htm deleted file mode 100644 index 79a5f6e64..000000000 --- a/interface/ispconfig/interface/sites/templates/web_domain_advanced.htm +++ /dev/null @@ -1,41 +0,0 @@ -

    -

    - -
    - -
    -
    - -
    - - - -
    -
    - - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/sites/templates/web_domain_edit.htm b/interface/ispconfig/interface/sites/templates/web_domain_edit.htm deleted file mode 100644 index 836017efc..000000000 --- a/interface/ispconfig/interface/sites/templates/web_domain_edit.htm +++ /dev/null @@ -1,120 +0,0 @@ -

    -

    - -
    - -
    -
    - -
    - - - - - - - - -
    -
    - - -
    -
    - -
    - - -
    -
    -
    - - -
    -
    - - -
    -
    - -  MB -
    -
    - -  MB -
    -
    -

    {tmpl_var name='cgi_txt'}

    -
    - {tmpl_var name='cgi'} -
    -
    -
    -

    {tmpl_var name='ssi_txt'}

    -
    - {tmpl_var name='ssi'} -
    -
    -
    -

    {tmpl_var name='suexec_txt'}

    -
    - {tmpl_var name='suexec'} -
    -
    -
    -

    {tmpl_var name='errordocs_txt'}

    -
    - {tmpl_var name='errordocs'} -
    -
    -
    -

    {tmpl_var name='is_subdomainwww_txt'}

    -
    - {tmpl_var name='is_subdomainwww'} -
    -
    -
    - - -
    -
    -

    {tmpl_var name='ssl_txt'}

    -
    - {tmpl_var name='ssl'} -
    -
    -
    - - -
    -
    -

    {tmpl_var name='active_txt'}

    -
    - {tmpl_var name='active'} -
    -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/sites/templates/web_domain_list.htm b/interface/ispconfig/interface/sites/templates/web_domain_list.htm deleted file mode 100644 index 290cf2bad..000000000 --- a/interface/ispconfig/interface/sites/templates/web_domain_list.htm +++ /dev/null @@ -1,59 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="domain_id"}{tmpl_var name="active"}{tmpl_var name="server_id"}{tmpl_var name="domain"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/sites/templates/web_domain_redirect.htm b/interface/ispconfig/interface/sites/templates/web_domain_redirect.htm deleted file mode 100644 index 89e6fab80..000000000 --- a/interface/ispconfig/interface/sites/templates/web_domain_redirect.htm +++ /dev/null @@ -1,28 +0,0 @@ -

    -

    - -
    - -
    -
    -
    - - -
    -
    - - -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/sites/templates/web_domain_ssl.htm b/interface/ispconfig/interface/sites/templates/web_domain_ssl.htm deleted file mode 100644 index 273855c20..000000000 --- a/interface/ispconfig/interface/sites/templates/web_domain_ssl.htm +++ /dev/null @@ -1,62 +0,0 @@ -

    -

    - -
    - -
    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/sites/templates/web_domain_stats.htm b/interface/ispconfig/interface/sites/templates/web_domain_stats.htm deleted file mode 100644 index 0886460c3..000000000 --- a/interface/ispconfig/interface/sites/templates/web_domain_stats.htm +++ /dev/null @@ -1,22 +0,0 @@ -

    -

    - -
    - -
    -
    -
    - - -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/sites/templates/web_sites_stats_list.htm b/interface/ispconfig/interface/sites/templates/web_sites_stats_list.htm deleted file mode 100644 index 6312b027e..000000000 --- a/interface/ispconfig/interface/sites/templates/web_sites_stats_list.htm +++ /dev/null @@ -1,52 +0,0 @@ -

    -

    - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="domain"}{tmpl_var name="this_month"} MB{tmpl_var name="last_month"} MB{tmpl_var name="this_year"} MB{tmpl_var name="last_year"} MB -
    -
    -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/sites/templates/web_subdomain_edit.htm b/interface/ispconfig/interface/sites/templates/web_subdomain_edit.htm deleted file mode 100644 index 2206cf7bd..000000000 --- a/interface/ispconfig/interface/sites/templates/web_subdomain_edit.htm +++ /dev/null @@ -1,42 +0,0 @@ -

    -

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

    {tmpl_var name='active_txt'}

    -
    - {tmpl_var name='active'} -
    -
    -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/sites/templates/web_subdomain_list.htm b/interface/ispconfig/interface/sites/templates/web_subdomain_list.htm deleted file mode 100644 index fce2a6ff2..000000000 --- a/interface/ispconfig/interface/sites/templates/web_subdomain_list.htm +++ /dev/null @@ -1,60 +0,0 @@ -

    -

    - -
    - -
    -
    {tmpl_var name="toolsarea_head_txt"} -
    - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    {tmpl_var name="active"}{tmpl_var name="server_id"}{tmpl_var name="parent_domain_id"}{tmpl_var name="domain"} - -
    -
    -
    - -
    diff --git a/interface/ispconfig/interface/sites/tools.inc.php b/interface/ispconfig/interface/sites/tools.inc.php deleted file mode 100644 index 65dd45910..000000000 --- a/interface/ispconfig/interface/sites/tools.inc.php +++ /dev/null @@ -1,126 +0,0 @@ - no possible output -> go out! - if ($name=="") return ""; - - // Array containing keys to search - $keywordlist=array('CLIENTNAME','CLIENTID','DOMAINID'); - - // Try to match the key within the string - foreach ($keywordlist as $keyword) { - if (substr_count($name, '['.$keyword.']') > 0) { - switch ($keyword) { - case 'CLIENTNAME': - $name=str_replace('['.$keyword.']', getClientName($dataRecord),$name); - break; - case 'CLIENTID': - $name=str_replace('['.$keyword.']', getClientID($dataRecord),$name); - break; - case 'DOMAINID': - $name=str_replace('['.$keyword.']', $dataRecord['parent_domain_id'],$name); - break; - } - } - } - return $name; -} - -function getClientName($dataRecord) { - global $app, $conf; - - if($_SESSION["s"]["user"]["typ"] != 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - // Get the group-id of the user - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - } else { - // Get the group-id from the data itself - if(isset($dataRecord['client_group_id'])) { - $client_group_id = $dataRecord['client_group_id']; - } elseif (isset($dataRecord['parent_domain_id'])) { - $tmp = $app->db->queryOneRecord("SELECT sys_groupid FROM web_domain WHERE domain_id = " . $dataRecord['parent_domain_id']); - $client_group_id = $tmp['sys_groupid']; - } else { - $client_group_id = $dataRecord['sys_groupid']; - } - } - - /* get the name of the client */ - $tmp = $app->db->queryOneRecord("SELECT name FROM sys_group WHERE groupid = " . $client_group_id); - $clientName = $tmp['name']; - if ($clientName == "") $clientName = 'default'; - $clientName = convertClientName($clientName); - return $clientName; -} - -function getClientID($dataRecord) { - global $app, $conf; - - if($_SESSION["s"]["user"]["typ"] != 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - // Get the group-id of the user - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - } else { - // Get the group-id from the data itself - if(isset($dataRecord['client_group_id'])) { - $client_group_id = $dataRecord['client_group_id']; - } elseif (isset($dataRecord['parent_domain_id'])) { - $tmp = $app->db->queryOneRecord("SELECT sys_groupid FROM web_domain WHERE domain_id = " . $dataRecord['parent_domain_id']); - $client_group_id = $tmp['sys_groupid']; - } else { - $client_group_id = $dataRecord['sys_groupid']; - } - } - /* get the name of the client */ - $tmp = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE groupid = " . $client_group_id); - $clientID = $tmp['client_id']; - if ($clientID == '') $clientID = '0'; - return $clientID; -} - -function convertClientName($name){ - /** - * only allow 'a'..'z', '_', '0'..'9' - */ - $allowed = 'abcdefghijklmnopqrstuvwxyz0123456789_'; - $res = ''; - $name = strtolower(trim($name)); - for ($i=0; $i < strlen($name); $i++){ - if ($name[$i] == ' ') continue; - if (strpos($allowed, $name[$i]) !== false){ - $res .= $name[$i]; - } - else { - $res .= '_'; - } - } - return $res; -} - - -?> diff --git a/interface/ispconfig/interface/sites/web_aliasdomain_del.php b/interface/ispconfig/interface/sites/web_aliasdomain_del.php deleted file mode 100644 index 748fb58b1..000000000 --- a/interface/ispconfig/interface/sites/web_aliasdomain_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('sites'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/web_aliasdomain_edit.php b/interface/ispconfig/interface/sites/web_aliasdomain_edit.php deleted file mode 100644 index 151fad41a..000000000 --- a/interface/ispconfig/interface/sites/web_aliasdomain_edit.php +++ /dev/null @@ -1,114 +0,0 @@ -auth->check_module_permissions('sites'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - var $parent_domain_record; - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_web_aliasdomain',"type = 'alias'")) { - $app->error($app->tform->wordbook["limit_web_aliasdomain_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_web_aliasdomain',"type = 'alias'")) { - $app->error('Reseller: '.$app->tform->wordbook["limit_web_aliasdomain_txt"]); - } - } - - parent::onShowNew(); - } - - /* - function onShowEnd() { - global $app, $conf; - - // Get the record of the parent domain - $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".intval($this->dataRecord["parent_domain_id"])); - - $this->dataRecord["domain"] = str_replace('.'.$parent_domain["domain"],'',$this->dataRecord["domain"]); - $app->tpl->setVar("domain",$this->dataRecord["domain"]); - - parent::onShowEnd(); - - } - */ - - function onSubmit() { - global $app, $conf; - - // Get the record of the parent domain - $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".intval(@$this->dataRecord["parent_domain_id"])); - - // Set a few fixed values - $this->dataRecord["type"] = 'alias'; - $this->dataRecord["server_id"] = $parent_domain["server_id"]; - //$this->dataRecord["domain"] = $this->dataRecord["domain"].'.'.$parent_domain["domain"]; - - $this->parent_domain_record = $parent_domain; - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app, $conf; - - $app->db->query('UPDATE web_domain SET sys_groupid = '.intval($this->parent_domain_record['sys_groupid']).' WHERE domain_id = '.$this->id); - - } - -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/web_aliasdomain_list.php b/interface/ispconfig/interface/sites/web_aliasdomain_list.php deleted file mode 100644 index 4d1697530..000000000 --- a/interface/ispconfig/interface/sites/web_aliasdomain_list.php +++ /dev/null @@ -1,55 +0,0 @@ -auth->check_module_permissions('sites'); - -$app->uses('listform_actions'); - -// Limit the results to alias domains -$app->listform_actions->SQLExtWhere = "type = 'alias'"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/web_domain_del.php b/interface/ispconfig/interface/sites/web_domain_del.php deleted file mode 100644 index 185cdd33f..000000000 --- a/interface/ispconfig/interface/sites/web_domain_del.php +++ /dev/null @@ -1,87 +0,0 @@ -auth->check_module_permissions('sites'); - -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onBeforeDelete() { - global $app; $conf; - - if($app->tform->checkPerm($this->id,'d') == false) $app->error($app->lng('error_no_delete_permission')); - - // Delete all records that belog to this zone. - $records = $app->db->queryAllRecords("SELECT domain_id FROM web_domain WHERE parent_domain_id = '".intval($this->id)."' AND type != 'vhost'"); - foreach($records as $rec) { - $app->db->datalogDelete('web_domain','domain_id',$rec['domain_id']); - } - - // Delete all records that belog to this zone. - $records = $app->db->queryAllRecords("SELECT ftp_user_id FROM ftp_user WHERE parent_domain_id = '".intval($this->id)."'"); - foreach($records as $rec) { - $app->db->datalogDelete('ftp_user','ftp_user_id',$rec['ftp_user_id']); - } - - // Delete all records that belog to this zone. - $records = $app->db->queryAllRecords("SELECT shell_user_id FROM shell_user WHERE parent_domain_id = '".intval($this->id)."'"); - foreach($records as $rec) { - $app->db->datalogDelete('shell_user','shell_user_id',$rec['shell_user_id']); - } - - // Delete all records that belog to this zone. - $records = $app->db->queryAllRecords("SELECT id FROM cron WHERE parent_domain_id = '".intval($this->id)."'"); - foreach($records as $rec) { - $app->db->datalogDelete('cron','id',$rec['id']); - } - } -} - -$page = new page_action; -$page->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/web_domain_edit.php b/interface/ispconfig/interface/sites/web_domain_edit.php deleted file mode 100644 index 4e8cf0b3e..000000000 --- a/interface/ispconfig/interface/sites/web_domain_edit.php +++ /dev/null @@ -1,477 +0,0 @@ -auth->check_module_permissions('sites'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_web_domain',"type = 'vhost'")) { - $app->error($app->tform->wordbook["limit_web_domain_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_web_domain',"type = 'vhost'")) { - $app->error('Reseller: '.$app->tform->wordbook["limit_web_domain_txt"]); - } - } - - parent::onShowNew(); - } - - function onShowEnd() { - global $app, $conf; - - //* Client: If the logged in user is not admin and has no sub clients (no rseller) - if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_web_domain, default_webserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Set the webserver to the default server of the client - $tmp = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = $client[default_webserver]"); - $app->tpl->setVar("server_id",""); - unset($tmp); - - // Fill the IP select field with the IP addresses that are allowed for this client - // $ip_select = ""; - // $app->tpl->setVar("ip_address",$ip_select); - $sql = "SELECT ip_address FROM server_ip WHERE server_id = ".$client['default_webserver']; - $ips = $app->db->queryAllRecords($sql); - $ip_select = ""; - //$ip_select = ""; - if(is_array($ips)) { - foreach( $ips as $ip) { - $selected = ($ip["ip_address"] == $this->dataRecord["ip_address"])?'SELECTED':''; - $ip_select .= "\r\n"; - } - } - $app->tpl->setVar("ip_address",$ip_select); - unset($tmp); - unset($ips); - - //* Reseller: If the logged in user is not admin and has sub clients (is a rseller) - } elseif ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT client.client_id, limit_web_domain, default_webserver, client.contact_name FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - // Set the webserver to the default server of the client - $tmp = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = $client[default_webserver]"); - $app->tpl->setVar("server_id",""); - unset($tmp); - - // Fill the client select field - $sql = "SELECT groupid, name FROM sys_group, client WHERE sys_group.client_id = client.client_id AND client.parent_client_id = ".$client['client_id']." ORDER BY name"; - $records = $app->db->queryAllRecords($sql); - $tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$client['client_id']); - $client_select = ''; - $tmp_data_record = $app->tform->getDataRecord($this->id); - if(is_array($records)) { - foreach( $records as $rec) { - $selected = @($rec["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':''; - $client_select .= "\r\n"; - } - } - $app->tpl->setVar("client_group_id",$client_select); - - // Fill the IP select field with the IP addresses that are allowed for this client - //$ip_select = ""; - //$app->tpl->setVar("ip_address",$ip_select); - $sql = "SELECT ip_address FROM server_ip WHERE server_id = ".$client['default_webserver']; - $ips = $app->db->queryAllRecords($sql); - $ip_select = ""; - //$ip_select = ""; - if(is_array($ips)) { - foreach( $ips as $ip) { - $selected = ($ip["ip_address"] == $this->dataRecord["ip_address"])?'SELECTED':''; - $ip_select .= "\r\n"; - } - } - $app->tpl->setVar("ip_address",$ip_select); - unset($tmp); - unset($ips); - - //* Admin: If the logged in user is admin - } else { - - // The user is admin, so we fill in all IP addresses of the server - if($this->id > 0) { - $server_id = @$this->dataRecord["server_id"]; - } else { - // Get the first server ID - $tmp = $app->db->queryOneRecord("SELECT server_id FROM server WHERE web_server = 1 ORDER BY server_name LIMIT 0,1"); - $server_id = $tmp['server_id']; - } - - $sql = "SELECT ip_address FROM server_ip WHERE server_id = $server_id"; - $ips = $app->db->queryAllRecords($sql); - $ip_select = ""; - //$ip_select = ""; - if(is_array($ips)) { - foreach( $ips as $ip) { - $selected = ($ip["ip_address"] == $this->dataRecord["ip_address"])?'SELECTED':''; - $ip_select .= "\r\n"; - } - } - $app->tpl->setVar("ip_address",$ip_select); - unset($tmp); - unset($ips); - - // Fill the client select field - $sql = "SELECT groupid, name FROM sys_group WHERE client_id > 0 ORDER BY name"; - $clients = $app->db->queryAllRecords($sql); - $client_select = ""; - $tmp_data_record = $app->tform->getDataRecord($this->id); - if(is_array($clients)) { - foreach( $clients as $client) { - $selected = @($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':''; - $client_select .= "\r\n"; - } - } - $app->tpl->setVar("client_group_id",$client_select); - - } - - $ssl_domain_select = ''; - $ssl_domains = array($this->dataRecord["domain"],'www.'.$this->dataRecord["domain"]); - if(is_array($ssl_domains)) { - foreach( $ssl_domains as $ssl_domain) { - $selected = ($ssl_domain == $this->dataRecord['ssl_domain'])?'SELECTED':''; - $ssl_domain_select .= "\r\n"; - } - } - $app->tpl->setVar("ssl_domain",$ssl_domain_select); - unset($ssl_domain_select); - unset($ssl_domains); - unset($ssl_domain); - - if($this->id > 0) { - //* we are editing a existing record - $app->tpl->setVar("edit_disabled", 1); - $app->tpl->setVar("server_id_value", $this->dataRecord["server_id"]); - } else { - $app->tpl->setVar("edit_disabled", 0); - } - - $tmp_txt = ($this->dataRecord['traffic_quota_lock'] == 'y')?'('.$app->tform->lng('traffic_quota_exceeded_txt').')':''; - $app->tpl->setVar("traffic_quota_exceeded_txt", $tmp_txt); - - parent::onShowEnd(); - } - - function onSubmit() { - global $app, $conf; - - // Set a few fixed values - $this->dataRecord["parent_domain_id"] = 0; - $this->dataRecord["type"] = 'vhost'; - $this->dataRecord["vhost_type"] = 'name'; - - if($_SESSION["s"]["user"]["typ"] != 'admin') { - // Get the limits of the client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT limit_traffic_quota, limit_web_domain, default_webserver, parent_client_id, limit_web_quota FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - - //* Check the website quota - if(isset($_POST["hd_quota"]) && $client["limit_web_quota"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT sum(hd_quota) as webquota FROM web_domain WHERE domain_id != ".intval($this->id)." AND ".$app->tform->getAuthSQL('u')); - $webquota = $tmp["webquota"]; - $new_web_quota = intval($this->dataRecord["hd_quota"]); - if(($webquota + $new_web_quota > $client["limit_web_quota"]) || ($new_web_quota == -1 && $client["limit_web_quota"] != -1)) { - $max_free_quota = floor($client["limit_web_quota"] - $webquota); - if($max_free_quota < 0) $max_free_quota = 0; - $app->tform->errorMessage .= $app->tform->lng("limit_web_quota_free_txt").": ".$max_free_quota." MB
    "; - // Set the quota field to the max free space - $this->dataRecord["hd_quota"] = $max_free_quota; - } - unset($tmp); - unset($tmp_quota); - } - - //* Check the traffic quota - if(isset($_POST["traffic_quota"]) && $client["limit_traffic_quota"] > 0) { - $tmp = $app->db->queryOneRecord("SELECT sum(traffic_quota) as trafficquota FROM web_domain WHERE domain_id != ".intval($this->id)." AND ".$app->tform->getAuthSQL('u')); - $trafficquota = $tmp["trafficquota"]; - $new_traffic_quota = intval($this->dataRecord["traffic_quota"]); - if(($trafficquota + $new_traffic_quota > $client["limit_traffic_quota"]) || ($new_traffic_quota == -1 && $client["limit_traffic_quota"] != -1)) { - $max_free_quota = floor($client["limit_traffic_quota"] - $trafficquota); - if($max_free_quota < 0) $max_free_quota = 0; - $app->tform->errorMessage .= $app->tform->lng("limit_traffic_quota_free_txt").": ".$max_free_quota." MB
    "; - // Set the quota field to the max free space - $this->dataRecord["traffic_quota"] = $max_free_quota; - } - unset($tmp); - unset($tmp_quota); - } - - // When the record is updated - if($this->id > 0) { - // restore the server ID if the user is not admin and record is edited - $tmp = $app->db->queryOneRecord("SELECT server_id FROM web_domain WHERE domain_id = ".intval($this->id)); - $this->dataRecord["server_id"] = $tmp["server_id"]; - unset($tmp); - // When the record is inserted - } else { - // set the server ID to the default mailserver of the client - $this->dataRecord["server_id"] = $client["default_webserver"]; - - - // Check if the user may add another web_domain - if($client["limit_web_domain"] >= 0) { - $tmp = $app->db->queryOneRecord("SELECT count(domain_id) as number FROM web_domain WHERE sys_groupid = $client_group_id and type = 'vhost'"); - if($tmp["number"] >= $client["limit_web_domain"]) { - $app->error($app->tform->wordbook["limit_web_domain_txt"]); - } - } - - } - - // Clients may not set the client_group_id, so we unset them if user is not a admin and the client is not a reseller - if(!$app->auth->has_clients($_SESSION['s']['user']['userid'])) unset($this->dataRecord["client_group_id"]); - } - - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app, $conf; - - // make sure that the record belongs to the clinet group and not the admin group when a dmin inserts it - // also make sure that the user can not delete domain created by a admin - if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE web_domain SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE domain_id = ".$this->id); - } - if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE web_domain SET sys_groupid = $client_group_id, sys_perm_group = 'riud' WHERE domain_id = ".$this->id); - } - - // Get configuration for the web system - $app->uses("getconf"); - $web_rec = $app->tform->getDataRecord($this->id); - $web_config = $app->getconf->get_server_config(intval($web_rec["server_id"]),'web'); - $document_root = str_replace("[website_id]",$this->id,$web_config["website_path"]); - - // get the ID of the client - if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) { - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = $client_group_id"); - $client_id = intval($client["client_id"]); - } else { - //$client_id = intval($this->dataRecord["client_group_id"]); - $client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ".intval($this->dataRecord["client_group_id"])); - $client_id = intval($client["client_id"]); - } - - // Set the values for document_root, system_user and system_group - $system_user = $app->db->quote('web'.$this->id); - $system_group = $app->db->quote('client'.$client_id); - $document_root = $app->db->quote(str_replace("[client_id]",$client_id,$document_root)); - $php_open_basedir = str_replace("[website_path]",$document_root,$web_config["php_open_basedir"]); - $php_open_basedir = $app->db->quote(str_replace("[website_domain]",$web_rec['domain'],$php_open_basedir)); - $htaccess_allow_override = $app->db->quote($web_config["htaccess_allow_override"]); - - $sql = "UPDATE web_domain SET system_user = '$system_user', system_group = '$system_group', document_root = '$document_root', allow_override = '$htaccess_allow_override', php_open_basedir = '$php_open_basedir' WHERE domain_id = ".$this->id; - $app->db->query($sql); - } - - function onBeforeUpdate () { - global $app, $conf; - - //* Check if the server has been changed - // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway - if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - if (isset($this->dataRecord["server_id"])){ - $rec = $app->db->queryOneRecord("SELECT server_id from web_domain WHERE domain_id = ".$this->id); - if($rec['server_id'] != $this->dataRecord["server_id"]) { - //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The Server can not be changed.'); - $this->dataRecord["server_id"] = $rec['server_id']; - } - unset($rec); - } - //* If the user is neither admin nor reseller - } else { - //* We do not allow users to change a domain which has been created by the admin - $rec = $app->db->queryOneRecord("SELECT domain from web_domain WHERE domain_id = ".$this->id); - if(isset($this->dataRecord["domain"]) && $rec['domain'] != $this->dataRecord["domain"] && $app->tform->checkPerm($this->id,'u')) { - //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'); - $this->dataRecord["domain"] = $rec['domain']; - } - unset($rec); - } - - //* Check that all fields for the SSL cert creation are filled - if(isset($this->dataRecord['ssl_action']) && $this->dataRecord['ssl_action'] == 'create') { - if($this->dataRecord['ssl_state'] == '') $app->tform->errorMessage .= $app->tform->lng('error_ssl_state_empty').'
    '; - if($this->dataRecord['ssl_locality'] == '') $app->tform->errorMessage .= $app->tform->lng('error_ssl_locality_empty').'
    '; - if($this->dataRecord['ssl_organisation'] == '') $app->tform->errorMessage .= $app->tform->lng('error_ssl_organisation_empty').'
    '; - if($this->dataRecord['ssl_organisation_unit'] == '') $app->tform->errorMessage .= $app->tform->lng('error_ssl_organisation_unit_empty').'
    '; - if($this->dataRecord['ssl_country'] == '') $app->tform->errorMessage .= $app->tform->lng('error_ssl_country_empty').'
    '; - } - - } - - function onAfterUpdate() { - global $app, $conf; - - // make sure that the record belongs to the clinet group and not the admin group when a admin inserts it - // also make sure that the user can not delete domain created by a admin - if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE web_domain SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE domain_id = ".$this->id); - } - if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { - $client_group_id = intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE web_domain SET sys_groupid = $client_group_id, sys_perm_group = 'riud' WHERE domain_id = ".$this->id); - } - - // Get configuration for the web system - $app->uses("getconf"); - $web_rec = $app->tform->getDataRecord($this->id); - $web_config = $app->getconf->get_server_config(intval($web_rec["server_id"]),'web'); - $document_root = str_replace("[website_id]",$this->id,$web_config["website_path"]); - - // get the ID of the client - if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) { - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = $client_group_id"); - $client_id = intval($client["client_id"]); - } else { - //$client_id = intval(@$web_rec["client_group_id"]); - $client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ".intval(@$this->dataRecord["client_group_id"])); - $client_id = intval($client["client_id"]); - } - - if(($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) && isset($this->dataRecord["client_group_id"]) && $this->dataRecord["client_group_id"] != $this->oldDataRecord["sys_groupid"]) { - // Set the values for document_root, system_user and system_group - $system_user = $app->db->quote('web'.$this->id); - $system_group = $app->db->quote('client'.$client_id); - $document_root = $app->db->quote(str_replace("[client_id]",$client_id,$document_root)); - - $sql = "UPDATE web_domain SET system_user = '$system_user', system_group = '$system_group', document_root = '$document_root' WHERE domain_id = ".$this->id; - //$sql = "UPDATE web_domain SET system_user = '$system_user', system_group = '$system_group' WHERE domain_id = ".$this->id; - $app->db->query($sql); - - // Update the FTP user(s) too - $records = $app->db->queryAllRecords("SELECT ftp_user_id FROM ftp_user WHERE parent_domain_id = ".$this->id); - foreach($records as $rec) { - $app->db->datalogUpdate('ftp_user', "uid = '$system_user', gid = '$system_group', dir = '$document_root'", 'ftp_user_id', $rec['ftp_user_id']); - } - unset($records); - unset($rec); - - // Update the Shell user(s) too - $records = $app->db->queryAllRecords("SELECT shell_user_id FROM shell_user WHERE parent_domain_id = ".$this->id); - foreach($records as $rec) { - $app->db->datalogUpdate('shell_user', "puser = '$system_user', pgroup = '$system_group', dir = '$document_root'", 'shell_user_id', $rec['shell_user_id']); - } - unset($records); - unset($rec); - - } - - //* If the domain name has been changed, we will have to change all subdomains - if($this->dataRecord["domain"] != '' && $this->oldDataRecord["domain"] != '' && $this->dataRecord["domain"] != $this->oldDataRecord["domain"]) { - $records = $app->db->queryAllRecords("SELECT domain_id,domain FROM web_domain WHERE type = 'subdomain' AND domain LIKE '%.".$app->db->quote($this->oldDataRecord["domain"])."'"); - foreach($records as $rec) { - $subdomain = $app->db->quote(str_replace($this->oldDataRecord["domain"],$this->dataRecord["domain"],$rec['domain'])); - $app->db->datalogUpdate('web_domain', "domain = '".$subdomain."'", 'domain_id', $rec['domain_id']); - } - unset($records); - unset($rec); - unset($subdomain); - } - - //* Set allow_override and php_open_basedir if empty - if($web_rec['allow_override'] == '') { - $sql = "UPDATE web_domain SET allow_override = '".$app->db->quote($web_config["htaccess_allow_override"])."' WHERE domain_id = ".$this->id; - $app->db->query($sql); - } - if($web_rec['php_open_basedir'] == '') { - $document_root = $app->db->quote(str_replace("[client_id]",$client_id,$document_root)); - $php_open_basedir = str_replace("[website_path]",$document_root,$web_config["php_open_basedir"]); - $php_open_basedir = $app->db->quote(str_replace("[website_domain]",$web_rec['domain'],$php_open_basedir)); - $sql = "UPDATE web_domain SET php_open_basedir = '$php_open_basedir' WHERE domain_id = ".$this->id; - $app->db->query($sql); - } - - } - - function onAfterDelete() { - global $app, $conf; - - // Delete the sub and alias domains - $child_domains = $app->db->queryAllRecords("SELECT * FROM web_domain WHERE parent_domain_id = ".$this->id); - foreach($child_domains as $d) { - // Saving record to datalog when db_history enabled - if($app->tform->formDef["db_history"] == 'yes') { - $app->tform->datalogSave('DELETE',$d["domain_id"],$d,array()); - } - - $app->db->query("DELETE FROM web_domain WHERE domain_id = ".$d["domain_id"]." LIMIT 0,1"); - } - unset($child_domains); - unset($d); - - } - -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/web_domain_list.php b/interface/ispconfig/interface/sites/web_domain_list.php deleted file mode 100644 index 085ca05cb..000000000 --- a/interface/ispconfig/interface/sites/web_domain_list.php +++ /dev/null @@ -1,59 +0,0 @@ -auth->check_module_permissions('sites'); - -$app->load('listform_actions'); - - -class list_action extends listform_actions { - -} - -$list = new list_action; -$list->SQLExtWhere = "type = 'vhost'"; -$list->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/web_sites_stats.php b/interface/ispconfig/interface/sites/web_sites_stats.php deleted file mode 100644 index f3809807f..000000000 --- a/interface/ispconfig/interface/sites/web_sites_stats.php +++ /dev/null @@ -1,64 +0,0 @@ -auth->check_module_permissions('sites'); - -$app->load('listform_actions'); - -class list_action extends listform_actions { - - function prepareDataRow($rec) - { - global $app; - - $rec = $app->listform->decode($rec); - - //* Alternating datarow colors - $this->DataRowColor = ($this->DataRowColor == '#FFFFFF') ? '#EEEEEE' : '#FFFFFF'; - $rec['bgcolor'] = $this->DataRowColor; - - //* Set the statistics colums - //** Traffic of the current month - $tmp_year = date('Y'); - $tmp_month = date('m'); - $tmp_rec = $app->db->queryOneRecord("SELECT SUM(traffic_bytes) as t FROM web_traffic WHERE hostname = '".$rec['domain']."' AND YEAR(traffic_date) = '$tmp_year' AND MONTH(traffic_date) = '$tmp_month'"); - $rec['this_month'] = number_format($tmp_rec['t']/1024/1024, 0, '.', ' '); - - //** Traffic of the current year - $tmp_rec = $app->db->queryOneRecord("SELECT sum(traffic_bytes) as t FROM web_traffic WHERE hostname = '".$rec['domain']."' AND YEAR(traffic_date) = '$tmp_year'"); - $rec['this_year'] = number_format($tmp_rec['t']/1024/1024, 0, '.', ' '); - - //** Traffic of the last month - $tmp_year = date('Y',mktime(0, 0, 0, date("m")-1, date("d"), date("Y"))); - $tmp_month = date('m',mktime(0, 0, 0, date("m")-1, date("d"), date("Y"))); - $tmp_rec = $app->db->queryOneRecord("SELECT sum(traffic_bytes) as t FROM web_traffic WHERE hostname = '".$rec['domain']."' AND YEAR(traffic_date) = '$tmp_year' AND MONTH(traffic_date) = '$tmp_month'"); - $rec['last_month'] = number_format($tmp_rec['t']/1024/1024, 0, '.', ' '); - - //** Traffic of the last year - $tmp_year = date('Y',mktime(0, 0, 0, date("m"), date("d"), date("Y")-1)); - $tmp_rec = $app->db->queryOneRecord("SELECT sum(traffic_bytes) as t FROM web_traffic WHERE hostname = '".$rec['domain']."' AND YEAR(traffic_date) = '$tmp_year'"); - $rec['last_year'] = number_format($tmp_rec['t']/1024/1024, 0, '.', ' '); - - //* The variable "id" contains always the index variable - $rec['id'] = $rec[$this->idx_key]; - return $rec; - } -} - -$list = new list_action; -$list->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/web_subdomain_del.php b/interface/ispconfig/interface/sites/web_subdomain_del.php deleted file mode 100644 index 91b1662a5..000000000 --- a/interface/ispconfig/interface/sites/web_subdomain_del.php +++ /dev/null @@ -1,51 +0,0 @@ -auth->check_module_permissions('sites'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/web_subdomain_edit.php b/interface/ispconfig/interface/sites/web_subdomain_edit.php deleted file mode 100644 index ec35a1bb8..000000000 --- a/interface/ispconfig/interface/sites/web_subdomain_edit.php +++ /dev/null @@ -1,114 +0,0 @@ -auth->check_module_permissions('sites'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - var $parent_domain_record; - - function onShowNew() { - global $app, $conf; - - // we will check only users, not admins - if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_web_subdomain',"type = 'subdomain'")) { - $app->error($app->tform->wordbook["limit_web_subdomain_txt"]); - } - if(!$app->tform->checkResellerLimit('limit_web_subdomain',"type = 'subdomain'")) { - $app->error('Reseller: '.$app->tform->wordbook["limit_web_subdomain_txt"]); - } - } - - parent::onShowNew(); - } - - function onShowEnd() { - global $app, $conf; - - // Get the record of the parent domain - $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".intval(@$this->dataRecord["parent_domain_id"])); - - // remove the parent domain part of the domain name before we show it in the text field. - $this->dataRecord["domain"] = str_replace('.'.$parent_domain["domain"],'',$this->dataRecord["domain"]); - $app->tpl->setVar("domain",$this->dataRecord["domain"]); - - parent::onShowEnd(); - - } - - function onSubmit() { - global $app, $conf; - - // Get the record of the parent domain - $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".intval(@$this->dataRecord["parent_domain_id"])); - - // Set a few fixed values - $this->dataRecord["type"] = 'subdomain'; - $this->dataRecord["server_id"] = $parent_domain["server_id"]; - $this->dataRecord["domain"] = $this->dataRecord["domain"].'.'.$parent_domain["domain"]; - - $this->parent_domain_record = $parent_domain; - - parent::onSubmit(); - } - - function onAfterInsert() { - global $app, $conf; - - $app->db->query('UPDATE web_domain SET sys_groupid = '.intval($this->parent_domain_record['sys_groupid']).' WHERE domain_id = '.$this->id); - - } - - -} - -$page = new page_action; -$page->onLoad(); - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/sites/web_subdomain_list.php b/interface/ispconfig/interface/sites/web_subdomain_list.php deleted file mode 100644 index 224bba8da..000000000 --- a/interface/ispconfig/interface/sites/web_subdomain_list.php +++ /dev/null @@ -1,55 +0,0 @@ -auth->check_module_permissions('sites'); - -$app->uses('listform_actions'); - -// Limit the results to alias domains -$app->listform_actions->SQLExtWhere = "type = 'subdomain'"; - -$app->listform_actions->onLoad(); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/strengthmeter/lib/lang/bg_strengthmeter.lng b/interface/ispconfig/interface/strengthmeter/lib/lang/bg_strengthmeter.lng deleted file mode 100644 index 6631f3ab0..000000000 --- a/interface/ispconfig/interface/strengthmeter/lib/lang/bg_strengthmeter.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/strengthmeter/lib/lang/br_strengthmeter.lng b/interface/ispconfig/interface/strengthmeter/lib/lang/br_strengthmeter.lng deleted file mode 100644 index ba99f9768..000000000 --- a/interface/ispconfig/interface/strengthmeter/lib/lang/br_strengthmeter.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/strengthmeter/lib/lang/de_strengthmeter.lng b/interface/ispconfig/interface/strengthmeter/lib/lang/de_strengthmeter.lng deleted file mode 100644 index 52f10189e..000000000 --- a/interface/ispconfig/interface/strengthmeter/lib/lang/de_strengthmeter.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/strengthmeter/lib/lang/en_strengthmeter.lng b/interface/ispconfig/interface/strengthmeter/lib/lang/en_strengthmeter.lng deleted file mode 100644 index 2a6de41f1..000000000 --- a/interface/ispconfig/interface/strengthmeter/lib/lang/en_strengthmeter.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/strengthmeter/lib/lang/es_strengthmeter.lng b/interface/ispconfig/interface/strengthmeter/lib/lang/es_strengthmeter.lng deleted file mode 100644 index f0b4b7337..000000000 --- a/interface/ispconfig/interface/strengthmeter/lib/lang/es_strengthmeter.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/strengthmeter/lib/lang/fi_strengthmeter.lng b/interface/ispconfig/interface/strengthmeter/lib/lang/fi_strengthmeter.lng deleted file mode 100644 index 914565261..000000000 --- a/interface/ispconfig/interface/strengthmeter/lib/lang/fi_strengthmeter.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/strengthmeter/lib/lang/fr_strengthmeter.lng b/interface/ispconfig/interface/strengthmeter/lib/lang/fr_strengthmeter.lng deleted file mode 100644 index 23ac2bac6..000000000 --- a/interface/ispconfig/interface/strengthmeter/lib/lang/fr_strengthmeter.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/strengthmeter/lib/lang/hu_strengthmeter.lng b/interface/ispconfig/interface/strengthmeter/lib/lang/hu_strengthmeter.lng deleted file mode 100644 index 41f7d98f4..000000000 --- a/interface/ispconfig/interface/strengthmeter/lib/lang/hu_strengthmeter.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/strengthmeter/lib/lang/it_strengthmeter.lng b/interface/ispconfig/interface/strengthmeter/lib/lang/it_strengthmeter.lng deleted file mode 100644 index 3f2b615f7..000000000 --- a/interface/ispconfig/interface/strengthmeter/lib/lang/it_strengthmeter.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/strengthmeter/lib/lang/ja_strengthmeter.lng b/interface/ispconfig/interface/strengthmeter/lib/lang/ja_strengthmeter.lng deleted file mode 100644 index ddf1222f1..000000000 --- a/interface/ispconfig/interface/strengthmeter/lib/lang/ja_strengthmeter.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/strengthmeter/lib/lang/nl_strengthmeter.lng b/interface/ispconfig/interface/strengthmeter/lib/lang/nl_strengthmeter.lng deleted file mode 100644 index 57e86ca70..000000000 --- a/interface/ispconfig/interface/strengthmeter/lib/lang/nl_strengthmeter.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/strengthmeter/lib/lang/pl_strengthmeter.lng b/interface/ispconfig/interface/strengthmeter/lib/lang/pl_strengthmeter.lng deleted file mode 100644 index df85c9712..000000000 --- a/interface/ispconfig/interface/strengthmeter/lib/lang/pl_strengthmeter.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/strengthmeter/lib/lang/ro_strengthmeter.lng b/interface/ispconfig/interface/strengthmeter/lib/lang/ro_strengthmeter.lng deleted file mode 100644 index 27b9ab98b..000000000 --- a/interface/ispconfig/interface/strengthmeter/lib/lang/ro_strengthmeter.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/strengthmeter/lib/lang/ru_strengthmeter.lng b/interface/ispconfig/interface/strengthmeter/lib/lang/ru_strengthmeter.lng deleted file mode 100644 index afe7d6e21..000000000 --- a/interface/ispconfig/interface/strengthmeter/lib/lang/ru_strengthmeter.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/strengthmeter/lib/lang/se_strengthmeter.lng b/interface/ispconfig/interface/strengthmeter/lib/lang/se_strengthmeter.lng deleted file mode 100644 index 2a6de41f1..000000000 --- a/interface/ispconfig/interface/strengthmeter/lib/lang/se_strengthmeter.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/strengthmeter/lib/lang/sk_strengthmeter.lng b/interface/ispconfig/interface/strengthmeter/lib/lang/sk_strengthmeter.lng deleted file mode 100644 index 5d5fb7158..000000000 --- a/interface/ispconfig/interface/strengthmeter/lib/lang/sk_strengthmeter.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/strengthmeter/lib/lang/tr_strengthmeter.lng b/interface/ispconfig/interface/strengthmeter/lib/lang/tr_strengthmeter.lng deleted file mode 100644 index f9e6cb2bb..000000000 --- a/interface/ispconfig/interface/strengthmeter/lib/lang/tr_strengthmeter.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/temp/en.lng b/interface/ispconfig/interface/temp/en.lng deleted file mode 100644 index 5fdc07c91..000000000 --- a/interface/ispconfig/interface/temp/en.lng +++ /dev/null @@ -1,2131 +0,0 @@ ----|ISPConfig Language File|3.0.1.6|en ---|global|en|en.lng - - ---|admin|en|en.lng - ---|admin|en|en_firewall.lng - ---|admin|en|en_firewall_list.lng - ---|admin|en|en_groups.lng - ---|admin|en|en_groups_list.lng -WARNING:
    Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> ---|admin|en|en_language_add.lng - ---|admin|en|en_language_complete.lng -This adds missing strings from the english master language files to the selected language.'; -$wb["language_select_txt"] = 'Select language'; -$wb['btn_save_txt'] = 'Merge files now'; -$wb['btn_cancel_txt'] = 'Back'; -?> ---|admin|en|en_language_edit.lng - - ---|admin|en|en_language_export.lng - ---|admin|en|en_language_import.lng - ---|admin|en|en_language_list.lng - - ---|admin|en|en_remote_user.lng - - ---|admin|en|en_remote_user_list.lng - - - ---|admin|en|en_server.lng - ---|admin|en|en_server_config.lng - ---|admin|en|en_server_config_list.lng - ---|admin|en|en_server_ip.lng - ---|admin|en|en_server_ip_list.lng - ---|admin|en|en_server_list.lng - ---|admin|en|en_software_package_list.lng - - ---|admin|en|en_software_repo.lng - ---|admin|en|en_software_repo_list.lng - ---|admin|en|en_software_update_list.lng - - ---|admin|en|en_system_config.lng - ---|admin|en|en_users.lng - - ---|admin|en|en_users_list.lng -WARNING:
    Do not edit or modify any user settings here. Use the Client- and Reseller settings in the Client module instead. Modifying or changing Users or groups here may cause data loss!'; -?> ---|client|en|en.lng - ---|client|en|en_client.lng - - ---|client|en|en_clients_list.lng - ---|client|en|en_client_template.lng - ---|client|en|en_client_template_list.lng - - ---|client|en|en_reseller.lng - 0'; -$wb["limit_web_quota_txt"] = 'Web Quota'; -?> - ---|client|en|en_resellers_list.lng - ---|designer|en|en.lng - ---|designer|en|en_form_edit.lng - ---|designer|en|en_form_list.lng - ---|designer|en|en_form_show.lng - ---|designer|en|en_module_edit.lng -Description -

    -Modulename: Name of the module directory. Only numbers, chars and underscore allowed.
    -Moduletitle: Will be shown in the (upper) main navigation.
    -Template file: Template file of the module. Currently available: module.tpl.htm and module_tree.tpl.htm. Default is module.tpl.htm.
    -NaviFrame: If module_tree.tpl.htm selected as template file, enter here the path to the script file for the left frame.
    -Default page: These page will be shown when the module is opened.
    -Tab width: Width of the Tabs in the main navigation. The field is empty by default. You can enter values absolute in pixel (e.g 20) or relative (e.g 20%).
    -Hint: All paths are relative to the directory "web". -'; - -?> ---|designer|en|en_module_list.lng - ---|designer|en|en_module_nav_edit.lng - ---|designer|en|en_module_nav_item_edit.lng - ---|designer|en|en_module_show.lng - ---|dns|en|en.lng - ---|dns|en|en_dns_a.lng - ---|dns|en|en_dns_aaaa.lng - ---|dns|en|en_dns_alias.lng - ---|dns|en|en_dns_a_list.lng - ---|dns|en|en_dns_cname.lng - ---|dns|en|en_dns_hinfo.lng - ---|dns|en|en_dns_mx.lng - ---|dns|en|en_dns_ns.lng - ---|dns|en|en_dns_ptr.lng - ---|dns|en|en_dns_rp.lng - ---|dns|en|en_dns_soa.lng -these IPs (comma separated list)'; -$wb["active_txt"] = 'Active'; -$wb["limit_dns_zone_txt"] = 'The max. number of DNS zones for your account is reached.'; -$wb["client_txt"] = 'Client'; -$wb["no_zone_perm"] = 'You do not have the permission to add a record to this DNS zone.'; -$wb["server_id_error_empty"] = 'No server selected'; -$wb["origin_error_empty"] = 'Zone empty.'; -$wb["origin_error_unique"] = 'There is already a record for this zone.'; -$wb["origin_error_regex"] = 'Zone has a invalid format.'; -$wb["ns_error_regex"] = 'NS has a invalid format.'; -$wb["mbox_error_empty"] = 'Email is empty.'; -$wb["mbox_error_regex"] = 'Email format invalid.'; -$wb["also_notify_txt"] = 'Also Notify'; -$wb["update_acl_txt"] = 'Update ACL'; -?> ---|dns|en|en_dns_soa_list.lng - ---|dns|en|en_dns_srv.lng - ---|dns|en|en_dns_template.lng - ---|dns|en|en_dns_template_list.lng - ---|dns|en|en_dns_txt.lng - ---|dns|en|en_dns_wizard.lng - ---|help|en|en.lng - - ---|help|en|en_support_message.lng - - ---|help|en|en_support_message_list.lng - ---|login|en|en.lng - 64 characters.'; - -$wb['username_txt'] = "Username"; -$wb['password_txt'] = "Password"; -$wb['login_button_txt'] = "Login"; - -?> ---|mail|en|en.lng - ---|mail|en|en_mail_alias.lng - ---|mail|en|en_mail_aliasdomain.lng - ---|mail|en|en_mail_aliasdomain_list.lng - ---|mail|en|en_mail_alias_list.lng - ---|mail|en|en_mail_blacklist.lng - ---|mail|en|en_mail_blacklist_list.lng - ---|mail|en|en_mail_content_filter.lng - ---|mail|en|en_mail_content_filter_list.lng - ---|mail|en|en_mail_domain.lng - ---|mail|en|en_mail_domain_catchall.lng - ---|mail|en|en_mail_domain_catchall_list.lng - ---|mail|en|en_mail_domain_list.lng - ---|mail|en|en_mail_forward.lng - ---|mail|en|en_mail_forward_list.lng - ---|mail|en|en_mail_get.lng - ---|mail|en|en_mail_get_list.lng - ---|mail|en|en_mail_relay_recipient.lng - ---|mail|en|en_mail_relay_recipient_list.lng - ---|mail|en|en_mail_spamfilter.lng - ---|mail|en|en_mail_spamfilter_list.lng - ---|mail|en|en_mail_transport.lng - ---|mail|en|en_mail_transport_list.lng - ---|mail|en|en_mail_user.lng - 1'; -$wb["move_junk_txt"] = 'Move Spam Emails to Junk directory'; -?> - ---|mail|en|en_mail_user_filter.lng - ---|mail|en|en_mail_user_filter_list.lng - ---|mail|en|en_mail_user_list.lng - ---|mail|en|en_mail_user_stats_list.lng - ---|mail|en|en_mail_whitelist.lng - ---|mail|en|en_mail_whitelist_list.lng - ---|mail|en|en_spamfilter_blacklist.lng - ---|mail|en|en_spamfilter_blacklist_list.lng - ---|mail|en|en_spamfilter_config.lng - ---|mail|en|en_spamfilter_config_list.lng - ---|mail|en|en_spamfilter_policy.lng - ---|mail|en|en_spamfilter_policy_list.lng - ---|mail|en|en_spamfilter_users.lng - ---|mail|en|en_spamfilter_users_list.lng - ---|mail|en|en_spamfilter_whitelist.lng - ---|mail|en|en_spamfilter_whitelist_list.lng - ---|monitor|en|en.lng - - ---|monitor|en|en_datalog_list.lng - ---|monitor|en|en_syslog_list.lng - ---|sites|en|en.lng - ---|sites|en|en_cron.lng - ---|sites|en|en_cron_list.lng - ---|sites|en|en_database.lng -any)'; -$wb["database_remote_error_ips"] = 'At least one of the entered ip addresses is invalid.'; -$wb["client_txt"] = 'Client'; -$wb["active_txt"] = 'Active'; -$wb["database_name_error_empty"] = 'Database name is empty.'; -$wb["database_name_error_unique"] = 'There is already a database with this name on the server. To get a unique name, e.g. prepend your domain name to the database name.'; -$wb["database_name_error_regex"] = 'Invalid database name. The database name may contain these characters: a-z, A-Z, 0-9 and the underscore. Length: 2 - 64 characters.'; -$wb["database_user_error_empty"] = 'Database user is empty.'; -$wb["database_user_error_unique"] = 'There is already a database user with this name on the server. To get a unique name, e.g. prepend your domain name to the username.'; -$wb["database_user_error_regex"] = 'Invalid database user name. The username may contain these characters: a-z, A-Z, 0-9 and the underscore. Length: 2 - 64 characters.'; -$wb["limit_database_txt"] = 'The max. number of databases is reached.'; -$wb["database_name_change_txt"] = 'The database name can not be changed'; -$wb["database_charset_change_txt"] = 'The database charset can not be changed'; -$wb["database_name_error_len"] = 'Database name - {db} - too long. The max. database name length incl. prefix is 64 chars.'; -$wb["database_user_error_len"] = 'Database username - {user}- too long. The max. database username length incl. prefix is 16 chars.'; -?> - ---|sites|en|en_database_list.lng - ---|sites|en|en_ftp_user.lng - - ---|sites|en|en_ftp_user_list.lng - ---|sites|en|en_shell_user.lng - - ---|sites|en|en_shell_user_list.lng - ---|sites|en|en_web_aliasdomain_list.lng - ---|sites|en|en_web_domain.lng - - ---|sites|en|en_web_domain_list.lng - ---|sites|en|en_web_sites_stats_list.lng - ---|sites|en|en_web_subdomain.lng - ---|sites|en|en_web_subdomain_list.lng - ---|strengthmeter|en|en_strengthmeter.lng - - ---|tools|en|en.lng - ---|tools|en|en_usersettings.lng - - ----|EOF diff --git a/interface/ispconfig/interface/themes/default/css/central.css b/interface/ispconfig/interface/themes/default/css/central.css deleted file mode 100644 index e9268d5bf..000000000 --- a/interface/ispconfig/interface/themes/default/css/central.css +++ /dev/null @@ -1,32 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) central stylesheet - ISPConfig 3: default theme - * (de) Zentrales Stylesheet - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import core styles | Basis-Stylesheets einbinden */ -@import url(../yaml/core/base.css); - -/* import screen layout | Screen-Layout einbinden */ -@import url(navigation/nav_top.css); -@import url(navigation/nav_side.css); -@import url(screen/basemod.css); -@import url(screen/basemod_2col_left_seo.css); -@import url(screen/content.css); -@import url(screen/uni-form-generic.css); -@import url(screen/uni-form.css); -@import url(screen/content_ispc.css); - -/* import print layout | Druck-Layout einbinden */ -@import url(print/print_100.css); diff --git a/interface/ispconfig/interface/themes/default/css/navigation/nav_side.css b/interface/ispconfig/interface/themes/default/css/navigation/nav_side.css deleted file mode 100644 index f652917b5..000000000 --- a/interface/ispconfig/interface/themes/default/css/navigation/nav_side.css +++ /dev/null @@ -1,125 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Vertical list navigation "vlist" - ISPConfig 3: default theme - * (de) Vertikale Navigationsliste "vlist" - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media all -{ - #submenu { - width: 100%; - overflow: hidden; - margin: 0px; - list-style-type: none; - border-bottom: 2px #ddd solid; - } - - #submenu ul { list-style-type: none; margin:0; padding: 0; } - #submenu li { float:left; width: 100%; margin:0; padding: 0; font-size:0.9em; } - - #submenu a, - #submenu strong { - display:block; - width: 90%; - padding: 2px 0px 2px 10%; - text-decoration: none; - background-color:#fff; - color: #444; - border-bottom: 1px #eee solid; - } - - /* Menu Title */ - #submenu li#title { - width: 100%; - padding: 0px; - font-weight: bold; - color: #444; - background-color: #fff; - border-top: 2px #888 solid; - font-size: 1.1em; - } - - #submenu li#title a { - background-color: #f0f8ff; - color: #444; - } - #submenu li#title a:hover { - color: #f63; - } - - #submenu li span { - display:block; - width: 90%; - padding: 3px 0px 3px 10%; - font-weight: bold; - border-bottom: 1px #ddd solid; - } - - /* Level 1 */ - #submenu li#active, - #submenu li strong { - width: 90%; - padding: 3px 0px 3px 10%; - font-weight: bold; - color: #fff; - background-color:#aab; - border-bottom: 1px #eee solid; - } - - #submenu li a { width: 90%; padding-left: 10%; background-color:#fff; color: #444; } - #submenu li a:focus, - #submenu li a:hover, - #submenu li a:active { background-color:#f63; color: #fff; } - - /* Level 2 */ - #submenu li ul li a, - #submenu li ul li#active, - #submenu li ul li strong, - #submenu li ul li span { width: 80%; padding-left: 20%; } - - #submenu li ul li a { background-color:#f8f8f8; color: #666; } - #submenu li ul li a:focus, - #submenu li ul li a:hover, - #submenu li ul li a:active { background-color:#f63; color: #fff; } - - /* Level 3 */ - #submenu li ul li ul li a, - #submenu li ul li ul li#active, - #submenu li ul li ul li strong, - #submenu li ul li ul li span { width: 70%; padding-left: 30%; } - - #submenu li ul li ul li a { background-color:#fcfcfc; color: #888; } - #submenu li ul li ul li a:focus, - #submenu li ul li ul li a:hover, - #submenu li ul li ul li a:active { background-color:#f63; color: #fff; } - - /* Level 4 */ - #submenu li ul li ul li ul li a, - #submenu li ul li ul li ul li#active, - #submenu li ul li ul li ul li strong, - #submenu li ul li ul li ul li span { width: 60%; padding-left: 40%; } - - #submenu li ul li ul li ul li a { background-color:#ffffff; color: #aaa; } - #submenu li ul li ul li ul li a:focus, - #submenu li ul li ul li ul li a:hover, - #submenu li ul li ul li ul li a:active { background-color:#f63; color: #fff; } - - /* Form-Elements in the Menu*/ - #submenu * select#server_id { - margin: 3px 10%; - padding: 1px; - width: 80%; - } - -} \ No newline at end of file diff --git a/interface/ispconfig/interface/themes/default/css/navigation/nav_top.css b/interface/ispconfig/interface/themes/default/css/navigation/nav_top.css deleted file mode 100644 index 8d2f2c6a0..000000000 --- a/interface/ispconfig/interface/themes/default/css/navigation/nav_top.css +++ /dev/null @@ -1,52 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Horizontal list navigation - ISPConfig 3: default theme - * (de) Horizontale Navigationsliste - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media all -{ - #topNav ul { - list-style: none; - padding: 0; - margin: 0; - } - - #topNav li { - display: inline; - margin: 0 2px 0 0; - } - - #topNav a { - padding: 0 1.5em; - text-decoration: none; - color: black; - background: #d3d3d3; - } - - #topNav a:hover { - background: #fc0; - color: #540; - } - - #topNav #topNav_current { - } - - #topNav #topNav_current a { - padding-bottom: 2px; - font-weight: bold; - color: #ff6600; - background: #ffffff; - } -} \ No newline at end of file diff --git a/interface/ispconfig/interface/themes/default/css/patches/central.css b/interface/ispconfig/interface/themes/default/css/patches/central.css deleted file mode 100644 index 3ed00400b..000000000 --- a/interface/ispconfig/interface/themes/default/css/patches/central.css +++ /dev/null @@ -1,37 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) IE-Patch stylesheet - ISPConfig 3: default theme - * (de) IE-Korrektur-Stylesheet - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* Layout-independent adjustments | Layout-unabhängige Anpassungen ----------------------------------- */ -@import url(../yaml/core/iehacks.css); - -/* Layout-dependent adjustments | Layout-abhängige Anpassungen --------------------------------------- */ -@media screen, projection -{ - /** - * min-width/max-width workaround for IE5.x & IE6 - * - * @workaround - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid no - */ - - * html #page_margins { - /* Fallback if JavaScript is disabled */ - width: 80%; - } -} diff --git a/interface/ispconfig/interface/themes/default/css/print/print_100.css b/interface/ispconfig/interface/themes/default/css/print/print_100.css deleted file mode 100644 index 94315a8af..000000000 --- a/interface/ispconfig/interface/themes/default/css/print/print_100.css +++ /dev/null @@ -1,31 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - ISPConfig 3: default theme - * (de) Druck-Stylesheet - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../../yaml/core/print_base.css); - -/* #col1 - x -** #col2 - 0 -** #col3 - 0 -*/ -@media print -{ - #col1, #col1_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } - - #col2 { display:none; } - #col3 { display:none; } -} diff --git a/interface/ispconfig/interface/themes/default/css/screen/basemod.css b/interface/ispconfig/interface/themes/default/css/screen/basemod.css deleted file mode 100644 index 60f83712b..000000000 --- a/interface/ispconfig/interface/themes/default/css/screen/basemod.css +++ /dev/null @@ -1,118 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Screen layout for YAML - ISPConfig 3: default theme - * (de) Bildschirmlayout fr YAML - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media screen, projection -{ - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Formatting YAML's basic layout elements - * (de) Gestaltung des YAML Basis-Layouts - */ - - /* (en) Marginal areas & page background */ - /* (de) Randbereiche & Seitenhintergrund */ - body { background: #EEEEEE url("../../images/screen_bg.png") repeat-x top left fixed; padding: 10px 0; } - - /* (en) Centering layout in old IE-versions */ - /* (de) Zentrierung des Layouts in alten IE-versionen */ - body { text-align: center; } - #page_margins { text-align:left; margin: 0 auto; } - - /* (en) Layout: width, background, borders */ - /* (de) Layout: Breite, Hintergrund, Rahmen */ - /*#page_margins { min-width: 980px; max-width: 80%; background: #fff;}*/ - /* #page_margins { min-width: 980px; max-width: 80%; background: #fff; display: inline-block;}*/ - #page_margins { min-width: 980px; max-width: 80%; background: #fff; display: table;} - #page{ padding: 10px; } - - /* (en) Designing main layout elements */ - /* (de) Gestaltung der Hauptelemente des Layouts */ - #header { - color: #faf0e6; - padding: 15px 2em 1em 20px; - background: #9a9a9a url(../../images/header_bg.png) repeat-x top left; - } - - /* (en) Text Alignment for #topnav content */ - /* (de) Textausrichtung für #topnav Inhalte */ - #topnav { text-align: left; } - - /* (en) Absolute positioning only within #header */ - /* (de) Absolute Positionierung erfolgt nur innerhalb von #header */ - #header #topnav { - position: absolute; - top: 0px; - left: 0px; - } - - /* (en) Text Alignment for #topnav content */ - /* (de) Textausrichtung für #topnav Inhalte */ - #topsubnav { text-align: right; } - - /* (en) Absolute positioning only within #header */ - /* (de) Absolute Positionierung erfolgt nur innerhalb von #header */ - #header #topsubnav { - position:absolute; - top: 10px; - right: 10px; - } - - /* (en) adjustment of main navigation */ - /* (de) Anpassung der Hauptnavigation */ - #nav ul { margin-left: 200px; } - #nav_main { background: #9a9a9a repeat-x top left; } - - #main { background: #fff;padding:10px 0; } - - #footer { - color:#666; - background: #f9f9f9; - padding: 10px 20px; - border-top: 5px #efefef solid; - font-size: 0.8em; - text-align: center; - } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Formatting content container - * (de) Formatierung der Inhalts-Container - * - * |-------------------------------| - * | #header | - * |-------------------------------| - * | #col1 | #col3 | #col2 | - * | 25% | flexible | 25% | - * |-------------------------------| - * | #footer | - * |-------------------------------| - */ - - - #col1 { width: 25%; } - #col1_content { padding: 10px 10px 10px 20px; } - - #col2 { width: 25%; } - #col2_content { padding: 10px 20px 10px 10px; } - - #col3 { margin: 0 25%; } - #col3_content { padding: 10px; } - - /*------------------------------------------------------------------------------------------------------*/ -} diff --git a/interface/ispconfig/interface/themes/default/css/screen/basemod_2col_left_seo.css b/interface/ispconfig/interface/themes/default/css/screen/basemod_2col_left_seo.css deleted file mode 100644 index 525204b23..000000000 --- a/interface/ispconfig/interface/themes/default/css/screen/basemod_2col_left_seo.css +++ /dev/null @@ -1,48 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Variation of screen layout (basemod.css) - ISPConfig 3: default theme - * (de) Variation des Screenlayouts (basemod.css) - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media screen, projection -{ - /** - * (en) Repositioning content container - * (de) Neupositionierung der Content Container - * - * |-------------------------------| - * | #header | - * |-------------------------------| - * | #col1 | #col3 | - * | 200px | flexible | - * |-------------------------------| - * | #footer | - * |-------------------------------| - */ - - /* #col1 becomes the fixed navigation column | #col1 wird zur Navigationsspalte mit fester Breite */ - #col1 { width: 200px; float:left} - #col1_content { padding: 0 10px 0 0; } - - /* #col2 is turned off | #col2 abschalten */ - #col2 { display:none; } - - /* #col3 becomes the main column | #col3 wird zur Hauptspalte */ - #col3 { margin-left: 200px; margin-right: 0; } - #col3_content { padding: 0px 10px 10px 20px; } - - /* Graphic-free column dividers between #col1 and #col3 | Grafikfreier Spaltentrenner zw. #col1 und #col3*/ - #col3 {border-left: 1px #ddd solid;} - #main {padding: 1em 0} -} diff --git a/interface/ispconfig/interface/themes/default/css/screen/content.css b/interface/ispconfig/interface/themes/default/css/screen/content.css deleted file mode 100644 index ad5a0d2b6..000000000 --- a/interface/ispconfig/interface/themes/default/css/screen/content.css +++ /dev/null @@ -1,188 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Uniform design of standard content elements - ISPConfig 3: default theme - * (de) Einheitliche Standardformatierungen für die wichtigten Inhalts-Elemente - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - * @appdef yaml - */ - -@media all -{ - /** - * Fonts - * (en) font-family and font-size selection for headings and standard text elements - * (de) Zeichensatz und Schriftgrößen für Ãœberschriften und übliche Text-Elemente - * - * @section content-fonts - */ - - /* (en) reset font size for all elements to standard (16 Pixel) */ - /* (de) Alle Schriftgrößen auf Standardgröße (16 Pixel) zurücksetzen */ - html * { font-size: 100.01% } - - /* (en) reset monospaced elements to font size 16px in Gecko browsers */ - /* (de) Schriftgröße von monospaced Elemente auf 16 Pixel setzen */ - textarea, pre, tt, code { - font-family: Consolas,"Lucida Console","Courier New",monospace; - font-size: 0.9em; - } - - /* (en) base layout gets standard font size 12px */ - /* (de) Basis-Layout erhält Standardschriftgröße von 12 Pixeln */ - body { - font-family: 'Trebuchet MS', sans-serif; - font-size: 75.00%; - color: #444; - } - - h1,h2,h3,h4,h5,h6 { - font-family: 'Trebuchet MS', sans-serif; - font-weight:bold; - color:#666; - margin: 0 0 0.25em 0; - } - - h1 { font-size: 200% } /* 24px */ - h2 { font-size: 200% } /* 24px */ - h3 { font-size: 150% } /* 18px */ - h4 { font-size: 133.33% } /* 16px */ - h5 { font-size: 116.67% } /* 14px */ - h6 { font-size: 116.67%; font-style:italic } /* 14px */ - - #header h1 { - font-size:2.5em; - letter-spacing:-2px; - line-height:65%; - color: silver; - } - - #header span { - color:#333333; - } - - p { line-height: 1.5em; margin: 0 0 1em 0; } - - /* ### Lists | Listen #### */ - - ul, ol, dl { line-height: 1.5em; margin: 0 0 1em 1em } - li { margin-left: 1.5em; line-height: 1.5em } - - dt { font-weight: bold } - dd { margin: 0 0 1em 2em } - - /* ### text formatting | Textauszeichnung ### */ - - cite, blockquote { font-style:italic } - blockquote { margin: 0 0 1em 1.5em } - - strong,b { font-weight: bold } - em,i { font-style:italic } - - pre, code { font-family: monospace; font-size: 1.1em; } - - acronym, abbr { - letter-spacing: .07em; - border-bottom: .1em dashed #c00; - cursor: help; - } - - /** - * Generic Content Classes - * (en) standard classes for positioning and highlighting - * (de) Standardklassen zur Positionierung und Hervorhebung - * - * @section content-generic-classes - */ - - .note {background: #dfd; padding: 1em; border-top: 1px #bdb dotted; border-bottom: 1px #bdb dotted;} - .important {background: #ffd; padding: 1em; border-top: 1px #ddb dotted; border-bottom: 1px #ddb dotted;} - .warning {background: #fdd; padding: 1em; border-top: 1px #dbb dotted; border-bottom: 1px #dbb dotted;} - - .float_left { float: left; display:inline; margin-right: 1em; margin-bottom: 0.15em; } - .float_right { float: right; display:inline; margin-left: 1em; margin-bottom: 0.15em; } - .center { text-align:center; margin: 0.5em auto } - - /** - * External Links - * - * (en) Formatting of hyperlinks - * (de) Gestaltung von Hyperlinks - * - */ - - a {color: #4D87C7; text-decoration:none;} - a:focus, - a:hover, - a:active {color:#182E7A; text-decoration:underline;} - - #topsubnav a { color: #f0f8ff; font-weight: normal; background:transparent; text-decoration:none; } - #topsubnav a:focus, - #topsubnav a:hover, - #topsubnav a:active { text-decoration:underline; background-color: transparent;} - - #footer a { color: #999; background:transparent; font-weight: bold;} - #footer a:focus, - #footer a:hover, - #footer a:active {color: #4D87C7; background-color: transparent; text-decoration:underline;} - - /** - * (en) Emphasizing external Hyperlinks via CSS - * (de) Hervorhebung externer Hyperlinks mit CSS - * - * @section content-external-links - * @app-yaml-default disabled - */ - - /* - #main a[href^="http://www.my-domain.com"], - #main a[href^="https://www.my-domain.com"] - { - padding-left: 12px; - background-image: url('your_image.gif'); - background-repeat: no-repeat; - background-position: 0 0.45em; - } - */ - - /** - * Tables | Tabellen - * (en) Generic classes for table-width and design definition - * (de) Generische Klassen für die Tabellenbreite und Gestaltungsvorschriften für Tabellen - * - * @section content-tables - */ - - table { width: auto; border-collapse:collapse; margin-bottom: 0.5em; } - table.full { width: 100%; } - table.fixed { table-layout:fixed } - - th,td { padding: 0.5em; } - thead th { background: #444 url(../../images/lists_thead_bg.png) repeat-x; color: #fff } - tbody th { background: #ccc; color: #333 } - tbody th.sub { background: #ddd; color: #333 } - - /** - * Miscellaneous | Sonstiges - * - * @section content-misc - */ - - hr { - color: #fff; - background:transparent; - margin: 0 0 0.5em 0; - padding: 0 0 0.5em 0; - border:0; - border-bottom: 1px #eee solid; - } -} diff --git a/interface/ispconfig/interface/themes/default/css/screen/content_ispc.css b/interface/ispconfig/interface/themes/default/css/screen/content_ispc.css deleted file mode 100644 index 46da666ef..000000000 --- a/interface/ispconfig/interface/themes/default/css/screen/content_ispc.css +++ /dev/null @@ -1,822 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Uniform design of ISPConfig elements - ISPConfig 3: default theme - * (de) Einheitliche Standardformatierungen f�r ISPConfig-Elemente - ISPConfig 3: default theme - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - * @appdef yaml - */ - -@media all -{ - .pageForm_description { - font-size: 12px; - } - - /* Tab-Box */ - .tabbox_tabs { - border-bottom: 1px solid #d3d3d3; - } - .tabbox_tabs ul { - list-style: none; - padding: 0; - margin: 0; - } - .tabbox_tabs li { - display: inline; - margin: 0 2px 0 0; - } - .tabbox_tabs a { - padding: 0 1em; - text-decoration: none; - color: black; - background: #d3d3d3; - border: 1px solid #d3d3d3; - } - .tabbox_tabs a:hover { - background: #fc0; - color: #540; - } - .tabbox_tabs .active a { - font-weight: bold; - color: #ff6600; - background: #ffffff; - } - - .pnl_toolsarea fieldset, .pnl_listarea fieldset, .pnl_formsarea fieldset { - border-color: #6299c5 -moz-use-text-color -moz-use-text-color; - border-style: solid none none; - border-width: 1px medium medium; - margin: 20px 0; - } - .pnl_toolsarea fieldset legend , .pnl_listarea fieldset legend { - font-weight: bold; - color: #6299c5; - } - .pnl_formarea fieldset { - font-weight: bold; - } - - /* hide line and legend when inside tabbed content */ - #tabbox_content * .pnl_toolsarea fieldset, #tabbox_content * .pnl_listarea fieldset, #tabbox_content * .pnl_formsarea fieldset { border: none !important; } - #tabbox_content * .pnl_toolsarea fieldset legend, #tabbox_content * .pnl_listarea fieldset legend, #tabbox_content * .pnl_formsarea fieldset legend { display: none !important; } - - .codeview { - margin:20px 0; - padding:2px; - border: 1px solid #ffcc00; - background: #fffaea; - font-family: Consolas, "Lucida Console", "Courier New", monospace; - font-size: 0.9em; - } - - /* Lists */ - table.list { - width: 100%; - border: 1px solid #d3d3d3 !important; - } - table.list thead th { font-size: 10px; } - table.list tbody { border: 1px solid #d3d3d3 !important; } - table.list tfoot td { text-align: center; background: #f8f8f8 url(../../images/lists_tfoot_bg.png) repeat-x bottom left; padding: 24px 8px 8px 8px; } - table.list .tbl_row_even { background: #fcfcfc; } - table.list .tbl_row_uneven { background: #f0f8ff; } - table.list tr:hover { background: #fffacd; } - - /* Password Strength */ - #passBar { - width: 101px; height: 10px; - background: url(../../images/meter_bg.gif) repeat-x bottom left; - margin: 2px 0; - float: left; - } - #passText { - padding: 0; - float: left; - } - - /* Systemmonitor */ - .systemmonitor-state { - margin: 10px 0; - font-family: Consolas, "Lucida Console", "Courier New", monospace; - font-size: 0.9em; - } - .systemmonitor-state.state-no_state { - border-top: 4px solid #95A19F; - background-color: #f8f8ff; - } - .systemmonitor-state.state-unknown { - border-top: 4px solid #30302e; - background-color: #cecfc5; - } - .systemmonitor-state.state-ok { - border-top: 4px solid #23fb00; - background-color: #adffa2; - } - .systemmonitor-state.state-info { - border-top: 4px solid #fdff00; - background-color: #fdffa2; - } - .systemmonitor-state.state-warning { - border-top: 4px solid #ffa800; - background-color: #ffda93; - } - .systemmonitor-state.state-critical { - border-top: 4px solid #ff0000; - background-color: #ffb9b9; - } - .systemmonitor-state.state-error { - border-top: 4px solid #ff0000; - background-color: #ff7f7f; - } - - .systemmonitor-device { - background-repeat: no-repeat; - background-position: 12px 4px; - min-height: 80px; - } - .systemmonitor-device.device-system { background-image: url("../../icons/x64/network.png"); } - .systemmonitor-device.device-server { background-image: url("../../icons/x64/server.png"); } - - .systemmonitor-content.icons32 { - padding:2px 10px 2px 80px; - background-repeat: no-repeat; - background-position: 12px 4px; - } - .systemmonitor-content.icons32.ico-no_state { /*background-image:url("../../icons/x32/state_no.png"); */ } - .systemmonitor-content.icons32.ico-unknown { background-image:url("../../icons/x32/state_unknown.png"); } - .systemmonitor-content.icons32.ico-ok { background-image:url("../../icons/x32/state_ok.png"); } - .systemmonitor-content.icons32.ico-info { background-image:url("../../icons/x32/state_info.png"); } - .systemmonitor-content.icons32.ico-warning { background-image:url("../../icons/x32/state_warning.png"); } - .systemmonitor-content.icons32.ico-critical { background-image:url("../../icons/x32/state_critical.png"); } - .systemmonitor-content.icons32.ico-error { background-image:url("../../icons/x32/state_error.png"); } - - .systemmonitor-content table { - border: none; - margin-top: 10px; - } - - .systemmonitor-content * .online { - border: 1px solid #ffffff; - background-color: #E3FFB8; - color: #000000; - padding:0px 5px; - } - .systemmonitor-content * .offline { - border: 1px solid #ffffff; - background-color: #d12f19; - color:#ffffff; - padding:0px 5px; - } - - /* Image-Replacement */ - .swap { background-repeat:no-repeat; } - .swap span { display:none; height:16px; } - #ir-HeaderLogo { background-image:url("../../images/header_logo.png"); height:32px; } - #ir-Yes { background-image:url("../../icons/x16/tick_circle.png"); height:16px; } - #ir-No { background-image:url("../../icons/x16/cross_circle.png"); height:16px; } - - /* BUTTONS */ - .buttons a, .buttons button{ - display:block; - float:left; - margin:0 7px 0 0; - background-color:#f5f5f5; - border:1px solid #777777; - border-top: 1px solid #c8c8c8; - border-left:1px solid #c8c8c8; - - font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif; - font-size:90%; - line-height:130%; - text-decoration:none; - font-weight:bold; - color:#565656; - cursor:pointer; - padding:5px 10px 6px 7px; /* Links */ - } - .buttons button{ - width:auto; - overflow:visible; - padding:4px 10px 3px 7px; /* IE6 */ - } - .buttons button[type]{ - padding:5px 10px 5px 7px; /* Firefox */ - line-height:17px; /* Safari */ - } - *:first-child+html button[type]{ - padding:4px 10px 3px 7px; /* IE7 */ - } - .buttons button img, .buttons a img{ - margin:0 3px -3px 0 !important; - padding:0; - border:none; - width:16px; - height:16px; - } - - /* BUTTONS STANDARD */ - button:hover, .buttons a:hover{ - background-color:#dff4ff; - border:1px solid #c2e1ef; - color:#336699; - } - .buttons a:active{ - background-color:#6299c5; - border:1px solid #6299c5; - color:#fff; - } - - /* BUTTONS POSITIVE */ - button.positive, .buttons a.positive{ - color:#529214; - } - .buttons a.positive:hover, button.positive:hover{ - background-color:#E6EFC2; - border:1px solid #C6D880; - color:#529214; - } - .buttons a.positive:active{ - background-color:#529214; - border:1px solid #529214; - color:#fff; - } - - /* BUTTONS NEGATIVE */ - .buttons a.negative, button.negative{ - color:#d12f19; - } - .buttons a.negative:hover, button.negative:hover{ - background-color:#fbe3e4; - border:1px solid #fbc2c4; - color:#d12f19; - } - .buttons a.negative:active{ - background-color:#d12f19; - border:1px solid #d12f19; - color:#fff; - } - - /* Button with icon and text */ - .iconstxt { - background-repeat: no-repeat; - background-position: 4px 4px; - } - .iconstxt span { padding-left: 20px; } - .iconstxt.icoPositive { background-image: url("../../icons/x16/tick_circle_frame.png"); } - .iconstxt.icoNegative { background-image: url("../../icons/x16/cross_circle_frame.png"); } - .iconstxt.icoAdd { background-image: url(../../icons/x16/plus_circle_frame.png); } - .iconstxt.icoKey { background-image: url("../../icons/x16/key.png"); } - .iconstxt.icoDelete { background-image: url("../../icons/x16/minus_circle_frame.png"); } - - /* Button with icon and without text */ - .icons16 span { display: none; } - a.icons16 { height: 18px; width: 18px; padding: 0; background-repeat: no-repeat; background-position: 1px 1px;} - button.icons16 { height: 20px; width: 20px; padding: 0; background-repeat: no-repeat; background-position: 1px 1px;} - - .icons16.icoDelete { background-image: url("../../icons/x16/minus_circle_frame.png"); } - .icons16.icoFilter { background-image: url(../../icons/x16/funnel.png); } - .icons16.icoEdit { background-image: url("../../icons/x16/wrench.png"); } - .icons16.icoDbAdmin { background-image: url("../../icons/x16/database.png"); } - .icons16.icoLoginAs { background-image: url("../../icons/x16/user_go.png"); } - .icons16.icoWebmailer { background-image: url("../../icons/x16/mails_arrow.png"); } - - - - .blockLabel.email_at { - width: 20px !important; - margin: 1.6em 0.3em 0 0 !important - } - .textDisplay { display: block; } - - /* Form Length Classes */ - .textInput.formLengthBool { width: 25px !important; } - .selectInput.formLengthBool { width: 60px !important; } - .textInput.formLengthLimit { width: 50px !important; } - .selectInput.formLengthLimit { width: 85px !important; } - .formLengthDate { width: 75px !important; } - .formLengthIPv4 { width: 125px !important; } - .formLengthIPv6 { width: 100% !important; } - .formLengthEmailUser { width: 30% !important; } - .formLengthEmailDomain { width: 30% !important; } - .formLengthHalf { width: 15% !important; } - .formLengthDouble { width: 50% !important; } - - /* Individual Form Lengths */ - .textInput#username, .textInput#password, .textInput#passwort, .textInput#source_password { width: 100px; } - .selectInput#language { width: 75px; } - .selectInput#client_group_id, .selectInput#default_group { width: 125px; } - input#refresh, input#retry, input#expire, input#minimum, input#ttl { width: 50px !important; } - - /* --- */ - - a[href $='#logout'] { padding-right: 18px; background: transparent url("../../icons/x16/logout.png") no-repeat right top !important; } - - /* Select Menu with Images */ - select.withicons option { - background-repeat:no-repeat; - background-position: 1px; - padding-left:24px; - } - select.withicons#country option[value="AD"] { background-image:url(../../icons/flags/ad.png); } - select.withicons#country option[value="AE"] { background-image:url(../../icons/flags/ae.png); } - select.withicons#country option[value="AF"] { background-image:url(../../icons/flags/af.png); } - select.withicons#country option[value="AG"] { background-image:url(../../icons/flags/ag.png); } - select.withicons#country option[value="AI"] { background-image:url(../../icons/flags/ai.png); } - select.withicons#country option[value="AL"] { background-image:url(../../icons/flags/al.png); } - select.withicons#country option[value="AM"] { background-image:url(../../icons/flags/am.png); } - select.withicons#country option[value="AN"] { background-image:url(../../icons/flags/an.png); } - select.withicons#country option[value="AO"] { background-image:url(../../icons/flags/ao.png); } - select.withicons#country option[value="AQ"] { background-image:url(../../icons/flags/aq.png); } - select.withicons#country option[value="AR"] { background-image:url(../../icons/flags/ar.png); } - select.withicons#country option[value="AS"] { background-image:url(../../icons/flags/as.png); } - select.withicons#country option[value="AT"] { background-image:url(../../icons/flags/at.png); } - select.withicons#country option[value="AU"] { background-image:url(../../icons/flags/au.png); } - select.withicons#country option[value="AW"] { background-image:url(../../icons/flags/aw.png); } - select.withicons#country option[value="AX"] { background-image:url(../../icons/flags/ax.png); } - select.withicons#country option[value="AZ"] { background-image:url(../../icons/flags/az.png); } - select.withicons#country option[value="BA"] { background-image:url(../../icons/flags/ba.png); } - select.withicons#country option[value="BB"] { background-image:url(../../icons/flags/bb.png); } - select.withicons#country option[value="BD"] { background-image:url(../../icons/flags/bd.png); } - select.withicons#country option[value="BE"] { background-image:url(../../icons/flags/be.png); } - select.withicons#country option[value="BF"] { background-image:url(../../icons/flags/bf.png); } - select.withicons#country option[value="BG"] { background-image:url(../../icons/flags/bg.png); } - select.withicons#country option[value="BH"] { background-image:url(../../icons/flags/bh.png); } - select.withicons#country option[value="BI"] { background-image:url(../../icons/flags/bi.png); } - select.withicons#country option[value="BJ"] { background-image:url(../../icons/flags/bj.png); } - select.withicons#country option[value="BM"] { background-image:url(../../icons/flags/bm.png); } - select.withicons#country option[value="BN"] { background-image:url(../../icons/flags/bn.png); } - select.withicons#country option[value="BO"] { background-image:url(../../icons/flags/bo.png); } - select.withicons#country option[value="BR"] { background-image:url(../../icons/flags/br.png); } - select.withicons#country option[value="BS"] { background-image:url(../../icons/flags/bs.png); } - select.withicons#country option[value="BT"] { background-image:url(../../icons/flags/bt.png); } - select.withicons#country option[value="BV"] { background-image:url(../../icons/flags/bv.png); } - select.withicons#country option[value="BW"] { background-image:url(../../icons/flags/bw.png); } - select.withicons#country option[value="BY"] { background-image:url(../../icons/flags/by.png); } - select.withicons#country option[value="BZ"] { background-image:url(../../icons/flags/bz.png); } - select.withicons#country option[value="CA"] { background-image:url(../../icons/flags/ca.png); } - select.withicons#country option[value="CC"] { background-image:url(../../icons/flags/cc.png); } - select.withicons#country option[value="CD"] { background-image:url(../../icons/flags/cd.png); } - select.withicons#country option[value="CF"] { background-image:url(../../icons/flags/cf.png); } - select.withicons#country option[value="CG"] { background-image:url(../../icons/flags/cg.png); } - select.withicons#country option[value="CH"] { background-image:url(../../icons/flags/ch.png); } - select.withicons#country option[value="CI"] { background-image:url(../../icons/flags/ci.png); } - select.withicons#country option[value="CK"] { background-image:url(../../icons/flags/ck.png); } - select.withicons#country option[value="CL"] { background-image:url(../../icons/flags/cl.png); } - select.withicons#country option[value="CM"] { background-image:url(../../icons/flags/cm.png); } - select.withicons#country option[value="CN"] { background-image:url(../../icons/flags/cn.png); } - select.withicons#country option[value="CO"] { background-image:url(../../icons/flags/co.png); } - select.withicons#country option[value="CR"] { background-image:url(../../icons/flags/cr.png); } - select.withicons#country option[value="CS"] { background-image:url(../../icons/flags/cs.png); } - select.withicons#country option[value="CU"] { background-image:url(../../icons/flags/cu.png); } - select.withicons#country option[value="CV"] { background-image:url(../../icons/flags/cv.png); } - select.withicons#country option[value="CX"] { background-image:url(../../icons/flags/cx.png); } - select.withicons#country option[value="CY"] { background-image:url(../../icons/flags/cy.png); } - select.withicons#country option[value="CZ"] { background-image:url(../../icons/flags/cz.png); } - select.withicons#country option[value="DE"] { background-image:url(../../icons/flags/de.png); } - select.withicons#country option[value="DJ"] { background-image:url(../../icons/flags/dj.png); } - select.withicons#country option[value="DK"] { background-image:url(../../icons/flags/dk.png); } - select.withicons#country option[value="DM"] { background-image:url(../../icons/flags/dm.png); } - select.withicons#country option[value="DO"] { background-image:url(../../icons/flags/do.png); } - select.withicons#country option[value="DZ"] { background-image:url(../../icons/flags/dz.png); } - select.withicons#country option[value="EC"] { background-image:url(../../icons/flags/ec.png); } - select.withicons#country option[value="EE"] { background-image:url(../../icons/flags/ee.png); } - select.withicons#country option[value="EG"] { background-image:url(../../icons/flags/eg.png); } - select.withicons#country option[value="EH"] { background-image:url(../../icons/flags/eh.png); } - select.withicons#country option[value="ER"] { background-image:url(../../icons/flags/er.png); } - select.withicons#country option[value="ES"] { background-image:url(../../icons/flags/es.png); } - select.withicons#country option[value="ET"] { background-image:url(../../icons/flags/et.png); } - select.withicons#country option[value="FI"] { background-image:url(../../icons/flags/fi.png); } - select.withicons#country option[value="FJ"] { background-image:url(../../icons/flags/fj.png); } - select.withicons#country option[value="FK"] { background-image:url(../../icons/flags/fk.png); } - select.withicons#country option[value="FM"] { background-image:url(../../icons/flags/fm.png); } - select.withicons#country option[value="FO"] { background-image:url(../../icons/flags/fo.png); } - select.withicons#country option[value="FR"] { background-image:url(../../icons/flags/fr.png); } - select.withicons#country option[value="GA"] { background-image:url(../../icons/flags/ga.png); } - select.withicons#country option[value="GB"] { background-image:url(../../icons/flags/gb.png); } - select.withicons#country option[value="GD"] { background-image:url(../../icons/flags/gd.png); } - select.withicons#country option[value="GE"] { background-image:url(../../icons/flags/ge.png); } - select.withicons#country option[value="GF"] { background-image:url(../../icons/flags/gf.png); } - select.withicons#country option[value="GH"] { background-image:url(../../icons/flags/gh.png); } - select.withicons#country option[value="GI"] { background-image:url(../../icons/flags/gi.png); } - select.withicons#country option[value="GL"] { background-image:url(../../icons/flags/gl.png); } - select.withicons#country option[value="GM"] { background-image:url(../../icons/flags/gm.png); } - select.withicons#country option[value="GN"] { background-image:url(../../icons/flags/gn.png); } - select.withicons#country option[value="GP"] { background-image:url(../../icons/flags/gp.png); } - select.withicons#country option[value="GQ"] { background-image:url(../../icons/flags/gq.png); } - select.withicons#country option[value="GR"] { background-image:url(../../icons/flags/gr.png); } - select.withicons#country option[value="GS"] { background-image:url(../../icons/flags/gs.png); } - select.withicons#country option[value="GT"] { background-image:url(../../icons/flags/gt.png); } - select.withicons#country option[value="GU"] { background-image:url(../../icons/flags/gu.png); } - select.withicons#country option[value="GW"] { background-image:url(../../icons/flags/gw.png); } - select.withicons#country option[value="GY"] { background-image:url(../../icons/flags/gy.png); } - select.withicons#country option[value="HK"] { background-image:url(../../icons/flags/hk.png); } - select.withicons#country option[value="HM"] { background-image:url(../../icons/flags/hm.png); } - select.withicons#country option[value="HN"] { background-image:url(../../icons/flags/hn.png); } - select.withicons#country option[value="HR"] { background-image:url(../../icons/flags/hr.png); } - select.withicons#country option[value="HT"] { background-image:url(../../icons/flags/ht.png); } - select.withicons#country option[value="HU"] { background-image:url(../../icons/flags/hu.png); } - select.withicons#country option[value="ID"] { background-image:url(../../icons/flags/id.png); } - select.withicons#country option[value="IE"] { background-image:url(../../icons/flags/ie.png); } - select.withicons#country option[value="IL"] { background-image:url(../../icons/flags/il.png); } - select.withicons#country option[value="IN"] { background-image:url(../../icons/flags/in.png); } - select.withicons#country option[value="IO"] { background-image:url(../../icons/flags/io.png); } - select.withicons#country option[value="IQ"] { background-image:url(../../icons/flags/iq.png); } - select.withicons#country option[value="IR"] { background-image:url(../../icons/flags/ir.png); } - select.withicons#country option[value="IS"] { background-image:url(../../icons/flags/is.png); } - select.withicons#country option[value="IT"] { background-image:url(../../icons/flags/it.png); } - select.withicons#country option[value="JM"] { background-image:url(../../icons/flags/jm.png); } - select.withicons#country option[value="JO"] { background-image:url(../../icons/flags/jo.png); } - select.withicons#country option[value="JP"] { background-image:url(../../icons/flags/jp.png); } - select.withicons#country option[value="KE"] { background-image:url(../../icons/flags/ke.png); } - select.withicons#country option[value="KG"] { background-image:url(../../icons/flags/kg.png); } - select.withicons#country option[value="KH"] { background-image:url(../../icons/flags/kh.png); } - select.withicons#country option[value="KI"] { background-image:url(../../icons/flags/ki.png); } - select.withicons#country option[value="KM"] { background-image:url(../../icons/flags/km.png); } - select.withicons#country option[value="KN"] { background-image:url(../../icons/flags/kn.png); } - select.withicons#country option[value="KP"] { background-image:url(../../icons/flags/kp.png); } - select.withicons#country option[value="KR"] { background-image:url(../../icons/flags/kr.png); } - select.withicons#country option[value="KW"] { background-image:url(../../icons/flags/kw.png); } - select.withicons#country option[value="KY"] { background-image:url(../../icons/flags/ky.png); } - select.withicons#country option[value="KZ"] { background-image:url(../../icons/flags/kz.png); } - select.withicons#country option[value="LA"] { background-image:url(../../icons/flags/la.png); } - select.withicons#country option[value="LB"] { background-image:url(../../icons/flags/lb.png); } - select.withicons#country option[value="LC"] { background-image:url(../../icons/flags/lc.png); } - select.withicons#country option[value="LI"] { background-image:url(../../icons/flags/li.png); } - select.withicons#country option[value="LK"] { background-image:url(../../icons/flags/lk.png); } - select.withicons#country option[value="LR"] { background-image:url(../../icons/flags/lr.png); } - select.withicons#country option[value="LS"] { background-image:url(../../icons/flags/ls.png); } - select.withicons#country option[value="LT"] { background-image:url(../../icons/flags/lt.png); } - select.withicons#country option[value="LU"] { background-image:url(../../icons/flags/lu.png); } - select.withicons#country option[value="LV"] { background-image:url(../../icons/flags/lv.png); } - select.withicons#country option[value="LY"] { background-image:url(../../icons/flags/ly.png); } - select.withicons#country option[value="MA"] { background-image:url(../../icons/flags/ma.png); } - select.withicons#country option[value="MC"] { background-image:url(../../icons/flags/mc.png); } - select.withicons#country option[value="MD"] { background-image:url(../../icons/flags/md.png); } - select.withicons#country option[value="ME"] { background-image:url(../../icons/flags/me.png); } - select.withicons#country option[value="MG"] { background-image:url(../../icons/flags/mg.png); } - select.withicons#country option[value="MH"] { background-image:url(../../icons/flags/mh.png); } - select.withicons#country option[value="MK"] { background-image:url(../../icons/flags/mk.png); } - select.withicons#country option[value="ML"] { background-image:url(../../icons/flags/ml.png); } - select.withicons#country option[value="MM"] { background-image:url(../../icons/flags/mm.png); } - select.withicons#country option[value="MN"] { background-image:url(../../icons/flags/mn.png); } - select.withicons#country option[value="MO"] { background-image:url(../../icons/flags/mo.png); } - select.withicons#country option[value="MP"] { background-image:url(../../icons/flags/mp.png); } - select.withicons#country option[value="MQ"] { background-image:url(../../icons/flags/mq.png); } - select.withicons#country option[value="MR"] { background-image:url(../../icons/flags/mr.png); } - select.withicons#country option[value="MS"] { background-image:url(../../icons/flags/ms.png); } - select.withicons#country option[value="MT"] { background-image:url(../../icons/flags/mt.png); } - select.withicons#country option[value="MU"] { background-image:url(../../icons/flags/mu.png); } - select.withicons#country option[value="MV"] { background-image:url(../../icons/flags/mv.png); } - select.withicons#country option[value="MW"] { background-image:url(../../icons/flags/mw.png); } - select.withicons#country option[value="MX"] { background-image:url(../../icons/flags/mx.png); } - select.withicons#country option[value="MY"] { background-image:url(../../icons/flags/my.png); } - select.withicons#country option[value="MZ"] { background-image:url(../../icons/flags/mz.png); } - select.withicons#country option[value="NA"] { background-image:url(../../icons/flags/na.png); } - select.withicons#country option[value="NC"] { background-image:url(../../icons/flags/nc.png); } - select.withicons#country option[value="NE"] { background-image:url(../../icons/flags/ne.png); } - select.withicons#country option[value="NF"] { background-image:url(../../icons/flags/nf.png); } - select.withicons#country option[value="NG"] { background-image:url(../../icons/flags/ng.png); } - select.withicons#country option[value="NI"] { background-image:url(../../icons/flags/ni.png); } - select.withicons#country option[value="NL"] { background-image:url(../../icons/flags/nl.png); } - select.withicons#country option[value="NO"] { background-image:url(../../icons/flags/no.png); } - select.withicons#country option[value="NP"] { background-image:url(../../icons/flags/np.png); } - select.withicons#country option[value="NR"] { background-image:url(../../icons/flags/nr.png); } - select.withicons#country option[value="NU"] { background-image:url(../../icons/flags/nu.png); } - select.withicons#country option[value="NZ"] { background-image:url(../../icons/flags/nz.png); } - select.withicons#country option[value="OM"] { background-image:url(../../icons/flags/om.png); } - select.withicons#country option[value="PA"] { background-image:url(../../icons/flags/pa.png); } - select.withicons#country option[value="PE"] { background-image:url(../../icons/flags/pe.png); } - select.withicons#country option[value="PF"] { background-image:url(../../icons/flags/pf.png); } - select.withicons#country option[value="PG"] { background-image:url(../../icons/flags/pg.png); } - select.withicons#country option[value="PH"] { background-image:url(../../icons/flags/ph.png); } - select.withicons#country option[value="PK"] { background-image:url(../../icons/flags/pk.png); } - select.withicons#country option[value="PL"] { background-image:url(../../icons/flags/pl.png); } - select.withicons#country option[value="PM"] { background-image:url(../../icons/flags/pm.png); } - select.withicons#country option[value="PN"] { background-image:url(../../icons/flags/pn.png); } - select.withicons#country option[value="PR"] { background-image:url(../../icons/flags/pr.png); } - select.withicons#country option[value="PS"] { background-image:url(../../icons/flags/ps.png); } - select.withicons#country option[value="PT"] { background-image:url(../../icons/flags/pt.png); } - select.withicons#country option[value="PW"] { background-image:url(../../icons/flags/pw.png); } - select.withicons#country option[value="PY"] { background-image:url(../../icons/flags/py.png); } - select.withicons#country option[value="QA"] { background-image:url(../../icons/flags/qa.png); } - select.withicons#country option[value="RE"] { background-image:url(../../icons/flags/re.png); } - select.withicons#country option[value="RO"] { background-image:url(../../icons/flags/ro.png); } - select.withicons#country option[value="RS"] { background-image:url(../../icons/flags/rs.png); } - select.withicons#country option[value="RU"] { background-image:url(../../icons/flags/ru.png); } - select.withicons#country option[value="RW"] { background-image:url(../../icons/flags/rw.png); } - select.withicons#country option[value="SA"] { background-image:url(../../icons/flags/sa.png); } - select.withicons#country option[value="SB"] { background-image:url(../../icons/flags/sb.png); } - select.withicons#country option[value="SC"] { background-image:url(../../icons/flags/sc.png); } - select.withicons#country option[value="SD"] { background-image:url(../../icons/flags/sd.png); } - select.withicons#country option[value="SE"] { background-image:url(../../icons/flags/se.png); } - select.withicons#country option[value="SG"] { background-image:url(../../icons/flags/sg.png); } - select.withicons#country option[value="SH"] { background-image:url(../../icons/flags/sh.png); } - select.withicons#country option[value="SI"] { background-image:url(../../icons/flags/si.png); } - select.withicons#country option[value="SJ"] { background-image:url(../../icons/flags/sj.png); } - select.withicons#country option[value="SK"] { background-image:url(../../icons/flags/sk.png); } - select.withicons#country option[value="SL"] { background-image:url(../../icons/flags/sl.png); } - select.withicons#country option[value="SM"] { background-image:url(../../icons/flags/sm.png); } - select.withicons#country option[value="SN"] { background-image:url(../../icons/flags/sn.png); } - select.withicons#country option[value="SO"] { background-image:url(../../icons/flags/so.png); } - select.withicons#country option[value="SR"] { background-image:url(../../icons/flags/sr.png); } - select.withicons#country option[value="ST"] { background-image:url(../../icons/flags/st.png); } - select.withicons#country option[value="SV"] { background-image:url(../../icons/flags/sv.png); } - select.withicons#country option[value="SY"] { background-image:url(../../icons/flags/sy.png); } - select.withicons#country option[value="SZ"] { background-image:url(../../icons/flags/sz.png); } - select.withicons#country option[value="TC"] { background-image:url(../../icons/flags/tc.png); } - select.withicons#country option[value="TD"] { background-image:url(../../icons/flags/td.png); } - select.withicons#country option[value="TF"] { background-image:url(../../icons/flags/tf.png); } - select.withicons#country option[value="TG"] { background-image:url(../../icons/flags/tg.png); } - select.withicons#country option[value="TH"] { background-image:url(../../icons/flags/th.png); } - select.withicons#country option[value="TJ"] { background-image:url(../../icons/flags/tj.png); } - select.withicons#country option[value="TK"] { background-image:url(../../icons/flags/tk.png); } - select.withicons#country option[value="TL"] { background-image:url(../../icons/flags/tl.png); } - select.withicons#country option[value="TM"] { background-image:url(../../icons/flags/tm.png); } - select.withicons#country option[value="TN"] { background-image:url(../../icons/flags/tn.png); } - select.withicons#country option[value="TO"] { background-image:url(../../icons/flags/to.png); } - select.withicons#country option[value="TR"] { background-image:url(../../icons/flags/tr.png); } - select.withicons#country option[value="TT"] { background-image:url(../../icons/flags/tt.png); } - select.withicons#country option[value="TV"] { background-image:url(../../icons/flags/tv.png); } - select.withicons#country option[value="TW"] { background-image:url(../../icons/flags/tw.png); } - select.withicons#country option[value="TZ"] { background-image:url(../../icons/flags/tz.png); } - select.withicons#country option[value="UA"] { background-image:url(../../icons/flags/ua.png); } - select.withicons#country option[value="UG"] { background-image:url(../../icons/flags/ug.png); } - select.withicons#country option[value="UM"] { background-image:url(../../icons/flags/um.png); } - select.withicons#country option[value="US"] { background-image:url(../../icons/flags/us.png); } - select.withicons#country option[value="UY"] { background-image:url(../../icons/flags/uy.png); } - select.withicons#country option[value="UZ"] { background-image:url(../../icons/flags/uz.png); } - select.withicons#country option[value="VA"] { background-image:url(../../icons/flags/va.png); } - select.withicons#country option[value="VC"] { background-image:url(../../icons/flags/vc.png); } - select.withicons#country option[value="VE"] { background-image:url(../../icons/flags/ve.png); } - select.withicons#country option[value="VG"] { background-image:url(../../icons/flags/vg.png); } - select.withicons#country option[value="VI"] { background-image:url(../../icons/flags/vi.png); } - select.withicons#country option[value="VN"] { background-image:url(../../icons/flags/vn.png); } - select.withicons#country option[value="VU"] { background-image:url(../../icons/flags/vu.png); } - select.withicons#country option[value="WF"] { background-image:url(../../icons/flags/wf.png); } - select.withicons#country option[value="WS"] { background-image:url(../../icons/flags/ws.png); } - select.withicons#country option[value="YE"] { background-image:url(../../icons/flags/ye.png); } - select.withicons#country option[value="YT"] { background-image:url(../../icons/flags/yt.png); } - select.withicons#country option[value="ZA"] { background-image:url(../../icons/flags/za.png); } - select.withicons#country option[value="ZM"] { background-image:url(../../icons/flags/zm.png); } - select.withicons#country option[value="ZW"] { background-image:url(../../icons/flags/zw.png); } - - select.withicons#language option[value="ad"] { background-image:url(../../icons/flags/ad.png); } - select.withicons#language option[value="ae"] { background-image:url(../../icons/flags/ae.png); } - select.withicons#language option[value="af"] { background-image:url(../../icons/flags/af.png); } - select.withicons#language option[value="ag"] { background-image:url(../../icons/flags/ag.png); } - select.withicons#language option[value="ai"] { background-image:url(../../icons/flags/ai.png); } - select.withicons#language option[value="al"] { background-image:url(../../icons/flags/al.png); } - select.withicons#language option[value="am"] { background-image:url(../../icons/flags/am.png); } - select.withicons#language option[value="an"] { background-image:url(../../icons/flags/an.png); } - select.withicons#language option[value="ao"] { background-image:url(../../icons/flags/ao.png); } - select.withicons#language option[value="aq"] { background-image:url(../../icons/flags/aq.png); } - select.withicons#language option[value="ar"] { background-image:url(../../icons/flags/ar.png); } - select.withicons#language option[value="as"] { background-image:url(../../icons/flags/as.png); } - select.withicons#language option[value="at"] { background-image:url(../../icons/flags/at.png); } - select.withicons#language option[value="au"] { background-image:url(../../icons/flags/au.png); } - select.withicons#language option[value="aw"] { background-image:url(../../icons/flags/aw.png); } - select.withicons#language option[value="ax"] { background-image:url(../../icons/flags/ax.png); } - select.withicons#language option[value="az"] { background-image:url(../../icons/flags/az.png); } - select.withicons#language option[value="ba"] { background-image:url(../../icons/flags/ba.png); } - select.withicons#language option[value="bb"] { background-image:url(../../icons/flags/bb.png); } - select.withicons#language option[value="bd"] { background-image:url(../../icons/flags/bd.png); } - select.withicons#language option[value="be"] { background-image:url(../../icons/flags/be.png); } - select.withicons#language option[value="bf"] { background-image:url(../../icons/flags/bf.png); } - select.withicons#language option[value="bg"] { background-image:url(../../icons/flags/bg.png); } - select.withicons#language option[value="bh"] { background-image:url(../../icons/flags/bh.png); } - select.withicons#language option[value="bi"] { background-image:url(../../icons/flags/bi.png); } - select.withicons#language option[value="bj"] { background-image:url(../../icons/flags/bj.png); } - select.withicons#language option[value="bm"] { background-image:url(../../icons/flags/bm.png); } - select.withicons#language option[value="bn"] { background-image:url(../../icons/flags/bn.png); } - select.withicons#language option[value="bo"] { background-image:url(../../icons/flags/bo.png); } - select.withicons#language option[value="br"] { background-image:url(../../icons/flags/br.png); } - select.withicons#language option[value="bs"] { background-image:url(../../icons/flags/bs.png); } - select.withicons#language option[value="bt"] { background-image:url(../../icons/flags/bt.png); } - select.withicons#language option[value="bv"] { background-image:url(../../icons/flags/bv.png); } - select.withicons#language option[value="bw"] { background-image:url(../../icons/flags/bw.png); } - select.withicons#language option[value="by"] { background-image:url(../../icons/flags/by.png); } - select.withicons#language option[value="bz"] { background-image:url(../../icons/flags/bz.png); } - select.withicons#language option[value="ca"] { background-image:url(../../icons/flags/ca.png); } - select.withicons#language option[value="cc"] { background-image:url(../../icons/flags/cc.png); } - select.withicons#language option[value="cd"] { background-image:url(../../icons/flags/cd.png); } - select.withicons#language option[value="cf"] { background-image:url(../../icons/flags/cf.png); } - select.withicons#language option[value="cg"] { background-image:url(../../icons/flags/cg.png); } - select.withicons#language option[value="ch"] { background-image:url(../../icons/flags/ch.png); } - select.withicons#language option[value="ci"] { background-image:url(../../icons/flags/ci.png); } - select.withicons#language option[value="ck"] { background-image:url(../../icons/flags/ck.png); } - select.withicons#language option[value="cl"] { background-image:url(../../icons/flags/cl.png); } - select.withicons#language option[value="cm"] { background-image:url(../../icons/flags/cm.png); } - select.withicons#language option[value="cn"] { background-image:url(../../icons/flags/cn.png); } - select.withicons#language option[value="co"] { background-image:url(../../icons/flags/co.png); } - select.withicons#language option[value="cr"] { background-image:url(../../icons/flags/cr.png); } - select.withicons#language option[value="cs"] { background-image:url(../../icons/flags/cs.png); } - select.withicons#language option[value="cu"] { background-image:url(../../icons/flags/cu.png); } - select.withicons#language option[value="cv"] { background-image:url(../../icons/flags/cv.png); } - select.withicons#language option[value="cx"] { background-image:url(../../icons/flags/cx.png); } - select.withicons#language option[value="cy"] { background-image:url(../../icons/flags/cy.png); } - select.withicons#language option[value="cz"] { background-image:url(../../icons/flags/cz.png); } - select.withicons#language option[value="de"] { background-image:url(../../icons/flags/de.png); } - select.withicons#language option[value="dj"] { background-image:url(../../icons/flags/dj.png); } - select.withicons#language option[value="dk"] { background-image:url(../../icons/flags/dk.png); } - select.withicons#language option[value="dm"] { background-image:url(../../icons/flags/dm.png); } - select.withicons#language option[value="do"] { background-image:url(../../icons/flags/do.png); } - select.withicons#language option[value="dz"] { background-image:url(../../icons/flags/dz.png); } - select.withicons#language option[value="ec"] { background-image:url(../../icons/flags/ec.png); } - select.withicons#language option[value="ee"] { background-image:url(../../icons/flags/ee.png); } - select.withicons#language option[value="eg"] { background-image:url(../../icons/flags/eg.png); } - select.withicons#language option[value="eh"] { background-image:url(../../icons/flags/eh.png); } - select.withicons#language option[value="en"] { background-image:url(../../icons/flags/gb.png); } - select.withicons#language option[value="er"] { background-image:url(../../icons/flags/er.png); } - select.withicons#language option[value="es"] { background-image:url(../../icons/flags/es.png); } - select.withicons#language option[value="et"] { background-image:url(../../icons/flags/et.png); } - select.withicons#language option[value="fi"] { background-image:url(../../icons/flags/fi.png); } - select.withicons#language option[value="fj"] { background-image:url(../../icons/flags/fj.png); } - select.withicons#language option[value="fk"] { background-image:url(../../icons/flags/fk.png); } - select.withicons#language option[value="fm"] { background-image:url(../../icons/flags/fm.png); } - select.withicons#language option[value="fo"] { background-image:url(../../icons/flags/fo.png); } - select.withicons#language option[value="fr"] { background-image:url(../../icons/flags/fr.png); } - select.withicons#language option[value="ga"] { background-image:url(../../icons/flags/ga.png); } - select.withicons#language option[value="gb"] { background-image:url(../../icons/flags/gb.png); } - select.withicons#language option[value="gd"] { background-image:url(../../icons/flags/gd.png); } - select.withicons#language option[value="ge"] { background-image:url(../../icons/flags/ge.png); } - select.withicons#language option[value="gf"] { background-image:url(../../icons/flags/gf.png); } - select.withicons#language option[value="gh"] { background-image:url(../../icons/flags/gh.png); } - select.withicons#language option[value="gi"] { background-image:url(../../icons/flags/gi.png); } - select.withicons#language option[value="gl"] { background-image:url(../../icons/flags/gl.png); } - select.withicons#language option[value="gm"] { background-image:url(../../icons/flags/gm.png); } - select.withicons#language option[value="gn"] { background-image:url(../../icons/flags/gn.png); } - select.withicons#language option[value="gp"] { background-image:url(../../icons/flags/gp.png); } - select.withicons#language option[value="gq"] { background-image:url(../../icons/flags/gq.png); } - select.withicons#language option[value="gr"] { background-image:url(../../icons/flags/gr.png); } - select.withicons#language option[value="gs"] { background-image:url(../../icons/flags/gs.png); } - select.withicons#language option[value="gt"] { background-image:url(../../icons/flags/gt.png); } - select.withicons#language option[value="gu"] { background-image:url(../../icons/flags/gu.png); } - select.withicons#language option[value="gw"] { background-image:url(../../icons/flags/gw.png); } - select.withicons#language option[value="gy"] { background-image:url(../../icons/flags/gy.png); } - select.withicons#language option[value="hk"] { background-image:url(../../icons/flags/hk.png); } - select.withicons#language option[value="hm"] { background-image:url(../../icons/flags/hm.png); } - select.withicons#language option[value="hn"] { background-image:url(../../icons/flags/hn.png); } - select.withicons#language option[value="hr"] { background-image:url(../../icons/flags/hr.png); } - select.withicons#language option[value="ht"] { background-image:url(../../icons/flags/ht.png); } - select.withicons#language option[value="hu"] { background-image:url(../../icons/flags/hu.png); } - select.withicons#language option[value="id"] { background-image:url(../../icons/flags/id.png); } - select.withicons#language option[value="ie"] { background-image:url(../../icons/flags/ie.png); } - select.withicons#language option[value="il"] { background-image:url(../../icons/flags/il.png); } - select.withicons#language option[value="in"] { background-image:url(../../icons/flags/in.png); } - select.withicons#language option[value="io"] { background-image:url(../../icons/flags/io.png); } - select.withicons#language option[value="iq"] { background-image:url(../../icons/flags/iq.png); } - select.withicons#language option[value="ir"] { background-image:url(../../icons/flags/ir.png); } - select.withicons#language option[value="is"] { background-image:url(../../icons/flags/is.png); } - select.withicons#language option[value="it"] { background-image:url(../../icons/flags/it.png); } - select.withicons#language option[value="jm"] { background-image:url(../../icons/flags/jm.png); } - select.withicons#language option[value="jo"] { background-image:url(../../icons/flags/jo.png); } - select.withicons#language option[value="jp"] { background-image:url(../../icons/flags/jp.png); } - select.withicons#language option[value="ke"] { background-image:url(../../icons/flags/ke.png); } - select.withicons#language option[value="kg"] { background-image:url(../../icons/flags/kg.png); } - select.withicons#language option[value="kh"] { background-image:url(../../icons/flags/kh.png); } - select.withicons#language option[value="ki"] { background-image:url(../../icons/flags/ki.png); } - select.withicons#language option[value="km"] { background-image:url(../../icons/flags/km.png); } - select.withicons#language option[value="kn"] { background-image:url(../../icons/flags/kn.png); } - select.withicons#language option[value="kp"] { background-image:url(../../icons/flags/kp.png); } - select.withicons#language option[value="kr"] { background-image:url(../../icons/flags/kr.png); } - select.withicons#language option[value="kw"] { background-image:url(../../icons/flags/kw.png); } - select.withicons#language option[value="ky"] { background-image:url(../../icons/flags/ky.png); } - select.withicons#language option[value="kz"] { background-image:url(../../icons/flags/kz.png); } - select.withicons#language option[value="la"] { background-image:url(../../icons/flags/la.png); } - select.withicons#language option[value="lb"] { background-image:url(../../icons/flags/lb.png); } - select.withicons#language option[value="lc"] { background-image:url(../../icons/flags/lc.png); } - select.withicons#language option[value="li"] { background-image:url(../../icons/flags/li.png); } - select.withicons#language option[value="lk"] { background-image:url(../../icons/flags/lk.png); } - select.withicons#language option[value="lr"] { background-image:url(../../icons/flags/lr.png); } - select.withicons#language option[value="ls"] { background-image:url(../../icons/flags/ls.png); } - select.withicons#language option[value="lt"] { background-image:url(../../icons/flags/lt.png); } - select.withicons#language option[value="lu"] { background-image:url(../../icons/flags/lu.png); } - select.withicons#language option[value="lv"] { background-image:url(../../icons/flags/lv.png); } - select.withicons#language option[value="ly"] { background-image:url(../../icons/flags/ly.png); } - select.withicons#language option[value="ma"] { background-image:url(../../icons/flags/ma.png); } - select.withicons#language option[value="mc"] { background-image:url(../../icons/flags/mc.png); } - select.withicons#language option[value="md"] { background-image:url(../../icons/flags/md.png); } - select.withicons#language option[value="me"] { background-image:url(../../icons/flags/me.png); } - select.withicons#language option[value="mg"] { background-image:url(../../icons/flags/mg.png); } - select.withicons#language option[value="mh"] { background-image:url(../../icons/flags/mh.png); } - select.withicons#language option[value="mk"] { background-image:url(../../icons/flags/mk.png); } - select.withicons#language option[value="ml"] { background-image:url(../../icons/flags/ml.png); } - select.withicons#language option[value="mm"] { background-image:url(../../icons/flags/mm.png); } - select.withicons#language option[value="mn"] { background-image:url(../../icons/flags/mn.png); } - select.withicons#language option[value="mo"] { background-image:url(../../icons/flags/mo.png); } - select.withicons#language option[value="mp"] { background-image:url(../../icons/flags/mp.png); } - select.withicons#language option[value="mq"] { background-image:url(../../icons/flags/mq.png); } - select.withicons#language option[value="mr"] { background-image:url(../../icons/flags/mr.png); } - select.withicons#language option[value="ms"] { background-image:url(../../icons/flags/ms.png); } - select.withicons#language option[value="mt"] { background-image:url(../../icons/flags/mt.png); } - select.withicons#language option[value="mu"] { background-image:url(../../icons/flags/mu.png); } - select.withicons#language option[value="mv"] { background-image:url(../../icons/flags/mv.png); } - select.withicons#language option[value="mw"] { background-image:url(../../icons/flags/mw.png); } - select.withicons#language option[value="mx"] { background-image:url(../../icons/flags/mx.png); } - select.withicons#language option[value="my"] { background-image:url(../../icons/flags/my.png); } - select.withicons#language option[value="mz"] { background-image:url(../../icons/flags/mz.png); } - select.withicons#language option[value="na"] { background-image:url(../../icons/flags/na.png); } - select.withicons#language option[value="nc"] { background-image:url(../../icons/flags/nc.png); } - select.withicons#language option[value="ne"] { background-image:url(../../icons/flags/ne.png); } - select.withicons#language option[value="nf"] { background-image:url(../../icons/flags/nf.png); } - select.withicons#language option[value="ng"] { background-image:url(../../icons/flags/ng.png); } - select.withicons#language option[value="ni"] { background-image:url(../../icons/flags/ni.png); } - select.withicons#language option[value="nl"] { background-image:url(../../icons/flags/nl.png); } - select.withicons#language option[value="no"] { background-image:url(../../icons/flags/no.png); } - select.withicons#language option[value="np"] { background-image:url(../../icons/flags/np.png); } - select.withicons#language option[value="nr"] { background-image:url(../../icons/flags/nr.png); } - select.withicons#language option[value="nu"] { background-image:url(../../icons/flags/nu.png); } - select.withicons#language option[value="nz"] { background-image:url(../../icons/flags/nz.png); } - select.withicons#language option[value="om"] { background-image:url(../../icons/flags/om.png); } - select.withicons#language option[value="pa"] { background-image:url(../../icons/flags/pa.png); } - select.withicons#language option[value="pe"] { background-image:url(../../icons/flags/pe.png); } - select.withicons#language option[value="pf"] { background-image:url(../../icons/flags/pf.png); } - select.withicons#language option[value="pg"] { background-image:url(../../icons/flags/pg.png); } - select.withicons#language option[value="ph"] { background-image:url(../../icons/flags/ph.png); } - select.withicons#language option[value="pk"] { background-image:url(../../icons/flags/pk.png); } - select.withicons#language option[value="pl"] { background-image:url(../../icons/flags/pl.png); } - select.withicons#language option[value="pm"] { background-image:url(../../icons/flags/pm.png); } - select.withicons#language option[value="pn"] { background-image:url(../../icons/flags/pn.png); } - select.withicons#language option[value="pr"] { background-image:url(../../icons/flags/pr.png); } - select.withicons#language option[value="ps"] { background-image:url(../../icons/flags/ps.png); } - select.withicons#language option[value="pt"] { background-image:url(../../icons/flags/pt.png); } - select.withicons#language option[value="pw"] { background-image:url(../../icons/flags/pw.png); } - select.withicons#language option[value="py"] { background-image:url(../../icons/flags/py.png); } - select.withicons#language option[value="qa"] { background-image:url(../../icons/flags/qa.png); } - select.withicons#language option[value="re"] { background-image:url(../../icons/flags/re.png); } - select.withicons#language option[value="ro"] { background-image:url(../../icons/flags/ro.png); } - select.withicons#language option[value="rs"] { background-image:url(../../icons/flags/rs.png); } - select.withicons#language option[value="ru"] { background-image:url(../../icons/flags/ru.png); } - select.withicons#language option[value="rw"] { background-image:url(../../icons/flags/rw.png); } - select.withicons#language option[value="sa"] { background-image:url(../../icons/flags/sa.png); } - select.withicons#language option[value="sb"] { background-image:url(../../icons/flags/sb.png); } - select.withicons#language option[value="sc"] { background-image:url(../../icons/flags/sc.png); } - select.withicons#language option[value="sd"] { background-image:url(../../icons/flags/sd.png); } - select.withicons#language option[value="se"] { background-image:url(../../icons/flags/se.png); } - select.withicons#language option[value="sg"] { background-image:url(../../icons/flags/sg.png); } - select.withicons#language option[value="sh"] { background-image:url(../../icons/flags/sh.png); } - select.withicons#language option[value="si"] { background-image:url(../../icons/flags/si.png); } - select.withicons#language option[value="sj"] { background-image:url(../../icons/flags/sj.png); } - select.withicons#language option[value="sk"] { background-image:url(../../icons/flags/sk.png); } - select.withicons#language option[value="sl"] { background-image:url(../../icons/flags/sl.png); } - select.withicons#language option[value="sm"] { background-image:url(../../icons/flags/sm.png); } - select.withicons#language option[value="sn"] { background-image:url(../../icons/flags/sn.png); } - select.withicons#language option[value="so"] { background-image:url(../../icons/flags/so.png); } - select.withicons#language option[value="sr"] { background-image:url(../../icons/flags/sr.png); } - select.withicons#language option[value="st"] { background-image:url(../../icons/flags/st.png); } - select.withicons#language option[value="sv"] { background-image:url(../../icons/flags/sv.png); } - select.withicons#language option[value="sy"] { background-image:url(../../icons/flags/sy.png); } - select.withicons#language option[value="sz"] { background-image:url(../../icons/flags/sz.png); } - select.withicons#language option[value="tc"] { background-image:url(../../icons/flags/tc.png); } - select.withicons#language option[value="td"] { background-image:url(../../icons/flags/td.png); } - select.withicons#language option[value="tf"] { background-image:url(../../icons/flags/tf.png); } - select.withicons#language option[value="tg"] { background-image:url(../../icons/flags/tg.png); } - select.withicons#language option[value="th"] { background-image:url(../../icons/flags/th.png); } - select.withicons#language option[value="tj"] { background-image:url(../../icons/flags/tj.png); } - select.withicons#language option[value="tk"] { background-image:url(../../icons/flags/tk.png); } - select.withicons#language option[value="tl"] { background-image:url(../../icons/flags/tl.png); } - select.withicons#language option[value="tm"] { background-image:url(../../icons/flags/tm.png); } - select.withicons#language option[value="tn"] { background-image:url(../../icons/flags/tn.png); } - select.withicons#language option[value="to"] { background-image:url(../../icons/flags/to.png); } - select.withicons#language option[value="tr"] { background-image:url(../../icons/flags/tr.png); } - select.withicons#language option[value="tt"] { background-image:url(../../icons/flags/tt.png); } - select.withicons#language option[value="tv"] { background-image:url(../../icons/flags/tv.png); } - select.withicons#language option[value="tw"] { background-image:url(../../icons/flags/tw.png); } - select.withicons#language option[value="tz"] { background-image:url(../../icons/flags/tz.png); } - select.withicons#language option[value="ua"] { background-image:url(../../icons/flags/ua.png); } - select.withicons#language option[value="ug"] { background-image:url(../../icons/flags/ug.png); } - select.withicons#language option[value="um"] { background-image:url(../../icons/flags/um.png); } - select.withicons#language option[value="us"] { background-image:url(../../icons/flags/us.png); } - select.withicons#language option[value="uy"] { background-image:url(../../icons/flags/uy.png); } - select.withicons#language option[value="uz"] { background-image:url(../../icons/flags/uz.png); } - select.withicons#language option[value="va"] { background-image:url(../../icons/flags/va.png); } - select.withicons#language option[value="vc"] { background-image:url(../../icons/flags/vc.png); } - select.withicons#language option[value="ve"] { background-image:url(../../icons/flags/ve.png); } - select.withicons#language option[value="vg"] { background-image:url(../../icons/flags/vg.png); } - select.withicons#language option[value="vi"] { background-image:url(../../icons/flags/vi.png); } - select.withicons#language option[value="vn"] { background-image:url(../../icons/flags/vn.png); } - select.withicons#language option[value="vu"] { background-image:url(../../icons/flags/vu.png); } - select.withicons#language option[value="wf"] { background-image:url(../../icons/flags/wf.png); } - select.withicons#language option[value="ws"] { background-image:url(../../icons/flags/ws.png); } - select.withicons#language option[value="ye"] { background-image:url(../../icons/flags/ye.png); } - select.withicons#language option[value="yt"] { background-image:url(../../icons/flags/yt.png); } - select.withicons#language option[value="za"] { background-image:url(../../icons/flags/za.png); } - select.withicons#language option[value="zm"] { background-image:url(../../icons/flags/zm.png); } - select.withicons#language option[value="zw"] { background-image:url(../../icons/flags/zw.png); } - - .panel_login { - max-width: 80%; - min-width: 680px; - } - -} - diff --git a/interface/ispconfig/interface/themes/default/css/screen/uni-form-generic.css b/interface/ispconfig/interface/themes/default/css/screen/uni-form-generic.css deleted file mode 100644 index f9e0f390c..000000000 --- a/interface/ispconfig/interface/themes/default/css/screen/uni-form-generic.css +++ /dev/null @@ -1,136 +0,0 @@ -/* Uni-Form by Dragan Babic [Superawesome Industries] - http: //sprawsm.com/uni-form/ */ -/* Some rights reserved - http: //creativecommons.org/licenses/by-sa/2.5/ */ -/* Do not edit this file directly, make your changes to uni-form.css in the same folder */ - -/* ------------------------------------------------------------------------------ */ - -.uniForm{ margin: 0; padding: 0; position: relative; z-index: 1; } /* reset stuff */ - - /* Some generals and more resets */ - .uniForm fieldset{ border: none; margin: 0; padding: 0; } - .uniForm fieldset legend{ margin: 0; padding: 0; } - - /* This is the main unit that contains our form elements */ - .uniForm .ctrlHolder, - .uniForm .buttonHolder{ margin: 0; padding: 0; clear: both; } - - /* Clear all floats */ - .uniForm:after, - .uniForm .buttonHolder:after, - .uniForm .ctrlHolder:after, - .uniForm .ctrlHolder .multiField:after, - .uniForm .inlineLabel:after{ content: "."; display: block; height: 0; line-height: 0; font-size: 0; clear: both; min-height: 0; visibility: hidden; } - - /* A class to be used on a label that contains a checkbox or a radio button */ - .uniForm .inlineLabel, - .uniForm .inlineLabels .inlineLabel, - .uniForm .blockLabels .inlineLabel{ width: auto; float: none; margin: 0; display: block; } - /* IE shows borders & padding on checkboxes and radio buttons if they are declared on an input element, remove them */ - /* Legacy/Inheritance fix */ - .uniForm .inlineLabel input, - .uniForm .inlineLabels .inlineLabel input, - .uniForm .blockLabels .inlineLabel input{ border: none; padding: 0; margin: 0; } - -/* ------------------------------------------------------------------------------ */ - - /* Styles for form controls where labels are above the input elements */ - /* Set the class of the parent (preferably to a fieldset) to .blockLabels */ - - .uniForm label, - .uniForm .label, - .uniForm .blockLabels label, - .uniForm .blockLabels .label{ display: block; float: none; padding: 0; line-height: 100%; width: auto; } - - /* Float the input elements */ - .uniForm .textInput, - .uniForm .blockLabels .textInput, - .uniForm .blockLabels .fileUpload, - .uniForm .selectInput, - .uniForm .blockLabels .selectInput, - .uniForm .blockLabels select, - .uniForm textarea, - .uniForm .blockLabels textarea{ float: left; } - - /* Postition the hints */ - .uniForm .formHint, - .uniForm .blockLabels .formHint{ float: right; margin: 0; clear: none; } - - /* Position the elements inside combo boxes (multiple selects/checkboxes/radio buttons per unit) */ - .uniForm .multiField, - .uniForm .blockLabels .multiField{ width: auto; float: left; } - .uniForm .multiField .inlineLabel, - .uniForm .blockLabels .multiField .inlineLabel{ display: block; margin: 0 0 .5em 0; } - .uniForm .multiField .blockLabel, - .uniForm .blockLabels .multiField .blockLabel{ float: left; width: auto; margin: 0; } - .uniForm .multiField .blockLabel .textInput, - .uniForm .multiField .blockLabel .selectInput, - .uniForm .multiField .blockLabel select, - .uniForm .blockLabels .multiField .blockLabel .textInput, - .uniForm .blockLabels .multiField .blockLabel .selectInput, - .uniForm .blockLabels .multiField .blockLabel select{ width: 100%; margin: 0; } - -/* ------------------------------------------------------------------------------ */ - - /* Styles for form controls where labels are in line with the input elements */ - /* Set the class of the parent (preferably to a fieldset) to .inlineLabels */ - .uniForm .inlineLabels label, - .uniForm .inlineLabels .label{ float: left; margin: 0; padding: 0; line-height: 100%; position: relative; } - - /* Float the input elements */ - .uniForm .inlineLabels .textInput, - .uniForm .inlineLabels .fileUpload, - .uniForm .inlineLabels .selectInput, - .uniForm .inlineLabels select, - .uniForm .inlineLabels textarea{ float: left; } - - /* Postition the hints */ - .uniForm .inlineLabels .formHint{ clear: both; float: none; } - .uniForm .inlineLabels .multiField{ float: left; } - .uniForm .inlineLabels .multiField .inlineLabel{} - .uniForm .inlineLabels .multiField .blockLabel{} - .uniForm .inlineLabels .multiField .blockLabel .textInput, - .uniForm .inlineLabels .multiField .blockLabel .selectInput, - .uniForm .inlineLabels .multiField .blockLabel select{ display: block; width: 100%; float: none; } - .uniForm .inlineLabels .multiField select{ float: left; } - -/* ------------------------------------------------------------------------------ */ - - /* Required fields asterisk styling for .blockLabels */ - .uniForm label em, - .uniForm .label em, - .uniForm .blockLabels label em, - .uniForm .blockLabels .label em{ position: absolute; left: -7px; } - - /* Required fields asterisk styling for .inlineLabels */ - .uniForm .inlineLabels label em, - .uniForm .inlineLabels .label em{ display: block; position: absolute; left: auto; right: 0; font-style: normal; font-weight: bold; } - .uniForm .inlineLabel em{ position: absolute; left: 7px; } - -/* ------------------------------------------------------------------------------ */ - - /* Messages */ - .uniForm #errorMsg, - .uniForm .error{ - } - .uniForm #errorMsg dt, - .uniForm #errorMsg h3{ - } - .uniForm #errorMsg dd{ - } - .uniForm #errorMsg ol{ - } - .uniForm #errorMsg ol li{ - } - .uniForm .errorField{ - } - - .uniForm #OKMsg{ - } - -/* ------------------------------------------------------------------------------ */ - - /* Columns */ - - .uniForm .col{ float: left; } - .uniForm .col.first{} - .uniForm .col.last{} \ No newline at end of file diff --git a/interface/ispconfig/interface/themes/default/css/screen/uni-form.css b/interface/ispconfig/interface/themes/default/css/screen/uni-form.css deleted file mode 100644 index 008885af5..000000000 --- a/interface/ispconfig/interface/themes/default/css/screen/uni-form.css +++ /dev/null @@ -1,130 +0,0 @@ -/* Keep in mind that wherever you see 'Required property' it means that the property must exist */ - -/* ------------------------------------------------------------------------------ */ - - /* Generals */ - .uniForm fieldset{} - .uniForm fieldset legend{ color: #333; font-weight: bold; font-size: 100%; margin: 0; padding: 1.5em 1.5em 1.5em 0; } - - /* This is the main unit that contains our form elements */ - .uniForm .ctrlHolder{ padding: 3px; border-bottom: 1px dotted #dfdfdf; } - - .uniForm .buttonHolder{ - text-align: right; - background: #CEDEEF url("../../images/buttonHolder_bg.gif") no-repeat right; - margin: 1em 0; - padding: 8px; - } - .uniForm .resetButton{ float: left; } - .uniForm .primaryAction{ font-weight: bold; } - - /* This class gets added to div.ctrlHolder to highlight the row */ - .uniForm .focused{ background: #fffcdf; } - - /* .inlineLabel is used for inputs within labels - checkboxes and radio buttons */ - .uniForm .inlineLabel input, - .uniForm .inlineLabels .inlineLabel input, - .uniForm .blockLabels .inlineLabel input{ float: left; margin: 0 .4em 0 0; } - .uniForm .inlineLabel span{ float: left; width: 90%; } - -/* ------------------------------------------------------------------------------ */ - - /* .blockLabels (default style, will be applied even if you don't class the parent element) */ - .uniForm .blockLabels .ctrlHolder{} - - .uniForm label, - .uniForm .blockLabels label, - .uniForm .blockLabels .label{ margin: 0 0 .5em 0; } - - .uniForm .textInput, - .uniForm .blockLabels .textInput, - .uniForm .blockLabels .fileUpload{ width: 43%; /* <- Required property */ } - - .uniForm .selectInput, - .uniForm select, - .uniForm .blockLabels .selectInput, - .uniForm .blockLabels select{ width: 43.5%; /* <- Required property */ } - .uniForm textarea, - .uniForm .blockLabels textarea{ width: 43%; /* <- Required property */ height: 12em; } - - .uniForm .formHint, - .uniForm .blockLabels .formHint{ width: 55%; /* <- Required property */ font-size: .9em; color: #777; position: relative; top: -.5em; } - - .uniForm .multiField, - .uniForm .blockLabels .multiField{ width: 43%; } - .uniForm .multiField .inlineLabel, - .uniForm .blockLabels .multiField .inlineLabel{ display: block; margin: 0 0 .5em 0; } - .uniForm .multiField .blockLabel, - .uniForm .blockLabels .multiField .blockLabel{ width: 30%; margin: 0 10px 0 0; } - .uniForm .multiField .blockLabel .textInput, - .uniForm .multiField .blockLabel .selectInput, - .uniForm .multiField .blockLabel select, - .uniForm .blockLabels .multiField .blockLabel .textInput, - .uniForm .blockLabels .multiField .blockLabel .selectInput, - .uniForm .blockLabels .multiField .blockLabel select{ width: 100%; margin: .3em 0 0 0; } - -/* ------------------------------------------------------------------------------ */ - - /* .inlineLabels */ - .uniForm .inlineLabels .ctrlHolder{} - - .uniForm .inlineLabels label, - .uniForm .inlineLabels .label{ width: 20%; /* <- Required property */ margin: .3em 2% 0 0; /* <- Required property */ } - - .uniForm .inlineLabels .textInput, - .uniForm .inlineLabels .fileUpload{ width: 35%; /* <- Required property */ } - - .uniForm .inlineLabels .selectInput, - .uniForm .inlineLabels select{ width: 35%; /* <- Required property */ } - - .uniForm .inlineLabels textarea{ width: 35%; /* <- Required property */ height: 12em; } - - .uniForm .inlineLabels .formHint{ margin-top: 0; margin-left: 22%; font-size: .9em; color: #777; position: static; } - - .uniForm .inlineLabels .multiField{ width: 60%; /* <- Required property */ margin: 0 0 .3em 0; } - .uniForm .inlineLabels .multiField .inlineLabel{ display: block; margin: 0 0 .5em 0; } - .uniForm .inlineLabels .multiField .blockLabel{ float: left; width: 26%; margin: 0 3% 0 0; } - .uniForm .inlineLabels .multiField .blockLabel .textInput, - .uniForm .inlineLabels .multiField .blockLabel .selectInput, - .uniForm .inlineLabels .multiField .blockLabel select{ width: 100%; margin: .3em 0 0 0; } - -/* Focus pseudoclasses */ -.uniForm .ctrlHolder .textInput:focus{ outline: none; /* Get rid of the 'glow' effect in WebKit, optional */ } -.uniForm .ctrlHolder textarea:focus{ outline: none; /* Get rid of the 'glow' effect in WebKit, optional */ } -.uniForm div.focused .formHint{ color: #333; } - -/* Columns (they are floated left by default) */ -.uniForm .col{ width: 37.9%; /* <- Required property */ margin: 0 2% 20px 0; } -/* Use .first and .last classes to control the layout/spacing of your columns */ -.uniForm .col.first{ width: 39%; /* <- Required property */ float: left; clear: none; } -.uniForm .col.last{ width: 39%; /* <- Required property */ float: right; clear: none; margin-right: 0; } - -/* Messages */ -.uniForm #errorMsg{ background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px; } -.uniForm .error{ background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; } - - .uniForm #errorMsg dt, .uniForm #errorMsg h3{ margin: 0 0 .5em 0; font-size: 100%; line-height: 100%; font-weight: bold; } - .uniForm #errorMsg dd{ margin: 0; padding: 0; } - .uniForm #errorMsg ol{ margin: 0; padding: 0; } - .uniForm #errorMsg ol li{ margin: 0; padding: 2px; list-style-position: inside; border-bottom: 1px dotted #df7d7d; position: relative; } - .uniForm .errorField{ color: #af4c4c; margin: 0 0 6px 0; padding: 4px; background: #ffbfbf; } - -.uniForm #OKMsg{ background: #C8FFBF; border: 1px solid #A2EF95; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px; } - .uniForm #OKMsg p{ margin: 0; } - -/* -IT IS STRONGLY ADVISED TO MAKE YOUR CHANGES AFTER THIS COMMENT BY REPEATING (COPYING) THE SELECTOR FROM ABOVE, -AND MODIFYING IT WITH YOUR OWN PROPERTIES/VALUES. THIS IS RECOMMENDED BECAUSE IF YOU HAPPEN TO RUN INTO TROUBLE, -YOU CAN VERY EASILY REVERT TO A GENERIC STYLE OF UNI-FORM. BEST OF LUCK... -*/ - -/* ------------------------------------------------------------------------------ */ - -/* This is the main unit that contains our form elements */ - -.uniForm .textInput, .uniForm .selectInput, .uniForm textarea { - background:#FFFFFF none repeat scroll 0 0; - border: 1px solid #DFDFDF; - padding: 1px; -} - diff --git a/interface/ispconfig/interface/themes/default/header_logo.png b/interface/ispconfig/interface/themes/default/header_logo.png deleted file mode 100644 index 38ba1ebeb45ebb798f808b1d2a06da2b8bad0d97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36266 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 diff --git a/interface/ispconfig/interface/themes/default/icons/flags/ai.png b/interface/ispconfig/interface/themes/default/icons/flags/ai.png deleted file mode 100644 index 74ed29d92616c86757d3c0ec04378301c8f591b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 643 zcmV-}0(||6P)ocPy#thD++(+#W%SS0Qvp^`1%0+_yGC)0QUL-|M&m^ z`T_tk0M7pe&iDc7fh@K74M*k&0{8f*88BG;;GY6ve?;&4{{Q>_{{8&^`u+g@|Ns5} z|C?Nv0*Gb#mu+n4z6ZW~#qjy_|6ji&ZeIEMk16oyzH)i@Pk$MNxLARR?a#kwpMS72 zF)}cG2M8dRUN*~81wCz%$A2$f`_IL|A|w6j^RHtc7{2`lYG-KkQ{(*knSqh%3kzr7 zs%s1kKL7#%F#yj00-^B^D;pD^^AqC)4C(?1m>@q26ceiU4*2{4`u_d~@vQ*ykp&A1 z3h$o${r~^~`vQo?Pm-bY@cm79zVQG5%l!B6)Riap%L`bGemnT<@2|iAfl64!%YWS~ z`p0YY_dig_cYpw5WYAmG*lPLk!;jy8|NZ#~MF0Q%{rCG1ko^Di`(Fhkd3F{?py0c9Vg{{gA~^#>F<|Nj5KapBR^@Bf~CXSi|t;lF=C z8-4)<5DUX^V9+rDCI3RuUy#}V{s46X!}R~}@4ug&fA|+@;n!b(1zCZ900KKMX({{sIILBZE*UQbc|SngJt$+`m9Kz!<;5 dBm+Qz0RWL%NC2%sdjkLf002ovPDHLkV1lARHI@JX diff --git a/interface/ispconfig/interface/themes/default/icons/flags/al.png b/interface/ispconfig/interface/themes/default/icons/flags/al.png deleted file mode 100644 index 92354cb6e257be2cade71cb825027ce8d9efc06d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 600 zcmV-e0;m0nP)PbXFRCwBA zyv)hK@{fUmi2(>${xJOc&A`II@PmN?BKC`c;SU)710$d~Kmf4-r6niy16BY3`}g0! ze=L9h&Uybegp-Ns@87v^zGQMU|NZla@z1Y+zkdVKmFbHB0*HkH4F0@)&iwE1;&GRLuzkX(OGXMMa``@o$|Ni_2x(y(Jn3#TnHT?el|IhC;U%pHK`}6Df z@2@|9J^lXU=Z~KvfBzi*^!4A*U;lv`e*Fge3Lt=(82$q_`~m9z|ND;$!(WEqze~6o ze}X|JFO$H(U+VvX#{c{avi3L7@c;n?3L&6l7=Hix`}emN<6i~#|7+iUWBL8-&##}m zKKx5zXJr5LA80nvkwCM6egFs{po9Y?& zL6B;olm7ns#=rm&Kp-3b{RIXY(1{??Ha=$NKfkS+|9@us$Mfg+93j@fzkY#y2y!;i z&kO(o1PWH5>zPHwn7|>;0Mz;WPl13iP!Y(WKYy4&4hBXMSPugOKmaiw2gk!dq!|4J mj$lZE0R~eis zC&uN{cDQ8`!@ZNLOqwtoG6nhzPx}SV-d6yzFfcIz75{(rngJyDkKrFw8iaoThHCr$ zo8k9wMhS^O3=9AP!~%5B|9}4(ASQtkLN$m1CV&5705X362095KfLKJhW;OjWdGY7l zzrX*$DuLu*pcFC#NdEr)SL!$SY=)lz0mSm_*B_u)|AM4JP)(}33zy1Lc&_o7? zKL7y)bkd){fBym<_v`mxpbeRs`+WRVot-5A{r$IX$CJFg13u{3eX_{0R++j zR}GCkSy{&4zk!krKoTg(2n-k?g31B}5JW!NMq0d0000q< zM7LZb@rX?|r)2RP-+aO3(7q?c3+$-Vv0E)PxM3SDV%@s`#GkZvw_x^WBa~uq3^l}t zWdf(j(=(>^SgETc#5#EZT(4ObRkfxbzP9G;yza0;Ygc8-_*?EP(ca#`l6-Z6D0{tL zQ4|~MCSi!9Q9YkW=V$ix#EqZ!rc?eWA0TwdVID+3aqrYUXUhCI)Ad5!(cP!BhhW$Ayb2&r8kK!bz*2`~UE W(Ndrek0Jg50000J%=P)w(EZ*psMAWc{xGB7YS zhjy&b0004wNklJMvs33UixfE$Xhc~}~ zw|4S{A8L}%Om`(hI~FKb8uNFj4Zw@vF-N5;t3jB zQ!+`#T|L4Wi=zY^&nI}2O8~I8ILwdp8e64XwvQ{gT6Q#OfM#r%8cne_R z0F+LDBSe=%_ZD3x*nEG<>U4msCBcB^*=&~awxPQhHHt?SJV*8?P*QML4|%(Di!p$J z!kEuU#^LH$gV!IfiDHZAbQOrlJ`q~x`k5q-R#Yp0h#E0U3%V{@?g1~sc`6u&@B9D& N002ovPDHLkV1kti?vDTf diff --git a/interface/ispconfig/interface/themes/default/icons/flags/ar.png b/interface/ispconfig/interface/themes/default/icons/flags/ar.png deleted file mode 100644 index e5ef8f1fcddb9fa0b89c353430e9640c122445cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 506 zcmVNL7TW{{R0! zJP>i}(MpzaSkj z=eqvqa`^|6{{QbQRQ11q3~Vg_kG}Z}5I`(hw}ncX8D4$|h64jUK>or*=^r$dfI%n0 z$3MKz;!F0w91GjkkV%_X`@4 wKR^hm`X5LwD9*v?4;TUC6Bz$&3;+QJ0QLcJ=WT{TU;qFB07*qoM6N<$f>3bX%K!iX diff --git a/interface/ispconfig/interface/themes/default/icons/flags/as.png b/interface/ispconfig/interface/themes/default/icons/flags/as.png deleted file mode 100644 index 32f30e4ce4eedd22d4f09c4f3a46c52dd064f113..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 647 zcmV;20(kw2P);Rmc0RI30 z|Nj5|{Q>>`0R8>{{QLs@`vM01^D6+%Ap+Y10Qw3Sr3ED)s=c}b05Jg0{{#dC0RR60 z)z$y}`~dv>0Q&p?0Q>ne0Khr|#}EMN1`-ttJvaFq6VTDg`OMJS*4F}vg#m0fQ1$QM z42u6QTCg3Kt8+Li1J#Y_zUd>4Lw{URe1tEjLbKmY(S0M7pd(g2qsJ0|z;{R`~d z`n<6E*3bb41p*Zr{{R344LkeqyaMyV01O!W0PZ0+TjlEQ0st`p&i?@b0Q{Gi0m{n% z`T6-B``1JQx+4kM0{rp_FfRy7P6Qq%_1|&<`|JPx`Uew8u)+%h2+ zdiAI7xt}_}e|$CmbI9$2>u h*D)|iF)#oG7yty8`q2#I8zBGy002ovPDHLkV1j5VEF}N{ diff --git a/interface/ispconfig/interface/themes/default/icons/flags/at.png b/interface/ispconfig/interface/themes/default/icons/flags/at.png deleted file mode 100644 index 0f15f34f2883c4b4360fc871d7105309f1533282..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 403 zcmV;E0c`$>P)@|4`Xj5kLT%`al?B=W5I`&prl$WjwHQRjfmQ&G0jUOA z@&|Dug_Rm`2Y251|$~)1M2@@6mI}!8O6olw6y^Q z5X--d7nzS8`+x5q12kBmVFD!~j6c5_fMKno0(1^Q0I>i=is|LjXX40RRttS6cG0UZ?;7002ovPDHLkV1fxUnjZiF diff --git a/interface/ispconfig/interface/themes/default/icons/flags/au.png b/interface/ispconfig/interface/themes/default/icons/flags/au.png deleted file mode 100644 index a01389a745d51e16b01a9dc0a707572564a17625..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 673 zcmV;S0$%-zP)>fJ3En$GhGS>sbE%%m3$AD)q?8M9y>88-}kR7#RKlk!P~Y_PLuF7~U~3`~nC7 zF#yj00ZUDdpLsm{7ajP|&HwoK0Usg|6%f4L_{`Mi{rvv-`ukf=Ed&Gs-sA7L!Q7*a zj{*QO0M7pb%?Sw^g@yy{>ihEY{`vU@3=8@G0rvO$i3mOL`~mv-`W+b$Mmr&io5dg< z5v!7q0*L95jt`TzK8Kd(Utv)OSp_aLv){6ccV+Z`{Q2+asKUU&aO3`Kpz6wW8wp`< z28M3{0mSqnB#A*-c*8%1=RD#sSOwMznKA3=e&iEzwo{cA=PgXK`2OQ}gqId83!|%* zA_Kz@fB*n70M7pdECCwp4H&@R`1|(w-}M5x*74i)0}%fAt;XafA{48))#>Z>?CD#}*e}Ret0tl$#*RMZ7}Jl7Z|M45`5*URzH9L z{rmSnPy;{!u>dsyO%meg+00000NkvXX Hu0mjfN{&}S diff --git a/interface/ispconfig/interface/themes/default/icons/flags/aw.png b/interface/ispconfig/interface/themes/default/icons/flags/aw.png deleted file mode 100644 index a3579c2d621069c8128d7cf16440d5e45a3ab3cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmV+n0`vWeP)^}0h@W9fA9JOn#opKkr#VO<{LPm{QLg}EdH3Vb1Zzpp zqiZ+XNBm%5{`ViKi{bCTe}Dh~2a+HyfB%6Q|9}7eKVjxEfB<6Q<6r}-{{7;G=hB{; zLB+p+|Ni^;|DXT={s75;AoBO$f4@PDf8sps4FCQC1Q64wUw^h*hy4HZXO3U)@85qw zD*pci8U|DWQu_BVi2MUWKoOv;00M{w=;|*lY_o%kegGx^{`&*A{SSok_usF-P)oof z|A86+0*K|;FQAM6fB*FtoEI&bZG5mq328#as{}<$F zWDQ{Ffz1MH001phxCBNdC_2H6U$AI~GQbEJqg*Ti0R{kQ(yH?TRrCY^ O0000^@RCwBA zRL|V|7QjV)*ul;Rlceqc6W0{`~_8AeMg& z|LUXE8U8c=`}dziv6P|mEu%JjM}pqh@65md|Ni~w->=_)fBgZXe?Nc!ot?WGAOHX{ z0M7pe`uG9>{{ZXo`u+d?{`u+u=j#9V2j%Sc^797z|N8p+{rLO+`TP9&`u!FW2mk>3 z0#G;xDFDDQ2vg|)-@5Zw?JVTrAxNs~5&|AZ;5uWfQ`vUsMGm`>aGWoI7=P|oW>%~E z|Kk8dq@aG@HzdsB>fj@shYzX-a%=q<(frSYmfLIv5{HbzQ${~M_P_y6C&m>3uU0*DFd0+8#0#Gk)^|NLQBRAyCBeB9H+Wn{=Mr@*PJ_ZKV< zB>w@GFfafF5Ks>TBP0ZV{bBt5_ve*sKkwd`OiO#eX6=u=cfX!E#rX3NBT(umNC7Yu z0Ro8S7X#4ce?Xr63$phg)Bk64X8r&5``_O`AFf^jc>p5y?+^38KVKLa00M}`wU!~x z=I_1Fe}Df4D*yZI@1I|PfBgnRptt`0`2{iqMpRNPo|?TW>MPOFW(r1_!xlT-yep5|G*@e%^SFxf#DC32@n7=0M7pe00011 zNe=7o{FIuhzQ(sjF~t7>`T+s_0sj00{`>*}`~Uy^|Ni?^Z7Tcx|FW0O0tlpm;s5{T z+df{s^E1rDZN;v4VP>0|8GkY`{`&t1s2YfV{r~st=KUYCl59Xr00M{!Xv@F<41fPH zoWA^R$>xvtF5yd$xc~X{7o-}f=ig7DY9RXc``_>1K-c{N2q2&ahQEIq{`~z1RCDs; zw*~7zIJ!sAKj8J}&!7K)enC|K{|nUc|Mwq|27mwp*#K1f8;Jh=2byv8+}GKw-@AGz z%-rMu^XK3HKtBLA{Qvdq*I%FsKn(x^1k&&qY(LP_Uw?q)|3jz0PF?=a(?4bU?qHzN z5I+E=z&88?2q2IKpz*){`~&I%+VJc5-=Dw#?LYB#!lHLRL7BZ8-NZ5x*TXaKmf6TZ20qEQj`^F;~x-W z05U+*fBxNj@_W(7kJ(ujGnWgh$g%(Z2hso#K#U9wI~hQ+`3Dk_7z`j1tL#*2FTcgW f@C+EF009O7>dRn2w6d?H00000NkvXXu0mjfueTzu diff --git a/interface/ispconfig/interface/themes/default/icons/flags/bb.png b/interface/ispconfig/interface/themes/default/icons/flags/bb.png deleted file mode 100644 index 0df19c71d20d7fdc06e1cba01028983439b2bdae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 585 zcmV-P0=E5$P) zj51&U|NhG$_=oZTA7 z0mJ{l|Ns2{|Nr-Y#^3*c{=WU_!>_-;fvROCxPdkR1P~M0Xa=C_KR`47{sXG+pY!Yf zqu=)*{%)W0>;M0szkdJy_507SKYxDz`3KYh5I`&-cY{^``2$3Z|NsB`^ZWO@y}$qd z{r%_nFQBC$4Is{6hz5WF0@(mI8^j0N`~Tl>LzQ1Ye}a&q>MtPo*RQ`|OMu4x1!@2Y zAfSdne}TsT{`c$8-(P?J0c~)w`~?J`zx?#Dg*yp^z&88=2q2IKpt(TRKniTbum8-y z1bBWi0e#F0wgIH{FVJ|Pxj-8L0tgsNfByUdJMs7b-@h3^8h-!E3i%CU{QCW$1*GB6 ze~`2PfHeF82q2&aU>N+96yg32bmdP5238q{|Gydk0=52OVEN6!@<&OA7Z~7wL16>b z@DCt>7#SFn85mf=5eY;LZ#OUe_l@D-2Zn#Y82<4v{9|E|jkRQ8_`$&N0jL_N03g5s XX0T^_9W~6o00000NkvXXu0mjfXpthO diff --git a/interface/ispconfig/interface/themes/default/icons/flags/bd.png b/interface/ispconfig/interface/themes/default/icons/flags/bd.png deleted file mode 100644 index 076a8bf87c0cedcce47099c6b74b59f2c9d1dbce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 504 zcmVCcfPV}OzZe+)fYC1)`hmpw%>WR9L@~Dk00x0r!@5ksR;+hV0>ZLfIcBS@orh;x zv}95za5W)x_7^}bV3YqpdH?h;NZnuSC%?V#{+0gl`~RQckJx{&l>NO~;@7XgzkdJz zEh{VwR0LSuiyWGR{aKQ z00-R5+27mwp+3@G@Um)kt zzdstU{yWl9SIB_0ft3II3)BD*KrA2|{``^Tm;4PDy`=a1tTre>fEI#8 u{{2z<2NVVaum*qtVq}m+iAaI~Aiw~?reC_kVQV=60000gsB+3J~Dn`pdxgmx19A{hgns>oXkhsL8>j&wfIu2Rsv+R_ zAB5T1GyoL?1Q1BWpFe+p|Nf1n;TJ-~Kd@?uhChFRHUI<=#0HS!U%!8$YJib28yLY( z0tg_G2B7i3e*FSj@aq@44gY_`jRywQ69xu=0D?FP=vyd&x*M*V6|CV8P{Uu4OBfgc z0tjNmA4y3`us8lPG6H?}8%zRafgb(Cp!5f*6oP{xAq} rF#LPR@IoIX4%E%Yz;K6w0U*EtuUcjA`-_J300000NkvXXu0mjf+>pV; diff --git a/interface/ispconfig/interface/themes/default/icons/flags/bf.png b/interface/ispconfig/interface/themes/default/icons/flags/bf.png deleted file mode 100644 index ab5ce8fe1237a18d6809a5570024eb108cb14a3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 497 zcmV@|4`Xj5kLT%`al?B=W5I`(ov;U*021-Lr1*!W5(gW7O z@cTDV13&<=05Ky_HBiN$KMcQt819e>gHP`g_|Np;&&;0(C^$RHS>olZ*Q41X9v27}ar6#W9}0h{^{OajIK0?h(y z_zOe~zZd`lhy{p$|NA4!EeST}?;nUxkP49VfMx;1;V%&U|N9rH;SU2q05LM8GXV8K n(H~UyA0);fa6B_H00bBSQ>$p&WfB*UmB!B(-`wPhZ^#?@C^U5EbbPyl_g=3Hc01Sh${{P9=HB%4| z34*<3-m=C?^;L%miR{xQv2*hU;8+Y&0Dxf-W~KjsusWFAC4@j0#9_j;X5z6SjRhH> zd}sd(7FPhVFdSi!*Zj@;_Sc`kfByUdk|3A-`STmZ_yb~qxIp9o{E-p)bLt=iKmf7) z+|Ix(`{&<1pm88mK&}8g1WG~}e||Ik`OB#Cw~m1UAb?na(Zlrn4}+v6P!1@{@CT$5 z&-#|8y{IY2iKmf5omHz(^qAp)ym^JhN+jk7Vet{H$(Z8=>|AV=V zva&!M00M{!p&AHub^kXuF^G#pRQ&(-8^nMkpk@XJfB<6o_wOIv5C1P;X6Wwu|KUB< zc%X*g2-OTg#J~U$KumBafq;(A|A`a+OH08N{X($;=pP0KfB<5Fs|GR7oM!0i{{QYB zSm|$=!=N@Wf}I2qKuka<{f7YtBjf)QCj1u{`~UM7nrdKh0c`*VF+c!8{Q&j%sZ;-Z zd;dRshENS5{{S`og~Sg)05QIL^-54s5b7kL(8GuS8yfz9{>%Ui`+q-vfW*P*^_43C z0mK4S`s2qBh&}(NP5W0_$$%QQ@R)`GfB*vkck5Jby^kNv00000NkvXXu0mjfy0pt~ diff --git a/interface/ispconfig/interface/themes/default/icons/flags/bi.png b/interface/ispconfig/interface/themes/default/icons/flags/bi.png deleted file mode 100644 index 5cc2e30cfc47452d5bef949628e955a522d59e50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 675 zcmV;U0$lxxP)$wbBBJ zMTk#;k4<3e#ePFE;{?TciOx=-NpIdg`t|#dcz^$YFqm+of7AU<7UGr+0t^5F#PsJM z(2)${Jd)SmT+KY5@!|h>po)L5-!r~>3uJux|0`&Jz~QGy6a*CiGyVtq1|Wc#zWw|0 z_y6C2|NnAvaR2)A>-NX%|3Ci{R?!hvH~jzU``ypCK7Rkq&&~h)FDNvCApj5nF#yj0 z0_X_*{{Q{_|NQXv@Av-qBMmR$teo!O*6-%u-J+8r3n~2s`s?uP{Qmp>{`~+900M{! zNC9;}eE(3IS9-C{62AZc<>Jx>%af}0@?r&05Jg0 z{{#T;0Os`NWh`ko4>SM%|Kw(60099Kad7|t0qcf^`tR-^sIP`Fhru7lkI#w#>Hq?W zkzqQ+@08y_|9v}t;{CEE%)%nTc=-MC@P)7S@!~g$((Ud|+28Q224FCZIGXF0FQ1zcbfB*dX_lJRr z;s3wCNa|2D02KoSAbE^!0Dxf-mZ69ApkCb5fP^9ydGO$cm6w`kGj(t#`M{tFlLo%j z*4%mm2&CaJSn02SzkrtfWBLcO;r%bLy5Gnoqrh)qC;VKmZT`F#yj00W%wG zw4zx17##T6*Z=hN0Tvey7!|wG?K;V)0{r{_`}_X<{Qmp<|NQ*_`}@YSvI2-@&cAgG z*R?p0?_>V(@&EVlEP?{x|1esA`||VNU68t8zyJRJ_3zg&hTp&0WMzR?0R#}s1|E|% zRV}tRkH6o2#3;(nsVMXI-pgBmh17ms`TzTu!pfBl%*_9R;OEbWDJei#0R#}sGpDd$ z96Spi@~bn7G5z{~^_!ZLy2#s;5B~o8&G`G*|6f0Ap0WS=_rFd2C(ubi4FCZEF#yj0 z1a!1=2e0}MwgDi3SU@2S4mePl{012eQ4J-3 z|Mm`933BS6zyJRJ1;ztF0D(08|NVzmQWB*4&)@%$um=Y`lmy1W-@hDx{{qQh3=9AP x#JH7#;TJ3-|G=X54_FW_j)5c_0|P*S0RT0dOSD~(4;cUe002ovPDHLkV1hfJDkcB` diff --git a/interface/ispconfig/interface/themes/default/icons/flags/bn.png b/interface/ispconfig/interface/themes/default/icons/flags/bn.png deleted file mode 100644 index 8fb09849e9b5712e9cdd8a2c25035da201535cf5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 639 zcmV-_0)YLAP)8n_8%|dG+hlCr-g% z|9<~wU<9iE{r}%DMphZ1Jpcj3%*DZBWo-@72DFWlk(-gj@!ngb-$#D&C_i9e{QvLY zw|{?r|NHlgiHY~?^IHG`05Jg0{{(k=dF}7->+9=cXlNG}79t%T{rC3_t(pA#`tSX# z4jKOh|NsB|;rr`({{a5__y7Wk5omBxQSrlv5B>nb??0VZ8qCZrpS+?}gatn>o%-+B zPl=+||6st##PspQ2Y>)#{Cu5(QJ~_^?faD-pMV;E|7MwLubjQ@B-gLso$mVYgECpU zxpfp2fEt*XnBKpC4-fz`0M7pb@zVeZ8g>5r-~k2r`Sbhd;{WmN02I(80QmHEv)Ik{ z>H7Nm`}_MdF)?FhWi>T50*LYBMFw`s0-y$le?J(QfB$Fr_2c8e-`_!j`0PG|ckZ*_ zzkY$-`sc5Tips@{7Xbo@1sGC5IYwrQfB%2{|MTZR!ygX*-%McG4cZmTY ZzyK0(F$K@T-Dv;-002ovPDHLkV1la=J3;^e diff --git a/interface/ispconfig/interface/themes/default/icons/flags/bo.png b/interface/ispconfig/interface/themes/default/icons/flags/bo.png deleted file mode 100644 index ce7ba522aa7e948d581478432643c230eed1a658..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmV^3LvnC{|x`%yaFl$ss8ha0V@6XKS=c-5cwO(_{}IL0ki=i zfLOjo{AE-9^-mn=h(G`Tfz|!{{r?|W+uz?{^yeR#!Nm9NlRN`J0I_^YV&Ikj@%Q)F z|Ns9m{0FN3^Z!3k!*8HnFvf4N5xas50L!z?-wXsAPk7$ ze<1l+iQ((fPYeJ7#KQ200VpKFA^{3Nph^G!{9^b86oDW}(Ek1R7ZiL9e}Ret0*H}e qBRB&8AR!3%7c6cef(%d+Aiw~vBYd|xMihYn0000j-HAXl7XJGjM{~r+i{r~sxzrQwG-&h#_Y&p;L z=ieV7_s^f-zyJOD{rC5(+EoAn1k&)I;s3Kw&;LT?{{2}P{Pq8T&j0^^J4?LvUd;UK z&+k8ffB*XXONL(tXahh1fi?X94^$0Q>Z$uRRO)Y4)uapmB!2(-ul(c1=C+V!kAF`) z$PCo;`_FHns{jIs3Fu;wy-Z(c2YwAz{&V4aXk?bejFO*Op&u`@i~PecqBpL@DIoojb8mb+WHGK%fG2>)a3=iVf_~v+`s?*1;!`?Kmai^I3i*ZIYtpN f{g(k500bBS@Ns{bTs^2gCr95H^s6Fo1}O2_S$Nfl}4;<}o-r{^R8Q_xtzX z|Nnu?|Ni^;2gm@D3=F@4EC#P1& zzuV{ie)#0qf2Lnh)j(~3VeG$ufPMl9Aczeh3x56n#l!R`HRQLfpFjVwfkN;%I39k( zVgne^e?jDThF>oL0*Hk{T6(^^8pGqq44*zhqZ1OZzkZ>_F(mFeH~<0+0A4S6=>Lb* QN&o-=07*qoM6N<$f&=*Yr2qf` diff --git a/interface/ispconfig/interface/themes/default/icons/flags/bt.png b/interface/ispconfig/interface/themes/default/icons/flags/bt.png deleted file mode 100644 index 1d512dfff42db1ea3e7c59fa7dd69319e789ee12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 631 zcmV--0*L*IP)?&DC3JV7l?ccjcgB=Qq4l4w|Q;eOZ4z|IjsEI`#PYSloM|AFHF zfy)2>XZQ=$@t;lU|F1tRzpnmg{PUOLH{-8A|F{4CvUU?d0I>k|0TuuM^_1cNUy$nm zzZn?*{^!*ACzSEy$NyhHzB0Wn`TXRU=!%=n%Ci4h82|!^32gR%glZtk^6USnb00o@ z{`LDW>%U)&BK_|-y-75RkKVi&O=|xC<=6keK+72b0*D2q;Xlai|Ns9mF#h@fM(h;aV>^!x1-zNu02XV-n@ zm3imZ@&EI0hChG)|NZlafdL?Zn1I0yH26P<=DUx29QQsc%}izF;QV-S-hYOl|1V4z zX|a-<=Kf#g*Z)7i{{y|szyJ_HEKEEM|C#>$KmJzoZa)M2-~Wm-e7Cl+vi)L|kY`}} z&A$F20RV*|BkB*O Rz6SsR002ovPDHLkV1m;fPLlut diff --git a/interface/ispconfig/interface/themes/default/icons/flags/bv.png b/interface/ispconfig/interface/themes/default/icons/flags/bv.png deleted file mode 100644 index 160b6b5b79db15e623fa55e5774e5d160b933180..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmV+b0{{JqP)O=a{vExMP2%`MCSoB^FIcLe_%lf;|~%E5I`(IQNh}3Ao>6Q|DFUXMn*>AqQd`w z|1kXd^B;tM|Njjl{{hM0zwd6?1Q0+hV1xeud-4=Wy?p-%sO`^#2S61Jzk!N?s)6X& zzhA%p|N6}=D+{y%Ab`Lc{sL9~1=0UN4*CD*7s%9KAf+JHKs~=eB-8KTKvw|-5R1&; zzd&a|ob(5%^Z$Q=wHy9p13+aOpFRNu5F>N&`Tk_-7w>=n{RejQzkfh&Kn{rf10?_b z{tFTZibx5v&dxav5I~H7|Ney-|DWN1$%1FyagzUW0464;_wU~W1Q5$TW@eGxtUvee z3vAf*8|igK9~@*rr66bh|NrkNM8z+V zAV?>O@ek;bKfu6d00k6 zPW&$KB`I@TtA?2x@Q~7pdcWi#1>DDZ2>MuG0I@IumHuaV^&7|soAMvT0IK){RtF@1 zgH;3B;_Qq-34j1%{P^)BFE1~|NkA(gBv!!4$aw$$eSiRB1ga=2D|__l(H|iA4T2Ex z>lc`SQ9x2&UjE?0g8%`<0`lvhzd$}*14J4{IhY2@0~G@V5J82%q9;EBlXu0U&@_82I`BfBC|Yn~P8llm?myQ3_K18=`^X_ivyEfB<6p_xd%%#*GZ! z-C&_V5IGPDK|g;X*gypg3;+Sd!XPTj0Q7fK5>&$Y{sHB| zjK9DB00sa3QR4q|tc?L6fSCSm+3>HW`NxbYpP7GsX8sK%KS9yYPfWi)GJ)AFzdp14 z{>t>1fsFwmfLQ*Ci!yxq#8guv=_mQ;-(Rp{AoSPbXFRCwBA z{KboB21 z`ppP*BG3|`!vO*asNvt=e_;3gWsp&PA@E<2jYs6ilRy6-zmSku5?~OOP=5aV@4sI_ zSN#QP00zQ!JD>SpAKYgR_QStF|9~F;2M|Ck zz%U1e+FyoWe;B_0VVclq;}vp_kNy3hKMWrj7*{kqJbMcaQ;_Pve;I)x1Q0+h46j}> zeiN4E1lkA+>|e|*mzJsW^M3)l^W_^hf&c&c`Mv->`48yHFF-%s0|+3-*GLfwiRNz% m3}3(u4lrUsie?}H2rvLBbQv(L;??y40000e`b1WGV} ze#gbd^&bp=ef-GykAYc$@BhDltSqdeSy?RXJpcawy+5fJAb?mHcsPJ&{d@EF@4HtJ z)qno||1xd*zaM|Ot4f#|8A1AQ-~Pubz$7IBv;-i4SQvovfB*ge{fFVtAE4aNE7yPi z`^Eg=5yP(^Ur(Q5`TLjM%#`8#_rHuB|9}1hItd_vSpNO`#qjs<|KGp=|NIHm@MXqK z79K7}ZvOwQ9Df%s{`~lX*xI%KzW-!k{Lc96Cr|@G0I@Lq`0?-epMSr9|NHeD?&umBG}6iH(DSogJte zDERNk_kV0Zng09%Itd_vSb&=T{rt@+B*66dJ0my{fpNkvBm!jpV_;xnVgd@XDk?Dx zh=IJyzyJ_HjJJUrz)|>#fr0nRl^;KTz#|yK`2G9$BS%LzureS32rvK^u`=B;c)+&+ O0000d94tALrX!Wj0S6V-v9sr07*qoM6N<$f?*uARsaA1 diff --git a/interface/ispconfig/interface/themes/default/icons/flags/cc.png b/interface/ispconfig/interface/themes/default/icons/flags/cc.png deleted file mode 100644 index aed3d3b4e4467c33717ab3e2f61596e06113f9bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 625 zcmV-%0*?KOP)Vbu`-)NXk-Y`p?2$B#e1 z{(buQ`}e;;zyJNd_UF(2w_nb@VUiUP2igD-Kuin_BL6vl`zgIQV*mR8|8G|2U!T7I zn`-)Ow$bxne}9LGfB5z5*XcJ*K(;aeSD>o^0st`p&i@1e@&c~g4N@7~{}B9V!5sbp z`j|K8<@Nq-&kt=P>@pAZ`T7Q#;RiPl^j;kSgdzX}05Jg0{{#R8=f>y-z~LG0`u_d< z{QLg=2?6_k)DH^)`=sFo8YTUi-v;{r`o8J{6Wj>^)c^vB2^cJY|Nnmc_5b@He}DY@ z_51JdufKoSslWR1>-W9)3`r;XfsXn0`_Fc($H!lT!V@5Xn1Igu{qOIuf50&L{qg7D z?|*(LofMGa_%_k-*{}b_0g?9mMSwvE)Bq4bEIr*1})*zF_+U)&LMdEMOb{Nb-vOh6FrNC(tkd{&4;N%g_D$&)>g> z0^hO}m?z%iIsOJ1mka;_#K>R{i_RZNQ42x8VJSe8f#Ern2@qfa%&RHCyvg>Q00000 LNkvXXu0mjf=TkSf diff --git a/interface/ispconfig/interface/themes/default/icons/flags/cd.png b/interface/ispconfig/interface/themes/default/icons/flags/cd.png deleted file mode 100644 index 5e489424884d2ec9e429f70d69af00edf242a077..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 zcmV+r0`L8aP)JkPqeYl28iLgD=0{><0$P44T5yOrT$dE?(KkwMFdoG^-J zGv9P)Kk|i5`lcNgUUAbboca5{hI)v&h!9!~`Yg)Ld}$VwYqqXn@gVLi>3LSVGm1W? z3qnDJAk6chH(u7f~FohUBCxfQDx8?5BQsCcprAnfVhO SHC~zk0000@|NZ~|iEi8i zh~?j3h8^dV0y&$fY|i?}`2XK;hJSzm|G$6#|L@;V)&KqZ3sU;$?>`_ZF38C6g#jRd z7@s_ODJ3Nev=9gw8UKSQhX4P)z5oCE{eQ>y|1j|H-+x9%#`EXT0R#{W1H*5i5@u$g zs{agN2m-%;fixfipeaCQpFe*F2q2cU!)f`}`5%6M06O*WzrTN({{8*;CkCkD_wPBk z=llWket~@P=ieVecEOTuB>(}$vTge|RYlbYUmpDW_v_E!KfnL|{{8n?G|>28zowm@ z_UrGj-+zAtrGTUoztWctUjPD#h2amw@BhDn5OHz(52cFPg zot=T34qlT?57Mzkg5?0ssOG0Ftp>paW8OyZ`_I07*qoM6N<$f+2k} AjsO4v diff --git a/interface/ispconfig/interface/themes/default/icons/flags/cg.png b/interface/ispconfig/interface/themes/default/icons/flags/cg.png deleted file mode 100644 index a859792ef32a02b41503b5ab5f216191af397e02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 521 zcmV+k0`~ohP)i@P`2b{=v9^Ktp0uZ001fLMSM)r!?%mH+B91 z=ii?+(ckX8zrd=&8g~5t-|*}I50LQ;KzRlRfB=Hn08;wv->)Q*Kc0LLgTdsU-~VfV z{r~#=|1XdRMzE6r0tlo5X#B6gzhXrG`18Y*0!g6iieLY~Kvgqz}`W zLWO>Z3Lv@r7+CdZpiy8Ae}EeP0z(_<2Y>)#Vfe-1#`njMUlORAfdMG=o8iiD#%aG9 z#Q!h|feZ$rzkeYJ=p=vuV)VVru?7U|?FE@Zm|i>fBlzF zc~M_qKf%h=bAcoS;}NE7f8|yFe%B9?;;8%o@BeG_!|(4qhyo=(h-XBmKHXpc{~y!A z`THH3fsDVeudko)ARzm9UL&JI!+~uEM*rBES1=kd6zV%LH0J*N$gIQAc0y}k9qTFv z4h1oVG?rB#zNY^8{QUp5wE>>R#S4NZQd1i@F)*?OF@6y}@zmk^!Gr7L9asuAf!ae1 z{{CbBBH^Az=(+fAb?mHzA!MjRs*H~|NF=I z{~td;@BjZG-hUVsqZ#w(|L@=b|NQ>{d(*K^00G3pzycQk`jp|{UxvSb;p*Vv_V?Sr z{{Q;@@3$6WKrBG#F*5vR z`2XiW&+Xo6{KsbP_-SF+DJF`pL$*;0gaz z7NKVhyo`U;4*0+SK#>rfFFfafF5DUYXKh;r+@n*scPQUy6`!63S zGXn!71H*qtMn-04W+o=4|487=moEST#KiEAA;m(3;Xgy1iO{3BKc9a12~-UM7^Z`) z1qdLZI~bN-c=z}J|D88K{QmR*&tHcBxB*ZDKmf5Ya0q<-!`is-{h$8~f7m(x{QZSX zH3Jv`1P}|uy*o^wIGI2G`1kie)4zYe_&EQ6|NftW0ohon1}3I|Z{7d|5aVBMp0ssVo0Ek~;W>Z#0SJsA+2j`G% zv|UVeYYs-#Sn6_J90h1VosR?LBU7{U1rQ6+R0f9sPrg3=`~UA>#=n0a|7Q67_y6zT zP{j57|G!`V{{zu)Mn+knB>(|98e;E17s>tTLaMG-~Y>h{r`!g0jL-tfS4HmF#P%V_xIo5zyJLP zk|2W%e*G8w^1X|KC618W{eAoCFX+EI diff --git a/interface/ispconfig/interface/themes/default/icons/flags/cn.png b/interface/ispconfig/interface/themes/default/icons/flags/cn.png deleted file mode 100644 index 89144146219e6fbec7eaa89e1bf4b073d299569e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)$bmtfBa_T{rmsVufH!rO2O)W0!b+P{TrwO zAb?mv&i(NBbu;G`sX*)cv$d*%>MiL-(QdhpkjakVmyu%k;sfcNRj;yhJaxT5MTg0u5&QfH8#Bf O0000XbC_7v4G9~kE;3? z$h?1GrT>4y7{3|*{r>Zd0U&@_82$jY{AFPH^Plk#hy=QU5o|Ds0oDLyFn~2M0QE2c z1P~*G;PKK9g@-SH{rUU<_aC4k|G@~v`1Kn|{`&=C|M{yZ!G37cNq_)iVfexD=MNA8 zh5p0Hf4_c1v;p<}|Ak}_F!%rh2&CcXZ-(!`82&@8$XA^gF6?xq}zd#y5N`WeVBbyB+frxZH0- diff --git a/interface/ispconfig/interface/themes/default/icons/flags/cs.png b/interface/ispconfig/interface/themes/default/icons/flags/cs.png deleted file mode 100644 index 8254790ca72f98d9e79d94bdfcb8839b1fd434ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmV;o0Z9IdP)|s3jQ%L{DG0k=ogG+0SLgMnA-pV!aytqt1(q3VU5g2cTadE%W~lnu`}m; z-504zOD10s2K8+~RqF^K7O;8$o;>*sR0>r0`!|sM`x~eNg#P~i_4n8BzrTI~MgGdl z@-i@d0|+1%Q&SyHO(9WHu7Cgk{{@--A8b6x2B1zb1BygNIks=N00WJ{7y^0)%zz1kWJN^&bany+5X-;o*O`wU`+x5q12BMq=+`e0f-vAB ze||Ik`OBc90(3J#0I>iAmFf2%21!Yv97q%>_xm>^i2a8FLV}HlAfRG^0AlbRVNjfdgKH->)<41fMG{Q1Z53yA)}NHF>VM86o=*Z=~EMTLRklg;&|8vY-+ zh5rBh|L@=bKM?ZoKOp1JpMQV<{rmmr|L=eQfFkpA_5cJB<7Wm2?&_*f&z|!oCH%Iq zVPN&@1^xa7gnxhi`TP6#zh6KNfByZH;9_972M|CY z4S#m*VEXjw_teQhfB)LctFzlGTKpda#8eRa1F`|=V+j!s1_l{`0AhU0z`&K2_5c3; z?|=UACdB;@3Hy%?Ffai9!1(6P8-M@;JL%7#4}bn}Wu*W1^8Nqk|9@zxfJk8Yg2Rge z5=!5G`~e6c79IwMkAMHSMfCl8%kXF6O^EHl82Alg`~}6s-@pI={`>#;Kf}J}IRF8~ zc$$I1RCFdZQi0L={}0epF!T#d{sWT?V3G+SzyRi{Q|!NXWpDrh002ovPDHLkV1m+z B7Bv6> diff --git a/interface/ispconfig/interface/themes/default/icons/flags/cv.png b/interface/ispconfig/interface/themes/default/icons/flags/cv.png deleted file mode 100644 index a63f7eaf63c028615b2ded5878b5e14a7dbe962f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 529 zcmV+s0`C2ZP)*82p^=00=`tlmIeOf&y&dk@6oT z&CV8YCOfMzZ7b-;WHc4ffO0*K`UGc#9pHKW{n=1`s=Y4`sB0UGuD|F2(+4xFrs{6A+r|Fh*S$P>SRGs(%l z+O-QHfEa)O{tdAK=ovi517(5A-n@AO5I`)f0sl(Vm><0RZzq2;(QtLuuFT6X6;y@p zb-8u)9gSFj-3}5^z@SqUX4qfA01!aT3<}j|#!Osn3@^V(zxysO&hx#~ZN`f)vS*$d zpLlA?$HBnM&cM&k$j1o^^oKjY0t65vgZ)>ehy*ei5K#*ZyWju7F%Ll?01#jRixNU5 T4U6zw00000NkvXXu0mjf>cZT~ diff --git a/interface/ispconfig/interface/themes/default/icons/flags/cx.png b/interface/ispconfig/interface/themes/default/icons/flags/cx.png deleted file mode 100644 index 48e31adbf4cc0074f40e95f87c1f103b91fe270e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 608 zcmV-m0-ybfP)Uz~~Q*L}q{yKmai^Fs!d`Rbj9@@=xl~KZbvQ|NZ^*|L@=bfBpc` zKOp-38^rz{DEepVv)`L`Yyt=%76t}3hHqR?<~aN{I`!9n&u`}MKs~?z|Ni|Cihlk3 z1w?Q7fI4M?HUI<=3&<7!82Y{{Q;@?^mDN?|=V) z{r~^ll=rtu5CcE}F#**BRkyY(adR>Mc_H{~T5^XRV~oVFSgBv#s=t2z{grn0SJIVV z|Ni~D^5u8)5(a<(0%_pmV<{@S{pr)+Nt0E6|KyV7{&xHKulY}Z0S*2Ic2cIyuhSoY z&3*a@=p=vu0%~ALNs$10lZEA9e*W!WzkWV{%9A7hYlh}ewm<)V{rd@2{rBIm&Idr} z{RV0P2mmnv&i?}d08{q%2kh+oUtbt0DGA2L@2{yn^Xv%Q%_4hjZ2Q{KfBuh*0fWjOcoPYi>{Qk`ejtlm`TPy!Q@c0|K1n4Ay00P>u ul!4(JQe+}W>@P40kp+Sq42=5$0t^6?P(4CrvcmZQ0000s1`2Y9I{~ve$KWO@Yukru?KTxgz{s9CK3*7Y} zZC_6Qf4TJkuQ&gHzW)Di+kXz$|9k=eg(Cm|XMz~|=g%L20Ahjo4`KiVr|y5|U;qEV z`p@?NKb!P_9;^R?@o<+hfSm*oKp+h;f&YIQ*bg)L>I;A4WVP82*P-nR{;Wu@%{Vvyu7@~4txIf`R>OD+-01E zIfRil07L2S-Mat*#Q65@TRuKMWMi;}EJy%|ff@h;2;_%%@7_UT@edf{0+7H22rvMY Ws9gjvbyTka0000? z0048MLcfb{@Lpld*gfdL?Z zSQvhRtN^J#x6%GQNHxSfxHgc;AD{-1tAIKH0tl!9q}uD*5!1Kl8Kk6va!f$;fJ%WL z`2Cv^NdEc54D$xi27mx!VfgXqT8ME7!~2)OPy-`SXu#NiAkhzFFflLy1Q-A_8F>@M S6G{sJ0000h<6BFn%a z@b8~2SoNP@zd$;E{sbbRuHQd?{QCI=sNwhbA3*&Qe}GP900=;09NYi^fU@pUdVa9*13;+Sd!tjgXKhXQEMobL97(p6<{RLvMGBN!7 j!N9=G@a-1^K!5=NcXWu!7_DDe00000NkvXXu0mjfeQx^H diff --git a/interface/ispconfig/interface/themes/default/icons/flags/dj.png b/interface/ispconfig/interface/themes/default/icons/flags/dj.png deleted file mode 100644 index 582af364f8a9cb680628beae33cc9a2dbe0559f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 572 zcmV-C0>k}@P);we;9uK`S<6~zaM{qBL9B<0yBR7V`E_e2q4D) z|Nnpa!Ep64!{fLA8NdLj;oraifB*mg`;Xx-kn#6Fhzn-q&in!pKrBENJRA&WD*ySo z7*5@0`26EP69WTC_22)0z>5C-g{l_hVFa245I`UeKudt6h7^Mc@BgDW81BCO4-x~L z`sXhc{R3+I%fRsKA3y*x{R6rHsA1>M|6jifb2E4w{z{xB{`~z5CPC;Y7bk|9<`c2PXgjR$^CT@Hzz$KrBEfF#?VC z^aSdB^z+g5SJMxCJOGqNsQwQkfr0#&=?~CJ009Kjz|71H^!MIRd#Ajb^76;aUyQ$y z%m(TN#spBq-#`C>zGeUjAdrR+|30kwu=eoBL!3-pGMq9%bs!`E|ACMovw

    4;Zk2 z8GbPU1Q5%#7t@Nb6*GKbU;u{yA29j{CVzn$|6qa)V3LCYAiw~8(_SNKujRx50000< KMNUMnLSTY(1rd4x diff --git a/interface/ispconfig/interface/themes/default/icons/flags/dk.png b/interface/ispconfig/interface/themes/default/icons/flags/dk.png deleted file mode 100644 index e2993d3c59ae78855f777c158a6aae6c1fb5c843..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 495 zcmVh!ZNvLM`<}kPiIA3?K?Zl!VJuS0ABN12uI2v;s z000mK68GQM4oDR3?|C6;zBc4LR82Q1eETXSa+3nD0Ad8%4|Ml`Fn}2U{~ypshW{9V zk%{T!hYtV&#KHiVV*o?2zW>+&Bgm+K00G4EikX==E9>w5`yf~S`o*<00G4K6dZ++hy)_Bw{QPEdi2K7 l5H1Kw2asrHVqgFWFaQRwS@oh;XP^K8002ovPDHLkV1foV*8Tth diff --git a/interface/ispconfig/interface/themes/default/icons/flags/dm.png b/interface/ispconfig/interface/themes/default/icons/flags/dm.png deleted file mode 100644 index 5fbffcba3cb0f20016c9717614127b89db4c9664..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 620 zcmV-y0+aoTP)yt}{r~U(pZ|aU z{rk@#!dhJXj+vP`D&$&!2yPR?Jud5I`&tqo00z_V3?cpb$_)%#~li z5Bw?p&G@T5&5h~tB<;UIJ-`3_mgbQL+5iwhOdtm^{QZlh+Tg>NcGo{qR#UR9ewx4g zlzHy^uRp(j{rmOj?;oHBfB*n70M7pb{ow!s5r+W$=Kufw0RQ~_o$a1N^GPoTT-yiw z&XGVBSbe$r0&xrf|M~#~9P-zx0st`p&i?@b004Y@cH`sX`~3X;`}>j`1PlZ1WGkKd zF1~FN+w&9T}cJeJULy4V8r?0tNHM6WN&<2126ppbC05A-~q$vMCOd&N)3^rn&3WaiZo>@dB zxpL5=L>h@#UjVT%{Q39iA58Ths0J3s|NohoLF&Lt!8(8c18V>XAjZFc|1vT%{s#lF z^Kb%2CZ>-cJ^%y|<6Q;@;r#qR4;}z*|Nr|B$h_ab1b6QI%fu2>dIV_O?>~RRu82tM4=f|&Ke}8;oX5+eBw}y?G6)5=s|Nnnr@aNATAPEpaEN{Mj=m^OD z&%p5S|G&Tg{{H#<7bL;LEGj9<&cFmz{_j5mJbLs9Ab?m{m{|TZ{D1lB9Z2clKfnI{ z`ThHs^2c9)q;CF`l>Eoa3N#g>nv07INCE^93jWH3lKe}28-VENu!{qxMpm&svFOiawo%#4hT5U&FS z5Yzu(KY%Xz`RDh~-yl6N|NT~b@qz9A2lm1$Hf43G`D-AmnZXVNY5)izCWas1fbRMA z8?52ykLBVV-&q+tkKFpbbOC=r`2SzOfQo=l0_p*hfB*gk2q2IKpzD7Eo%H+Hk6%A8 za57|Q3rv;f;d1r)FDv_xg9F*eKs^8f#KQ37)2~0jMR){${rwHH2k3S7pO3`Z{#jf7 z{|`16Y&=9YkOT-IMh0&|hF9+yelRe6V}O#tcxPkSx96}BCoe=1&?OKCkOT-Y05IoG U$(*n^qyPW_07*qoM6N<$f?|9Y@c;k- diff --git a/interface/ispconfig/interface/themes/default/icons/flags/ec.png b/interface/ispconfig/interface/themes/default/icons/flags/ec.png deleted file mode 100644 index 0caa0b1e785295d003869330fc4e073dce07e7f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmV1sCzZm}g`N!}J$oTi?|G$4gL7*^D3`7C}Kmf5Y{CmeN)&f@km*M|^ zrvE_l-~a!AA&BAspa1{=fXIJ9!9O2vbOQts3j+fX{b%^|8m0my0Yd-4N`WN9@BjaR z=no^SIM8~400P%s(0a|A0FHhM?*o#se9Q zEZ;b|7ytr@MWm#zEz$bb`!9d~{{Q>$@1MW_!07MqKOpw+zkh)g(B$8L|49h*Ov!x= z5I`*NZ%IAX?Fbu$UUAQCA3`wxix_2=I& zAouq_SzðCcuS!~%52Kai0?gF&VORsRAR2~rJG2PFT1^!)w@)C_d-AAkU2Vc75Z z*R<@y`9z1vevIh)-p7{p`5C+7f|6l;f1_&?! X)GmJPc-xs)00000NkvXXu0mjfGFPrC diff --git a/interface/ispconfig/interface/themes/default/icons/flags/eg.png b/interface/ispconfig/interface/themes/default/icons/flags/eg.png deleted file mode 100644 index 8a3f7a10b5757b006948ea4436fb242d02dc9a4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 465 zcmV;?0WSWDP)LAHVtk{r`=k{y)(2e*gi*sIRYISXlV_^=qKp{(!;n-+xj9 zUjemETFMXP0$m6sfwJP_;%#kh009JYeOg-Dy?gh5gTXH_fG|KLm<2Qhs6|CZ<>JMQ z009IFR-loRl9E6vpeV=!FaTTi8)D~Q7yv2;2q2OXK!5=N{?|@pNV(X=00000NkvXX Hu0mjfG@sA` diff --git a/interface/ispconfig/interface/themes/default/icons/flags/eh.png b/interface/ispconfig/interface/themes/default/icons/flags/eh.png deleted file mode 100644 index 90a1195b47a6f12c70d06cb0bd0e4ea88d7bfb03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 508 zcmV`hKmn*~pz%QT=MPXRKmaj;?1ifa0xhloNlE|L zuK&--1mwx?-uoV+`qwW8u#*4+i1F_GyFwg7fByafIr{%Uh)$p>Ae%w(|Nq~=m~|`# z{`_H7QhIal96$iEC^sml1*F~kc<(nb4FCQ91q_kDz!3TkBLDsd`Sky<|4qNomi`s~ z`xoeVfB<3v8uI)9A4wibp!A=AfB%5B0nwj-e?TNKsQ>@@`|oeijK3Q@{{o!^5I~F! y*$fQd7#Mzm(H|HCnf(WhfND7yc3x%x2rvM-AWsdQI)rrq0000&KpNnxA)<^73~VwoKqoOWF#%15i9uxn0tlqx)vH&?arx`ryF**H{9<5mxO9m@ mNC@PFfB*h~9RdUZ0R{j9;Y1$IN+(bN0000&(jx%j7OGE_~DVuFcQkgj@33fJv($pjj zgoNxWFM>pG#K4X+%S_Ys!f>f$mib36%ekHNec$;y5njB{!+Y`YzVGwA&4mTVh%ikU z03gD2Hn&LPeNu%hDG7PUvzrphs|^(-as$IIo1LmPya%Hc0Qn*6qc4XX3oKoa+Z)_XBQk8 znPA)XelBh#6J<)fj|w>7X+~Yun^@Bp4$+N z6L8rb{%QnJN{fql*fJH1L*2YjUlB~CXS&&LY)1V3h&68|x1_5-(4l3HUgs~3JvLXI z$_D=zL{dTnq9RK`-w~w|sCYqqA;@OoAE0!{9Gi+cF%zA>5*8OAiXWs z!A~!@Tb_6WJ;mn(q~>CYJ~Oq(|Mc`miY)G1d$)?S_lf*=dz3nd-8+hwz5w#U=!7L- z+Ve0W8Werm#o=KvYxRVVNtM9!poHk%m;Y{gxKdXC|Y{ fc0^aUlspXz7vm>S7OoCUZUIwXLGJ6E%Z+~lY(hhH diff --git a/interface/ispconfig/interface/themes/default/icons/flags/es.png b/interface/ispconfig/interface/themes/default/icons/flags/es.png deleted file mode 100644 index c2de2d7111e3cb59cf6511dd2ab045e824bdb43e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 469 zcmV;`0V@89P)@|4`Xj5kLT%`al?B=W5I`&pe;NKW0^Ri&h`xRJ_x;0v zUa?=y?0^3M|NZ~}FE9c#{{3cP{Qd6}13&;Vf!z&M{pZWqKYu4MFm$tgedF}w=P#IQ z7-9gT-$11R0mKA$(qEu4%ok$*y!^wMRm*x;`R7|k6yu?K{s8?55I{^|9{?Tjhec2I zv+6&FhFWG_BbNVc|Ns94tNRJp!0`V!Py;{!F#$2enB#XZaohg-5%Tlk#oa&nzQW9g zl0Y{D4gK?n0U&@Fe=;yIr=|V7caH%YEYL84k`Tt9-wc2LGODP&y?7BIfLMT@X8Qey zK~fSFpuiXa$^kk7RCwBA zWQbH``0|MX0{;DB`1Ob3-!Fz=zZw28fY1*HhF@R=VQ?@21P}|ur+3w` z_wT=dfByab`{x&s{PXYspTB>919^Y{{Qd`I{N9v10U&@_7=ExZ{APUe{`KE~Al1MB z{rb!Jhml3<_uqeCzux)%bv7|NkFAvw@aK@N+YWG5`bsF#yj00sZ{|0ReUZ0OJ4u`~d&_lgxzd z_7grGtKje;)ax=32IqJ>VE_O6|Nr{|0Uz@6!2*a0?AgCSJ_s@V{`!jztXlEUzkg2h zOW%AK0ILQg2A~)NKmdU>0L=y=29PKt(~s@sMWK)O87MU|4G0ImPt*+y7s`{{I1L_{;G9FVHyv z0R+;(^!pEkq$JpwzYKqVGyVRp{reTr#sB4{{{Q&{G@Ah!GGGK$3=lw!Ux87Egcwk{ eXi`7`5MTfy3O%OUuKb?>0000W@Y84;!#FdBh{DWNV{85G^eR=U#)*62qRvoaLX5p!7Lm^{g>IM$Q zMs{Q_?l?+2NRuC{19iOmU$>t9;*>tnC_qaIU+T2fR7nFyd0Z0-b-MgLN zL~_)yI%8}kwU1=sY!YIJllUc_pyhtI4TcZ)*Lyi~^>58dcXu!D%H5T!AO`R!zyPR# VdiZ30KxO~{002ovPDHLkV1g_p%GUq@ diff --git a/interface/ispconfig/interface/themes/default/icons/flags/fam.png b/interface/ispconfig/interface/themes/default/icons/flags/fam.png deleted file mode 100644 index cf50c759eb28b5962720aa1ce0617a29003e477d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 532 zcmV+v0_**WP)SU^I57#IKohy|#uQJDd#=|98& zUrgMLRb~JG{$u$2m+|*M=0AU#{`@s%|H#1h=ih%I`g`z86F>lpk-UOTf}FCMD80)oDIYC+&q4vMR0s0&DpH|L=c>-#`S^3sJ`m zRPz_88i@Y=|MmYr*an6_AO0`^1P}|uzkh%JGXi;k8UFtPIt#4m|G)nbm0000FP2AE)Ir2{}>qlLBSs|`Qg(SfB<4)VqlOE;Q=cD|Nnn$ zna02W|Nj1E&`=Tpav_4q;M$#E00G4E4{SI@`q`VGKvVzz{r4XmU}R+c_2(Zz0I~c7 zs`v*r?Dty(;z&PFFXX zRA5t=4x{1SIibD)Vqy6A2V^D4P_SySA|L?j2ip1XFA)9%V~_%1r~w2J3=}{2Oiu1 f7(RXZ0uW#T>&I!FfdIJb00000NkvXXu0mjfj-u42 diff --git a/interface/ispconfig/interface/themes/default/icons/flags/fj.png b/interface/ispconfig/interface/themes/default/icons/flags/fj.png deleted file mode 100644 index cee998892eb316c3293ef2d52afec9218bdbbc03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 610 zcmV-o0-gPdP)2C05Lr?a%1G+Sb3M_ z-f!*)-&mJ@lxC7weD@!u;s2li|9<}wjr{Zf&o8mqKR`Cn4*&rGF#yj01QaSLwCD}R z0w(ww8v*|PzTN}jB`Pj8{QK|!{{8;|gOCLd|L9jy6{oELG6Dcq@B)aDq496GGsCmb z5T7wXTnzN$?|=Wl{r{i6vr6{G)xV#={AXc)t!L+QBoiQjSb+Zc`=1dU2n>I~p8E|B z6OfY_{`1$ji1Pn`9_T5yZrhJfj0}g~00a;V(9A!7nZZWFG{8az7^c++|9dI@cmDl* z!Nvb)UorrL86bdIfbsI1fk}{;;V;BV|AE?oY(}v2K-{x07*6Kx`SfB<4-V2A|A=r2_C101z~ iU~vp#0R6xN5MThlzdwv9U#bcK0000}CO1*!he@c;k+ zfB*mg{rg{#hxPwIh8G{d0|o#7{Raep|AEAFCm#U_AQp((@4x;AD*Xo({rB(3@4q1y z(m>63@(hzyJPYWMEi%>@iRTXyxzU zAo>qT2S^W413&<={Q1WKlmMyz`(Hzv@8AD_R~~+N^7b200Z@m&0zc4{Q@7rNwftxJ z^$Q??fEu9g1Db8CAq;fMkDq@pJa`8*&sI~^TtyHla^%`8uswf)HUI<=3()%@Pl0^! zf8Ui?K|l%XeRX{Qd(n@juAHz(D*15I`UefB!>$cK-hRUqIf!|Kj}Y zKt+#Ue>r^ZHOMRf{y`i940V72V*2%m0pg)Q5O4ka4>U8*PAAEH2(%ZZ;ol#C0AiF(UW*)& q3=s4Oj6m#vP&UxAe?ZIt5MTgFMVEBke8_SD0000BE0lK=nzFYgc)d0A2*B+AFf z2joHok-@WP&j1351!6Wt`q9fjf1W;g`1ALFY=DuG5oiNI0I|ST{|2JJ|Ni~?`|A$_ zRt*pr0t5gt0M7pe4IJopi4@}M{rvp?{Qds``}+I+|3-D|`uqR;{Qmm<|NHy?`uqO- z{Qn;q1i_Qs0*LV@1A}N|@t-FT{{IC^{`vn0sPGp^)o&2vABgb_!eEtCyu9%!Kmf6* zGhfda5_|CT&#%8A#S0%rhKer*8VNG{57cZ3sU*g7is3Rq0I|G(Bf-nd3vr@r@vHy8 ze*OIQ@9-oMOb-A(eJ@7=Ab?mP;SCW2x*O<#U%#>Y7zqCS`2!F@APw*!ml9!S{vjhP z$_zA&0R;fLP(1(v#Q5^%OL#2G%0Af7VC%@R_vTF*lgG%);U`26kn-@hOg zU%!6+4+cOs(0HIde9xZz`}Onxub&LUB0x(30+2WcIRJn#2ut|?gWYu1Cf+!-K%B8# zdf?1WA}#uZ8oj7u>$I1i0Al&`=O0k%-@icgAIJnM0xA6maSq6BK-ECw|NZ*S`0Lj% z1_pot6puj;05Ax`F!=umqj7^frO?t|3^&I1kxUq9yECc+jQpY84SWH_0#pxl$?v~F z@*hy-KN0|X07U)z`4{NpU%#2aHUI<=%a31wK(7Du52Oc(|3O^?R1IN+RRjI-n*kVB z3=9AP#PZ|EACPLGJ%9cJNh|>9B%spYzZw7h1%?tp0I_@ndg9MNE>313@6R75NcceF zkr51-#U+7;F#`Sf7i0rK0I_`g_NQ&Zk)EZ(2O=d>QH$KN3zEi7S9u{+2K>GX4ds`2QcM z=+A$K-~a!^(JwH9Fn%*K{{Cdb01!YdV9)*qi~a#?`wdg{8%Z^Y!NB>w;@|&31~6!UgVU(k2*|8J(R-+sudaynhucHbwAMTnor{mwqO^w7JHzaBsT z{O^B8RYf5+LvDs&KmRKVd78=o{`1#HTiEo_OolaGleS)G+IQ#sUI`b*pv<`1zCJ=H0jd{{2S>p`ri%{LsXJ%FbMS z$#S`6f|?OG!^Jxczkf6Q`UNF{l0Sd`ad7zm>({^EzyAS6{{CgrkluOb3l1A>ZU2~A zK+FZ=zkmP!`TOVhpFbzBzFaPmD2$N3;+$pK?>zdet`f0002ovPDHLkV1gy;I?Vt8 diff --git a/interface/ispconfig/interface/themes/default/icons/flags/gd.png b/interface/ispconfig/interface/themes/default/icons/flags/gd.png deleted file mode 100644 index 9ab57f5489bb9ebb6450cb27f4efe0cfb466144e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 637 zcmV-@0)qXCP)@|2i2MUNJEAGBA`g{QJZ3ub1IpEW7h{~Z4K zJ3#Qa=Q1XS-;5h0el2+U>(Te$zyAID&HDTIKad810Ad2W{jW5`@9y)AKr^5J{4Kqa z;cw*UKQW)B)-pW&@%z{RUqB7N{{H&&_Ycr?fB*vd;rG8kGw%JlqX`uK!_D~nn&&T_ z*-Q+-7;nUX=6mt$`7e;3-;BTi{QC{m01!YRC;j>JdmqEEKMa4Icz%Tm{+4F_^}h({ z_1{sye%WyRp84|E^4Gur0Kxx1e;6150*D2Oe>41%=Kmef^V^IA7&yOx!2%AYU;o*D z%dq`!;`!w)_PhDb-(PS30!;@9Adn3rpZ_$9NHVegX88Y?;V;N+#{WPzFy?-P;*ar< zJ?CFrnZE^h{{CWM00h;Fvzl@K2fHp9I6dqaaxb00=Mu XLcuQ~?TP?t00000NkvXXu0mjf`7udf diff --git a/interface/ispconfig/interface/themes/default/icons/flags/ge.png b/interface/ispconfig/interface/themes/default/icons/flags/ge.png deleted file mode 100644 index 728d97078df1d07241ae605dff2f2cac463be72e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmV-Y0^8x|9^h-OG^F+g7@$L?BC01YQ`Wbb?43;K=s|G$6#bNnb!1Cx>Qe>QfY2m>?Izi&U8 z1o&Rm*8l_%%a6%3nS?}u4*37)&;Q?l7=Q-<`}?1Z>;KQLY|KmGQ@ZWEch0Jnt zUmm{%2p|@g=ujpTGX@n^21dqzKYxO4`1a@2NuYivJ4XgKw*UYBFf%g!{qd7YP>5~& zE`R_4F#yj00OjT7{QUg;`}^~|xBB|}`T6Q!vcs262Lz;t$n|1+qbnVARhhy8{z5C(*C%JTg?tEV3%;s64O@&5h$(1-*>2%Ak`A87BFlP7^( gh&l)WvH=1N0MfQja}g1cO8@`>07*qoM6N<$g4hNuZ2$lO diff --git a/interface/ispconfig/interface/themes/default/icons/flags/gf.png b/interface/ispconfig/interface/themes/default/icons/flags/gf.png deleted file mode 100644 index 8332c4ec23c853944c29b02d7b32a88033f48a71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 545 zcmV++0^a?JP)lgG%);U`26kn-@hOg zU%!6+4+cOs(0HIde9xZz`}Onxub&LUB0x(30+2WcIRJn#2ut|?gWYu1Cf+!-K%B8# zdf?1WA}#uZ8oj7u>$I1i0Al&`=O0k%-@icgAIJnM0xA6maSq6BK-ECw|NZ*S`0Lj% z1_pot6puj;05Ax`F!=umqj7^frO?t|3^&I1kxUq9yECc+jQpY84SWH_0#pxl$?v~F z@*hy-KN0|X07U)z`4{NpU%#2aHUI<=%a31wK(7Du52Oc(|3O^?R1IN+RRjI-n*kVB z3=9AP#PZ|EACPLGJ%9cJNh|>9B%spYzZw7h1%?tp0I_@ndg9MNE>313@6R75NcceF zkr51-#U+7;F#`Sf7i0rK0I_`g_NQ&ZRCwBA z{Lg>@|4`Xj5kLT%`al?B=W5I`(ov;U*021*0XgD3^5{teN< z@cTDV13&-@;@|`T5QYI@3O)ok?1DO<2trehc#kXh!0Z4iC6of!=I9L4Jz5Qk(jP`l zJOKo8(qFLXAF#IH8`u5XwDI@PAHNy@|4L4RsD^0x1N0+605O4m05bkR14QCiMDQ;; z>0h$aKjWi;+@CNFzZm}i25JBZAQt8_hOB_!_dovn^Y72^zrTL{{r&6TuiuWpfB*e$ zwD}j1{Ph<^0%eu?|D0`P00`k|9}4iHT+`$2p~p=WCoxfpgkZGj{YEt g{DC2GLI4Ob02tU}a;hkw5&!@I07*qoM6N<$g4!w08~^|S diff --git a/interface/ispconfig/interface/themes/default/icons/flags/gi.png b/interface/ispconfig/interface/themes/default/icons/flags/gi.png deleted file mode 100644 index e76797f62fedcbfca8c83c51951680d6a6e9081f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmV;=0WkiFP)VoB37QQ+R{;bN6GSUi z+kb{HA3p-oUOth}-@kwP{0U71P%%INK{Y@H82)oDp3V0Dt?T`39Pi$;RTl%zL?{P4 z2_S%&kW~Z0x6qjPzkeV9`s>}VU!Q7P|1&Wm)PrpR2q2b!5Hle5FfeebsWZ)5spT9vc*+3O2}Iw&|Nr{sqx*C2&8&?7c>c4n{QvVC zD9-TjFQbI?+i42`0*K|`>)%Y*uQL4o{r~rGhChE9{`~$Pz`@Ka$@uLpb; diff --git a/interface/ispconfig/interface/themes/default/icons/flags/gl.png b/interface/ispconfig/interface/themes/default/icons/flags/gl.png deleted file mode 100644 index ef12a73bf9628ff5a67b81bd980d9c5d2b2c0f05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 470 zcmV;{0V)28P)J{teTOL@z0+>00G1VRSiT77W_YWkm2*^|KGm- zfAHXcOY8ruSJ7+$Itd_vn4oTd_U!+mLkz$F{Qvdq|L@-*^6S_C%a&nk00990)`(*=-xesBS%qG0|gf?f~#iu^9N|j9|i`10Ac}ZUz>% diff --git a/interface/ispconfig/interface/themes/default/icons/flags/gm.png b/interface/ispconfig/interface/themes/default/icons/flags/gm.png deleted file mode 100644 index 0720b667aff506d7892c5c301af04e6bbf932751..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 493 zcmVwRhhvIeu00_fCKU~B)yH$s9sXS^B!W{?M(W&}hPbMwO z;*cg65E@7haJ!!XVgYOW|Le(9kkY?@fpY);{sqc`6amR!K*q2CzkUI^Y_hUI(*XjA zMdSH%VNp?r|Ns620Z1T|}fB<6Q zlw#oF`Oo_sVk+2%KTsoq3?TP6gz@)3Ki_`_=6?VI#CZSdeQ9y&f57m8xf%uh13`xW zAjrhTbmsgSfB<4-$Y)3kNW1sx-tWJ^f#}!YUqA$5fJva>FJQR-`S({vK;>fVMSuWe z0mcW=Ig;FxKxv@ppTFP`1*!N0BL9M&0|dYz`1hCL7Xv^5F*2kxF#KQuvOqEU3km&! jiTr^fV1zR<00bBS-TrJ5MX@2w00000NkvXXu0mjfGz`_@ diff --git a/interface/ispconfig/interface/themes/default/icons/flags/gn.png b/interface/ispconfig/interface/themes/default/icons/flags/gn.png deleted file mode 100644 index ea660b01faefde01ad2527a6abcf7d1a5c1b0526..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 480 zcmV<60U!Q}P)@|A6>41A`El{SSoRd}EL3@|NdrR`1}9=ZwUJP z@AvHwzkdDu1yn7|BMY<#Ab?oFX8(t({tZ$6>;L~hU=2XVuU~(E|N0Bk07O6y00G1T zbT=bV^`Afg|NLS2{ReI~M8m&-NE-fuGynt;*hzmtW+Q3%1=j#1fvO=I{`~y|)Bq4b zU?=?r84r{KY4``%041R|`~%zYhXEjfz)k`h|LYgXRlk0r+3@c_)IERx{rUUv4^RU@ z0D&|xgN*;p0Mzyy>QQ8EKn=iP{qyfH5CNS85I`UeOuzpyNJ@hA{P_#yFfjaPWc&?| zr{By>f0X$D{QV0G@4r9|{}=!Qi18~pg5ikaD#Jf9Xfy-Svu_Nh0nj)GNi#731Q-A_ W8E1tdJ(&;y0000P)fLk0D%}*I7ff3uKv?i+N*~ULWZ>4 zW5%k%a3T{@*`z6pma6eF$JtK+F@C*&o=d^t|Ns9GOCXH@*Z?CVuP#7nB5Y|1kmu|NQ^=?>FP0zrYX%2q2aZH;)P`n*#-K1r9WbfYOYN z??RUX1P~*`M}`*mir*mb{sxCVG>rbhqT(MY2L1y54rHu+wi6(L7#SX-$0bVa{(;3h egu%oB5MTiLH(5{VMZMqv0000u-`~Ig{`~p> z=MRwl_xtx>F!}G#@4vq{&D;bKKrBFA+{}CzK0Nsg1pog2{{I_D14*DX1pWH^3y6RW zSzcL&Zwvqd#Pa7K10w^wlkmIISh(4kI3GTJhN2$mzJLD! z0*D0|DC|s(0(}1j8UFtJ4HA_S5@P=M@9)2VV#30}-~k05FvNkXnV5ck`2-L^EDTKl zn1259n3DG7^QXUm{{H**3#f!E|`n6Mz6>fhdBj29g(UfB*aM-=Dw#|NaG$fByXc1LXhxFC@THKjjKQ05P&# zA9gbr+SsEBRPB^?1!&T?30hEBFhHFGv5AR^>DH}B00G4E=NHV45I6k$@0N4rAH*g9 z{zDN+_&*OP%Y{RC0Ro8e#fvv0A_7PTA~XKMG0?q08}8kE2oOLl>koag&}IJi^WT4% zN&g{c!yE%t3}J9_Fdy0V1t5S}4xV|TB*XjR%dfvcU;YDm6wdeu;Q~GU4JP)J`S$qz^!f=A3G?{>83*rF;63vB|NHv-`~3j>`uzF%_#GV;x3_Tu z05Jg0{{&$2KZ#9J4f5RdzRdzC6Ae5p=(o+T{uB7y^ZNSwN=h$cVmJ#62-nx+ob%l!TKAE1V~I16T$|E1+i#l`u&y!03t z7ytqQF#yj01Tv_Ick58z;rzG}_y7F-%)*RRAv1X@1^f8;`}+eA4+yBm#PKA>w6y_L zQ&a!|00ICp0M7peY0>I$KneW(?7rp&{QCm?`vUdU)NRiG`uYI-`}gbY@;Dai8vP{| z4h7uY=>Px#0*Hx$0pxvffc*LW3+PFp{}_J#0ty11^n2!vLjod>mX_Jy|Cz2{eHy3% zAb?mH7=HZ$2N_TWSP@V&gaITO7A`uvc=2f<_uIFxDk_pd4FCZI)bI_+mz3lOl7E0f z{^u`PGlT&Y`3GeD{rm6lUtS;y)Bq4bz=+dkVE6#Ehk@Y-82x6z3jhKP0OI&0DF;s+ Q-T(jq07*qoM6N<$f)`^cRsaA1 diff --git a/interface/ispconfig/interface/themes/default/icons/flags/gt.png b/interface/ispconfig/interface/themes/default/icons/flags/gt.png deleted file mode 100644 index c43a70d36424b66f1627216ad988cd23a4be9285..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 493 zcmV|9}7f|M~m>&%ghRD!%{(5DNnfNcHoNKp}=7 ze;EG#|IZ9j4hBF)cVB@t{Qmo2T96TF4?qC109^ty;2+Qi2B0xObN{1)Uw^{8{`KJ4gZ0H zP(J{D2s9NSfWR7{27t^!x8NVhN&g{E`Ueb#e*ggla?+pwj3Cv27=VUhwE^V&zaVoN z82$hR5DUYve}Dck14V%vK+Z)23?LgAK*7ZT@-zbjKmf4-BkT7+CNVw+pd~+kF)%WM zL>VCz0|PT7gS-eZm>Gd?16jcE4PH%g~!@=<9&!2x_@aEGW jS9>vVD)6R*AQp(xFW-Wt{{mJ2|NHk};Jc-)O#kPzME?5A`1{ZQ-#|To{!0im{$XGM z2p}eq*?*y`{{RjC%V7Pj<(}hvo^Z>=hrJ-xK=d0#0&M^~2_S%&fR6tAp8=>2$p8C? z0q7F5H=q9h`}OesIT^OczkdG%sRkpU6i@>|0I@Lq1-k@j0La}yZU2}V|JX_T{{Q!% z>EEtDfBydd!vuBJUq+w?fB<6o2X+#W53~WS;s2M<|9d72Yseq)`11cZJHs!aS-+wF z1}X*!ASNLG{ST%Ze}QTk7ytqY@{}>p)on&BOV)*xm;om>72$%sP!HhqD7ytr@1teTu4J7{m`^Wh2AGglm{~UiA z82u;s5_9PZ|FH1)~3de={)r1*?FgUtsi`kx>?C4?qC1 zfX)8@|LZe*d2K>lZN0{{I4*^b@QIr~;(tA5`a`e}Ddhy$ldQAPvkwr9kh3`~WiS7Zcc2 zh-#qDKOj^7{QC<;3||-k0tlpm>GvN7NlB2NKYyjTe{-?^h8PLd@aHekus?tQg2Ee! zfN=^CK#X6(5e!Gd)(i|h;JEn(j5jcXFhHq*fkB7?Aiw}&uW^ngBcx#f0000J&k9ol;AaCAG*Vvs6lsG2f+AJUecp&K4&zS7@MzJZZ+RCHJO2~-cn~)8*ZB# z%#~(Seaqctb3On>xdArM!+zLfe2=iS%3k1HK82I)yo62#|&;D2*%o~N(LQ$HrxFU=@<#wgQDty7s|5?>qxBTrc>UoBZ!}1le z#)a`Pq~$aEPO=D0fO80I7h5SSMqU=q48*j9Qb*%7#+Pi|ervSf?0bSFwKsAPn1FO| zKH_&kh#AJmvOUSnl~!1AmcaNJM5awz`0DF46>zWZuCh$z(7uBp0to4w2iu-uj zV9oc#M;CkJ!OT_8;~(;r&Cw`0K3r=(%@VWyiIA#;S}+n)^}q>|)QZ|IaYyyY!;frq z6mATysX~aM!z!n$rJ$=27fpoIr3iB{q|Gr32uDRa3PcNj==OQGHve|07^1DbtUgzuEQ=j%rDF diff --git a/interface/ispconfig/interface/themes/default/icons/flags/hk.png b/interface/ispconfig/interface/themes/default/icons/flags/hk.png deleted file mode 100644 index d5c380ca9d84d30674f05b95c2f645b500626c07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 527 zcmV+q0`UEbP)00;JD`K-EmLvOuK( z0R&e6?>|)a-@i;iz|8zVIqAQ;I)|_@BNM~FU%wy-s0ZjAfB<3vx(uZH&mV?Ae;64V zIcsYEzkmP#{)7J;N}0Ju0muUq%~ z^Jl0Zz)k`PASO^y0(FCg{s2v4J zf4+RlSW)rg;lp2_Kl2?q^5yYkpazCNzyJOD%k=jzP%%INf#Tuc?>~%^l1w0DfWH6z z1E^V4lvz;l%d1x`a&jQQ{ROE8h7C|LKmaj5WMKG(8n4KVKd5of#=rm&U;y%qJ?5>3 RVzdAN002ovPDHLkV1mTk^F06n diff --git a/interface/ispconfig/interface/themes/default/icons/flags/hm.png b/interface/ispconfig/interface/themes/default/icons/flags/hm.png deleted file mode 100644 index a01389a745d51e16b01a9dc0a707572564a17625..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 673 zcmV;S0$%-zP)>fJ3En$GhGS>sbE%%m3$AD)q?8M9y>88-}kR7#RKlk!P~Y_PLuF7~U~3`~nC7 zF#yj00ZUDdpLsm{7ajP|&HwoK0Usg|6%f4L_{`Mi{rvv-`ukf=Ed&Gs-sA7L!Q7*a zj{*QO0M7pb%?Sw^g@yy{>ihEY{`vU@3=8@G0rvO$i3mOL`~mv-`W+b$Mmr&io5dg< z5v!7q0*L95jt`TzK8Kd(Utv)OSp_aLv){6ccV+Z`{Q2+asKUU&aO3`Kpz6wW8wp`< z28M3{0mSqnB#A*-c*8%1=RD#sSOwMznKA3=e&iEzwo{cA=PgXK`2OQ}gqId83!|%* zA_Kz@fB*n70M7pdECCwp4H&@R`1|(w-}M5x*74i)0}%fAt;XafA{48))#>Z>?CD#}*e}Ret0tl$#*RMZ7}Jl7Z|M45`5*URzH9L z{rmSnPy;{!u>dsyO%meg+00000NkvXX Hu0mjfN{&}S diff --git a/interface/ispconfig/interface/themes/default/icons/flags/hn.png b/interface/ispconfig/interface/themes/default/icons/flags/hn.png deleted file mode 100644 index 96f838859fd2aed975f5f4134050fdbc0486ce1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmV+!0_OdRP)yNpn^YtfB*U? zE6K^g@B<)#SlTBTcsfda`|@_0R#{e$UZ3l|Ic6l=B#}T zWCl5lg}RFY8S^$g{qgfJOdc2ve*glAv3c@IFK6|y-~NDH^$#cn3{a5k!L9^_5>O@B z$^W^zSlTD;0tg^R28Q0WdbfK|zW)9V43odV{`~*->+kR1AO=tbO#T4}-G3E1?u#4x z0Ro5x7#++k42m+GppXWk{}2W^;6Y*k7i(1vOT1`b$6{=&w9#5#oJ b00=Mu*}Zhb7k&Za00000NkvXXu0mjfKokPk diff --git a/interface/ispconfig/interface/themes/default/icons/flags/hr.png b/interface/ispconfig/interface/themes/default/icons/flags/hr.png deleted file mode 100644 index 696b515460ddb670acb7e9de4438aaf21fc5fb77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmV+n0`vWeP)@|4`Xj5kLU3fF!G{fyDoR{}_Q36Vv~H|Ns5{^Z)NZrr*Dqe*gae=g)r_`DNuw zfB*t(VEF(4$y0{Ee}M=nS{mB(NB;kxJOBSE{F_{n`2Y8>|G$0##TjK~fi?gH5EIz! z|8Uj6|NiY-l-<0|OxA@1MWlzkmOI;leLR z$De1;{4g{7^y$;LZ{NOt{rct07a;lk`E!5(f@%OM1_PkhC8`eE9egqWbga z&p;hdpFRZ$Adm)#>fe8W4*Ct02B|hR1*-n0rS<;(dx&bFRY1n$$BzL5h>;=uaC^Mc z(+@v?|NZ~x@4w%F|9yUZW7+yTpo@LH>e(bUfFghX{rmIxzpNnpimU?w0mQ=a>kp9s z8>AGffmuv7DrFgv!3yU7{`2q8f1ngFoPlxn4AoS-S!;e2821p2q{((sbfB+=MK@k8U5Cg$|VB~~? z2XKWZk_lAZtGhi{|56nPieMKY$Bq=4KgZ0muK;2JYWn}5;nka8K-GUCa!{rJenZIL z|9<}gF~mh#ftCOS5DU<%|Ns8~1)2?0{RgZLWF&|Ls)lL+iU2hL1Q5&LKMX(>AUTM^ zNU9+S#0FXN@8@rz^Zx+^5DWL07wmsTIe-5EX@IBzTJ`52%kO`z5F362$-h7b*KaNc zh6exv#P}EJiR%3Sk01R1^NZmZ(C**=fB*Xb3rzn04HN{CU^bJS()(Sf00M~R4FdxY z(0f3MKYtkh0!g5OAQFsz{e$TF`x|H}%fCO*7#IKo2o$W~FaxWA8VofRr202h8w1#j zz=!|{Ah3qte;CCj89_$={rBfLBSbS$5J>(7`GW}-*g)q41Q6q6a2)=FMdm+9l%onl dL?8elzyJ+{hsuy4pm6{I002ovPDHLkV1hP90PyYjz{{0J*12TXlP$`i71!VmC|LYf!%PK1iv=Z0I@Lq zVgLrRB#$I8Q2qeT`3KSlX8!?(3s3+U9e@9T1Mx3N13&;VGFUSJ^?=Y13Wr{r~&-|6d^ahvDC! z|G)qK`}^nrA0Ybu|2K$nd)6X=0AgWa1{?O`IRi-PU$8V7{r&w9sOb0ae<0Pr|Nr{M zEF}%J0U&@_82&N|Y=e#y>zg27mx!0Xgp5*S}vr z{r~fq0csvl>92pk!P<5VDfB!NI2#TFQ3lKnzfB%Al=06ZHfFW+c#KiRe{d<4_V)^&)A0s0pNIe5S)eu>r zF8~6F38(?TQZ#J<0R*xEXct5e0}KG|WIzExE=U%r7$AT^8h-rv@ecwRzz_$3Xaxu` Y0RLik?wUgPu>b%707*qoM6N<$f;0ZTz5oCK diff --git a/interface/ispconfig/interface/themes/default/icons/flags/ie.png b/interface/ispconfig/interface/themes/default/icons/flags/ie.png deleted file mode 100644 index 26baa31e182ddd14106e67de1ac092a7da8e4899..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 481 zcmV<70UrK|P)1Ab?mHSU}=WzCQi??=KL1`SXRBmG?g! zeExSVgb4YXfjasA0Ybs`#&c5^XvcLUqDM3{{9AP00d^^H2e48-+%sM)d02u=%hct8G!N( z3;+QH((o5-_OE}xfO;@2_y=+i*h!3FCjkTyNW*WSt$#tPfB*dj3@CIxKqoQ$2DuvO z1O^6x00KJ+r1UogVe!Ksu!etsL5P6?Ab?navG)7lA4zUWkT?GPWdcP410y3N0|YR! zFo-FE!v&-P=p=vuVq_>~VE6=zV^DnmVAx)=U5ZNz6vaS)0m(NHWW2-wfs+9Q00bBS XO2cxg3=*#z00000NkvXXu0mjf|9Z^l diff --git a/interface/ispconfig/interface/themes/default/icons/flags/il.png b/interface/ispconfig/interface/themes/default/icons/flags/il.png deleted file mode 100644 index 2ca772d0b79b255872cde2fb29060bbbbad950f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 431 zcmV;g0Z{&lP)WlqUuh`uiUU82D1+EBLb>EWz|Nj3k zj6%@>aVJ0ku|Ql5RsEk~{?`9D9{=ZO{V&1vKX2lHHJSgJ0SFC1p8y096I?Y|?05b{XcgblKTHZ zfByjpAQrd=h&?HOAa>`R|6Hv9XB30N3RxDY7$AV4en1PH(j<7uAT&Tc4G=&q@-F{c z8i9e$01Rv(35=ybe;NM%WdxES!M~uG0dj%y@b5pvikg1_0mOLw_HE>d#AF}?ph|!M Z0{|%qc@l5wel7q2002ovPDHLkV1m6PxaI%= diff --git a/interface/ispconfig/interface/themes/default/icons/flags/in.png b/interface/ispconfig/interface/themes/default/icons/flags/in.png deleted file mode 100644 index e4d7e81a98d705da8d7054e77e7d311805659678..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 503 zcmVl^KlW*80IEmzVa(K3*_6 zG7fg0I9Zj&0woGah`r_&Kwu3FK=xChQigwjfh>?7kc!_h@)sEWW@MKI+5iwhEdRtz z89B8WSj7JS|MwrL=l|b3uZ7Osk^B4auaUxSRgtG4v;Y11_x}$gi|9Y8?EnG9`1|i) zCPv2p|ADsrhuF4k`@Nr^zUpfTpS$xp!A}Wj4A3Yb2~_s}<0pUsVqyY2p8>1`g1&zJ zsVvR4Yya)fUw{4wtNss>0tLxGfB<5GmnRH!zxweH8<(Mq0N7e&^ba6_ z7#WHgIs!VLeti1p-=9B!fB*jb=l8$ge}LrQ-#`%%`S%Y9{re-sFSERHIY0ohF#KVF z2*K4Ml>Ykz*ZJq)UtlmW{9*tIAQm77@e!0?Mfa}mS!7%=x2KmY(S z0M7pbTSu9imq`K?75n7n_u%3MB_szB3#hl|A07@E6$<6-<>30S5egmg@cSkZL+Ix9 z0st`p&i@3O7{&wE8wU3C1oia^`T7CwI=ckcau@Q71iA1L?!*;{7^Nm*&$?GLJd|NjPb3=0E0KfCb4 z#nAu(05Jg0{{-+tQ26`)!^rI-{P_e371QGlF%9qW_x;Sb;QRdk{r*xJJ*zy?_rWgu z&$=$1lYjzR(%pFe+p|Ni$IOoG{eTR0XemVUia$~;LXXZeDO z0096o0M7peXKyl1N+90g@dyY5ARP|N&gc{s2^<#+#>?j*9u48*^A9U5-*(6(kqBPq zC^|QM0*Gbi#3NFYyicBf1{wyk;Wx-spzFb0kX0fvuWZ`CzyHEKd)}3G%ew&r05Jg0 z{{dZPvvzMc=Kqyj=IHYZ2nGGUe(f)J7ZwZK+v5TV s=!a5B6v9X#`iH^&14cjw13-WQ0BQ>oQ(TIK+W-In07*qoM6N<$f`&OQ@|4`Xj5kLT%`al?B=W5P+gNxB&nJfgpGfTOih;e`=>T z5jZ8;?_>v5xi(~iU^udv!6f5$jpNVh2O?$m1OPDr&i?@Y{r&#_{`vm=wBfh>{Qda+ z{Pz3$!R5rm=Ee2+`0e-d?)LGV)1LD5^!4@i=jZ1F2;wA$U5|F$_;B;f&rf1p(qbG! zCte(9VPa-y5lGpbZn4ZFhzcT9$vfdqmuG z@j$ZG>u9())mkwqmYHSd7eFi*FJ3%$?AX0~_kM%HFED^GKqQ#;=g)7T_f%9=fX)F3 zAdr)QMoCIaf{X{6{|BNG$o>N%f#5F;02KoS5XlH2zyJ$0KZ{``H1_}i002ovPDHLk FV1nFR>VE(L diff --git a/interface/ispconfig/interface/themes/default/icons/flags/ir.png b/interface/ispconfig/interface/themes/default/icons/flags/ir.png deleted file mode 100644 index c5fd136aee534ecb59914e336cad18d18ead2a4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmV+b0{{JqP)r;gUH{1e{Y(x2_S%2fSMQ?7@vH7`tSc=xS~J*|Ni>>`_JFszyAFKs{8d9NdA)L zm1AIH00;mv0M7pew_3Ln1`-ek5ajjb8VVZW^Whu|9pCfc910uY_2L}~8{YEX9t$4Z z@!Kj9D)d(L0*LYN-@lBEj6f&-|Nox>4F7-s`Ty{t|Ns8~x3>Pz!S){pfXY67`UDU_ zOc38f#US*GW&hv2{?Eqpf6;>f$N=n5fB<4bR}BO)G5?=F{eR-b|HMQT_5c3^H2?$< zb1geNgNn-kGiMln{`!CM;{TsNL8PAke-;*?JV+Z*eYOvhv$==KunT1sF?AKYlWZiGf7_{AKv_o8k9wMiBcC z1B3*kzkfmK*Ds)AfB<6r3XWMgVnF4hNdW;sfB^vU;z%SnI0)(h00004s{hykP}!$Xp8x`g@iqg4NJaUd z$B+Mm%>4cD_iu*Zzrl=O|9^qF|9<`Y547mdFIIVlOMCYL1Q5sui18rvfj0Ph3vJwt z)dnUeruXmP0|XEYv&@95W{1bGfWG{@sKWZ+FOVO6s`df7U=M&0& zKrFzJ{`2=AL>j0Rra@ocD)4hB}-f* zN`mv#O3D+9QW+dm@{>{(JaZG%Q-e|yQz{EjrrIztFq(O~IEGZ*N=lh=;=qSyMwWku z27eMOW_|f0uQeek^e_9g7KH|eq{JVG0^UaP2Jy4}|L^JL_3uCblfVD@mnS9t`~UCn z|MT(+KT|KOfz%~1cG~~^_2vEk{SFNQ?Cjg~|NsBWy<%2im{vp^YdeS=hk-Cyo6U`Hgs{l4FR(w#{P`G0;a3G2@YSmzI~fu(ZE1> L{an^LB{Ts58L6#6 diff --git a/interface/ispconfig/interface/themes/default/icons/flags/jm.png b/interface/ispconfig/interface/themes/default/icons/flags/jm.png deleted file mode 100644 index 7be119e03d203695325568174b72522124bb2f12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 637 zcmV-@0)qXCP){QLU}0{l%6`#}@@_VD{9F|q;xF#yj01gpgWJ+A*m zGUYZW{T>4SpXmF{^Zon(`}_X;`}_MY3j1pm`Wy}V&B*(tydCWT00ICp0M7pd0000m zGd#J&@cQ@tG$8vu6a54J`qTCN{{H)06Z&u*`VIU0o2UAMn)~_v4c^|~0*D2u;qTwS zKYspMz5CDEtAAp>e+Mf5)@1$t_wR2Fu3uNK{_0!&`}CDxK-+|V{{|`s2p}dP{`2SW zZ!oxe=XdSY-}fK=Qse!l!T0O_!(X}WAk`4?=MOLh7ytr@32Xz9{pZ*3U(#Z~DiVIl zOa8j^;n%JAKjo!$j^Xni)Y$z6WB&k?3JlvV7}WR}00ImE Xyv9Bjb9W)}00000NkvXXu0mjf@Xt#6 diff --git a/interface/ispconfig/interface/themes/default/icons/flags/jo.png b/interface/ispconfig/interface/themes/default/icons/flags/jo.png deleted file mode 100644 index 11bd4972b6d5f134045d4e8ce134601ea9b5654f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 473 zcmV;~0Ve*5P)M00|Ni~>`!`VeZ#eh`f&K#;fdS|pfB*tJ>FU-06DIsWc#z@uumAs9{`&>~&q~MQB#;&cfB*tH z31sk|Jq+K!KjiuK-^&B5YLK~LCjkTy3s3{|pFco7yH$Tr@L>D>cm1y|D}MvS>F@7f ze}Db{_vg<)5c|)+zsmedM_Y~p1Q1BWd$vDo!X?isvq}Pk|KA^w>VH5L!1(y{_x~TD z9$-NK{r~sxzrPHB7ytr@v6F$JJdlAwh=Ji34E;f3{DCq4fk_4ifB*vkxQ1J~H9>i| P00000NkvXXu0mjf0T$ba diff --git a/interface/ispconfig/interface/themes/default/icons/flags/jp.png b/interface/ispconfig/interface/themes/default/icons/flags/jp.png deleted file mode 100644 index 325fbad3ffd3075a4a84d8d898ad26ef7d3e0d56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmV;V0bBlwP)9whYk?f=!Q|Ns8||JN@lTD;`{R1ZWk|EGa3dAO8ObDh3E3Cb;oH_5X#1 z|NHy@|M?558b}5Q|Cf`4hZv9q2p|@?lb|{i68>{>{ol0lx`{mi O0000=G`P)0NEt6k^VGA)9E1hT9ocRoN>wSfaWv)?-raRm?)Slj<6Po6w} z{P+i;{`~nD6~!ec29@~tkBNo($fnHz0mS%{fq}QS{_m4#|Ns2?|K~SQUHy-* z`HU>AfB)8feAoK(-@hL}|Nr_0bQ_Dj+^xMk00K}f2RQ&hFc1JYLgN3=lsJ)M+p3uR zWC5ydAM*!ly4H1hsiEFvIU^1)HH_GYz!QMsIYt5i1c4ZMLC4DfztdU-q)WGxxg;|L zi3%uAJ2fm~N8&I2%AdL;`{4^9#;e!&D=C-&Lk8;9|NlO`c*HPy9@C${KeOWnB;`P2 zATRu9VP-jSWFD-S8kh{*zoh2aO#pT8A2W0o(w3 z|5bef!~)j#|KF3RAf-U``!@sYUq;#A42-}3UHtv;%kTfcfBpOQ3nmTE<|1vNq z0ns0zZx{dq2xP;5h!=kY&G_~A;V*`-zy9<8Vi5ZI|I4p`PkusG11$kMn1KNxfWUtE z{TpHc!>?a|&i!W8{>5bQ`~TnHf3N=fz5nHq%!z>% diff --git a/interface/ispconfig/interface/themes/default/icons/flags/kh.png b/interface/ispconfig/interface/themes/default/icons/flags/kh.png deleted file mode 100644 index 30f6bb1b9b6c5bf355f67a17531fa73beafa6639..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 549 zcmV+=0^0qFP)P;@arD~1pHxO_zPr1&>t9y%wPZrAQpyS3=Ms1K-T|%K*j%o>i_=z2W0&D^Y8ax zhQELQ{rLl7|Ns5_-|C4+00M}Gf#D0s|6k8u{RAokD*W^JKSaeZAp18+HBcQ8{rdA) zTAYJ{;SE3lu^j&CtN66?*W<_k{(=kvTJiVSPc{h&pyuy)ZZrJ(`}gOM|G$0#rP$=; zY#H_d1P~L*>3>1SGXDMzbOE=49-9EaM0J&9T`emwH;=g~P!Ocy*DnU30tNVGcpOKXK;IXGH`G*aB%Pig@_cF{AXeP^XnG~{rU5QfdL?ZSim;?VE{Sy z7c(ax6CWR+s|%BWAkauYPfsQR0VXz9sPSMM00M{!7+@fO0fqklmFn#S3Nf;>{s#gU z7DjgV{|pRrOO`MKef9?wUO?vn1P~(w!@{x_lZQ{f0d@UhVEX<0FF08K{sNMJKnNIa zzrX(mdR{@6d*A9+009Ja65pra?7SkZU^!3-{)PrTC`>`Y0b%_6|LHH#J`sQb0@|>a n0T_AEh(trkF%3aX009O7j5IT?Rho+J00000NkvXXu0mjf2r}#E diff --git a/interface/ispconfig/interface/themes/default/icons/flags/ki.png b/interface/ispconfig/interface/themes/default/icons/flags/ki.png deleted file mode 100644 index 2dcce4b33ffe1f40d490cb1a2e03efe22ea56155..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcmV;B0&o3^P)8t@U|NsC0_uv12fBrK4XN%za&+zB_ z{P)aXfBpaa=ii?{|9}7d|NHmt1seeZhy|?e|DWei8UFwK|L5=jKYtkh{P{kK2}m(L z`||tm?|;94|Ns5#-_IY+QnEm+00M{!r2OxHhJR4iK=k+TZ>A77)*#lue}Db^^$Tb= zko*TE|NI8J3LpSOb8Z9x2m%4nC$a{*Gqe90@enzQH`ta%tA$7d{Sv5iP&~x@8dMF~ z(;dfh&fyCHF#yj00oRR-9sTeJMNR(n^YxvS3U`G57YhIQc>VqR{rPSM@(uBDU=5F+ z{|5&5hj_*A{sI6o0M7pbe|x2IYDAmA_)R$v7XIy^!u#*~18PtP{r&xWnDPVw`hiji zey{rM^8J)$5m8%@0*JA9=57`qRaXnayHCFDJ@r1pR}vUfQ&&Fu_xE3Vu+-%{U$!58 zQy3!)avcufO?mzv0@a%gl z1HS+N7!IC&H?5`#AOHX{0M7pb00(zPR4BWp;5AJa{{8^XwcY>#`eSh{`1tyzm&^bF q{8L{tuE6I1;oe7AG|b!z0t^7P6ga05`yJ%~00001r;P)}L!W`0l>rF;|7So3KrTcC!ho;=0*Gbf0S0@;YBwbYEs=i=3_$ev|Np-X41fOr z{{tp}0~v7g%iT=?0mQ<{9!@# z-(SD~{`vL)_wRqdfBpaan?+XX#@15+0mRIp%kY{1qrJR?xs-YLhQhSVzk_f6;`sgh z57Tc3#$ODKzZsZ*F#y?2e^`Y0-&}tV5I|5HD)yDjz7nmS1pU~~aVF#A6wD&YtO00ImETIDprOD_2B P00000NkvXXu0mjfKOhx^ diff --git a/interface/ispconfig/interface/themes/default/icons/flags/kn.png b/interface/ispconfig/interface/themes/default/icons/flags/kn.png deleted file mode 100644 index febd5b486f3f90056637b23caa26d838fbadd7d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 zcmV-i0;BzjP)h(K@ANy8uaQvQ^_nWcs z*Z-GL)eL_?t_B7*Kmf7KbznHW;LqhtK<$TZ9ej=*TGLweOZn#S|EVB#AOzI#2dDw) z)4xDJ00a;t5ND<*{rU5ogY7p9)8EGU->gS|Gwk>cG!LX2Y%nmu8NlfEl`8-N#0ZOI q248)K1w0H4M?n#d6+r+%fB^s&Q!OA|2rzyC0000Cs@aq@DuRlQczuzDZ5@KTj2q4CTH~*`MftCON|DS>3-+w6c z9|(gO{~7-O`v>9vKX&5_Kmaj*WME|P@B8=S6~kYUnG7sU|G#_z>G}QV|KC3#^7rq5 ze}4b}^_xjb^7)+E00G1Tlwy4KiiwGVIVgltUY_yi&tI!o|Jl8p;n#15-@icU*KbCk z6Mz3^`1ON{fdL?ZnEnBs@%JyYzyH5mxBfr4|7*t%=AfYeY;6C2{Q{!DKY#uG1wwy- z+}}Xm3;+QH(!lWNFN3HElfM4XRjZk-tp4-xFo=l!{|(XrbkBdVP9XXJ&!0aG3;+Sd z1adCWtuJ2w-n@w=AmGpT?F`?)|9k%Y-_M^QML&N+RfBB+Dh3E3pdT0*fp#rf!j_o$ zUs8faP3>oG?f*A#7{O)(oeuE;(0C>wVqgFWAQqr4|9E)*J$m%5y#o|bz~KAxm4S=v zKP&4$usU!k0b}RSKS4oYgaHH)%c-;9wWL`3={r0|OreK!5=N4TMk7RCwBA z{P_JV0}}Z6?;n_iu%H+Q{s1vR05Jij`8c?M=-GouSI=K${m;n9!7aeW#m~(x$j!^i z%zXLG*~fS9it_V|2?zl-00a;V#NgMjUvJ&I^~3uQB4T37ii-d5-u?gQ&wmw_XD?o^ zUAsm=P*7M%NJdr`Xazt3fo%By|Nn;%AAbM-ZD?YwEG7BBxA%WR!T-FR|8><0Vxn$d zUT@yKdH&)BP#Mq$fB<3y`hl076R7Rgt5;mSyo`Gea7>-}|M%}Nf0%y${3VbO@hKwm zAWK?W z+TGp#<;$01Vv<1pdP-ancZ!Qkd3bmLHK?nrgX5I}Ab=R3zkQ1wk#LIP517FKVgLC9 eRt>}e0R{ktF&Q^6#MUGL0000@P)xg`upqGzh6Lx zERQVE2><~E((v!!|G%IA{@M07EI*V_ln=0RjjdN{oM|h)7EO z{{7?6U#34`ML_iD4-=RKMg|km5|FijfgS(|AV#2u+YAh13=HqUkqe1m1{eb(!T=Kl c0)PMm0G()MDW>>^I{*Lx07*qoM6N<$g4p`a`Tzg` diff --git a/interface/ispconfig/interface/themes/default/icons/flags/ky.png b/interface/ispconfig/interface/themes/default/icons/flags/ky.png deleted file mode 100644 index 15c5f8e4775b2b68e0360c1f4ff1f37e61611276..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 643 zcmV-}0(||6P)0{QUt82Kj15^L?rd`uqE`oNxjFF#yj0 z1e^fI2i-9Q(8&Vs@%;Dq2on+Z{QuwM00sm0@b~}!1OzrH#hk+X+Tt}E6bb+U_yPbi z0M7pcvI;2tA|wYPA^Z*x0300&EGqR875n@A_WS?(`uvdQq*oFTSt1&p=b-!h{Qv;{ z0st`p&i?}PGCBeX39IA)-~tZg`v#`;6$Tz2`uqI%`ThF(|NnA-^wR?L!uSAshx_~g z0000205Jg0{{tif814-hz}E2g`1#%M`@GEN)${-9=jr|Z1Nim(?*qH%B39iMC&AR2 z>ggNf+PVUWW##cF5^jI~{P}h24a1+`jKBZ?zJB$|uU|aB82|la`WF`1`0wBUe?VZ- zRnf8uXahh1u`n?Z4sYX?@pO{;x_8g;0tl$# z2T+})81L`j|Nel$KOpz_zrTNegN!(Tli}h6pb7teeq#K~3=Aa(fB<4-V9 d!wLWb3;+YKCC*ol*cJc)002ovPDHLkV1loTFLeL_ diff --git a/interface/ispconfig/interface/themes/default/icons/flags/kz.png b/interface/ispconfig/interface/themes/default/icons/flags/kz.png deleted file mode 100644 index 45a8c887424cff6eb0471f5a1535139b965e241e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmV-u0+;=XP)g01!ZoKn?Fz`<^k#?O_Q1 z`=8<8e}=z6_5c2{{QvRuAM+0emcRf01JR%V|9}7gKjGLHfB<4)U|@L0AiL;yFw=jq zasNSbGXHKG{NMlfpWxpAK41Q^gEaj6FV4=$@arEy05LIu!2gi{Gync$`1$|;-~a#q z|NCw7f0xa__4fbPn*ZDO{onuJ|3JnA^#F|o2q31v4F4ql-&_7K9cVD)|KCjiesKSP ztM&iLe}uy71TZ z|DRv){|H?Bqoe!x=x?wkfBu3(0w91`fMN3Vzue;gQUCt^|MZVr;{RRU{|DCmOS=6} z@%2BU5C8a_|1a6~&;1YB8$b;J0mKBvKpP_e^#OhS_CN2(f86)~DtrE)Yx94t!v9OT z|MTDe69TJd_zQH>zdry01PrBrQvYt3|7!q-C@@&>{!_XBPnqZ6E6@K61pYml`M2uu ze+NdW22lI}1Q5_kK)3wPV4bt}e=;a?{xkdrMUmL?|7pP3c>kYY0b~&4U$AjN34j1% zWLW#P{SRLy(>r)v0s|Y${(}_LK*N79FfcIy1Q-CnX{(%t#68R664G@6GIJN-*24NrwB3rW+v!ydOp^Ef6{n_)(btIFVjHa=pdp6)} zz^!@$h^2tpKUmc4)64h&|Ni?2LVth#{QKwk-@kwU{{Q=j;qSk{fBpc`pWlD@C4}l3 zHUR_xF#yj01d}3g9TFqw{rUX<|NZ>{`TG464+L38761SLpR(uO=J){s0Q&s>`~3bJ z6bIb^kphT`;m^O{e;I!LWBmP>@yDNkj7*H>@iN-VTtHNrD96Ue^ySz8pMMxZ=pRTg zKmaiT)&Bj@@b3@E4ZnZ>72sjw}n?8s2>T{qV)lKMV{%|NQ?241(YPff@h;hz00Cp!a_N2HF7% zr}y9gR8D)C;wJ_Sx5=xYz5MWpi4mv-=yjk&KmiL7K#aZ&_9^w5@1DH=3l15e)xUl~ z-0=7B?|)4HL4sh3f5LL21siGr0*GY=!$H*K#ZR;BJ~dv8zS`wDeeIR3;>1y|KC3hK=RLTAp0Mf zWcc&@%EC-|_DIyI;S5 zZoa(f#*3@};Q;9GfBygi2&4h78pxV*WHQhn|Nk-k{`>pa-{0-~I{v`b{|EZ(4?qC1 zz%@X;G0|`0)6dV-R;K{9rJ5v|%9;KB_nVP{8R7~c2@pVx*BKb3t8)H6dH@UxP=NgY z{qNULVEFv`^^@@rIK+N~gX`}f7I~!;+fM-m5DPFa{(t+%C?E(7W+q^;{`t)a3di3} zzd^yz010JK%>4cT^&8LzfB<5=h#HaqkRlk)Wq^@D01#jR5K~0vg#SK#00000NkvXX Hu0mjf%Ubyh diff --git a/interface/ispconfig/interface/themes/default/icons/flags/lc.png b/interface/ispconfig/interface/themes/default/icons/flags/lc.png deleted file mode 100644 index a47d065541b0d998da832e1981b479097a9b36aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 520 zcmV+j0{8uiP)#-NSZgwz{Qh@GSmETWyIzrrS!pkkqDDw`CEYY|A1Dxfxke?UP9EWUlaZ{K@! zXYTRdfWyFioqIm+xW_M=V(hYvbO?~5ZHkEt37xh?rY1@PqM%`P+i2w@_wXJJO#nzA zheNt~+w1B3H|fqGMx=x!lms6SMy;uqQ4R``NH&49%B_cditsDHI6DHXLNubec}E0~ zb8dy|txA`rTkZMN{rCM3FV`MqlfuwZrz$X1)+?ntF|UvTkD3M?FxSaem74ag}Vzy5sA+`s~GjvDl6>(E?=UGu{=w?r5#MJIwhn?GrT#s zeRSo}v&#TUmcjL&mxEF>2%EIxN+SI=O=izlM$T5JH;yv-C%^zTfK|9CLa`qJ0000< KMNUMnLSTZ|5$YcR diff --git a/interface/ispconfig/interface/themes/default/icons/flags/li.png b/interface/ispconfig/interface/themes/default/icons/flags/li.png deleted file mode 100644 index 6469909c013eb9b752ca001694620a229f5792c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmV+!0_OdRP)sI{|q~>>TZ2$qp!tjsj_dmuxH+6SkQv+K1^Dpafp!@&+{r#8W&u@@le*a|z zk$)I|{ss9HAb?mjKkZQc#wYOgBhb-*|NQ;?=l9<~e?U(E{r5MB3DgSYf*4|4g1Z=I z0R#}sfv@v<-|;cLeDMG8um8XQ{Qv#?|LOa4L zz5|hefaLFgf557NB#8Tm`R|`M3=9AP!~zPVKOloaN+E`UP5lQo8*B+s^WVQre?jpA z5I`*dz#16EB$cmd~05Jg0{{#R40Cvt10RRAw z`u+d`{`)-+^5ON`yb$y0|Ni^@{rvm=`~3g>{0I^G8ZGb(2;2e)q~Yi9|KETAVEFqN zi2na)xwe&yo%hS1uZ%yx{Q;WF%<}W+mp@!0-yWP|m)B$h2q2(_|NnsK|6hiGKudoE zUGn9{-`6*oEmQ72y~rUb^YQPmzn@?Idwh=T>wA{p3V#3shzY3p@87?_|NZ&@_cy~| zpmRZP`1kJ@JI^@8AFa{s9OeCZO+ts{j1?4b<=-Nd5zA z`2GL?FD{9%H@9*#{QvEce@o8hC9n7wpg7QIfB<3vS^!iHvfyK-U8V5ZH#le}4S|yXQB^Nt}W|`Q?5-JjKDn&hY;a$Df~n9-WqyG5z}b zHWMS`AAkU20!9tv|KD6JO#c`e|FbePFfi-*z4`Hxjg_16|9{rM|5*PsvHt$a@%k1I zzvO#v;hz8j#Q5o)BT__yf)$AVfxHBa6HpujodJ?%_y>%AV59*A7yy`5b5c`Z!JhyC N002ovPDHLkV1l?nIh6na diff --git a/interface/ispconfig/interface/themes/default/icons/flags/lr.png b/interface/ispconfig/interface/themes/default/icons/flags/lr.png deleted file mode 100644 index 89a5bc7e70711575c1ee3b83cc2be7f0e1fb29c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 466 zcmV;@0WJQCP)2Y|A4{o z-@kwT`t|eY&mTX2eEM}Kp+i!_T03wQQEla((gZiC0cs^;{c3|jAkj>009Kl@aN){ zC);;k0UG-E&);Xo*&wq)roznr3pD=Ezu&)DC1p;}S_BY4jKAN$W)>8Nm;toyKW@Ot z#Ps&Y4S)b*xg;zq)7SR<*)x!NAa?^@4{|ZkY%l|8FPQu15397y$%U%{0*LYZ>zAxx z8}J(slm+_X#f@tK0mO1iR9wET{^!#tU}GSb{Q3uSG}s1+e?a74b~(9Y%Qpf95aZY9 zPuWDo(ENa58%O|%pI^NU5I`*FB&GkLM&}>Ys6}P~0YHEO0B+J}4VS0Fk^lez07*qo IM6N<$g3a05u>b%7 diff --git a/interface/ispconfig/interface/themes/default/icons/flags/ls.png b/interface/ispconfig/interface/themes/default/icons/flags/ls.png deleted file mode 100644 index 33fdef101f74e38e2422bb85dc8a31bbf1da326b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 zcmV-)0*n2LP)NT^udI6UX~&u_xA`izWBNXkIq%g^6Y%Pu{8|3yZC zlYxl^Ab?nacHcU-^!@XD|Nj5|`r(zVwkHE4BV6^xC+~{3+xxCp=yQ1PA~B|JUd6PoU1p;PCnS`uh0!`Wt}y4#)fi z@&Nb%0tn=Xmv@c{N@*}KFh0M&kIP1>YRmQG4?lbdn);9N*SEXB6{h}Te)Ie9Zy;d! z#Q+chF#yj01pfa18Ye&*C_n-K{_XVnU82h1@caA!0{i;;`V*Y{7}WX#^!xhz{Qms? z{`>&^00Ic4fsvW@|G$6Ruf6C#{P_EiKfi$f`+Dz}{FL7;Z+`vz4fMjFe?Sd?fe5Gp zAb>y`UVr&E@!c&!7K){sO`Ozkh)melY+9 z5KGUl3lpbYV0iHf6xF}JF{n*t;A3C_dhHtn&^!?O1t$N2Nj?UE00RIWZBXJNY9>Gc O0000 zKY#!H`S<7dzuzGA_xCRl`Rmu;Um!M^l;`6=xPSp5fLIuQF#P%V7sv;y25A5(1xW+7 z{Q_w~Xakza@Pz>&fLMUe`uqRSpZ|Y=>VQIE8-4+ehiC(l5cdDyKm=3_5I`(zTN!l! z|Nj0Es0O49Xx6_!5M^MM5b`fj@gGk4KbtNx00a<=83P0Vn?HYFf{Xx4|Nr&tKga?w z11|FC_y0eCSvdcCFfafF5XlYnMRN&=-B{`>{W0U03nA0WvHB!TYz`r< y{$OAL2q4DW;E4VQBmbdt8IZ(*2pDGo0R{jiB6maa(%qQ=0000! diff --git a/interface/ispconfig/interface/themes/default/icons/flags/lu.png b/interface/ispconfig/interface/themes/default/icons/flags/lu.png deleted file mode 100644 index 4cabba98ae70837922beadc41453b5f848f03854..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 481 zcmV<70UrK|P)?-#?r-wgj45C|ZESQtLMVW?~Zs{a4) zALIXj41fOq2a1uNeOQW%&E= z|DQh$fB%40fEE4z10q3;-;ClCKpOx8h=su~@}N>;ErcnO|V^hXG82+5i4Q+5aFU0|N&GK!5=N X;lz1sunOP500000NkvXXu0mjf*7env diff --git a/interface/ispconfig/interface/themes/default/icons/flags/lv.png b/interface/ispconfig/interface/themes/default/icons/flags/lv.png deleted file mode 100644 index 49b69981085ff54568907cd51a56a1e5d8b01ada..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 465 zcmV;?0WSWDP)TuF);jrk;v#5jAUY900)zv`N|Ns31p}&9s{rUUv@1OsF{`>=? z-@pHYNg(_0@82^wZ2|}&78a1v|Gz$Y3Q`J0Kshi8lm?N%fQ(=Ne*FS+xn*U6mIDM3 z3(!4({{8=rtQsf{G!?8Agn$gN2Dab7KQS->1Q6rPlP7uPKoY|E^ZWmwzrbJwx)~sVSb)*-|Mwp*NlCCVfB*i0>4ZfB zFhYR-gakS;`Tzomv6O+~6D%TsAw}vh)M$o8KMw-~K!5=Nd?C`~#DJkl4QvBtQTT<=hAW5C&pkLRXaMS_oX@ePCublh%7`S0>4^BHJ{X z&jSWU1bzAnAdrUt4F8|~c=q?-U!ZD;3Wy>I`UNEa{sJFg8g4-`_wR00IcC z0c`wlknw+DNZ2$-$7NDlT|NlUo0ap!i1F~k2r~my1Y5)izkcK~h z{{rRU9);Krw*=%9uq;py&^Z7B1lI8X4~o-~jQ<6)85pKOHYf~%iU9%$qyZ=)&LIKv z04P8aRsoF!DgoLL3cdee4gVMb0*H~J5hWs_B!uw~i3^Ex1_pot0|0+0kn{N-xWWJc N002ovPDHLkV1lkWn<4-J diff --git a/interface/ispconfig/interface/themes/default/icons/flags/ma.png b/interface/ispconfig/interface/themes/default/icons/flags/ma.png deleted file mode 100644 index f386770280b92a96a02b13032e056c3adfebfa18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmV;h0Z;ykP)@|4`Xj5kLT%`al?B=W5I`(ov;U*0{`Ko0*gOW1x?dnY zU=0kve*-lD1P}`lGXhluRs8wG@Eb_}{{H{>S-s!?{`@vR^^5K2FR(pO4M5WY0*DFZ zqCZG(`2G8?)UU4`zrJw%x*-cw4MBhY08Ix7Ah47E{sH^x7s!U+ztwL3`tbkv-#@=J zum1jzWCJ7ENdN%^b`n?!@|4`Xj5kLT%`al?B=W5I`(ov;U*021*0XgD3^5{teN< z@cTDV13&<=05Ky_HBiN$KMcQtBo?#b8i1w)1P}`YD=UMn?0*)P|9^oV_=9jUlG7n1 zgOt?2g9iZui1GF7*Fr)<|ABx33~>V{CZ_AxuLA@S%fEmBAbhajaRP`eP%%INfiyrk z1T_G`pFe*90tjjYTn_{=GBPrt03a7C3lKmc4KH52_yY$2zyM+rgbiXafFO_o^aD@| aAix0StzUbk+v2SN0000M*00(~<{@!wBU}0eR!0_)M!#^$%c|o1wA4mpD0t66HlA)zv9Z3HD2a;wKuKxf3 zKLhV?#{Ykr|9@us&njQ==l`GI|Ns8^_xsQFIm-b82&94GKf}}4zyJRI4@Cd}JZ511 zyk#BtzrVk|eZKww|NG~I-~WGu5Q~)bF9rsH0Ad2#1T-6>`p@704FCVWdiqyE_S>%? zzn?t&`v3p0|G$6zgQ7n`R{;bN6VP4%{xkdmsRoGvjXbc2Q*ib#i+$e?>}LD_@7KRy zzyJOE_4n5=pu>QE00u!g^X8F}1){Re7)$pq2>GzRP>hz5WF0{Q`{ z7%1`&WXbP;Kox)fFb41M1d2p!76A1_RfAN3oCFX+Kn)0M$tdvjY9_8yH^9QVjn@nfZP*{rmI(|3?O9b~d@cVAX$tK?&3V z5I~F!3@gDg2t{v?r~d;6^$&1NgV7;ZP#i-L5C8-i0C2iwRaxXp%>V!Z07*qoM6N<$ Eg62#MXaE2J diff --git a/interface/ispconfig/interface/themes/default/icons/flags/me.png b/interface/ispconfig/interface/themes/default/icons/flags/me.png deleted file mode 100644 index ac7253558ab939481a85cc06dcc4d73503afb9f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448 zcmV;x0YCnUP)l$FJ^m&#tWvBA4C(n)b76qu^ z3TjKJi*u=MzAs;^(tHqT@6cZ|8AHxz+0T%zR}I9mkc`8faCz48MN^H2?$<3((yN)j;^`52o304M1f80R+|X9}Iwu*X+N)@cjDs2c+lU z?_dAGBv9wyKfl@e{~Tjr001}1@4rADVDj%Tpgtwu-=}^u z00a=o2DtG+^6#HtKYxRyQB?o^{pa7Gzs!FaUNHa!5W-0i5^f%h1nT_t=O0kRUm#-m z!vGLKP#fTS#5u+P{rv~@0nkXGhChFS;q~V)5d8o97pUPE13&;VK7Rc89~k`k^9M+( vx2Q8b0Y@nl1JFDW`UNKcfk_?)fB*vkB(P&2-J7g<00000NkvXXu0mjfGX%sy diff --git a/interface/ispconfig/interface/themes/default/icons/flags/mh.png b/interface/ispconfig/interface/themes/default/icons/flags/mh.png deleted file mode 100644 index fb523a8c39d40401b9abcfb144a73cbb2d76b286..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 zcmV-)0*n2LP)qpJCu1p{#SASZ=3QjbPhlO05Jg0{{#T~{M_a8tGL(@4F<^6===Qr`uzX+`vVjI z>RSuFND|!tCprH%UjG&-`Tqfgkh}r_F#yj01OWa1_W1j+!`}P+|NQ*@_xS<*{r*D) z#ao8o+xY#_%t@QS?0~yfBW+Wj{_zyJQv%*f2f%)|)v=^uaq0&4j6{l|Ybrbh`TZ`2ITPyN!~wBya;Q+wXO z|N8qsP{n^H7N*~zApZOB??0dhfB*t%@KJoPW~Y4ZyXB%oU++J<@%!g5F#%3te)iws z==lAQ0jwGr+CT&T00a=DyL0x5XB;1||6pKv0FF^K^bd&vjBEyg00RK!=O6aq+V@KU O0000p}y_ZxVsQQo9l8qD!tQ%&&F2zEbEdU-v3mY$p-gb*;wwp?LFG<9EeNpZLj7Q z>zeacpNZ>XJG@0bcmXcALo;Ad(L@#C92p0~G#aM!FfF0T7^YIJVVFaIl|0gRpSyF_ z@0dgJ{oT}qqUk#4;-a-U9Fej5EJ`tIE9)E!qDfL@GEq>vEDI}q@P8EmenIHxu!*Cc zLK?@%1j7u0A`mPlm`kyT;5daWs;EH!+LV0IWO0Zyj4+sHxRqia#e9ki#cu?^6YQn9 zOfZ8&4uw%r9nR_}FG?tJ1sBpnAsdGMh7pA$Mlm3ABvgz9aj&GrxaT8{1^YB+UzPEM zQQ5*0;(QnblJRNh>E*%16wccXl466KPu9Lk=M%$}%9~Z3xs9na6KbZ+^U;AoQ+JVg=BO3kgY$Vuu?iP6r(sQV=EH;Iwf|hcN2Nd zPl_EfW;$kS3zh=H4ojC&X!7Bd!`~OdX{VxLp z5dC3f{KL%rhe`hT|Cm4jfB*jf2Sk3^vlaWpqpU2@27mx!VE|eEAE^2d5dHlPWd8sE>;L~hU=6?i|N8~f1J=Os z`!`SnKmdWv|I6_A575egAcQa*n+Bj_fB<3vdK75(@4vtQ{Do`yh0yRHtQw*LD9^wE z5I`Uef5B$|`u7W{2T22%M6!Vq>?D8y0%`dD|M#!IAl1MB{`!Yz!@u8fUYwuxex*z#9GlH2{4I3~mO10Ac~g+V6jVB)KI)-uUyEi4o|t-;5vX%A}^sE-TCS?;peW@7xO)zGwLT z>;Lb2Aa%cf{|B;v0lB{!Wo3aj00dxJ4sHN|VGstA{YR$4C2D_2_!cBcz(8l;%*ju; z_5-pDt^fjRVEX=(;rPk#zkV}({q}dw+K<0~Gco-B2UY|%8?FIpIzRw{{P+Lo&pY>j zzJB!i)2Bb*-v4F%#qjU=2Y>(qX<+*Ohe1*jY|LMVKOmiqU?UkIBoO`m3qe4|00G4K6*VFmu*EK13J3rK Z3;;9iRuWt9^;rM_002ovPDHLkV1h$@)rkNA diff --git a/interface/ispconfig/interface/themes/default/icons/flags/mn.png b/interface/ispconfig/interface/themes/default/icons/flags/mn.png deleted file mode 100644 index 9396355db45a8ee040c790782209868acaad4b85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 492 zcmV@{}>pU8D26lh`@M2^zAEy;6E4#hyVhJ1te8n&0xjw|I|OmAOC9q@qGTx`1kMs zKYtki{9$JJ&B6L7=Kt^CKt7QCvS|}Q0D(0y{Qoccl;O=^hIfA-|M~k7Bn3tPfBpOS z`}Y4|zknP@Sy`YB00G1VQttboLEtY##9yH3?>`J++5f+PL6rRiQNLgu1_potVgX{t z{eKx$|NOuHhk@zOpC3@OA=>```VZI207MK7009KDfg$woe}>=xgMa@Q`TZMV99$1f z=+7UZ=>P!)^22||KmS$!{Ac;a@cR$YT8L7JY6c`57{N{g2q3VN{s9Bw7X!l|paf9r z=TC&I7$7zP9Rm!dKY#u(FaQJ)NCWfVKmVWoW?%y` zm}dTA_#*kA1?Z>0QqoLZAnySq0pv->KTM2<4My5DUW>hHBSpkmCRUfavf4zkmMxWn=;={POe9 zpZ~vq|NHajABg<@_xGlmn*aic1*nOE;s2AbPk~B-;NSn>+$?|p{{I~>&N%tu*Drs5 zfBO0B*Z*HY)v`RYKsx~fhzW>+Cjb5S_s>6&>Le+qufKnBv&bF%YWVBlABO)w3uGC7 z{rLq%Ks`WL0R#{e(EPs)fB*akI^_5N|9=)g|N8#t9~WuY61}otf4Tqs`!(tD7m$X( zzkdG%X#fZyCZKPCW&?Et`7z=QS^~DI8Yx-=nhgK{7whGvYgWDg!B8&G1k~{7FHk81 zKmY(S0M7pd06qXVA~x>%?)v`v$?y7WENVL!I|c#<=Jn<;5-<%03=swpg4MkH|N9RH z59P$=0*D2u3CIB%01Ag+CC5rQSvY_G`T70NcNRvLcR${}{{9+hIZ*cRKadRo0R++j zv0Gk5I)>DQ+oULEUYSww-@{VeP#&z`*?j4i%tcfB<3v#u_k;CAlSmszIWE zes6rZ@!!9HKqG(r{Q)GE1e8GG4GeUkhF=T-0mR5q%E0gm7LmVTk@^EErhg$tKMw;y afB^u%K|axUkwLit0000IqP)p`2X)eQ1zd`|Kz0p8A$%R z`bTZnZKVTj3KfeK`2Ky*5B&e@&)?sFfZ#7s13&;VG5q=W=RZg_5SU54z5Mv&imk%` z|FW?#NF2HHZpKX|PKHOnfBpIO`|qDW|9~0*0*DFdzkh#$Hv9ux`j_+Xe->2}ZC)XM zHV0!dKPS0Ur}$Y}|Nr_6wBa96o`K;HKmdVl_zUt7(16dMgtTSeTz>rQ?Z?ko?mjsC zklD%d+V79-zd^=BZ2$-$7GT%`Z2%eY=kMmT9MVkp=Y%mFes6g9+4CZ|=Y~?>`*tz_ z9Sja7kOqJN0yzojravHW{k?SeQ|&okK5=fKkARLe6n%c?uEf?;0ubZ>f;9XA2p|@Q zU%!CHiwJW41sn7GB}e}J|9v$?qW1mmH(Bw2pdk4RbO%twKY##YWMEE2jz}>2 jgG53Y5Cqh~01#jRFwa04;J&RL00000NkvXXu0mjf4K^ZQ diff --git a/interface/ispconfig/interface/themes/default/icons/flags/mq.png b/interface/ispconfig/interface/themes/default/icons/flags/mq.png deleted file mode 100644 index 010143b3867f21e7791b8254e806b325c13b2895..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 655 zcmV;A0&x9_P)$g8u&g1qF5h0Q6aJN-{1Mbz`Ie0O|k$ z{sM@ZfzzR@(T$Ir&B098+eukMUeMl2+1^x^fq~&CAE%jZ{^O4ipMU-bgNM&P{`mQajg9%ivrm#DT>t+4XJGgP z5I`&pzyAFG^Do#{Ra%^vg_(hwneqG2-w+MozW@IH=Wj)-86P+6=Wo9l8G*Kb0|+3- z*{jc+=}JF+`H7W<>HmKQUT#*P1{)(8poaY?9|3*x^4(W97N$Rc|4EDS&R=&5Ab=SE z{{73y$Ox4F`Rgyx2o@H`|EK_{=f}^#%*+g|tSlctd;ka_mU(L~nd(ak@UpY9GCq0n z(2rN05Jg0{{a96b$W_S@ACL(Rxa}M z`G=gy|Nj54lTiQv|3YG^`}+MH7z}h_G^4TA+~V=RqI&{}iQ&&bpkF?J{dw&CQ*JI+ z5dlsHn4|vw{rBhJzZb8+p1k+fF;B_XE! z42<9q0s8Xa-+!garV_&3Uw`~!Vgv;%KmY+HvKbgYfiyF)F);jMVE6!x-Ip&{0DU4U p=>-f&1_my$6wo1$fFwYG0RX)13*@;vt7rfK002ovPDHLkV1lt{Hh%yB diff --git a/interface/ispconfig/interface/themes/default/icons/flags/mr.png b/interface/ispconfig/interface/themes/default/icons/flags/mr.png deleted file mode 100644 index 319546b100864f32c26f29b54b87fe1aee73af21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 569 zcmV-90>=G`P)rBb0vs`uywH-=91j zzd+y*NDt6q00G1Vbl+cwzkmM!`SbO+m+YTk|9<^u`R%^_m*bXSzgT|#{QE0P`4>nh zQ2ZZA13&;V0loO=-(MgHX#3gMzn3`u{`KzHucyC$Kl}CT<*&8wzt6n|ss8o%*Pp+C zfTjZk5DUl#p#T2<`NjV0^vyqym4EMy|26&E??3;3WoiC?{O#A4)4zWSfZPMI0U&@t z8bCe+8UPFj-d`E(e|zZv%GLeN@c(z$rC;+8f>rHtN0D&|BIS>OtI{AOC zx$tZGDUcCBkzc|7XAeyp!)#=hy@sHz%Z8Nmi!G71?uGb{rk^vkcEsO8W!D1Ad0T=%Vj%gtVfB*vk>3V2g53(}_00000NkvXX Hu0mjfpCtxQ diff --git a/interface/ispconfig/interface/themes/default/icons/flags/ms.png b/interface/ispconfig/interface/themes/default/icons/flags/ms.png deleted file mode 100644 index d4cbb433d8f9fe49f06585dc46ee15593e3e621c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 614 zcmV-s0-61ZP)w!6%f1G{My^>{rmp(`~Up={s8&+{Qm#<{R63-jRF8M0M7pe zp74|h+7SfEy9M#{{`U3;5)b(M0y+2j#`QMv`vWF8IQ;$o{QUp?{QmLR&;S7V0*Gk~ zkHv3!H5OU9Kb*Y(q-ELEH9vC;U*%N({+r?VuV26a{F4-VqagC^H&EN}zd$De1Q633 zj~FHafsLPJA96}RV-#A)X~v?X^MOAye@1K9u&05Jg0{{zeC zH7h(V@9+2F_Xpti2mAc}=j!&)<^S{h0sZ;_Q7ob~2($C-{v8Cq(%>lF*}4LV2^e-j zV}AbzqQAd@=ogUu2Vs2v^{02G<;{1(|2aQ(EV23Z2N=G800M{wXv^O}|A7VrH9+)$ z7=NG)mcRcxm)QV402KN07wDuv009Kl@CPU%A;t|Pff9c}I{*Fo2PXf3L>PYm|M&kd z6T{yxzy1Ri0|XEw14AS%MzNxQNDQDd27mwq0OfZ^Ej7^!+W-In07*qoM6N<$g6Gg9 AMF0Q* diff --git a/interface/ispconfig/interface/themes/default/icons/flags/mt.png b/interface/ispconfig/interface/themes/default/icons/flags/mt.png deleted file mode 100644 index 00af94871de66cd0fbf0ca8e46dc436d66e2f713..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmV;V0bBlwP)Io>l+&W2PtRx|M&0z2M_*#`0)SN z@BhDl{r~j~sG3n$7H9)N0I@K!uxMy#e*W?mp&AJO{R1fisrv=e1J=Os`!`SnKmf7) z1AD;K%nYO&458rnZ>;h=xCZfJy-Z2&4h30>ylo1|%C8 z!A=4QAQtS#|N9SD2R9xVP=6R000Ic%Boqz*|DhQF2dLpM!{5I^H2?v`f~*=Iag5B& z3^Fndyu3hzLFn&a2m+c75I`Us-n@D94+enNf~Z%o__l08i(?1?2rvLmwOi|Xk;8TX O0000wT1SlAdCl&Y)$gVg>5qW^#Y{{Qp$|KC6V{`~n5M8AIn z$$wxH$UeVm6F>m5>|$VWV&MJy|4IE<4N06-W9 zfN4+=|Nq*iiwn$Q2C&jbT&$=TD3oCSlHOGFpRx(;BY;>KBo9alsWSh04>T2o{{H<9 zq`@}){__Va_~#GM1}QP2gACgN0*LYNU!Z^U|NnpRpWzq7|3Cl#|Nj5~7gmyqN$LIj zQvdWzhA$B4g=Z%5I`U&fgJtk z_g|1x{{H;?U6oxK=&at?J**6@V8K5Oe}Dh~1#%?NbbtT?*#Hy-y7l+}Kff9N{$pgg z_WK6Ie}+7v0!uEdpa1{-Wc>4s0pu$NunhnK1op#kuysJ&8U8Z;`FH#0jm^LQ>Tv2E z__*)izhD3U{sq|pR0FmFAb=oF`osMFS8?ijP~d>v`s?4X6Tl#928Ghke_*>=zWoA* zI8ZS_0I~c5+3<%^Qj!Z4rNibE_6+kRtZU3J46>yw zfWS`r^B2emYGC;Nhw;yEHn21ZK^Q<1%m5k+3<-b$0%`dF7h*inus>j>Kov-;VIf zD*pWek$*v<0SxiK|NjEzfQkVEh>@X`f#DO--wX`DVCWAL;}4AS4@`0~00bBSj-y@M TF2~k{00000NkvXXu0mjf^ET$> diff --git a/interface/ispconfig/interface/themes/default/icons/flags/mx.png b/interface/ispconfig/interface/themes/default/icons/flags/mx.png deleted file mode 100644 index 5bc58ab3e3552b74d990d28a0f500e9eb6209dfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 574 zcmV-E0>S->P)LFc1LT4cKmY-iGBrkbGB7ay`}g

    Nzrc?B z!}RAj&|v@p#KiFL&)@$*g@6D2{reke@BjagZ=QH_|HA5tt#{7v1Ul>guV4Ru|Ni&u z_rKqNfHnXG5DUYvUm)ZE{sF26>H%tC6A=5t#K$G4Eg-G_A87rbKVS#^0WyF#00a;d z1Ca3#WHt~1jRI=eclPL04k1AU{avRH{sTG*Y{UOQAO!R;KmY+XFaVtnvEdic(+vNe zOr8IIc?-17*~$Z`|L?Eg|G`fB4^+g!01!YxCouq>54Pd=FQ6a({TC7tjr5F#2GXxz z|3N{=01TJ^fBykB00a<7!|#88#Ce2)8ovGh$;ikEv=>5x7)(s8a diff --git a/interface/ispconfig/interface/themes/default/icons/flags/my.png b/interface/ispconfig/interface/themes/default/icons/flags/my.png deleted file mode 100644 index 9034cbab2c02704b65fba6ecc4a7a1c1d053b6c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 571 zcmV-B0>u4^P)Z-xKO+5@Bcl`=5c~|G$6#Vc^TNX8-{JF#yj01a@w+002>mTdm0Dxpa1{C#)An)W@eTA0)PNwiNI_f1h_u_DTrb&+z}xv;{Wj zFGj0Cgf$G002ov JPDHLkV1gu%1+M@A diff --git a/interface/ispconfig/interface/themes/default/icons/flags/mz.png b/interface/ispconfig/interface/themes/default/icons/flags/mz.png deleted file mode 100644 index 76405e063d43f2f3b5b9cae4f76d9f1c73cea25b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 584 zcmV-O0=NB%P)d!0?ZO;SY>NM!#Sr3j;s^4&s;y01$=&U~zyG1R{bN8&$-J2AZUB z{O~2s*67}BSLujJh!l{(TM_&V!SLx<0I@JIFetqFAHVYHe9OP56#xDPD){#oDEIpx z82$bI>))?me}4fPvfQ#j8vp_bq~ZU+|9p&pvv&RstuJJil>ZL~|9}umff)b({bONa zxh{1bAb?oDF)-ZV`m5;k=ljw>l6BpeezVN}{rlPPKR~N~|N8X{NCKH4>bI<%?516t z00M{!=o3jd#=5m)yzyNB8Nca#eH--U&Fe3(f#?+keR}os(@P+F`}Hl*IRF8~0t}ng zTmN>%etWlrgX7)b6MtD}{$cp_8-#v?7>pqD50GU3{f7;x0U&@Fe=;yIS7rUbaG!zu z&%cJ+j{>}Z{{3SByBg&1|Nj_3~Dr2e;Gh>zZrofD5`!lF#Z7{ z2B7#~hM#}`y~Cfd!0!j9&~4{}>qlfDw=_GI6Spo7yiaSL1(R34j0qF#yj00RRApetkm@ z3-<^I`04Bn_xS?+{Qmv@{`~y?GBy}bOB@O2-v*J4|MK+z`}_2=vH}QbDjOT??*y+^ z9PHma=D0k1DE9l$Z%$6;=mbqObq>D1hX4By|NHgp|L;GHwRPtz;{gH)sDXiz;U6Qz zZ)V2dKoY20MNK$ASA+NcQ;z)f|Igq2|MmO7w9@DL!aL%O?v>U60R+_W>(dw3rWqbw zY+vs`7YYhj_p}$}TRP+a`c40T|N0L!J1pWwjPJac>kgmX!|;RwAb@}x{`~&)@5xJE z5fO>bZXLnj?>WlS|KEEGbn$;~p|4%Vx0QJ+&gI^Ic|%b^5f~5v0R*z)@87>RPSSB9 z(mdPNGA>^D|K~4|Gn`ysXGCuKcCvq8=a*k!egj?m?>8{m00Ic8fvd1cUx@iTXM5HE z^H)FyGjo2eEq-FG+;YA1)Puvn7=8hj{`vO@7;-=x00M~R?)3!82NxK-n*V?K1yZeJ z{HiGaByR2;1J+usHUNMy48Q{FH!M8N)Pwp9Y)wTFo81A^+}-HTA|tp~ zO4-IyLWKVGUAVv#KrFzpU^vb8&*4vW%&*_Sfp-5+Oa#jR{(FIy5oqwQKVTa`BqPut z3=9AP#KLU;d%N^MnR|>Uj{MoN{TEQv&!4|iQhqnS=35v13ux)DKYxDz{qyJVA7#|2T diff --git a/interface/ispconfig/interface/themes/default/icons/flags/ne.png b/interface/ispconfig/interface/themes/default/icons/flags/ne.png deleted file mode 100644 index d85f424f38da0678471ef4b3dc697675118bc7e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmV+!0_OdRP)pTI(!tjlO;rIXl@1HV&)cpmDGW-GR z`3+L^2aNvy`v2$G|KGnEMPz|W00M~d>&=s#l8OvKbwEpiHvESG2>tK>|GyyO9|$ut zvpzk42q1u17-V!9I61+pfvQ08|BZwH@16Yr=jVTUlmA*S|6zcEk@1g`6+i&7`~&$E zYA%%V^7j8zTmS$3{hyirzos*?2B2bq00L=%yMh7Y5+V8jy0-s+|NJkm_8$o_f}Hjb zAb?n|yt|^zto-ZmuYW+t0)q+&<<KJ>BgrQT zRQ>1Q-#;J~AoS`6pHRCwBA zU~p!DquG0BzkdJv^XJbWKYo1u_VxSs@1MSW+P$@#L70Jomw|zm0SEvBhy{qNbE|>m zzkmO1v}^=;1(+C_zx@3C{m*wPUMbGM98Q`}5v}3B|NZ&>_xGmUO#lG|(!jv*|H=EO zfB*gc{`33)|Nj{n|Mza|{r>BFYe?(AfB!%K_3?Y%L>Z^l>!7{V2qIffI$#e zz5f4~?wt{_jNwA=k=tvV8m;04hxH1ClNsp|jaD0d_yUND;Sa;#|9^ps{`~n3bQJ?5 z!?D}Pp1*tk?A@~oJ0>vvX8@W7)C|%C)&LMdARGSt{R`y$`S<5P0|@TEy!-p_?>~S2 z1lj|1A`hhCuT1`^U1^@yK06yzfAV)~#?EnA(07*qoM6N<$f^cITh5!Hn diff --git a/interface/ispconfig/interface/themes/default/icons/flags/ng.png b/interface/ispconfig/interface/themes/default/icons/flags/ng.png deleted file mode 100644 index 3eea2e020756c41abf81f765659a864c174f89db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 482 zcmV<80UiE{P)E-@kt#fq(zr{dlL|rVbPb$^K$sU||3VAQpx%4ArjH z5b1ya|A`BUvomopF#HDspdkBi_LzW}KMcQr|NHa%@9#}BHvt3?3s4hK`pMU)fB*dj z0+88E|KR{Ac>Ck+U;lpn{`Xs!M;2%gKmf4-G0FZ zKmdWv|I6_A&;LJv{(%shYM_N64Szv401;3FKmf4-Jp?oxsQb@fum%PU8~*%)I0>i# zs2CuCKpOsn%?64Bg>X9QKhy?*00Lh)xZD#`v33$e!wuw~|G$AI0?h>~ z1_&UqlR!#;Ll9OQ{s1-n2ZahyF+c#Z0Amdp#**BUAaDHn%gD$G3dPzV3};X@Gl13bFaQJ? Y0MmSSAW;3b&Hw-a07*qoM6N<$g7#LQDb&XuwlP!fzJKM z`1`}(|Np-K;|B=>MS!;cWf13KY+LvSAb?md?)rCHn)&`aU^p;VI>1V00D#b-){yc34R8!1Sqb680000@|4`Xj5kLTv#?55wQzKoX38|NjLffBpXj6#2y{D-E;(Ab?mHL=FGT z$TP6>fK>na1GWK({(upf0nrSU5*Gz(00%w4e}91F-@gjtJbOE500a;V!?RECzy5mt@dro_q~YJM-#~SLe}OeX zNT7y4|NilCvNABd0|+1%hF>6clER!2lYo}|1|zVkK=SXOfB*mf{rC6ZKVbL)odgg- vjKFAPVE6?_e~=h|kVO7~qZmRm0R$KTYszPUy89K;00000NkvXXu0mjfB$dbi diff --git a/interface/ispconfig/interface/themes/default/icons/flags/no.png b/interface/ispconfig/interface/themes/default/icons/flags/no.png deleted file mode 100644 index 160b6b5b79db15e623fa55e5774e5d160b933180..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmV+b0{{JqP)O=a{vExMP2%`MCSoB^FIcLe_%lf;|~%E5I`(IQNh}3Ao>6Q|DFUXMn*>AqQd`w z|1kXd^B;tM|Njjl{{hM0zwd6?1Q0+hV1xeud-4=Wy?p-%sO`^#2S61Jzk!N?s)6X& zzhA%p|N6}=D+{y%Ab`Lc{sL9~1=0UN4*CD*7s%9KAf+JHKs~=eB-8KTKvw|-5R1&; zzd&a|ob(5%^Z$Q=wHy9p13+aOpFRNu5F>N&`Tk_-7w>=n{RejQzkfh&Kn{rf10?_b z{tFTZibx5v&dxav5I~H7|Ney-|DWN1$%1FyagzUW0464;_wU~W1Q5$TW@eGxtUvee z3vAf*8|igK9~@*rr66bh|NrkNM8z+V zAV?>O@ek;bKfu6d00KAO>U2WB)$@6+CBT{3ok>^7H@y{~6FRKmalQ{r8#S z4^Xx6Je&%q%J2@E@iKAb=Rv<(vO+e^|@#56B5{*~0Mg z>UitA{$OPI`~Tk`F#7!u z%=q{3H<BYX7n!%ts-g52=?&#%8AHvnDo=g*(t zU{@(f3Lcro01!Y-3_uV4{%5PNloM>zp5gQNALI8Qf4=|z|KsPsAHV+n`1$wy&wt;4 zfzU5-=mP{0FqD1)U3&iJ)0b~Q-+l7x$B&=CVSxxV`w!S3U{3%6(9;Y60R+_W0~jFx z85t(6Ir{$dcL`zMKcF!E2U7}WK$QOlX#fZyMg|5;)aZo7D4hMD0TloQ7ytwk}@P)zKX@%&%DST%gMqDF&nJ<9}^SM9e)7=i1G97Xij+!pc8>s z0}TKw06GH{9{>J;c@WiqflO8wrXNp!0t65X1H*raF>uuoM}q1_&UQ zzyE+PV}l7nR6|1@Xe}f}K_mmn5Fh~%KtLN9K+(a>4Du5*FzA2|{m;zE0Q4slD+}03 zKxJTefLQ+k0*D1@+|Oq}Kt_TL2e}yHXa<;L{(_vY&wh05Jg0 z{{*4}t^?F62l4F%@9_Wk_yrLV`1}4n_xiEzG57obO$p>A_3H5V5SZl@9UBk;0Q>>~ zF#yj00jE58tx;oDUfVAO7ZA^g)(IQ}Y8G-;ZB^s|2r!a55}@Ef&J{K=uDyPxdE3 z4FCZEF#yj011R$m=m{0X((d>7`QGgNy~*X%==~K4{m|+BO$p;F|LeE!5zX@o6aMwK z|0Cnry8?)1@m-dDW`RF^3@85Z{`vj)H~*iTuYX^D_V?HC|LG63e*OOQ`}ZH9+h%{4 zR^kLX2_S%&fc^l6#;?EsK&pTL{q^hL&)-1T|AVLlN&WsC!*d@f`}fa3pay^dVgYLS z^XKpHUw?lCNw6Z2x?f-t$o}(Zg7`(je_wy{{yg~C5U2qlfPfml0Rvc4oChck)CmlD zkWL^2sNoMV9{$c|wex0wa`2z{-@pGE82$nT5F-OaFayIEq`3SAj@n=l%a5DE9w9oI(Q6o;?Ey zAdrT?A3yTg*!;YE_t&FGSk*xQBO~LVKYsuMhzTgoEGG70+cq{OrGLMF<5CR)KqmnN z5F^kJDrIFqfoA{t^Z)mszkh!J|NR@N^WQHZ-f!>?ZqK&!y&{zFIzP0wn(b{R37FH0BS}Z;-(ZzkW0R z`o;JgO8$qifBy!003d+C8bA*C^$+NzU%!${e*gOW>-S%fvmgwhvw&=%Tb23#oNZ?S z2p~`>{R0^fayL*XP!U2MkOb-c1#;`ZzkmMzW%$Pc5I_(c{;*0)g6#S8SB49$^)FDx zACSQydx0wd{{073{+Hno13&;Vu4Mp{AoLGRCWbOF`~tJSfrb9TxDaUu27mwq0KDvZ UcsT?Vy#N3J07*qoM6N<$f`X&bC;$Ke diff --git a/interface/ispconfig/interface/themes/default/icons/flags/pa.png b/interface/ispconfig/interface/themes/default/icons/flags/pa.png deleted file mode 100644 index 9b2ee9a780955566cc7dc2f59ce175f32d3731a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 519 zcmV+i0{H!jP)|lVPPN>g8sl5Km-s#EI@faK0YA%?%RKmGG2!N|AD;!zX}Teef|3X z_wWCI{=muCn>GOi5DUcMXP^GBIsf;|&;M~|Oj3M||NsC0d;h_|&!7JP`u*?sum8V( z0aY`}$^xwd2q2IKptK|}gRT_Am!FIf)j$AI2PS_*H2ec11_potVu8EfUYUvEKf`}G z`1lE^`X5*+Sm$r%-@k!200a<=Rv$}~=bu-f|Ns5_|IfewfBrH6Nrpdvs+^pde*a>f6qSrfAZn~Z?Fa+2||AuS*t4lqXH%-ra!^K00G3r z@ax~7e+)2nAoSxWko^y??$?YNza~t8coi7j009Kl08{<<|1U847wF+XP}P60U;n*# z@9*{N{$9Nb{(u|?WHSN*&{SqkP0pSkP;|=6L&63i zfEXEE-vV95@Z%rDuRkCLl>P7efnPxL{(%8d!yj-G00Mvj0{}mHT?%@XEt>!U002ov JPDHLkV1lK4=}rIu diff --git a/interface/ispconfig/interface/themes/default/icons/flags/pe.png b/interface/ispconfig/interface/themes/default/icons/flags/pe.png deleted file mode 100644 index 62a04977fb2b29b96d01ffef3b88b6bf2ff05862..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 397 zcmV;80doF{P)@|A6@UbB2E)`X3x9D*gjYK@dOyv49j-R|ARv|Nb!om5Pi12buAo@&A8j1_q}8 z|NqCt{Qv#?|DQiV^2?@8009Kn!0`Y7lcx-S{{qo}h;n3b`}Y4|zksS4Wo3aj00a;V z*zEsM)xUqEs|Es~YOn@|-@kzx00M{wh#7&Zfj0j6!|?mhe@uX+0cadR0D+zK=P$&S z1T_5l12i2VfWS`r`v>f&U-&gJf}I2qKwu{UjsNuvF#Z0+ASnqp<}V}$85tQ7(W#^a2}2+PDh3E3#;-`R r2#VqJ=b;e{^dbb<+Crtk03g5s0zF}bJ8sS=00000NkvXXu0mjfKVzU% diff --git a/interface/ispconfig/interface/themes/default/icons/flags/pf.png b/interface/ispconfig/interface/themes/default/icons/flags/pf.png deleted file mode 100644 index 771a0f652254b4e891fc73910aab38967864da54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 498 zcmV3lobsI zohi_A`bB&J!~)dH$ngL7lczwX3_#UDxxarw>LBRX?|;94{rmL`$Yzn1{l&ll5I~Ht zU%nI;6$RPw9|VBf|1(_vbYnFmA3K-0+yDOt{~_StKSoBzkDopP1Q63dnCt(82%zd$ zpFb}6I_2!oo##J&nDhVtbEpQW0tSEpVuGrMivIupee<8UpWZS`Uj1hH_v_am-&g;K z1CTfW0R#{WvT7jw$rQ2Wy6P|4+kZd)xq2}(*g=aGrk)Yxu73al#Db(Bq?4D0-N;b? z5G()RfB&pB<@s4TkY)e;`2!F@EcYcO{->q=ymt>64xqsK^^5b@FIO-F$h{9?`~e2* zUv?FhqZcm%1P~}#|Nj2NBq_=8`#0mCzd$+0-@loGnqiRuWPl>)F9-k?0|XG`aR!E8 ou!#JF#Q1|6-w+1S#{dBa0Kx%7Vg$%BF8}}l07*qoM6N<$g2}Akn*aa+ diff --git a/interface/ispconfig/interface/themes/default/icons/flags/pg.png b/interface/ispconfig/interface/themes/default/icons/flags/pg.png deleted file mode 100644 index 10d6233496c10e52ead975c5a504459fad68ffb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 593 zcmV-X0Hv=@BjaQ|F{1AU+wpQ{$Kys{`!CTH>0fVKL!SX0Ad1a`1cQJ=-<7ptZmH9SAnX3 z{Q_yQ`~BbL*ME+m|K)!Dcl`DLKS&U$0U&@t8vg$M`{&P}#F!W*N5{%vzvln`{r&f^ z{||ospYrSf)?fc0{rZ3A*Z(w-2B2bq00L=XVPVP4%$zZO`i8aZ($dmav$E#>{B`Z@ zum6{R{h$5&|A}A!9e(}a_zUO_pbY>4IGm#s06-9cg3a4XeYH!D;D>_*`V5R3;NTtr z%*@^Mq=>M$LXVh`5jChqDeaf800L?F_U+sH_3M8E<^KOyQ&ao$p diff --git a/interface/ispconfig/interface/themes/default/icons/flags/ph.png b/interface/ispconfig/interface/themes/default/icons/flags/ph.png deleted file mode 100644 index b89e15935d9daf25173f89a36d8111824fda5db5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 538 zcmV+#0_FXQP)N~0_Y@w0Al+04@f;`V3_{@|8#9F=K6XQ9UY*azdwKd1Cc)=8bAo50U&@_7#Kb? zFg*PK|H1$NTnr5Nxw#FRn^&xvtbK0f`#-;cuKxpc)t_H~fDExeq6ZmH0|XFI1NZ;` zGXMXp{AUnj_^>}zDz4B$`$1}#7U0X2MOU=aELU!7sY=Kr&1{QvMCSsj$|2dLpM12Fg)7ytqY zsKMy}yX6c^FZ@4woIyZ63`(G)I*8l(j07*qoM6N<$f~Z~XumAu6 diff --git a/interface/ispconfig/interface/themes/default/icons/flags/pk.png b/interface/ispconfig/interface/themes/default/icons/flags/pk.png deleted file mode 100644 index e9df70ca4d63a979e6bcea2399263c081ce5eaeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 569 zcmV-90>=G`P)`{xe>ko^7oADI06=l8$gn`UeR2p|@S@&Et-|M&0Ts{jIsi2(+HrUEqpC9EW^)CAOaJl^^9-%lBC8BHP081)#ChQGgo zHUI<=3(zGH+B`^Tu)Z%{q{PpYS&%;j+KluCr=pK*_e;5D)h=t+bKO_wx|Lu6N(?HnJ zN6`lu;-7zgR^V0GaA(7wCwqWF2h;!%KrH_l5Kj8_?>EpHKuhXR);;uSzaAK9KY#yZW@T0p zQ2G1+FVF^n0AhUp{`o&J`0?k5YKbbt8;l4>j(9ExfB*vkhsr>Vq>*li00000NkvXX Hu0mjfu=^7c diff --git a/interface/ispconfig/interface/themes/default/icons/flags/pl.png b/interface/ispconfig/interface/themes/default/icons/flags/pl.png deleted file mode 100644 index d413d010b5b097c4e0a4604eba86dad79567ed16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 374 zcmV-+0g3*JP)Ab?mv3iQ8Nu5A{|6C_|Nk>HFfjc`0biay0|+1% z2B@O{$c+Ek03##gzdwHf0*Hl3)etG5lK=vU1?W~rxN0!OqXDP`Ab?mH`1u+7`u;zA z_W#cxhChG)!_n{G|9=A+zrl>(AX#bYe+w4^1Q6Is4VEzI_51&? zUm!LT$@u9L&^Z7B1a=Zw2xL66B2?87%l|Mi00a<712fnG3~)u5+Wr7F{AKw27w8;- z00L=X`u&GNQW9*;Uxq&*os3{386YGO{rw9;K*az7#P}5)xp2gQ%0-g`0)PMm0MPYZ UsK>Njp#T5?07*qoM6N<$g4HXSwg3PC diff --git a/interface/ispconfig/interface/themes/default/icons/flags/pm.png b/interface/ispconfig/interface/themes/default/icons/flags/pm.png deleted file mode 100644 index ba91d2c7a0de26e554979f6351d42a1a4e22de3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 689 zcmV;i0#5yjP)#D@XkmAv!xDMMW8-mEZ&mK%|%B2@pa*J{pUD?(_ahBqlG}*TVt; zF#yj00{;H~{{a8``T70x^5Ww5-{JLFN2dS#-{Io#@$TjE?&8zZ_V@JO>E`A8`2YX_ z`~rx{;oS`3$G61pUY_{!-0$E2{{CbX;QPSJ^3BEStfg-V`n;-q6+;t+Xyw zOy)sS^8$#8OF-b~@87@v{bTs||L?z_Zq~=&zGIaZd&b4_{m<{;|Ns5^`sL5xKflEU zUjXHSP67x3F#yj01nBVe84eEr00I90|NZ{}FelkBB-0BC^O2xB85HWz)f)HsDi#s! zMLEolpK<^Iq5=Rh0M7pb=>Px;h=2d#;^FNBZtPGJ5bKP1n*{>+?(qio_5k|){tF25 z`1Sjqtv%A&PR-7P0st`p&i?}b008M5=kFQg|M&R&{r=?U4x6PnhWa{`B$w z?CApk{rU?E^8f<&008;|hy@rKe}6M^a>=kt2+9et{QJXr>zQ5ua`W#$8JQS={rbi5 z^Ctr{)6XBj7@3%V17i>%fEb@MFnj<<;{gVSbOv{z8Q{qN1r~!u@ISB;HgNQF0R$KT X>6#2<48ze<00000NkvXXu0mjf$fQr4 diff --git a/interface/ispconfig/interface/themes/default/icons/flags/pn.png b/interface/ispconfig/interface/themes/default/icons/flags/pn.png deleted file mode 100644 index aa9344f575bc92f4c1a5043e6e7d0a8b239daa64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 657 zcmV;C0&e|@P)$VEDzr@CQtS7ytnPF#yj0 z0a0(~eP|Fd7x&oU`XvhO+V>M05dgm54eRCe)!y3s`vCp^_5Az)`uqj_{QRhrlmY-T z0M7pd#W4OILofm6?eh2PFCO>E*7Xbx0@lgN z0st`p&i?}F01o{F1pxvB0QdR->g@pe`}O_>?Enew{R9F2_ajBO3l7@{2K78Gz9u`z z008^~05Jg0{{!Vds4FN77!dx<`5YAi^1B#F4D8&$5I)oT72fOU?&Jm;1k~m5*82ws z?b$fe$;$!&F#yj01PbEP9OVUy$0!>9?*iHF&;9=9{2wXIjNS}D{P+g={1WdM4-6DF z>gCe?_5uI^`T_tk0M7per>)2uHb&;=(#87${QNQl(a`kw{Py}Y1nctu{`UwC>ihis z2n-DS{QU(1_5c9-0*DC|aR2`P{`;Tl?{DV6zkmJy$H?%Xjq&fFKfk|zXRCbma58?r#f z00G1Tv;`<3F2eQa&)+|P|NZ&>@AqGj(m#Ly0)zk56?XydpHmj-@bfY4J_0oTA3y*x rGBBhgM-@1KAF z|M~a-&+mVKfs8*8^zZj?AObQ@tXl^VK#U9w|7)um9zFT5!1JoGnu}M2{r|uJ|AC@F z;y(;9F@d=M{=L6-3m|})KsNsS&&$bh^PO0375Ag3EPt6;7?_!X=sz3*^#j#0Gyh{@ z0SF+Vlm3Z`F-Ar(?BDbM+y#c5od5B%>y$nn=KcNZ|L>nr$AC#T8JS}%RsaMLPy>UR z34^BAe{Qb-hmSD)`~82~jewZHH;sOtVgB{~2T_Lx z^M7~ue_6TzObGu%0nl7VM#g8?t^ouP$PYjMFazDG!uzbThlgL98zlelKgeJZ;~z*Z zSPxJG!?$k$0R+;(`ulr=6P)M00|Ni~>`!`VeZ#eh`fLE8Q){QmQQ=eGY$|NqCtU}^v=1iBd@fS3^8`SJ7r@8ADF ze*C{^(f_{w|JZZ@y#o+HED**2KY#i6{~yEeU;qEJ{Pzp|pOucqNnlF=0*DFdB%s0n ze*I+l{{11(um4^iSXF}z{SS2YKY#!N`GNV*AE2Jys=p_Au>JnK{@0e3zk%WO_xG>A zzkdJw^XDIk{pa6bWqzfjEk^+Y2&CaX+n+VzlIN6JC4s^J?+-}zKcEU=eEj+Q{|`_P zFrfeb|NHmfUxq&n00G3<$-qz^$iN`P!0-!({va{_z!?9)Bm)CLfB^vHpj0t%_B3$- O0000op82)aAGO;3n0AgYI#891D4N?IF|Ns4E{L7&Dm*MXp#y@|U|NLS4 z{rmr)KmTFmmra`h0*Hly38?u0llM=#nEx6H|J4!x{U`A6pVzdvv{Rd?JIrI9L zs`Fos+0`Q4a^C}Q0+k5A1KaQ$>Lf<6lK=vUh2aka(D+|}f9<^YM_B9kC$A?0Z|}3+ z`ptao7t>dSY6f5^0o~2O01!YR8-T_G^}PA>yZ7X8cHUpx=KlJ_{+sC?ST#h$AD{+c zSpNn30U&@_7``$5{_{tYU-I{#-$2g*Lz_YNHw#c5FVJd`!65YaF9ZRd1Q0-s48{x$ s?-&?Px# diff --git a/interface/ispconfig/interface/themes/default/icons/flags/pw.png b/interface/ispconfig/interface/themes/default/icons/flags/pw.png deleted file mode 100644 index 6178b254a5dd2d91eeaa2a2adf124b6dba0af27f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 550 zcmV+>0@?kEP)~nkZ zGRMDC%7~XK0S0Tx8Wd7-QG59jKr9SQAk|O4{{Q=*0jSzY^rW5C9>)KFc0aM(`^fh9 z|Np=Kfe=u&EDs~YzkdJ$!~!z=-~YcrJO42FE6xsAYGq`2_Mbt_P-yG_e|4Mhx&31J z|LZSE!|%TgKvw|-5ED@OU$BE2n0|Z9O=M(v1mpqrFfl%gR9?uy{Oi{rkOq*RfB%6# z1PCA|pp${Bfd()#{N!P|4fj41<69Aq$E=K>;Tryc4F(7xpbZRv|AD;q^*8I6-->Vz zfB*5n`o{nM2Peo6f5F}W+3*h_fS7<7;^vxc*?8?`g7w0kCk@cHxaHDByoH$n$~K0fYN5BQR!wAqjL2Kmai^lz(OTgcO%Q oK%!9YKcr{|u^AZn7ytqc0H_5zuk@Q*SpWb407*qoM6N<$f;OS^T>t<8 diff --git a/interface/ispconfig/interface/themes/default/icons/flags/py.png b/interface/ispconfig/interface/themes/default/icons/flags/py.png deleted file mode 100644 index cb8723c06408828ce68a932ff472daabecc64139..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 473 zcmV;~0Ve*5P)@|4`Xj5kLT%`al?B=W5I`&pU%&omV`KRD53KJ$2txq_ zg7fbmh|k3I@68*40Al&@kBy(1nSq%Zss!k?M~{APS@-YvZ#JJG201x|0gQ}qez5@r z5EI0wa6>`h%cteq@9Mue|Ns2{KQdro`19u4 z9*F+^0|+3-w;#WAv9bOIX#?r_2Xj8qX@CF21pWab0}C_Lljko10*H}8@M3d^)Z>@G zf!6*0!vH4#gGo5!|DS*V{{HzdC&9L6!fAj26p=v+03Zy*=I{f8|9_}7o838uP_pBd z=z9{Sra^iHOE|+IC{ z-`~G~{{ZRVfB*dX11A6d`CYbrEkFRVK#Yg0UeQ$d`q2ZhA|Uz&)bIy{egR1#X&Imb zfB<4bR{ihazwp{dkXn!mkfPsU#_wMs1hfID1|Wb~;Esc6TU=EJGWFLlunkbN!Q9_} zL0)432p}e)sSwo=4bd$f5a~a^fBpd(3|0LbOac`E1P}{Q!+)sq|NsB}pI=e{a>g%& z)4?|U{s;0mNCQ9sG5v!Z57O~Jp}QY!5N0Be0)lgG%);U`26kn-@hOg zU%!6+4+cOs(0HIde9xZz`}Onxub&LUB0x(30+2WcIRJn#2ut|?gWYu1Cf+!-K%B8# zdf?1WA}#uZ8oj7u>$I1i0Al&`=O0k%-@icgAIJnM0xA6maSq6BK-ECw|NZ*S`0Lj% z1_pot6puj;05Ax`F!=umqj7^frO?t|3^&I1kxUq9yECc+jQpY84SWH_0#pxl$?v~F z@*hy-KN0|X07U)z`4{NpU%#2aHUI<=%a31wK(7Du52Oc(|3O^?R1IN+RRjI-n*kVB z3=9AP#PZ|EACPLGJ%9cJNh|>9B%spYzZw7h1%?tp0I_@ndg9MNE>313@6R75NcceF zkr51-#U+7;F#`Sf7i0rK0I_`g_NQ&Zji7_t0d_@@ozArL?Su`s;*Q{AKpRQ~TD44PX+*q00taD0I@Lq1k(S2nt`tR{g)9*1H=ZfhCe_Je;NM%1^NLXfPkU&2dGq1gcanC zzsyWb(hLmW7#V^70~+_6f#nZ_(jSmgFakOWAb=Pd7`8Gn`~pjZT=;x%FbfOAzdzu3 l1(F{a{)I#17yR-T)##NTdjqb^wzQ(`1@?t)Ix4MUXz556teM9A7Ic zq_@itH|pv>q+zrjZJ^Hx5bj=fD{5McI3ol<@^-l_@~tZGV7p>1CU&qG~{YccyC-q z$8~P)6sG{nMmQy85K$E6L33rja$x-b9$ diff --git a/interface/ispconfig/interface/themes/default/icons/flags/ru.png b/interface/ispconfig/interface/themes/default/icons/flags/ru.png deleted file mode 100644 index 47da4214fd9edb383687c1d4f84fe8b42a51ceb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmV;V0bBlwP)X|NRSO0LlM<{-BURBqYRGSojej zfLOL~|EH_V_~;P>Nc10*D0|Jxss< zFi1)Q<$$6LU}rIc*dU*QNFV}+9T))>0|XG`SD?F)5CbX~O$rDA0t^5@iDe$xIAIn5 O0000N_~0!B1ZtR02zJmAl3i>|Nr}+@!x-t zvcLa8?7#n*fB$3p|L;$z$Rx)9zm`4EX`B2HAb?mPX21FhQ~^@@2dMNf!=L~E|NQ+A zWdHd6KUK1c=hsc9f8Rnyezh^=0R#{e(Ek5GMIci_s{j0D`2GL?@4p}ozrlKzzsUIh zhw0@n(cNzYfer%*AeP_1{{8vS`0Fp&84w#lmi+$#)ARI~X!Y&+KyeWsW`<9n00M~d z^G^m==F0#79{mS71ZX;t`~_q%fY`tPf!Mzw;*3o4FJA8j2p|?NkT1UdXZrG=;TOYy zh@M|qNhT&CJ~jq`0Ac}pl#vl6#K7 zFA)9u_3syi0VMzY2QmHtx&Qtu@&7&0&HxaAAvs6^7=(cU7?W7&6Z-$piRe`dyDK`^ zN$WO$zWL=wEu!PO?Vu9@iVSM&8cWvf2p~p=WCn&G3_$lI&>tl77dYY}Tp)vm0U*Et X__=7oxWDB`00000NkvXXu0mjfV`BRN diff --git a/interface/ispconfig/interface/themes/default/icons/flags/sa.png b/interface/ispconfig/interface/themes/default/icons/flags/sa.png deleted file mode 100644 index b4641c7e8b0dd79aafaa73babdb525d3d2dc6a8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 551 zcmV+?0@(eDP)4!1u&@QJ10&`rk^HbMk8Ee|uIe&H zS+;4$DbWCt7$DsBz5oJg0IGiW@flDZ69W^F_wDDmUw?kFvatRB^XvPsAO9KtfBpI8 z%a6}8Lb5=`00G1TbjJVx|9}4ZVWnuJEUfzZ$EVZx<$*voWzTGcp~$d(=+V{_?X+ z3y#kPS_RYq5I`UeU<=TsD9Bk~@o?qi&=DPd(?v86a{(`&&3I*E&g8|Wo?Sn;v*0j086Wc~d66UYT>00&^E24DBZ$$%)DV9SRUYEY{Wn z85tspN%!Z^Q&_X+!-^Gee*b1;`1hkUW~HJ2(d(c7|`w2)m##KhU^#|s1eh2YzMVW-Z(;)C{QJl7?-Rp6DTaSP8U8UK5I_L2Ffe?nu66~hU^Xzg zV`^IR|NmbGhChsd{xGln!xZ`Z|DQkqe?!SHn>GOi5KsdU{eSZ0I}_6%bMu4$|G#2j z_zP0e_xu0e-~WI8{{Q>e|6jj=B8;-KKpOx8hy`TyKZd`5nT(9?%F2RO|M~TQ@}K{E zz)C@?e?v4d{QeEp01!YxcLP=bXJGj0<#nFn|DXSVfvSK1-v%}nhwkOu|GvKejg0<-0ptJwK&1cy1oE`H<`Z?5M+~$7{9gq& zn~(3mv&(;P@Bi|05T(EW{(k!9>4UEid{_Ab1OPDr&i@1e0Q5gX)c>UW0I2)_6d3&w~i*%}NQ0G05Jg0{{#gAwk6j%|K36Wcrx-Z zDBuV5-R-~I;@8;l*yr}=_xShx{`~y_{Td7!{r>#`1^@zxvDKIVAJ?B1c2ZXvZZlkB uU;qZ}2Vg*eW0eWa_yywvNgf7(00RJ0?>)A@UfIF`0000~{{6QA+oUi>E@sC6|Npy9I|mRz%!e*p z2Rq5%zu9WWBC0CAb^-aHZc7E^YzcK`=8X^WVaOP zAZs{XYh)0l^y~V&U!Q;f1_jw4fB*tH>G!)IzutbUPS7xun>*B|^YmYFnaxh5oFnsv|ie?b{2U7L_4Fkgm jhERtq_4+^_K!5=N1|KO))1zs%00000NkvXXu0mjf8-+Z0 diff --git a/interface/ispconfig/interface/themes/default/icons/flags/sd.png b/interface/ispconfig/interface/themes/default/icons/flags/sd.png deleted file mode 100644 index eaab69eb78776f8593b41c8fdc3fd65a86119a0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 492 zcmV`tbb&P~tyW8d(D~GxMiUp8x`gh2bB=pZ|ZjUUI!&{yK1G;4d%$ zIuA;MS%3cg{`2Rrii*m`ix&X`h=t(`1IH^)u0vdsLXv;@{sQG7;18Jf2Mqqg05F6A i0*HaZmVqPy5MTgGElxU<64PS<0000a|fPuet^$h(7pHv_{jfB<3vn*8q{15ov!pR5qo|Ns4BVf^v!57RHO zo?l?}`yWs<(7C?=0*LYNK?X*pGKOD3v;Q#s|MUOfZxH$qCjb2cBQWFtZ$@_cPkRpn z1P}|u9|n-AAQdnT|9?TXAyk7H4FCQBl>h_~&`AvcLF)bhMS(&{8jwh^2qVzve;5D) zh>=0RIIAq+{+o}$pxEl(3%2T)`P!1-fBt~{@Pp~sA7J?W`}60ovKZgl)=2;X#KQ37 z&mWM7{{H^+4`$e}UqIEMAo>Rk|KALM|1kdh!vsX^3=B^I0*D0|DL|!?{M^6*VPKPH z00z{*-?BnHps)wJ`QKllIe-8D1EGJQNCgNWMh3}bctpOPvlbWzK!=K^+cJPc;};D5 g19O2S13-WQ0NlBGh$rR(5C8xG07*qoM6N<$f_QiWUjP6A diff --git a/interface/ispconfig/interface/themes/default/icons/flags/sg.png b/interface/ispconfig/interface/themes/default/icons/flags/sg.png deleted file mode 100644 index dd34d6121073fffcb2fcb5b9402b3e6361cded35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 468 zcmV;_0W1EAP)dtOYis{Le*Dj#JuDs`KNc)tl9OYUmifJZ zA4uJ=-~WIA`uFP>kj*SB3$z3vfIu4l|NYA>FaP8D^M5;ba1<8<4f|GC2UPm+H&ER# zkRGsxe?Y{*01!YRC;dKnkj2`X)zkCW_8s5b+Wvn23^5y|0jv~A0#!5q{{4%A0U&@_ zfL8pya^=_l{r?#l8F+XY{;)G~as30ko(ZTFY%s&0Ka9WsFiJ`S6$1niy`;Hnv5 zfRT}r0R;fL{~@sn5I`&p|Ni}W_wFAQ`~gBVzyJ~jk&qMs5MThRyiZo6SsHx+0000< KMNUMnLSTY6dB!#X diff --git a/interface/ispconfig/interface/themes/default/icons/flags/sh.png b/interface/ispconfig/interface/themes/default/icons/flags/sh.png deleted file mode 100644 index 4b1d2a29107be96413eb86e64a75ac7a3ba5793d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 645 zcmYL{Z%9*77>Cd9?woAXO+#E-F%m^1b0Xy*Qky9{B^@hJqB6}jOKKPc70u1CS|Ug( z7>SA^1`5-}4+VvY=3G*k2%(8O!OWTIn!4?td(P>GANugV4?p-l@2B^fCONIbD;IAODX_{rV|BCn_NC>%qlWoHrzH=l|0Y^Rhgkwr%>N3 z(d)FjlCqjgyY4&yRH!;rb)|Z-v~HjxIkvar`*JLyzxBc-B?Ix`3*qGz4q3JAd`#LY+Xw^k(ph!n`d2H7`aI`Eh(LrOLs%9g zj93;8ws%s88WHkIqXqnSf?YSjh=@dF-}4L7dS0HFB@iNj8OY*&4>%Dn8t&*i)aXz6 zSX_wQ?~e=9UcwhrAtAf8XLVoTbE5+<^|-KK=D&>)yX6u!zrPCrbEr|4Yi(XyIGTQI zFEDsraAY{)DhUd*DN;Q?!uSxvkoT|31dF#>2L0DGeRcNZNehm>xm~}-9q?gtV@Qz` zv-lB19|m}3LHcg92}TUOb+%v(0bnUhB(5rQI9?ZY)h~Hw=%2Au&~WB@t;^kVE@F0Y z%=8f1ZN}R1MniiNxkJ!a;3!XFerfimE2A;1XJChGXJ=)MAVRubE8WFo1T(1Cmhdfa ztzC{Qms6asjkstFkFp5L#maeek84Y+NtW^Wf=SRytjpC1=BCX4NH^VxnQ`+YXocAv zR?lKskkKZN7D>{S3>4;4+gPYYq0_5iq@jsB^}M0yMT0|p`lM;R_dwbVrBg^4RRbsq Y$WB%-43-yHbAJTXS^1gPjGK@C0`m$%7XSbN diff --git a/interface/ispconfig/interface/themes/default/icons/flags/si.png b/interface/ispconfig/interface/themes/default/icons/flags/si.png deleted file mode 100644 index bb1476ff5fe8e0d3af4fc6bd11e513d95fd9cccd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 510 zcmVm9@#;PEzrU@Gx(rNA|FHo^Mn<3|00G3vEO>ZAhtlWIf1*N!=PZ8p<;&lH z{~7-L`S<7dzu$lU0~x=8==VP$LqeQ==EOq)0mSn6{g=m2e$<)X`O9Zpu5&$Np~P9Kn=gZ0kf<1I-4a zUtk1c`~{K>fBu3(0U&^Y8d(1RW7^4V^6LZG89>!QBmXe{`pfY9FT=0Dj8O6)!|#7g zK*az7#L~(TO=a{vExMP2%`MCSoB^FIcLe_%lf;|~%E5I`(IQNh}3Ao>6Q|DFUXMn*>AqQd`w z|1kXd^B;tM|Njjl{{hM0zwd6?1Q0+hV1xeud-4=Wy?p-%sO`^#2S61Jzk!N?s)6X& zzhA%p|N6}=D+{y%Ab`Lc{sL9~1=0UN4*CD*7s%9KAf+JHKs~=eB-8KTKvw|-5R1&; zzd&a|ob(5%^Z$Q=wHy9p13+aOpFRNu5F>N&`Tk_-7w>=n{RejQzkfh&Kn{rf10?_b z{tFTZibx5v&dxav5I~H7|Ney-|DWN1$%1FyagzUW0464;_wU~W1Q5$TW@eGxtUvee z3vAf*8|igK9~@*rr66bh|NrkNM8z+V zAV?>O@ek;bKfu6d002F*|Nr~{=Pyu%qcHbB24G}l{PX7zKmY(S0M7peLS*D^UKK~y z+6(XH|9gD^r>6bY*OZ>+`2GX^{Qmv@{`~#_{QUm>{r(dW1b1xK0st`p&i@3&%J4-( z6Giy=|7vRh4-WrbUHx`??d0*<@CX3>{QLa=`~Cm?`~Ld;{u~zu0R89!i0SVi2B1U! z{r&fU#+3gbKmA|6l!@v8=U+^J{{8>`mjUR&KfnL~{sUtC1qTg400I5L26X!4i0my} zo;{uZo#CfPX{7DT1DwDAf(-fnkMZ|^ra%9I0mS$d6bftr0mQhUfkCOfiE zM%HqlKU{maemr>kAILSo!3gZ8-+$N@WcKe}3J^dnRtyZx@9+FOdynDWy$P0%j62V; zZC)?>`}hA}zy1SB2;@n0006p>>h67sJD!pI8@uK6+#GPW%ce@CEFZM znTD)%K!F4J_qpc@AQp(ZPk%rA2T{TB=kLG2fBygZ4O9eD_xsnsUl6u5yEM=SfB<5# z6|+@gR}o|u1R4pn+XF1YrQf2oylS zAbS3(sBkhcTmc9mV6grHN=r(zLW3F{=D&YK84x>x_WT70A}|U80*H};VI?9O(a}F7 e1_Utx1Q-B;QgQb4eH!Wj0000PEol7!5I{@}e;EG$`~Mq){{FvoV+so& z6Zek;JYV*``O13q$!wq?2!V|I&+z9TKmf4-@!$W9Km&lr1Ie!(IeUNcyZo#F`{&0p z?&{CqnEw9%50U)~((nf$fIu4l{AK07*qoM6N<$g2hARp#T5? diff --git a/interface/ispconfig/interface/themes/default/icons/flags/sn.png b/interface/ispconfig/interface/themes/default/icons/flags/sn.png deleted file mode 100644 index eabb71db4e8275a5bfb7b1b8f3a8374d50da95db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 532 zcmV+v0_**WP)6{xSen|M~Ox&!2yPfTn)={d@hr-#`EU4p90fz>J~+=oo+i0%`d3@9*!wzk#ZO z2WQUEDXOGe*gO;$t?-?1~^z5 zels!xNuY7SApXOk^arFAjDSu82p~p=WCoxfknArIdOZOgs+`19}IpFa%0{xSUi1L7diFBr+f01$veIX40Tgn<}np4MoMn3N`o$god9 zrkzn;+j{#q5F}xeh49xZuI$05IKi0v3Lq917Le*!UxBJYN`Vr8|1$jj50VD5fvSOw z-(ZF~46zx($8#~-kUKOh9u19TNY0I~dG z`1hBA5y<}g_y4cI3}({*g*gAq^Z#dL_#dnH|JmpNJMaAe2etv|3x;0|00G4G>kr86 zzYquf`+xk=e@^EAQat}9xc>97{@;He<|?3qzo3u+2q2a}APrzwf*tnl_y6c6m z5?7266~G|=0}2mdsDK;{bP_-SF*1~XW%vY(NDyK`u#uw~6h{mUJPZH<1^~BhckWKq{Jk|L6Yw|Nrm*vcLXk{sL#*k)f0!)jRF?KX6FHLLC_7zyJOQ#RJf}AnqSv4E_E0 z_d>^cfB<4-C}v>z1dGUDNRj#r9OZBkNc8hC00bBS^Nnc?6(4BA00000NkvXXu0mjf DM=x{`~^7feaw| z@9%GBrr%pd7ytr@3Fu&;D>$G0;d%9&ckUlP_FsJLznOpkI<);49~%fU|NOOg<1c>p zU%YI;<@gu?0tjRS1JJ?0e*b^_hvDg;|Nnpg`SWY#%HJzjff!!CzZWj}wP?w&U%!5b zMg95nhXEjfKpOu4{R2W=zZm2}8km@V1qJfIu3a z^ZvQT`ny}__wU`%Fad@Sg!~P3A(#OSI%WR9r+OFw0*K`e1H&7RKZ`vj#ee<&!}=E_ z2M*0Ye}N7Llfc;c2aF@2)L(`#3;+SdxR!w-xR`AxVx?>``QKoX4p z{r>$=Qj`^FFF*h>?mzuiS(feBuYdplGyMPm{~rVab^il$89+1;fd$yvm=2wM1rR`t zfB*hvWMl+7=|4yZ16bGpcem@l{$rO?srZisfXY67`UDU_ED+y9gdmKw*T0{<`x@v9 zlkZkl}Tegi}1FC>)y z`~`;fe+5al?K4jS1P}|@5C%z67NEr6KmWj?{{J^f1u*QH|Ne!BH7L;kfnp0FfEXE= rk23safJY>Z`~zeELt=n*00bBSq*!cC{}>3t00000NkvXXu0mjfg_GrH diff --git a/interface/ispconfig/interface/themes/default/icons/flags/sy.png b/interface/ispconfig/interface/themes/default/icons/flags/sy.png deleted file mode 100644 index f5ce30dcb79b443ebc1615fe4889cc26e2d762b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 422 zcmV;X0a^ZuP)@|4`Xj5kLT%`al?B=W5I`)SK7Qoo3V-qKd5l^# zgv$taFhBq?zJ2?apPwJU>mjm?jEr~g+yMw6Mj$IKE$!aDd%wZp7Z^YoAQH^_^XK=U zKYvwJR4!h;2oOM^VEz63kEEm|Pzoptl!JgjVAdZn_zMF-#Q*_BG6D!N0MDLEDh$KY Qwg3PC07*qoM6N<$f z|Nj36M1Mf!|33`>e*gaqWCO|HKwFtO#a&sZ0t5gt0M7pel4t!zdFAutyc%F2ByLSib7d z-@iY8{9s{WsjaVha_-{UlG^LGvEO)A^**!$6$1ni3ljqaFhGRYPy6$qf&JG{kKey{ z|N8ae_ixs}{}``bdDhkT?#VOp#VvoBm>H#|fo1~)5aY*A1~#Xrf1jTKgW~`H-wePI z{Ri~aZw6pM{r$!84-_k)u=@Ltg1)Cf2{xiF#iKZ95W~`fDE7~ z|1pDN1{?_>vH!pR*Zxoe2p~qo;+=0k{eVOy5dHe~@Bg1a48OqWACLsaJOfY!7)!uZ dz{3I%U;rfUVNTmRI(Yy9002ovPDHLkV1m_xKPvzL diff --git a/interface/ispconfig/interface/themes/default/icons/flags/tc.png b/interface/ispconfig/interface/themes/default/icons/flags/tc.png deleted file mode 100644 index 8fc1156bec3389e54d3c5bb8339901773a881e68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 624 zcmV-$0+0QPP)Mt z2Fbqp@bUfi_XiXZ_x%As_WHU2H1hfc9TM^w3-JC0{^0Bg`~MgK0Qv%mWs{6kqN+Cc z+b3Uc-enXLWmi^s_2~6APR{Qy8GilxQ)j#p({t5y7`^LQ4&lw9Z0Ra5^`SSP!?%<&3?fU!$2L%N9{QCa@0Qv%mW$D2m zA^~iFet$Uihac>@UpF6ozx?O#ufL4HfBpRUndtzp5U;>@#TUPR{|1KG4}bt-0)`aO z`@jDF|MM3p^6S^{zdwKf{q+mXVfa4fgq7?27ZxvH%|34Sm*EEk!#{ukVgYLS^A{)$ z3^fq>3urc&4I=;kz4MwgW4X`2zkh%J`Om=vauPrQ0X6*k{pY`=2p7%A_P)?P zUwuVdAkKe=-@h3}_C6p$AOxEwQo+UIeHT5%mg3lYGL;@HP(LjqG0$?6F}(Ht8A z0K*^*BsuTDFa|;zm9Mc;PRcq|KMMBO%8|{GkrU*a2x&r-3HS3`xnqW1|R~39RolBu`vAj19S<{HjoWK z4L}tj8-Qm20eTwfuYbROLyY(bwgDi3SQvf*HG+%>>H*pSauQI_zkmNAP67ugNCPlf z{{97O00g6G8FFbZ~XHln?_bqJeH^V)*lb;YTJ&0)m(r7ytqc06HRil3NF`RsaA107*qo IM6N<$g5!7R+W-In diff --git a/interface/ispconfig/interface/themes/default/icons/flags/tf.png b/interface/ispconfig/interface/themes/default/icons/flags/tf.png deleted file mode 100644 index 80529a4361941e01d1def5d581bf2847cf99fef6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 527 zcmV+q0`UEbP)KfiwinSYl|od6I(APxT+{=azr6>87_{|pZw{QvzM zh#vfW|M&NwU%!FG-`~IfN=xzq?EwhD!Wi2C0Dv&)|Bp?Zs+hPi0R-LQn75%cY-O8s zAPsw;Q!9X27=Hcx_y6DDzyCn0!4P6RP{Xg^fBpb%_yyDhbQs7f8-Qku33L4cS@IvK z8OZ(n2kOgTzyGb@ek0IRW9ouaN6$P0x*s5bfH4)06qlIj4>;1{Yyp4(0|4dQTo>gF RMrQy3002ovPDHLkV1fdR=hFZH diff --git a/interface/ispconfig/interface/themes/default/icons/flags/tg.png b/interface/ispconfig/interface/themes/default/icons/flags/tg.png deleted file mode 100644 index 3aa00ad4dface0a9c23744ab451cec0443f187bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 562 zcmV-20?qx2P)@|6mN}b_RwI3=Dr@=ogG+VE_mq7La^(HIVqv%*^=nCj$%1|9}7Uoj(8m`RC6+ zAo~61@1NiQe*Xrt|Nh=Ea}z)Sfi-Y&{FjhmFg0aZxaj}$=L~=U)(L)O`TP6-zu*7= z1Ib@N^zYwqCU)6YF9v`BVgi}{>lcH)J%gU!|J)p)>i@rg^Kt&>WCWsLoQyxgk29dnvBpN5vQb0*LYVQ3gi&tp7jnGyMMp z@*mKbe}4Uk_!#8f-w;8De}5R+mEP<>2M|CkH{LKvi2wQh{WmZi827ytqc0C8?ZF&p#S!~g&Q07*qoM6N<$g49|K A6951J diff --git a/interface/ispconfig/interface/themes/default/icons/flags/th.png b/interface/ispconfig/interface/themes/default/icons/flags/th.png deleted file mode 100644 index dd8ba91719ba641502bc7ffda16c25dc71b2066c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 452 zcmV;#0XzPQP)@|4`Xj5kLTn#2^O%5QJf({+!S7KyMr1NSdb0?wsyYS6cNVdko7wub89?$EL;)x)00Ic8;m6; z*ldXL$Yz5{poPB}7`^}m5DPc2nu@9r4=+1782$pC1a=$HjDKJ@i17#P6G=(#Q>V-T z0*LYF&!5c9%>VxV!xcCX0F(uW(%ZLh0Ro8SA3Hl!NeKhQjeq|#{05SL7=Ql;MhF4{ ujRQ&nZP~jQAb=RZqDCa1IEDa#00RK>mSUL#9?hx%0000(5Af|u+{y|g&!S9Ft%(8imf-XR*|Ns8{XO&`< ztN44b9;zJZ^?&~W0*LYB$B#TbJpUo){|D*(`>^x>w|gKB?9z<#wQ%E^n3(S0zYh>V zEO6uD3`W^f29Wmu3`mZF`w$?27#UO<(rVJ~y}I}N&+p%VfB*XP3y6U1Uw^?QNbuL6 zzrX+d{i`Cbal7Zfib@b53s27mx! mU=U|u;Adc9XCM*)1Q-C-v^a{iiydVE0000+lNu{Qmp=|FW6D0*D1<1Ovm9m%kYQ|7p*Yo3ikU z7~kiESLFZv{{Q#iA0zqwf4<*Xu-*CD8$MYncA&8U0mQ`ckKy0n|9}7f|MB&2MbDkQ z1j{KKBL!IA2(Z7F;(zkuBe#mo9TT;SzkoLU{s(jwKmai@{QdX$=kGt?etVi7(p9*e z(|o73K&5wiaQBkXEB9so{`tH8jIplb^d$ZPi5h|uLD4*o5RnOS|{Qd{@Cr~j!0D)}y0}8T#$FHit{lE#dc*g~k_utsL zxj&Wpto`+k?f2h5mv;mM4gK>M6!-uE1hnA~P_?8O+wWh(`!4wX{Cn2j=z=is`~Uxb zzx=@K_DcEUJ7IZAUZAu8{sn~+Kmai^Fsw$4O9qB73=GeJhA}V*Ffg!yW&gnt6F`6g Y0QOrYft$MNbN~PV07*qoM6N<$f;FEW z@b~ZkKS1)&|37~i{`~p>`}cn&^2?@800G1T)Nta$zvt>t<757@uK4@^{4bCmpb7~3 z1tfp{|Md&VW|Wov$G`v(Kp+kO{{26+>+jbuf7A2+upj>Wf7$Q%RxoV1$N0e}Fas1Q1BW)@@rKJa|xATBWA`D>(WW1JFHv zzy7cP0k+{MTm!^O009K@!>LoJmn~avX#S_9;5YZ-KmTX``u`YaHjD&?*dJiPF#rS* zNW;&cKP?=87yABYZ~OCq-%n(9P{tpi22h9t6$1niNQ1e-pD1xDrvBdy@BT2zfI@>2 zY$OAO1fsuxAqeOsfB<52Wnfst00RHO2+qJn5C9Nh04p0wT74^6IRF3v07*qoM6N<$ Ef~oTCkN^Mx diff --git a/interface/ispconfig/interface/themes/default/icons/flags/tm.png b/interface/ispconfig/interface/themes/default/icons/flags/tm.png deleted file mode 100644 index 828020ecd0f6fc73348373c9e7a235fdced09de7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 593 zcmV-X0VKiqu&g@GZ_kb&V31Gky(*8`UselaloV1SZ886W^4001!n&i@1e004Y* zk0R&!|NaLC5DIk$@CyeC@AU9ebDYiJ)zswL{Qdm<{`>p<{rmm%TMiuO{1voVt6d+$)WVk%^O){nwx0zkdJv^%rQ#Z=eQ%0Ac}Z`19}Y zkI%oqe*ekA`2WvehFzDBOo*xZ{rB(cQ`_&qdGhP`Z=jyvAOx}jAb?nae){+CFDvWc zZ(siLa{c@D=g;LQw^HX+sY@u`d-M3!$G1SGAWQ!Ifj9{ufLMTG0<_`#=U?|Ye)D|< z8pH7G?=PVA*@stt1I-4xpA0e#40jk9 f${7d%fB*vk3(!F(w2U8u00000NkvXXu0mjf+94t7 diff --git a/interface/ispconfig/interface/themes/default/icons/flags/tn.png b/interface/ispconfig/interface/themes/default/icons/flags/tn.png deleted file mode 100644 index 183cdd3dc98c6957bde83f375a431e543a3ce9e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 495 zcmV@|4`Xj5kLT%gT|L_r@28Q3iff@h;hzaCwplYy<4FCT9KXmB7 zhQ|Nt)Bg(#gN*m^{Qvt8$Of<_K(zn?!~}BDpT8hi0uj&>pxItt|NHv>A2{&e(C|Mm zFGw7s;m;qS=>P!)((wQ9AF!W(0sZ}7M&|#9_5TYB{zpfHZ20g2t^wjCfB*tH2_nSs z8?4R7=Kq6S{f9wP5^T(0hI#XVIvK%6GC)WrB}fdh6SO{nUiXv3iAlW}aH!uJM5J&?vILH{_iZHeP0c!XQ3PuJ7 zfB*t%VEX-sK~fTI%wL8-Af1e0BN-qh5dHlNK|sX-0mS$fH6j^sMDRaYQUC}r0RA0L U-~OCsp8x;=07*qoM6N<$f)6&Rz5oCK diff --git a/interface/ispconfig/interface/themes/default/icons/flags/tr.png b/interface/ispconfig/interface/themes/default/icons/flags/tr.png deleted file mode 100644 index be32f77e9910c0896c1ee8e7ed4f0edf815a517e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 492 zcmV@|4`Xj5kLT%yy% zCxE~j7#aURc>+`lQtjr(@bBOM9XtMi`UFz<>-YcPzyAOF1!ObI$^vZw2q2J#|6qeb zs-vSBOie-Rl$HN?bb!_U0_g#3VEFwTr~x2=m_Y6Zss`GqsL0^t^nd#F|4B*zH*EO- z_3QuT%m4H6g6)A?0#pkSKujPf{rCwIb#eU5`( z{s2t}2q2J#|9}60{Pg58FvR|AYlEDjruP5RC6KEgJ^H_IA4CJhNdN)F0>q49OBog~ z{?Etvzo-c07$As@{Qu?4|3!FoS~(Xu$ujuK&Ki|5;f$7pYF;Nfxh(xqFs zZUMDjzjMbfEbRY>5C0Dx`v3aP|JSeozj_5kj66I)?%V+g05Jg0{{w&k0RJ5w0P^!X zSy|WJ-R9=z(aMV97z{4myy=pj4$^bx3|zy{hYtY)h`Ao9!QA5iyLbPuTmkB_PfP?Vee~$j z!-o&gUAyj)n+wu&>J&%=KmU)%j{yP*q=CWA45Z=rFNTYkfO?!$Q_o+&{s0WlT)E;? zRQUhj|NkdWF!J+%fBF<4fS7B68jOwqzkLe|6QI@S&;S4b-#s()-1Y1C!Qjl5tA6F> zpisYc>&x@!00G2Y!@$5~Xb92(47=Z8{{bD%z~Ggi4>bPny?b}>+&OjWQc!g@0~6Et z-Maw-h`Ac5K~JB7o9jOp7XvpB0}lu>-nqlT$mpA&|LpDCZ{NOs`t<42?c44-IbZwx z0Rjj;B7x{N1H(%OhUW|nPgz+XA3Vr_1a9x%4G>@ep<^{rq?UTJ00000NkvXXu0mjf Doa;3l diff --git a/interface/ispconfig/interface/themes/default/icons/flags/tv.png b/interface/ispconfig/interface/themes/default/icons/flags/tv.png deleted file mode 100644 index 28274c5fb40e5d3bacd7c05d9a1b8017eeaffa6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 536 zcmV+z0_XjSP)mzpv3Mmw05Sgm{~xFtLc$sUu>nR##!sI<0R#{WMEdpj-yJ7j ze)|0V&%b{_!~X#7`1>EofS_N0|E)GoUH&SsFy}2m05O4F@}ffYb$qvjbfSUipMQUU zgY^9U_4m&&5D8KZ)HC5u^uad<48Q&W1P~L@hOIAb7eDp_T4W)^*Xg48{r4ZBJ-_}k z{QCPJq~Q-pPnz693xQJ%zkUG(5aZwHtqd&u|9`*u&+TyOvq{_Ghd=&6oB?#w{~Yv(xYPgr|NRH*haKioowt*& z{dC`3v>70P7=Ql!$;`|Q@(GT>fdHT^FqGcDeG3pkjNS|k>E&sEfzAeo{ckY&=g(gd z`CCrwmxA8!XLtTy-uM6CzrVnM%iVPzAb=R%ks=j>et^j`MFs;Wh8c4i)_^1XKP)u> a1Q-A&>r+tW$-Nl>0000<~s!0-E7R}a|Ns2?4|9|}gs%Dgx1=;`*KrBFO{{8#+``2Fv2B6@-@8AFY{`(K80jdYk13&NH4;SYnOGgJvc0I@K9VW@Vk1}Xmk4~YK$|NH0P z-@pI<0D+Rop8&DnA}oIvEc_iD{O9-Y-=|4+U?1uFgf@9*z_zyJRJ z%fS3QR^zuR^Y0tyerNXndi(YlP_?gzto2+5fB<3vIsj-gQ0X6_*?&Q*d^>boB3^zoi8Kq^tbl{qlR!{9jwQ|Nij< z=(=A?F~8j-MSe1{Hl8Yc@zaXo%Ljk}VgUvb(2HJbe?0kqy?_3vsPXrUmq2rWE6M!I zE@4*I;Mw}vw&7&iFGdC>zW)rr{s9CK3xfnhrsi*1wqMhx{@J=6sPgxpU%z6)f4fBr zzxpd#a3tyYE8}0lKnA+|-+zWbe*glA<)R0}-=}{Pnt#7~1q_Mb;=;f3i~oshNgsS> zIr~z~(_bRL|NZ|1LO_>;A_pLVSoBpHQd9nLa7ao@{lMMx#__lBLe9Cjx?EiU z71{s)`Oon8FXP|;z>s7BItd_v7-5mj(Adb}701wVj$!S*>kNN{fN~5FV)t0eYh-DxnQ(+0I@JIfmA>F`X8wD?>`2h#NWRRzyE`zA&Pzh5tt#% z!^rUCA3y+sZ1@LM1hf`pHc0ia|NsB|1uKPX0CRu;1-SztfLMSo`wOxir1}rsY$VlC z667idh7Sw?0mQ-}a!Q0#;n&}vAb0=!_Zy@WNd5!6=O2ju7s{65Vq=gx0uVrqe;+b1 z$mIY3|KLBvF9x7j{{!v#g_UGtQhI;<6hHv607H@yECdWlR7EJN!LomVp$!l~APvkQ z4p0cL2#YobhQA>6hXEjfKpL3-19eKmL_s!=;22W8vpXP)6RGKQPvx1q)UK1Q6rb{|u}Q zRsa7#{m<~1f#L7}|GzNK{&HxZVEKJ4>jAefr9{u_M=MTegAo-i2ynN}MJ5kZm z42KRel$J95{>|{~*Z<$Y8RdVo9Ap3pAeIsa2H!t_KmPs=bot-kKnMR0GBy2s>sC=w zQFmwO;@`jj{`v(%zkl=p`BTQg01!Yd{Xp;j{qx|@pI^U!0X_En_iwRd$6{h)tX8f( zaOhC?&!0e%U%!3phy1#1%V=eK#YHXK~n$!{#(ib5I~Gyfqpu4^P)1J@ZrOUii!$=0Ad7ci1(2A^!3kwFaT->5i7Ttz54h6XL$JkA3s3o z=g)t?e>01U3h&zo5I`(I-#Hr#t~u}$WXZu-Kyv1Rm&rE5wcB1YFI@@=0EYkn8G$4- z^Xb{M0Ro8S57@^*QJ}#<$Im$M^4iKw z00a=@`Sa(sw6y;I{R{T)e~6KA2AmBHF`#D(ii!XNh(#nN}rF)(}plRy9vU;su%e@J`J?dSji002ov JPDHLkV1n4Y8}|SJ diff --git a/interface/ispconfig/interface/themes/default/icons/flags/us.png b/interface/ispconfig/interface/themes/default/icons/flags/us.png deleted file mode 100644 index 10f451fe85c41c6c9a06d543a57114ae2f87ecc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 609 zcmV-n0-pVeP){qW|y?pud`Sa)3|NY&vWd%S0u>b>P!2!lUe;6EF*#G_c zFVXVt@6Q{uX@40W{p0iY2Aa+A^Cu7i8KT+YH}2j52q4BskM2rJ$^k9;2Xxc_|Np=M z&VaLlA*IO5FlECMfB<5VUNC{tBZO(|zW*;@GJN;|bTJ71`0*d;`d`2P!x=ymOA`2> z+y@9C##^^8%gd{MW@Y91_2d742B2~OQNf=-zkmD?Vqkdk_wPTUNeuu2#KPTG{_;O4 v7C%8E5*DLB7#Kb?Fnj}}-(W6879hX?8lYRg`Y`<~00000NkvXXu0mjfD6Jtx diff --git a/interface/ispconfig/interface/themes/default/icons/flags/uy.png b/interface/ispconfig/interface/themes/default/icons/flags/uy.png deleted file mode 100644 index 31d948a067fe02d067a8c2e69f28cca446bc7c57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 532 zcmV+v0_**WP)_vmzq~N}&z08z z0*LYY{pZr+B0$d}2MCnI@DC;m3N;oM#uMkR0R#{ugY)L9Y<*xj0QCR^`!^)W!R$Za z5CobHbl5+T3;%B|S`QFFjQ1Zt|MTw;G#Vi+hCg5i(ELAtfD|ak8UBG;ObiSF0R{lf Wla#5zB1?M!0000JMe1P}`Y1HZufM;3|NZsr4^XwNEI-g5fB<4iWtjhPj`qjL zFGT_P{{Q>;-(R370Ro7T!5$Ws$Po%5A+Zb!3j_cNFaSC{Z(fWD@s$7o002ovPDHLk FV1jsy^u+)G diff --git a/interface/ispconfig/interface/themes/default/icons/flags/va.png b/interface/ispconfig/interface/themes/default/icons/flags/va.png deleted file mode 100644 index b31eaf225d6fd770e0557c2baf8747c91ce88983..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 553 zcmV+^0@nSBP)|05Jg_ z#sD@3Z1&&(|Ni{{_Zx)%v%Gr!NnLzkb;C z@#QWhJ{xI9$+*)bNX$S?E90e{K^EMkYok78VXhR-hjM0*K`g z$j^Tmm_>oEVgxdn{xJOg$-v0L$jHRN$OsH@P9Y&+^ne@=1^@xXcy~X;zaPM$WdOPj ri2i^{AeYDB@IM9-1r;P))4B5XW#s0WPsWLbObPT z00IbN14#96puqp%TKvBf)PA*{`~CO-uM~~n%6z|m{re4Z55!3T0R+GV5`UO(`=kK4te?c|?1P~}#f$jmC10=!0@{8gBFK@Zu z-~WJALqveC|MTzfA7GIDVE_mqkOrW8BqZ2?K4D^#WMJTBVE7%b47BbKBg1c?EHl#| zW&XdQF#ikE01!Zo3=CVrargu%_x5NZPzVyc@Ms2-@*Gr#1lu5DU{kh6%sopXB}uDxAo`@Bt_a*7F+) z{Q{%kjEu5C8vp``Wse8Lf5q7h438n|z~nEOsZga5l7ZnjPy;{!05Jg0{{a91!FF~d z;^O)I`~dv>{`>s@o}L{E2?GEB|Mm6!N=n`P`~Ld+{`>p?A0G$7!M*~B3FM_eAU;q6 zNCH*w+4I@c^Ny?Q?QPpWZQiU1R1HBuWkA0H1P}`l|NYDG=gP=Ihyj(0CItil0R{kn^jdV2 S*Eqib00003_-&c2+@O*Bba;fM%rBo$$qwJnuekcf#0k*RG7MM`2+5Y7dK4k?R% z*@ue~6f;u_A~T0evP6qS=VxXnGS_mt>CSmS&gmG`kLSL)e_Vf_=c&!fKB7`4C;*C(7s2O*P zOs1$U0urzb3<=a`d9ABG4Q$eK<6~5Cg~V%B8`UqrfRSN8f&?QTVICs^VT=&p*?Eut zt4Ur&-BL_ON(Z|Xfgo93lf|gRkT$Mz-7^OQoD^XMF@}g>R?uoU0094KbXv)l?aF0E zh@GXQVr04m@05R(Rjxq*p|CCIRfv;QJmH1kf!hsqX*sha?_l;f%e5i5I~4YG#H4;6sPG2&U~bv( zNr`eMXGIX9?wP^zPQP(6+&$05Jg0{{;N}{t6CR|M}we`P%>f+X)5&j)Fc04NUj< zI`HZ2Woe@k6UF22`V|Qe2MTi(6bb?WF#yj00*Hv<{QLmnFd+P z9@fS%;@9^E|H1b5`Vk8^2@Yw;#}(}C_yUN9iGkt%y>Cxm>T2lO13mifZBc!n`jhHL z!MK>$6Z_d%|GfHMapIVnqod%T-`{|q1_&S~IR%b4Z+;63vi@iI?>jBz=eJjkjQ{>J z{QUQa@gMhBW_GSe5B=V~`@+h~@c%z3lmG&V@$K8U{QUg?|NjRX|KX9x@@rf{MxIY^ z?fG>3gQ&3ruaE-Yw>fW_PfAH~0~Or8dmA8tSRg?T(ZDLQOiOw%6RWM9%$i>kkAMHu z-oH0qLBYb*loP0ck&zJ?LI42-(g0BnBsn<*tTlsx%zxbLe*S!R<%*E3>|Z7(9Y#iG zpdch>0Ro8e`Sa&!arp;m4%k`<1H=Xjf<=G;Aix0Vb{`Xo7A9K&0000@|4`Xj5kLT%B_22*h{r-RE_y1qN|Ns8=|JN^|IHRmA&<212VgZ}|A4N4# z+WpUe-rxU^{Q|504bi~x`!`SnKmf4-F(Xhl(8fQ1fG+vp^85d{-~aW0|NsB{f9tRR zg1`PJA~XO^2M8drlm7gLxRT-bpa1p0|1bLmQVm3Azy5pw{{IQ;B%q-{(*XjA3FM@| zf53hMJK)W)|CK-uK=ku}!>|93eu7kk5yVLV0R(o^Z;+)RSAk6exg_KF|98LtFaPy_ z#c#OrKtum9FaQJ)NCPuC$bbfbRI>n`@$3IHusZAC|2cmD|MKhqAD{+Mr~sV<5I`Ue zOuzpyNJ@f@0s0=KlTj9AB*>SXe;D}wK*A7+fQkVEi190GMB<5K2mlB$03I1qT8uIj Q5C8xG07*qoM6N<$f}XY6qW}N^ diff --git a/interface/ispconfig/interface/themes/default/icons/flags/vu.png b/interface/ispconfig/interface/themes/default/icons/flags/vu.png deleted file mode 100644 index b3397bc63d718b344e604266259134e653925c9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 zcmV-i0;BzjP)7(YpZ_rO%ce~L0mQ<@*ghnz= zZvXM=_iyVze?clB=ogUu_5ar|Ae&KE_8$WSKmaiTHT?Vg|MaE5OE>+VAUAUr;?j4FCZIvLVX%uQ>mocOU*NTK^}%njy93_oP3+fBpUa=kKpye|`ZO zzyE?r`Mc+5Xcyo_v6>E-#|Nl{r(LkAS94bRQz)6 z1Oq?-fi&zp{`>yDUnV+0)eJF{zWfaN_0t9DjNiZhfxY|}ME?2z=O_CghC>Vh0R+AWw znBTkss=gWN$ME*Y`(NAt{QjkN;J}02MB(&;Kdc-80mKB<@b~YZKMV}g5wYSaSzrGC z<#lj=zkTD+H$ND}dANT6R9Lq3!_gzJFJEF25d}I4Ab>y`n3$OVE?Nk3?w(!me*OA# z|pNg&$Q z5()=&no#y6=Krof_F9Achf)A{nF9v;`|P8;$Q9J(&$2e@kA>cu?oN0tdr?p!r`I00M}SAs-l}3=F@( m=nn?tAB_7COfoP41Q-C;+8YpPdg;0V0000`!~0W%8&aG{{H+4 zRPp!M??1nPG5q=k)Wabw3seITKp+kO{xLwc{r>&$?_UrCGJgGL;^k4Qujka#`tk7L zjnovNAkb9+0R(gvNCCu>f4~1QF);xde}DY=^Xr#I=|`5hhp|NZyp>({@(egUPqbabS$v+tIbNu;L>xVSv%=>ggR z5I`*V_U`A@(fj`3!N1?XfHr^}17rYw{OcFcC69Z0BvMmfELgy8V88%&5l9HrLN(5b9xs8l&q^Gm-@&XkD1Q1BW|346ee?wJ+H2_`p`^l3V z+1Wtu|3AMO{`_T8Q2{Cj2q2bUARGR$NlJo(=nv2bFrDDw2U!bb{QV0-KNuJQ0*G-b s1H(6@xcrC2{sj~H2V-zBFaQJ?0G2^Lae{Q+uK)l507*qoM6N<$f;6K8u>b%7 diff --git a/interface/ispconfig/interface/themes/default/icons/flags/ws.png b/interface/ispconfig/interface/themes/default/icons/flags/ws.png deleted file mode 100644 index c16950802ea95b40a4e024be6cce870b1991f40e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 476 zcmV<20VDp2P)>E69JA<-5ee*C|6>(%ey48MQ<`3*E1sOaY}WDP*a00a=wNxxYB{9yb2 zOU?HFZD2h;3gJl2w`NO~f5I`Ue%-|qnfGfh(_6MlpFT>xzKtBKk z5J&^l?>`KZl3-*0GW-GQWCR<@03m_s?_UT4Dh3E3#;>Rm$$$~H$WlN65MTgr(_Ikn S3@&c~00004%P)h=Z!r1m*T3JtfNUmdS)dI70mLHE z+xy?%p5eHez0mS(A>sL-rPOy{yGk_s3 zz{tq>=+Ps90Al&~?;k`pNCN|I|RMxbJV00L=%3E(v!XamT}{{RArWx|9$7Z{pWi2U{IKN}lRCnF;x&=P&!(V3Rv&T;|GP6K500a;d#1A^U zy8js%fB*jT=jRXRU*A|5K#2L*r(ZvQ{P_O!=da%umKG4l0|XG%NkAKznV4BvSbj4y zawHV~fBoj~uiyXJSQwZYIoR0QIXM3O{tc7`Dgy{0# diff --git a/interface/ispconfig/interface/themes/default/icons/flags/za.png b/interface/ispconfig/interface/themes/default/icons/flags/za.png deleted file mode 100644 index 57c58e2119f402072640ca758657798b621f3fb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 zcmV-|0)737P)Cfuwe;F7c=r;qyPX>nX3=Cfx7(O#Fd}LsF&%p4OfdL?Z7#j~W z{9>KL@b8bfkaUokt?1q(EJu$q{Qdp^&mV?AfBydlG2rBvO`8A$h{fmzgIW0J+B07s zK74uV#pQB`MAdI!SdN|k|KJ`--LK#OfB*Xb>lcvCC@cGqfdL=@05Jg0{{a910Lj6A zAt&mC*9zzO1pWQ@b1`Tn1`iV6=KuBe|Nj2}{{8>`{{Q~|0SOB6tE&PCq@k>=Oh@B| zgDu0v2b@p;u)h2C^Y4EK4rY$O|Ni{`3qc?^$?%A8m^2X}fLMSU{`~p7aqHLD@0rW| zzIWc|c>Ry-$DePXKfn0(_xG>AzksTL{re5n#{Tyw!wUw000L?F`}dEV6O*(3zu6Di z9{gne@#pKG|NpqSh1vf81DXBz&mW+Me}8zmL>PD&00Ic4!QY)xLzl7RCikV!EWdtz zoorLj&BXoYF88-DfB*gk`{Eza7yo#;S!C4G00M|*elvr*8B6X-zBgb0FtGkEHc8mM zoOScs_b*;Q0~!ksq<=swfJjA!^Ww!_00G4E&x@hvA~zQkvxU59n3VsHd7Nj?ec|R~ zkmuqAx#JHo0{#K*`TG}00$uYDAb=PdGJ(Ek5Vx?d6PS=4{E7kSFNS|$^b5xL14ayB ck_{lh0N_F{UmK66LjV8(07*qoM6N<$f>aVd=Kufz diff --git a/interface/ispconfig/interface/themes/default/icons/flags/zm.png b/interface/ispconfig/interface/themes/default/icons/flags/zm.png deleted file mode 100644 index c25b07beef894408ae11c3be294d6e0eeb28c0bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmVLz(k0+Rp#|Nr~{@4x^5fB>iy$Oe)U zA3pkg`SAPSuU~)vaR2(F*|!oPfLI`Azxw(Lr25~#KmY#x{rl(7|GyyW-|wp|{||Bf z=)Cuc_0O*fYWnY`7ytr@1!(pEfB(To0uBE22c#NA{{8#+_rKq)zyAFG`zKdY6euFW z2yzlY0I`6SGJqWbGV%`;{r&ytA5hcp-u`P`AAdOg`t|1D?}h2=^+y>10tjRS&?yMj zfBygt2HEouXg1LCzyJLD1w#LR1MLR}1V8|>0KE@nffPa916Bvu_V4#Epof105yNkw zzknJ50tl=DS->P)FK#X6%e&u3i|I74$@9uP0*YE!se={)r{r~?r68Z&3 zzZn^2KYiK`5I`&p3=IF7JHD>uaSofgtUAf*-w!6nU;qF7`S<(x|35&+uYZ4j|Njjl zS;T)|pU40ZKrEjoRWbQ1@P?oGFzcPCjLiCzcU8ZC{rmejNW<@6e}U*1kPT$~=Kk_~ z83O}A05QHjx|ikdd7h}_|NsB_wl9j+&d<}^`}fbEzkmP!1q4tEL@O#P9zA*#Ab?m{ zv`qe9Isj6Ah@Z*IdsTw}WYHgB8-D!*lmGvK*?)d>i2vThzyJ_HEdLn(@uk-N0|t-& z`$Yv&?#y3UfPVP*`ya#a|BS!>G5-DsFR)1c1&eHCHYDzO7ytqc0P0;>l>h9)WB>pF M07*qoM6N<$g71PE`~Uy| diff --git a/interface/ispconfig/interface/themes/default/icons/x12/accept.png b/interface/ispconfig/interface/themes/default/icons/x12/accept.png deleted file mode 100644 index 8ffc7273bb351f087cd08688dd32eb501f992406..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3071 zcmVKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}0003RNklRIiwP-6;KuQeg7BkIY7?1>%@3}&TL}l70Z>) zw+^5aqRU65)6A~z>4_$l;EQe(ZogFyN+tNb+XUzbo@D#Ax}Jc6(!uRHST1thUq9jO z<^=k#hNwM8I?WDib$wRGDwV(>7*f<8L)#&U;1r}&0ozu?oUQb*c>P3i|L7{l+ru2A zPKjzP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}0006JNkl0lz=yef1E5$e!i;MERASQiNoimn$rM5}303PFeJlC8w%p6T;!x_6)F zv2≪iJsV%m859cDE2>LXU>WT3dV?z(J*E=JJJSj^jL#QvL#v0FLAIX`#?uZ}M{d zSU67M@HhZrPu<@rWT)O`)<&#iaa;(ImbPv8XrcD`q2XbD<3Qt8W)HKnhXMqB9tO{z zVraM{o?2O+H?3kq6+)ftO(yj9lE%aL+x#(WG;NptnoX^7$eV8kJ{LpuCKI|4>ZGbi zBcq;0l#%o8 z_$5paL^&7p@%np_pGK8@!%HyWi%10p$8~XCmvBIE?M#q?(?Rq$505_>JpHtbM<}@N z5ef=wsa!Q;{w7jYm|o1X{=1Cc=Hby=o+lp-nuiV@EfU?=pj56JYHr6^aIGyyFX|LZ zP3|scxwn*MZY@uxZsRx(H!gJIT3h6Hj0M$k-Pv?zHP^3Kn7-bFR25!)-J{vGi3Ppf zzS>Q{ULl=X%{i_+E2Wg1mQ}iyO0CTGB@^*WH&3utmH?a#*eLtkq*AL{%PNgaDK{m6 z5F%}wR{!$zmlLth@K{^GuK{e7tLERG|7-jk0MO#>o?FuJ3IG5A07*qoM6N<$f>uB| ASO5S3 diff --git a/interface/ispconfig/interface/themes/default/icons/x12/accept_green.png b/interface/ispconfig/interface/themes/default/icons/x12/accept_green.png deleted file mode 100644 index 27066192a8eeed27b2930bf169b929e7bfe66504..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3144 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 LNkvXXu0mjfaQo|t diff --git a/interface/ispconfig/interface/themes/default/icons/x12/arrow_2_right_round.png b/interface/ispconfig/interface/themes/default/icons/x12/arrow_2_right_round.png deleted file mode 100644 index d261b87a854886dad43b40b2a4f0075339e62a14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3289 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x12/arrow_right_blue_round.png b/interface/ispconfig/interface/themes/default/icons/x12/arrow_right_blue_round.png deleted file mode 100644 index bd0e72a9763aaf439364db3e161e4eb907273e30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3306 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x12/article.png b/interface/ispconfig/interface/themes/default/icons/x12/article.png deleted file mode 100644 index fe05910d4b445e9753f351574bcafff15745e292..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3023 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 R?p^=@002ovPDHLkV1mNEn56&! diff --git a/interface/ispconfig/interface/themes/default/icons/x12/article_text.png b/interface/ispconfig/interface/themes/default/icons/x12/article_text.png deleted file mode 100644 index fd89c6416a01a7954ff37a9f6301866dd74f8c29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2962 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x12/cancel_round.png b/interface/ispconfig/interface/themes/default/icons/x12/cancel_round.png deleted file mode 100644 index ad6e6cdcfedcac7474820734bc9c8c79c17d67d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3285 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x12/download.png b/interface/ispconfig/interface/themes/default/icons/x12/download.png deleted file mode 100644 index 41f8c15b8664ee650a64e6d7040dc7bd8c166492..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3145 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x12/envelope.png b/interface/ispconfig/interface/themes/default/icons/x12/envelope.png deleted file mode 100644 index 3c3f9a52de5072f4435e64371f20dc89a5c27e44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2942 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x12/flag_green.png b/interface/ispconfig/interface/themes/default/icons/x12/flag_green.png deleted file mode 100644 index e1e4e1956fa3215e0f72f58c6dfb282bb06add4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3242 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x12/flag_orange.png b/interface/ispconfig/interface/themes/default/icons/x12/flag_orange.png deleted file mode 100644 index b771e850daf74416e67c2aad8af0e0c45eeb6e58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3235 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 VuBx(G-su1U002ovPDHLkV1kAD2FL&a diff --git a/interface/ispconfig/interface/themes/default/icons/x12/flag_red.png b/interface/ispconfig/interface/themes/default/icons/x12/flag_red.png deleted file mode 100644 index 2c1c7c1f3cf39600d27116c4b5e1772fa232fcba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3260 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 vT3fiTLTiQVs{aO?zZl* diff --git a/interface/ispconfig/interface/themes/default/icons/x12/folder.png b/interface/ispconfig/interface/themes/default/icons/x12/folder.png deleted file mode 100644 index f198233736c23c2f4ab423e1231daf07ce2a2e8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3049 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x12/link.png b/interface/ispconfig/interface/themes/default/icons/x12/link.png deleted file mode 100644 index 873905db8cba4933c15c79a673a747596d7dd029..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2956 zcmV;73v={|P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}0001|NklK diff --git a/interface/ispconfig/interface/themes/default/icons/x12/lock.png b/interface/ispconfig/interface/themes/default/icons/x12/lock.png deleted file mode 100644 index b923a8f930e41e60c6973b91423ca86a51a0d71d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3000 zcmV;p3rF;cP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}0002fNklYlm8Jl26 u*Si6l(-DAm3eD-#S=<8WpID3@{Wk!AQ%$3bT)V>n0000KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}0005HNkl3dB6x{0S?xLF!GK(nUC_1|eRXet{Bv)vQ6&$pcO1;Z{$>sjNpF=f7@PTLi z@xVi!P6y09&t>`GM5D2&wMH^Z^L}{vRw@0Ei1siM#mpBS$9d=bmu6b63s6oKW-!3& z+WOK~Z{sqoT?Enhzd)2_`N;SEnT3Tbn6A~px{71<2CiPehO@JC^F>kIn_Lj}M*W7@ znnMb}WI&PuheIIBfz#(aRI1arEwdg2tt%kyU{nBk38WUt85rgOO9x8pnuQf(FdPh$ zpT9yd0T~~myaWmW{U}5>N&+I0kAaEf7n>XF7^Vy;pcDXCfViJx|8oyqq&*=7k6%(s zb#}KmXOk?ub?VG{$m(&#aflzgTUcFr52f@{v)NpeQoga)LV@T2uy?+02Y0`H*}17J z&dDNAcRnmHAAJ0@a^Lg3nh@fZ>$*Zp`C1(fkKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00013NklJg3m-NFb4yCnf4j` b!4LNUcyJ}$u|znr00000NkvXXu0mjf%05!S diff --git a/interface/ispconfig/interface/themes/default/icons/x12/minus_round.png b/interface/ispconfig/interface/themes/default/icons/x12/minus_round.png deleted file mode 100644 index fd5d7beaa77228b2366b8d73a472a99255983cf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3274 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 Y00iV6J)QtHZ~y=R07*qoM6N<$f~BiYl>h($ diff --git a/interface/ispconfig/interface/themes/default/icons/x12/pencil.png b/interface/ispconfig/interface/themes/default/icons/x12/pencil.png deleted file mode 100644 index c878aec61a1709c1d054d81409a02cb014aa38b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3095 zcmV+y4CwQTP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}0003pNkl)#s)qv%lZ4xQS9 z-awXnLPL~W1U4i@n?+3xfle;9_6CBJ6to*{>m77MM0$4(aiXbx=g-6U^E{7wEin;a zBD@**^rH!k$A?thaXJ7|(=3MgC(3oRamTR|`8)vMz22S7f;|<}n-|4JCA^9Z(k5H*W##o6F!zIVH4b{YREI_E|30 lKE25N0Rz^UqA{AE0RY=ST!?FaZ@2&e002ovPDHLkV1iwny^8<< diff --git a/interface/ispconfig/interface/themes/default/icons/x12/pictures.png b/interface/ispconfig/interface/themes/default/icons/x12/pictures.png deleted file mode 100644 index d72fcc456aef479d87574d807cae9df65cac43e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3026 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 Am;e9( diff --git a/interface/ispconfig/interface/themes/default/icons/x12/question_blue.png b/interface/ispconfig/interface/themes/default/icons/x12/question_blue.png deleted file mode 100644 index 2e928844ca8f591ae210abcae8f72588321fc9cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3314 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x12/security_green.png b/interface/ispconfig/interface/themes/default/icons/x12/security_green.png deleted file mode 100644 index aa89c0ec613b8eb701cc983cef01c49e30cd0a06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3049 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x12/star_blue.png b/interface/ispconfig/interface/themes/default/icons/x12/star_blue.png deleted file mode 100644 index b22182a571d2a028003380243f0a84ce1b187f48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3316 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x12/world.png b/interface/ispconfig/interface/themes/default/icons/x12/world.png deleted file mode 100644 index e0453e219515f94519820709462ff00b96210ca0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3324 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/accept_green.png b/interface/ispconfig/interface/themes/default/icons/x16-list/accept_green.png deleted file mode 100644 index d201296df6ba6ae88d1af630c1c0dfd6a5cf4336..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3264 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 FV1iL$O^W~k diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/arrow_right_blue_round.png b/interface/ispconfig/interface/themes/default/icons/x16-list/arrow_right_blue_round.png deleted file mode 100644 index d0654414860b74084f780df8842195022fd96f3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3375 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 FV1m)yMyvn; diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/article.png b/interface/ispconfig/interface/themes/default/icons/x16-list/article.png deleted file mode 100644 index c06b834e859493e3ccbd701f9aacd6e55174c5b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3094 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 k((AZ_5xBX!b%7 diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/article_text.png b/interface/ispconfig/interface/themes/default/icons/x16-list/article_text.png deleted file mode 100644 index 767389ace9b3d2bd24ecd69fd5a28472e62aaa8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3129 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 To+Oq%00000NkvXXu0mjf(l*Kq diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/bar_graph.png b/interface/ispconfig/interface/themes/default/icons/x16-list/bar_graph.png deleted file mode 100644 index b0ebbd5729989f6ca040d15dcdfd935bbe8e61cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2994 zcmV;j3r+NiP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}0002ZNkluopI}2lxm;@C~blYVQ=ghD$Gng61^T^QQJl^&2=lL7Z|8)7Bbv++~&IX%!if}vl zJwY@BUG`f70MHSl*}J5my+H{$E@y~G!_NlKgQI2;M*x5dp_K14m_<7b!gXQbSQ#h@ zFZ>QjMUjfu1`mJ`$~J)9BPjvm>MeK@+S(xZl>wC<4H^m3Od#Rg0Fvem9O3+}G?15s oz^vHXWU=b>oiC?-008#^0FL&gqHNA}o&W#<07*qoM6N<$g2`oy3@`JEP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}0005&NklDxjaXzSQ6e^G8$oPbMNBd~^R7*H ziSClb)4apwa_>2p^PmNuE~P=8Kl_+nWfORbx`~2Zu?HdQ|tdk^l{=}P~W#?>YB}rp5 z27x?)nT<#)NDKkoocj@YA{g%46KUhLv6=5B!}1tag#WKKGe&`KPvCi8cscZ|y7Ky4 z4-lBytS9BYYvkeOa&%fj{XC)xV z)~HHEp7cz)EsMxi_+A>Bz6AD$q$1~QLZDrwOE!kB@sEZWx*NHal?Yr@WBw^#Kil; z%*6vylg6XhKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}0003`NklGrj^E~}413*GmQ7jfil`$h3z})_oEzay*Sf1J_Tjt`4<*)f806;3LHe0wvPYB;A zrgP`;4dDwhxmtn|f`<56IEF6-3|)cm&vzIqj1Wc?LhYYIP!vi9NF+ruK?OuzfseO( z>^&2M!PHQ_7p+ywXJaq0a(WmFi1hE2&7_^7X8YBt2YC>o0K=DTw7QnFnKT-$E*h;a za+^!eoFiZc4(iPp%fr24j&+dVTDDw!e0F-V4n)Gn-NTb37R{q`&X*`8ghXL`#j=o2 zFUmna(!t*Dn&oP(0};hRe%9<0F4b?IM!}r0@=k*3`Uax O0000KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}0003bNklXA#u3F@<1}#zL^O z*HS?Xi^&@ZVq+t|htDHvf?^=DQDGq%g4+b*?#{7sHyaIXBsnnf9k_F6?zu=JkugTb z7){Cm1xeIuwP6>ayzDagXag{}xJlf51wacM6h7YoSXKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}0003TNkl9Z!}p4X(w0uk;QIhCllLp+e-m>d3((R z`*kZX+qB)t<@2hQe0Om8eS}hc@$~3|`~EQipp0cpOvR(+!im$t(1~4G^_$q<$#gJu ze6(EnI}wtd;_`NkyOs*G{?QjeQXkGvH2sk_TIrM2`T41H-TwQX&Ho$#iJu)i+YR#b P00000NkvXXu0mjfKO4BM diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/cancel_round.png b/interface/ispconfig/interface/themes/default/icons/x16-list/cancel_round.png deleted file mode 100644 index f1682573c1579b6a08e36e9f5ad1082b7250734d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3434 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 P00000NkvXXu0mjfdf_YU diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/comment_blue.png b/interface/ispconfig/interface/themes/default/icons/x16-list/comment_blue.png deleted file mode 100644 index 3741f39eb9a2f9da5fcdb3186faae02326dc2699..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3193 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/dollar.png b/interface/ispconfig/interface/themes/default/icons/x16-list/dollar.png deleted file mode 100644 index 21d69807d8ae4a85c0d8d3f35840c23cf691b774..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2898 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/double_comment.png b/interface/ispconfig/interface/themes/default/icons/x16-list/double_comment.png deleted file mode 100644 index 6c9d44d526b96aad49176f18c84d43174f93eb17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3184 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 TJ)Te{00000NkvXXu0mjfu>7^Z diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/flag_black.png b/interface/ispconfig/interface/themes/default/icons/x16-list/flag_black.png deleted file mode 100644 index da546876f0375e78def1e16609532792035907a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3411 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/flag_blue.png b/interface/ispconfig/interface/themes/default/icons/x16-list/flag_blue.png deleted file mode 100644 index 88a5e28c10134501fd2a3966f41912967be129d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3443 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 V7I~?TrM3V7002ovPDHLkV1hHxYXATM diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/flag_green.png b/interface/ispconfig/interface/themes/default/icons/x16-list/flag_green.png deleted file mode 100644 index bc2117659a341020d0dd4318526e02f2667d4f5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3451 zcmV->4TSQEP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}0007(Nkl` z0K#q@y=wybb;GJn;pVQ-_-^Nk+=|Zb9YGL;>$^9Q#0mZDc40(*N^QEL6}U<&mnHHx zxl4qGU#FbTvB+D@_H|!UtyOtZe#-dl7+v8iwygPld6FilT7e}d@^Bx7G^z;`@fcA$ z#f#E&)^x6=XL%n_CLR$bMJA^w*wwd(zz>eK0^e#|6Zc^U@+?ConWtzAL~)V1@*LZG zcaSzxCadE_wGxjf9-*oi0NgjgZG_*XVUBwDbHpo4L{3Ct^Za}B248)=_fDL|TgFPG z6s8J{&E~IV{qXqPON1e9Z_YX|1Duh7*w%P5{g6^^>d@ae|JsLes9Y(Jlq$u;SwHLt zUM>XkD5n9u;T&3Yu=9`&!t=h@Hf~&VUPM0fjQ3~j)ffK3@9NtJrj)_C-!W?!CEbce zeT!5L>Niz0_N@kY0Z>6Xsh+*;j&w{rqiwZxV;T2eNONT!H!(D}&Y&5Kq~@Ifz!hA* zNFw{qsDI8YdIOS}R3Z;)3breTh9T{#yfeb?zo59l&nWEx+GfEDX2!+8wCueAz&T(N*ajSYGZ`2~J1jEe{Vz}eP5}-u1oX8; d1XlrgH2@4O8N8nj=4$`|002ovPDHLkV1f}fa?k(( diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/flag_orange.png b/interface/ispconfig/interface/themes/default/icons/x16-list/flag_orange.png deleted file mode 100644 index 384c4c93641d3ac822ddf4026ba2b9e979ba3b98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3423 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/flag_yellow.png b/interface/ispconfig/interface/themes/default/icons/x16-list/flag_yellow.png deleted file mode 100644 index 8450ca3e7874d57e6c7c949c68c66f977282a020..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3338 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 UKD-_V3IG5A07*qoM6N<$f-Ledng9R* diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/folder.png b/interface/ispconfig/interface/themes/default/icons/x16-list/folder.png deleted file mode 100644 index 3648f25cb6432f2efc3602bf75685ff1d0aa5bcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3117 zcmV+|4AS$7P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}0003f48;k3=Tfb81wPGoGlD%Ciyk020oU7N0OKnLi!1Y?OYAa_X4+m*NNB|hL z8$aEpBc1wKmwG_Q4GRW=L#Y( zE=dS?(vOaHwY`KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}0006uNkl(9q z`c?1s;Z(W3IIX~ zT-U|6ZG;fBz<_C*tD(SQ@=SMkcib=x3Z(<4zid+|l>z8%j&kEtBc07>uq+G5aW;Wo z(==D>4j(XDNzT77VSV}yz|%~ELb1%txnI2bC@`*`C2JS}amR5+f!^9&E;pGSn$?FY<%+a-{arHy@d$^rNE9vsJM*LA%R0kWE=u~IBEHouAQ z2cbWoUgzzSsA6ODo2(SeXqpC)jQ|-{Rhe9@4(#tzcy_0Q$JY~8-1h?}7X_-S0%Rfp zilVT*v4`gep?_ZAr6C$YN~*Z$2P|*wg%heY5#JB+yda$KjJwSbaR5-oE3p-eROXy) zjh?tkN{N*61W&d`5kiClQ?BdM*A+iSfKyB8>x$#LF2Ga-$lJC}DiLEa-Gb-+Ek#Q< zk!p*PYKx&In?gRAZXuP3VcRx9zIJ?kd{)=>yF!Te2e*3>yB>4y7R`-yOe~a`SSYb~ z5b(9M&;4r&p4{xfvMkot)@Du9d{k-Tfa5qbKzzh7=a6nJn;XP>0j3Q&j4CQdtq@ZdaVEe002ovPDHLkV1j^zJKz8S diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/link.png b/interface/ispconfig/interface/themes/default/icons/x16-list/link.png deleted file mode 100644 index cc6bce91a3a4c5c098bbb8b13709b2e590b527ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3060 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/minus.png b/interface/ispconfig/interface/themes/default/icons/x16-list/minus.png deleted file mode 100644 index 65942d74e47b95ce0df82cbc8eb302e748599624..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2883 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 Dy9pIX diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/money.png b/interface/ispconfig/interface/themes/default/icons/x16-list/money.png deleted file mode 100644 index 65f3b9e3ed43efec8f554d107f8af985bbed20d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3228 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 VM4`ERwXXmG002ovPDHLkV1kXLg>(P_ diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/pencil.png b/interface/ispconfig/interface/themes/default/icons/x16-list/pencil.png deleted file mode 100644 index 228f0eeda8e57a80b9f5c1a0f30fad3d60f169f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2996 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 JPDHLkV1jI6e4hXS diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/printer.png b/interface/ispconfig/interface/themes/default/icons/x16-list/printer.png deleted file mode 100644 index a9d4ad10625da78f84ef97526c0b4514f7585497..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3107 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/question_blue.png b/interface/ispconfig/interface/themes/default/icons/x16-list/question_blue.png deleted file mode 100644 index b5548f130908723bfb43c46cba4d32ec6b726ffa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3402 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 A0RR91 diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/rss.png b/interface/ispconfig/interface/themes/default/icons/x16-list/rss.png deleted file mode 100644 index 4b18863148d27f2b4062761d3bebfb6b8b72b32b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3072 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/security_orange.png b/interface/ispconfig/interface/themes/default/icons/x16-list/security_orange.png deleted file mode 100644 index 2b49f6d69d2c23c902480265e7c1a77f5b59f13a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3041 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/security_red.png b/interface/ispconfig/interface/themes/default/icons/x16-list/security_red.png deleted file mode 100644 index 47af1a1254ed5330cda3e853c9c4d7e821c71b2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3058 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 A;s5{u diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/star.png b/interface/ispconfig/interface/themes/default/icons/x16-list/star.png deleted file mode 100644 index 0fac8f818f4c84a544131de272e099cba3e7c7a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3323 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/stop.png b/interface/ispconfig/interface/themes/default/icons/x16-list/stop.png deleted file mode 100644 index 4fcba9096c81f60b94f527f1ca2b55a5782e55d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3176 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 ThgGUw00000NkvXXu0mjfqMOb$ diff --git a/interface/ispconfig/interface/themes/default/icons/x16-list/world.png b/interface/ispconfig/interface/themes/default/icons/x16-list/world.png deleted file mode 100644 index ad693127e1333778ffbb48cc2459087f923c19aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3435 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 a|1|*Z7)n0!rTh^90000enUef$pYq}8) zRSGWJ5Q4T;g)VGd*p;G-N~=3TyAy<}SVa&-SMGxg#f6e0f(Q~t5wxYPf}bb^Dh6wd zrD>Y9Cgk&eSeDb~~I72i#6)9Uhkp?xrRuj|ZBy-bQeX;%c0SD9+%)WnseaEh1{`;HCHy&e0 zh`i!Kb4$x-(cpo?SuJ#L^YNGH8n}e);!k{eb`$9z?~r(L3u|*TbgibmV)nq}^&awi zy>$h$BL!vn`}>1b&^a(FH!{gd=OZLK?=jhAIvBj|2v!3Ecf=G=&4`48!@ z3;m~9c53q!FJcO~{QP_r6a*nj(qFY3r~*Yr`NTDMxud40K~oSTP!t8CC?XsVgUBj{ zOlyqF)axkp5Ck(6%CJWFEG;Zx2LUT5B1%ZvQv$1_aw~IiaR%Rp+F_*qVHK~0LRj+o z)OZ3tJ1j~BiMxxCX+MG?cN5qSM!fIPIb;{tVR7QAreJSb*~PSsj8QFfjDQe=jfhAO zm*ZXcO(dmfqwx4G6rH$@kFQ!`PPNh!CCEgDG&R+dnx0-vu}#1f5F%?$Wb>TTIt+F- zX=_E<^s_iCf%Ra;?^h_cOJE9!Orjg3V|2~>!p1IAjcKa|5zjhSmzR|tJy7Ir1)hO6 zIFH@H_fM}k$B917ki)2`F2#e#W3!Gk50h1WGW0r~juD)9I-OaCnPCJ10p#wl$L#2H zEO_3aeaVH+&k5-FTj2fj6(K_!j#k=JM@GDMaE3)b{za-#5bzFb3hY&lTEI7*hl8$c zc!GdH0QSt@`hlw216e(7gI8h%26kO4g8pST!-v7`bP zhYcO~-E*8NrJ1Kc%0gqwjDX`f?Xkq$rKG{F`Q^zftmoM9@?Pr?**nl19_o0;8o<8r z9STRi6?6ak$HTd2b9_m8TyTD}Ssv@`p{}351sDKOAy9@SyE`@j0000$xRn-a@GdXs&E)>oy&v2y|VCEX#<+Vo)`MKqEOO zZCV)uD@0L%P8gQRo`v~&{6Rp|NyrM;71g7la&KCBCGZ_z-`s(X+z-t-6pdoR?>90D ztn{#~sBq-h!c*3QHv@g3J1BAao=z0jbs#Wy-*m90sp)ifPR>VDIYpqVD&h&59B#(j z!HaN8h1hxM5^4`$#^;fnNN67rwT*z!_CcAL=+Ba*I)XI<>OfUB^AhQJQ$q({-t9Bz z1{6e=z1Y0F7k1Y&!mD9~f_=n$fyS2Yu@h33m`=g0NCP^Sf4nyxl(qJl z3$v3~khQTGvmq~@Jnq3l!VAXcKvSu&y0dYDNfB`LxeNj;V<0l)MR@8R3~mXIf&dsh z2b;Qtefw`Byh`dqadj7@*MSvT1m5UX7eT@3A{+EG2`P%Q=;xxuEGpW9p%=ro zSvYlb8Jqk5PVf2rHnkr-@Nmv~&wHNtdEfIMgCGc?(MxE!d4l<{`S?OOGn79L#ux4jtj}UL!)md>Znc(CX|uszQ2{Hht#t0~?hdbK6BI?!2u6ZIoc3ikVKf<54 zzwYAEY5X8ODk(6!-EMfj%aA1LzuL{DKxObp&V~J+&dy#9Qa1 zMlNEDvmX08E}`YvWkg@xfX(5e6eTD!gA|Je9ZqK}VU2(*kYzn9eLRTV!vT6eBW8xKLz&INXf(o5 zknp5#Z!i&!CaK6zh4mfDD8kQg?==OD?S0xoCO(eT>^Qm(b!_Y^x4Z6EDC8>s3Nor{b|Vpsr5wOVfqqmC5p3lI+<`aCpTiw! zF1PaV)zQfTMHyu-*Mb<2-!qV%f8jxb=cEg%&Hi#)#PsttuF$eb`2Jgf0RZ0wQK!qQ RYgqsQ002ovPDHLkV1k`SQhfjb diff --git a/interface/ispconfig/interface/themes/default/icons/x16/address_book__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/address_book__pencil.png deleted file mode 100644 index 45e8d1eaf1d0e57320029dccadb6cf32bdb0809f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 799 zcmV+)1K|9LP)a3{%5=2%#cH3nRtyF$^^_2z@DfsFxm6w9=y5?4dsdCP|=%nHV{Qk# zKb*6v8@u!F-g`RdHg!_bfgk7G@B8lW`+eW}j*8q9`J` zDqv4~0p8oMAZ}|aOb5>>&f)H>$UfOjOAJ9034EQMts_N6V^quqb)*7Ol$0j2b4pGH z1|Kyk-?IGM&iuzRlDG((w92nli->ffe=fxSgmeeS#s=@)2sjr5R z8=HC{OB)I%2JT~D$z@E9_bIz;`~g$Tmih}gw zdd1;!J;VI09filL(0#W9D*sNzCug%5Rpd2l*>w>Ljf%iOJ%T0IFzrDAByJLiPgLVc zdm9qBnDLD#${YlFo|F83sOgJJq=;bzYPDJ!7K1(tG0_Ivv_%{}I{%d3Y3M2 z1pxyQ8$t@C)kut~3t1S6#y~)KzF3=p3L0Gc7aA8<6Xl_Cp&J$;F={|mh(*Mdqzbk{ zXt{-=l-|c&XD%(^`y^jx=FFMzeCNyzCkO(lwNjMcKCRW@|MrgJ(#_SA&@>G~%30do z-`{338euk>U^SaJkZG~NnvnrBotx=?RdaLiRyILZRh^*E>&1ndnC@IlLHtAdE7qYV zmYv!h#gnuGgTvuKRn-b)S^lebBUL~&c>I@pJ(Z1(t-69V0U-pEBq5PVKv6XcmDZS& z$#WDutX2yMWmu*$(fN7&M!?ERN;0x{yJ4?9x{-M$@)^P5yD-uIu!>`=tB5WvXj=(* zc36@XWbUd(e#H?C_jZCsFyeiO&!WiHf{6d2uAr>0?qY6U-k6>_O`s?W){+uE?7>Li zHDuX}P~C7HwI{kTF>ni(96K#hhN@_gr>49)Hk*rLlYl8u6jg5`n-}kI!HfHy`kIh+ zKig*|upYz~7YW5?2~2^aDyhKKm|C;Gu<-`($3%Gy?(udki6Z%_1eTSkn+gKYeQ+M{ zz?b)f>!ZIP0d57Jh9-1RKA6ea!;h2p2zZX;7{Pg`(^*)ZpFlhwN6CRRm>GMF`M@)* z#b(hFz5{P^1RU*ZcDWrEkcUh8TQ_>92ki9CPXG zs1n6?cP#FsR}~ z=wk?0@>ZZfs(=z~V+1UKJ(geXDk}8x-1j#SRS|R3p|G(huS*IBdzgZq6rX%PUzRd} v(7*n%ANo9;Ghx4*>=M3At8103Bgy00000NkvXXu0mjf#W_`Q diff --git a/interface/ispconfig/interface/themes/default/icons/x16/address_book_blue.png b/interface/ispconfig/interface/themes/default/icons/x16/address_book_blue.png deleted file mode 100644 index e446b1b05830238ff93e2bd645ab436b651250a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 708 zcmV;#0z3VQP)cWvY=Kz zcD$aLxbJj0;Bq?Qak*;ny4~NHjf<5dOrU@!hpCI_6S%3ldy@rj+{S%$D>obds4wO$1U=P zJ;-is2*O?q95hX%mMG`So_*OR7E%Fwu(i1<_IbbwRRwRp{lT5c8GK(@mh+eRGT1d? zn9_shmX=wo&I47-vuyZEi9>w>q*k+d{%#IG7c+SEK7skvHUwQOx4<5FHLXX}w3>p- zi?lGm^pB*QxZT$&12f4@%%yg~PeQgp3fKe6x7D}c;On9ifK9=|N)GYVmONxv6#0;N z!#M_BHG5Dj6jU>pgG#T>PXx^zRPA>8SQ-sG#Xo(XoeErjF>dAaSv{Hbu#7IkBSHxN qTT2K2%zAnenUBwCRU-WTFTenwNngC(iiVN^0000$Fi2k`Mk*^{QEB{5HED!=- zuczf69!gZobBz1`UnDvODr7As^Oz(EG+bAp-R8JgzQCTpTdziiw-N%nh26h)^>;&Po^YK`b$CDo^Uh>fXc@isyjuFJ2FWP173bLa*@( z<3`$8C~IG!X74?NJt<807*qoM6N<$f;*NBQ2+n{ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/arrow_000_small.png b/interface/ispconfig/interface/themes/default/icons/x16/arrow_000_small.png deleted file mode 100644 index c0f455af3e99f0b7fa714efb7efeff5233dc859b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341 zcmV-b0jmCqP)ni3 zF+_Rc|G$4T|Ni}Z=GV`kXD**U&2Z?%J%$KB1>^5uz7zoEFbrWtk4C$tkDhtk$VuM% z%)s#F4?TV znm{lRfzC|-`{xhCzrTMOn1EjSs-VQMr*8#VGZzof5`qT6z~}exfu{XGd$WHIC^jar nb8|1jrjBtmDN}9$K!5=Ns>*MI2FJt%00000NkvXXu0mjf--D3% diff --git a/interface/ispconfig/interface/themes/default/icons/x16/arrow_045.png b/interface/ispconfig/interface/themes/default/icons/x16/arrow_045.png deleted file mode 100644 index 8ebda3e6665027c9cdda94c84edaa4c74c29be7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 585 zcmV-P0=E5$P)q$gGRCwB?QqM~pQ4pTp&5t#Srlcf7 zuuXF8sfA~cT17%Z@KB^kAs&Q6uY2pik!!JdsEgu7J%kn%Y}H&!d>09LG4&FRMMHbZ zW`AY3GixH*n$klCzBl`3-h4aXyeGJ>3&WTQLt22AnYEvH0YMNxpkx23<6l=&@9qd3 z$LUWVqb#z+w83b%2NO`SW$4QERF3iUU!VnL52@@p z>>bs3Vj>AGF^C-uAh`Xrp-jGf#>x!~nvpRN@yFwEuy@LhwtjqcQ048>G3-G1&w!?m zraWDqXNT7ojymoobMXLt-}=IF9z`h_R6CYcsFupgy_aYq0isy>xWkjl82px_5Pukh zvroI6;%1|&w)iHHr#*uA>-M~qdIF&r?+f9@wUhL|>yoEE#ruu+1gawl-XaJg%w-Xy zB6~Xn>B%?H;OoxG>Sv6RKBMai76I$Ld+iZO`27G8rlz{+&@1nHyX$)~$44-X{SjaQ X<7)UwU2vy(00000NkvXXu0mjfBY+B& diff --git a/interface/ispconfig/interface/themes/default/icons/x16/arrow_045_small.png b/interface/ispconfig/interface/themes/default/icons/x16/arrow_045_small.png deleted file mode 100644 index 0f1bb5ad2f7a46f523163483f5ba21f77165c51d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmV-W0k8gvP)?);emZHlDck?D6~OKmRc>eEs-|xIp~+>637@3&PVl#jdJteXS&Gi6^wE&qnSXf!p*|@mA{s9Io6AKH&r^OM3 i4H$t*nPLL~0t^6Z8ELlB4epu%0000>7EV<9|f(+3!EzCx?j!?pS$$@V{in8R4QSt;knrDJk!t&1p12HI?TxO(o0WPd&a zViv*FAm`@gq_g;c3Irt`_->y^SWD-TN7 z-NN*A4X@sO*|E3v(=d!VT9yU?6nrbovZ54F=imOy3@A}XNJ%nnMC)k^?5Ay-yXT;g zEKLz^Z|l8p+VHIm6~l%KLv5=}PQome_6`zD62}Or=0aRCfzAXCR9PUV3|M%r)@pj_ zb^&yjpCRb^uufhXI64H-t=N=$zl1`%&u=4XH-Y>45Wrnt=-=@99qhAr^xiAk_(@FA zRD+Uq~BWO2Z^2GiwAnTc3Q397;)nnM002ovPDHLk FV1o179K-+s diff --git a/interface/ispconfig/interface/themes/default/icons/x16/arrow_090_small.png b/interface/ispconfig/interface/themes/default/icons/x16/arrow_090_small.png deleted file mode 100644 index 4d77317804f13e67cbd2dce2370d82a8b91ddb0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 337 zcmV-X0j~auP)}7cS_8o(hf}-)h&1cS@IChVLk%{RnQ3m|~_b>hT&tD9jtgL6=0=)pF z8Gw8fR(3YxV&U7T&p=mv1+#zsX8^N7m=hQ?L>ch$?ORxAp1rvDtQ5od?`MJ0$?)sP j53B|-j^+ghfB*vkupfB^KjayX00000NkvXXu0mjf<@K1R diff --git a/interface/ispconfig/interface/themes/default/icons/x16/arrow_135.png b/interface/ispconfig/interface/themes/default/icons/x16/arrow_135.png deleted file mode 100644 index 7a3b9638d4a7ccde5abe3d39b22ee14ce80694d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 592 zcmV-W0~9xXeb=dBt60Lx;iK^43Ft%;AHS3^HacJvd74E!wvm;;)_j~fcLIwq z*X60RIaEYX1i7tnVQkp;y@MiqGEfl5GI%||Drvs5yzoH|oIZ}9=}ZK<8$)hvbzU_k87vuM)Qj-tYdS8VhTlSlA z%(I%G$!ffiI3dZ8Zx2$j%eSv%=+aH>tj*QsgLkyXJ=`X4X}>`158@rbdmP843UM8) e+wc5afB^uJU=)eQ2NG`p0000Zh@ zX1MV1%NIdW9-b|0Pcppy^#A!!7Ve@yzkUH_6$ppH*H0fA-g5HroZNbnfzQsI;TI3j zXP{Wx=MNvai3-H8A3re&vN13`d;I?Ssf{OYiCF2VF>@R*SRY`6J@~vfB(||{rLkjfZ@;2pJ(6SzCZK*#5tdVF;j!h i0LIazOt}F70R{k)V`?rt4TPZp0000!15?s}VN)|e4 z>dd^Eyz##2WD-o`rWZ~w+}v|N=f2URD8fOEsh^ogpOMLCVVGtNW*A_MS@hRDH7IwI ze>WN_Q8iv$I=f$BfLUP}+PwjHcXwc--WQ1?D+~hr)|KO&JQV&ko3S6dLN7TG!oGjw zG|lgl?}dA+`eeBOu)kgX0PQhtqGnWbdkw;$Z*e0|+X5+oKb zoaE|AO0dqcls60wuRm;dCs5>v_s;W;4JYmJ%ki-D-G%FU5JIGD=(>*L_!tDmQxOBt zds=zEQk$B}!IcrVT0ZK2faakL{QMZ&6XR%477?M^@=R@J^wp1rp( z-nq=bd<$?Qr{n9J<=QauG)=4hD`J&I#PW-`_VnU)zOx4iDmubgiIV&8ukXJAO$nqD zjAOGf&s_rwr!0!uM;9&r<7HKKDMj^ngC;<0^;Ne($3`Y+pif`5wBnigC59g#mtHq)$ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/arrow_180_small.png b/interface/ispconfig/interface/themes/default/icons/x16/arrow_180_small.png deleted file mode 100644 index ad9984967225d1e7bf3b1dd1ff362945755d9d08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 345 zcmV-f0jBECuOB}OqCCWnfwb}W z&!36+!vBB&V!nU*QV<)UV0`GrJ%-DtPc!`b`ST3W_A@}ands^n(W6nN>d2YYbQ|My z?-630%nS^o>{xO3w~`VA6ENU@|NLq4_s<^_pj+}k~OlSVOU zAQozqPME?fU?7SHEMlSoxzbv$@IUYm@DMBnt=v)}m4y*3QYkJXN&JCIINT8K4v#ar z?Ck8$?f7OAk2{kha0B1Wym|B9eDBSBmQo7Ci~@!nww^9M`U$JB=PMHeS(>8gI4HWV zfoZ+bGq(QtcZr%$#NQx&Y@AjYf*O=?QaB+w>fyNn)^g{Q{%-Diq&Cz0O}b z$2K=Pl0+JKUID?r4^@d> zFz^d$!i^whjwp(;c;h0g)wa>$F;V9jJLMsG@guY>t6FqR!GR?U|E6A zQ~c&WcG)`uMh#YD2jg>B8R@1dFXc|VJz(5(5HCM46}VeEj(o&N zmmmqL@8cIr@b27VvhRxzlyctuI-YHy=vUtP)w+Gynbldj`m~`}6zvOd%cy z(?}0-<6l31v=HTm?_a(c#|0=DGktlxf`j9~si~Q`+WH;$Zhiaw`36y5`1yChJo@8g>{#KpqTuV2re=$r%R-vMGqM#i&1 k0;>Uxqe+=^0{{XH00X^eZEf3>a{vGU07*qoM6N<$f?n*KL;wH) diff --git a/interface/ispconfig/interface/themes/default/icons/x16/arrow_270.png b/interface/ispconfig/interface/themes/default/icons/x16/arrow_270.png deleted file mode 100644 index 16c2c20ed734df6d90fdd1e9eb084c719c098118..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 621 zcmV-z0+RiSP)5CjsAW9}Qz0sK}AWyi?{IF|$vqyUJ8$i+HA zK>f@B5c)pih{JZO{Ujk2qDazcKt|C(S>QwPD6c>_z01ya8wX0|9zen;Fk==(4-oBj zphk{k4o`HDhr2Kg6D>N{=4KnkVihsxP)Z_6lKt<1o@gG)?`KnqB9Ovf!XQiw9ED85 zTDFMtJsRc)uOP$sV%hUjhsOnfMxQA}V#W00000NkvXX Hu0mjfVJQ}= diff --git a/interface/ispconfig/interface/themes/default/icons/x16/arrow_270_small.png b/interface/ispconfig/interface/themes/default/icons/x16/arrow_270_small.png deleted file mode 100644 index 1382f7233cfc993020637251caea9f2efbde3868..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 342 zcmV-c0jd6pP)f)`d+&Ic{4Da(m`SelO+hd;LC>(48MQE5 zx!~L9&kVnR{$yZbV`F&ooq^%U*RKqJfChjJAu0_1|NA!+sQApSD_0oqePv(((I7rZ zoG2H3|N6x^D#O|M&^5fgL3ER7up5|H9wH^3omeP<_4>~QK~XF zbc9{`DZwA}zEqIx?!vIFlBQ`>g;J4iv=hMmdyEfg2&u95ZDn~?oUUr<&TZC+O^9p; zi3D|EObAR%b!KPzevbk<=LpC7*7{B4&ZF_@sk3kU?NmP|+Z$(SRoCQeB)L+_U>C*# m-jMt$A;tdG`hCv71sDKxu_2LM3@Q$KYA^P`VmSVmf#K_?kHm$+=MNvg{`vK57W<#CPEYoIXZUVv&hYx~`!8QV zej?6*k8j?9s6M%<2+8YT7#RNDfBi*NPL${CCn62_`RyA6!~g$h&-cuMi#-HlV9cDw jW&q=8Ql{JhfB*vk|7363MNvhy00000NkvXXu0mjf#@?lG diff --git a/interface/ispconfig/interface/themes/default/icons/x16/arrow_circle.png b/interface/ispconfig/interface/themes/default/icons/x16/arrow_circle.png deleted file mode 100644 index 728c405dccee0af0fe7b8df233c18f4c02fd3823..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 799 zcmV+)1K|9LP)oA}qHWMZh_arZ6yK6ac02t;v*Lt70&K$o>{6Gsys63ZjMwtWM$-$#g; z$rr(ODk&8Lif%Pwtbm;3`(q@T6g;%NX8U_rRe|NWF#;lB=o&B#3pB%o6~~K^Sd0so zThR5dsl2YLGz(SHU=&Hi#as?@vJ6>C0#nmT1;fNgVn{6E{62+uiSKf@z*azWS4$K2 zdkgy>M!P>Me~&ieBQYeFaLNLv`7*JzF1z6%e1lMBeCR|^;~{<&NA-z-?1_!|NDPT3 z9Kxl@zYrODM#eSBhC_E_7ti->YX-Oc$s?()Q>D=mS~-4!6y zs6o`ye0Ku~XHP;+M-R|k>B_p+8e~?!z}o9sS6WD+C5@1gYwrn=vk2{i{l_2dAQXg( dT=$m%0|4kawA)ALc#Z%7002ovPDHLkV1mSpa<2dY diff --git a/interface/ispconfig/interface/themes/default/icons/x16/arrow_circle_135.png b/interface/ispconfig/interface/themes/default/icons/x16/arrow_circle_135.png deleted file mode 100644 index b171a82e2f326f2d57b02c26927de9385ec6e517..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 848 zcmV-W1F!svP)2du&1U>K$gL*0mW zL@8nk@gAEE5lxG#stT&2z~`II!0jXSaIAi{xuN8EgR7*?UdnkeX3yl+wsl_YTwcpx zmo(_dSa46lUa79vnvKwPvD;OXNo#gZ*3D^I+09xHR#>b@n@a10W3jtgrD(fI!l5KU z$tD)GwhLWudps&YPEg7Bja($QE%MYtO}WL<>bAMXJZI_Ya2;b9dfA@lsO!rsp`O5w9wa5X9Ft(Rz(!OMS?;;PiJs@FgWGkf5zCE`n-|Z zP6C4;9x+H5$m3B^<$n|a_|NwQ`~^(VRbFO-;PX!*BpxG#&>4ZzWa@2bbUIQB1NoFF z$fCGdBv5vkcuep)9U7e$7=&SYCyLpKPX+56Ax(`KyT`5_E z8LFx+Fqu@qcj>G@Ju&6@vA8}?b9IMYj=B?G_p)rV*h(1)&#xvlSsnV@0@x3jVdUXp z$b0RIKc?dGoD4MkPPZ3xDM^P(i9m^ofwdRI(`sJm$9Y6)j$xfXFm&D;-riE1yn$O a2`~VOMTP)3T6rfGs{7{3XQtV!18%yhML;r6IE6yO*RC;(A5PjCNF$1+*@j%L9$ z#x4G_gW7VONuL{LC&r=!70CiicVJI94!qonkeBN}>2F_5=4U0NcI?GN0>`#vG-c0R z9*PY7$SY8(nrb>%;qzrxApVx1x2ZeU&{mZh@5E?y;N`pQjA7f$c%&Rn0!&?>>WF&6 zySxO&lB|AM;lJ?(aTq6(?aB5&yW zV`NVdpCU3S2M^ z!$XzOjcbi49!QKEmPHy`BOI(ef3>X3GO3=cynRsDKzeZt=xEq@~Ql>KsL;5r>Bu{D=tU3pPWf&kqeTmeNHV zqG#_yb5HMIV^~~E*-MY^A0=>;e;(mOQ2&@>G7Kh>@0S1r0EJ_waRYNdFaQ7m07*qo IM6N<$f>FY8$p8QV diff --git a/interface/ispconfig/interface/themes/default/icons/x16/arrow_circle_315.png b/interface/ispconfig/interface/themes/default/icons/x16/arrow_circle_315.png deleted file mode 100644 index 58d588012d709d671f30b78061c92c504844eb35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 830 zcmV-E1Ht@>P)^Q{8Vt=0!%QJP zg6OK{35Z2pY+l#(U4y|8!tb$nxA+`2P?8XC`7Wa=UxfRyvG7tLKgE?P|M}IfKo0GH#v;X z{agvYM>BC$e}IO~Nuo$&A;j6+A%8%`c%#bqNd?-NGq_PH*rdQu}O#@9+!DP13@y<{omG;aqfx#1P4abh! z$%{8DTlE%X`Nv*fE=nv14u_=?lc$xE4B2E7a_KbeBQWQb-EO*wIsWZbp{Y_X8xIBW zV=20w&WfA~JUy*m^x!UTd%70GF331?*F8Nx59YA3os5Efp)Q~(^U<}RY29XlIBPfe zj}QBKA0Ngkd_=tGeNA`zuMG7ixCTOVV#0O-Ycf?Ys6md<6WVu>vsq`Ilj8#=m4MC2 zg5wBNJ&2-0;!;JASU6@Q^X%m(tt2m?(FyVK&EEp(D6o7Fu-#XKtal)6?Cx?i?d?wD zbkUqqlQwXJW&i*H07*qo IM6N<$g4nZrC;$Ke diff --git a/interface/ispconfig/interface/themes/default/icons/x16/arrow_circle_double.png b/interface/ispconfig/interface/themes/default/icons/x16/arrow_circle_double.png deleted file mode 100644 index 5f841381e3b14f12bc316c1dd1c16fb8ecc5ba8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 832 zcmV-G1Hb%k7RCwB?Q^`*gQ5gTGo$1gHOABo+ z#VC}DzyTxGSV`O>=|PQA5|`-NgNc8F2XCHC^yo!A6c1uF#)x9{V44sTQw@zklrAh5 zSvo9jr=5AT`8|q=(Zqw3{N~M@Z~c7>W11%X&%@H!iTalgaEtSu%8(K=JpV5iInD z-lFJrcwlHY&LAbJpn@XnKqINdU<#6X zB&ezaAc~5{1P0$`3ZvtT)lyjru8MMNtH4=7^4U*r)+fl%9raww^{!WW*HSM;|_$ zsN{%FEEeV?GV>*-a@`&N+MVtiRzaO(D1A|(Aj@r53**pC15%mgHC@wgVD!6)c)3`F z!s;5$awwfy=252!bpvQ~5V4hkRMw2Vs+k+#MhU5KTon5eMGCaVF)5#qT3J?*G_#fi zgX#%eZ6vb%VYwjJ>I}vk}wS+cbw|C+F>^E^z z1TO7rX~J5Oqc}9(GG>A@IN8?|!ZYmdY;8pyn9GVQcpss%iUUGo(_dy1RZbz9wF>D# zZ`fY5!xh0=gfLY|l^ED}p*NH)Tfh+PkQ|>*qRmq}jT;V-=bBtBJ&q3!e{$5>Q}cXX z(mWI{HeNnggT;e&D-UA@E4b<%Fcy6tCz3>?&lg|cs??w`a0M*h_O!D1Z29wpQm3;m zAV5pAP4W9oI!p!*h23Jpf&tKR{c0$2ub-MtYKs$5hHfLnF!Tqls)w<=8o<*oK((J^ zNZtT%*EML^)Aq-jiBprt$eo+p9oP^KgdM^BV~gp=X|#Ml1Q-CtgsnbqEDVHL8GF<5TyiBDFi4MXc_U@E^jRQInjEClyQW4!kg{#okP`k?$UsvF=*ClPlvnVX*1vEv`$C65y z)e>Dv0_6#L^Eo_@q8~Uxc%|aOKrnkZ5L|1%+EytoFT}xOHG-PW<^|;Z#9}WH402YX z-{)hCsNPQqjHs!U9$gor`FcmKl!#?OH0Z7w$iD^j8_>UEHu4cw)mDRZ(S$~|k-Rky zL{aqWrGD^a%(p$;D4JUf>10x0+cVpQgcM%~{tM@>Wh^6X#J0AQS z0f5wgu}Mm0@|i6uHo~*VLp~J#h;`4AMT4PXcbWZcG(!_qPA@CjY&a*NY*hVfUjc#lJN*4L!NoGIWg62Lz-zo{u|bh`yGT1@ciUXQQxMyE6{GvK90kNcS3 z$*_@8StvwVz*WeBujl24l1%%t<#R;BIS&Hga%*@iZ+*mQJmEN8yI=HF*@@j=pbN0* zT0owj@yGnrW6Hv}UOM?AKvyO}uZ}l_^d^^9Mk>@!sBi7W*Z5W0DCd#r5rfF(>tXAtgk-bdnlTyl4 zNrEJfHDnaQ8peF#`*5q((i8<)yg@&67yx2w}_ zw^KZwxhWDU{~$4`_GLnYHD3(a8fls~m>>)l4i5v&Kb+7cc|l^)NAY~_u6XtKbHCna zkEcWsDDZ%K$l?1EQIz7~AiYPe`Xs zQ#xwdcyMn*eAw7sv}72B*PhZ=qNwm&+_LTHI^NPWPZ%yWbG`o7v{d4qZ+1pbCVX0i!~&2~Key owxQgdgdhnqpN-2t=U)O0010$4I&6yZ<^TWy07*qoM6N<$f;Q+Gh5!Hn diff --git a/interface/ispconfig/interface/themes/default/icons/x16/arrow_skip_090.png b/interface/ispconfig/interface/themes/default/icons/x16/arrow_skip_090.png deleted file mode 100644 index fdc873008f1e29957c7d421115b100dfe5d7f20e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 619 zcmV-x0+juUP)bht= zp9P7G(NYxwwY7z5gDlO@*f$ao1wVOEG1_epkC!UvLh=C4t0Ki(b$P~UHZ53|i&o3R z+R}_c>*PNhK*8dqrw^|g`}-zr+e`J}z{I1)s|NZ1hsbekeDbrEo5taxgQ+P7T~`o> z9EF06$w>{Jj)T?38&M`a15xP{c-}m9V`J-EJ#j4GyJeWB2}#nh^W}Fvd#WT!^TKSW z01><%hT-rg9AOabb-O+EdVj&#MR=lZvZBn1z&LIB7b zOfeptn8*VFCdj~pL%h;`wQ02 z%gnRkr;A83Xg8o2Z#ULQ{tO9e2rCP{qOH8$oBqUk=>zANK5|ZTS{Hhm znvukjW;0NRfbpR7v)OyIapL*YYKm`#x=Rfj+DQHhFaYL!2K#q|A_V{d002ovPDHLk FV1i1i9r6GG diff --git a/interface/ispconfig/interface/themes/default/icons/x16/arrow_skip_180.png b/interface/ispconfig/interface/themes/default/icons/x16/arrow_skip_180.png deleted file mode 100644 index 3dd0aab5b7f98bc38281d25987b2ea6474a0ead7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 619 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 RmQnx!002ovPDHLkV1hK=>}JDI6pm6x zq|@?3=b3J2KTh8fH*@ZVhmZ4e-sgMX=Y2maUk;qk0<bvLhY5&GZ*#NN!f`)gHk%L#1i>)*2nM$JFC(8g(n@7gfe-;w5fb2Yxu$$_ zStdU}zX+W!4{Eg=R_U2n?>R180aRC?G)_;?sjOBDCSSO@8!MEs6+vy zA!+92eUk@!``#Uk>-oU!W)PiATkyPI0+dG&7xTRMC?Z71g25nKB!=rb@GkbX zh|*c7hW%LPz9;XxP&&{@4ezWx5TABYqs}H=EG|rOyi|@>n*v^=e3!6-pp4)YfuZ{@ z)g$tp_@slHymkqVBu9n}Y55h>#!F8@a){Y~fJwynu-@vR2FZ5!y4>Ov`Ht=76aR?+ a1Q-BiRwwkV(5e{#0000v;ZWFyZ6*lmEh009#R$;3k@ zI>;~p$6`&ehYHsguS5n2Xd0xW&5dG8gGf{W>jb+Vsb>&Ks*svaH;A#=7gX)r>md;- zlR-3Bh-ujHuK?MMwzT*~MfnP!uM+Y2JOsgs`S{Po%f6=yU8OqfKurO;SWqE%bi9&z zEF{^rm%;j*ZQF{r++xnM{IZSxin&!{Kt+ zCcaI0$)(YkUbbu#;Hv=Ye84e3aIgw+6$9>4M1HHl)Kns&s$@wXgw0lng_LGlX{?q8 z_}pI`dYCfA*)7jt{{{LwR+Ia!40^&73?)hq4tG&Sd=ipWHA zRhFAX4(Erlom&*x)9e-BKYS}M?J+&F9Xu`^$wSn`qm?MHkwe&NloHAar35FT1lKGB z!f<7VPD8+0L57cM=#9}vEj_?2^kt-1ee3wHM#pc)beI@J^ZFZCvZ=eW7G!5c~mKdMcz|&F$JAmD3u~0-Lr$W4ZJ<6xkUl2TgEI>`f zViBqBjhLwY-v%Tz)!HiXvOI-Q=m->L8Ge5imX+U`;TJDu8YR4`K+OZ&nN=Zmb&W_S z&XO4){|KM25-yhu4!6rmN{Qx_RZ)1 zLIGj&Br!BJDF*`8c-+}9<#i-zTXN0t@E*D_7QjlUP*)?O9)~Xwem$J-ci9o2|4C5+ zpU4yb-Pl)90tr%-q`k)f)(A%SD_Mx)<}-oRt3lc8LEP{nb_!Tj0C^g5Wd(5BfCE*3 ziw&4IiYaO_b}bg{d)hZfh9~w_0Cww^FT&B%F;{cz4QR&5uMEUncW&?xA9PDbF`b;G zks8R07TR-&=qJ*p$1?Fd@dNQ0G0j}@Aa(ElO}_nZr?f!kOsGg&=rLVAi09`oo#QrM0zJw+6w2+a90+yI={J n7|EfXS(o=eplgKe9{~mcj1~57=%dzB00000NkvXXu0mjfs^m#S diff --git a/interface/ispconfig/interface/themes/default/icons/x16/balloon.png b/interface/ispconfig/interface/themes/default/icons/x16/balloon.png deleted file mode 100644 index a1f23f5d0f7c43d3519cd4b4afc6ea1b2dcc0b91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 670 zcmV;P0%84$P)mJQOd`Emh!Ov0i55@pSub7U5uz?O==wM{`$(`#Gql50wU^k(%3xES>Mx(Y|EaqOM zUwxdp@u;?3xR3sGjslFh-rW^By6x2MF|XPk2BU#FH77DEbFK0CdiqDkde#o?i$6`B z@Knp6uHn^}W(`aZd*eqgCB2<$7#bA-h5?xV7p$OOH4u&;x{wqcM}f(p*S{eVgGSZK zYO)H{^c>Xn0vP5`V60|Uow`8@1Y?5Z1TYv#%`BXu8V#zod8iwC;N1M(F6y#Z40OF@ zaaJk#oPRf)4Q=cj)K=aA<2uOH^Ut;sY*QgSmlYgm4sbIyd*|ZxVqre7$SSxb-+!@E zs^l}1_ofBMQGh*NSSsaiKDc_`jP2OJC6d@4^{ReVk|d?sBik|$?>>3^c5B&Lk51Im%>)i*gHeSl~iMbD{ympx6~1ld?CzG9@AFl(FyW zrD%`q`xE^1gA-8!QDi(MdcP!ynne-IK?sx>;}*;~aDC+I+=!6E5;(sB&o z_iRiRsT+I&2k?PK5X3d0)E7RhD2UL+8IYGA6c9oJvfva((Tx{8zG>iv1z=3vjEhr* zR}=z)pMX5sRtIwnQ~kF1eHkY2`UFrG067=EeQX%hqRnbU-rQD!&ifqambzYmQ)#eqN`Tv35Y~Q5+WY4 z8xaw75O&OD2TMiX>m8W9|BPW&H44HS|K~RT5nuqH9VpAMqAFkj0000WdP)uJ)7$i30)PBna4n(=tRh z!j!I)5sQcb8vcNumsAzNb4yt((4)%2<{vBBe|B#{ou?+lo|{LICK^BkO_h^zArhJU z*gZZyc>hgY2tUXAFFMJT-hsl5?2@MX^N(6=&OA5BN$k10ZWDmcw6aCzds>QIRR^oz z-D|eS`0sb{SCCXt0db)EL}!D|?sP*^1W-{xmHt6W)aJ}_S0BIJpmPidifS||<%;Vn zAsJiis;DBwr8!7QVUU#-P}O*PuQI@#lUs?rQbRya2~c_$KHLS%i-SNj#b9w%fTk(y z$3@cVOa)1b0`e&1yY2unJ3sk4APB?Y+S&}O;sj6x4Q9%|0knyQrRf>J&iPZIf82M; zPtjb`VzGmb#np&EfTq|D_!SjHW4+G?bdIrv@*~DM1eJuSvD`MTsr4~DxLybIfmd1< zx0}FNTgKSSCqt8O`-ckjOaF;mTjfcU5brIi$>g(uM z&R`x!2nfm8gJnUB4-NSJnEO+vuKe}dC=&R_LlAoU;{UJlw*UhGTM;Heu7v;Y00000 LNkvXXu0mjfyA5vM diff --git a/interface/ispconfig/interface/themes/default/icons/x16/balloon__minus.png b/interface/ispconfig/interface/themes/default/icons/x16/balloon__minus.png deleted file mode 100644 index 2794ede1ce41948752d01c058570a855f9341631..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 706 zcmV;z0zLhSP)2!ab6R|ZjVR-;KJw%>htqm{Y3T1h6`sp4RQ*XzQk~L)|Z8 zC!Ll2*BkihyP%>1;$ZjD%Y81lHvqLV07C&LuYn=z^7;bZ{pb5Mj_yEZdXlz{+d`dC ztE^;ISsAMGA}q@pP}JYRSk*i$J6L@FPUN-e0*WCZ>RC8LHxg8;bFi$WfpfK9F2QQ< z7|3!CkSDHou#o;Vm2Bx~?~#^ffpHnA;QV*luuPfcOcHquy09jIcrtbG(pVugm$pzZ zSVhl&v6L&Pr$_IPX&l}9F{~<0K~WORnfc_T$W_ADZP;wLIo4Y#b%-Kb7X_P+_sr*5>HwH`4OKO0w+KXT& o&{_ncHHCzeER#mZ`Huht06z-<+LGU5O8@`>07*qoM6N<$f~N6E&Hw-a diff --git a/interface/ispconfig/interface/themes/default/icons/x16/balloon__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/balloon__pencil.png deleted file mode 100644 index 8f1eea1f8697c4d4a3c789dbd0e216c470f3f924..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 780 zcmV+n1M~ceP)OWyZO<(<9?6x3GSZ}MN0Vwk~K#2>HN9}RXRT21fc-t^lg<1px&W1r0gxIN=eK< zn)9mbtk&!P+KHhbTo@gY;+&IBZmaQoSgUf(Ag=8pJfP8m+oU#YmDhL}kSaLaGdd?52`KRDZ%NVE>`Y39p z0aoW1?4ssxgTblZ>mw`9Ifu{VfDbbQ6xO#x_qq*IFIhmXFhto{796%`k4Hp}bOahX z!ou3};=S>Q4GFq5?Xj}bYQCf8A}u~q$R%g)j^2xH=+VUN%fZ*1!rFa~z=C9;O`~AU zAb<}wJYCUxfb7D0P2wZS{|6kRggoEDdGd?agE3 zR@U140&FNXVJrq`70%wn`?!IEOmYUr2XMWDxDg+8UWThom}PB^WcXSwl;B4VqC4!;u7g5u5^j0InyxP zW~*&_=G-~w`+CpWydVXEFFbsg_j{iAIp2Fe!We_q1P7}O^5R@VgTsLU2!y~kToxnJ z5q$ETjQE8ZL&KlYbBI!a`kTt)0X51}%vlEt_nz64Q&C@TOtWSZjyC`>U{sFBB7wkE zU(4t5uDji_i2pgBA5=+v@&4isko_*jn37PpI$FXK~$tHkdO{zI>L$xz6yR6Rs z{?5r%G5GB^roM9uDj;g@N17a_G$9}2vj7wYsI&qJQIlZFw;#OhP&t|dg=$5LG72h6 zATBOeRp>0lq$!w}{2(hcKxr&_S4PlVtR=`R(gfs$fKIEzD7uM)82bYAvJV(jmfFP` zk~0dD^b?S$Tkc@eH}b)oWh*X^&J6)&67XE=-`j?5@_Prp$eUa)(B9B<@j}?2D^&>v z`Wv=G|Ll7t@Wbb6d-fW6?V5mdw*aLx^2E5A=uTAc(|5jlEY4Z?M@>S8pwsE}Y8w~A z)A8i(@SFCY`PuM2j=+Q_fcfU3G`{{7*mGZJj{j({0tClO1akRjpR6zx8V9WB8b4h?V1^& zE``9AweFm+n;DKDF=0ZiOTGsyA{((Dk%P!e=JW{%YS^*nbi8-!>Im)-H|*j?cqjkY cYy2a?0K4xO@PjymE&u=k07*qoM6N<$g29kr3;+NC diff --git a/interface/ispconfig/interface/themes/default/icons/x16/balloon_left.png b/interface/ispconfig/interface/themes/default/icons/x16/balloon_left.png deleted file mode 100644 index 1bfe0de052775475755a60a8809594743f42e791..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 670 zcmV;P0%84$P)@A_x_{h=g3~C8dbQi?(95jnPyz zW@Gvl^Re08nek0F*@mL0JoxR*&dmG0-@NyRaL%C}lb}tri%;yj4J4!@05Tykj!OfG zp5{K9f!IQPMZxb-^A2MGllQ50K-fs9CvdU<-0Yb{W0RxKZl9k>b_W0l&J0a0=JVP2 zu@9NWM@wo^d4cCwEd|JU*xA#6<;1n8({9-x1Vh7^6^j{_Il5e)zQNPeeFsM-!f&Ei zUFFU14{_^fJqMJ-`S8^3h`U=3f>r`xNWk=cFiG8VZ!mo6Rz&z%3Mhl4-Xmin(8^X+ z%1WT>S*Ym>81xS?rkYuooY2wh3ke^Kz+hmjN8t?BRG_S;pl0NNbGlb9$m3E&< z1UBl5L@Qq&mtZ(RV9*C%Ea{z@yYZRmjYzabIVK1c#78XYV){31#+EsJ`o&BFaW7#* zegd;+rFk*`R)Bk%0#6cxnQgK7%HG=%zRgY)8I`}}xwojofu(gmpIBp6(VdOxHH6kO zYK?W)R3MV+M06oKt;=J6>vc2V0^J9Oz9vCC_E&%b0Qry(C7_xFApigX07*qoM6N<$ Eg2QS!@c;k- diff --git a/interface/ispconfig/interface/themes/default/icons/x16/balloon_small.png b/interface/ispconfig/interface/themes/default/icons/x16/balloon_small.png deleted file mode 100644 index 0db4cb8a84896d6c943831596363fdeff375d5a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 426 zcmV;b0agBqP)-2gGlH_~hSz3|D+6|HW+p5a@D=Ys48R%nIcek&|I$WMcmR z|KH!QuOB=)yD)wA=jS&U0o7c_>4iW47;KEh>#U zuGccZ|9*fdVCDppj11r2ynF?c#~TZO{xTdnIIm#Gx3{04aj=U2<75+O;9wPF`1$U~ zvok9f?f}W-bpbF*oq6}{G1Jzb(tALzBoH$v^sUcY(U-J=k&$5`3p2wRyas>``Ok3b z9}t7R^pDYPdR`FF4~(45j0~rK|09qN&;ih(T_3(Na02OMTxuAHeqNy10Du4k0If!a U-b<{907*qoM6N<$f-R`P#sB~S diff --git a/interface/ispconfig/interface/themes/default/icons/x16/balloon_small_left.png b/interface/ispconfig/interface/themes/default/icons/x16/balloon_small_left.png deleted file mode 100644 index d362b9a2adb34e8c71fbf1f67bd8cf9367cd3c19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 433 zcmV;i0Z#sjP)-2gGlH_~hSz3|D+6|HW+p5a@D=Ys48R%nIcek&|I$WMcmR z|KH!QuOB=)yD)wA=jS&U0o7c_>4iW47;KEh>#U zuGccZ|9*fdVCDppj11r2ynF?c#~TZO{xTdnIIm#Gx3{04ak5J>aI%Rrurmw)`}yw2 zvok9f?f}W-bpbF*oq6}{G1Jzb(q9Sv8?zP^`cDH2gM$4zBO}9J7G{Ps=msz%r^K0Y zEDZmEk@ojL!#uF_7#UWuGX38LWizk>t&5wBCmLUVf-^;c8s-XcG3+9gkQj%4UZB_j bfB*vkMJ$BoFBhp300000NkvXXu0mjfSq{IK diff --git a/interface/ispconfig/interface/themes/default/icons/x16/balloons.png b/interface/ispconfig/interface/themes/default/icons/x16/balloons.png deleted file mode 100644 index 671d72d6e58337c27a0836d01ae60de495bc448e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 711 zcmV;&0yzDNP)-1!5rj}QiGoQODIuXag@wh;*|2hD zt=5+A?C1P^ecy3Ao#{m#c+NSzKhOD|=RGf>lp=Uug!LkTn-Fxc*LsE>meenX53FU1 z0_#0DHAp3S2mw8BCo27#)VDQK!~>260h1yxHy z&MhIYCZK58Am$VBH=lR$#1kZe8*xe#OWRPG5R(P<=gDnltG zh+32{@SBZ!Sm6L%c6J&KOVR1!uuclF2^Fx5mF1AC@M-R4nAe#nC|+(!Ku4tuzWHZE zSvlFe?C&~JM|H(8hC3~%eU-=t+zRTBAes1LI=_9xOXL(QfwtB8qi0W>U)k)u(I{*@g(AU!JI}!D@ityA zVRY`vtwuTBulhTC_y5cJ>(417Un#EeKc6pCUyFc7AMrHQ;M$qN;JJGjdTv|Bn_!ra ze#hA2H=2GL{_7y`H3$eHd>uVQr^FjPG5ZmZA53W>E}su+6Z8^TuU;~R6I3N-R8KC_ thvN%6UlcD_$H4UzEKrItHt3H40{|eVPMLl8Og`OnZw-ff1p|hQsvtW#uc8pV4q#XZ zczlcCXKcW-ZhQ$5i0N2R=V%LYPIkBi8W-(n!UiH>g2?N)fG1$Zg1Oxat>?PWp5}%6coqF zK|TAv)$6fWFKf!LrSV))07FQ7od4`r)6mbkul++T2Lt=B0MXp3LhvA-f z@Aihp=2$oX4g}c|>@z`8@DZ2g3>#p#X!1M@o*fqq8r$G>$#t3PSV7A2*c&S*KmIxK zPVa1L6KIwmLD27q&?_7uzrHaKXG*oeE6iZG{SnB2NPphE7+=|po6j(r)Y$EDx%Ld$ zgXAl3>B4YA-Wp6wl%Y+5{5pcVM+|2YZ zpDINKbyXSK4&$tz=Qu#b>16{QPm2%fPn6b{Xv(V3N0Qf#oa2k~)6s$pH~)UGK#Clo zuk+iaU{I4s!ErT;%~HX`21Ebt4*iv9p@VN_cMGj_Zk!J(ww-P-t0~oLlTKy8X#2n< zq9}u4fDj_zF}AgiZXrn%EAXyslr@p^$s>gnbHg~CdQ+FT()Q{*_t$JdTh^{nBN2lH zy9W}77x>qMa~%07N`eQA)Ds}`uKbvpZ*c>^X@1I#JTa2Q{{jpEnwn@67kR_X00000 LNkvXXu0mjfbh?M- diff --git a/interface/ispconfig/interface/themes/default/icons/x16/balloons_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/balloons_exclamation.png deleted file mode 100644 index 78f9200b82b8b91491607ab6a27533f534c32015..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 851 zcmV-Z1FZasP)2-iS4n_bWYuUG^mRY#*U21A+$xB?Z6yRde)YcYH@;(-XIWSlfkTDO4AH+GM}kxSVNd%P@7vaPO-I{O7qHTKju)Lh?yC@p86EDs(a@-G zf|CXm>v~O%21uVQqmju9CI}eYO6RGDNO%Ts9^FCl?i0z*?4rzp&eLO=#b+g7&pDet zOO+SP<`%lJYU;(v!#mMk=*w&S%nN#dGtE+ModvLFz-@rV9w%~ls zhv4ix%&B9jJ#z{fxf@xB1cdzkSnbFob@flMX6^PoT_cAy6#_$o;J?nx;cFFT|p7evv)V25b3Ve;<>CCQqu|C#on^~EJj z%3hf4>A9+kV~PS2H?gIUPUpE|jnUSJX`A=f?YMWb=C%<}a=?{Qnp$ql6xWGd5H+<8 z82VCTjG7~mWGS8vg|`u78VMoBI9i)d@{LB~`=4lj(4~3Yw@5=#N%nr5Ly8ZS#c>$n zsg}6=fvNDg_tWp^i$9Vd>K6bPA!{G<>rcQCH4O}_ z0YhWu+1o9}N6*zG83Q&V=_QBF?kPFm-Yna*oS%KS7I~@1G|*{Ag7U(u=32xe(2WSR zjakHX6^60Sn^0hr-6*K2uH}2m(-CAII!-LS<81F{4Qnj3BK=|AgoLgHtmf`UVY({_RshCV5G=d&Ycspb#g9eUD;)mxF2~ zH2ouyG(K^kaY@2k9xIwQ;BJ}ZnE`EW6$9N5aqz_Xto;2oMGK=Z=Q;VY@H%=Z|Dy7f z=U-+>ox*?QL(5-qsG%CnHI1;klqSEMvt+#tEW}`>IxvauAbwhxzf6m^>XnV&V>`*u4NcnH z8oVxE+_xojJniZN5tpf@Nul^J1@xh#KQPDym~fb_(gniNIOJRs^?1mNWvgDtRZjsD|<08L&Zh$h;&>cPr{<) fmgo?l{s}Mu&F4-XQsE*i00000NkvXXu0mjfV3Abe diff --git a/interface/ispconfig/interface/themes/default/icons/x16/balloons_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/balloons_pencil.png deleted file mode 100644 index 8856391c85ffb478edc782b9056f7eb1f0a1cce5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 840 zcmV-O1GoH%P)PbXFRCwBaQ(Z`tQ5b%{ecLykTTW$) zAfZfSIZ4G@c%g+zlUXJfmStoT)I~&eWgwYeh<9pTBqZXEcZy^vmevxjOq2YnRHhcC zBF&$vbN}CWI^SGl5_I4>ob$fteK_y)zAr-vLGN7_p^E{O41;WX)KWx+xV9)3X~+ix z*hPa>+^8WmI+B$~RHPX1pGi1=@q}C%qX7}9oq>CI-MT#9Ic^zfO7*$-+Ci}GC*VT~ z2=dd49u+5^yl@&`C*ZOLU2++x(dJf|ST0;K)mgnvOML|kf?fyU^9DX=tYw=YN_h0n`4-4-}JOEf*7s0pNOxZf!d2fQ9D zZCE_Nd8mi=gf}_9Tv0xePm=qWfWD*rPR(%lCX#AXbJt@AU*k=hWrBs4!wE}T7 zJThNN;|eUHkZcDU+0E;&8k)O#rKmy6>v~_3Cn55I_n{26d3Mo zb?&TLthSZeUmh?2j`DocOlfwG&HQd#1DgFQ@B;F6RC#Ug4U=3Z)yNng4*M?NbUZ_9 zPHA}2gYLt*<+Wao3S+OFC7<6ak_<^THN{q-_HPybQGR7@9vOLAAj(;6T37wbGf^mT ze0Rh*n9X%Yt+ug@kp6uF{$J(K-ntSLM^t{pIus_vkW*c)={NOy{X?6}^}H0AmIMg? ztGsJ>1K-BmcM2|5rL?s)nDvRPBRtPf2g^uP=$q(%GB9U;IV=y01INWsM1zw>VS9bi z_2py7R<7~7y6tJhh}}-=1p#Ka+l?Nv^TlB*&XnLt921!mi-yXk-rH^W3S0aQCdZ-3 zqr^~HR+UVHhwXc$Zs0uz2S-C&e}9t1ag1)h%(jcTmdzH@du-z!)DinUd0fp5m7hZq zwS`e|fex005{Sm+nj-c^o=$R=p3^DxqPx<>^yOqQB_bh(nj#|b-cRsHfB^ts&r#*8 SP(k(p0000?7_$p5}G(w18eicOzoaIo>}bF(If`Nzkw<@#50(&Hj2uUPl#i*=`0-1xtz^ zneU(X1pMx%Wm8>iE|J0t7@4%+`^&vFY5TbFX2>Q=c=_)X5KmskYK#-sTi_TyMyB}-{{W>`=X4qQ9~OGfL_`Kj?KDsy3LF*F@qE}yWp+lcg-7jdDyvTDEUs>;GSxJl*iF8|c2{$tvBH2|&Gu|0V$fWs zLSZJ8T#$j=?cGC{A9gm}k6GuscQB!RZV$Jg{#P`$mYP32owaY*jU6OXNpd-+^_*w> zWL>nd4fH#MYVUS6?x9M=O~Z87*TaN9?aC#r)kZIpV&L{8ebhl7k1R-Xp%`U6RB}Ec pMbrG;+L{B{z_b!I%;T>B0|4S%N@pYmjsO4v002ovPDHLkV1ieYcIW^A diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bandaid.png b/interface/ispconfig/interface/themes/default/icons/x16/bandaid.png deleted file mode 100644 index dafa64832ca340eb14f1b45c86ec5f931b45b4ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 778 zcmV+l1NHogP)G)P*KoJ4?SmP8eTFqyPyz=Sw3WtnxP04T}ZHKMI$f*NvJJNl3uFS zyq25cw(9C$zHg@4n}})s;V{F@`JFj)&WwO1syHme)F{J29Uuq*fqxX>vjjdrz!($^ zuu_KC6!<9*!bkN2GTaO#1}iC1wN_hTEWKGIFbeDE{*MEumQBvt-%avI`-#uPd(tXO zSFO<=+jF6@3{EHa6QE1Y%%Y4D^Ml$ia{OBv%JArHV_AJEouBu?UQtQH`jl-M{2CkN z|ACM1Jy%yE1zHAW?{9C6f8zsFPXw*Gk5RhTw9!z*Emb+V)2jFmI&W=-+#ox!q zkdT@RDvC%p7%;(u5q`3%y0B%&Hq|UrSlp7o)j=5)n#f#ZVNKBpPdibs2X(t4c|7>g z-Hn*II6S+0=FW`mR})XOF9;ElXT__j4^cl)YU@R%jy58&6l|xdPQz@_XuZI`o>&NJ&dWSL5aT4*PT?5%4|;nuZxn z-x%cl^dq}YlxI7awMwN@!H}7W_8XTTI_$Pv9De6rZ|7h;2NyGt7*wK11QYzAw^iOC z3LfC;^^2`@c3Xp-z}zvy&@s&ZYPp=(;K$_Pr?2ZaZrSW>6ITeoLR)S56AstC9A|G| zjM7zKo6PRQbhKkQK1>}RrjFEx%LtL$>MJ{I-%QuETIis~&O*7L(i=BWGZ_{?sQ(M8 zw`+-hU#xIQqeQG*gw!+19={r=b9_$>n46m?V8OX}UHT)y0CjpKU}!n9#sB~S07*qo IM6N<$f-fv;WB>pF diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bandaid_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/bandaid_arrow.png deleted file mode 100644 index 130dc4b0225df2b57354fde20c0f3c1fe6709e35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 877 zcmV-z1CsoSP){S-3UI#ZeQvik&-1vxoRb$A2t*J< z@fS0z!lO52?QN`r$HVdnw5Ie7fl{ukt@f={;2)N%44YY$S=CS}xZM(2G$9bctmH+h zOh%miKje+e_taMerpO$}{R&c<3;_W=Hyx8ow{_j zd>mMj9kw0)`@>7TNzI_uPCmr^!fafoS(Z63JSs; zy&jbhWP`W#711x_3iA5wcBn#C+WhQzZFi4DM+Lzx4^XIhKMzWN%u`&IxNn6@h3lvG zT^(A}XY*A4umx>n{3d>3E++;8kLgP`fB0=;xw~kV*@L?4}DLrCL9%q`=Cg zTK+6+tCriox$irjZ?%Z9dg0}q^PTs3-uHPv4u_wyb)f=t41k#j@^lm&2N3pMUOA+4 z4%@G#6g&lj5=FlRd{Cwd3XMRKk%DlTDV*9&d$VW%>D?Ta5Pac(I@oiuI3D?YPPw6g zgPa^k@s}vkn(bSv4xc@Uc%0R7a4aaRkSHa-%ifnMf`3G*+LTr6IoPpZibhjlIV4d; z&itjNOh&HqKj6Am2hQvhe}V}izb>gl0Z~Gd%!H&Vux(pK(}{iWM@AqB0w{A&lBCoM zjRv>c_grEo_L3REOVmbN{j$bmdxN8+aF&!H7z`p7i~Rtr)#zz!Iv)v7dRh7KpAs0@ zT3_DKx_c}TKv8Kaq+}8F6FU;vqpZy*}eC!N`*u@$V&X6CI;ih!K52QJ=dIqccdwo_nk%R1Fer^DgEBcBh> z!np{%>m12;Rq8j@U4w1big}XA)rd(bS%R?cH7mEa)W#V&?XsL&trqUGGCa6_tj}EF zN)QrNcXf3k_HDw%XUr{T-K(Z$0+H1w*)9!Clc?CQx^e2rRdrz~VR4pZjfEeg_vRsd z6o#O(u0azSCb}DF$vw?mg^)h>@((CO;C(ldGZnKs!t+A8G&9e zSXCPRVn$M-_#z;bHT5Q6XE5muR=Y_-h}hlH+Uva+YOmf**B8vsDL3fiI-VrZdbAM` z2Ei*5P$~)kVLYN!_K(v~Q899E&1C0WqZ+dlNr(dz^vcK=8olp_A{2i8o(&g}2jp;q my>m$HMNs+t@(qOV0t^5tnNwDb2_bp_0000KZE{jW*UBEXqI6Sgjp78WU^3%(hL$RT2O>WAnk{ewvzf`nObVO zEa$iTxc8jSoilP+J@9f4?|Gm1>p2{J$VgBiG6)D(0ujq8I1b>MUp_f_Et1{$Q3@pm z?1bVa0lo_h3G^BuRztyaSPD_f57 zf5?aSoTx68d}N;Ie?L-%0uq79FU6!@a@gV2oJ)m6eSL7bT%c@wgb?qEz(72$D7ej* z_=I1Ayj7(M%iNK5;kbQx7*PfT>~=fm=H}+fDithcIdxNx(MlHH>z{y;Lo>G@IbZN~ za1fF4@gSmz7^4xxEE&%#Tgvn5Cmo}8B0;ZPnwNS3Mx`b+%am7<|CzNNrPqVF-H<#U zyl!j5x`+rox_Io?q~k{|YqLu+4g?G^*+teB+onDsC?tDVPI<0#W(HcV7Tq?Rm)vEw zVncK^T5HZUF!D`C>{P#@P}>NEehOKI7^NoUr0Hl`w#&C|6`ND1)1kAY191rnXf>a^ zTM*qKq9?(~yNtyaUBl7h!or|)vspV7-4)GYg@#S8BeB-V}S z5ka|mqAZo1M9C67yjs#cJ>jTPIcQCKT3WKdVhxRr5ZDgBjeL6daZPN}7OzYU0c?c( zm8B0Dxw_>&X*aP-mszks1i6Ez9{QXrEy+m|Rp>Su^gORXbJf{r*V@Of^i9xy78lY2 zl=!-rjr?&^`Ev&)YkB?NaBjawg>bhB$vQ&sy%-|X>`nBUo0-RF3wPNs{SsgR0mLsu T>uPR?00000NkvXXu0mjfp($+} diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bandaid_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/bandaid_pencil.png deleted file mode 100644 index 0aedc8787b755d3e5d6ff0d6e047f92a2e9e0239..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 851 zcmV-Z1FZasP)Q5eVnGwbfU$*$(= zQr>m7EYq^Ad?+<63||s@=_&7(mkiA;3=}hMp;jrwQpA)B3N-RTgS1RsE5W?>pk1u+ zlAE;@d6{*0=5%ILk+AyU-`E8H5g~F%*Z7FsiX35X&IXGi@I2OS z+#W*P@UZ(2oDg;TS~kB3vn;zjNhA{R0<7$6B(cFRN#SXivd2e9VK$pVsC$AS*hbjf zqeYihM@?*ISAn<5RW8Z9Q!kz}PE5cjI2cBw5%cr&zhSu?O~q-|>fUL6z!UQBPXP+6 zlXs;QWlfHa!8x$l>qSrU=b78>;VjTWV;Wz7a*-%7akIog_^ zar9JkHs>Wj%rLpme)MusIyxxT8b=As@(mS5&H5K6-Ikq*Og=N5aHH%<=gWRlURIBe z(Q!zyd_irO70MkNRvYck98}5SzF-A!m?HO{jtet%ZYU|1c{DPC+O7f8Mc*wn7Zyh= dP5zev0|4&wU(^+%Nxc97002ovPDHLkV1kPbj2-|0 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bandaid_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/bandaid_plus.png deleted file mode 100644 index 2b59d871479fff8c8fc68ac6c8ea092778805fad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 845 zcmV-T1G4;yP){KyFB z$I`TA&E4(Zb2|5`5n}bg%Q^SH@AI7VejE<-IJi-Tm{4Ga23WtGg5v<5{g+n`ip8*f zHl@%|z)dLL5a5e?LBOa7OnM5Q!%~RVg+~`z%Pt?`D1p1r(fy(I#wOp)w?_5ecn-30 z9K~N?)~$%%zoWud4xf+3aWEvMXA(;J&Zhc)Mc^Mu(T1%&U@gB|M!a5yEQ3fARwr&v zVQH*W|A(BDb^J=HG*9Mv{sp{@pvonM`?WLTrQ-r zlRr2dNJvaX+qF}-Ypj9z-nGkunWij|kDo*twginnqQaVAQy{Qv%Xw;9o(6*fU7ekX zGaB*IR(-ci>#_AltAq2hb1Vo@3xv73QL|p|*?zFjt znh+ZV0*~Z@yfSpLirdu^g-#5Jpxhi$Zj~&eVFE1|Dj)ptOgA{gLmPJP&a%k3P^~S3Wp) zgQh93zu*@K_^M z*r?x((XU=2s=3;_g00yh>pMMOYMp^xhf4+WY`1|7rgN%W#_3wWS@&v;Gs9EptKZbC- zvRQRvii!+x-n?P>`}Z#c&>IZD{$aY92~D#i(B>$O=(=h)4i2!*;wmZ(Z{NRXSW+B1 z1?Yk$cn$dTpCQJvXiB-DpdiD8Teleg{QAZ4{@F8z?Y)IFe*I-w1hn7|-dOnkmx1-q z@84i23kwS~Ji2p-;lP~cx&Qw&E?{B$f0|%A0Q&Leqe~|)Ff%hVu&}W)?3mfS?AsrP zdBEs9i7ToYk(2UNI~LKO{}|$d;h+Na4ht|a``DQou5kh*kBu290JJW7-(TDY49&bi du>k-91^|xti)4_vYT*C?002ovPDHLkV1n;O#{K{R diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bank.png b/interface/ispconfig/interface/themes/default/icons/x16/bank.png deleted file mode 100644 index d54c9de6a90d5397a683d45f673005d920a364e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 664 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bank_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/bank_pencil.png deleted file mode 100644 index 31f34931ade96509c980f6fd52ed195bf987e4e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 799 zcmV+)1K|9LP)VbDu0QlXdOQ~DD0Diu9M&?*$69_%3!DjN1uPLKlGbeIIT zvP|8EIrgXh>D(VIq%6AdanC)R^WAg4bFZMgyBiXT1R{}$--SY91xEn%5N3%gf6K zkH^y`l}Z(4ONeN*R4RQZ@YS%rLcj?Gf)g5zrf+a?aJas{{$wZ=;u47jR##U!hr`j* z*4Ac?#bR7Koh}m5IuVq40t#l8_}bgsy?(!cIGIcumX?;#+}sSC%?7z#j%YNBs;a7k zZnwL0dwW|HkH-~65FsK6^?Ln~&*!_~a=H39HZ~+g0E5B63!2Sld2y?&t3ioOIEmeE zcc|6sLyL=xGP-y{l*wdj$mwK(MxzlHiv=>73}Ueu)E3_-Q`}@SA(zYXVDZ6VaHel- z3j&=^cb>{I2LgdH{O1afkKYgM?ARrRLV$^KFO^D(sRh*5)*=##;9s^*#|}71*g?&&k{kt5=i61@3unp0a|4kPG=XUre>fy@NI?O&(T}0 zt>8#i)7;$L&H4FxzC5edioN!`@B}hj57FP>i;2l6$cs-QIQix>%VX0K(cJkr-q_g4 z&zzz1p?;*}__{j_r{@f&r$aEe3`3>u;741@6HtjmlysOL4o8A92uU=Kd|Z!hz4ON1 z*B#f!j(vI=R)pVwl&{gvCAzspKXHwSZVQM+LQu1hwa>^u`#plEiCx@z{HpwRkH17n d5^_HU7yukaOWVvs=ZOFS002ovPDHLkV1mCIeft0a diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bank_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/bank_plus.png deleted file mode 100644 index e727a1d2237e52a8aff61110a74a90d3d29f5ff5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 762 zcmVazUW|7{o~Eri`2yU5FPEU4`E6DhvYkwySQUZo>QrvS4hw+9+et zl$cI)?$`ID_k6IROzgnJdC$vxp7XxX`yQdczaO$JLy{z87e%pw;{Yxa7FAXKOaMo% zR)eA_zjubc%dG2q*yr=zo}8S#&v$<2{(roO6*qQ_CfW=~g$z%eRWz@+P@9gYEwOTd6<7a1QU-Q%j zm&Io%_uYkG)PneNX-gYo5OCmV?R4x%HY!FLFhiwg<%V{VKXGB z(>apQ=WC5XY8U>t=ad&nxjwh-!t{a1503nR{$*R?kDZO!~teNsNJJrn2=nc(0b s>%aks$x~4E5F}v!x%0ssI2 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bell.png b/interface/ispconfig/interface/themes/default/icons/x16/bell.png deleted file mode 100644 index b7c9440e3983b25a0722464f6997f55530e83d58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 741 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 KMNUMnLSTXx8*H!u diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bell__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/bell__pencil.png deleted file mode 100644 index d93d5a27730dcd051f91626f6aaf4a6ee2590aff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 862 zcmV-k1EKthP)Q5eVnXJ&TR-JHF- z>e!}fijhlRu)v7uLf{n?D#|Fj&<%XA=pm^m?Ioh9sOa|41-j5nNEk~{1R+I6OAnPr zlx|w9yYB4l&gFDwbS+;x@Ppx;^Zmd7_s#hTr4*MAark#hc?2Fe!M6$XVImE`VbFDf ze1cFl!Od5j&=QTVS|5!b9s|zIkDOW7UYAS6u_7-w$@B%r1GcxrI%5f|h9zlZMQ?A{ zIB-I+Bgo%qlcH4$mhEip+`rP~^5lm2C~s!d$)TqYBonbRMNtxck;uvB%F5H-ln&Sq z3}YUv>o#m_6o|VtIWgh*`Sk<0fd2H>uW4v7M7rz#mAbRxaQOI;s$OT;pV$JrK968g zNqG@9%{f;IWfbF+QGe@}qt#b0_C>1c9x~4G!9nr@< znEdq>1s;xN(@<6ss(2AWjZ*|~{k*v*Y6eA0rK|k%;zb3)!V--M=(+|itAeugtVW?` zO?W)c5OYzMO4BCIDw$yms2RwqG->bJd!U(jI*EhXb@_bEvJZv9LP$P8#C#8U(Lvfa zuW46Q(qY9Y>TC()li0oO;Jyyg<&{T9#*j>;kV>YYB;qi&G#m~S3)pOUSt&ukTW;%Y z>bQIRK%5g?#U`b;vkRAds|E)LaqrH{Pga*W4u+|vV$+GK zA3TqkH3Gz%#u5(^#*!#tcY+N25taMVP+N@c*7tA>x4*>kdiJeY4`5uDFu~Am0YZqC o(LIZR|1YciDTZRr-X8%50QrJl&+P1!sQ>@~07*qoM6N<$f?YhFh5!Hn diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bell__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/bell__plus.png deleted file mode 100644 index 3ecc8607503ac048261c205d90cf0ddd8c544f9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 826 zcmV-A1I7G_P)}S81jhR33l|CHokOPv)1W+!5_f|=E`w~b z9gZ`>Si_}s|CK|IQl)p~7S)@JZ|#ZP+)00tEv>V4pybHV_u!av1sK~QaOB{L^JxzW z)URfjvApmd->i(*a`u=etIOJ19PjCtW#G-&>#_se-XRc+CmQ2)!}xdCh5)|4oaPI; z)fN3hd;IgWk5ldgsW{L)|7uV-P43Y&Ulqlcz`bM(;)y*-j6KF0TLX%s1TX1?;JE^H z%Yp6>)_4g=MUii_MoH_2H~(&UW=RmIBpFHH-xA7!qT9)2b7O>yrZ^50y+Hd!+o|#K zaXf!AIV=CGqKF?tjm&0#{gAcV+_feJkM|B;&`$Fv~F>yH2f0KlY92B9#@4FCWD07*qoM6N<$ Ef_w9Vd;kCd diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bell_disable.png b/interface/ispconfig/interface/themes/default/icons/x16/bell_disable.png deleted file mode 100644 index ede39d19f8e1f52d0ce02cca9b70097f194b32cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmV-V0wGW5n>3+p8%=s{ZZW+Si2*b5KD%1=+LoM1SF0j88AE>JLkBL^`NQLD;IwT8te61qKogUfZ)UPycn+QerPtEkL7atw_zA} z1i$HHOy$NM>~=d<^aKgN@OBlS58nfL?~d0S3T!r;xFeX6N~Nf{SBdm(w_5{qVb}hF z09uQyCzDAJbMTG@=!3Y2E>7^fda(nLPK(7Nt2-RcQMXPuo88&AeTqS@4u;5GAfWyh zCL@9U5gf+IdFICgj^hx5L#owkw$gzLhcR-B|!00CX*5Mdfj@VdI-kIA@_ON zB08!$4D!6&?cQJx_P+!eBZpk(sJn2{>2&OTJ};-!>3f_w6IBu*y^8jBpGYJmPN-Y0 zR%N^0zMo7c7YKbbqLX+#8jb4X@%RlUECAjIZ8#iW<7M}Hy~}8q0$?BAksqOtH>^}D z=~$DA)0Q_)^EF5&s--KHN|mJfe13zjHsGRJcePk7R_SzFE|<$76wrBp|I9;Z|7UE$ dM{e*WzyQgUJ7>2|nN5AFIz~uH1(r@MpdwgdV`3;{5J-{201_}T1O-x}0Kue5 z^W)g(JDa-{BbS7MCw)5k-hJPF&+i^Am&<^MWmy**jmC1b*#x$2^Q{O&Di{og6h)!2 zSjvG`dk%7lN@8_WDbb5ju4vL`{ zudP#;HkDpfcDmQ^_VZURDhGyz|FHa=IR_$y!bT2_mXZP{a;4Li-YrEc%GHv}d)9=WM^AB+TbUFtdTFjvCNmIy;T_giW*j_mE- z&v|VnG%cS?wM}eemX=SHu&9lMy4KFswZV;hP4&U8-220cH5nQNFKXjL0mpIax)$y~ zyq)`aWZ0&O9c~>i6zFt1Ad|_=i?Dhp78y~;g?=&*jE~Lex(-maS_Q>o5y-OazIwi& z9}b70;W)rB4AATK*7>uQBnhyA0`Yhp=&=~+_xmD0SFhIre_fGUt)^(27AzDBU@#cW z{w^U7yJ5`ix=bJp*fat*i8GN(rGi?mR+cx7TT3#mu<_hWP)~@$3_wz3WeYoY64wH`)613>wd;!t@c=b%Nb!olvTt_ z3X+J505qugIo#7PC$E)6G$9237v&mSxBkyW8Y9|drR_vf1&M%CikEA!@lj$qD2!=` zm1ajLn#w8KOpy1YP%v>*su{w&MbckMy8Zhnc-j2)4?PYBn4!nF3IAmxnxat+P% z{2yYQnX*j16RVDQGij$oO$}Y$Xght3nJ#3mSfsuF{S8L(JhrNmWpQVPh#IuCm7f=*soamRh?JE#P6Nk^$XHsjtX>6$R z!>N#Wh5%WbTNjyw2Yj|gM@!dt_x_V{X3zG0psJd(le2ByxYYb@^u;n4T@h`X-h~VC zIJ|NZ2=(sbZr}SjsHrN@$z&4ze*e}Y`g!vr$<9(%wyUSf9L)l_gDqf8$(uC5q2AWL zkM2YUk&zq>2EpNQoayW98{gdA)E%f$C=?)_PQ&Y5BdlvKz!-xlNl?+*3AL?F@b=cz zX@v2Z(OvdPB*JhUXAT4ckjZ3R0000ln z1`-t=DVl)*OlS*xgI_+(PSzl-X&U^moD8-~Kky(X5T+RH(R4#nG|+2tCqvkanw=sE z0(%+E-G8c{5-LP&1Y!Y2TYwl?YExl@G0LYMAvP?b(bL9T}u@yMn^o`%VUn zqWBl=rb*ZP&vN8SADj1ijqKRNLVV~lyC%rW9_3{ARX`#{ba&!%V~9}7lA+%j4t&k? zN=3;&kNK5X6p)uxCqvlTYPQA8n%EFVne>LtjZSQI6IMc@EY=ma=0nHg*L`APp3&7J zRb%#jLbWUsxyB!@a-jfLM<-U|rw@NrulBZ>9>zuc1IU)h`r`RhXNUxh`Oow)@$c^TM9 zu)%7^q%|@K&&|z2PfrhcySYu+eCgP9zdgEEcP`t7!)8tiFY#F&f;&764^HB|ipy{zbLI zNK2sOM~=T?O&EkMH(TS`XPRccWw31t4G+S(Bdrjr5@_!MBnhgAF?UxsVDYyA0{}T9 VWrbDl{V4zd002ovPDHLkV1kq2Z6E*u diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bin__minus.png b/interface/ispconfig/interface/themes/default/icons/x16/bin__minus.png deleted file mode 100644 index d9d58d6fdb4e9cf25169283a4ba2c76b7b9d9688..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 739 zcmV<90v!E`P)ww6!{=kwr#5OS$lEDn@PB`{6XUFu=%4F-cD zQ53CMEJhNEgf2;v9*suJJkP&#H{pqi2{^>Sne!K?zWr?PrNvOVKN(K_Xz1I-w2@|5 z$e=a?a9}tkBvwBx&UqqCDTV)qUxQic|J;ZV0>}RfD7PnMl9I5=8t_paBxUo^J^d~t((QWJgWc+izWwdu| z+)!VN+x@!&&UN$XqD83ImqL}&4w0s3cg8qo*ixL{^)G6|avaO6z++bnow9font5K9 zl5uQK&u(Vq!H|}}(7U4>roqyJr;%4yjz30fIb`PMaO2+7lJw%i=*C`~w3{k5{HHL! zxCpUo^>_o@cB~OOvj6ho=+^_))T_5APm%StsGCzl0i501yc^WC8xFuKu2d?JPN%y~ zSifyT70Y%|ePb~`>Kejae4P=IVU3xXgxAD0#~&1MsdwhgMPLcLxe zaj$J85raodOTh6wupt7aQrQj=Qe!u36&+5UD9dtwd3pI+qtWR6T}o}J)mp4y2g2b9 zuxSJ~i4c#+A(tDwRW6s`xQFH%BpC;pbIx&`G$XiVK%EEb1b=jsHOsOJELMLDFaTfZ VS$kN6%N76t002ovPDHLkV1hdnSsMTV diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bin__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/bin__pencil.png deleted file mode 100644 index 98b1c11e3acf31f9163a6792c256346c51b1d523..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 837 zcmV-L1G@Z)P)aLr+|NnIFXfe?q`oWKn@0{~H-*?XWJ|qwbfCi4^&WFR{(nur%f*@!nlS+qP zuQw0`Ar%%DayFZdB}tOCSS&G}PWMU+!u)p_R-3oo|Xha@4gbU-Pa+8p1~Mtw_-wP-*T>W&$f z06cRswQuO^>MHO&pXHt;YP}gwOfy?SA|1WsYV!H)PoKS^JST2!?XZUztE#FXR8$05 zFc^gT`g$;%&C18g(b`lh1z}kRnx_kLShLzc`(Aqu*LxXMLI&vLco@TIGt8C|zk>(ypdbkTV2>@>))sAv zZLL+)G-;AeHoH4ByUqq9(bR(v9<%$+yti+5zCnpZ0vs5Iab#&}DV9to0b}fxe2igH z6y1^}(T0WwBNzU`KQhzVQ6Rwejyg`Jv{Pxvy_cWZcj_d6Zw(TzZlp; zWs@S4SO~y|_J}_?^Y-~fRU{BX;D1r85m@wpE)+NoI};*n5mP^F;jdfk^X<{}f1)wZ?oM38)l+jqdyk-`i`C5%o zE|>ohdqv*;X4+^z)+c2Gek*n9=62V~L1|4h%-^b7O zrf8N@X|Am)!lnLBz&UPJIw%^X+!R3@$#p{>9bfO}m|;=1!?TN8klHq_CaAJ*3zb+r za*y3!l|zjJ9vxrlQd-^R#6Wm`Y~|waHT+Sgd$bd=LSzzKc;{mz)HcS>wC670O3HVx zb+e0_eYp9kebxIFs6}@+uq>PIRlM7GuXirzHLPD*xX`hn&IO#g zJk7Inw1A3qnl}4(@Z_%beC^x zYD!WRMU2Pekjv#Nf0qyo(&-}WHXGue0bsWg&V4uyS(*i+Vg%!b0q4-11R=&&c0K!S z+m14VLxxH^gepU2wEFo&C<@JxhI#u1KF`YEehM%Ed5vjk&Y8q!00000NkvXXu0mjf D_GM&S diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bin_full.png b/interface/ispconfig/interface/themes/default/icons/x16/bin_full.png deleted file mode 100644 index f1c9aabad510fa07b618f799eceae0d03f1e0726..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 850 zcmV-Y1FigtP)Ns=^m6!;(45d!WI6y-|J&o^8f8tR>k#V$MT_5vC%BFg_r zA>Nt>V`F2Mfe;=TnOxh<7B%&N8}1IBR#dH^=|Ux&veHF$wIT8LcfYI^i?iw=10`t1jsLQ9hi zPDFwQmi2hPClYF{=9nALvXEmrxb$URd^p+SzWZ#$IsK$#w+yvv73$jT$IoIl-=`?k{ zzdPXJIP&btM#s$3O4=}xcxgov>IIc&d5A?;KGssPSPb;{_XCDujMC1p^Y0ShfUfK2 z3GeOg1=ilr0;kh?=742^+wBG-&x2epM;41ku)Mr%J|;RIkF(9q&2`~$807PLv(6Ce zKon(k+YDsj0z4ApmxxWG(I}NlrSOfFZRq1eG@|D@h?W~b01OJ7`LUTzZHp&GP19ny c@_z*w06A8etJ7?Pr~m)}07*qoM6N<$f+`x6OaK4? diff --git a/interface/ispconfig/interface/themes/default/icons/x16/binocular.png b/interface/ispconfig/interface/themes/default/icons/x16/binocular.png deleted file mode 100644 index 21da6d674524315ecb92b339a5afabb43d11f15d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 516 zcmV+f0{i`mP){pTO9U>cYwg^aEJS29*#97DR@!0SPFm3Dl16XcPreOICb-=XcMJ z6Yyv6l}g1l3zMm0l}eObQH;30*=(TEXy}Mju1ke7Cum}l z(F@1p5i*$!lO&0uWMGVe=Xorb%RxS$2Tjx1d_ITCWYP>1B=Hg)4hJ9wuIqyD`@wg+ z-3Bq?>-8E^sZ@{`>O~7ubfTmrE)JO#CP>B+sH#emFA*feEl9E~Lpq%XMNwe4+X43J z;v7^Wp%`bRX0zFVlw2qf1PdI>{c^bkEQ0-hPr1+ObSnOLAMuw6zKBY)+U@qK)9KKn zSTT}ganXB=)X)pF*-R*Fg^DlY34XygP4h-8MW--dC%2Q-s2PE2>`L+tSx zU-;%d(k714A2`7n@uvtrq*_v-aY;(tK3p&#{RiFq6<`3lZPc`>?Ps?D0000u8O~wg`f>$Pl@2h9<~m9S^6J3MnSiTqGI>Zf)IG<&>=c>>UXSAhZRD?i;lao zpshb~+;pb*6{m(U?7?H+d!O(7d_UhekAgq86$k`Uf*?S<-G+QV{{m~*r(v{)AmR0T zg=jP?1cO0=PpXfzVZ|01BZPhfO99T*G-(ChWk?REj*Dd8N9goMO6Bjcfe73wx8P)9GZ zgQHT|W`G9;63c=ELHS&`*?s)Fw#o{Hk-!pxBJ0ra_hB}hMV{wHvJ6oap(u*za5&&}I$<)I z#C$%FOeV85DWIW4=ytnc4mzC6_w`FAG-7A)IjdNbLLAfhtg-p`0uhi`0!ryWM8k`)oEFdvu2rc6Yf=um6no z+V$snc;5%h{?~L41scuRdW<@j>~=c>fdHFuiD7S_aafQMy>R~YSEH_lR4N5dsX&qr z{CxA2yUTc0Ai~@*2f18Mbr#v%qw@-`nr#c7&7BW;xpos<-3;ufB%xZvGUHW&SBXSo zJ|2%F5{V$0OwKcmiqGnemLT}jVV!0Rml6+P6dE{UQ#6&T@e1Qvr(?7}lkIclpgfuZ zyNO>4CESY2bMih-8PN98+Fn6(`^E3SYw@76@u_`-qu4aEtew6OPwwG1ZQYX_;*e+nM}#HZ43qjRIAl<@_pEZDH6d!GMTjV`MjOYW^I1| zC$>88=sr@wBY*w(Mod<4LHCxVvVH5nH)4X|G?7TOa=Bb|I2vC_vx5UoQn@}jU!fTz*6+xd_LD-k9 luiJ-b&Vnup!2FK@0{}~U+i}AmrPKfb002ovPDHLkV1lKD4}<^! diff --git a/interface/ispconfig/interface/themes/default/icons/x16/binocular_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/binocular_pencil.png deleted file mode 100644 index 65ad17c0659166df81106f7b28f1216f07b589f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 690 zcmV;j0!{siP)*4(Td{~xcsMqU|PN%mqc5ND_8!K?e z<#Ne>zhCxxy)vEu6C15_XdEwa+ST(^Y@9&~ErV3a!Am{uU+bUF`wKA)}8Xn@D# zv0?1J+wG><0r`mAYPA{!0s$N16iZN|UM;YIL5W@%3im96*<|s)NMWXyqF?#<}Jbt7Mu&!w!==FLq8jWBu7@*l~0{*ju zI*3$+eAGxhVN;-7Gr_%`9q`Z0C`+7gXa&BYD09VP5iki_tro>z<#IW#-zi;hKV%Vp z!fO0FU}xY{yZyEgushDW6p2K5G#aHrDN(>X2k_zvgWbn0w7$gJ?QggEW=!UeSypB! zU}Ws?L24;6$mjD~dxL8iaqKvR%0FN;w!9+V-nb8`*CzN_-)+0~`K@iQSNRuIsd1iX)INBa+a26SSS2dtX+|PVq zH}Axo3r~yMkJ*AVOB+!nJlIVo<>fC4np~NrNRN-=ED) z;=OUEjuMFv9`C+$-aGfa`>qYY$CGF@npRa6tyT-!Z1xRdw`Xy7i@@bjD5NHnNi`OW zsl5MB?rf~n9Mgd@uf~2RXLYbgbDykoyl?Dha;Cs;Fc>^eBof|syNyUB;w9``I2>l| zm}BC-jYb2hRLV;{W4nA&Gz3-%R5-(EG=kghRs=y%$TAc~fu?DS-|t5t5P-|&QVN9v za=F}!RlrV%Fc=KL4*LB*bX}jU&1Q2FGheUQ;cz%6xar<}g79}m*~zrnG6buDeVTwQ z%WU~y0(R>Y1W^>>bUGnP5;~m@=$(D4gUlivQ;p>!wxEyis@_>UW(c&>>GZtW2c=R8nM|fl_yR7{Q?ELP=b|3bNndzjYYFA&-%+hqM;Ks- zGcD2lO17_&gC9l>xDyXJ3yL~W?0s1b&Rr?rsA+;;m3p-f@Tl{F_y_F3WmuM`^}`?I puHzx}@iIi)XKbI|BSiZtzyOMG_A_kCuJix^002ovPDHLkV1j5SC@}y4 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/blog.png b/interface/ispconfig/interface/themes/default/icons/x16/blog.png deleted file mode 100644 index 89b94eacff3eab2bb405b1cba91da01f7b09909c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 539 zcmV+$0_6RPP)Sc7%;(3 zP8AUf;viiGp$MHzo$S=5(BILYP>N&4twWa%{($P(%~A0|L_v#>Jbd)tTM`m$#RE6@ z^1}QmOQO47ysa-aEduTCLm!Wkuyy zLMU_!LS)GD3DX9{urQw+SS$?Oz1r|%B-^%q1fnP)9G0PJ3KWHKg6VVyU7x@-Enefr zNS0-}FPqJV-_-=o4B{n$+J|2BFUd&#C`qLFuHHt_ijLBq%Xq5amv;370vmXw@ zXf&eRIYpz<>X2kIi9jI0yMD-6O}pJjtJPw%X99gF^qdhwE<{lz$NY^{#f;h) db^AX83;=b!3P+BgS=Rsn002ovPDHLkV1mDn_6-04 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/blog__arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/blog__arrow.png deleted file mode 100644 index 6d06fb737ff1b8b6191425f5d05dbaee3ee6b2f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmV;G0&4wQqlZY+EEK(P4N+A*~NL`4bi@0)A(7)lP*o{!zxJpA-6%nLJ7J^wwpsN%_5v6G! z%r2?Z%p))F9ch?pYw3Z*J#+5)zWd#C?l7fN3Dg*dStQFeE@tiVc>I9|+;BKNPEKdD z+4YN{i^bxzPd-MYk+I%gd56ROuZEJoa1+>hZmBV2&Lk+m zypKS@1Gn3SPDh5vBmAF0(=^NGMH?MXZxm*s_ zYLzJQARdpyjIk)7Bh6$oMl6b=u_h7;qwC>tcv5q&f<~hOhr>Ze$U{*S<5UWw`A>%- zNHrD8RC12w-V6xQDFQ0-q|tmJ5Wuhc81oBPP^ib|bsN8|$a3Kn0eNK;`I01|E-v6e zwm~DEumAoIjtu0{(yh?jt=fw*skixjKG^Mcde3A!onG|&{l;n3BasNU|9CNX?*`Q1 zRZPvqF(OwwP=GtLVz5^I8RE+2GE%7&nYr6g&}=p>J@BMq=|aba5AVTqXtgYgI-KLdGM?;F`hJDjB*r-9D4AP9V;5NPXB)_(m~@iO%8^iJC35U_T0q{fIDOOU*O z7A}_^Hk%cdN)2{9`9FcGsw2rOPpe}W=QY$AF`S|(BLvZC6n?)S#bR+suTlw-NCX=n z@50J`hI`>MjF^!Q`jQ5NK|K~lQTINdk1nkayETjb-W5pMHS{zW-|9?`?;xMg!)!KF z2?aEpO*+3FweoxL<{4P1tY$I;(YE2u%Lm63c)i}y;d>f>W!_@n;xa;!mw5JY8FP*o z$B)dfb2Quehk#z$uzg9AaOTt$1fB(>$w(v;cyz~!scEOXqe`dgNxb87xg3?uH6#cG z0z<;3rNgKd@4*<><_OeOgC&Xp{qM8?X@j_k!#l&8awFYCWIViS(X_0clBZ;v@qA5|NE%u@1pU1w~^gM c`i}qu0L4!lpi##LdjJ3c07*qoM6N<$g39wj&j0`b diff --git a/interface/ispconfig/interface/themes/default/icons/x16/blog__minus.png b/interface/ispconfig/interface/themes/default/icons/x16/blog__minus.png deleted file mode 100644 index fd5bd7b61b5a461fc797ae1aa13b444c99187fff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcmV-a0;~OrP) zeEHEguQ;7aZ1KXId*8kHoH@Mv9@l6z;2Otquc_O_dNy1v7N>3?%x1G?a2rl4tWlIdl%^OV^$J0tFNFaQOI%x zqtOJ>DET*mWm$pZn-Ala2bc2o_%VWMngN1Zt%hti3r*Ah%xgGArBXqs)1gYDNTpKn zV*(1?k(Np&7OSetd?u4&r=Cb8yq^Cm==b{whr@J)A`HV|e|162d^{fa6g+FU9}~C| zADWw26vc~OOy=YSWH5M4KyR5RU)OaMi$&a2tGGEkWA&esgxuBD`whd`UjW~QUauEm zFBA$MVLF{=@`o1}*v;ksO4`}kqTj7g$Hx$w%_efRD9bV<7*JUc&w$(B#>ew>hUIx4 z+U4bS$g+M3Q~^hG5?v&jOzyT?tt0<6U1gzA2>E>epxf;*RC+oaM is&qo_2Mx8~0t^6JIt@C)q2j>+0000j_x^ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/blog__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/blog__pencil.png deleted file mode 100644 index 24ccdb697129a988b7a18543c59c808c5e42fe7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 708 zcmV;#0z3VQP)U~VmGybGrRDHmFyC=-g04r!h`}K0sT4RxQCbK> zp%8pNA9A_eKfiW&F*P-XwY4>(#0EhS(6h18*ON*`_kfoz3RFu+M@MPxbUJDFdcAb& zE|-h0RpO*93)6wX`0tq+dz*r6HVdQCNGvp=TrSgFRbsl&Cb2D95m;ClzvXtnm}oSX z+Xz&N|A)GN+Pn=pJ%_QOs~8!1{&7oD-rfb)+X%=j)8tE%1i#;pZYF_T;uS>kI+m8c z;gZLg1p3!A1j}VI8Dg13BM?PVBlLJYDCd7dmgXsVaq%n8Uw(?{m-q3$KH&TQKDbyc zhQYx>;<=R)?Ck7lGbqSgU`lT=JUoOC1nj=>5RS9gAj`Alb>^|Ux(be5WF`eaFfagv z!9b_pjLqx>@*ccJiI!dHy2Hvb=tHg+gI=;-=x( qX6DrAKYLvX-K>fv)>T*k3NQecBQePRz;?m_0000^brP diff --git a/interface/ispconfig/interface/themes/default/icons/x16/blog__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/blog__plus.png deleted file mode 100644 index 28fa213c51c38881fa5c208a3e94a896c740cd94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 644 zcmV-~0(WKA3rL-uHbz-w*G-VM?VEOk)`4B5_MNoV5+ZcxeWluItm}QZARf ze;9PJSiC-sx$$^BJ0PqmT;py}E?fhlpXnR&n8kMBRWkh*XV#a~ZDKb>_-JV!vbY$m_c=^&HIV6DB5 z4?Caexu}aU6dn44{t*T?xO%-#*{1~Qbb3Y@i^b?IpLf0@m_9*s-EkLZFQt}Axcu(f zTX5xa8Odal%-ll>n$6~14^H!^@a6U9?zUzYu=RMerYve*vZNav$+;?(iV%rJ;BYu- z*Z11p>47y|#n#QmOQGNO!eby|I01wOTm|hKiHB z7s#>Tv_h|y?-P$=|20MT+M z-)_%$B(n!|+2J(SC3G#U-gB$Z0R-Q!_EBP|w-+$Ryq zGMNllJ&{N_HG3I!Ivx1^em+9WviM)A$&N=N5if&X0HU~S6em$_e=h*rGKW6RzECLe zeHadhypeJqfOfm>LC@#&PBNWNbNcky8n_u4h5@NwuOpYs@tISy+wK0+z}^oVU@#c) z?bI|45{t>qQIp9eL{a3b?=z}twOVL4n?!peuoo@-F}plx>>j9x+(yP?!t8^&`nLcB Y0B%MKJITWazW@LL07*qoM6N<$f(`5INdN!< diff --git a/interface/ispconfig/interface/themes/default/icons/x16/blogs.png b/interface/ispconfig/interface/themes/default/icons/x16/blogs.png deleted file mode 100644 index ce125b03cc05c53da78aff680efd2128a088b74c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 609 zcmV-n0-pVeP)A`~ZP>A$il3Ond=8!|qA=g~`2h?lHrI*H{m-dhrj~3d31;IlhCyf>%B8XA4 zx~@MvZ#J{+*4BY>p7Y*({Op@mDijKkB#F=EatRtNK4422n@4B0T3yN39fHheGYZ3* zOy*+K>3lwaLhBkpmSv2`V=y{m=bzy5c=)8;Xf(obIK=hqLrkYrSOEv@Kv+PWPUn83 z(ZDl5aJ(NvN1b5;CqDjmb2vS!uImP1KA-n3`Lu zRN(XZ5R1jwzGeUfiKsNbzIln=-2k?>9Hu_y2oQ-x%pdzF;MK+5+I2mB$kC&=+ikd9 zF8KX^-b@Y2_Dl*w_{Z%gI=%4n->a& zSc6pqAV@?Nif*?XilW$*>6YU0IIpEvcPTRIQDpgCfr5a+kGQ?VHFmtNX!V z5S3f47B3{tVzG!|Fvts1sgzBbnf&Va`=9^nu_l+xWp6T>~J_dOYH!F=XsRNWiUD%cV0rL(@B;3N~IDCg#uRYUPQfKM?YYi zO)$$4rBdlmrBXO%1a7$ZB3o>r3MH1-G!mSaTC3H%fM&D#U**u;STCM`{+T^@NpY*y zLbY1$0%R3Ze(K|yu9nrEP$(2A7As7-gqg(}W)2Fl+ih&5Z970#AuXD8YW_8fVqAL9 ze0qpVr6$F+x$$@$27>_(hl72ubOADns8rtHy8w%26eA;wo<8*vz-qPje)dnmmEiAz z<2tg{M@tn&5o)y>Mx#;MObH;9XizK`>t;wci$EZNL?Y2sCWE)-{SY^lxU6jr0!Yj0 zbV@O`bUOXYWRTpb-Cc?iG*Rdj~Q+j4_v>* ojgF78`?8?YYD4OgCjJUA0CJB#IjaOpcK`qY07*qoM6N<$f=Pls$^ZZW diff --git a/interface/ispconfig/interface/themes/default/icons/x16/blogs_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/blogs_exclamation.png deleted file mode 100644 index a56a0732750f702f3f0ea64cde7a7be036641f69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 728 zcmV;}0w?{6P)?Y1PVM}YY1K-X&J2TI`^L-;MFE2w71Rl+16V#ZVW}O?Sw_>Z+dM_RS zLy$(JLDD@pHy1f=_tMhRUFtgkk|d#0sesWDc(e+;-OhvNR8>W}T*lYOH&L(GaU3ws zHn>fQ#bTM*+}y-9CvazC2t}oV8Z3Cb)yLs=`ra!ox|$LI60>>4QVtikOKV)ph5BG0a%upLLOS`~Fegh(U`a*)sG zvAes=vafIejSqHGEFXZ_IzTKIgQjjVXa#cb=Rh)I7WXi9;|Z+N zAqE}w{*mEc`N2J5RAP(e@$qr~2123Gi3-@HPZ)CP=o5bdmL}Bwhfwxc`JC53;JNx+ znGu-w$+CQ%0c?MlFnsH9*6%UAq(uQnPfzo(TY_fJvokmT2rvM~R!K&H^gdw#0000< KMNUMnLSTaH081hO diff --git a/interface/ispconfig/interface/themes/default/icons/x16/blogs_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/blogs_minus.png deleted file mode 100644 index ab2cdda205ca4f2d91fa983a13166709eea8fbd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 640 zcmV-`0)PF9P)4#G;uBzA9gSiwDX*mLYHx$)*r?HGsZ_F**&q-ISbG-$tQCz$Ma(0=ompizXfzrk zd7)5<60BjPT!w6tm})AzTrMbzVm<#lI)Zj~hLPJX_Litt?p$0vav8?WIRLB9CXVmQ zt$cot-FSRHIa^!m@ySVCu2!pJBWvdKc?5$&v7SgIEM;kP6HiZ1f7o^X_bfwZ85+H@ zSnNI}Ff*;ng~s1UGMPM}q`uh$E?1}XSGe@4t6r}+PDP|F`})Z6PqW$lLg6=pV08-k aE5HEhTqUqD;AqtV0000YRw zg)_vtt-C*W|8BqYTX$?q{@~o-`TaTH`#I$aDwT>`rBVS6=G)n1z`-Lf%km4M zeuqSg#Uiv0ARRv0=(tnX3-#Ah8C!Ty{-=o|w zm&?fK^Hl)_g^(W(3k>%Nv%^rU)eyxTL(X9Ik%ZAxtuUFo*v+m+0R@GyDCpe8ONg-$ zUvJLOAeWQ4PsI&|LeS}SFq_S6KL>L#2tiRIRT}T_TtH{%F*G%)Yxs0V0!E{euX76v zxHLU|UE0}+GzeUF@9t~Y>3?UGYAhD3RzDKK`SEd!-|2J;grW!p0)graiO1n^IIy_5 zSVJZPZA%PaeiYys8^cg{_gmJwshR-gX|Y(iPcwB#LFP5cgs~N$gTvkjm&=7@N5`k{ zviw?2eI+9TLfqcoX4MzDfU-{f4x+I83^rRI{Qe*Y`%faBPXBT9A?N1YT>2m;TYP6w1&9A$+Iqf@2Z?Y)eF?2r3xj|to8ZzQ zdcA(GSS%uF2d>SXK&7Uj2|b?e7&)AlD$8;Y&~CT?tNiH3R6kyN{F=Rw^H^0?G@H#H zKvN;*)tJb1$5}Q(r_-TUYcS z7FoZk7}Rq^08$;?I9e;EkGr36YTmpZ)w~bL;T#=f!L`YYhYf{0_uov7r<2`Fy+#ia`{X zH}B-5h3k9j9?|^Qga%8Sej%)Gy;CrXUI*SYCwd82$(_04Q)W Ufr-NHCjbBd07*qoM6N<$f||EIxc~qF diff --git a/interface/ispconfig/interface/themes/default/icons/x16/blogs_stack.png b/interface/ispconfig/interface/themes/default/icons/x16/blogs_stack.png deleted file mode 100644 index 0654617df19c2b6b154d0604c2a82e0c6ba924c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 603 zcmV-h0;K(kP){O;1hsoI+i08XS_Y9VS`95Ch%ww%R13pJ(Dz1yT(~iWKuOTYIO_BH z**(X1AKo#%aJgUa{(kq|d!DOUEW+h-VX;`Ow$}k{V{>VVZ{K=O&JtuYnQZI2{&dss zLZNV*+LHh_3&@pvy^gQX?!f0e1;76^FIv_FL*p;>N8d!>f&%!TdH2DGHS^1RS23T@ zF&d2&fMUM?=BF_GgxPPKEwqnKyvp6cY&PTS0H)I^wTiiLcX!Ra|Kv5BFW!2{0Mj&= z02vD{KG(h2+Bz%h8MxhU^!p}`jt1C&F>=h!W)tyv9K+#o36Mu20BzdKy+{AgcOExC z9|)7h{oLMp2GBE8I~WX908LW)`1l%jcEZp!w{!eeGo4rg$XICd=0RsI_DlAfGL<}ZHVor}0?;%KF%hLiU}_t`naua+Z-;X?5$_+wtt( zo+X69-fqYz>T-UHetRLm<3O~)NxWL!x{d?Sb>VxS_M_1V{%{D7Vvq9CYBT14@f*=Th zvg{_HBrMCqbUHmKPSX^-J<2u_4C?bBw{06)mK_i8dG zcC=|+$$u(PJqp-N3N)^ykwE-ifw=|ID5$E+s6gXQ3)>9@gM2tVWX&8fR>uZ{8khM1 zUmvJm<641Fi7~CmoD_7|{Ajw2XQA3=F4pl0YhVK2%^z>e<#LQCx#@k(`RDt-M*ave Y03;N`WEV$*zyJUM07*qoM6N<$f-Z`=G`P)Cnxe#LntF!hzt~>047FV5?7Ft``%2`+_C@RW82m!Z;!6c$JRS#2CQ+?c zU6Z|}U@QG!uoW~Dn5GF$(~!&MTnS>a7+{+21hff35D<+wvMgJH*!cn92f{d`riArA@DV$_0fvSX{W~k^3C0ie$KgZPm;)ZG`MmCvJeH2K z^%5S+2z^dMNvK$#+dURU@fTMhQ$m2&AWve{YyN2()}#1re?N1NyN@dV%q*9zo6Oq% z!R$7_x}Bg9W(f%>qXoAyX6mO1T7$BA@h@#=S0^cS`6$2uR-4%n9BwC500000NkvXX Hu0mjfXqo^g diff --git a/interface/ispconfig/interface/themes/default/icons/x16/book__exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/book__exclamation.png deleted file mode 100644 index 39fb2ad2da4658af6ba968ec68b12c85424f5043..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 631 zcmV--0*L*IP)Ou5ikHr`iA_~Pr zir^-s-OO%$lelY|COGi%9y9a4_q{i76wW#Ru6u;Eb8YiH{=YsEHl)LcHq%e5)%Ad; zK@S9A>bj4RVZaOqp_8xEd7)Ig>jiPgaeRWE?QLLrja-}1nw#=jU!O| z{U9*LU|H5F0=Yl9GhTrzga9NUjW`j!q`$z$#2Z-ZO;Vuv3fQOu30Z>Y_cOX3#I!vW zSMFdMA7HQ!heHVnY*c|5Qs5!R-Xk@aK=iDEWPA>n7x$xK-iE~39?0d*2Wi0qe~V12 zh|=vHJbtu{;)UJ#gR9SEtQc0n$0>-adq~XC6e>+rDix~c8#41|L^xRKijzIyUd_E; zuWwyKQr$&zVG0MoKH}BObu^DZWBy#oB<@=@Zwix_y&;otEFt%#oo4%pMVc^zUl3qT zT)*)UCbtluX=$1sE)dBjslcRwSwchx$+woDCO{u5tyQs<>QL8zBCNI1KD^(zVXcK& z;!Nh)#+qz|PM9S$%H?txuf=!2tE;ue-;G1_UzJ+}sazaQg{*_d4~Rbk3;-v#_w>f( R!Fm7y002ovPDHLkV1ha#9pnH2 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/book__minus.png b/interface/ispconfig/interface/themes/default/icons/x16/book__minus.png deleted file mode 100644 index 41d37c03e8327d69b11c3ce9da98d7e83e498687..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 514 zcmV+d0{#7oP)`=Xkn@T0Sl{OEtZ0cXtWW;A0R2LEG)FJ&=?Vd78VBzdV=Ayd*@6{ zj!V2F1CJeM=e>Kgx2p*u(2O-gTFvc@qI*0L3Y>^QF@1V*u^x}bV8-J}nWm4PWD==F z0w(1q?dKO4S6d{Zl=216_V$2@6-ph#cl76LGqbepcRJ8>xg113k9xfxNsf_&^Q&jg zcMueCT^Ekypj<9T3S_fcz;&YqXcL;IA(P4cBUdUF{Pie3Ou%TI2SL|$*tY#ofa`xf z;SLNbCBOhLGIWGSy_*9bA@Fzn@aszY4)jh3GT@*Sz5}Ir7A#at;SM;$9Qbu5^}_uT zGN08p0TFcu<7ZnKczuNDc`ytE+m@eEeG5fbf6P?d3rKvq@OTxd~yQ8 z&3rg~$y)b-YmK}aZzE&ayu60TbJDN;vMhVB_VFZ|4pKzurL~Vqf*SbI1mk^aqwOjm zY#-j?d3T;43=44g5TRNu7JE^WuU#LrW4$yv@>hTX0CyhSO@GNE&Hw-a07*qoM6N<$ Eg4==DH~;_u diff --git a/interface/ispconfig/interface/themes/default/icons/x16/book__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/book__pencil.png deleted file mode 100644 index 616565273c8ea639e7f430786d181b06a570d552..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 635 zcmV->0)+jEP)y$MZ`@NHxZ#le6&Bnb#UjZiqJ)TP(^Et2#RioAn3xS3RWXq+T7o|8IpI(6{C$31iIIp6*6oO2~11pe44A=ErD5yb!P6(Pxva0Elsx_(Ag z6!=vY0l&YE6`F=XM+f}m`)NOxNSwBdM6=m!6WmUvfE}mEH3(Jj<7<2O(Q?VHK#oSE z5V08Q^}1)VLJICY$xCeoP6E?3VHgH7nT#hvBoYBk)0==cAxRR#;qbEJY&MI?-B&5>;Gw zD`4;yY~Klv*A|Lc>HE4am`o1M180R>0URf}tyh^v>7#~wk0!(W2L{e3EKC2V0yg*Q z-FSvAz8R#(-eJSwk=)Z-?HXmKoeG4Pf?n|gL30YjhvT?7`4C-wo68@5?3{g|{aVrm zVRyl@thN%C9l|XP55+NlS;zdUlgO7om9aXA`_%$uPPT`Pd(7Y%uUfr;P0|!b4pH$H z9q+|ad{?%UJi~{Dx3FH{Xtgmw1wDjLF5+JEqfzNWt^N5JV+|vBiT*pCyW!eq5oK+eW}kk2M@;Ae|uTnI#($7{hchMn8TO!InMYkzyM2B V8G3?G?5_X-002ovPDHLkV1h1!A8Y^s diff --git a/interface/ispconfig/interface/themes/default/icons/x16/book__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/book__plus.png deleted file mode 100644 index 07b494654a84c318d73486e9c931916f47d229c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmV+!0_OdRP)tAvO#w;jgcc2C$80qaOc_OsaypVte;=R;6YZ1e;I z2>Sg{C{}1)O(s{`P0TP1o8Tao0usv<)(KVj?LVhy$fbWOkmK<Q?gX?5NsP0EFX?M`+~#QXr1dF&*3Nyutsc;A$X^vgZYu@{Hkim^y0C3WPZ+DEc3< zFgtLJ2YCX)%_l)t#X<3u%#`(hAp{I=D@ bzXcco7-Q4Y>PM>n00000NkvXXu0mjf@Py$r diff --git a/interface/ispconfig/interface/themes/default/icons/x16/book_brown.png b/interface/ispconfig/interface/themes/default/icons/x16/book_brown.png deleted file mode 100644 index a403042c874bc0f620f19417e0b9cec8c973b909..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 416 zcmV;R0bl-!P)fIOA`%iH841O{v)Kv02ppeG!$_;Wo4p;+ z$$LH1G^xfV$N2h0oKiPpjteZzALRIUKEJXpiyYe~*KxM7KNyhP?~}u8hwGE+^hP!H z7;1eNhT+-y!DHv=UluVO95)>pK@ia7a70B>Xqzo|aQ_f*_rCP-PCmgds0e57=}SvmhA|DM_ovbfDnQZfXYp5&d3f2xB_w$ivNEH zK$`=_7a9Tc&klq}Ksl(Ys?~wwm4oFcH-W6j*-~==4!KPL{F(>#c}+B1eLHZuFyuT! z5&s&GMhDd2c|>Nfbi~^a2;ej}Pf-*NS2iuX9@ASzi@HaA2`~U0OT{K0f`vu^0000< KMNUMnLSTZiW2jC5 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/book_small.png b/interface/ispconfig/interface/themes/default/icons/x16/book_small.png deleted file mode 100644 index 438b6359b9c273350fef7245961857bd0faaba22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 314 zcmV-A0mc4_P)3>aYIWlva<|03cAWsj10lF%M+;{rfkv!3?#NS2GfH0Z8qiKYtkh z{P@9e>((u}pqiQ*1H<1xOa#LK7%S``n?aa~iHSi)MFmWQUGoRi0BkN`|Mlw^0|O8< zGBPr}d-o1ZgT?;*W+uh}4wwNT@C%v#{hP20fL?$b07_)PkZ6WKzld@HFUY?vKusJR z91uk;EMP+zetu^m#syCnE?ju;|31c7n8}Xm2D%XA(9a7L8vqbs0Mfi~^p8_)?*IS* M07*qoM6N<$g4}0({r~^~ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/book_small_brown.png b/interface/ispconfig/interface/themes/default/icons/x16/book_small_brown.png deleted file mode 100644 index d53f3c1470eaba8aff80dea733a31c9ff79569dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 301 zcmV+|0n+}7P)d$8H|DTT603cAWsj10#6@A3;`}c2TgBiB3m`B(JAhmz~{9*X< z;|Ig7TeskXYHDf>Kw-jR0E`uOkj)^>#Kgp)qM`z(LHu8ThzmsaU%!4afG{H?Bg4CQ z@4z%z>^E@+aKH=z0c85;Z{oZFHvp8#kZEiNU<*WEkbgm%I5;>Uida~{{IB1MFaW6V z$-;#T@4e&t{~leAnTg>nx)|fo&kGbA01#jRo}+ZzQ}}+T00000NkvXXu0mjfWQTwn diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bookmark.png b/interface/ispconfig/interface/themes/default/icons/x16/bookmark.png deleted file mode 100644 index 621a067478a0fd49db2361995280c8df0eac2336..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 634 zcmV-=0)_pFP)@ zi$H=FK|#BMX;O-UDABepN(dSmtceCEd<+Z>j0{dWB@-cT+_jL33j0f18MFw3hJ+%E zYOP33hC1(Ezaw|z@k~4Laqd0u{LVS=-uD#zw(Zoai+4t|ETCqA5aCa$)IB~MWX{X=3LLBeiJi%0`{L{@U|_qk z5!31PeZp4-hB>1(FcT8H5{VOk2x~L;Cc>pm<^jjPqJbCHaitD1D@KmAjgm8}Vgd`7BHw{=d zHKEi~e_(%C*WsGFI!qRe&j|Muem=_hNC5n6gB4$>^#gW)7)>RmZ^&Iq9tEUq*nwO0IN&b UW|bnwg8%>k07*qoM6N<$f)r~c?*IS* diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bookmark__arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/bookmark__arrow.png deleted file mode 100644 index 422961ec76ff4e5e4a07a7cc61c21254a11da4e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 749 zcmVIeG}fto>qk)dUgFPR9w6d0=n zspw-U(wy^U+wK44R!h6#bMBQ8WDV3EDnpWRfnH6if;^?8yGYgefIgo; z{>QcuY@yEMzosK#h_TsD36I5Miv`XR8l+;dtnDLoDb{Mu^-WG9)@I8UXAzg)5R~~O z`$t{s*&&_I5O1;Mc&DZysTd)nij2e;lc`mOl`UO#iZ`2cJnRfbf#UN)6%m1Plj#ZH z*;gu%?gdH`%gRp96BeMt0&2ozX7f|NyUm>5aODAqd$Wd7Rs>)s;XXmOx#^rUEJ6`KRc_C!9ny!`;eENpuN{TY7mX2E=hVByo5c4g@-gD zA?U8Jek`$#&qtT$FuCAMRyLml! z=j-nSjy8M$2d#jdE*FvyYPB&b323TmALf$n@c*$9RP;mOt&kqb<9QRcfm%<6Q)|Nt znn#j*6eX{xvJH7b)7vY zkf$d;I_mOF9f~PgGn~#U$>#&(XoVOqB?TYt_HGVqN3q%|!{MkBsWTJ>iY$XO7%*wK z-=}ZxwG4_S;M~^c=E~m$tDriFSrjtBJZD%Ct&&7edCZ05$sgJG{1h{C)eVBG2K zA^3_4Bf8c9U@EX>+iVpU=)WYAyd218YqJ zrhUCL<`XxP-iHxzF$CJXB= znUaiBk&0FQHP}s^n|9XMm(9lI0f=`ymYd&we!>?vc9Vh^F9 zwsxOZr$fKT^H|A5tK5vk+qNIA2}-lZ4^uhVylDh-Xwm!q{fjOd^d$EhD7{S@B?T3Q z*J`!s?da$aD@tp~hJaRQ%7tde7{~pWh_yy?oVdJ`ZeXb}XpG9wM5-H&>(4|f> z1hlsUPr5v;Eqlk7GJ{c@N(TeIu?l`~cVtqZ*FXFA%}fs;{S(O~lb?R;L*N#&J|Xl+fB^vTs1f1^nz*P)WWMq0rgCgrzn14#HpJ@n;1Hx74po?hZJ3!XGP!9#dDnH(eBS0MbGwY-#YPH>!^!$&$g z8W$}X?7oX*e@LZX66{+9vj1$L-9W+JzP7egg?t{m%Y~w0pq%hjI{k`P$sbZ)R1-L1 z+U3NA5U=gUqphtc+#V0IBO`AJ-Q+tM|0(74rIwaMPJ{cIOiup{oTPA&s*`fU?RH~q zcsR@ByEQ7r_$m+OtH{ t7r;Hb%FJtGc{5V62N#u)@Fg5xvj0|r|kA(Aw(WF4>y6Py_$AWW~`aPGB1Qy5{ZO^x_&Db zi=7q%$Nm8yCDfc92vjEK=aH>xmGUg>76TZXTv~eMbUJUm=*{np{f1|QNg>~9&hh&z zjJY|052Zzf7Q$WX+**q){ z+WJuL9ma&`5?l!vZ0!6k5O_oQ9_JoQHnnWnc2OMgoH)~TDDUS1^wgBX-8~5#Xa3UG z*3YGdL<%fJ`Jk+Jl`3NLxEdNtqYDe`GjGev!el7)mZx@h8&%B@OXe;!%Q()?*9z+E zOBPcWww*J74uuAJx=Uy@*|l53yb+iN685@lYft@&#h_ZPh#Lm%gvUENh6vvwtjm`p zRF4U+kDx2caBAUjb#<{VEe)exT_c2V6MpxY_1+EOdW89NFH<3^pPfWqosf9|IC({m z@}E%5o!F_ZPl46H;snsy$0x$iEP)vg3kE<;7B5$gTNFpjKvOnU~3<7t|FuV}L zJLyJoq1M`VzMeCWGDiBs!*jmxyubJTzV{q~gt$-LqsoN91-h9sB{)?=yGY&DfHBS3 zUyoe`pHNNsZ-*vpL4{9> zanxjIhfxBuMN2%Va!0oPzvNNQF)HIl~v+={_ddYX) zn-wUH0j;|`I!^y3tb>vT%!Fs$?pJ(whdHAg6*w9NoO{~ZPKD>^0RvXDvM}xOye52G zhmrgh)?g+$3!ToBzX?m@*jorsdA)CV>{}8TSxZ)u;4*f;e8}OjFB6UrjBsjhF1~hl zzEz7-{CzcPBjfv0;`6|=hQzN>M!Qnn(o(q;3USba=QAOlaM14`;Ob^^f8IIf*eI0+ z8uS8dS14!a_TuK|%3lcsOXsn_`2Fw4_oj3;v}X<@B5m~*=WV(pEZ46Phf5k8PlQ)i zpqR~w#$wn?c&xko13TYnYR#yHKo`OqLa`8ZX9OXkihvLw6NhlPuI{)cEe*rHy@Q0W zJ+h|`J+NDXKm~;ZRH2jsi^YP0o}OXe?RviuLl2|u_D53#j|bz> z{<8;d-=BU{;|qbf>wj!EwX+}itg8j6<$4E|M{T3Bs0>`qn6S-cCiRsNoSzgs0}_W(0m>(%|Gj0R{jeX7CvQ#U?NS0000S)rJjfx!ky6#(&szYGjV=qG3ZP_sQybD2hdzTbDC zW;USaOU=z&fnt3?xkGpj04i_Sg;IuIkP2Vq9!lz12zjlj@m0NS`0>bzDC28Mm?(5MAr z4YX)PNeAD7_!Y!JE@1rEi7+zmBb1OBhkjn5*Z_b40|1dEZpPo%`j7ws002ovPDHLk FV1l#vlj{Hg diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bookmark_book.png b/interface/ispconfig/interface/themes/default/icons/x16/bookmark_book.png deleted file mode 100644 index 51e91a76a976b888e422b9bfcae7ed36bdea2dc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmV-40?Yl0P)yR-sS=;sXS6=?jPu2o}XbvM`h`($FTkAD(k_ zGqyUW9yr{Ox${52bI!eiloH;K$P@kQ%~RZOL-N-=k+(LJ{$Oytdv=C6O(DV%LI{M_ zD#XbNwu(hWQG}>aK(pOGT>m7s)|tTDP6w@>7dUwN3|KA!I^3N|eCU0?8~&!XM??2d zg0RtO02daR&tb2x5tK@R5vbSe*`Wf7zWaC{WCXVbj4`n6O2Lqa{s|ZwBS2LYYAe4(($Ox<_;Qh6^ z`6dFZDFuqo6qX2hz3x;H1fD=`A}|oX+C1hG=-&k4Uj&u}C{jl~awD&Ke@)>Ds2D7y z?hr_)ZY}l~yGY9kK25%&X)kjK@>6iP@-#|NE|>9Sdm9tFNT=g5sy@0U@fCqj;VOmX zO)d_n%{^{DZ(=r^xqioSj7p`l>b)0mbF~nd{eb<_cLZDXA*S&mf0Wc~el-6wz6Edc9tZ_bR>jF)x08_y4G00t^85K_GaX45B&!0000?SR`O#FA_`svp(4F`E%qP;)T0N5-g@#{^xz={OBI74qBkibB9e=TR-|Mh#UF^! zODU8j+cYNop7Yktnrf{Me7rZa^S=3JhGm>{_;!O}xl{L(__x`FId$PZLF>u#^6f;i z2%}nsu4&M99a<^{eRdYna2SzD1d&h(x#{Wa-ACMY-GJa}p@2#AG_GA31KMqXk{32P zUN5cfEx$W?k&cDm6=>OP7TA(Ns|DF?g7x_&GDZgH?|ExfR^=9Vo zuR!m36+?jn=_^q2u6g%^6iAm^pz2D6Bn8UvZi+GHE9e}gKtT7WtoMj;mKr9$qZ2-BjwB>dUwH`F#HD2ki{v@i=0!7;3c|YE}kQ z=Pj($A{xJDiP0$VVyU#kB~|oELTbmkQ#m+})>kbHc*o zdoNd*rrlL7M2Wxo%2jXx0000dJ*n*MjLP2t{aI`M{tqT!=0dTvVb_A(BE- zOi)Zinr0rJJ59%?E$D@hGv{*dcfRu&fiZ^RxkiYa7jDnu-={{n!9Uo(%lN%&bt$&G z3a#0MB#MwE31TV*X?Yo{*9%2apvW?E#p2@LBW9YWOR!cdp%6Tcg?s`S3;+sV`N8nK zygr(KyKtV&%0UHUHk$?7Hqh_G?)4z}e1Ih(lgYS2GLhbY`9*LQ>?g1+3pR&gz#@nQ z?$>HHHz=J>6RGuo1j3LYMSb9>Uay14z%s?72qfMQ%OX(yCPAPHalg~)>}H_GIz2Ow zRv;NpM%h(h4;AqHr1Ah~LeJ2VE|UVmRUjTzV4G9|W#=lmx{g*fgLk1{h=eDx`ST4PKUzYo{}I6xV=Cpk!UrYVlyPs#_>6P8 z95hXH<{g{ZKq_Lu=lu+i*uuq2x1h2P0#jSEtY|qRIm;EOL^4en=a2ZT`A_5Vco3JX zNJe|q^>5JRF1qdOj@9HX=%HhY{tg!S9w>xqLZe(RYj|oj-L4is#C|v0>fb8w>`GrqS@|ZVY00000NkvXXu0mjfuJJu5 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bookmark_book_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/bookmark_book_minus.png deleted file mode 100644 index ce4f7c0acb6909a43a630f65cf94cbad22008ee5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 626 zcmV-&0*(ENP)_P#~{5-}+M&PNk}OZfS0uzX3kIH&h$m#@DQNjrH;Ux z`sZ}|y_sudmi}a5m&;|KtAYJ}=)nNi=qR8ZluD%}C_|vH-fvq8gJA%r6f|oXLXp~} z>^GauB&b*{5~%t=04oA0P#;)Ytrj>2O4>&OINT4VNU45FYSDz)@AZ1WGf-nq&*aez zoX}*?8lR`EGuFVCJgMq87MeWx7o%FViv|q$+h6d z&UzZaFwg`*nQGw~W7+5Pm_@|EUf6t!x!t#^5`;n58n+K7;b(K$=zK**e@9{E5l;DA z^h=xVTnvJ%6NBzY+L%u%07h@PIb^e0oEslUhZd>PZlmhI#;xfq!^?P*bm~Q;0l}!; z94?z@T)A99zu!0W_B;>yd>-x1OL+M112or3qx=yBz0-T&zKDpy7=d_XPw*u{0sLr& zrF-*1YL%ZYKHtFhlk4REWB`snOS)69*FCI<{;`kwAlQxWguetB0CA2aQ+TFiegFUf M07*qoM6N<$g7}RgQ~&?~ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bookmark_book_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/bookmark_book_pencil.png deleted file mode 100644 index c49f600ad7f787280ac6e0df3d004627392b1d97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 723 zcmV;^0xbQBP)8&S=z=v6(g`z}I6u}rmkv&$B!d^BqmWH^T zi@BV-d%vA?n-{mDzVPAP@44rE&gYzSucB!hisuHwtDhe7;QuE^7~ltOo6|cHiQH@+ zAIFYl5<*oWgn;VzL-hBfvZ4YGhXW3q4S`VT`c{&r>$*koBpgOp(_vie^Z}cj00j@H zG)#@omX^bRXMx;;QB@|1+b^^mNAQ^=M z41!AFdn^{Sf?8Tyh}5tM)PE7kB7vXgz)%zg90NmF3Ahq}RiZ%fJPdkaQ2#nXp$+jp zo6Y{NK!Y`BrW?xS$00PQ6D0~np;)n80s9$z*dEKoYmTN9&xk6hmMf4t5m0qj!Itmr zXK)MoA4}LNmg_tN1Kla$mi9LVqBw1~TMGCz*k+KPcjEc$kpriEzB?f)BY!H8L_n3o zg*wyno&DALfc;_;;l4TS?KmHQpU;m{3(@TgG_#VFxV+Jfq}z*6sm}<=71U6&#~4S? zxghS1Ou^N-FZ1>1k(rmy^^z@^U*%(m7jCy34K5c_^dU{JzQqZQp{F~D!TS-Uc3njx zy^z6f4_>S$p-HO9!{N4h$ALou7uT}s6002ovPDHLk FV1kz#Pmllr diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bookmark_book_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/bookmark_book_plus.png deleted file mode 100644 index be9c183134aaf73b4c1840358b79486de2e316b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 651 zcmV;60(AX}P)3H}L!hXfCy5CjoV9*Pu2C|=YTB{E}-pugk`@VT^S2GL)QQRP;1_OYK%MAm| zm3Nc!Kj+U;D*x_4&*$^Nx&r!rsI4t%@i-6&f&2%s3gkAR>P zc<;LIs3@Dw5^3;%1X@Ipp+0cbYBg{T0;%stAh;hvK%npXBUbb@P0TcP17O={$36Oh^X6~#~r-hU&e;;fV1KR zzS(qR6Z#(x6cLb8$v+ro-t#%5rGLbw^QWN>d`+rTFQJ@Q6Ap|}Nhw_2o`Gklu-f

    Q1&4HVu^5U|RknSyQGIGjwPK_AlM+8UaJWjL3Qg+)!j ziMgUPP0PZIC(mIhQsn0Fvw6nONe8`NFPyh!SxBeTX!prYwN8S-(JL0-KlswY^p6kF zb{r&##G<^9FBvpz{%OYJ3~q(_Y4;{tvIT6?6z*eK@`W|?#{(TxPS)E zBv)HR<-jHR2Vw##?y3|arG=1M5bTb_KS1p6uoiMfs)Uq5s}zceoK_(ukc*n)0=K*1 z?d=c0-(@Ddr;P(|-oDxQKJ(t28LQdt3WsG`nSQpl)q;8;`S|{}+ie;niXw?2X_{uX zDmXSE3xjI4{%B{%mGM}lRFYo1{Tb_h?Q;Yu_wX%GnY ztn0c@H#Rz}OG_R2JVDI;Nq|l%OH0G36Rkt6d!8r0@5`(0?Kb>Yix4%2gB}+9kf64d zFe9*S+m^v#Any(j<>B01`_1m|bNIi`01<07089puKr9WPavVV=k|c?g%Vqg=aq&CP zAP0yIL=2}?mt+%!^%*piBh-Gy7!`)$Lth=YCx{|L42g0&%H9 z@=_TG?nv#hb~KHRQ)pm`O~e{~8N*lxO+zZb&d!Fj%gZn2KSmM+L&mV@e*_o+m&Y@; T7n9MD00000NkvXXu0mjfV0t46 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bookmark_document_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/bookmark_document_arrow.png deleted file mode 100644 index f11fd0d888638f27bb04ecdf4fcdb64550536989..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 721 zcmV;?0xtcDP)DmiEvDw@;bKX2DBQ6w_WC9!`?!L3J%Y%w{KS zr&6gvCrK$yUv&h=NeAF;6#zj9or0t_l3);>H_&DB(yTaVj;d)|%?P@q1Jjc4R@Is!l%rHT zZ~|zvJFo#2@?G@BhNyHOWhda@4k}cU6Y8mLmo<{G9@*3<9Y1&eVA~x$sq4mrGW}*z zqRo;b_@&XW=TMS!6?_ z$Uj*HKiu`@Wyrb`E???tdp!LmAqlQ-E-j%c5HJB;`AlY#9}ZVz%YWcjb`hUfclZE%#UhN3 z4){auc=IUtK@s9E=QomC+GDXB(y?fEQ)QB->#{^TbNhu1&Plm{G_%%tZu~muatF;M zzo)C~wD5SE@SmmmE(}U{Ye3n2`@Hn->3urd_$$Bw!bfpH=O`~R00000NkvXXu0mjf DBY{Sq diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bookmark_document_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/bookmark_document_exclamation.png deleted file mode 100644 index 3de5313f34da9ba955d3024bcd79010a1e128e46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 748 zcmV9Mga3k~F5*;EQ|{61>}|?_=n|NGR-b@=d;*&wc;rD*1Wf|lwh@cP zu(GkSUsF&c03!;Ek{oX&#);@WM3>1;_wwp%Bwg1Jj9}F%a6QEhl7#)zGnhLsV6|NZ z)d>HZ8bsj19l=-N6POe;M~78jLPzEXs>)ls`Et;&V_bm;SAj_#Me;$CEqWvEDX$QY zB@t=}AR28(M|dS8*$OyVm3HkxVEms(tK)?q*Vg_L(4&?Xa5!-k!z0fj%SohT@4H9R z(-PsJ0zQ*U?{8LD5$Ws0Yx3HWZAc>E7$wZj&Efa2A` z=j0?#jE|$^-d*e+D;I3xx@6SHD1Ri8s^rT&HCSY@u7ZK3CA3p_ zP8K;MqxDjjHuD)lwvEdJ(+Eo{67pUoa46bMBxm{9;SYsE%g@bC$^R;OG570VpCB&p zBE+^34OCFsx#Rk1KtnPW@2u*$#k)2V+9R3Fc@~Kz>OYjxbH!`Nn<^>%XQJSk4Wglb eU&rzv0R{l0GkH^FlIny20000r_-V8(GfkIoh`pTICzQpodCe$UL^ny3E)8$0Y0f|gigrwJc`HT^r_t* zgbYFeQUT#2$QLcC421g_hRI@yxM+@US=Lw!ZiGQ#;ZN!MSP|qXA%iFY4#_|QIPf*R zNDv+Ku%iI~GH_6l6DC1h6D_G?$rwb#JS2nr^*ZT8d}|4y@}}X_apITDOEOZa5df-U zf}@IfLynTIR%xcy8fU;q5B_npNw*6HsvjN(56!JD`rT;!ZS=|c`F6}SpJJI$^j{Yj zbSs%0F~DON0FO!~np;_+SSCZCi$$_dPbt5+7_MJBJ&$w#-TwZlY9^njcp~xQiYT$V?AO2CNyy`mwV+$1ic4pLoL_!htPrJ_ybsu zfin&8>)ZVCB3P*Q@0X!Ikk|1>$T2`jc7h`O$WgOsc9b#x57TUsRS z?SZK(xIZLG((OQCxUIf^m^jxc=k$I7vn8V~Q;hq9>2tI$%Q6&2!J}|EO1w6^h%-+F z(*(W`1)7a$0zojvOC1i-Bq$UL zaJgKV-Pp+Tb$>ig9TWv1l7vnqW{xCsAzD8`o5?L_@_0^oXb2_gG{jsk2NT8!x~&7l zQ(WeBqKrg%C%nkX`FU@3Iz6TXSHwIen=nSOIj-^U5xRjA5{Ak${1 zCMJvy%L!H9K;SO38O_d;iHD3S%WUj<8~eIE#j={lvbxSVm*?)&0#{FR1FSy0kPyufP5aFaTX3lmd4o4aooi002ovPDHLk FV1m)4SsnlY diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bookmark_document_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/bookmark_document_plus.png deleted file mode 100644 index b4d509c3c215fe604f54e6327fcd07b250ebee0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 706 zcmV;z0zLhSP)+CvVB2YV>>=0PZ)N>LOaX8V?GJow=ICi8aY^JdG(2Bg!bo3V`su>L48_kn0E2sV0W`S)izEqnr_TrK1eRsN z@AqS+Ts~}7&;mdvgh@fRXh~)et#{F3^3X+`H%HNRy{!e)Q-Nd2Kc*;cn^2C_s=y1N z$*sTz807otiwjZcJepp>zZDp?BPVoH**?*dEFRgTFG&=tMQEq?Z}lGxJTnX(a)a(# zNRs)b(baL{da2X`(5?*m_~#QM(Tmvj{SM_%E~DUo+g<@rHS*sSi#U@=;Pv97^I`h^ z1ANd56kuc5+@%L*!BWf>a#xkDjSch!gARaqsS@BqDuvTyW9SNpkxwR(-^!!sYQF>9 zF?MkI#-$Mb483}pJK8lIkHa4bOfS#R&+^0JzX@CCO_1*9X0TStA6?-!;M(^b07*qoM6N<$f*iL?<^TWy diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bookmark_folder.png b/interface/ispconfig/interface/themes/default/icons/x16/bookmark_folder.png deleted file mode 100644 index d9fa74496a628ab7d199cefc8d662faad00bfe8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 636 zcmV-?0)zdDP)ekYuUvHlPNdnjHA{ZRR{xg#kqt_Q6 zm(noA#^R;Be`#cGd8D8-7-Qj#ffXo$=V?+l1u~UrRB2#b-+&@x4V=~`$hlt{C9h#d;%j-I_K78s5sCdEDf}&80fx%Enb1#6cZ>3 zFzxnaPkJ2&B=|&WnV^85AY*7119B_j@-t;=hRyaD92&oNUJPa!AA?4L(8;&goKN0! zpQO!7Zh0pp`k(EuINTUP^TOhk^f#%iP7qoDi`ol6t-tq`+{gqxGopw>g;?$g`>Fdk z18I&Ejnxk;I68eAtM69)0r!2tIw9CKXq#1g~i8CfSwKpti12k^BWjCJLWGBE4lTb(jrY$U$?e)d_Q%(5cNB+%<%Sa z9N;CXMYTP_vp9}@onJoq`pp`aL|5mZcu3HgyBN-%9Ki|v$7*k)(^@u9!+0000Q50SG&K(CQLop2< zX;29%Q6dxuB$5dHNQjc?qv)dtA^j+Q_!AL5s6L&f7d_}>B7$W4u?#XuB8n)(VhB+u z>7f*UID_Mzx#!W|$0;Z1qXUb5_dRRvyUyO{S`$$lye!KE1bg&p3XNDZw#Se#r z->zGh)uOfT&$(_alTO1aAnqrGWevL4b)Rj5=K+2{zFa%`k>0yZSmn-i?%Exxc@Q5v zlhtMXD(2|CT5Hrc9EqR%`Sb#i%|b6N!747s)jb1E$zbF>bJ8=PG5V?!ojW(z-M;&w zS1SdF@O#-19;8&zQbG}I!lzB`h-_=ZL>dUSw1Rx$|7= z{6Y1zI7Yrs8$!l)AsSi{YOY5t`sl4?+x?C#aKHkgv=J(TMd)ZdDQ80gjw2z7sUA*~w|F2~{Dy<7ON2!>lWG;3)G&VT9v}Q4=|r z26mlXFN$hvXG{{QgUT0RY>ys2U)g06+i$002ovPDHLkV1fpUSPlRH diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bookmark_folder_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/bookmark_folder_exclamation.png deleted file mode 100644 index 273ea99351759c3b31a78e62c18154131bb020c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 783 zcmV+q1MvKbP)u&*h zpN)P*b!z|tHjj|8f|bl=#UbM-;`Px4Rd7>BSBmAE(=ertQ#RehkfR-u{t-)qZu7re$Q5mjz8yhr_cn}< zjVOcsT@BbSbJjG~%+w-Hq$@+z9d02)bB^1_07)p;(Mu7%~6= N002ovPDHLkV1hk7U%dbT diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bookmark_folder_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/bookmark_folder_minus.png deleted file mode 100644 index 2c50a30f86f49ce75318af1c6a70ea151acf5dc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 693 zcmV;m0!safP)oNQYnZ~2t|7n?9HQ6K@lw;EPC)FQbe)mTvV`^2E~)~R4ix?>d8YJ6)mV~BNfts z6x&6cpPe7yo2=cncyQqDw{PZsZ@>9wR(#Go;30$sq(;pxf*wR;emyV7uxXU8XedH2 zHg|?1qxRy|zLDF#2m&CHz_$lCKhS(*6Mu=~F~4{woG}L3gBPame19Iz&eY zwjSy4t-bBM`(v(*KT>~I%2oRMRpQQiT5oi9AOk3+VU&WVa40xmn*D;IzJcibhjVFq zrY8#pc*;Z#n549Vk#ZwAPxfUo`R;WnKw$OjVzs`CWseo8m;xq9Z7fk!h%i4fel{v1 zUp^LwCyMvYn7?2UZ{TW01l3lcC>+_&wF)Bnjv!TV2QLYHdQK)v6>A`)20GjV=iJP4 zT^Fr-gXXB#AekK$O-GV~Fsy=rO^h|*T$8zcOhGF^t-OHkJ;TSS!3f*OMk5T@(Ai7Y zM@DU-y)tsH`A*PrEteOuBi)V6$%!1*XP6gP;A#6sX^HRWUs>c_kpf;*#PD1PKHU+n zXWri)P_f^XD88A&uH%PLd^uwmc-|T;+ql+f`(S-3Rlo^{XUJ`z###db$gHii)lrwk)q| znm__73>`w4u!Mj~U@QH24BrBin3=qf-E}|Eu|NOmSTuTD0FO0crH-JoNSGuvj1<@p z1$}roGl;61MtBDYaHu{w=X5xx+%W|jZIDX90>iYV&?G2?#mq%~dNY8kEln7H)Q?To z2eA0e_pz-Z#;u3S2@uMMk*dJPyCxIx z_p~vCoo7bz@J=%-SnMuCd?`vC;#zP}<728pSrU*H=-jkKf~{9aak-@iCB;o}yEa0P z>j=!g$J+AN21?Mu?Nez(Bw(}X?hUSwrfLPvfYIKLUEyqO$jO!0^m+CJGF(~6+k3N~ z_<5}RvjUBG)u{?jFy(t8E&GD5mt%qynoUKRW`z01Up*jlIA&nvr5EeAmto|&R|fdM zY_PFx7oy93kXJY12RjVS5<0?k4A=2($UaglE&C=_z%e0*OUFrnrsT6u?Y?Vb+^-;N zC=Qd(Uw`8moYnbq64|nE%E>elkH@7Ag(8yAI(~}jXYYyi3qP@1r8C<#`#-_4a5yY& z*U*{=!xQKuT{=HvC&AUZ&vvRf3kCR(H5-86GbFCj=lm}L1^}Vzsl@}?KivQT002ov JPDHLkV1nqpX(s>x diff --git a/interface/ispconfig/interface/themes/default/icons/x16/bookmark_folder_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/bookmark_folder_plus.png deleted file mode 100644 index fd23ab2be87c4d70369c7401c9e8b58114d04b63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 740 zcmVS7~{cEL; zCI%KM)7(V`#9+6XP$L_{P7?Ien#Xj2dcDJ_O(kwxu-Mk8VtqD>U| zgE}xnqciW_pU$~6I1{w!!pC{%-S0c^yXT%K#s?kn62b;V`ppdrZ78qg;-I+B4_j+% z9#ZHeBw)-1f2YQWLWeK*_T`#>;=Uk|Q*qxX3x)D~3lk;7*jhGI{u)4C{f zO-XGGnzx-B9+-Q38z>ZDmX;vGVXWxrZXeiLe=CvxfkxtGR0dTA6@qX+!yw^mz3jk& z^r4i7Q3{&i5I9dvPh!o!7E79!^JwkeA8iGq?}y&ORi<2kMM^6eDVM={$I3<|;^UU& z9axXKmtUr4A*Lb7fvRx80;!D^YJw=`_d1VR!mihMkXC7kycSii)8)AWl?4J?kw6t4 zD1sx4xmLa z&jel9^u%}6MC;IW=y4D6n^;%rz}5DP(h9#OKibH-A_u&uNZ|$?WNAj2&$_>RK;&#e zV&qdC8~1L<$cMPy;PzpgkG)7Ybc_~7g&fD|oG^)Fr?Id#KT-&SE@I24Pg@r}SXC42Fk*m+urc4g2 z9XfN+4gM3nm(6Bvyc}Em>dhF2Nf+UtxS9~{?+sjPslyih$C{WyYA~km)8o`10R{j- WqofM(`7Vn900007o zaB-6&g~q~5kxm5h1;htXJ4LXt@(sjB2v*TbLF@w-7J^y{7RC@nj9O@81SPJ!v+K;5 zS@xpjz+o<&`SzR3DufXH5z8!fI=eH3|Ko<`W?;25u?qEan|Jkta(O)wiy@UvqC1uH zvWtzAi3IWs3roB(0C4*Z(D4=Ed`mwp7J;!vHv7f$E&BPd=^57S62CIbA@pZ}skOAQUPeE{A3Pd zB9lR_R)cNZ?7*n%H&AoA9LVShEX#^4=E_(1r)V@9P*wF8VA}ye2REUniE6bP0dQr9 zEs}82(h#6Ug`y}h48vP2l{rAv04)P603Z^;6}hSmsqENR&>*x0A}0L>zTjhN;JU6f z==jsXQ}jja)Wu=);M;VYpBn1N9zbhn@O=01zISnP>rH;Y*75PEdjM(RDaz;Vjh$;e z?azlUs7Y8s59@UDYa~o99*;+^Q7D_={7pB*uZ$a{S=LLXQV&j?$A5obt_<{s0Y3r^ Y0PrI9^S}L#g8%>k07*qoM6N<$f<^W3P5=M^ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/books__arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/books__arrow.png deleted file mode 100644 index 778e3165c7d699cbd89a4add3a71ece6afbf0c40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 651 zcmV;60(AX}P)cNk?Di0Ljs>b4zG}008T{Nd zn@TgYvsa_xFygTodg5_cNxF_jqZpZ-oMMSS18a{0a_kcDwk$oWRDh!w=+idU&tUuZ z=qWnf5xvM%L+Hx^C$1b{h-JX7X|PPwPDuCdLTN;{=b=ytk6$%7FF_Y_DS$kFy@Faz zx06*>1qj(TAcWWk|3m(wWl+rJ&}cMZ7zW)i!g~q$d_E8H$YJQZ9w=tW??1gjv)KgC z^V-B&ELpEuVV{VV6%b?>5j^m&xid*a;GXpyZ=n&{W1JN;Hhz!*U z2iY`qd=+}3rPAQcw)+XZW5BSyh}~;O(Au(aW;~14wt#)IJdjoo1PNTkPOOjwKCc-_ zsRewf)$sD2h|?1?R+d+@;hxl4#~@^P^KO!}IfH{3JDI`K2GF9u?9H2XVB&l!`Q+~N zYp#JqU|E)rpgF&Y`_)CP|M=DVV;CO`qs8I=f`kXzl3Mynd;`Ic9ZtH$F5_Rie5tuW8mEKjz90#wx>I)K@E7T_}RqtqZ#l7oy!MLXoaqx)8*T5Ofo8;Uj_@MG9Ig2t`B`7foXp zN?HnP)5Nr~8RzA_Q)ikq6)*hExijbd=R0#aLI~D5!&EW##O)~leWs|cwNz_;m%+ci z#lqNwv9S@C!vRqc;1NYjZh9A7F7yr!U1W(Z2KuH1)cu!$$(yl;O@gjzM#2`q7X!UJcwH505s9%w@z9L*q~ zmyP69Dg~(Oih-)ChQa@kXQc@Gl1UVcMJS3wf0)WQ6Y%MD8f4c_$g7nu!{Kopao@#fWeVy1bqHYD=ft7Q9rYY&Pq|3vH%(|F)yk(c0ItXdv2@hTn6&`6pHRCwBAWMN@pzydOWSn03lR7D2d z;2IFuqv-x;UckU~asr5{v|{JZQVupY1};uc23{^MIOYNJIXO5O45OmbK?+d}_%Ec& z@YgJ#f#GY7z@)9M&A?)y&+z;AZw$>KC!fE6fZ@Z3 z4-8C9Ob`S9{6R5*8RU|`KYudZym=GD0Faaa0X4x42h)Gi41k)-z{tqRpsK10*9>zq z$N;b!1_r1Lexn$`0y6;QM37Tq0OsU>e}1F70O|!Mm;oR`WCiGam<#^@{||EkbI9ZU zm@a@j5edl6sb$E&bee(h1Q(bO@}|~{mll#g-_3*>zzVhv*@?*D!8L{)UkCKC<(ac+ zkrmtkmO4 zhB+UWo@KZ;F)#|4%4DJ9jL=x%2jWKy7Az28*z@l(&dmGk)gvG&xD03j&=3ZgApije Y0AO(U;I2Z2W&i*H07*qoM6N<$f*C0Q0RR91 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/books__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/books__pencil.png deleted file mode 100644 index 7b787a72d3fd16d36a4997d174dba509aaa66207..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 681 zcmV;a0#^NrP)H*QHWlu(1T(Rrb?|)u}YTI1c|9r-^uV|BV(bKW2&gE2_2N zS+K9ebjsh4#rhm|b#OVIXmGhKtt7G2;Xt6H;}lJ-FwmRVL2c^=UR~oKL?Xb}Zn9b+ z`cZp)Vb5Ojxy6+u6ScrC06Wj^n00!=EJ)Bb%}DUL8_^zUHRd*(4Z{;DrktP(xxEJY zz=a4B3E4>Y`Fwz?E*Yq*Y8d{2AKaGBkY%~1m?BSq z9ET{1U|Dv_KvCF}pPpIH3k$}BSoh9>i1I^n!efQ6+eVn(}22CF$@EN zpqipFUDrzcC@doXErp}K$2~bKJ?g7MI!u-QE+9+F2U{C-s=VshcoW$<6F`PIOLio-o z)(3bL)q3gCue8-f+j0aRTO3|_7@b`QadGhW&ylyA<`Z8hL=>|b{GQ`21G5LZu3IP9 zYhNHZhtPR=7y7S67xUR%SK`gsWZCWhaHOD#=F;EDk&fH#c5Bz2A45;iU0e+x!$^Ev zdUpKr^XgYd2^xtq(P*>@&$PM9=XWnS^WsT@WtlX3bHMo3vE}3d$hr&R`?_I&Zx<$p59)C&7Q^f-hXf5;lqVv}#TzB8ta!RP zpU(rF?*KUG8t^~mAMOA~b2&JU1ICyd6C6RdFk5=)M_@yE9 z?YpR^zMzjDlD!8sfEs|(3M#hFl|fZFI9r^=I{Tyy+A#7uYS2^+)Km8sHpZ8bVm7w< zwj>IOsYhez`Tf8EVtTjWAqDDJqkmOn?OT& z5Ezt*^U9!0X0=={cjKA=eb1k_v9XGG?%L0_&kPn>lmYtU_$$Bw&D#r9&f2k)00000 LNkvXXu0mjfBsLv} diff --git a/interface/ispconfig/interface/themes/default/icons/x16/books_brown.png b/interface/ispconfig/interface/themes/default/icons/x16/books_brown.png deleted file mode 100644 index c74cec614ba051d4ac374a56a8a12d32b278a5d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmV+!0_OdRP)({ zsMI1wMNlVka1bXK>(X6xadg$sATGtJqk^kK9hHs+!J*a`1qVecv?_hcoAJ4)K55by zJUH$yx%)rA@1f%P)9}(3I;JA3OPQ; z>Y%D(A)P*@M#)XUPDJ@r!tot0QmNF|cI0X3@zuuy5iBZhWaew}u#KZ-OhwvxXjL7y zZS#ikWE4|#OFZ}c{m4BOcrFAy$jbwe4|mp~7mK_(kx0O_I)jR3@hoUk8P_Ne^%Q6>m2>yC}M51XLN~Kbt z07o`$N1S3Wfsd;)mm~@Cc-$H8BHKKYQPd5ufFcA4kx+$ok-Y?Z4}rq5Tn%pPAa@98 zt(?FdLLd;`Mzv+h{AKd5k3HsB1Guhr1^oXJyuE)n^O@VCxK^|A_^Ki12nYg!C`{Bp zK;^QH&7K9d6xJ}ol2KYCp#=hgzBSVIMiYe9qQl+yh#<`TC7aDoR8_nU`*{eNg-EZ! buK)u81+4t!O(LB$00000NkvXXu0mjfYb@(o diff --git a/interface/ispconfig/interface/themes/default/icons/x16/books_stack.png b/interface/ispconfig/interface/themes/default/icons/x16/books_stack.png deleted file mode 100644 index 057ee1e8858f3b74505a56ca87d9fdd43745dfca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 495 zcmVcSu2RA8&&MK{>sI?9*MI4%%r19S7vq>X* z;Dmebx#xM$xk)%e2qxG*b;aB|TSdG*P(LOyN#(LyJra{i$dZIg`eM^gxQvDY1)UG*J{IuP~robUu>4n`bq%6w)o1%k#Lk lI3;;tf_?~7{zncI6002ovPDHLkV1hAT*kAwv diff --git a/interface/ispconfig/interface/themes/default/icons/x16/box.png b/interface/ispconfig/interface/themes/default/icons/x16/box.png deleted file mode 100644 index 78578c0e5c61a58a6406cfd7afdd2803f3503f7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmV+n0`vWeP)? z7|}|Llbb`OvqL|DtB9K)!^z1_bm*iXpo=((gW&2Qv{bDQ9clxuh7cj|#k&_1QlV(+ z!R6lNe!shW$2-aQeV9emo4tgv62Ly%)iBU{=PPkwc|q>R+-EF%hSpPm8ZdL_#&&t< zV3#u{e(0SJq|<3}c3l_DQc0X;MS<4U>BaE%@fzJHnQ;K_!+LhHWD+@4BE>Zx6IkRB zS4IVf&ivZulB}wrrcy#3#~IV`KVb+<9O9~si#t@T{)ahizrkQI0L!w#Fbqg0lcH@( zaM@@;KA#6&*Fn=X6L}Q~5(tc<6^k%eD1c#_;A5N3W^-)X^?Ds7Sq2Gbki<^99F!nI zFhs=}jYOqMV%v6f&SWxlZIM9sume<;(SSIQl%!UxMK&HIEOCe{KB5yA1VX7+tHKX$ zTnI}E1knqIsBq4r%6|!Akr&Ls3z8?O%I`{(L|lPE@Pv1RCwB?Q%!3VQ4~G%kq^?wPEDd| zXgb=arWHj6i zY)n&|dCzy>bi!1uEPAfp1D5wX|1sLZh~{>E%VwS319 z;@O)bHucp7%noz=f$Wj9MdmoN5TBVrI2@LFqtSqw$;e#QG*lkmxVP}}&6GI4R~-g0 zj{ayWW0Ke-iTw26$zGu$tttpd95(jt?pAdjdMG4Wuh-Ymt5Xm4l7_Up!{j#%*k8Y! z3)8chpPz?q+eoL=2nK_4Z5l99D#0)e#N%mJq)iiCtXVFX z*SK9M6riXo6yZToY+^BJ?f}>Rk()T~g@;@&C(m9aOt7PvlD<@NBcVc^j5UAX_? zCwjV0_0@Pp3~+}B=oSA49!iS`VKoyn|75*JU{eCaBSV<{d}8ohu=}Kb`3c9leTZtp z-H>qicUbLvuzz?PrWb)w6Icb<&BYAkVEw!^3udd&==d8DvsNNyCSupi4MvHe|?0C#M#rCmlDgw82p< qFD*Z>T)DNPD9Y6U$6c!b5?}xf$r1^J^?(8Z0000I}|HuIkMy`(k?y7I!wo%`NB_nmiUqHxafKcPRr;E`DYE>ccyZp0Y0BkJ~tW-SYu=IS=BVmJ-K~%`QwMDR2Ed1 z0gPi;aCpoT)&SX~nejM6kq8o&1x_;a z`Fxk#*=!byszMsGJ@7aLj;(b4@ld;UJ6Ba^7JS-9XH!Bv}dD8VC6`x_j5hBrJ21uMwq za%il7gVN`RXAr}}KlSPhj+(=R8oBEwcYCp+ll&12i$CAs(ZegKII~cre(1wI`HXQz zpSStwyRx#lI(73^uk(Q+1a}{eBw@q?Mze~O*&8UlKL7+3_=mQ6R@c@}(SHd21o6>p zy#uDME4R{_)UoJ**92z>n5R**AIQBQOEvrL%-6@l$!Z&2appK+XuLf0vM|53dabL6 ezN_kQ0R{j@dOw~hLVbw<00009nYdn};1L4_k seB}c3r2Ny%|9ptNZ|L0jIsXx00DO!2tB19xqyPW_07*qoM6N<$f>cBWr~m)} diff --git a/interface/ispconfig/interface/themes/default/icons/x16/box__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/box__pencil.png deleted file mode 100644 index eba0e524bf6e4a1d854bbf8163660146749f5118..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 677 zcmV;W0$TlvP)PilT>J^&}$xAQcauq&=i4dZ}J=k({KUN5zU_O4Zob z2u-#m=^E2CJLAlx32C%=@WIFX{oZ@?mL-fa{Euia<2I=YFwFJNMk1Y~y{(1eZAzxa z{ldqNab45a7SLV#o+IIb3+Jh2$$)Qm7EY&A+LcNLdMG4qMOBf0@$gCE+s71lKPwgm zD8ufqKu8zl1_Y@UtvOlCIfAQjz~auiVl?WIHuJ21{|6t z4n%1aLZZ=VQ#a!Il>#@&**v+9wneiA1E|&_Y&_#fSOL7`i=y zkwbw``x(2*8^|}Plv>Tnf0HUFFRi}C(4|4#9XX5b{&I#`B&F1Na}JxBvJrmK1sK&g zI2s$oWa1HyALu}L=c#WOZ~r&!M5`&?SMf7A-If;|7x~BE$}XNHlP)(N7$%z00000 LNkvXXu0mjf1y?p7 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/box__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/box__plus.png deleted file mode 100644 index 9cea3b84d270db03efe69f7bd95325b793d14925..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 634 zcmV-=0)_pFP)ZR)~7{sHitD{sR@n|Dg!dlL`edxu^#bJywt&TC7y9QV*%Su`xeL zV|KO~hH$uv5z)kW;{lwZ2emGcI+|M=w%g=P| zL-GS-D8Ncs$1fCTZ(rlCt2WZ>>xf39D(>}qunGkgGhN5p^ZCcyUsqq!@)L78zy*#? zcA!Lbux;gTF6pWUb^#uHkZZhiPZ)m$m)z z8*JN#<2cCY^9YB-O15n9WMKiOX(F9YBb7>7#G8iKK-K7}Y!;KrB=VL8K{9K#+Ss(K z)haZ`pwSG%q-29b_ZoOZ)Vs~5I%zL!x7(vQ7K_Pis|IX93J8WP2gLaZ(khk8$Om(> zR&pd)eUuW{OZZkUm(|+$((Z+pu%b0k;#pj#215mcx(S{0aRs|!#dUE0;uS3S>x#2D zMK3e(nup{mK?Om(uf4-68bBXtx=o0_i@TM{OZ6C=Hy*qZxN{a0I!!l1)7{NJbQ;KB zJ*i@QU?Vd-gA8ESpS?OwzW@&1I-|`UF;U#>1r}$bh0TN>mvQELDZcgSedjkr@8@^% zLhdC92MD=;VlKX%`*K1^Kjb9jTka4#gw|hi&S)ViO0BmJG58X6?I||-&L05=0CkZu U!L!VVI{*Lx07*qoM6N<$f~D~tNdN!< diff --git a/interface/ispconfig/interface/themes/default/icons/x16/box_label.png b/interface/ispconfig/interface/themes/default/icons/x16/box_label.png deleted file mode 100644 index dbd8dfb47255ef97ff4353f352717062a1dfdca9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 576 zcmV-G0>Axk7RCwB?Q#)%LK@k4#C8<#?Sr3ef ze8N%C;VNAU`3JbrFGw4VE9Ykf0;$rOxKJ7gQlwF1r!p=A0i(i2z(%o^5L`GqIKOl! zMZ1@oJt>@|%4lHNo!R-motfRy!Z5@SUTFW77A)s3weQV8Y9x7$diQfeOr0qjae?RCSz>Hf~1_w)M~GJoho0y4zY^m4^! z@K_lX*Z7%=B@APAQV22@pFDf4np&Ej5UQ+H8}3ojqRQNLbuz6 z>$)hFN=PIUDs3kC*k~Y=$snK4BbUqBgmVxPs2C%+w1h|5EK0VGkkV{6n-krx*Xz)9 z9UAo@L78+UjEEp=qS3p)RyR${r_Eyw1_Hamkb3bKeP7_<{tcHM5e%aYOu-G3a)#i; zTAWl@dh^)_;mj!l2{C#?mRhX_&-38>K3c673Wb6?FPF>87b8$L7*ft=z|Y5JIgaz+ z$2R*3H!2~z)MEB{1}yvvzZ=^#WfhA>5H9+{ua82!dXBU~-Az(=f^9&h|w!&-Te z7`cfQ(ITgzfd+{$K+9HDThmUSY3KRT>Z;5rgXYN*+uK!9JS$-=bque>G zy-hha_9=U2*#;ywd5XI?1WYtgO5uMXp~<_cfG8G=`c}%Xt1JAzzSefnb@8xNN|D@D z5GG7tTCG$-ujk|Sr&DyhT{I8h!t-+JDoh1IqCBluF&d5L1dfm9hdr%tZ&cuw<^*}! z%C{fAbOl^Z9MAjNs5m0!TW7#nlc$c)fS2W2|8(33S$R=^R diff --git a/interface/ispconfig/interface/themes/default/icons/x16/briefcase_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/briefcase_arrow.png deleted file mode 100644 index 612ceadc9cca9f83bc1787f4bef48019f3407365..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 674 zcmV;T0$u%yP)H8P zNJ_G{G0kRolXc!EYqH|OelYCJ+nMjpe6!0kCjrJ_!!!ZI0K8tvf`A-`K<||0`N|E( zm~2_rU0u_bwi^w2hLb!Lbvl5qBgYH6UCb2sFOa1aenv&|mGg0#o@pYv%4>wb2`md} zHi2Le#nDlqIHly6$0L`brw*;Hu6}$u-o@pMN%`U9wX{Vyu>J_VU73^A>p(1(ldJcY zVk82rTzfY?J3Hl!1AM4MRxCm9ltp@H!m9`KxJbC->X$j#9|naMserI z3_di&FlZ)jf#YW}aX5)mCc9l5*{29*r^ncCx2g3eLViCEBog*ngG9O>d_nW{a#CN< zpt(1R^=uYLDo?Aez@89rkm|9!tsFwFr0FLWRXt_8Wk37xt>9dHC`cl=gvwarb` zx3=taiT1fW6mpR`b%N1ndR8d75>!>grNtGL%Vp#rq#;RucNb0vdfz!ZIf+)QH6Rc* z9K;TwTKH7Zag!75BI5&ku`}>_wci2^0Q=$qM0>LXRR91007*qo IM6N<$f_tVai2wiq diff --git a/interface/ispconfig/interface/themes/default/icons/x16/briefcase_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/briefcase_exclamation.png deleted file mode 100644 index 6466d09a2600455583051b84b3b003efc467c9ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 713 zcmV;)0yh1LP)- z(WImrq1JA_5y6Xy9#VvQmY&oKLaTVnp$SF2MARHw z+lDkDcGoqV-E7yHO}9^96NKQvNAW8f9$+wzMcXmH^)dz$o1UH46v2`6At;(XENQJ z9`Cqx`6arPlj&-KOoL#G1(GKtZi3wTiAfq{VQqaKtK~A{-QCz9jiMPS!Abl^Dm{vD z&wZ>FuA%fLhfg#4uiCQH$2aYkghr!5rR$JI5q-&|Ytu9hrtlrf-eIiP7BKtfHY$w; za8U`;K`8MtLO9m67H!%*bDQ;g9cuFj9LWX|mmzQ!j9++!4qk&CrWeJfAZ_#@XVG9r zrob=^m+WR$RZ$n0urC!rkSjs<>(Hxr+*S7fLh^7pKr6n&v)OwkupW5e=|j*PJaQjP zZF73&e%Z6pb+sWzVDOf`b1c!>IdnFR)r}3*zJ;kZ4290KOP1Rwj>5b51?4EN^VXJv zx7qA2hg!|R#fPs@EEX|8brXsr?m8zluDnQ3o`$Mq^6nQ5> zFc`$*Qms|0r$7({cM=|A5rHyk6 z;qJvRcKDI#C!KQd-re`UyK}UsR{%|e#CQxu5s=Tr6#_M6KzCKUjpoXiG!~PIY*H>q z!B`p>SLxj3xOD)xTSCq3<05{;9|Y4WFdPEKBAQD}vv~0{?&=;kM1V$|$*0t&BH$NY zcDRMJ_iL{AtlChCT@xF3Zr-v~j>3zb9cWK3OTTe#`?ecV_4iH(-#iaz*4J@*ZB1Uj z-+c$~paWg#5HuW~S^vl3v387IF-|lEK|s=nuuT)^D-{_V3(*Uu8QyIzqSKmvM*odCImINahNngz0s?zL3!C z`MB|T53N=U`_J#eam+;(NT&6ibh}Gzbbo zE94NOEeR!!OOj1?H|xx1$0XvxKKS69?{D5WZ@8yZ0LQ_ErU9x7*ldt^9!Ye8vagbUeh^jtQ3XBT+V*Im>{PPz^>n@G}zRtpo{=X z{~lnFqG}azyOHsF+i_V&hQ@{_F;#n2JF&F6xi}MvJi2TcAJ_m&SE3GGA#^h-6<6Y0 zY%qR6azggS_P_e8|Pzjyj)&^OCCnu&`>&50_)?|E(VICSUamk zHVykIU_OyX>i#4=wGdnoiRLgbVtqW-o(-Ul3_SS=*B%#;FQ36^|51nnX|_b?$j4!Q ze;81>iFQP1)AlMAJiBt-j0=VXcDub>@eTvkn)EK6?kOmj6~va-kjv$;@%#pSK4(v! zV+@*>b2=DAyZ~#6}XMoG)!l!(>mw_M%=F2k-4hY0V{0p>}_3>|h z0MlZ7f13Co(D&GvfsemTQ4o#_c;Mr33_rb02sFW UzcU8DO#lD@07*qoM6N<$f=!eqvj6}9 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/briefcase_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/briefcase_plus.png deleted file mode 100644 index 609d59a75be48d373d593d237478aece543de575..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmV;30(bq1P)=S zt&NBx4T31^#fv{+5xh(B<{w?~qCNCrj~S2o4_%qw!D}|$4V*rAO4Po7 z@(Rk`6QZVecIL9?Q1{yUI=(fV*j+4QSD_#-7tFVK?;1!X7)CA}K=9}@jE?bpEgO5t zTrd2JWmzvp?hzlpNgFWGNkcm{HP5A#dER$fkx=*$}scof*Al!QEU zVjlaX<|JvFQ546&cg{a;I=42Q zuIXI!Pv&sb0}W) zDos|Vh%Tot-T&MD<$MY$@CP5x;rzSjcka1_Qi_dy{MLFNxDs3)4nkHPoIHJ(V!wgF zQnc!eFnmsmI6lnb2$};yH1Yo9kW!X+hlA-mSt0YX56xxOhYY_~(9Hiwa+cLj3tDbn zImxwPz0oLTN$Ez@E<@Y>4tprPeg|R}e}>7uV`JktJKrV3KQn`x`ilpXv}EeZ<5%{{ zSu{l==;AtvWh66Xj5L;5oFEhzXX?uIBXtF8o6U-O12U)aj}?oe1$}lijdcjJn=FfzH}fbrv!Cp zFFz{Ru$!TnSi6O;LM>UDa}S@-E!9?!4LiZ7JY*DP!8_*x^@Sl;$#Fd217ky7JBx2+ zzyF3?nHa)0X2A<+6vX8irS8GEAM#4db&4(9Gco0KA>!3Som09e!W4}@7jrDRtG8!>ZQmvL3SL-82-bZ9 zDk;HkHOxoyG1PheFui?h2R*9Cd(&2!KtKC;p0{9Awl0GfXq9hY7(jsO4v M07*qoM6N<$f&ouvi~s-t diff --git a/interface/ispconfig/interface/themes/default/icons/x16/broom_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/broom_arrow.png deleted file mode 100644 index 87f964d6d1f92f2ca94be229b45fc88f644d498f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 869 zcmV-r1DgDaP)Y2FZu$Fh%&*_i#E*)Oe~9RX@%Ny zex**$kLfng+?+eTCxsx8f?oLXyu8o*|DT8FJTJv@9R6nsZ`OK&x8QwvC~7Cc$Ft2G zj;kq@WbEWTgw0V7A|bTf9yGYNQ0MgzA2~#HO*~|uPmHweCK_^zPO3K?Xb}EI9HTRE zDUElo)bJ(fZd?o`qVO!uVRhU6c7uC+?+OCQ{c|K9GnvM3cfAwCxwwep+WHfcWXk-c zwbwAaggTE0&-e1zL1f%jOc=W>-*@MWbEU0ga{v`fe5lQRC2* zRhM)>zPnBgUU?Cx7xs0FGd`<0FEm=6y1B+FCf|+A`8g-+Loyu1=T z9S((c+6uQDUIYlVsnm48fm`eE8AuRwP%{1uLSj`Ah`cdBGyz$(0&cq#2>~oxUJfBH zE*s_NFF(qSCVz&*q(GZSVa5zodNO5X*?D@JsnDFf9O6Yrw=31#gN}5>JhNpD>1bSkVE8!+}0U4cg5q z=(Hzo3{Nc0i^P(^LQRx%z%U!Zc|0uj=Kw?mQizgr+F%+D)n`tr8>RI)lAnxkHo)%w zeQ!SvbliJw5Rg4TOkzSXA#9yY8mY)ZdN?;XG7>hm>?i6OSp8xAFgY{aH@N7-&~he3 zhR$31k8ami#e+n=F4ADWj-S{i|00000NkvXXu0mjfn`DM% diff --git a/interface/ispconfig/interface/themes/default/icons/x16/broom_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/broom_exclamation.png deleted file mode 100644 index 0eb58635d5709cde599a925e8721c1c365cc5559..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 870 zcmV-s1DX7ZP)R$8y7AV#Q}8X?55EcL9Gi1BpO8% z)HJPatwWPGY3B4L*ZW!rT!?}fKF;Occm8|sIX^=P!T&7ol#7KRA?OG&%*=rhcb+F$ zV`1QIoH@%=(tZLl2YW7$uIv;Jvj1?&Qkr*8fbLgNA$u~7u4RsPOCp6X?k~ynyFJ8w z;>@w_LJ8d`52$HUMYFZVa_!Ph51;#U1uFXgE*jecf&SBXo+yy{@&&71N7m0WF{3vw z_jyLfa4?@ok5GY#qNHdjTAJ8YC|5Pjty@H%a70GTAJ3k*1=iytv$;nTln(*hm5K77&*tG2`&Kz&y zWaObKpC`iQd_mwdFc<-XV+=$L0u8my`=Q`leLg9!PNh;XmQ|P1U07l_9uf$7ZeQ{dKeuhGnKq9< diff --git a/interface/ispconfig/interface/themes/default/icons/x16/broom_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/broom_minus.png deleted file mode 100644 index acce4b1dcc8368e720e0998d1547d8ca04835d22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 799 zcmV+)1K|9LP)FQ546&zxmVIrgO`s z&NP)d|I~2maH3-2Ry18wMC42OU_L0+L-Y`c6oe1G6!?%7RFFXhnh|ZNRA^Bq*u);x z#F>qTp*fv%&dvSY?OvVHOBDEn59e~vJ?Ea^Ip50>La>{U?`RZ(rC@m&9JlRY_QHLF z6M7Do;%#4;5||{2;bGnkqirLER?&Z4QbyzMG3fd*O=R{5&{kf3TEDiAHvS*M*;YF# zXuo^oJS)L^yCsnZr5lV#^j)1jc471H70BuNi_{)-IA-qj4#y!lKaZNmYp3G1+}yLL zZ|$z1Xbp$a$0~@XBv6zT6%8zjmC8#pb>)TQbp=^An-wOL8NK~MRAo%#__@oq8^TQ+ z4Gyrr@U$^kW2K4`u~a6J#3#y>>6&Cka+)%>DZq6Z|f33)~`>JNEfXsYX` z=R2fsypLO=6>wBBD?UJ-$~ng-h9Y-K$eV%9p8o&4b5lt)5GKNeR27l&(=$+Tl1$_9(HzaRlvl=oH9y0 zWe?jcOhr*%BAS@~_szh)cO5ErDGdm7*nU1#K%ZCwMhrz9fsgF5L*WRU6d_`F*z$3^ dea^oG7yurLA&TzVG?f4V002ovPDHLkV1jc%aWwz{ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/broom_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/broom_pencil.png deleted file mode 100644 index 0c2cf23c5b1b1c435f1ccbbae5a3b3cdf7317001..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 892 zcmV-?1B3jDP)J&*f1=aNQ3jPrrL7OnQUS*vZ@vF0{-8F&e7J4TUX zAjnPxCr_;%?otFRRpTYtz@-TfFvvbY~lrGK6GyE7wsmKG=woFWX)ai7?c5A`u`&Bjf zW{IZ*>lx9eRvLHeLRley2h-VN2@8ryPG4@QxLVoj_TZo}vyd8V0JAVVk@zXXJad)7 z9 zn?HNVN&y=ljC~uPR41=WlPV4Iey-3U;fR#nynF@Rrdo7Avto7PC`_gbq@`t}+AhUt z-zeN}2pAA@@uaV@m5wx8nl-a2Wa2qu$ki%%T!FZCsSLYMbfGXu4^6NW*B`b+rCNf5 zeI++im8>!pZ$-XRnf0+`e8^!tpiYU+>ale~LL2y(!w&+HXysLok zv~#SiR>Bk^Aq3yX0HuudwZEc{=Eu)9OH$)ya_vG4cJ{$NIfbAFp&0HOL`BuL215i+ zwDgm@$hp9a0f7AK7R5Y*C^1E9ELp+crFgL_CBw@UWr7+*EZA&$(B$#ruwxvxCi`^h z|K6ri5(1+FT)qx1HD}h-@|{U^V*;L~F9H`H_@_UA0s({Xy&wkfGLv6RkU<|K!7ly- zy>{SK`v+L~|HGJMO!;&V@g?zR1o#m7*7!4eeXx#)+c*DW+D86)m;aQX0t^6D3`;6nP)zQQ+j}~%t{Wi=df~@&-gD0Xe;%Im9EK2r|M}Q^RRZu9yblk<>@4u{!efG? z8V0(Ioi&c)93}8&q4jX6+uTBp;2#djp}I#rbX-7ljm1Xe#Qo;40dOrYqO|Jz@xT;j{>{se z2GbI1I1Vj*20oM^N(d!_3N!u1(#%+OZrX5pYFty39z{i3G`G5NIA$D2DlV68x^Fj8 zv6HV0OAB+&Uo6Y?6H7#*K)EC&Dj`f3rVQCy-(=TKW|U-!(5Qcl!a^OITJ0!`n?T{Q zN?q&gC#%$;Q$U?Q*j6pBq^#2X2$e?dw36_tFQcq&$pVp5hLw>ylx3_zuWvwpz7Fq) zBd|8J2Dcjm3WQoUGt+G#*6xm;(fR5~2+ip|0}$NzL51Xra=0BInMF@-&P5 zqA0vE%sUsny?!I0Uomx%pf(9bEh-ynGDwTI+n?m{6Dau7-brARI@ph-G!$p&rJD33R;GjHFFt_Z`B za0wwEm~6UyeI1X-Hw1AUlg137n0BC!3H7ZDkTxekDrd?yzwSHowxzzNU>Pl z?DcxSCj)^13WdVG;WfToE_?Aj&-2G#PxsGL+By`V*1g!2@5{^y`u)BO+qMtmX0wTS zJPz`Tm?I8`1awgp-9wgTxnSvd914XX2m-5>?k8aEJl*lNF3?Z=t}y{)L?D~ZdU1;u z2!>(!i%#6qr!G zUPn5eMy*zJ`O!NK#<&Q*-NwQG9s&~tcdkj7UX+wIhYF9e{<0THZ<)*Ga+jmgD7xJ) zBuR3)9!y{^n}9tX!^w*Y^d~2=M;kSp3P+R=>NKyaDq^u1g25oqtp4qw^YJ}ie?E=2 zu49Z|bRwBVBq?Eg{p}~hagW(68mE{Dhr_FtO64JQW11!t{D)UcyXY)l$L?0?o2@BN zxL-e>Gl40J2z?}1IF37W)Q@DPmKU5;@hMyTx?z8L`HU{@{}x~XP@GW{OCT3V00000 LNkvXXu0mjfhg}*$ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/calculator_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/calculator_exclamation.png deleted file mode 100644 index 593a61b88283aa40cabc5d0cfec76c3a72a81ce0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 641 zcmV-{0)G98P)8v?3_I|^T%uur5@bJ9f$Gp$`eDA!&a=9GDVvJoOis9h(V=|dMcQ%|hc0jyXEEXS+ z$K#oqvMeK?&);>Q@p8HB#2L={f#vD_4AGOR09kk9y<{ONoWQay8>VSa<3^(aP1C?i zY|rDsB`}P|Vs?^Y7&gRp91ev-P!vVk;9CLdbFK5y$SxdkaYsi?#Hm!ucH!kd*5W%@ zJ$(}=TZQ#(;%iVeeVVinCMs1b75u})8sIwwRSDqu%Ep{&A#0d`faeP0b0w2WcsT)U z_!`UFS=_kw4Dr>CIm={MO#__ZabSy8t5vx9UF|7UH3(*QQ7V;Sj<$n-b>$RQzc3a8 z{eItb1yR|}C*s?P96gNhy|;Mz;vTxAPmqr+tW(N$8V@Eln@#k3J<%{OEQ`tx8~O(f z1}!lD1%9cEOP3!&<+})nM^QN#K0_i2i5jW4+wFOB5|AVbnM?+OK)~kl&MT~G9E#LI zSRP>T^S;et`8O7pA{sfkBgQaFSfnAzlE5+dklemDy12Y#&AZQhJ{U^S`bGcUA3w*N bzXA*Z_Rdlh9yn@k00000NkvXXu0mjfljJ5$ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/calculator_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/calculator_minus.png deleted file mode 100644 index c9b8c6b71eb402015828a9e7152dd48ad081d713..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 543 zcmV+)0^t3LP)#~kHk-{EhOu&{%jJShCUa^Z zV}(M2$4SQ6+T}4niFCIRKt#Q*>XGlFVvoR{s8Pjth z0a}Sp!p^U`931h}ip7HXC%}C^4@^~62!%r6cDor_{LjH=Bm&o^lI38is_!1t99Z_z z0o@`GV#DwEpB0P6OL`Bwu9M&&rgBrM)YWJ-y2UwPdw6?EU<(nzOR_JD;`X}7gf2g@ hv?mPT5TD-y3;>7NSWOTy>wN$K002ovPDHLkV1fsT@gM*I diff --git a/interface/ispconfig/interface/themes/default/icons/x16/calculator_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/calculator_pencil.png deleted file mode 100644 index 8e0afd45e5356ac0bae6bc4d6e3f60f65c67935b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 647 zcmV;20(kw2P)^@RCwBiQ%h(QQ4~EhosguV3n@0H ztCnoUtQ10NBHDBmS4t~!<4SR37VccQvM3bXXxvD&-4vml2BO$q6_S9E7E~nBLNHFr zNKH$lNx9a5xNp1VOk+Cp0&FB3i67a;3qTo2p|uoJY~Z3C@VYd_BC z^YD7T5aL3;%Yj8;*W>XRi<-@*0dB`+m&*mG)5&|aYc9A!#jFDQ>XX%;)}8cjt#7e_ z&f`ULHNpa+P{_b^rBdj{T6K*Djz35y?_Zdki~j6%X1iM8 z;|c@<_#cm*>__$60+yfqFZ+DHyYK4t1!`fXs|6NHr_=bC_p}fA^6??goIQ=lkD_0F zBj4ZBw=8e0SgX~#THuOS9y{fNw!Mhy=}U;mUt{f)J5|*NlYFgTu|T0vK&4XQoY+NCge=Rj+wBI|Hq*Fz z{Uw%`R&c_98%NxJa319!<8{VgOc*2#(*tkO*AXt_a zOd=F?I-S+YGo2)lP5RAd6T6|hr;JgKij4ehHY-*956899Kb`m?`Ys|i_-4@9G-9mP zY6!wRpYNe{dF5u`_+IK8-_SqybvgxVmuZ>^!ViB|uy}Fd5FCCSBfc$LNh6|qy^eoz zY3)8PEMEfO@G$TOz{m$&zAVxxX_-t$_E@Z2<#KsR_EY3c6<4_U?i!Nwhj(=4Mdf*$ z^?E&|QYnPPVMbCLjRp+EkS{Ad8b5+pk2{FPVqj-y@b<~;_T~hlO@Gmhu>J9P{Cc%o zy-o9A+cpvIz=fArFgQQL+M|zeaQF8~oY^-df>~inA@#Jb>j!rmq|qsN-ao)+{a?I= gszX!x^REB{08W-vWmDM8r2qf`07*qoM6N<$f(`f&{{R30 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/calendar.png b/interface/ispconfig/interface/themes/default/icons/x16/calendar.png deleted file mode 100644 index 5eaf86914530d89c1822099e0eb13ed98332ab02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 488 zcmVP)Lg0n+mXhL#@`6|1zy9Phj5*8|(+^N1Aa|$KcCpoR8oAuVnGnwi#S*Ng zfT|n^_~A~ic3P;{(Qda{tvFIvCPEno7+CxQ+369PoW`?XLsu1$n6`e9h!w4s)dnE-*ZLicjh~5s5@V zJOg0?m&l&yX$dfMCV-H@#C5d<%wVwQ9LNa?j5Gyc80GaA1sDLu;@G)s*IqXO0000&$GPXso%inG6JuB>%n>L?2{*(j)}Qy$juRT8WsL`r zA|m*h^V3mHQ?tR~%2mcb!V+ybjRQ%!+T_m#QmHGE`FZ4WIYh!?^<*@vS`8xE>|ZV( zR}0Bxm)MspP2O(o>|kSi8*e8k(c|->zO`l5w{RktboPcpnR78Jdbx~?v$GgpUd9o- z9h+V+y3=XX;A|*_0lyzEj|U=`bV_Rlv{_6fpg5hV(Z(*V9lgD#fjCCD+YJ~7MD9Ta z7;54+r!YE%2%!;LnKxe`>GUZExpxvan+>FsU^S?dSl9KA4204&fW@Fzum4wg@8upo z{LnEm>^$%>E0Aksuy=@oRxDwB+=~ZGMc89gs?J&KCsf-Q++F;M{6?)YUte1Tx~e!o z7QmZV6Bi^;-*vNsIvrxQ%^9ph!B}hn?|)O$$WY^oUu*)GZ^lkMN-rhkUHTUsbf=Om z!=Whu82CzG@HCTe%uAID*x(@gLjh!_)8BCP_>5fSyx-4Q_j60vStBg4-%od5yTC8S zk-wh-UzvONReQ1^8cgkD>>9Pzsl%@C*T}8WYR{QtuEMibsj#s4o%4r(1Q-BEqz=zZ SX;?e}0000fcH_1!VBsN-0 zX_7`-7bT@d38f+yl1&$W;G&4QGHX{waN#D4Y+d;SgrbXr5w!TR2tuT|3$BD1h!nvl z#U`<7K5gF18}B4-O=1KuoLpwkoOAC??!$M+utRu3pjaZ@m07NHM;OLQjnuNv4-g|F zuqnj3a5^1K1_GaMGWHEUF@#GCAj(@^{=#%Db|aKXAe+r1w7eYjgu}sJgHSU0hg(?* zZbzdQxzB%fdDW=ZP^?t&B@)5t)D-k`xmVxE$+M(WI|dCQWVW>%4P4&Xz+5T?v#O%x z^}@NneqyjNKaUx|A0sXomkMNH zF%@y``XktR6*kKcc>E(1)Zita7h=-SnDax=)Ex)MGXxe$V4~478>p8aqE>p@;bvw> z-Cr~Hdvd^n%5bQHT6?CAd>sEdOxI=a+ds!nw%zEBH_LXpyHo8)?~(VA$5 z_`%5~=iKj?b5AaA8N(gL9tCNFVnMF*{r)rR)ucyy*~bG&Q6aJ~L~ksc)zgtkW|pyQ zI8>*W6+n_#?D|+=Dm4>5JVY*+Lv(6N?~28ACm@^Tl`y%pgTdotG^i?`ySve{xmg2@3=g9}97c06 z2)UPhn!5u^=2uprH8r71i88(W+uCXXImSRB09Y2}-meZYV8^N;Ssp`5dZd>N`vZze zN3n?RMLwSovoz?(+^6h(Hxr+*%y@(17| zkwEe6%r%1quoMJ3YaJLg#L6Et$e*5KZgkY092)A_+TPZAna<;_< z$Yj3n1bMDbP99o;49^SE8D^~I$Z_j_i2&^sPOUF5AKVDBCda9_Gd54xst5nj8*uw5 d#O}KQ0|2Wo=P~6hm!|*#002ovPDHLkV1nLe>CXTF diff --git a/interface/ispconfig/interface/themes/default/icons/x16/calendar__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/calendar__pencil.png deleted file mode 100644 index 86dc221f5b62b02b01d29e44f4dc858b9c16b43f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmV;G0&4we>p1!;`DP7bq zVr`0UN96u5=+-tG^(+(?yB_*IJZf~Nt&93Pv1 zPlP4F`G7kfw}&j2595seL_@UU;vDcvT8%$-!tcN23I>r#B;ay7?Z@11d!vCX6#B<` zJoco|cSM{^+cjRUaMEl>XIB?QF6or!4(KrD^+M_BK#>l%Xs_?-*)tH=XfPOnN(Caf z-T?+{xXmdl2ZRWrxkEod;P#cG%{$1Y zUmwA7dIT?DEx>H^qIbX{idM&$w&+*TZOS@Hf?iQt+D>5g`%G0Fcpb*z*}FJuc0%NG z#$@q^q!i~SGh@a#4X>^qx%514+?vMI>2WBX7m-*}3D2q=^=cGa@xbi8j9sQ@b-dL; v<^1ZEb4*Pp@onV~(v92>(P_?~{}o^Wvg%QW9KJZ100000NkvXXu0mjf?x-=H diff --git a/interface/ispconfig/interface/themes/default/icons/x16/calendar__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/calendar__plus.png deleted file mode 100644 index a859502d11721c28f949da72df4145d18f880ad0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 612 zcmV-q0-ODbP)s&C?sgX zLa@MeW}f%WK$)5%y~&yPaqc;D-xt0!h987Q0>vodp={-N{Rpi%sgYXdet--S(N{uT zNtH@QE*i~GF!mL`Xu*{Pkmjbx$A>bRd&z7T<#HLxM8fD#r3}A8GM78y#>b7%>2!yj z=La4iaQ604+1+EQYI*2+ntRL*|lBYp#GMH>Rebb#|go6ZUzUKZeu7E0vrc2_qYOF^Dr$a zoHijtYNVD6?+2<)OL54(olq17q*LKHut;p%c3TEg*)V|5pl(_J6+T{@L9x09BOE{W zX;i@LWN>(fLE+a5MsAJZ-P^pZfNxJ|%}X#(F?d>hhSlnOx4&cWK$s4`JnwmA^(uXe z@YcgE+C-D~pcPg&SD}yTE-F?9;hSM39^Af!L&xCz^cI42rYh$MYFf(*Zd{0?m@T+{ zC#67L0zP~yY$B}W`GydE5yrZfe7El3xQm#JC)+P@V5fD~67s4rl+l|`MfpQAXlmU&CSeMUy8*G z9GAcSyx}#QIA}ERd0_#UCnw<^9}n_FIj$w1p&PW6;xpcDwUFJ|!0nwK#0&$!CMIC6 zulF0=nVQ1QbQ%{&M!>bii-#wm;NJ2w;={w}P~e2{(CBEt0k1KUNC2J(t_>!@E#F@# zGVh$u#vJBK<$oaBB`F?tFK=$bsn>DIG*OtJ*GZ0jrP#|tLE}gy0^&vWJ2zn961mgu z;?e9Zo-ZzsNt+LF%)eNn31o*F zoKit5mBQ-M5^~0=H6g&yR#r6TlW|BwZ;8^SB_13d z;q}@YlF1|<&&{Dtdf8r;N_{CDi&3rW$(JXjXNdl3R7#AEkE3MU_?L0562jm+B=?lM zk`}`JIB@IEV>Fw|TwbR&Cd3oER@eTg!71SUQ0na;0R{j$C{7a=)xyI70000#EYbrv@8jNc@40Voa4rOXlWmg`K9a5R%ICIggM7?kuFyX~l^nURN+rsThFQzy zj+TXJ!G{69h5{<`(eb}aRjW&--CZ=BO_UZE%xJl6`V*9DwZFc_Me|psGRpVz-timu z?JX{EZt!D$9WQ5Q(7V3&^Pl-RmUxCv&{2xlpw;PMerpT)!$Z6<3|vi5BfPokB`6jO zNXO%tn4AR15-<2%0bO2fY#=y3jxJr?(RplY%1gk{7z%{|+Xlz>6(H-_XGO4wGzN2+ zE0t3qU{NbOdwU=s6|ue5vMjy&?>?=pfOr8Wj&K4#^vJiw0(x1LyK`&OOh0&X=@Wt#BP-sZ{Fxoh}p#h{xl3m&GYO^SRz zFI_UWPx?_xCX>&y+3ZV)!x8ykITw}KZnvwsT<#Ss7K_g{O^a}2I2=YMlR>FeLM#@; zY&Ju$*TZBo5kab|!e+Cg_TK?^qm5uj4@Oy6^zGYBoaF~Inkl(Iy@c^ z+-|o37!HT1*XwXPouD|(=W|&myP@Cji$E@;(Fo0E1H=l98Su9F4t*9xV&@6=_lv}8 ziE{Z9CFuPHFixjaaOE->3@FP_RI5i=E?4+)P{rO}9`~PSa8N#i)p`r9R*Tro1puFd zk!R}Uff%Up2JYfcG%9>m=v2Q7MNx&HdL%RIvdXh7it=Z!j5`@+vg7P* zj7JZms5KfK6OSKmQ&Uf|v2k1cBLH|0c<^$$TzA?moSU0I)M`Hv3~nJDbO?r>P6x-w zpW*ih!KZr;pzyl6_bu~-lYgvfV8><0lT%U2OvOpkkH4=$9_@>=% zhu7=H)YKGQE*DCr64L23ip8Qvl4Ti2qY;uMp}xM}QK?i6Ob~<>B03pkn46nJp-@0i zPcPQil1L_#uvjc;X=%{}a=9F$(I}dlnm|01%VnL8_N7cFqY-)J^LfPMF;G=tOv01E zGh~MwoIz@;mjI&;#?;_ z24-;mcssVe^rxvJk*`asR4Okt4*4ESX2nH4h*`Qq$6((+ONWA)yANWe@ate{{zYg9 zD{qjI-tt8qp_yROUwru4@m^K=d++eA%Y5%2;G8->#2klsco@ZeaW;JWeu)NlM^f=< eH-FSm0R{j`dmVrGQQAKM0000I!skn5s7@E1EgOB>T4!|Z$%lanEw zyB5HFWCePCGZKjeRZ~$2YRwt38iS?`?dYe+t4{sRAB$=NX*xdKGn1h;)A* zEX#voIN2kHP?vdmdYeUr%Y7DlT_dbECv5Q;a=9X|T=Zfy9tY^-UcJ;qP2EFNQwt>^ z3W4GQ$1&)1q|kNx0pv@~;ATibxc(E<5&6$O-l zwKm0Jx3{5z&qGe*!=MR91B(tOL(Sa5^71!j1)WX@r_%+EMyuq560oG*VShI6vvs(; zI}O`EB6$1eF2qsjMmZ2N_6U-mbQVfC%SAq})m2sfwO1~J zoGRIHc-Y3BTYlsU1%ZjXx0h(B2bi9|B>#~BVg@34I2;~LdO`+gX09Ta`v#9^9zKs< zGOSc8*xmhz*;x<7b|t`L64HWUoUEz;BqoZ1dlqml8lz$U!1neh8Mj)kn49xreB2`S zK>#YB=e+%BW#u=ayxcNynG(ESFOIczT2%S`m(SH|wZ$GX_QJ(jfErLw0~8dc@Wx_! y`wuA}kdWR9wiDzRj^4%pSYK?No%cEa6kq^dp6+vCa&OK60000^ey+NPTh zRxq648OxxMNQt4fY3-`mg*VYvHR>jeA{}%yB+MWPx^ff*fhfz-MHhud&`1P9Vz|i4 zay7)cBir0@|37`-0jZ0EMK8SY@qIkc`@GNleq60q!~X;s8XDR?djf#~`uqF+t*x!~ z6VSBK?D2R!lQiM?`?)%?8JY{6+wDH*^Z7>gdVSZQ+WA|Hi9}*~Y;5cf2?m4LqS0s< zyR_MC@Or%ng+j2~?I@K>NT<^%6bdRx6h&yYS_pywole(PsZ{n6j^oxSu$vHqa5#*7 zJ`ab(iLEUevMj@7GQnsxss!0=7O_|i27>_zfsww{>VAYu<7V)@DNp>LbWN~P~iN49lkh{Cpw`It*e~}gw!Se$1 zi07%xB2&PUMFYP|DGFdtbR`Buj&Z_`DZCyv8~ zBUi3}l70WTm; T&_s+Z00000NkvXXu0mjf`y^I& diff --git a/interface/ispconfig/interface/themes/default/icons/x16/camera__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/camera__plus.png deleted file mode 100644 index 07b81df9e14c15f016f87cdf1bbb164c5fb82ced..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 748 zcmVRZ;MHjUqXo+hVg27EoH})qOx^P!YG`O-0kqV(81Vl?}X|2{^ zlq8+DnNB{N%#81it+=qI;Dz&ey!Xzz=iYZY(=_ovK}JSK4)%d?IE=o&zEE>>^YH~J z+!Q^5K;S6_LZJ|MOs+=pjvF2xzBM^H`N-vRb^oiJ!%E!T+>B36O+6uzNaR5xk?3ZJ zUauFyU=Y!06n?)Sl}ZJws-j#jTO>)6(Ad}rQ54~DIJ$LRZy+4UeWOGlAp}cHODL5} z=D!Ir&FM=K!}JJ zk(bbjjQ)X}n461GR|aCS_cVd}N5HnXw+99mxm=EB`GI(R1%_eb?P46$(;@T@1+f@g zK|{kyWHK4*rfLbWU$C+4%o2-qTA?cko)@VD31>Pl;eyX+-Nm8M`Xva0WZlyq@jUIa z#Ik?5vW}HIDLk`1hs{<;GdYmYmvG~n54mg#IW>jB>piroyKp*Nr~t79m;+G|1Zd6z zM#o06Fuwq)t_~d?XR)#I9kSd7uk5lM?(FPfb#)DHw+!~XzXk5ryJPYi?H-`&DmWc@ zs6B=(b|G-?K5gbtEH8hyO0e7Q=$FSX{4QbhJ z0W}0k6XjwWdT9(dyLl2U^V8@77N_Q6tZ~!fyfH0Fj_ptD)6up;D<}I-SDvJWM7N zxzI2Sq*5seA>cU97C{*<;b*B-+R$|!?RFdE@fg)=6@$S5!{HExLIIX#NrEs8(d+e) zPN!ov8WRZL_hFi*Od5?w();~Ba=APBdiV{m-+e}P*Fovw1LX7f(CKtgEEeS%s`N=j zQ3Upw;Pmt_j*eVt#P5X(92~sGll_+nXGv1CinFtGD$T!AkYL$yJA+^%PH8Grcjfnn3OV+_Zyb21n^7c;EiyqiH+$AID2uV2h~4FCc`5b^Tm8wP24 z9R^)vW3b>AhBrXN*%^NP_<`R5pr3d+Ik^~ES-BW&Ec6+kzI(|43Q1=>a|R|Rc7~rn zf8sYlS66pUQ&X4mpFjT@goIcaR27(kHiHaiVEFg%Kg0L$-_c#nz=)ibB_t#q|Ni~! vge%c7Gc)gd@#4jPoCXZdyg;!5009O7cZ8ZpZ!^D^00000NkvXXu0mjfh-|7Y diff --git a/interface/ispconfig/interface/themes/default/icons/x16/camera_small_black.png b/interface/ispconfig/interface/themes/default/icons/x16/camera_small_black.png deleted file mode 100644 index 2fee054ccbec318c336a094f03ac2b80b2a3ea77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 351 zcmV-l0igbgP)jzkY#Tf$T~a78Zua z#ztmz1DMdfV>f;JbcUBNUoxCIbB@73p^0I}%sC8a&z@&^|NcEl2`iyMeEj|UcZQE2 zKQg>}|Bs=wa~6X`Km)_`w|^KOJ$j7Q0CX=1f{3qQe=^7@=rR}^Lwxb;(_Mz&Uv7h# zY=jKpVPRoqU}EB6U}yft@cc1Y6PW#jiJh=g&Wezdt@QJh{FLF2~Bs x2{sFFIsk%vAbyAk=cA_s#-X1VC^i5fzyPhef^C2|T;c!#002ovPDHLkV1gNtkre;{ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/card.png b/interface/ispconfig/interface/themes/default/icons/x16/card.png deleted file mode 100644 index be7001f216c8165ebc3e0e240daf9256b0fa3927..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 371 zcmV-(0gV2MP)KoCWDX4er$2&E(l z`2e)^xd9hIIY6!uDMgB$AXPd#3VKpfM4ZG0b{QdxWxZZ!J~UR8X6=>6qw)BC|DCm| zX&TjMvFf?Z+jhH@{LqmvjQ4)}zFK{Dp)SmT^iwZL@UR9?g_{H7vM97p5|s{z>SMkBnk^PDyZ!!vx*fQO9-cuB1}u%| z^CupSrm%G?%RJ=yH)q-7crwY_mjCO8^Z7`U?gf9GET1_0JDuF<}2 Rx<~*3002ovPDHLkV1g>@p;G_= diff --git a/interface/ispconfig/interface/themes/default/icons/x16/card__arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/card__arrow.png deleted file mode 100644 index acaea0fddda5c027c997f7cb65a3ba66a5c8da2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 558 zcmV+}0@3}6P) z))@Ds0gP$-m=L&-sM z&_EEZCS}~6-R*o)WGM;82XAM-@0<7b8)k;RD-^&OLnl-&9-{JR0D;gWTDK-?dY<>e z;ynLYJ%)lVA)4oqA~QWVXv*=eG|5n2lYAzFNGD;v*_&}3CkDsCarqZY5f`tX8|KGP zKeD_}9o2*o(QG=s+R0#kyN1+67{4!p5s`!~b6?MZnHS07z5JKgny_u=dLD@F5O37+ zdA-t_|K%LQFc2L#@N@GBLwdcaS(XJyiXGQ&Ymi+SyPeOzKR`2XpuVw>H%~|Lyw{y~vwq;<;z!C!Y0aMj$ z1J1cZTj-_(KQyT!Eg3M;00Zug04F6|VHhZOrsIjYebib+FS7D^;CN`HTp+PbLKs&2JfQev^`P&gd(x7@Dg wHX0}N40|LW+`NnXfR62)c^$5BxA-T(0Cl_)MTCy8*Z=?k07*qoM6N<$f}ukAlmGw# diff --git a/interface/ispconfig/interface/themes/default/icons/x16/card__exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/card__exclamation.png deleted file mode 100644 index 551092044b92b61d1f740250c584f883b4ba52b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 590 zcmV-U0qSLk z{J|AsAt`LGk$?xO69tRI#==7IFR%y}Rsm5fZG{Vg6vrLd0b>lqY{tDo%PoUxgSx@|((ekABmu`? z*cVlD7_+7>PCmOrEBSjd%iyX}Iz3E4Xz!9UcD?90xl>2Rt`&vvJvN;8Ce*~e#l<_x z5YswJzP`Jibl0CIrBW$rHy@@x?Gu+rN-=F}iL~yE&9#@NM;cnLp<1nCr~MsDb+EPm z3dH47O2h*NVgxHS*j^T^TW?Wcx{H?hgxKCj@S_GL1+#>dEES03L$!BX%aFo17YNwA zjp><3`1Y}2I@d$H6XLjz&s!o4S!`}oeFT1fF5~2hO}M-ZWHh!nX3^Vtp2k=%##y~G znF=T)AfxDzz>cu-fqIRjyE_eo(e#gVj#fuSRv3nyO6Zrth06~Hj@ETuEX>W-NPtBH zN*HDt!yzuG&)yihWx+AZv>u$u!5DE;fuPwO8OdbeX0v!wF26WeD9qLyjW^`)2klXe z&X7+W;s5ct~nU-Nvvm>VC@?@zg3O!s=L^bBo-W4rI-UyR1~i_w$( cANwP~0Bu`Qk99;18UO$Q07*qoM6N<$f>S6BIsgCw diff --git a/interface/ispconfig/interface/themes/default/icons/x16/card__minus.png b/interface/ispconfig/interface/themes/default/icons/x16/card__minus.png deleted file mode 100644 index 9eaa682c7459de2feb3f82fa7336477f869c5ba2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 419 zcmV;U0bKrxP)QoFdW+o3^Cxxj~`4R zFOcd27N8!GUXTHdf5`9xD^L$eFB6CWMIp!#CKeV34o*%m4dNqXbh&>J7certc>bK3 znU$4+lZ%UC(){_`WQ>g~x9;0_1jI+iATf{}NDYV&(gV`V$fu7cUS->P)K=GLN|kvp+3WQpk`gG3I=IqJFp&*UY4J~eldbLfByc((ER1y9fmvSyBJK23>da; zKhB_KQN|#lU=L9Xj5&~Ark_84FoJCV4HQJjH%~8TuyL5cuw~mZ26eL%263Qfm>ftC zNG}VB_zmRz`tt|F1rGkL43k^0F<7`&GKk1oqNrhHW`-E>v;fe2VMGO@5QaBy;hY4oT>m-`2C0VC6k=g*m$Sy>r4 zxwsf6&7Z$b#@M)W>%M(QKzw8j5(CMB)PVRPJs`b|d|FyDOgubNAZLAg@#4|HM~@CM z$;sLANl3^cI~kkYzb{{&fwCbR5DS39g~WUXijohEz+}!q2>=K%07TYP5LU6yV*mgE M07*qoM6N<$f^qc*o&W#< diff --git a/interface/ispconfig/interface/themes/default/icons/x16/card__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/card__plus.png deleted file mode 100644 index 2f1278042cba6c6150a992233e9de4860aea1239..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 518 zcmV+h0{Q)kP)+$oH);7T&N*-7AFcLNe5aVIXZ z5+o+$VT|whABe(Clh~XCT00E;hv4b-#fj+{hn@=pxNAWc&P$Y1umqXec3WE?Ps8=> z8GvC!*(y8!HhB(Hy>r`2jZ)$WSk}KA8B?Rccb*{@jyj7XSE(5WvBWB-3xV{^>Tir3 zGDbgde+c3X-BgpQ<{(^(0zr zcD(~46$=Gf_IN<`dSNY-IU3aUrNdnA3iD>eF|6Sn%#nj!;)_I5lBNZ*t*>G+Z|C!u zQYbX)3j{*VE&o-stJM#@P(8x@jd#%v@Yp^H?{J0P;75P~00(~ifL)Hf6#xJL07*qo IM6N<$f_wkkcK`qY diff --git a/interface/ispconfig/interface/themes/default/icons/x16/card_address.png b/interface/ispconfig/interface/themes/default/icons/x16/card_address.png deleted file mode 100644 index 440878184d4d78d50df8719b435a207f32a9297f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 578 zcmV-I0=@l-P)KK&%w7g+NCeFg5oMxo;mZ zzwjObKVS(rkw`>Z)-+A#-p)>$iID*t#M55P4u~?KqqjTs< zND&ONB*17``TP!Q2N_x1-ORvkAHwu-3aMnWY5H_6T7JQpPY&d3T>m%<_0u*~zaN%u zOD81USgNWv)x1Xsj91EKpHCFp0|BgVY~+X1>6NX$y#no@2R)-2ouNH3#4>$k3~P0lX_oY^ttuF)x28m7bABfx@a!{`6W9dZdj|o^Me2b04Wv%%uZth QPyhe`07*qoM6N<$f+{TiVgLXD diff --git a/interface/ispconfig/interface/themes/default/icons/x16/card_small.png b/interface/ispconfig/interface/themes/default/icons/x16/card_small.png deleted file mode 100644 index fcc08a10f9ea6a078b582c3f8d119136d9ba4388..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 298 zcmV+_0oDGAP)Q}DxWn^TO#HAP*Ue6oD!#CqJ;OEbu(j9Se)3F6C&|rp&MT;`=y5QT_uZ+L`{bTt1 z_b-M4%*@PSdAtUE`SOM7Cs6aRU%xO6U}Iwg%i|5i&!0Xq{RKMpKhU<{KyQ2l8U&(2 ze2_Ru9k diff --git a/interface/ispconfig/interface/themes/default/icons/x16/cards.png b/interface/ispconfig/interface/themes/default/icons/x16/cards.png deleted file mode 100644 index 2d91605b5408626ba42666715dcf72b8a4f10384..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmV<40U`d0P)q0tffs8D#Zh!Ey1Dxy{b* ze*67)Mnq8r|M}F-VDK{$LbPZor#Szn`0x9^PE>9?o%=&P35x4}zpLn0P)dQlT5aC?KT-*Kvf>ldNfiWm&?f!$A-v3LwR1C(xpYEF&VArg`}~9`6;%XR~lxDuF@H zH|w=fp68|FejW~?QYerGWC5v|BMrCXdEnBcqhWx}4wxeicSP3tcAqX?+qRI*!2+zB z6uj@Q*L!rs&_b%*d^SVH93Cw=zrC=>0zwXPbk=CR6pO_mST5g{9dnR)p14IO^BImt z49L&R9C-wRjkK9x`;(5(2b2&I~ zHor?-sMR`{&sV0?DU!7(S*RC+>;ASoGt)aYS*&nw%lx8C%yz20AO17 UXfSSw6#xJL07*qoM6N<$f{0z!GXMYp diff --git a/interface/ispconfig/interface/themes/default/icons/x16/cards__arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/cards__arrow.png deleted file mode 100644 index a79b509b8e3c4bf483bd0b92b468e3c0fdc03af5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 643 zcmV-}0(||6P)S}y6rSv_polC+gh9k6NEf%X zW*r=znVrA=-mBTRmC1haWgfrx-gkbV_kK?rotlC$BuNsAirKA!J2>AH1i{!*`NM-| zrU7eMGlY|eA{}h~)Wvh{>B;Gp8x@)yM1yC-z;)eliE^`0xE<8(x&C|&K7BLA*jxVs z^F<05&a|hCZ=}l~f0z>EB{Rmr*x3;jUJ!uq`!$1Qn?mo&EPU1hT8?GG!Q7$>aJWAU zGxyg9MFoTqNXRm1nkKop+4H=bL0aE{*AG|3*sv_{G8s^EZLs`w0S?B>vn=GMl!7eF z1MgN>|1vn=6Gt5o<7;`NBLd(})+(n-A|X&T$-| zJ$bW8?(01)33aLB9J&;VCXT*eyFNytrWlT5;MPx9z%)&sJ9;f1zwPu0lzu$}t$H5( z0|5w!&rKZz@tF!>tkqXhY2+dqi@}A?fEtMzF9^GIq;A&OwZhe z&mT?z&>ED=8tite2Pv=HM(e%t<>MU~87hEGDtHw()YSyk)TiyuAq&Q(Pf^P2?zYXN zse52!gFOv)=HxY$>RuS|dfmR|N?wa<&1SoCJ6E|K$4=e)a~>oK&Mq#l-d$ckGpH!R z8w(3hm;frT`5giB~PsL8BA8g_zBUL2L zMnf>MiA-Jc`P@~z5^JV$~IKrp7-1)MmhkTy&s@0X~ zC&umsR3$NZ`ipwm8@n*s;0+MO8(i3}n~| zFzY(Qb7!SeWnx)<4xQ_DyIdfL4nMT-S@=N$Ctl7QyQ$QDAP_Lk;qX-`a|+hR12^5+ zc()pj%Qv6_SC1hF@?dreT7>%q?!&Qp|LojgKbvjg7=w)&av%?KZ6}k*xZ_YcHt%=1 znb%A9(&^9E`s48&_xZw|PKSfE8y1bGk<8|aF&JFU&&DR$7Pk2pvt)ClbjR@_ ZzyS9o{aIwE1wh4k@`AViK3K}Dkz~MyV>{sB1Ty=la zG|lxZ0Vs2GbzgkGU8g%bPL1^THdz3grrGxmSHj_&<}$^z-(KVG`_%|_cjI194^o|- zFJz`H%QEu0oTWlHO&Er;v^ez!VV(I{!!#hQ54~HxlmLTL8D?- z*Z=Sz)35O9!&Njl`|5 zgt}|gw2;pe0HIie`~8%QmMOoCW!%+4#nD*o$=zu5pi`FDWM*b01`t&OQ2qk2#Hh1d zl9F2kfw;%x(e?THl$>8+Q2Gx5$>D%dQ}feECLeqUc(e1{zP^kO?*ZKWnskXKuolZ+c z?YZdnhFG6XyE;y~r?hOgZ}A6{uOeT|8~yJomUT0AJMc?@0RVCmL@ZcQZ`A+*002ov JPDHLkV1jFhJ+A-& diff --git a/interface/ispconfig/interface/themes/default/icons/x16/cards__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/cards__plus.png deleted file mode 100644 index 7d54afdeef77b045c6d00a0bcd07b73be33254d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 621 zcmV-z0+RiSP)n-}TDgXgMkPl6!kAc!D^Qi=sD2yINgnM)5I zB52d3rrAyQvoo)*P2<)&@aH{-d9(lDd$a6eJ`X`K#+3Gp34eSBmy4*v1bceN_kEBZ zHP13GaMO-tNpsO4&6gX)&A?7<|3&TXQ2=dm=f3)^Q{QC3ErbAF*GCF#YkxHuON^rcZY|t| zx@*AkW)FNAdk^;}Ctpe1wnMqY;_~VxSbV+&=`-iSMyE~F*@5sUR#Diwj& z=6NcWA-=$NXCArBPQCu}&mW9Bgrec*|1nF7o2&t5F4UtGB7&J665Hyfw z8CItwiEwe43UpnU9M8kX>PKvT`v6t;V4oaCw68DNq|qSTb%S?>qTOvUNk$GTio#Pa zykA*C!)QRKMxNdPuYWe1J?Z_i7>-k%PNmQ`O-b0cy^lLLJp5Pgm&?mIkx0O%0n|Vi z%)#6b7kzwLDC1PFfGcBvwvkagwhfECP*fELD_{=h{`~4WzAik&QO$>)xr{eUONhtg zXt&$Qb`>$VPo{%#9U5vHh9olwH#nlYL2<`&f(a>Nj7FnKkX&AKaNWJx*?G(JbcGCU zHX4dx4(1uZSj6l3N0_)&M90}erBdlh|K3$Hk;x#cDAhB$+*@kwy4%}7gwa(nGd%^< zH1Tw13g_-z!+1Kq&jYTLG;PbPR-bGT4W*ibIhg11{p(QG8?f0V%j#{?G>!6Vkmow$ zZ=Ej`*58%OyT&pH^Dx&?HhYtwe5k_Mn-95V@@6!j-~F`5(&?fSizVyzx diff --git a/interface/ispconfig/interface/themes/default/icons/x16/cards_stack.png b/interface/ispconfig/interface/themes/default/icons/x16/cards_stack.png deleted file mode 100644 index 83f17cca9b22067ba8f56d4a830c23f68b9ab035..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 470 zcmV;{0V)28P)Wk$yiAdMYT~{i#b#rmd%X(!&p(eWlQGxPg(F{ZJ|6xBvhE diff --git a/interface/ispconfig/interface/themes/default/icons/x16/cassette.png b/interface/ispconfig/interface/themes/default/icons/x16/cassette.png deleted file mode 100644 index 91ea01594fac0b80f0411c7d76ed2855a9a50cc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 447 zcmV;w0YLtVP)A512@Gw~8IJI?*Fg=t0yZKBRxSlmD&C&#UXY?~BEP27|#(tT>LzG);0GM}dHHI2>p=98!`b zHwhqjx7%?GARzKQr`c?Fm9W`tN`!=U+m&dICQ zimSr!FBz+TsNwxTFFHX4mM29NPsKq%!7FuC1s zDT*TYr9i*m=U5nq9D}b2sA^SUI-OqB-)uH{+rIC!0gXoEQUHn9fL;7XRp1Ft%Cd~R zErgJ>DjT{Dpby9a3BKFya?`<8PbXFRCwB?Q{PKkVHkcq-%%uMn=!(K zfyj|ISBVe=1qF=+uZGo4hrA4L`v<%j-t2B8=q^Io7zkp7?8=K#XmnM`NZ14~HbcBn zFOp6Nf1JMeBZo2EqF#8;>-WCj^PJ~>51I_az+*zfBg4ew9nY^H$Um3)V=5Mlh4T44 zyk76UScO6XKA#WKXjCErN!NAw{eINz^?M1>T}{)(3P^x;Ivu1^seyz_rP3qx=0+qE zp`VNdHn&8FBk zV~kg20owNE#2Q*pUI>BTXJR8sE@FA% zC4OFVCw%M{uN~Kb`SmxPb1`n>=Y5XZLH3_6Z9S8pE94Yc*BYi*SIo{SH;&%#w6yOB z->5#sF~;HiA4b$q`N>1WpgbJf-Xtz5U)|!L!Ct+EuIVQ~KJ2#mZa$g~e5U%100RKx WC&5C7rq&Sv00004vh#EL?Rg++D#eXh4mP zk@gPpXb8RJ{N6{;8m&<5gLm(H?|Z-By+3?5(=>4q5pY1UF}cTV{6F!l68oGk6bf^V zMgy@}Y+tBmvx!6^fqXtM5P>il44^0qR8`#<0p<4leLeyr5QoDdDwWDV0o`ub0$6<` zm&?&nBm&7W3^*JPWHK4FS}jDQQPgTRp4@J?K|jc5v(PjRKA#VzQVE11ENwv~$K`S% zolc`#t#TU*g}9DJBYt;%egetRb8gAsArJ+t0t)teJ=E)UZY_dHBm%G3iSDPDxOw|2 zx8z$DNWT*li^aeCce~w4DI#Qd5b_}>vxlL?)Ug&g0VVFGUXP4a(!iOsv$%HS1x_VW zxHu!SxorQcz)nNbb)8RJ6h#)5xYD$bO=$=Q{cuS?P%fA8sNhE+;60zy0{x)+-{AnR=+7KM9^Zusysm8@@Do#Oa4Qg2z7x zeRF}|sT=y{yOl4C1lrosF`2&tI7IW?+c#?;cBA*lpRxe`rvL*00R6+IUNqox00000 LNkvXXu0mjfs+15Z diff --git a/interface/ispconfig/interface/themes/default/icons/x16/cassette_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/cassette_minus.png deleted file mode 100644 index c75833300aeef1331c7887762f4bc1c6d5909e76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 467 zcmV;^0WAKBP)gijH1zmY!OH) zqKzSlRUjWA*l8=+1^fz&;E#x%Af~Xib!)MR7J^L#W1}DoBKXLhOBO_9BJsf8yK^6B z?wpNDwTY%*F!RyJgckU?<18;pymm&cP)Mm3mv)Me^Fqure2JhS`l}db7B+%>i8i7Cn*=!cW;Sh;L0-a7r zibtanxIwX4#C$%7ZQH2V>tGLi`4tow!C(-XOa`r1OMEmM729sNk}DJnlB4JPn?PCK z1Po56Q#g(z-Xn;|)@TjLnTL_l$kPw20kZk(U zpaB!q>Hq#r0dBYZ zMXF-42#?2uXf&!L16{M(gxBjutyX)H0dX6R244Xgi0yV8$z<|bLA6@#3c7P65{b~Q zNCr}?)q-BHhu`l2x?23bA^7%ZkT?41n$+1i(!?A2Oi~f-j z%&x3p8JLzH8pyKzXnvE)#M@3J68QT^#`*OavIhrPotwiEP`NiC;&VY=j18Y-dg2n{ z@FxTU0gO*h;&6Zeh79^>Nvf*yZHsI^Ns@Tdwkd3u8f@khCf>mA?hn{TXYj^oB&bhf z|H1%uP^nbla5(rV55qEe2B-A`Yik?W+moTFA8=e&*`aHJw8TlVJbfyyZ=rnN5^fu( zJKApk78IlqwtSYt8LB;iJ@V9zf!f| fKYu+Y+zBuMud>DS3prFm00000NkvXXu0mjfeW47n diff --git a/interface/ispconfig/interface/themes/default/icons/x16/cassette_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/cassette_plus.png deleted file mode 100644 index 1fb3cf8c5a0f2cc52622b0c4fb85a9f8f8bcca0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 558 zcmV+}0@3}6P)2iofD4) z-E&AL8fu~reD}Neo^!r??s@k)Y}>|r%!zlJL)xz7xi{vYDRNlIWHPIjN(JF?_*Gfe zY88=41nG3zNdnHnV1Q^eigvsGDglb^_xs!e5)h-&2)eF6o6u}F#|h(mBb7?gRFHsT znkL+CH{$U)YPA|dp%6-?5(n4objweh99KY_tyT-=a+!H75DW&{S1cCUNBl@YQ639qv)O;{uc|7S zozLg7XM9C}W(e=93ugC;00lm0R0Y|u*&`&@*KqJnhk5f?z(q|m41>EZgpj)mgSt(2 zzI=t-kAGkrHoBuOth*uf`9ok!4Jz_qn4}6CjRpdN0AJ;)ooW|Y+FarJwRw%jjU}Fc zZxuh#5eE`0FTR{L?-V}qo5B3{XV=gDlOgXntTNGr#I%I(zt~YLzRNkA_#tOP$br;; wOY~mE7o`Wyj`n`s00Zk7!jY2|4DSUP0N!%Rh`S2TQ2+n{07*qoM6N<$f?fdp-~a#s diff --git a/interface/ispconfig/interface/themes/default/icons/x16/cassette_small.png b/interface/ispconfig/interface/themes/default/icons/x16/cassette_small.png deleted file mode 100644 index 7f6fe7a904b3e0b503ee846af0b34a7dcca5315f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X_ItWGhE&{2`t$$4J+o>4=eV6 zdw+kw)f_g4#<<|%$^Ylu*Bj&}B_^&|y*gR(3F|ih`F4gMK7Tf@`Teao@#CYT2~tPc zJDZ;v`mnhw^B5Z$y|b+R^rYU=@!)@jC{NFq_D1q5{cGe}3}ZGVALnaZ?A~wGkRjmk zIC)2dprs-s^T&{^tW__8HX6p90s@2TZ*MLia4N97u9MfZ=lm#K0x@>({TdEI@{-h=_! z09^&dq9ErpeE9I5;q~h`V1s~a3V~`Hf`daUKzcz2{JDSs$@BR5RI^EwdW$}P{`_(4 z)@@h=4CvjDyu7?cAhjSpAia!00Vi2m`QW0WNp4QDE zjX*hHEOMJ3KYqBD5hyRj%*^ZxbgDL%kiH3x1$8WPSAhY#8)N_%5c7bdl*AN97u9MfZ=lm#K0x@>({TdEI@{-h=_! z09^&dq9ErpeE9I5;q~h`V1s~a3V~`Hf`daUKzcz2{JDSs$@BR5RI^EwdW$}P{`_(4 z)@@h=4CvjDyu7?cAhjSpAia!00Vi2m`QW0WNp4QDE zjX*hHklgOilFYZ?|7KABbN|!Yj*KObA3t2n2$UCMW@dH;I#nA>NZ*9Uf;vb}xBg&U zMv|5I%=yQkzdgHU!^8D$H7p>7z>wV!qz_|rwo>w}er`o$4G{a*ty?b-osbZZi?fuR z%fMl+z$X>Nh%b>yMNMK*_VRz`Z6han>oWtxmp=$OIW7i<^$U)i#c2Sqc?<)uSqv!P zX8!;8&ln{3`Ri8(9VcUBDP1Lo<8!v1Wn^NSz(Odg0yU@q{qu+6-`~Fsz*KbRtAY~4 zp1u`e&0IV@OIV0a^PhnU3Fw@&H~Z&+0(AmAH}?{dI6!~_0IxFg2}pNUNB{r;07*qo IM6N<$f~2-22LJ#7 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/chain_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/chain_exclamation.png deleted file mode 100644 index a3bb6764c50d72b779077cf2489a3b29f1cfe308..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 707 zcmV;!0zCbRP)N97u9MfZ=lm#K0x@>({TdEI@{-h=_! z09^&dq9ErpeE9I5;r+A44D-7G`Dv-V?+DJB|1mf?qynUu8K~LR(9ldrOiYsf!iBTq zKY#xGD=I4Lbn)UvhU3SNGaNg1jN#&iGYs5}I~bgNYB^3H-=ie2kuA)@$ha@;Ygs;j{(Rx)&Fi8W8S!tig!D}gb_S+5kFHzt+c)z@Cahwg)UNUC z^~1I&4<9fb`TFhe1&~56AQl5+DQviV6F^UQK{`Zyey@z@XaOaHhFAzS^i9e1V pxO*4KybBR&N6kn~3_kz@3;?)w1O>FqBgOy#002ovPDHLkV1gqOUq%1` diff --git a/interface/ispconfig/interface/themes/default/icons/x16/chain_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/chain_minus.png deleted file mode 100644 index 1710504cc0a7147e471941b23afa37cfd48f236a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 490 zcmVN97u9MfZ=lm#K0x@>({TdEI@{-h=_! z09^&dq9ErpeE9I5;q~h`V1s~a3V~`Hf`daUKzcz2{JDSs$@BR5RI^EwdW$}P{`_(4 z)@@h=4CvjDyu7?cAhjSpAia!00Vi2m`QW0WNp4QDE zjX*hHEOMJ3KYqBD5hyRj%*^ZxbgDL%kiH3x1$8WPSAhY#8)N_%5c7bd6jxkVGcfdP zFfeE!i-9!WU|={4()10Av4TP%mStd24vCA?Lzi2)Xwh#*e5uR@ivKV$%miX%j8q78 g0poz@Mt}eV0Qh9QcH4Diga7~l07*qoM6N<$f)W$l*Z=?k diff --git a/interface/ispconfig/interface/themes/default/icons/x16/chain_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/chain_pencil.png deleted file mode 100644 index 928e14ae7f5d214cc8a6037a11c4ba4c7a468bc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 624 zcmV-$0+0QPP)N97u9MfZ=lm#K0x@>({TdEI@{-h=_! z09^&dq9ErpeE9I5;q~h`V1t0_3(roOGAsJ<5etncPYgf?{JDSs$@BR5RI^EwdW$}P z{`_(4)@@h=4CvjD!otEWCUy??DjI4`rfqHRjJ&+OPO`G{!9_)tei|A&k^%xk%wNBL z`Fr*1h37pzt(!p_fpWeeIbQbr%!g0D`JbE|%^0AieVO^m=t7wXuZs zO=v8rTN*N`2D|?=PtPh>R5Y4@;KPRx8-D!wu^1%J1;k=NEQJm0Ycfg|B{PPtoXEKM z`?Jdb{gsSI-K?1dpnAAifW$W_MgiIi3=AO-3=Gyz4EEo?GQ_+4S2)d^(Xs#6&;M;e zXYYY0By53IpTNMNCC|X{?>~bYP;(hjvlmG7moNX@{{2H}#%e%82m^zp5HQ|9Gcf%6 z!x)uYcEf90mj+hNSPhu41|{O^uRYXQ!!N)vSwN8C5H{BW1Q-AV9OPiNEXTS40000< KMNUMnLSTY%v?wM3 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/chain_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/chain_plus.png deleted file mode 100644 index 77ece1334d2ca1a8058a70bd287902eb94a699af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmV-V0N97u9MfZ=lm#K0x@>({TdEI@{-h=_! z09^&dq9ErpeE9I5;q~h`V1s~a3V~`Hf`daUKzcz2{JDSs$@BR5RI^EwdW$}P{`_(4 z)@@h=4CvjDyu7?cAhjSpAia!00Vi2m`QW0WNp4QDE zjX*hHklfVYvzgC-yucv+NBsBmx|_2fKYqBD5hyRj%*^ZxbgDL%kiH3x1$B_zpB}!r zl(=N^IZNg~XD<9$2n^8OEFgtI#(p4u7-wXc@cJ>Rv1kB2@$%!}kKzm*|6l)|&R4~7 z`>#7A!IVg;p$rxQ~|GIr=@f+aI4#EE!W&$zT0G%*><14E!o(0P@GMr^0 zD!u+^NN4y1%(cJ&pLzH99RtJne+&$)j3x{$j0`M9C;FGa7=VVHeb#jgm;o5if;2No dvoin$7y$VR;P9WY1t*!4Bx!H zyy-S7W9LKG~PZV+PI zU-vg@U-kEwkColeP4k;^p*-BDXS=jZ^ACl>2{u&{21@EGjEsy=*T?T)=Dc%$V}-5& yJF}s_N5kyd)z8}b<=;IrNib36o50Ax$i^UT*Y`e0tyl%?MsxqiS~cfsgXBSnSua1*+Am!D_WSb=>U@**KpOca#0qu0AIOXXc0zGs(9eD=|?DJGQ{Yf=7b!P&V z-dbCG^#gtQfK0Efyo=iHXSn(KhwHn$!pB;zmQyN~;B-2{Y&HXV#bBR+i5sZq8p0vp zk>|)gfdO?d`#AGr7zLG5aU;*V(Q+z%j z*le~#vmuIN0gJ36llb9KZ#Hnx^b3$QlGv@@pAFncg2CWZ46h;=Q>oOGVzHP@CX@1P zu=wt>M32VHY>VZ=c42V%d)Z` zw9}d5l&5=&{=kbOlu9Mg>-99k-m$TXQJd|wW_vp`gt;qZ4}qqS&&=E(H=FI+jg7aT znWH9>%QyqqhlgF^#l>egEf&jJqtUETtF<6W4X9Mgt^NJt-onD8H#<8&UsC}>)BO{< zE?Sg&31we6;Sc?W-fi^?P%HEzsxHbdCoKv2`%i!Y08u?Ry5rA2g#Z8m07*qoM6N<$ Ef_u+erT_o{ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/clipboard.png b/interface/ispconfig/interface/themes/default/icons/x16/clipboard.png deleted file mode 100644 index 2ae81726678625a57becc69fee9d7e0eeeefba6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmVx(vHk%>x-=0(QaQe+Vb2WzA(+Qs2mM_s~uTetv!iUS3`XR#sMqFJHeheERs2 z;gfU#LvU6V!}b;P;Cfj8{zVu7GAk}Fh5;V{sX^9*;(~ww{xQhP%i}iys0LXNiVOY% zgZ9tAe|QZ5MHh+-{`^BT09h8BekLXcWIZf@kko^0|4qmMW@d&zC@%Pe>Hx(vHk%>x-=0(QaQe+Vb2WzA(+Qs2mM_s~uTetv!iUS3`XR#sMqFJHeheERs2 z;gfU#LvU6V!}b;P;Cfj8{zVu7GAk}Fh5;V{sX^9*;(~ww{xQhP%i}iys0LXNiVOY% zgZ9tAe|QZ5MHh+-{`^BT09h8BekLXcWIZf@kko^0|4qmMW@d&zC@%Pe>H>TQ%sKyu z;lanB3{0BQ!rwSV8UFnIiRyyC1YB_A`8Ni8ds&8+m*T~~3aZ3>|MF!C%WndKIQ_^+ zhP!WmgV|3WJYZmC|IOf+;L0^`>E(j|K(#CnzcMgLbKnld+YFoxmafVSw>~p4u$pKv zfQ&l!mVv=7NY{A%f+GbiYo9VO_=__zNU#9|1eoeLxw%mcko|g(VaL)tVD`5kKNuKQ zR2Zaml^B*x+;$ciBNIS*kPC=;LIoJMrKCC;|Ni|OXBbp{2xa(}n9K0CujkvxkIyT= z9q5|_GC&B3rOa3vsstGs)bK^&b^RpyPyF&+Joon=d2;tqF;M6kK!5=NSEb=t5}#$O P00000NkvXXu0mjf!f+Yu diff --git a/interface/ispconfig/interface/themes/default/icons/x16/clipboard__exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/clipboard__exclamation.png deleted file mode 100644 index 155d7c21f287ec5b9b289ef0b97d435143806ebe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 684 zcmV;d0#p5oP)jQyLR2JrsFZ?-oLUeo6eNNmRVpa-;7!n?h-Yu=#X|!^57H=7tY`~f)Pqn3A(Rw~ z#-eFVNodvWMiw z*N3+fm70%XY=4emZIroVFBbdP72Rd=gXlAK?3k zIf$YNkH-U+Wl@x66!Li#{3Ez9K7qH-qxBd@(;5UO*XZbFv@+Aj9@C^i*L8FU0<8&% zk3FVIfksNJ>Uv88^SPQ7sQL~9`>D+~(^HVM?;v&#!ydz^Hh(j_vI~Ksmm#lz#KB+$ z>Es*?8nmX=2-Ic;yAhOf@8RTq;2aD%z60&Ol(4qE-AS~mpa!j~pb2UPh0H7@ZvdCB zPD2oU@ExP1!P^u=09qk|HPnh|hy3>w91Q7mWeu@d4FB>!(ALwdr z?v-`6-!Jwivc>D>5PJy@^s|^~qY$)LzkdWhUO!wrUxo0M_6qo&{Dp=80t^7=FBjym S<`Y2x0000k}@P)x(vHk%>x-=0(QaQe+Vb2WzA(+Qs2mM_s~uTetv!iUS3`XR#sMqFJHeheERs2 z;gfU#LvU6V!}b;P;Cfj8{zVu7GAk}Fh5;V{sX^9*;(~ww{xQhP%i}iys0LXNiVOY% zgZ9tAe|QZ5MHh+-{`^BT09h8BekLXcWIZf@kko^0|4qmMW@d&zC@%Pe>H{pnZ~-e&4M>mrBL)V}uRsHS6A_3Hii;V(Uc3lqGXcXu{T_oR=TC++z|?$} z_~OC^h9Cn2gn+It7bw{;T(pRRW$jZ227hq|1_?HxbAYLilbajE0CqDo zhPh|YLSvDU;o0SL-&lV$TxS8f04T<_@g)OKr~m`Qg&I$W-@kuj7{CF{5(@T^d;v<@ z2ktRkU;Tl>3&{NfG63WOF`!p&^-bKzKn!^QpWzlr4=CmV0t^7{pTxR?GqMB#0000< KMNUMnLSTaC8Sr5M diff --git a/interface/ispconfig/interface/themes/default/icons/x16/clipboard__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/clipboard__pencil.png deleted file mode 100644 index dc4b5ff7308e2efc7b2ec7c99c4b3bdace5e9f55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 683 zcmV;c0#yBpP)wLR#eLBWHFQbIs&Ko9=3q7kL3 z7D9`ylC*K#BuzGE&2Dy`S(8m7viQMcXJ_Ag-<#PP-FP>Y(&?bqSJR%FCG*}RWLQ_6 zT5HOF4m9WH^CgZf|9LWH8SW6c>A(@6XWDxYIz0myw$t~wzFRBN;G-+3g;?Z%AULly z9_v;OLcJ#k+~IH-4QD4{G}gdww1!qx}gup2QT621D~p43Wc%(_3H0G4XvV_N=;P)Ns_R$ zu~FNAa7vn{sIEFefo!cPNty=qcTr7GL zz6#P^AO>29#$t#Ww^^IL-aZx>W<;?%fuNBfyFP=Dvpj~T7wQkSw2YjR}!0V8^O`ecR03h$4ZFj?-EIn5&mNnbBP(m=f`nizZ-!k({MQwnH;xymURI7VZU;y@-- RH{$>R002ovPDHLkV1fa0F&F>< diff --git a/interface/ispconfig/interface/themes/default/icons/x16/clipboard__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/clipboard__plus.png deleted file mode 100644 index d12b7db72daa1c6e3ef80472c459852a424c2bad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 608 zcmV-m0-ybfP)x(vHk%>x-=0(QaQe+Vb2WzA(+Qs2mM_s~uTetv!iUS3`XR#sMqFJHeheERs2 z;gfU#LvU6V!}b;P;Cfj8{zVu7GAk}Fh5;V{sX^9*;(~ww{xQhP%i}iys0LXNiVOY% zgZ9tAe|QZ5MHh+-{`^BT09h8BekLXcWIZf@kko^0|4qmMW@d&zC@%Pe>H>TQlwYf5 zxcvDV!+$Scd8ucA7{0Qix!^AW7hHIIiNW03jA6sIb6nSySQ&l;Q!mSJA_B4IVjaWf zk5|C#kAFWh{Qm{Ch>`gW!+(aeEDygjFi3OY55&u_E-{EYibFERpEnG8an4+zWWRsi zJ_eSxPZ=2efpQXTK<5Bc9Va(8h5<&xh71>Work0YM<#}6)6aiF0foPS3;=mR4Cs|xeG~WL ujlysCEb^ajzT^7)hT#H84=CmV0t^7AG1^ih4YK+G0000KVCSY}PpBT3J!H0=%fyd-#DxS?|5!pI{rl|;p#`#9M z{0qY{QM%kgEEdCE`hp59a|JEilVF-A^7%YU`x{VIl_L-cpxJElJ%X<55IIV#i?a4n&Sm0i8-DS(f`>q^O`N1SB{x zfJ`$la+J3!FsFF~F0;Yu%NG!-aL z3#+l$=D&-P~xbzySfe33QcYJn_VeH#MjyTlKp8x{@b@?P)x(vHk%>x-=0(QaQe+Vb2WzA(+Qs2mM_s~uTetv!iUS3`XR#sMqFJHeheERs2 z;gfU#LvU6V!}b;P;Cfj8{zVu7GAk}Fh5;V{sX^9*;(~ww{xQhP%i}iys0LXNiVOY% zgZA*ni(s~(pdirSKNt*DR8UO-Mi+_;{`^BVKpx2je0;!QM^+8e&&0%ltcT?flKdZ_ z^KRX`1-AYD`}bh6TTnTei%hh&8UCQS;18+`WMyT+Y#tsS4F7|~Kx&Znpt#^K&;_?| z--h#HE&VA*(^w!}9Pe1A{aNLJ~dD&;djZg#Gjf z(15j185sP<85ktkfE-||pK4i diff --git a/interface/ispconfig/interface/themes/default/icons/x16/clock.png b/interface/ispconfig/interface/themes/default/icons/x16/clock.png deleted file mode 100644 index edcf756c25ca5b232d532f2678c5d7a2a5d120e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 712 zcmV;(0yq7MP)mq)veQ)C~TYBiB1HYNsH}m_wx9`1ShQlHGpTXgjOeP7-vc% zaV@pCcQ6(RD1NWkRJ^EEY<08+;A|TlK$L69u?66tp2p(wgec1j@9_|pVN6n|)3F86 z=7lpsl9Z*Dl>~BZfquU~GaHT0;r>R~$=6oPM6Fh{_Xs>QplZ)zu{q?}Ie?FVB+GX! zZ_~k`xoVnb@6CIV`TF%W!Mn(D3NTnk1NQevgy-w)B#}svovke*ilPZY5J+@+nJfa3 z;}p30rK(L{lI~gFGTAKIPNm43Ova7?TTbnEiLPl)WdP)vH=}Sd#$bpVk|tbijC%2a2Sh@H!Jn9> zN&*qBDM&0^n?k#-Z&z!!2dLcbb&wsXqpC{P6rf4aflOW zwjuc9xg=s8oqa+`vMfVBpWhca(2f~RrjBN>x1+hG#UoTz3B(vrB;tz;3z5aSxmhWh zoJCXguLx9fMP+4waCCIcCI~h&%fg4{WoU3Z!Cq72;JdpW$DPjB(Bveah{waK2u(T+ z%VglV&fv(%Sh>YwGnJJoifp12}cvi<#LV&x4VhVx6^4@+uT$TjYhRO0olvrtGPU$Cc;7N z-2qN4yxDwM^=7wPl~Ix;ZLXX{kKeYofSe^9?GkZ8k!K_iQ(GkTbajE>?}wp*0pK`J zfzfCLcY8auA_(W8z;-H`Ot3tEMD-S$nSsGz5T-*RErO|!6ueC9AstKqA{^}%vf1qF z()|281`A0p76@;#C}c9KSWD^PtXG7mG5L_(c-gUYv}Z2@ywT-n;qdErpRZBoIDw&Q zP2|q2pYVBOS6P2uT?HuFg$q6P{M1&azfcV;6!{A-my4uvy4G&LbZdNkSiq)6GCKPk z&Nu~#NdT$be$~~o08bvyEhz$6`@mx584L!uD2joh;o-K6y}c)^MbUaAyrPSI*_4w~ zII$0xF($x*#080wg$s8k#*J%M8e0$l2mdn|^6+}SK+`m6G#a2N%7i$N zVFAGw{u2@FxY<{Pl*wcuo6Q~zoEXj`v$?g=<7sVdYI564O6(*Ujzq!>^Yg)lKww4^ z#Tg8R{&Ap?ZNd z5Gv2Y_WD$ma8w7fEdN@Zn_FhEkurq_VL2{OX06yusQ~aLHQ>874!o@b;%iT3fWzO& zQ>(BvH90wZC`n;OKoLo92Y_KH$jK3yn3#Z+^b;6*pT0l1YA#QDMzI`w{ z`b><)!kR)putOle@e1^2BmCJ3!kekP5IqP1SHYQ1G3jnJKvCo}Vef+hJI`n|);k;y zZ(o0Z^Of%ITBCN2kFGw}at;|XX%T8_7h&bgB^0J${oD8X@~ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/clock__minus.png b/interface/ispconfig/interface/themes/default/icons/x16/clock__minus.png deleted file mode 100644 index 8d8d593a73cea0d85c75b4585e67cebca3a384b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 731 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/clock_small.png b/interface/ispconfig/interface/themes/default/icons/x16/clock_small.png deleted file mode 100644 index 2d40c7b9dc2545bf20569683c4d541ca1398c4c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 387 zcmV-}0et?6P)xJLHe_Of*1cWPVYC3IPvxfK0*RQ-PT3Sw?K|$dlIf7pJ z_3M|6iiU=;W<;LsB*Eg zGTYeL=z+wJ9X)z!#-vGGKyv8n8PSunmX;R7$B!Syf&O&^auuP%_u1IkcJcG`zr1$s h8h!&tU|s+SFaVT%eDI;I8sh)}002ovPDHLkV1fbhr(pm9 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/color.png b/interface/ispconfig/interface/themes/default/icons/x16/color.png deleted file mode 100644 index febc33126b574db29801406bacb2c2e2c92d4abd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 791 zcmV+y1L*vTP) zVxeftnSTfX1}3Fr%nK)65(iu# zDm2g(pi?+3sG~|MdUr-qq%pp$CK6GE)sQ3AY-6ah zrq4Dj{1VN4{#OL;)&f5mUrY?mNkU0y*gpa)1Sm%!SR$^*hIwV~j<)wQzt}8sxPbTo zH-t&nC#MqEpGrc##L$ca0g@O3x+8$u4^(>~oT@DGBq43B6jPRAu97w51MD8mbMbph zAVw?83Ly0X;a&pB1n35g7!V>LQ^DzB7MNm6`CVb2tj~PFk%(kd9pny}4MmPZ7O#Mp z2@=u>5cOAYv2GY<5S1G6Gp=$46q21S?AVB%ia}NbLmeWbd>GNFijXt_7S>>L5-N2% z5{c9WoCzY^fgS4rat^SMpMDxts;g~jf&fmEP^Na}57jL4z`4xAmW{(NjgyEZs}!h7 z5ECBWpoju(*dg)D=hPFxTP^SxTbEz;_FGVjumr#z`ZGjm4G{rGGl zJG0GM&Ht1*jF6~M@WIv}BB3Vle249%QMj2YI^f3dZCebRz zFd(dOek^isB*?K{vt$@m<2tHG1hh=$a0qeOb^$ws!=T!z1RN($DvH$1S0qIuipXYU z+xkqVF7YCfT6GAOME`C8AAx2{hTmf{TIWgtO-RU3q?h`p|QUgV(EgNTjGF5~%{%5JWZy-DQ+(5TsQYTg7WoX8fnVNRDwl`|3*k+xygV`h8gJ50-)eWIEL}p3*T~c$Rb4C zC~<#MHuK~QF<^miElQz6dK%|0I1#K%BHyD%jBab`8iN@5?40RUJT1+H`+1GWt z_R3{*=)tJQOxzudUAa*P6l&otsp4Nxx8nT$;XGrVFt+aLFRtArlkrP{0RS9l1I!68 R*Bk%<002ovPDHLkV1lZjd-wnV diff --git a/interface/ispconfig/interface/themes/default/icons/x16/color_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/color_exclamation.png deleted file mode 100644 index fa1c8a24ff8d143bba0fa552f8a187dfbf5843b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 854 zcmV-c1F8IpP)F(Cn(Ml@ ztM0lV?z%fW17J`@Hio(=_ovLhM;Myz^so#h=g}2I5e6`)O7>Y0iwt*M{q7I0fgi>#vpmtwy`^Pp0j1Z3# zhy^fhXl7+fzpuJW7Ly?c!wGOC$p#dW)l4}MFNV11V!j(bd1WNnucb1t51=ntfLt+p z_=-y^=cUYw3dm)E-9rF{07XE`3)l$AT;L;i#G| zp-3eV6oS~?1aMl}4_OgXnF7QTK(@lgZ(_4urvq4kwH&;AQUObVAqfdi!49X>1)E$6 zW_KgQ%LpAjL!xjB8FU~K?_z7ndG(VTtkN!ktaS}8n&ZcEiz0YgMwC9=$9pthzJ)J| zY50vhScQ&Lz)B9`#q_R2R$OE>Ly!#U)JTydj@Gm`gOXAYm4}DJ=SEnX#4<|4c|bmn zzz(M01iu?=(BLO-n7F^l%?8CbVBjD*iL$CHbauZ$RedSs$}wyS@tIBXW&zAq41fK( z91kWna~C2)1PD-eKPeiUh23UCFvA!hABU;0p}ID1jy~!6@piQH2tc3(ZBHBgFgJVP zPo&MDm7QT7CRpGlJZ>3Vd!I4&st>!_B{Z}gnyMq(mCJ!U`V$|MnlO~Uwu6t`6a5wE zvT9YMLpY}e;n3D0aakB#939smVRf;Uu9k60NvTgI_HVO%H!{XVLNr*a6YJ6DyFzJN z`kaer?zZw=wTC*^JcLqw6Z??~D`zaSuP@C9znuW`PTa>TJZX=o5Acwdw!iz0F{(TV glVcV!Z07*qoM6N<$f{bi`xBvhE diff --git a/interface/ispconfig/interface/themes/default/icons/x16/color_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/color_minus.png deleted file mode 100644 index 40cedce31d90f683d2a8b258a5c83abe14756979..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 798 zcmV+(1L6FMP)Lf_o9H|xQ!tc;Qa--XdGtMs1ozvzNaYCHNL$f5>bRvm%ZggeL!0+ zOxYSgPcs+(aL|fo`To#ccwkx*as`I;KA;hx=!Ia2xEze|%Jf)Z=k@NKo#Sv0aR3cB zMp%~|3->*ggldk#_5&`G=mvabRqqDM9S}+?3qJ@;o6DJ)QPbZZ!-_iqvja0+Xk2jx zDYL8qQWxOqB!El+A5aSdZUQnDT*1R!qf9A&*_+W}J#zs2A|`FMpUW~6itL9hUIH%@ z#2p}j-^qT;e5mPd&?>-5NagmhH)+uZ96-uMuq3vz3K*&o;paW@`&GE59xzV;IwwJ^ z(ve7{cHl@5Sqf&*IzNLXMQNNk*Pzn3+)_Xgz)2E{6l=e!V$d2`xBzUL$bYXNdL>yU zqdGx!(5_J|NAW#<0}7#v~TM1`<cO&fwI0154q?& zvT(Cp;yaOj%)yGD6;cs#qh!o~T>CJ0YkW{Le4KNjVyng?@pU}CbK~!4Aii8$nm7Zz zAPr%me*XZU_TR)p*H4t*t6pAFdciCUdSnQ(cb{RGYve*RrAFOsRpAetr zh%ktW@LfblN6|LefhyHP(kx&j`3Zru4^~9(y@Xs{#mi2ZhM%5f?^*O-`s;Q!oWU=vw~7&g192}Q4pU5-{LlqP0Dn2 zdyuXRCN~X`5k53Hs5@$7z%)vfXW=W z?t)PSmIY;>d>*3CUThBV@heSE#p5qO6OT{j;N1@X8$+G|Q|PWFx~GgsFQe&64c}CI zO%jgG8OB?E=g#e0g$vrhs4mWi2F&r!C!aS>-yzLY*2R)eqZ%|yiE7`U`Cs1HmvJvn zUb%AYWPksSG25R0M?mAOwm&-2+xMo=n=2^NE3hsC_YAxZ9rvM{wlR`6J{cQ5_R_$q z-*49IAG``NN5J+oq$0ub-iKfJc`G@^b|-WQbU*AdD7Mx}xW4DHu~A~5U*(;^*n=uN zu~fst5omUC#uYtoc63YTpb5SR1RfB9AVvQj66H$_pMIK4UtD8&{X=TuBmQ|ZXX;pQ zJ4Ia4Ik6qu?^;$i>%mT}$X@7)Pzgbz6%+DPT>R>14r=e?<~g>aAy)=YOcfVJ#%O4Vi9m}HZQlt_0Bb>nEo}Kc+HFshPMr`a5V9t@C({em!Tvgt8Q^ptJulxol=X!G$OFm z%J-OW6dRM*W`3;wQLfrq$-X3Hc@hqm1R2?x+AP~QXJ=|wb7N9`&2zsG_)Ktw^VO59 z{Iv4jc=Yg=*>lj)OtS}NS(FMTGS?TZZ0xs^mA@tAi{~NkP*wXiDy6*gKj7eix1W*T zQ3j44#ogaUB`m3%1?Ez>Se&^^J=Hd~u#5VAfwq(IE z8{+R`J-Il4n`RFG;h@|K^7XzUe?zY%ti~83Ye1X;n@$K>5&J!jyxe<24L?~N%B^zP zg_HmV8`_xHG3c+mA_=KghMXI)kVG5cBCC2ekf?;Pr7-_RzcfF(Jebw=S3h9RmHxFsxgo3w!vV8MWAORQi?Fr*;D&D-I2E3ip5 zV0INcCn27qBaui}U|SH`0t}D2dj=tDMUW|7gFw zvB)iiwJ8{sGLcIlli5b${`Eds%m6F?1$L7r9!Jn7dxws7T$QR_N0}21be#3{5>-5X zc^Yk9>R&%sM`;y%_X0XXM%gPF|L4!Auh@AHc_llQ1+5hpu@s z`)oR0TF3BV#{pvkbps_e3Qg$rpF*I$9TiQLMF$8OG0cR%;PUucUte9t%7d_uN4kOm zo4yMuI#J8A{`2n+Scj1>bb@E^aW{LOM$DfA3;^^J{k1onuOk2e002ovPDHLkV1j<@ BXfOZ( diff --git a/interface/ispconfig/interface/themes/default/icons/x16/color_small.png b/interface/ispconfig/interface/themes/default/icons/x16/color_small.png deleted file mode 100644 index 0538fd9c020776f871d9e42772f4354bccdf74d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 477 zcmV<30V4j1P)~SxHtgZ&JS1 zA0Xs|O7?@>J5+VA2b_kNbc`|9ytLzQXYDw?uqR^7z5uRDiLu}&4UVqqc>E2O;c}_& z;Hs{7KP~!lZX|^FuGXi7!X;6?U_b5G7~5`U3B0KGK_06A`?SW zFgfnWxMvQnu7dhA@alAsESNSBaKXB@uvKM#MRA9~p*m!|i!-U%K(TJIbeq)%uJOK# z)KM|rD8Y%mU|$R0ttfFf0-WTEjXZCr26g}g$=uC-+_E!tIlK^3!yavUi6eEt~U zHuwbIf^WXqah#QbKM+k)k|ZsiPHTxo;y{*VwNNPVBaB+D)~Zx0cXeHVfvsn25qKjR z4u|h+n)V1LahlqEJ}3QtpZ>SKzrVkoN~IFza`{@X*CW0O>xB|Q3R)(Uc?e;AI-Qc) zZ03T)U8vDyGEs85-0e^(^Z>H!fq`XNd&y+-j&0k!hG7tD;6tPEF-?tI=P z>|hAXa$ccb!kF&<8G+l9>2wD1#GP}Tu&OdIZuH)97&n-}0J#o(y`OE3zcWp%Nl#oyS_6BH zX0vex+3Uan?HhNyowJjZ=g)NAXz{#E{sw9^t5!eMQS7IXeGO_*DwRkq7OR6-_4?;g zHhWJyIyydxMx!d;g*YA$=gsETxY4LLEX#ZX$*ErthPDcus8I~;;6_Gpm3Q!{6s&Iz z27|{~|KjER#w*@;@B>=gH=wD6JotaS;04fu0j={(fB^uLnk{nwaRhPz0000?WJIO}aK) zlr$eysoU64JV>k366*FKvC!5_4bq6!gHSD=aWk7xf}2NFi!0LTOs? zrW8_zq)qd=o6W{IYc~m2PY(Qd9&hLU=DnFWq+YMX{|pQL#N%k)incvy$_-&Qb`_?jPqUnCn2%$dW|s5ya}MCh^S8NNGG;(Cq60x z{YUop_U@zqJL-@h26r0U}lu9Kw z%T&!Eg@v0fP$rkt=^SRk#$W-|FXHh8y_Zp|)%A6giH9u9o%A|PJT?Smp68uZ398i^ zGMOxx7~6+(xk7(%7&)H8z|mc-d}&2=-EN~rce4f7EA0c7T*S^!no6xuCNl&<)M=3f z_GCu9j}5`!z0oiWSo*z%)rEz(Z%U=|_x;(ut}MJ>4_eGQ z%+Ah&t0mCebFlXGKH~FF_5|qoek2m{`I(uA4>TpDjyJ-lp<8%=1za^5S~S@}gm{dz1_fo=2VM2p+|s0t^6Ku|EnM9^Hxn O0000}lm68%hBnbpT2yh&?g5eNC$z(DcIF}J$ z5$_OZa|F&nHBniX^>{q4MWDHIBqYqc6UBs_f>V*xBdPbQPkF)`Hd_hB#?*ucYW z5K*VoQPS!3eXrO16w|Iw2@JzniAJLjOw$badOaWl2c*Kma5$t{K{dB9Ej29xPYP+8 zwnoX$paiTJDwQg(4H%D^9Tx;16h*m?%QeJnhd|+ZUPC2dnqz3S+CXIFgJFzt2M0Va zOpLbS$7Og{0r`NE2bkQk*McBkxa^YV?w&Eu7BeNlT3fYRqdXk48-hT+@O!f;y5|Vc zi{7L+E=)v%)8pfl&ypm=JluakmOW6dmgye9Jeeus8E&^tB(Uf+4OS~=L;dwFSVYiCzcf}v@rx$x9>6Sg-WIU!OV zK-_+_zdz#0Y3zMaRh1B3S_)r01we7au zm0X#FGRG2MdT=0!;#DZ0@U&v&U(sRRoP3!v3%fngY+X&M?D8lV~@ zBO_2B!^6XHRg${;B{SI`R?Mj6Q>5U~*<==;!RL`G^26 z+F6zr9S(i?X6DUI*}%1&YO@0X-0VdV20)qBWb% z)>QH1&}521lU{<+v2l&t?Kw1^PT6*Lve7Aug0fqxsSZF#;C_ zKTJ%F!~FaU2*x_-My^A^v_XB_9F ztwUJ347t*|+8iO5Q{_r;)C9ISHl*(i!@_ZNM_}1Th(;rEO!L+R@CefC>gN?y4%L6@ zKkN~3uN(>mw=iwFCVkUdg-Re&7jRE3lN(E2z;G6=be;y(cf07?8kwdb)o QUH||907*qoM6N<$g8C9}CjbBd diff --git a/interface/ispconfig/interface/themes/default/icons/x16/contrast__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/contrast__plus.png deleted file mode 100644 index be9b36e3f273533e9b1b79d20f3bae26858a7ec3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 735 zcmV<50wDc~P)7ou;qN$QLF*evvS4ga`lyuj`s7>k~bn8#hMMF$A?hOCHq}`ZQ#m1;m6L&Vmf+-Xz zUo#AY_f0!Ug06hYnRoN%-Sf`5?>?&6>%spFmV8pF6mT2|JkJBeFb;~Mrg7Pe5aaRq z63z#RPlz{&Uqb}uKsA!ZVv&QvpzQbiXRTJNCz(vLH5|EIE}zL{t~VNu=eTw2Zv>Lv zZoehV@C#`R5FULe4-S;7_O1qoq;_OcI)WbX|9#1vwIltYf0L)oMYz z-8O)S8z4mWdR>ggVpj!0xQ}UP`vj`0PD_%ssA-z7*=zzKFhNw9P!xsCBC5H7Y0pL+VG@WmO?yxYXj&Jl)fx~oQU_J- z;0_9CnmH}B0Xv4iK?S4^D7lTvbt7gN?xe~rKXmuHP8nkQ1n9L|DjgjtiayCOq!<2d z<~VCV{(fyAj?XkfDDqv{HhSZvh)9snX7@huyak3~?W68$!kv}dP#HZYX&+&Eq;Fww zXXowq)YSPaHk-pYD3{|b@b%I+s5)yvX#mx36;!3I^fsIi@c0=+0bbv6u~^vJ+}wED zXf*RIYlT77Y&E#N5;kzC9m2w@>{z_9a1j(eOp!`s?}OXzCXgm3d~!5;Q=Xq+nsvEc zokL)E-G(`!m&j{JqpLY#;6zrM=#EKg+h8^j^RvyDgCF1%>rBZo>>-&c1 z$F}A1yOZaBzWnh8UbVxpCTJ!Bu_By;{pZ_VBAss>@R*+WOABPs|lG>`wxHF@UcA#XzIcV6eAG4_Nv^9WG%!&gb)6AVw&0Fc?hH z>-DCfLY8HPbGh7e*uDU5V<|8mk7KD+Ds9_##57IP@AsFWc`h&<4ykQ8nM|s1`f!;7 zyk3t+qxY!i)dEqmX0wI04Wc{U=Qx%qigF9f81QBxu)*`ZOha~@G12uN4VR`yY8coJq+=EZZphX^eqw<^$Uwc0;z+r7qdBFMju z1;KMpz%(rlQ+ruNGYFLRecZ(218+7UtHy`b#zp3*6Yb`}CO74IDUKVI;dHUhA~b$^@RCwBA{Qv(y10{fofkH6w2C$$D zEMB~rfrW)dh>3~G6v&l`jEr;y(l>y3DG)#Y_wOHm1OEQ~E5yOU5n^Fs5hgA!ZdO!O z#CGrAy(hbN?b7-7?OPR4$s@d8`1 zAn1k9pFd0R@bH+vdGnUx)2B}ij~_o_`19vCgP@?GG*DWPpaDQzff~OsynFYN0hC6V znc2Yj_wWCVKxsCDvGC!;hZnbR-#^X8#m@l20u0>T0t~NTzkLIgzE049_wV1IUcY|z zs(bhD?`2`({LI3_{^!Mu=dW+xyaLiZ6J0$cdQ$fH_h)$U;DHb@EWput|Ni|VAbkpm lyMXvMx_ZXZyubhuU;v1{dHl(NT6zEg002ovPDHLkV1j+3yAuEa diff --git a/interface/ispconfig/interface/themes/default/icons/x16/contrast_small_low.png b/interface/ispconfig/interface/themes/default/icons/x16/contrast_small_low.png deleted file mode 100644 index c791b0e8db132d9cd3408008e8f877f800f53a16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 392 zcmV;30eAk1P)gedm zeEs_M8_Sk0Q~&ho(?p<>=XkvUw80`UFfdF=NXY5ct5>{Fo;=|KvW@)x{XKxvz68DS z>(?(?adB~zSFc_(0BvM={P+pOpFh7D1Ox=sfUeUZXuyvjKbYRX|H$y}-A9mj7?_#a z!1&j%e~dtBR)Vqc^XJbOSFT*Y$i>Ca0Kozb+}r{Tj~+dF01Zt11^``fc-^{Hn{M8` zb&QFL;|miL+t0f|aQyh8Q$QE3Mpw^>o|Lt;v=}~q{3r$t3s)dl{_Weh7C`zE5YGWd m?SsF6|Kc}b1m*>R00RICJb+lkYN4qB0000ZK) diff --git a/interface/ispconfig/interface/themes/default/icons/x16/cross.png b/interface/ispconfig/interface/themes/default/icons/x16/cross.png deleted file mode 100644 index 62c181d4b03e00c588482ae24f7c57479282cd59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 540 zcmV+%0^|LOP)qSTIvr%QSzI<6Z3Z?91=;WSkxr*^dv(>O>N=&HN5mZo1fdHhvRy37?!$v3xUP$* zUJtX$B;3bGMW&uK`N}bYVfZ>qWHFPG&yJ&P8is*4$5CWzW^&WPB(Fuhk!@9`iK- diff --git a/interface/ispconfig/interface/themes/default/icons/x16/cross_circle.png b/interface/ispconfig/interface/themes/default/icons/x16/cross_circle.png deleted file mode 100644 index d4507c0712c2f902a8f6ef0b12d42b45cd0aac7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 721 zcmV;?0xtcDP)S)cT*XRVR3G5 z=gIbV%HlXt)pbz2-SM1fA(irkW3gcI;9#de8n;atCm_NKLUwg)E7g@{aUq|FUavPL z8tbd7_$ZS}F*7q+Vy+Ez+;cRYPFzZoc)w7v9UtuPgCt3|s7)WuNs1!Q$KwfoRHxAv zu(RO{hXbun2i_(U@TyXQ!C(N`Txv81R;vYqVL;b*&D#k`gCOvZ*!5Wa(Rq@!fgPWNLx4yI`;e^j+X%(a1u z*RyXJxi8IT$!}T8kM(u9i{qjrY9Ar&N4VJQm1NV*5kstt9urlWf*#{-yvH!v6wfD; zJRk70tUy7RhA}8>TBoFGl{18kcng2wxXn5SbQ(ca2(Q=eG{ELOz(dx#ZTN6%4S??_ zxC>mijzdjU3t4?^z&Hi=+;|`V`sg9{Q8KdTUjYUHZipLZT2%uX00000NkvXXu0mjf D^O!__w;L$@ba9f)9H9u z7MGTnm)9DN#wWhn+1SnQZfvx)z|q$Sm(>cDN)=mt@9r&%RJ2$u9$LRb_(iQ&%c0~~ zR8$y?ii#fC8yXNaF@Z$dHA$^TTy!*4PAB%p$FVUzgDhihwkV2zGTCAi8Rc>=F)^{A zq@>trZK#KOZx7i+LpV4%fWzUCaJ${OIx>Qo?QMK(Y(!yUp)o!_zJRqd$}_X7s;Xvn zbQIxh>qzbGmGZvS)rFm%9SMHtk!~_UX|rSN?HJ0+%4%3E^ZWgA2?-Z6oRgCX4Gl$4 zN{Y1Dy;GUDTXmy;tMlb7njYYz`SV6B|OU=#QV_wFv->+4X_8B?L4P$&=-6eRJtA;hC2 zcxbJpAuZRyC5mz=GBV&LgAkfX9UJ>k%zbckaS2t9| z;i^xGKU3JBva=-v#z1v&Q)D6646xbk3#?^>xz5gx{^S+){1-~$Z5@N{vredC$c+F>vh2?T70Lv%&e`#B3Hm)d>fjFkCFDM4xOEC z19T<&sJVuzM|=XA%ZOm5QW-`4UZmAtHq_NUE7R-ql22VUOizEXHa9m7EiQijxWB*u z#_RR|%5hyT$#scp9?Wb5(q@h*KI5DsGZmjD9*9J7mT T*SlU-00000NkvXXu0mjfmocRf diff --git a/interface/ispconfig/interface/themes/default/icons/x16/cross_shield.png b/interface/ispconfig/interface/themes/default/icons/x16/cross_shield.png deleted file mode 100644 index 25ea793a144793ab74c677f52423a342cb20474b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 768 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

    @32ac=+813&5Y2ISNYAz^ln?0ll1_v>2mn*h4 zHy1AeH>F{Nthe>xrl(g*`l_9P>PaE=x-XDLEpcY65$-A#H0AFO7N}GY&Jxng`snYW zAm4_E5fFrxjDDU+XGbqQuBFT_!Hh|R4*3O2R2FUhIKuO7^a*dIzf1%H0`Yi826(F# zUavRg5EC1X^b7^0@PQXO*c_9{&OeXdm#xT7TbS`W*M0KybS{3(hIS!hd}s)E+C)(l zL*O_LE|&{Yv2H|foX5#h4cgmUp-kS7h1nkCu0$R)!O?#D0Vv#o#LV1Wh_r0c?*|D4 zV7Jc0IP;lK7~dZM!!!O_^!CI_YlCUKkk&IAL*Q3U(U{$pEb)kRDX=R`~Q ldouPHPuB=^Yhe2=zyRDNU+c8hfw}+y002ovPDHLkV1m!zbRhr$ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/crown__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/crown__plus.png deleted file mode 100644 index 9d467cc0d14e20928b2c300ea8ec954f03f378e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 758 zcmVueNlz(?5cH5`1rZ41w5ZMOLsW8N zY;(KY-R|!0-M_P?OUwtMbNO-p=l4IHbM86k&oRdEKOzp_6!#cKG^!dNXgd3zyb!oe z@w^gcZO2=lw#Bs;16HwFUZ_6I%}l%=H1iyWeKK&wJIvBz24DT99CI9*<~wyN!)K&7U$lc z!A)hEIPk0gR(+$-MyiF-Kxl2~xNCJf9H?tAtWAS*Hr3G#&!`Ha3QsswN}rih_au7YNHzlKT*rP;|5kPJ>|S z$xOi$g7|ZZA;zGU7ZyVC`4EXj63(XdG!zu(Qi)OAl4me22O-e1_;o)tCB{@EKMn@F z_+ugQ77UZ4qmZbHnx-Y-^?D)8G6X?@-Qq+3`6G$IZq1DYRizd>THX%5f%y16P`MY| z4qB}gS%IeOV6hk^-!Dks1qe*RJGY9D&&I)1gVc(A%=b=uBojYNi)j~KewH`uM(EPX z%P+}6p;ZkV42THSUaDB2Ow33d&qL5-uOalP)M~;KZY3BJ zyQQ}7-?THkGjlt$xtnf*K?gn#=lkw_oO9<~#yQ9T1bf}UYReeEl;iA{$q_CHBEzbD z^OzMDbck)@fHcd&EsX z?34i)p+aVz89`{58Sg$AG(*CMGAp#jVMautl?aiEk9Z z_iqx-=z7r#*@RG-?Z8mrD5cAUi-arwI|B_9!5}USbnT+Lk8s}Be7$YQmS3WLro`&oSDsGYN|Yc-dtK>X)yy>)OllF z9kh5Hx~}I1r?Ubc?{-KmS2S27=TN;dhOiE;(7N$UaJCw2>zkT>eQdMzz%t1N=Y8`rN9B`AZE-yYSY*A>Df{kdJ3YsR=iV6$< zT7S3x-0gdtXpJqT&<7tg^Ua%Y-pqW%D2f9A6O7O2yJ0jM*SpBv1zqh)1^{LO`_0hwP!Y)?FG;CIouUYCKFgJ z7SL!k8Oq0gNEL9q-QsXKgj_Cn8^<-oH-vLA7~DBJ`o1j)x8Q>Rf><#a3?4xchAhjf z$6}{vi^XCAZ0;fi#JzO->(gX13E}XkZ5%&DP{|K=ci+97zeIL^Ac`W1tP~1`SJ(%S z#{=bZ84eCUK1P0RfB(bt#aEaKq*5uUR;!TBW&@|EXW(=?pS0li)iXkXP##Uc-tN`+$>=3F43&jY&cn%C=v zPN$=mDa#6${sZr101U&a0%#yr#B4UB_#-{#s-FpQ6K#7R+w1r6H-GjRj>cE+hVbBe<6of(s{S1ozByB#P7b`{(EOhFH_u<`p z&b{Z5NX=%GL_|?^-S79^;c!UX?N&S)SSPBgYMk@Lw(Y1=sf6WnIkYV6O;MBwQN-vw zT+j3Fm&+xs*K3O7geH>(?kSZ@Isrr=A;)p3-M+p10u>1WifKNd(`+`&3C81h3d4*z zw|8u_E7Kto46wo#UgO-ZDOl+(~~6W)5OteMEJgGv)N?(nusQeEX#Q<^L?MH z)hcP4#`e{X28x(+Fc{<>7|_LC*EJYpxla6n`2>tvKO~r@iMJz~PN#Yh1ZTi5By7i6 z=en+6!iQ7gNtR`zk;p-+BsLNwA002ovPDHLk FV1n$+&shKf diff --git a/interface/ispconfig/interface/themes/default/icons/x16/database_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/database_arrow.png deleted file mode 100644 index 402e0f3b1828f0067c2c81cda3ebb715e442f1a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 630 zcmV-+0*U>JP)l-IPM+GG$EwZX>XHXv0AMrXijkptyT+~_Lb~3$<`Kjc7EWac?4(A9mR*HEE;O6 z+Y=L2#)qE?W6Wz7dV$^z7*kMCcl+SR$`|O#X}r3*)U?|5<^Jnik9{O? zfJPz|3Y{hnhd2}0b@}0Z&qu*O#J~^d__eGXOCI)ZzIi^ZtuE4j>$d;{03p5|QGAri QYXATM07*qoM6N<$f)`31*8l(j diff --git a/interface/ispconfig/interface/themes/default/icons/x16/database_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/database_exclamation.png deleted file mode 100644 index 771a917beca0581792c4f242b0ba058429b8c1d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 665 zcmV;K0%rY*P)wMwNDu2!oUjYjN~Oc@dc!L2CD z*yr;Zfj~g_`~AAt>#cDdx6X=q{Ecv-P?sjQ!K@=rW6G#NAs$zBZ z=GsBiv;Z}kXt&#FwOY2o&Q1rqK7pcmF&>XWe}%^*Pq)B{BgT;hrY*eBX0!Q3B9XEz z3;llow-u8Zh-5>t{S)XnR9iYs;Cv>NN&OFEGO1o6h%c$WI1@x}xDKvUf-t@@I|B!X z5bzPv#BCV+8<5VDn%%n&+6O5YB}uwW9Of9437KQl zyLZdFx^!}K{LeTYzlKV0$`svJ`XP)h=K{sBP?J0S#w7%fC490Y`5iX0Jw`MO*# z=j^E@fco#PQeH>`FQfi!99hiN~zL|OR|Lr_oEEa=mk|dqT<#L{UK95ePqkgiGZ#EbV zMvmjUcDr42xm+!$)7i4wYz2m4X4N1TKh2X$r6%k3I-1QUWVs7LsL^{5CX*SI1S$fD z!-27}(epo&))t^78P#ePl}be`u)6vct(F3gv!UDVf=-3iYFV2CJvL|?F0fX@i$o$Z z9}EVgyXB1_D2?PS# zrrKgAlkw8(S0$86B@~PANX~nbRYs@&2=eDCoIcKB@4@k#e6@OOsM&nXs>D^J^{)^u zED!0^Lxe&R+@E`b{d=s9%$u#5tlJH?SS*6(8|`*m`4dD%dIbsd2#1egW@ZtA1DEjO z&ed#xzaEPe%cj$5`2BtujmF=2=sGJf$g>EaJc{Y*B)07yhueFI4!FpuUGhAy{YDE7 z2j}s4EG)}v!$LPu>!8Bl#pt;y+@3s(?SmKK-7y4~?Sm+aW@5C3a%(zzY$ErX&E~_z z!L2e;6h&)*BwZc}>0iGr=${qJ?6OX$Q^?hQfjW3VF{N(;3;=MWLLinHj^+RW002ov JPDHLkV1ioFGvNRL diff --git a/interface/ispconfig/interface/themes/default/icons/x16/database_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/database_plus.png deleted file mode 100644 index 77bc6ab51fbb2154d0a76c7b0b70e548fc8a6ef5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 607 zcmV-l0-*hgP)hzK5n+lIG13{^ zW=NPeZJICd3yNJ>L}ufKoA-FR=iGM=_X)LH4Lm&0yV`EI^-iY)-}m`ZhH^2TPD_fS zgqo&#`Fwto%jG7js(ukg@hLB2_#Jw)*?cq_jW8aM5d7P#-RyjC2Thujpvn0WhIIt zxUTzCN>P$=Bvp2Ts?8w)%s t_y?&}3jT$t8W}i&e*BSR_~`r)U;rN4A&bKQOOyZr002ovPDHLkV1oAh4rKrU diff --git a/interface/ispconfig/interface/themes/default/icons/x16/database_small.png b/interface/ispconfig/interface/themes/default/icons/x16/database_small.png deleted file mode 100644 index cb4c5a9638b33ade1193d5a33224edcadc27b692..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 371 zcmV-(0gV2MP)lAW zk|XGXPoF-WD=seHYHx4vjqHV0t7h!{{P{CsFT8vA&U(X!4c_Qph>n(YcXv14MbHaC zjl8(L05qJ3pbNfy`SMy`UcMWeN0=BH85x+Em_YbHGc)rmboGowKQjRY7yzgkos`ch RlBWOw002ovPDHLkV1jDgqgwy~ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/databases.png b/interface/ispconfig/interface/themes/default/icons/x16/databases.png deleted file mode 100644 index 37bc6229415e16b31bbd1d464919dbb48957b4f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 595 zcmV-Z0<8UsP)%(X?g6q1tx%r9lc!6j%22InT>l%)a-@fA; z#UP;9>un%B7K;T2g8@374!T{QUG)2Xa428%!&gw?U4KKEX`1`BS`F*<8YCTzDTu{% zsH%p$;RCixJ~??$+s33QiPO`o3o5K2;8yZ*I3%eYu-tSEg+kcbNg$nmMkc@701pqf z*W|$`I%bOa%W#|@4|-si%jNS-CUd|Sxta6%9Fa(5Bl+^uLo%7V7wiLGRw|W)Z63I8 z@74oqWUW@K|M%eN=*^iZiYEJ44}2hvB?5qXo`>afX_rc+^K3SIuLrg*VR!c_T}4Mc z9;bJ~I6&cw*<>=oY&LsQtyUlOU~ljFmsYD~Q`a@`Opk0vd((_2ApX3pF;m?bLAb@8;@-_YD hpK0w|5b#TY0RRD+LCj5p*~_YP)+$|MR}*d7tz9pTqe5el(j+B$G+FTrN%Hk+j_PwJ#f zrPAp2`i>}yvdLunVKf?39LH_)7*jMFg~#KemzH=u{=8nVLzZQfN_%KDy3lHM5Cj3D zC}4T{_5-?+9XBWx3PTgBZnuj{rGi{8hkTw^9_4Zw)ReA`G)my3r~WqKW3kwcP$-1K zU;q*wJgfV#K#TxBUh_c5|tYCh9@c%3QSDs zVYNC4@y$-#rysK@fehBH}R#d#4WdW;o~FUCd;zNV;~iqn43F=jn7py z&U&wWo0mHgir=rdKk z{gi@~+09kkC^@dXE=)SCcop7C4qEkRyd+5mi^Zbld45Qoj!vmONbuP9YYMZocb;%9-=6gEiWw< z(5ik#EqM=fVStw3{7ayFa&mI;Ukqf)ijVWp(B6Fy{!h>GayGC?8~IA5((f@IHnvpc z9nN&PC=)xJ?Y+2t<6=MkY+dXF9)W?5Tw(zYP3Lgs+AGv3Dw5$hNG2j?*1+U+I#DPT z;P?Aa@I3Dfhr`(1T&K_2q7w-ruX$j%hM?9*C6n_fVqU- z=tF4H*JU!No9w50lbV~O`$j$DD3Diu}|niri; zr%RHgv8HK;-|z1$igG9j!XCjwS z*4EwoY$Lx2XfzrYgvDesLA%{XtyV+5&a#eHs|5ySYj)TQ)>+p%gcJ&eTiI+Dv)K$( zItaM{k4J-|s5lum;7rM>)C0P$M-|D)2XE-H0+0WUqoePqdhjWkOuh|=!)t7jnK>Gb;BvVv$@}|b$g=;hU>mTK zPN&z-^1v_}#~#o|`gA%yzXzL}xA%CSKfecbEL=V~02hzPF&qw8g2CW+Bog_<16h_K zz0Se$wF;5F34zdeA)xxXSoNCbJJRp>8Q@wblli9yU!J|hoz)w^OS-xoe7>`Dos`RE zh@wbN^I&@E3btSE*2M9+dEy3iQYw|?Kp@~Igjn5}Y*GBB!0YuQ_UH*7e*Ey5{)-p) zfN!BWfSX^Vk9IXep-{>+O&iX090!)v=^0J-FNSnp*`)vqfera7zyPSnK{Lat>|+1` N002ovPDHLkV1gGt9cTam diff --git a/interface/ispconfig/interface/themes/default/icons/x16/databases_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/databases_pencil.png deleted file mode 100644 index dafa7f5e3a735604c223f8929be6f79fdd7dc449..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 733 zcmV<30wVp1P)-qMINlY-X(JrVB5Ez`RkU7$g)~EJWOCgB(ar zwz)0Yf%&n`t$nz!-m_Ya60`>%IM4e&@BjTjKi(s;SS-lpa`5?l=;`T!7_>IiS|5!@ z#gfoGB9qA!YPGt^aa_K=y*;bZXo4)uz9wi0m&=9z{(kXO@9}sh)9Ezw`8>9^ejt-6 zL8(+htJQ+zv=|w=eoJg*8U^C#_rIz40Y6o+1cP*T6h`-{#Z^Xlhmpx zP_EtB)YOF5RyDf1PEg2wHNl}F?Ip^h=@{Rs8v%(#3@a-hG&i?VM;v9Lf+FBY_tS}E$78W?^$||nY_=;0G05lR2n3|a zx!sWmqoXICR;%^@7<8-QUzgza^mONCqjBL{wfcx0mI3y@AhEHEVe@%79M2FWgkRL@ z-mwOQ0mWhwUaz-C=?2(>~{OU z3|eFX>+Cw6i5-qjF&WChyWMZ)1Qq*5u_k3p+Ei!7eQWIBTn-5 zp>p@Lud)mj>x1RU+S*#1UawaYLTbbn3I!GXgrlfBtIj_jj P00000NkvXXu0mjfQi5Bx diff --git a/interface/ispconfig/interface/themes/default/icons/x16/databases_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/databases_plus.png deleted file mode 100644 index d389d1b050b06aec44fdb76b2db86215ba5c7b67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 684 zcmV;d0#p5oP)cd3J8Tlph4;lQhRE(8Z9}Jhs|cQ z#o=%$f*{ClxBHvRBAren91hb@Pd1x<*zflt%QD*SuNVweSgkhjJP$$O zvAKEmHr>e11DegI4xyo{DmtAG>h(Gr4Vn!|k^~B+YqOXs*q~j1K)6gMb0w8ZLDMu4 z>EO5}*lYq^E*`(e46smgB5{Xo8xTcKh+_FQDYEl`eaYQ!mq?|6iQds@G-7$#0l)t= zG5L}Xj7Ir2;=xPuTZY9yMz8nfKo4^9c>Gl`7+j}|)XedC42#90OWxjA;B>nG2%Z5} zlgZ@zA`fJ_x$gmKl$}neKgYOeY}A9D)hg~E5g|pfMlRbqdIA5-gF?4}3l~Gkck&c& z*bP)+2m}I96a~3l&daiFpw()jS}l`fd?FKRU~jLEyVVrl@fnynBbmEbAN#P< zJ1QS%B9RD2qtPu<6d(P~gB!)`5HA02;@hWhid>~qfyrdz4!Q>?O(*dD@w2*OR@7FPairs((I-}(dlft+E(juG#8kKQ!LLyGLev0R(y+|Ige*Y zmS3UWm%k#&wKG=p$=eS)@4JXfZ2Jc)MEMA?dLDFoT}A7a%M~pbE?ycM8Z!C){wcIy zqa=oQ7*i95-(? zwpptEHVq6wq%tUJt_J<-!xY34aZn;r)D5858En@&uD87$d$EK^@3IkSnpR#{?`YZ~ z7|q!*6y36b_s8m*)9HLh;r+a{W;7Z>jcX8(sL)t{zKL@35^!P85NoMFSPAP}HIUL- zV0d_V3bnc@=$yWif_aH6NzmzpQp(9ozy%>p0c1!KXlc4m1Kz0G?e?q$I!7Cb#AG1! zPEN>jjyl*^6lGhdH67u1khD8XIh0Fih_qM)K>&ln&|tM%yL<2TwzhY4 zIK*P{gql=A-VBA_%)R!F&rG}x1f`j1H0s5iL6)0yKyy)oIL>jLiRbxB{8*(&KNE($ zg}OI#$qOOE$kqNhpi+b!xPSa$)CEz5g530P0R{k7#%9gPt@T;}00003tQ#2%)7#6b7;7Vgyxl~}IKw^xFpN$3*qcJgJVu)Y}@-qZA zey}JAq+mZYQ)Z_1y~@vpD_?Tn_ug~wdG9_HjYi>r8bi9Osw$u;3TT=JgpdIv3vXL7 z_+`6a7*jadI7UEKRft3)YXs|>-Du!luEGN)Sq?`*oS93ZH8d=R!_#A9?*@8a^zvn^wGkUs~brJw+`oEk>``+l}of zh!aIRoL0Pv*SjyAJl0^Gm#xgA3>pC+s6ZqEP0>K%QE$*&8yn9z@I3D(K14<=1FXq$ zq%^-IDZ^`3KnG|#6%qoptGo ze|Gg1M!LEl^}5|9PP5r$A$x)-f?o(iTfYe2c^pYG!S~58@Jjy~j+W){H+@hYO@>d1 zM99m_BQkc{Y_{Xg&CPWtvneGci4YP)aB<84d!1JJ5C8}&YgM;}1L(TdI~XG%#lmqM z=ybYVi^Wn|bE2l$?eREx6Tk7w^I3Xy(ys=Bk~lT*3uTrbOtEBdg}xh42N6ZJt`HC@ z2^fhC!x%LhO*;Nq$?HE8mN~;zUb|#FbILy1ad#9^^i?jNzq3L>>VaDZ^RKVFp|b6A o6d@-l;a2&{+1q$4@>_rb0N5~8Jt>Ug9{>OV07*qoM6N<$f>>R4EdT%j diff --git a/interface/ispconfig/interface/themes/default/icons/x16/disc_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/disc_exclamation.png deleted file mode 100644 index 3b269126708c26f837f47f7d1771da097f6a840d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 882 zcmV-&1C9KNP)CxsEHRbG43niRu|M* zrHG|a7}~;2XZ&9Qm$NVV=FMBa@890f48y?x43U3YT3R3o0!$_o7-QLl3flG&ob&hM zgl}Z*4Ph#sPD9uAKLUS^a#yx95LmmZuEOuHwYa54CbJ2%Gc%EwFJC?ByVch>9*fSoa5#LG?uR%@ z;2(0!k>ix>kMG^x?ux2DaYBVTK?iB@kYEx_5NMXOWnVCOq}}Os)^iRIBjW+ZV<)-OqTSXR;b<&C|JOI6Kp=32qyPDfkSxnkQyNl=ij^x?)o>003j%I~c|GADrT8$i1Zisl zy1KfqQmpM9{69W&9%DoMq5Ql6t5x!F4i^yT1sD@7Fqi|H&euA~qFP>Fo(Uma7IkIp z4oa(9@p149#Mx~b&hIMFVlt6Pj9P8>B9Y!gDwRT8TU&E?cel#VcQxjzr9Rl)(BDb^z=ZT9D&3{cA{-S zJ{5dACqVU#Mz>y2^$iXFEa6jra`dd(Q$k^Bag3lzS^xk507*qo IM6N<$f{k0B=Kufz diff --git a/interface/ispconfig/interface/themes/default/icons/x16/disc_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/disc_minus.png deleted file mode 100644 index 87c8851d87a7d98972627327b0f7364cae866080..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 829 zcmV-D1H$}?P)^f!~YB(KZApVz_KiG90v@;lv6a)Z3l%| zv`bK|)5}&Uc2re`TrT$~z`o%$m5UxvM^|^F%hgt9(N%H+2iZ&}ytK5u;D7D+Z^vS9 zsNLtk7!=1*yXDa3yM4F33}GC}9Rg_~1)Np@jaF0JdG<_gNBhZBe9whu5!qO;O_D;{*hW9;kqlfMYpe>EBRpaQJ-py`m`gpbyF@Frb=T7caDS z+v7Ku!^8Z9d^f9||Z1u;dwgMR2nYzHBsrsP6rjt0d99$Wj(G8eIkYU;w@tfMM7&$TLPza=6X`y^%Pb&VmG-qj73C1`OWG z>k2-5RiKNcBuQHut-hM4y&%gnjEs!*Pft%1JRcq&?hh#ou-xzrjEP1NV@+G=vloC6 z^8MZ0`9NR)KsC!Um{h2#t!Wt@9c{r*RU;B)X5(NxZh)Uh=3&_%3ZT#FPzV?_aJ${2 z)oQ&xG4bS%#bUN&&=u5*a!fTud8sStG(240!0<#`P7tJV1Uh{)9FC3*SFa1_JN^m zL!CXny)Mx#9wb=;bG`@i#=?huI61^SntAggW}LD)v7n znwJf#`&%)2k;4Gdn>7EW0N4+@BKUv2V5$q!6v!g?OMn3Ye9KwgIh{Ni00000NkvXX Hu0mjffOLV= diff --git a/interface/ispconfig/interface/themes/default/icons/x16/disc_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/disc_pencil.png deleted file mode 100644 index 9430adfcf18be26260ae9d06a3576816990001e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 888 zcmV-;1Bd*HP)(_7kx*m0PO$P#x zsowBE4B~6ODJ5;s5l5Yq$izJJOGZc&1TSi!6}4GbTS->YmaW@bT3V95UT-JWA7Vxv z+bFH1rA9;f@q>Gv$&<2K_#s0hQGo&$5_paWN56(dgSoNssMBaPmNOd`#ykTWlcj2B zL0RfruQ>`mh(80%Hm`-aY9R&T*$AXy2rO(-t2b9x>?pf(wS9n!dgd8KqtVQbd6vRy zLfPa@B57AD+@A-B>~{Nk26z9!kilSp9ElE7|x82z>m ziZ&Ikt*xCjRwn~Hvnok6FA-@Dns-B{6Foi0N?oD|{?W+X}at`+qe0_}xJB!c?-`f8WUB{O+#ZEdwL z+J{l&8F&WQpyB9QzA7i@{$5o*H}61}J{jxjCP8sxl#A z>RvZQyhTH09`@BahQ~y)t=D9Fz{RWZvZLeX)36luB`gtW=>RDlhHr8lo{t|e_U<

    D7rZQo{z6}4stsX#D!Z=)c*J#ZE%Dr7=_qx0R{lqn{6F@nDO`k O0000t-FGiv>@@pi8^10?D^fuWj1n}Q1{__D$wpgOS9hn$WO6ebMk5gc<>aV4 zS6Y*v@3AQ`fOxZ!R+bNa*6$QVq7uaLCKzqK&R{!Jd$#7;^QTi(^fnQJq9{2>iyh7Y zq0t=iA*DVY(<}1}E|=>G!}Q0g1*6djSyCW{Wt0{lb21wW>^QKf#G2vxo`gpD}92rE8oVL7L7TB%A z%+S!_8@Id0X|beQ*_{}PAS8w%hQfHb*o!aX5(HvKFcw585DrgV4?a?%en=#d)-&k! zdPlmtZua~AelHb3jw$q>H3INCvIt9k7A$qy@F_l2T&T*bK7YCd(YTYa5LvSbf&hcT zP-3-On_4fmR=R6z9i~*%0eMTtow57Ugl|d>i0hk&uM}m@y_lIyWS3xa#{r{~MzNpg zd9zll&7&VHWAA68G}okV?q25AT>EPO*H0Lboahjg9S4kxunqp7f45`b1H@G)cruR1 fTkVYfF98Ms$`fC?@2#@^00000NkvXXu0mjfgO`kq diff --git a/interface/ispconfig/interface/themes/default/icons/x16/disc_small.png b/interface/ispconfig/interface/themes/default/icons/x16/disc_small.png deleted file mode 100644 index eef6e5e513026d7ae549c99a24e86442699e5477..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 477 zcmV<30V4j1P){ZK+eQiP4It*?=(vG2dzpBOmK zh%?N*w(Jl{9X{s6?6czAe@2?+^(KY#u_ZUcs9UZB_jfB*vkgS@AS Tb8AFV00000NkvXXu0mjfdII5p diff --git a/interface/ispconfig/interface/themes/default/icons/x16/discs.png b/interface/ispconfig/interface/themes/default/icons/x16/discs.png deleted file mode 100644 index dda4049262ecc7e88b5b4ee101ab5eb3bdbb396c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 868 zcmV-q1DpJbP)c6-6IZFx1$CK@UQZ1qJn1(1Shn7(_lq4?P4y(H{$Y2>cVhD5Ro=I>a>m zvzgdNF56sgce|T+yX#zWB9$HZa=DlD`~J@P+;a?FU0pzuBU3`uU__#@jMSoScOVkRgIo^)IdbFBE0ix(&?Q4nKwSe z!ETg=(b3TftnQ}%#4aHmieR-wP9l-WqW%SpGO_u9T?PHW0DFbDwzfv6)7jh6(NVXZ zScVPLIOIjDgV=7ALU5v(B{+J!u3Tqirab76gG{NA$#YOtVuhq?(V28Q9F9&pNkD9D z37~cnrq?z~>ojK^UM+l59x3wWPo*C8svwhjk1V7B@eBneq+_ zf-vv*`@?uJe6SaB5=#xb-LCAGmSzbPL|KV~FR%?EZ{ROrG)*hAEbmY2;nMkhJ~|SK z#3m;vcR8LT^9#(pkzrXS9t(b0`ZRav@q@Q(?)7oE+l{Hd_|e097*JM}z_P5!Fw9Au uxT5sx;*5A=v6v2Q>!9p!f3ECr0R{kjpM-`!TlVV!0000t4HB(yf+#2`;sy!|{sCga0XrL)h04A(?04kKmS%L7&mfhc5#noVYUaD$OP%3x_-i_y zj{Y(zm`qJg879lNZCO#_hzuEsp-VEuB$P5d2GTaUg^bn z+0%XwzNZ=J?(Xiv)g3UtxJyV*rf{`HNiLVOQhx(R*_auCyGl%a1KcZkJf0>=k`A@D zwk{dV4MNQJ6v|Q!3EXa)!r%nKYVjTNZ{LR$G%qpn0~AUHGtWWQYzO4kSq2lY&*$^f zc>=P*2tea2=o@}FfLr)LilX>mV2GkISQQ4NZ-7keU`y~oeV!LPeeUM1l#;nm{0rEX zOP6~Jz)Ed)-1nq*JyDk5nYJl=f&~H|g+if|fk0rO z08H0(t@G%yp5W^*W9@Bo`HZ-x0j=8YR}`h1tgNi8Z);z-oJMAjWf9=43deCXJ32ZR z38F3@?;D3(gL+<>y%r6RyqAl3bGdh|t2FY7vzsgHCQWX)+q-w~{(~(ot33!&K+zPK z@L1Gj7P3+Vc4<|xqR|P%NdP7Hd*;<$V%VRM4 zL7oN{8XZqvzaN?y3dcqxy)Qp9=AsJDF2KXH52c){o+9J%IGswRvc0{%-#MNmXO!D{ z7BNibM>g>!@;v>RO`U9FbpFggzE8& zt1A4u_>H{JX0vbcq(0+)5^cC}1fMnHm{SbLb#YcJ{1jjS7)pvYqTc-X00000NkvXX Hu0mjfa+2!KqolXZkhhZ4d zG_6n+HAt?#L=urf^ta;4PRGVBK@7-}OwSkQ zm*~ecyC$M2!ZgkPcq(~F3+s@x5nQ_b^^Hs>^U+sdUb-R6GB!06`;!L`xpj{lC`88z zkC%waMDg~6;OxAFji!K^nVFj;-8=4+ObP9gLDJFz%d&jzlYp^)p$BBD`g#LoR*a2} zWs1e(`SJ1b!)w+Zl>M^^8iRE*Zj&Y86vgMwo}WDTCa?4R>gz4&tO<`SAv&O#=%^wDUp(bwKUtT05tk5LJ@R?jD+aF!s=M`)u4yQ1Da0s#J07OoJw9A8F z(2r{6D%9i|P*w%%PpAL5^6BmC#GpX`AFwYzpT4;R%*Wm*-?bkeNrWBpXcw=&F?;Xs z@0UxZQq4`^Gwt3$xtfMaIJ%$;g~G@Ae135o*v2C?A6`Q^lCWN!`UX9{33ha-5^mI2 zcwN`~nZCZh11C;Cf0W~izsQ4h)g?*Voy+BhmADgMYFvQd(d=Nr&zwDX0dK#a<~n9g zi-sC^zQ2WEnMfoOBHI;DrILGTn!?_AJV|ID9|)`Q&X3Djb3Q@e?x#>U?oubSIdIY< zIMKr^d}Zt9Q`EOEgTnOmXV)8zTG=(w3?0j>EBI@vf|kC5fYxJDC{sMWj_h+E!ozAL zWviPLrTC398K=ALoDO8$(Gw3i`IWvA3y&i ZzyO(_Yf}$Cr78db002ovPDHLkV1iE%&}#qy diff --git a/interface/ispconfig/interface/themes/default/icons/x16/discs_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/discs_minus.png deleted file mode 100644 index 70af40e2b92969f87e07e17d1b48b86cee61b461..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 878 zcmV-!1CjiRP)R=S0j|>0(p@E!Nk}b)LIE^Q>nMskjN1Z~ z8WlnPkY#yRlB6K1XIffXc8mYAEILirap%!yr?srON|~j~mOu)8Ui5k%KYIK$5C}ZS z8lR%1q=eiAcoU#ApffqF%g)lCx^nXTC1WC|R**$rU`1NVvb@=BF0QGmwav`T{ESAU z-aiH@lXyH%OzO^_K6a+UDA!P-Ofb~hz-TsshSz|clpups>3KCzPrIkT(CIxB6O~E@ zq9_(xOKg>)yv{ThAGv zR>M}5gVE8^3GA+$d@&`2wjUzMHGBZ*Y*=u5V~K(SQ;|u|L54o=Kszt<8vMjOlaJ z?{bO6!0mGNy{M=t-=CM4X9-2Z5ZvAbc};*kAsb9@+I`O=57(~`3~-bzC(;dY20Wyb zOgwndVzD^7&UGEDt+O9smCCHGwczI4*V7;S9t@89{9j+LuC9J)2iP*D8D#v9LfX=B z9H(Ph_7F~-DfR2(jQC@*7y-6|`w;3ont&t&Xf^K|dqZFl`nSV&Y4d^zrT?)!VbAD$lus0s@U7nMvVAyouH0FL7vhGE6%btMvm z6hitYNz#xgioD!UTCLW_=D*ZxPL;9MvZ>ahE7F%LGL#w-MBn>~Nw@8x?UB#t>q0#q z!e}(gCjmMMkTW1>`Dad(q2AT9<3N)(k+nV|32cNCa0NxN`T6ay z8>CF)@wjYKxwm2So^@KO91EmFPNe~~`MIECRUjorNTZdREW_dsr{g2ObY|H^sZ@d> z2&;5PLrGwH5Ln9!=zMUmyP~4v?48@4-7L#OBp^VMVQq=rx72_`szN;Kkx8w4@Ml)9 zgMo!G4R*V|4^4Miexj5R@Q2W}cxEDzNGJaWj8xOvfKu_Z^MJB~$z-ZDQWh?`^d0I#cD`Y0M7K^1;k;Ea| z{RR}oQy`C@hmCWfB6K?4e}Pe?0)Z7^Y;qikumrI$arpGy&znojH36F~9sd`wTQ@uU zQouCo9F*HH3fSvN=V;f5oo7yQTP|PjaERgwTm~VCD>FUQg&-h~GAO6hdCq3D4X1!f zq9i`Ndu-@s&%vpaEtF2L*WY~3^Y_~T#z`53Ac(v&O`RQyM4_&(u8d(Atfr>MkOIcd zKy2HFnY8-GBL$Z(v<(#H;rE|-lLH8Tj6@NzCSk;xVZe1F-+z9c19_=(zE8e%|N7aSQ^XAbkGrg{hBUAGq||M@&yoD?*`Aw7&fB^v85tA!SA3eAL0000^X diff --git a/interface/ispconfig/interface/themes/default/icons/x16/discs_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/discs_plus.png deleted file mode 100644 index df145aa41fe41334a430a6cbaa1d8f6ea847f047..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 917 zcmV;G18V$Q5eU+x$Ml=%(#x1 z6>T+Rjdg=AsH_;2hM`;gV9xv0~$?(ELw?96l~*pRRe{22~>=YPKc?|g#+T7JL(w+zF8%pwQ^a2)3`3|on| zMMw-%66u>|Sp%kN%62{3)YSC5c%HR{=dw41YJ(x~vZa-dY-g?srZhGx3gNc!14)t| zp_&L$US4kB1n4F}&VZcl!+dVGYxChvyY_q1dDW_=vnr+I4vJz+OG}pq0@c30zP|6N zR7(6~kTIE^owZF??`T=SZI#CgV2Lbnul9kbv=}&+1IsXB0qx9T85Zy9?HR}C_H3It zolekoy~JDYt4I_mz=jIp+WlLdH8nM-u3x>@$+9e{2_2UCR#ez^a}9W;I>ciOG6@QA zr}CcnFc44C(9zM+g}OUne^E+E%p_5_cuqQ<&LZanM!M*HK&j;EAAqt#eSLk6AP9#V z8yl-8(<2aZJ%_yHN*TpXkq8{mXK|rJO*{8d3RNag{{)59VIj*v@nR1cdZEoE7z%}g z4g&|Ra~Pm<2wr~pJcuGh39r}tUtkpJKwxzk5#IxmvcM&?Ku(lJ&Yiz?JE^Gc_`iT% zxpcWJ11#6&M!9Fqqv~0s3Tshn-))yh-+#O>ilT(uAat`RCld36jyT$&dV70Mhr{8) z3^2>I%#+7YbhV8=oZQg3k&PE7UD0TiP!y$vv_a^)DLWUq@>NxX=H})qhGDRVh6Y~- zSnJRmQ`|jOX42+V+=v&VaZ}*}e;q_)01E^H!M%I;AFQieS5HwSkPZ?s^elQp15Fr) z!O9!3^YN2}KUBf}J?l^JJ`o7F+bxfciP^QaYrP!D@rs&)m^2A9QRxq`i~V;#k3>eN zBSYg~SwC0QbMuw(X=r=`3`-zlv6v&7OlsZT-EoFxi2MRK>!fH}{i(^%hF|v`Ydv#! z=7oG-xhI{3HIA+1a=Iwd|6>BRSp_)OZg=ZJ;%J)YDT-Q-CayU1>!KO?qG{Sk^imUO rpMX8o5lCB=Kw<*YE?7jvF98Ms4$7B-H6Ks*00000NkvXXu0mjfgu1Gj diff --git a/interface/ispconfig/interface/themes/default/icons/x16/disk.png b/interface/ispconfig/interface/themes/default/icons/x16/disk.png deleted file mode 100644 index a039b9930eb7fc878809df3b58ec65a1ba04f439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 507 zcmVJNRCwB?Q!z`!KoowtTqGTeZWf0i ztvb8ZMIpb!!NEZ~b#ZXg$%$TgODB;o+fF!2f$s~%8wJPhnbbB`8f3R zV^9>mH`rL*&uIq;0nb7y1zr$<9|S!GOd)`=#1o-_&M5*SDvD;a*;Bx>EMP40MAU)l zc^)X=hejU(BnONoo~Z=_^tFIbWOmR`K#&8*5-$`89q{IRMZwUh-BW-uTA=M9dW6!+ z<3PQS#bS{oz}FE9g#!F`u?)lLtXjYQ+a{CS($ANOWtcyrI z8Fe7pfs_(zwFcyK*P1w!O?E8vHy*Zahc)n90zP;;iJ4T8$klQ%_04_?F;54{xeR8Jlh?4j5qdawr-OcfNh2SuSERHKMsgGvo* zghC1F6P3`kN!Yx%>+U8EFR>OK7?|Ci|J&Kw@%52W06r))?#8f|Jzv~=-RJY|6he%3 z+@DF#?dt@spAATlOaHniffWy&IJ9+h@?S`!QmV(=S_h3j3BY!#FrwlsmDZB?!EpA zSbd4eqg$yn5}@z&b17uftJP`~pmWj2)ScSPO64-RX(F~Gjt3VfzgOBrV=EO9$8o@1 z7nK&k(7`Q@_{eYy%UyBIk3T_d#{Piy!6fCv)c{wDRRyg8ubCTz_%!(thoc5EnU7hu zM|r&h1z65Atc!&H3b=H77ntq9epPP-pfia-a0vQQTojR15M<3Jp-iLv z$;l>lY<};1^KSRtanu1@bS@wFa_;%g-#u45V{`-1KoWSc8UK=2?}>J~wMY!yI@*1w zpcPo1KxjN?@j_ZOuPATjheoZ}wRat|!_CBn) zs*%n=fzE73Ts5@8Gyzr;n`+ZlGG>sHqoo|AW;jfbXBqKt_pxz90$x1^pP54HcUbK{Gl|+A zMum*kp&CIMPzhswlO^3x=r$&hlc%yJ&7gz_x~^kxc4E=07Fp(ErG#iS3L#cM;16tmaf0 zB@Sq2B+pcn_)6SEOpM*^4);8Z&&(}wE|f7rhyseb)egAGSj45y1SBf!(cD~%-5o=$ z_w`yID&(9#Q1U-8^Z7mcFO!1`^)~V)@P9(h%l;K$05v#1XFeo@4*&oF07*qoM6N<$ Ef)FxBa{vGU diff --git a/interface/ispconfig/interface/themes/default/icons/x16/disk__minus.png b/interface/ispconfig/interface/themes/default/icons/x16/disk__minus.png deleted file mode 100644 index 244ee5f13925acdba38f0d94528df1f1ffe2db50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 576 zcmV-G0>Axk7RCwB?Q_o8qK@|RWcTzV8v7QV) zETYwuLW)=@S^|Q%UVHFZa*%*X>B*k@ADCJMp%-avDd@E~Ptx|5kW&v*wYHK*#ikyt zrjwl+-<$kkC26sA;O+d__kHi%@69^K82rx=Y4MyUCqs{c;O(u?*8zQ-`94I`-n4qW zBI@tyXIz@RCWa7K?W6I1YYS6i)UJj(woeRN#eS2&ojR9SH7a zv#qt?)rGxW1xuON8@*<8PH3Ynfg&&~=tK}5ZY&1QC7kyIQxLkLfDeC_C2sWjey^qJ^fnWum=V4-gu&om@ z`tFY}b`b;tN~IDwmvADgK(GQK1kTQ?*joH#fp;?lEy?`OcER@>9;iBjLTHP)u4|Ld z&m|IxgiYqPy{E>zLcn*1a53AJ_vQ@_&CYW6>C4TNa^+M?W0N_IsYmlHN+8WeH)GkE zfa2yL#>e}SOmB(R51mX*g^wnq`%{#+3wZa833`~AJMoWyGMiVu6kq^D;ObNKT($84 O0000##=nynDI$U=e`*oESeq0n;6Ei zMqlhGV?$iPqBTj^br_Zf)3R12|M(g~>dhs1_jX|DL;}UUD={spPbCI1B#RSujzX#Q z7qXe>NX9P0)zyK~CogfhvmF~sP4hE0A1V%H!!V$mrXbYD()S5`es={2_POxraTL3I z&S80c58pH?3+om$!6BQRywX7~o5ZKLVL^T{5UVrbhEKsMWiET%6F@ z$NE-ucW*;y-d<1x9t)D O0000yjJc!k!QV?&p2Q3y4Jt-b49<(4>tb*8sf>JFNauS3JO4Z(sNf8CH zUep+CV@aXbIN6=?&7=t_S&Ke+?EHD(Z@zguMz1vjz<>(p!4|9+7v$+%^y#2X_8vcf z^7hz8u+_bO%4W(B>j5?v?Ssb-A8nktn`oeEn(`)-dP}yRz1KImwa13^5uTbEMDj-( z+cq>}$y-8GxFI?@d~Jw|+X*04jmbHOD+D|tY5=dkzD9UoM2~ZB4)xs;)FTpomU!Ah z0DYz@NXRLR#bOO$m%Rh&saZXC_Ztui51$ske8*;yEIY7V*9G@H6np@e_gvE7?ukQK zq$`9AHjWGrJe)o7e1Hk*X@Ey!<-iY6j_q}Acz6E|T7S2Jbk@$PE-9)FhwvSg3$1$C{SoM8T@;t8tFi?T6>l6fGXAr#>= zO%IF~02LU9LECLcv)NQ_u2#XJWPF1x%W8Vi0+i6 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/disk_small.png b/interface/ispconfig/interface/themes/default/icons/x16/disk_small.png deleted file mode 100644 index 911f8c70f2df51c49db8346985254f28d5bd12e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 380 zcmV-?0fYXDP)bK;j^IykYQ{;V&ylp{}==X z1%Uo$VgRvW1_0$b@Ot6*|DW~08GcR-5BKZ_3#^BTJN-?u0EYzw(_?f47>9mdpx6L_ a00RK6ZKoAsf~DsG0000| zP*t$)bqRR~=#DTZKorGbSxX4RsI+MZ_=U=RAK>o${yB~XXqtv|D?qjcm~;V5zRK9< w6xANvzQ{#5&f;aBu-^Cx_|Jb~FyJY`05*+@`FM5jQvd(}07*qoM6N<$f*O;G=Kufz diff --git a/interface/ispconfig/interface/themes/default/icons/x16/disks.png b/interface/ispconfig/interface/themes/default/icons/x16/disks.png deleted file mode 100644 index fc33338810a782f18ba35885df601edca3ee1a8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 622 zcmV-!0+IcRP) z*l0+SsGvj}A;^VeoBo1=T-ZWgSh&%Zn_P$s-NXcK3RhYL3Au`_Fltk7Mi(xGltx9z zKqJRtp6|{3aXsgbGd$-ecrSCLp_ z@|&G)KncHGM8TG^xxvxa2T|ahOPdu%fekkYQ++ef)KW4&UWXFp8M18~Y|jI;P>_Q1 zRHweOfZl!u8pf{*Cm12ub>RdfXIWBEp6Wa(P!!Rj;b}ei++);moUs8kO$y3Wo%)D@ z0EQueg*$YpeQ4a=(lYSt)3y-ae|G@U+6c7VZY&=b4u{bz3ZM-c*!>D%H92@S@dl36 zKjNPvkw}1t0_tUf#cxHSd!!8*n$~q49LGTiuEv7EECf_JsF~{dyam~;i3l`^L?T57 z;At!ftSYWa0wrLsnJZTjnz#k<}>S1JDw z_V*Zppc7K5l=SL?z+$|9-Syn$7kHTrv{;NlkOP8qXZVJ&ON0J@zDNtpR97M7^r(+A z-~8Egho}UCKB$o(eVAB*!^7-G_7%@Ci#p}qx zzVp|HxOz}vg?~&RD}UcxpYyTFrJ)}pyHG4v06V}%5;zrL00&7^pA&a0lmGw#07*qo IM6N<$f(N7+RR910 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/disks__arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/disks__arrow.png deleted file mode 100644 index 29baaa33ae6ad3849034394dea5cd12bfba26927..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 731 zcmV<10wn#3P)bX#fTuNO)!#3{d4fO$Imu)mBTbm+hLC55ZBYVc%u$0IFf?x~E zQ=R&Vfd!0(1x(r^!h6Ki@>NJ+?Af#>oP0Qsa<2=)_L{-%z8$Vo4xb2> z^@*Ii6i`3#1cDq8oLy%EmR%aOe|K#P*|s|D>8!(88lDEd!=tg<&`;n%*N)c5x3dxY z1?$HN4ncZ-=@WLIZm?`qu4Lp321X~4oJ%dt^ZCh^eW6hG)_U|`eH!B&j;K>Y89u+5 zl|72v=WVT!vJ)EIo6BGr4ycm`Lb8m5em|zJ47{3dRyMfycUFyFe-P6(Ey^zF=h)?; zAlKd&!1l!xOo;}9=qaJ7H*2EUnX7_4Iwvco}c@Uub)K%K@OtPsOi@ctlIi%bnlj6wPyH8B!Zil zT|%Izl!Cz}Xyw-LoCZA5$2AdIl+V3W~e2r7JWa zp1jXJ;RysaNbG~8(^-rU#gIy+jlIp0V9?gURn5S{r*PolHB^fk#zJ*TRwc;Z>Jnrq zn0~fob2QlNoO^2J>|6o%oeG1*Ls)+Zf5#f^HLFY@k4qO%0O~tfggkS|TfQx4Y#e)h zub1l#wjwm}Lb&^?lEJxNZ@<&CVxv7T7IX5p^pb^ri_JREBlb&x0RX>TSLJeJ&3^y@ N002ovPDHLkV1f?RO$aF@+_@*Zuh( z`sC!r4J1*i7fG=D?49FhdiKTO`+jJ%BuSWZi@0>?*40QYnH*{(iTaG%whi0!V3y0F z;5^s4uP&f&T!!|c6~YNc)OB6_r6^ifC^*k`KPXTYQPF;GB`UrrbHhU31{5U}oaZ|C zF#`dNLIBe?sYndOH_s?}e0=^z2+uy4LoA`AduwO?Fiq3QD+!Q|FtEK1z*>t)pTCPg zk)LACkxHfDkwD~sfhGH5*m-(AWHPO)Djdfl2d*LqfmsBoad0!&OC<~Q^ClrspzC^- z0X#(x0&7YtA%Pk&*QvlXD?)(p?~${zZ#Bydg6({I_mNv4W)SRv;cP#(M%d-S>xmoF!t$?~ zH#m5>KThd*@PONyjKfzD7w1NX^zzC(Y#UrBY}bI5SM}mT=4qh`g2g5MXwWS|VM*ZuyRkA4r(PuF7pp8x{@rp-yZ35+1*00000NkvXXu0mjf Dyv{N@ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/disks__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/disks__pencil.png deleted file mode 100644 index 3d18e9f3103fa71dcc5a08b3b8c78c7b79460501..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 713 zcmV;)0yh1LP)VHkeS*_LO;(urn^ z6&PA5{agg)5*l^UMcou66p|NFkP<;b=uJ`C7Xo57;go+lM z$=F77+L>;iv$M0)`<>++9t7WyhwnS@&-1?Db3X2j=?*kng~owvrfut%XPf+3!KO}y zt7!|E{}&KNHXkIys^9V1Y0vNd_=Ki))1hIT8Vms~eHkR5MFRgk`{DF@X75 zoaHeMbioL^VAfgzr6=t>CM{w7eDhl;j`YW1D_x7Kz0Q0ytJO-g5&?~26zs$@!HVbb zu;VHI@=^Vp!R>ZKB?5l6f>rFY;lQPBFw@W#$q;N0&Y=?Do#sNpBob)334);CH<^?m ziYX}k0^-~ZYL2^5^Y#92ezk&Slq}@L7-rQdn)^F&V`Lg$)CJ8<2t`rwYaq1JqtgY8 zMg{|u6GPm!uGY%>%}1uJV)+cU95XW^SO=faXLxmsg4G`q;5s^CZER_E^xXA$%eM2k zhCZnylp@gt84H_$iQ~FZsgKKyeGlIYVttt(qWTey7n>ZtJ)RF~S?lD0w~I~aFQ^uF zu+V*(NUu6ZF+DBn=OQ77V&_X7Jhl(r*L!30^IB&%yHu<<3Tj^ly4$36dk)v`Po+xi zc6$jFg{SM#lU_57hL$Jj>uSP}_jSQO{|jHPOkE-v)m{e^TzpU(N|xMwciyXepXY*f vohzTmy>T(HGZOlveIu8hFk3jmKLG{+=J{-dpRUVG00000NkvXXu0mjf`~pJJ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/disks__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/disks__plus.png deleted file mode 100644 index 2f8fe8de1052207b3a3c4ab9d687b620b13154a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 718 zcmV;<0x|uGP)Q5eVnvpdu7>_y!T z9W4o})h@^eUFkw12tm+WMLiUeK2-ElPeQar_~46C(L=Yl2w@9*38Kqt^pFOPAc+ra zt(CQFXy{&@ab|Wp-{>xjgU~sA9M1QB=YRg^#|(Ggc^f91m4gF!ku94x^sSq~D&yzr zWD{Ew{PF=NQ7jjkV5sX!=hdbYewe0dJIrw$CiEd$@4FiS6 zMO#pw>eN>jaBp*=AyQ{KVd2zu9Sbb7ied}OQ{Ai-SQ2rg;d(uaromG~CaD5~U<=Aq zo%)D@1&oCSOx*59@Km7XyO2cu^$$xp6`g@U=s{?2WBD>s6q#2hz--uo9bW;gI*W%l zpJLuIZS5&qTU%i;0muIWlfr%+zS0bynRdI~&@_!X&;`B{n8E<99Mnwpd|p91U0?_V zcs!mZ1~3G^64)9^unCla=~@xJnfr(znnXwm;o3q3i>Bh`2?W{s`s~+gADsnkI5zwx zb~IMkdA399d-Ocl({*Qb4yoTffuI{?S+;$3C16ACAMmMrpb;K(Ds7~td|*ED_CeH- zxGwSpf*cT>{g*ddc4^Rl=-#CD=5cild(Q0)uykNnpGDiTwlMV!_776x-+tvyzNR~N;iIMe zVu?YU(Q%-}g8`eth?+}I$93?W%mP^N!ao590Hva5K(fr0s{jB107*qoM6N<$f=Reb AQ2+n{ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/disks_black.png b/interface/ispconfig/interface/themes/default/icons/x16/disks_black.png deleted file mode 100644 index 31a1b00bb65b7710bfbc7587f6211560cea74c79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcmV+n0`vWeP)r@S!IAI4K#We};K0NHF)5Um*7q)4bF?Ml zl7AZRJ%0D@my;w(f{<0g9F=>$0qj^6T|dLmClDYcZ?#&@bzIk7J5C_9Pj%{(Ik8wS ziw8tZ(*$$924l4fg!ZXUeI6j0N{Nt&ZQHQG{4JM(&_30-06vI94d3H2fT{*U`x}6w zaABAMhn(heNjZ^#*M6UY-@9GVGz~JDjCWWp7V`kd)oL|&S14Sd8&@WdM0!Vd-=l+U-X?Qh{hR3YKLNKvhIxOBCc^)XeG&6XtUR6{rx8$GHPl z-dC7yJ75?N1JM1~I2m5)fF@9Aoaa_+*P~;97>$O%x_;h6*riY!D|~|Ca0pzYC{PeK z!M-Mbn?lQy04hyDavF^XemC~JRJvg!Z-hAroA?hQ2P(6HjU=g9yn^X;9x9AawFN-p zQ>WAUn$2bll0*;2vgA-<7%gy33_Y(C%q@=nA{KqZJ}}pqAF=0OfB^skYb}zpRtS^; O0000O%0mbnur5r?21iRf%ZSXjb^`YCS)tW*|2yrjORbr7Y9F0cs z((m8WU6`L*#E7PoU@{Cr3ISrXfprjo@B6S?tA(QwL84?{ zsIf9Y<{)jsjK2`N1T_W#2c`k41;zlfmpOpg1P~$@0I7olh>d5ah6}?1*;8{+6U~R% zn8I|h2S^-{>==YvI1V5O_*6v@Qtkof!y%lz?!JQp2RCwBalh11tK@`WoJDd6=HHguQ zR*INni`5pQXhA#_rJ)xO1}ZK12Y8ZFdhj3!p1f&6A(wixm|l94AXo%1B53ho4h4&C z&`P723fXj%-JKoZTeCkfArIaR%*^||@4T6(-CtS)o2F^kX*!P1_C`v%?l=yVQr<$$ zbzOh6_wM9m&XN)~t=Tk7I^-WLl}dPBEZ*i^dgF%bY2%m;W^5CRBa zrUjxiz_Qu`5Gd#X(P=Ll6SE=;Se{o0ucEDxg-;H?{;^TnKQc-m>Z#LcKro=`K@I$3 z@^$=|VPD%eF?#VZcJ$QP&c2abKlL+h6wp)gVb0A;9%EW%gMs*X z=x#2THysBSy|XAgv`K8NR;zfqzJ80JMe$9D7^jKgFvqgsm?q4f9rSxWbh};Xy6)u% z3k!MLcY$;#1VHA(;gUF-(NhV9My5HOz?!Dv>FO#@r_=ezOG~%u%cETYo#@*kG4n9^ z2a?TZy>jC5I6l_vecyow)M)5YpFP zLyb)$5>_Zr;F$VpRvu{J@i$=TAPA8#fZkj|GIbbNuRTX1k-^F2=QB4>J(MZ-a4-hx z{eBCX`si9eQ79C!-QGkxnLcPcIB(GaS+i1sX&5|44txmEsudB5tN5|ChLsn0&@#Rt zkx5R_KyoxdiG3&*Q7@O#ZnxR+XYe7NU+<|=-|0?lAk130cxe$)Sw||-SCvTYEJ4n3 zQFNnJ$}}5|P~ea9>aTr$g8hjt>|+hYlpd9H&&x5Ti^=Kaal^z-eo&g<#OTb-98=X) xaQ@flHZLDJusuC~rc`-MWUyDCidS1)`hB3JSe+>=FdtQwTgL1)@|SfsndtyE{8Q&$i=k zt4R;c&d$v9|IL5iq?3FeC?rWrVYLjCvMezeK2E2zI%8m9pMf>Q zB#~IJ*Wtcg-lw^+JPVObG*Jk~3_-7My9p>9AZ6fC;qV69N_0UQS;`wK!#Ai(y`4J_j28g+n2<%c|FGVoa}iX=!? zt4Fh%wug7Ls5WagSO|xIJMcl?OC{KeMqL}5n-Tm*F0ZaYeZ0Me^<)y}Lm^qrKtEo{ zbUY3h!U4UDO67IB*K4ZifcoaJEUhFGhujkg;LNf(ULKAQi{m5X1JmSR*rr_4kQN~@ sLyeC{qaBFHkKrF-XnBM{n0R9#Otj}G~Pyhe`07*qoM6N<$g7W_GlmGw# diff --git a/interface/ispconfig/interface/themes/default/icons/x16/document__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/document__pencil.png deleted file mode 100644 index 746f4cd39758c3e9763100998dc44d728993e474..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 684 zcmV;d0#p5oP)Gs$Aa2XAMXec#Xf&RfgrKR}BLiooTchR3r+E#Uj=+nY+9fWlo4BP7}#thNi(#Rj7)BgGK|gETdkp zTkDgFi8$2_lkThlxVW$t4vv=S>2^9hra7Fz)oK+l5(%95`QkHkbNA>?><@rCw(XEu zvM}g^gu`L$I$p0A?@OhFwgb)Xzy|miL~qTDG*;07IdW+o2kk4^<8KIWLK?@N*;yRQ zN-Au+{e_y!i{TzKO&8r@u6tkai0NsI;N% zIIubSRe6g-dKwo8FJO5kh5pDRRLoO(e<+04em|s*#YL3zdDLn(sb!-LX;kyr{_qq- zg9AvctRr;g0Zs<4TD4rmwLCnONBc%b?lW7Ml&QpH#^fwpdN$0qvujMzb=EXZ#%sBT zYk4Cd{}VmIU_|Qa>9tQ?-rStJb=|Y|seUZ^tY5U{100RJ4O+N4C S`f(iq0000Ri diff --git a/interface/ispconfig/interface/themes/default/icons/x16/document__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/document__plus.png deleted file mode 100644 index 9dc52b734e11255d529a599fd8d932dfb0f22775..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 607 zcmV-l0-*hgP)T6J zd44{@g@8kS4%LDt`4e-w95xRQp6RuyeD_7Rrujv~gyTSP4qmO|`tlN$N(JR|+0?HW z77{e?G3g%q0H%drSQ>59_f{xWH?83WE|p67u(5%`uCB!D`uYnRd2<7x6>D}#Y#R)k zAn|zIY$qHJBV8z5*Bm%O2LV7Ui0kExG*%r@cTn3xFd89x5z+(zlrSG)wqV;p{bZUT zAr0WXB>*)CZ6F~U3u+h-IMDV?9!y4?AxmFgB6D$wVqfKH_tm|(uHX#-&w-Y;f@F%H zF*-hq_rH>{!rfy?x@^r3=%^YY&vzEFSIkgD;ar?U{S}Z*>{2t$PO@1;D`}&i! z>Ir2%t@}Et^!86rFRDNgKnW=oT^>abOVJ}!!|x_kG&`u+O5}&uXf319ZQVG{=P$w| tBg^gHa&;g-CwHzM;Ez1?0Pa5l1^{%S7(Pn&XP*E7002ovPDHLkV1j=71z-RG diff --git a/interface/ispconfig/interface/themes/default/icons/x16/document_horizontal.png b/interface/ispconfig/interface/themes/default/icons/x16/document_horizontal.png deleted file mode 100644 index 8568a9e686cbfa5a6f7512cbba56bfbc8d6df2f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435 zcmV;k0ZjghP);xs-)&ifq{;YhI-OTl1ze1ylGs<|OXr}Zb)L7SW?2T$ ztJN({k?c(n1#1d)9B8dKCRc36fYBPhwp&n2K~WUmKg?!xin%1{xiAzY5J3pB_rEL* z0yqvsIFb@1?IW$_c@9s@C0vX~k1uI@C3nUkYvBZ2FUh~LG)d`qVA d(C7RuzyOMu&tU5^tr7qL002ovPDHLkV1oHtwf6u3 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/document_horizontal_text.png b/interface/ispconfig/interface/themes/default/icons/x16/document_horizontal_text.png deleted file mode 100644 index 1d77d0c434e464a64b831581e4bc53a89676f6d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 535 zcmV+y0_gpTP)uGSK#v6?NUCUmjJW_e>@&j zxm+gA^!G|7B4*cYHl>|hE=O;Jfw6y#Q9!QMYI0C47R3Ste#GrLJ3GQe1TFF&1i3K) zFZ%tyB!B^u0OGo?u)rExC=|rb=W}W_8Zm$|MuS1MS{2k4gB1wYPC89aCLk(H&`g#G39l6S_*RQnW9Q@}WM4tBv`n#+S{>6s*0jsCB{m#Dv Z3;+%h8*A#re5U{a002ovPDHLkV1h!|?(6^n diff --git a/interface/ispconfig/interface/themes/default/icons/x16/document_music.png b/interface/ispconfig/interface/themes/default/icons/x16/document_music.png deleted file mode 100644 index d5d5cb9b6cbaff6b33b0ee501f813f4acba54705..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 zcmV-)0*n2LP)BV<_kHudZ?occwF(X)#6v12TpXW_F^w<`5y!DTP*D`Q=FG~{ zQbiksfX)J{hKAf=v)RPQdi^QiMY-cZlG$7`nF#_It)WLF91n*W3!{21XD|T`kpry&E!Pf?RN2gdmD3wLS=1p^96NQPYLM8R1SfqrNKWW<#O4s zlh5bzZGZnb#RSw$l6({?iBt0O`xJU62PGvNZ9zQia55kTNv11glVknY6~xj{NqE-b zR6vF~4=jj=Fn%*=waBB1Hs0weJf4r?F@e@%yaExpOcfA`Q_yIHc>AD$jn4v;z7L;z zS&Y&d1uW0{V5v`)lxA|!(FixM=g1QSk9^S?1!oBo1-wB0FvgEVpm;Sz{g1?}yV~}6 zh4Tqm0lg|7d{*5->DD#0n=RabG>eGNqgdEAvjp;BcNhBPgfmsZ^@jHwUuqxlWL}-| zgp+3(!&vooYYVp*7jd~*l!*-MLG}3^@K+GI?;-Jo$$Pz?9CSMPS*zLEOY~#0t^6vmnCqS7FRw1 O0000D#hY$L2x|?9(ocF9!kMKpz1*oFBQQGFexg_$T_h$voHKq`!6;JPjXs`AMliaDMqXqwwiJYQYK#K1uL$>QQY%AXekj1ppj zoxQf$l~Z?i@4=jr!>zo9iP4fE;Y6j&lo+?*bp=ou&VUmIQSW?&0laEuap!CkQplib z8qzfiM~(@MT0305x$4WiEyM1o;7(yv3KURTWZb^O}j7ayaaeu{8Epm9m79ZVB0Nw sYwJBt>s%m9-pAX){~7;8)*k@|0LOG@6S{?1rvLx|07*qoM6N<$g05LEDF6Tf diff --git a/interface/ispconfig/interface/themes/default/icons/x16/document_shred.png b/interface/ispconfig/interface/themes/default/icons/x16/document_shred.png deleted file mode 100644 index d59f80ebfd477e2eb40a94ac39780e9515c485e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 634 zcmV-=0)_pFP)3MH#NJ{9Hj*orMd7t~0Tf1T-3r#KhX_DydNvB@K^X zFE1B7-=`tZ1sqY_Xcz|Vo}RwMIvm<0RR%GMQ5aId0MB*lPrpx&}S!vJ{(B%jZV zeP=Qm`q5|%rX2Va4g`e7#H-G70toj@(|}tCQsRK_fe-+`{|{g|ygdVcC{kRX0Rf!* zrvNelNuYA&IJy!$!FG}}aa~tWjR7|y07HI>L)=2!Gz|!?>uVk2E87;iYgtB0QAA&& zxdTAsv8Gj#o2GfGjDeQ`mTNUJ|6c&M@a^cR4kyRe>N$ibnsyH1_fn~j`dxtMQ5=K5 z>sr6tZ4ZL42L}f7{^6kkC(TaB8*m+ciADf+H#VrD>(uM@^iRd&7tS(P`ehh66smEC z6U=|!+e2MPKXl?60XZuc)9Hl;{q4oYwwg{al`569Rp9HN|U74SM*e{n);;V{Ae*I$j^Y0(Sg9i^7c3ilS z0Sqffp!98mUI5y{$OzQ<4`{%TZ{HZceEGuA8WS_)=g*(cKtoiCF@TAMk&%I&g@u8O zjg8^myLSvrw{2rEl9HN!~gKn;L96=*0(j-UbGzI$b>({i0000 zwaMRrWsOCHoQa#wCY@Yd(AvyQ;rR4)k57(%2)N@&4ufy*@1^W$G)lc*k5)1nNs`Ou zDY-y502kOi5cyEW0ptY18+VK)lM@P* zTy$Mz1!S5;!zYB%&exYDc(2t++@7D)>gFa*$Kxh8H}d%(58ynnk>$aV1jtsaWp?Uy zdc3@pXHz^$yuH3!+FiKbl-(@O2*KtFA;{v4T3~<`{0VU+>XphzIG^9Ae+<9d{Qw64 c=eGa@0P}xG-IiDqfdBvi07*qoM6N<$g4v4+L;wH) diff --git a/interface/ispconfig/interface/themes/default/icons/x16/document_text_image.png b/interface/ispconfig/interface/themes/default/icons/x16/document_text_image.png deleted file mode 100644 index 1cd9e9849c4af85bbda703572b4878798d9e6bac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 646 zcmV;10(t$3P)Q4s$2M@$hzl0s9B z6by+XtvQ7Bs-P(J;<3fT)^)2(Cv0%S(fBCD=Q_c zdq%kXioj&xXlYEX(;hL5v1leI;%2jnPvtTerl(8qH#T0;mv>hLbYmcgz+ZQFMRp>Q zK)>I|!(2{C3Wb84$6_&jKRK}j1#VaY5#$KKt#ENNnZ#5iGNFVQVYD&9Sb?-qsZ`|l zMx!AlMJmCpBVFeQev^`ol zz|S8y;6^&InhqXkG*qiqM59rOd$Y6G5D>-MTMPX5{E>N_l>+vFkrM>x)L$~44itRZ z+mn7!6#xJL diff --git a/interface/ispconfig/interface/themes/default/icons/x16/document_zipper.png b/interface/ispconfig/interface/themes/default/icons/x16/document_zipper.png deleted file mode 100644 index 64c85052347be53ecef2cda5da30df177b76998b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 643 zcmV-}0(||6P)rNc+hUQ;oHFhyhc7>+O$ z0PO%(;B_X$d(~=nBv=!lMLCueaX|Js2mEnze9Yukyhwg@{Mg@zR=p10Zdd4A#|~;WcCcA0f&O>2IAMuHT&i*GXD{aFKB`DzaLTrA zRV)^jE2YAhOx=5)8u-23{=MC$(R?CIF->@7Sh|L(5y=koFt dzy5v@U;q_qDpVFk5I6t;002ovPDHLkV1mgW8$JL4 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/documents.png b/interface/ispconfig/interface/themes/default/icons/x16/documents.png deleted file mode 100644 index f6cc0418f2635d72ef3a8077395733f7380fc7dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 600 zcmV-e0;m0nP)4 z^j7Fa=rz!T9&(o+h2RJ9D7}c6g7^VS4?;db3pq*;9(wR5QlvfPR;$L9nwB6bkzF?X zC!79$vl+9dB?E6}nVI)_pLw%uy=^wdvMe2GnhFP=*D+P(|KoU=Bo}d#$Y?YYmEW-e zNw9&jw7apW}-kJtd%jw70mgkc;@8buNXf%v{Jp6AJa zz23ln4X0l)#TcwZr!v+T$8lC$*VmGu`qJW}JS`UWpy`VpJr6RNF>RVPYV80-^HW!NI4^?d=n@oqFEA*X=%6zpt)jzEaV( zc?Et>(-14`{@4E5*@vkQE3m&E9xhPFyvDpIgSw0Ydce8Y@B2(ZbaL^BiSxJT=l2WM m>W<79RL1m-N%{4^0t^7)VH=1|!ORZ;0000_YP)9OHlD9YtrbtexCm)g|oy)JS!JzEnKmhwa9y_RBujBdRA`-!1 z=3zE_gQo7wCItOkzmkrv>rfkDcB8R$=vM6AKNHw8MqoB*+T&X zTngL}2J@+`RR1D*HjJ0=Dror5jM9ySOj3GRs8@oWatCrR_Zx*x4GqPEKec6ar(4cv_I?YPoJk&i^<-&IUSD0sfl$cK z%_Z=2azi4GP2^q_u~J^IY%6*#acTT?I1$CO^y|E(HXeze7ZwgyD;3$f##}GEOpRl| zGjj@W=92JN=hKpDS<0~}a_Q`+R!hB0kMSudj`(A-Nzvy!gaKwYo7=6x<%`1M*a=GX iz~lAK?~@Gt6JP+Dz(1na(HA-Z0000lCdRO^I6A0XH{)Q^*pM_vF=5b26GLRc7)c;Njhv*G zgFuh=^{#h*@4-QB2rv2a?(V(!`+o0x_mr7j4vM14a9tOo(eoH}-8j8{Y&g!U?Kto} z4_fmGBZxx-)Ox1J$FucD1DwJpuz(kfMa(ZPO^F;7D{{?$YyvP2j@Z&Dgan9vX};yBbJh;QO6D;|f=zoBpNKKR}jP=3^EHH88isT^;?H$aQY z!S+1j@m>T28baX&s^+It3507iMQq4E+1h3}Hmw*({)~BLrh-0q@^ELYXgP z-!TqGdY04NEL~(oixOMv}LfSsM;&aD>m3=!J(2iAM>>6jMI!Om zdpmh$^=^Ncl{&nsp3|<|yL1rz`1Ud^{u5vTmElBqy*RP900000NkvXXu0mjf;|)lZ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/documents_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/documents_minus.png deleted file mode 100644 index 84a27e22e2c87ea65e971ae13e2f6692fdcd261b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 629 zcmV-*0*d{KP)%gxPhl%^EIV}Kd%I1YUn44!fh_;W zI$f+c5q*cZXaz0EsVVtnS=OV$=_w`1zPhqP*GnZCG#-!X{oWqkuU5Nn`~7G5^u`tl zS|s^wG@_f;s)RgfG$@3+a=A>O9Vd__u-rwGAJ^;j^ZcAVe7jaCP|3Dsufi}i;AF?x zG*J%e@S=UyS1p-sI2=;D*_<>ReTo2(J&2K!0ZcVb^b|@oBro~f@$obP$AuceG9&;G z4xl-R{=HnHPGDgSf?xuO6u`(Sn1`@rZnjRq$+QBK74VBJK|!qC$dDrDLMgD+sr7x| zxVOJgHl(N{q)L$3StVb$w#Y;9r%Gj7)|11-7nLBWPkW&6gEcMu3iA8lfLa?Hvo~UG z?bf^9-G}y{lM`C1)nslifv?j%q`1CLuX?>-h0DuPo`DX1;c@wHyZt;<~K#%AzLvE|@{{$ESLcA`**I?-9 P00000NkvXXu0mjfi(Dik diff --git a/interface/ispconfig/interface/themes/default/icons/x16/documents_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/documents_pencil.png deleted file mode 100644 index e598c3b6aa4c285ab00107f42cbf22f3f27b0b1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 724 zcmV;_0xSKAP)Va1_VCO|lj3L>)cY zd5{T$8@S=WX%8yvVW6(`;9)W^JIQuc7yUi2QAahp&i{A zvrXd=HLVr9gf>l@_l}OVn(}+^ec$K30L9n9=_rJ$%^M;#I@= ztQ!U_%Yx7x;Yh@w09nVCp`l2nT7^cglQ0vPBni{WqfG)F&%;)yf~u~= ztW;1bm7uCB6h*;};o%6y1C+gwl{f@J!tvGd!SnoyWHt+fx_7jJc-3{ z!0V0Ni$*WeQCKi3X*1-n`8;-ey|#$IuMZm0c|0Dxlccge0>j-5`DAxDzQ{6EI@{9H z0=FR8yV5kxMGiryq8d4&leY?g_v#=s6GaiBK%lm4+EaxDj>h98KpmL?Q{_0?DUmoL z&B)8?bfbYWH;2)1_@XJxDUM+<9QHc+x`>n5jLb%4v7a=~r&J2Z#>RSbz;%I88Y4Ia zSVzK;*|L?~TO>agF*q`Upx^)coMqh9=+gU5R@@n{u4Iy>Lb z^ZYbdE|)>hN^2uDjp01i+#BfM9^>$#Uc8u^LGW}B)=X2LTwO(jz_|~6gjUuD_bB@t$p6 zT?1TO+ke5|v$MC(pYbd#s=E@R-1=c{Y3U^$XPR^V2rvMOg0!a7mcO>-9Qb8^%rULGe}A?9(OzRns8Vslaz#1daoz-A1d` zf@N8FxUf*9^#Wy|;*ywPj&QOOJ~U06H8wZlQTMUYQ5@BEnbd4Hv9z*+$xNpBq*S^? zpB{^Vk_I7fnI?{BGE(GHJ`bDdlF1~>^?FBcfpG^RU(V(5eP;(P`gSCdfG&je%C>EV z0>Y)DE;*r742l1~#>hNswHmG#3SG0wCx-;22QGDF0ajI2@{~wok$&Va>+8J+oM*=Z zj3EW+!3j7Z68~P_V%$KZxzp)%1)NAg=_5EO!pLm)ZDSFYKL)1LQ$!%o0#qho9Jz%^ zMC+SbWQgARuY58MoI5{_%I{UQ+ihj-*hdILiH=aT1u46q*-FeM-bl!?GO^cL9Hw=kNj*jM0||7BZna4I1=Q+vnx+=^8Lj} z=!9X@Zvsx}BE%Ugxxt00t!i~|B%i;J0VA-iJ-}XTY*#%9h1?_Ntd4&I3;>)wH>09j RAe#UH002ovPDHLkV1nxvJkkIF diff --git a/interface/ispconfig/interface/themes/default/icons/x16/documents_stack.png b/interface/ispconfig/interface/themes/default/icons/x16/documents_stack.png deleted file mode 100644 index 54eac65389d35627ddf757766f4d8e6188ea8fd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 592 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 LNkvXXu0mjf$?*mP diff --git a/interface/ispconfig/interface/themes/default/icons/x16/door_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/door_pencil.png deleted file mode 100644 index dd520baf66f05b09f1e2620d94e5ac072354b3e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 681 zcmV;a0#^NrP)Lk=RIyy?ZFAQTY_5=9Ss@E{1HC^^_e=*5#Dg&YJ0 z(PA57Vr;Vc*-g5;u%^W zF+H0~$g+%JFo-}P0KRt|2bN`_)oQ_YT`a$N(#NLIU2nD9ZDg}qkH9p|e{3?Dgg>4y z*`W&ox9in)eMigv{&)_>@iFptL!pqDz-T7FH4MY^`{O6qB_eS83HaQ+(sl?vM11nI z1lOPuY+@7;fxK!*SmudWC=_7Zw&&+@M>ZtvHG~EZ@D~n!PN}bQ{&x*y^Y>9S%w7it zJ$Bp%UeorpY}0QKRD~1pK$og>y9*4N>*t|L9e+cKXt{9s%z=f4nG$eIvA1a;)Mnid z_6_Sed~m`Ov8@zQR!1V~?8@!wsi~z)jJ@k4;0a;`aTa#>pb2xJg!IeQcsw4zS+T4) z7lB;g2%-bOh@Mab29(iXNY1A4@Xlf_KAC?{u{rN0t~G!$ZHEyknOjwFfDKh}Ztg0c zKX`<;?UiBDY8f8-u_h{~u*}3yJv?(x&kprDloM_}wP(<--;hX}duv{}EsS&|r2`-s>B_ P00000NkvXXu0mjfuGlgm diff --git a/interface/ispconfig/interface/themes/default/icons/x16/door_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/door_plus.png deleted file mode 100644 index f852976a9a0e43b9bb46d34e5d5084f9e7ebb7a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 607 zcmV-l0-*hgP) zEwmztn49Dz9$E=h5YdY$=)r?x{S!QT^df?IFbDqtJ@nLzLM(Wc23qix)`K2Ov?bDX zo6TEEY#v zire|5LRyG4ZlO@%0;M_Gw%u-XTppP~Xx|V3@up5k)$GI0XMn^)G>O!;zgWe~Yc`um zl7!>Qu^mX@uS)$pouSSa4>*@_6#%?v$u%fMpzN$^>AP3Je7UWGwl& z#yhxm@6iN$s*FfwOB^wQy+o2Xb3d`=hj3#T`*I(M7Ml;)KB@T#fl{f2d_E7?bq6#q^?H0zPn-?3WD5vV7teyrSn@gq;A@@!(Lv+I t%i2HhI9L?(zZ-g-12nkqW7PR0zyPz~ULYXz1*iZ3002ovPDHLkV1j$?6VU(w diff --git a/interface/ispconfig/interface/themes/default/icons/x16/drawer.png b/interface/ispconfig/interface/themes/default/icons/x16/drawer.png deleted file mode 100644 index 0b76e56ad0d440c663ce1befde14af916936bff2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 650 zcmV;50(Jd~P) zMOY}WJUTCzPnWVcmK?{WZWQRc4#O~@X)1ocU*aw3Fn$0FE zTfeZJdx}!2g!=3IIC1ol5Hp6c-k%+W55>(*7%G`ZqkaG2IwDYzN}8y#2SgkenshKl z!28tvJS@wSDX{yTpb{b9*~Bm9vf#Wu1ft7FpCmM>(vMmLXKp?h3AI;uas2RsUH1vY z*gXWpQ3tCV8!)LNgWlb{CR0gR25OxSY?_it{c8s!g3}8NNF)*>VR{OV+AoJ zFfx%r^?DuEdJAW7k79CPSq z;dER3-p<)s@B8MO=0zTOc^{tld4A95;cg!SI1bQo@Br{)bKj_1g|Au#_*I36D7*(w z47fMr{c8MCEs&49b&v^DeV&W%a#<$XaM0;=5JeG!z@tjS$g&LjCd*~0B$7@i!0)^J zp7?e174;7)7!0CNC_tmpz-TnWVzEH4*E0as=W;oAS1J`43pt_pD*Ju=a5|IJ}*9O^C%q9`>Y!-89#mT`V z7=Nh3);Zsp7wj8L*ds|Wo6W2Q+W9f-S$tNT*#gBvAxym4f!={$JdXd`nz2cqb%5H^ zBoYb45^3~Y_93(^;qZP5-!p(&0c2wPdIjjY&~JQl|D~7fYXX{em^ymQ<^B?jv6N{E zN?9c^1=HJy@I!F070(v(Xgc1HR+ogCkvsXEtz(Gy$I*J)2DU6+EiLS}TCHekXke>+ zraFs!ej1rf23Ja_kZYGPJ2HwbpZrUqnZR>0ZMgRe7`6jD|MwSu+kM`dwmFTCNMOk@ hKQZ}M#?9XX3;@JCZQ!M-B2xeW002ovPDHLkV1n|2RKWlM diff --git a/interface/ispconfig/interface/themes/default/icons/x16/drawer_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/drawer_exclamation.png deleted file mode 100644 index 58f0b34ad52bd1a9311e8fd1c3e824a64f99ced9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 756 zcmV9?>B@zxZZr!)+GSA$712^e68y$m z(oi&QLz~Z}^NH_0n>Lg#I&hiGeea%o&b{}MiL(G9fIyH0FpT|u51l%u>UBWe3M6S@ zxNqQc*M73!%sg!rnj(+RaOdM-@pwg&+vfGz~tV4~n9202VKo%lvQKHdIwbBX1jkUCgen(OwY9 z>+A3o3Q!~oA_X)o3l++uO3ic}Bq;C>fV~62tTPtl6_^Z*CbF2z<>J0!7?@vJ;IT%Y zXf-i#D0;0{L$O%I!tx5bho2yu&0_V%J;YlMaA0Wd zD|D;`C;Cl9j`ZQ`^=FtI??o~D3A6>ovG=mc~B6`UWzATAI zg#UG2M<5VDCHNU_CsnAzG9Wo9uiQat{ m2-;pRQV?PMUd8M`0R{kXPg(A@NgTZZ0000f**Vdgb#D>`j6-4T?xN=vu3ylyY4W=nVnn&}P znatC3Z!=A8UDOMgxpVG0-}%0C&J~_t0R#bv2*?4*<9O?tA3zTRKpYx!WXNB-ek*&N z=uaQsgo$)v=`ug8FXZlLZQCI>0%Tc+q9~9g5do!f90%;qacuaMNtPw7>MuW2+`Q=d zdr-w<5vFM(5{V!diy@gzLRD1`!0i2gpMO2igQjT+Hg2C*<{JHC%u0v-W)BLKGNCMS6YCc~vbW{XCn{A^hkzE&#S7RHJ00R}#y4+aCY z+ig^SH!z=ng>t!!=KCi&d-@~?W4JL0Re}J zMhp%BuzhZ73h{WHcY#%(1&9R5&a8-EHaEGSdjx>%@?epK7G^i>q}^+#CZRmf1{(e^aRx z(&_a6C>w@>Znujb)q!%s>9XSIM5i~S?O0K4RN0F!&d QKL7v#07*qoM6N<$g4%#46#xJL diff --git a/interface/ispconfig/interface/themes/default/icons/x16/drawer_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/drawer_pencil.png deleted file mode 100644 index fc99eb0a9cdfa00552f26cb812a45babb93a7995..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 767 zcmVckzDNW~MYso} zZB3`?oZGJL@7cY#b533-_~M1bIsDG=`}zI5M|j)~2m)Xe&<7xh&3yxgi4oHT#8pEd zH3YkkoeFG5J@Mv+6=+0wbdVpu9Pc|HD3=M%Mt~$qkYyPThX|8~A%uY45mJUhBT142 zV}KsyCj0eTg{)}F>j9)Xonp+aV}+wJ^ZEEe%K7UMQc zCsx*FU{HFgR6-_`LF`Wo9l>XaL?T!oy@lrOTR52cFkhx?ofoPZSQp{BImjYy9v$t+ zJEviT0Ix?ulJ$UsnU6HD;qXskr=a1GSXl>PYj0B%R8{3uVBKc|kpkJ7HStq)9#JCW z;-wokqoGi!3gC6=DAE$rG}25mjn2zMyoBWI5O&nnLaifM)?K*%asp@D>KD6B^Y$9R zT+Lu=b`}ba$bj!}_VTH?RT+6H1)(O3{=p!ECjtpmnZ->LW?2fMmT=)G_SgAe+Vi7O~+c9|dJxZ_(Ifx>002ovPDHLkV1g`lS9bsa diff --git a/interface/ispconfig/interface/themes/default/icons/x16/drawer_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/drawer_plus.png deleted file mode 100644 index a73df52e7d00cd690828d3b16d87477a03eb1491..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 727 zcmV;|0x127P)B#6>|wq%Lg{(S_8{!X}`Q2HOT9 z$xMZbM8I&zQ;W{4saa6b4UV6VSC>_%SOhw0b$LNB#zYR z*$av7pg+8sb`oW{`^T6uKc2jn=yY^a4F^#a;qiFjb_=jc8eP{x&vd;5i)0c-H)b+V zJ`>!KU|N5vve_(JtrmEmhtKCjFc^d+NsNH{o6RQMP1A(e>xF|`C!m3OMIpW5;HlT) zFP9;?-4F<&W*AUO6)m!K%fbL5?h=??0=nXTeJlf&VGtnoxm+%0Ynq0yg#zneFyt@M;I}Up|Qs13Y>#%u?UYqnny-EclRQAa0mq@ zlxPnKv6HAKZ{`~7SRwEGkw5JGCxCVp95WO2q80;bD^MkFXC(^5&n@Qr6o zLh02c_Vw;Sda#MyfesFLWF+2iBCyvgSXf?$L^4vsx3?$QR04hvN{t3`qKY#UmoPj1 z9D@Y+an!q2!qNVI1Ofpj!I{Fty+thWHF#||YGw^&mYBNSbEpz=J^qKlxiqpYV@0lG z*d=0q>{LAQePxA}OeGi{i;x-Y|J^W$ zrJ%)RMXtutOy^K-YO1o6&j>Rm>^av1c3B3ZQMQLdA%w%>^{aeZRk5n9;(90t*_0u* zZJd16$i1jxlD@|1FBLzYroa976>2AhSp8?shYD1Rq1ZnH3;=TmbkYIj#?}A;002ov JPDHLkV1lhrM2r9c diff --git a/interface/ispconfig/interface/themes/default/icons/x16/drill.png b/interface/ispconfig/interface/themes/default/icons/x16/drill.png deleted file mode 100644 index a9e1d4afcf5a3aa10bcd4f5f057768d69015a5e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 729 zcmV;~0w(>5P)7+r{ki4sL!1QkeE5m8qW1Q8+arn(qWY!O~cbRl@5>4MTSwM;5& zW83kZIkvNNcJ}pt^NcXf9(Z`)bKdWHzwdp&_Y>ON+u?LN5eNie;yAI_c*eHj-;jty znGC!lIaRu@caS}jkM{TXcL*)h>q{8}G*#2T%r5-k%MpAsh=w)~ zlF1O#DVa9UqM!&UAu=O_L;?_MYHAP;hY^p*^ZIV$<@eWN+10zZNmu7cnC1$y2H7n1 zB-0|3_>ow|K*2gyJ|*s_ocD%qj|b28DX&X*t1lCu%h=nIEhuSVBeoU{&yHhYd3mLY z>%uVL(=_|3&5ngNq%Iwtn4BeQP`}I|crqwD>IczqYl_!`C0i0qi7F#9$aO00p z8{(W#z{EF9)lFM}w!W*YbU3DYf*tua8wLDf|K=h-F0+= z4YWPPE8Ka|$*7bN4qlp}A(pIz4pdWlJv5YbzQ3@KUclqNoIBw;f2=7tExNwaj65wC zytqFVqy&4`oZ!s@P=70zcj0Qv)1+x>sA>wMqhs@iVOZSm#;rgl{QfD%7YSw`cwIJ= zyh)-U2&c*N7b%(?W{g?L9yY({i8lo^NgjTceuQ zyu@TUW!ULrnBCZqE_8z^lQ7CZ{fH9mU-+Z^6OmvM<)A=eMc}NAC?xyQjfynTqU9>> zrYW2A%+2lWob8<6W3G^lK6rS(_k7>;p7(veSK)HGU^E)x^?EVAb`YvlH>5oLdxZ#{ z$t2ur+AJ0XVLS2G^l4pP-F8K}Z+5990X)YGpZb?2e+)q#4u`AUZueP}$$-K_JN*9l z2!(XnSZeIQ{%RuHF% zMF=s854^$m=nyU`XX)}fVKwD!>OAwRr{-YzVV0A-75z9*di~UjtWxQzt{jj2uW%_6 zfqO=Ryqzatu$NEmQz>|O9xI4l6b@>13%E5-Eleh3HpR7c)<_&xYY(@>^sEI=5-XKT z7t56~!7M>8fx%1~}_4;{pLZR{elMnE2RX#9PfpJ~UUwyRNu46L8 zoDK)W!2}1b7CN0yt|0%-2ypc|pq}}}k{hDP5I0fi(ObMIxGf* zPfk#f*8KJ$PLA*#$5d@z$Pm|3k^}Ph=1K|6m*QJ67>vrXUT@UO3HBA!b33R4>eo$= z!=%V9UvDoSTSQduC}6zT9ybgqiW+k8e(d5N2|Pc7b;tT?h(p;O1}vd5K0rh1QB-)o z3~yU&wfG}sY4T4yRx0$vy>{H*dJzx=8ejeoR4TMzc-un>Rwyh-@4KlAMixaTCsDkK zVRA|e@TBp|_{K#MGrpFRCwBSQe8|GR}}v4&baKN`@ex8 zpdzwaplX2rpag*wLzHTW5>#SP)24lEA9!j^lO}y=Q_`d{jdhbYA%-;SVu&$5SZgEE zh!rtWRuB+~EeOau&MeFR%N6zn#iCpe9spe55cnGYwHul-58X@V(pZ zgwN;4=;&ieQW%isH+ZRJ95MMN5{e8p9yf~_8F_1BXcT2x4pvrH+UMuzYgR6|w4A7h z*NcJ9ODL-?K`b_lWL&1l(=eF<3xVq?M56#JDk{R<+#Dj2$O^xe@WsQgAZ%@WuR=?V z5iw~n$m(R%&|+MjAH-C28mCRG)BLoRp<*lhjoc4N^T(^-^$&b}Ou25^p6H1_aq#=M zHo#KGZ`rEQJKB%a3ky`l<^~DTMHR;muw|7a#)m<^i7s`9cj@}l?hj^LR$@mMx4PY~ zOi6nAnW|#QI1mpuNUM`LPG}@taaN;K`;(!`#|eljk#u66XRXz4cdR9Wf|J)U^nL+g zGP?2_7RJOn|IS~k4Qs^fO8ym|RKm#wtX9};woHl(24{g^`zV9da*ALKyWQ(QEVfwe z*^cbm;_&nzyG1W9cid&T_cubN!AvBhO z^VhR6D>-oI&R-L{t_yyD`9>fI!C;6lwUNX>$y#qOw3?`_YtmSJ@g<@!dX@^5n-@#= z^<8)#2p~jZFXvns91QI-c!UXpPgEj2e*4DwILS@Yl(IDc_KoQ*%*TC7_3KqzovZxh bD**-o?CV|!MK9*L00000NkvXXu0mjf84|6< diff --git a/interface/ispconfig/interface/themes/default/icons/x16/drill_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/drill_minus.png deleted file mode 100644 index eb43f2be67476090d9e390fe7f1c2a389a1d7463..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 758 zcmVVHkcscXT;DYg(?5eVbf$PE`NW2QVFmXs}nno&> zIoX(JW94V#n6VZEcqt;q@Z&WDxs~`;f^* zA&UYXzKXm8U>m{EHKfx3tE#HP^71lLsnnXjop9~rP1yDZ4*FH;3khXYL0PA~3N>RW zu?hT0FX9pFC-!T*9kMKE)l-B|gyAl9=sJ3yk24`Oj#NDCZJk*vW{0oLzoTvO&1DSn ze6ERTvBc{`c!iMt1VUtD#{B}mL^@Pr6nZ>vMEz)??w#PM%xb`%l$8M<4~ z8)&UYCYf55igy$hI-T2#$e{AZFsAA&$$(z&?+gSs89eRl%Vtk*IiHNnQkl;Sp64C3 zuAGPhCOG;$~! zbUn>LS3mo{7>}pT?@p(?&@{MEmzybWqi|A;lqil~ouMI4I0juP zr@am`2(gU@^lK2Dt}NDdyd%N3{!3W^F4aX`iMd}~@-n$~KyW-TWd7oW^TcsPb0bz*0> z0irkyw~MEbFTgJl2qu`%3qb(5#Kc5cEEYJO&SiZGan5`d{wbw7sb*bw&EQb^amSnBRH;Mw6v~Esw(yl7?c^ZpfBszB z#C2vg8o__FHb>7|n*%M2q1r&rRw;ce3(@O!YP)^zv@GMJvhb&a(jpG8nwBsa3~)|w zNe?%pquhe*mcvYRI2R5z z+9GU=3u28luDBP$Aj`AZe|Ca~*sksjLlni2k*1kzsRDHI+$ymkuaoV diff --git a/interface/ispconfig/interface/themes/default/icons/x16/drill_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/drill_plus.png deleted file mode 100644 index 9568b80676b8d2f0e44ebf6255b7e8b8c8aded8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 818 zcmV-21I_%2P)s(W;0q^S`e{gglgp_+l;l%O=t^+ zVB=}9QI_R$;v>=7`uh5Eu6Ss5DPw>nO7gdnt)ZDI@PZ&z*=)AE7K;g4S=ksJ9fsTO z0z967bfI7Xe$PBa!2>A}h~?wrQrG!$l=pZ%_M)O9qtodujV`XNyjX&yBsdydQLsM; ze*Y|j0S|2+MocWAB`_rfpAXQ zekM8lG3lE^L(D3td_mYlF(0(u>2_SI5#DO^#n-;CiLAGC6SM`a(@>0#(QY&>EG!ps z*-phT^PmiTk)SAOk|Z<{t9C!ukSy*^W;%<-tarQT>u7FJo#4l={Q~0YP#i~4t4y#j z(#MZ*7&xBA2=EKuu$ZtuUS~8W##4Zd>+KlaodLwGdQ}yAG;h;^|C`@;!4(vt)4^ac z=*iFMp9P+NpbS>XY_z+T*g>e%YJs#=ptgxa&rb~G4(X>$`f^iDrXe-JmZ)esgCONC zGi&Xk3s#kv{D?g{!%&!p375;|Q+=b+tWyJ=&ZFzjRWo3;bBIJC20;-hSXf=xGt6t$ zPBN*^qY4H|n#I1$BhQ4qE>&!-T!vKX$TIztk-<-3*oe z4>TIQdN|;q06TezVaL1YZUpO?Gx+ zI*#NC2mk;8 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/envelope.png b/interface/ispconfig/interface/themes/default/icons/x16/envelope.png deleted file mode 100644 index be0567184a911992cca5ba94d00eb437678a831b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 477 zcmV<30V4j1P)YhQaYB*I0G!E9bVFH)fXUPQ4pj$Zc*cjp($w0^%2*L9P8 zy0QR+BaTQc3>xr|CX}WoqlnK-)5pwWHD$rzh{Np$LaP8u1}X5EnP%0%Sz3XN8%Xjg zWeOX4w`zjE;tjxlFYqc}r=<2pV(-vqKdOys)e+E`f zgW8Gm4mU-yT%O4O^SoVh3b_16(eQST(J@lI+ef^1_iJaP?sBt*mf=x!egzl+(Pb+q^(2Desdwp7=)ps(;K{#3ie98%EO==Jiznk>tw^-n;!h$< zLP=wivNOBBS+k+LQR0Kyo%ikc-upgw#>h`H7zRcG^yB~Iv*%$-Z-hq=N_OwLIDHjL zbuQ%``CDhN1gUU6|IJE^i-;u$JJy%&Wl#+Za^|`KEha1r_RCjrNyWdG{;qkN->idB z?jK>@vF)f=*YNh)d}~^x(ST{1t$gR;05p$kc*{bw0rO}=tapdMf+&2lkw_&&7Br7) zShN9ml>;T65V=QBi(p_zSb+>0Nb)IVi0gZgU@$Zr;uNx z%W@q!@IC*aP;Pk!uF_E(k?B50R$M>IY4Rpkp<}j0c;qPnpI{3&jB!-j7PR`^E z#xi33fwJyi=G}dL@%DdCF>$;|&!WFSeZL=-fh68!GOLv@h1;xJ$O^)(*DEMiZ;U_b vbdlU&7lz8$zimsb&OWv0W*=+pw*UhG1-}*41;#Kd00000NkvXXu0mjfWOyIz diff --git a/interface/ispconfig/interface/themes/default/icons/x16/envelope_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/envelope_exclamation.png deleted file mode 100644 index 49b1a4506c10bbdc8e26120addaab3af79a3c554..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 zcmV-<0*3vGP)R@)jTI^);>DYH_2R*UcoFm{cv2AY=*g3JuY#C^7yShaBBFvCDIrD?EkSK{lTDg* zXLfwECb7FHb>Q2#Z}$7%``$9c8n-zZ!#My8`2Y1uDcsdBrlJQWdzUXhxCtqDmKp{c zcTQg)r)H$$$k*$2c#D-C^&71ZAPpbqJc0rv}w=u_? z#%9pP>&H(f-3EgJEX$hY<;p&29%+op2%`dAQ3tO$6JxyAnk~#$7ZW3B9%*>GfDy?M zQiKU|L3c~-fwQCoF)kozP9YN9c=pkr-+6{0sKcE;0grKtu$&elCz^O3^54wG|FdW-GyD` z`gkb*I55>;4vrwk#?QB~y*aG?c#cO8ui*P|6`5kWKnBl{L1w;aF|5qP`r7^$i?**} z*v1y?BQicBqkNn^bqnw7M*){*eakuA>jcO6jeFAV^x>3ByHPB932cf6W@Z^|-i9;P zLvQ_B9G$5Er8#$r99&@f8ecwPT&?awHGOfcvRdJm%BA<|{tXpZU$PlI{UyKv+TmO| Tn&&YZ00000NkvXXu0mjf;pQ7{ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/envelope_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/envelope_minus.png deleted file mode 100644 index ad363a2c87b6df52ca7217fa36222eba8698f893..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 533 zcmV+w0_y#VP)abpbD?T0Y*prEyDY;y)m{Y`ZoTrQ<2!%%4BzxmVI z8B!hXfAXI**B}lLW3DwolZ#{$nWJN9Qt{ig>o(8k2RsO+zl2q%YVq#A;dF1m+^tk9 zA(2Rw;{_b8JSgc!l51?Y7zWOw z3S?M7l20ikxxV)p#<&Cdg9XPZNrY&!r0!KQj4LOmK!plC=$Kqd-Q$?%9K`VpxVz@N z1xbEm3Oug@n)BC>)M zFv5~66V7sae0s2A&wsj0q6(XfQyU}mYP1h{5w^fd7WeMl)XsnJ@>L#r%iE;_p8^a3 Xni>RJzDLH#00000NkvXXu0mjfJB#*k diff --git a/interface/ispconfig/interface/themes/default/icons/x16/envelope_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/envelope_pencil.png deleted file mode 100644 index 66898f485b51cf2e6f60947a8608e0ba0d24b165..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 658 zcmV;D0&V??P)6>rfM2ecTQjTTxL7&Q(a6X5blg_$^WTmKpfTcRoe#0R2B+B|1<-eRQ${2dx?|y z3J*-!e}x6Z+p$(!MSOCqTFo>~1OkDoABlEA;)tVFTc{*Z9jXxC(d?SHzNK~S+}&Bz zg2WNWZ9%-*puiRu1h;Cyjk20A232ttG~Nalbq9=l2{`r1c@5U>-4|0-QlHXxsX8C0 znGLH_fz0R#PJ~+HRNWuT<%^hJYK=w*2Tv7%8;lE20fBvTIaS{nE0!{tNjBi(Nb+!R zSJ%*a$C*%N3uKy`W0Aitn_OR z^IxZM=x9G)JRL*d!5{g0)W<_*rFx0XseCLo2`rA{Y6c6rcSJse=VPPTzc+?#PB;2{ z%JNFVKI#g(TM_tf6gDL&o69H|lQ?qhES`-#LR+MVZhITn)|EhV0Z4qIF%FE1(ETe~ zu%)GG)6C2udD7Rv2xe&spS3w+3GMf1IoLMDMkU sefg#aWzLv=xa7st1`NrQ3H}H$0M(6D1utx9&;S4c07*qoM6N<$g5ky~$p8QV diff --git a/interface/ispconfig/interface/themes/default/icons/x16/envelope_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/envelope_plus.png deleted file mode 100644 index 2116ff56ad674ef7a7d2f22c967e050d427906d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 585 zcmV-P0=E5$P)q$gGRCwBqQ_o8qK^T2Av(_A}YZsHC zh*pt`w%7gvtx!Qk@Z4)pJqhhiJb3UAC_VIIDHOzBYAN(mp?a|NR2x$Wf=HAWOw=f* zO-;6qK)EZEwCwPgtjbQEXWYIl15VBzEG>1kT zFe!Wp?uUvy%(MswO2P_w(12^7oQG@LB4mMUzYzt#AHq_<_Hp;#I6l08nOJXUsG0^MP+%?i z4HgXczr0USGP}m3*II4D8!V0*>(x*9iV|Of8-~|j%-j5Fh@wMeu zI2&1lksibj^G6L0?A1Lw#gK53d7HXCg~=WimNt*`jO>AE1+#C2`|2@kOC~!T&%Cx? zBqr=W`sFna#R=4zWSILiiU+MlN8|419&)AUvmcxNNG;dsZN7zeKd;h;hn4fyd4@evZY5_b~jmE3oU7frtIr_OWCX)%4%O!|IToO=syB+rXJyccY7=|Hi+vdja^}%4kb>a~BBtXzK zjUzSo`+aVt+_Egr>HlyzM6p;r6VOrtUDr9%imvOTP$(dZBJ_Ga_`Z)yrNXs(y`Bna zCxP{P4bwCc1OeMO3*G#VkF&oe2P%OOdUp8}iB2HkEKtJUhv4cRZ1N^l(K zto~I%|NMaGd8av~@lsA)c5pZxP%f8wwQ9A>6Hgoe%8A1c-~a#s diff --git a/interface/ispconfig/interface/themes/default/icons/x16/equalizer_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/equalizer_arrow.png deleted file mode 100644 index fc1fce9c3844c7a5ad0f624f9f5762e5376b3c1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 621 zcmV-z0+RiSP)+zUIlku) zqLwt!KFjSoW@Kzr3nnH44Vwfe{v5Pb|m(>TB%eX zhC-ppzqTU?0&2C|ULuhwPz!1x5Qq#01C&Z7kjQX2JTb1<>nNAYXfzri4sl69oJ=N| zPNxt>k^4@k15MNT#$WT9Oor!)L)?V`L6RiyX=6H_<{K$iRh7rIp3P=qv)Pseq`81B z%iPn6xm*rbs}$OvvZ+ zuvjddWHy_j>-z5k{eB-FN*_&mNvAK=4aWl2Cj{z0KoSlq+h z{~Xs3WyIqfcz58z$Dv9TndU&6&1P`9T>LbT$Aj^Bydb^o1X0z_;?uqz)vtSa>TTRB^(a(_ohLa$Ggfpwr*d6ekKU@auhRm$o>deiv;nd zI&%snz^b^zpq(^zuC4T@H^;NtrK5c%l?iML;XYeru{s!f4`F-@Y zVUTykAKxb~-NE58{%GQbZ5)k`c0L!M=&b5TvVmum{~^EtcdZB|dr(@b00000NkvXX Hu0mjf+$AH1 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/equalizer_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/equalizer_exclamation.png deleted file mode 100644 index 10d73390ad1a5be5e967773fd6ea4ef7d4f1d7e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmV;30(bq1P)PIV9NR@s-s%~7m(3PtQE?gDa;6`!f%8e3m*II-Il%yDw zW)hq!Hkr)yy=Nyf(S_0rckZ3{?m6$=H+MMOws9QeaZKZg&l0~zT=`Gz5904d^0;29 zRMum$So~kx;W!SBMq@LXOcrSi{%ABB*L5AGQVEpAFpR(E&1Mtjav7~w3lu}Klt3^| z6Qj`xf*`Qi?RF6e1X$tZdN!M7>l8z=V*=`;D6&WkGnou4q`BYkXF1)^=kxG-y)FXL zA&?}AMS5bPP=Lqdfu?Clr_=bUy};%0Gc3+G5Q#(_0&z^x>-C^03fk>9lkfBS5DJCB z^E@^-3J9r9EUZ4nOt=kmxc?_Xzu!kHl|rY}ajBv5FP-b*{M=QXQl>~;05`0;2&AJI z6pO|2JvebR8enGn3nFLcaqq!%%+6iG35ya8C`4ikEX#tbs_e92FvxD)A&~4X^2x#w z>@KR+Dy+dSxkMW>wtgufLouw^>tAJAMk0}5Lqg>{`4s;VXD?pBu2#eAR~d8;wsA7Z z<3M|(3p_WZllV55%bg}MFgbC{aZEp63#JNRCwB?Q_E_?P!K(NsVPQGeAJ3` z;kI2%3qpUOP$*sa6?P#aU5MZ&AK)jraqACAm;HfmQz*Ldfe%y=5|iG!)Zn8n6$d6W znLFp)nahmec^*y?5hsekG|TjcsdglG&h$-YpW9Ze^^(bCuKwGOAPDGoyYGcU!K4=S zbUJ;tSS-+JG(aTFsZ@BJ zFog99NM%{(mJ-Y5GEXF5*LCjGd9_-Fs;WB#@`gZB6mIFpTCIjqD1^ymf>No3!C-(` zEXHH0RBA&Y`vlYJ6q=@CI2`iw!{IQJ$s|NkM7>@|Fc{>ZKp+6ywhswrvl)uTB1WUp zPBm11BoaX)k=TiE6DZ$5Fiq2chmHNqCoIi@?7A+Z(I~$y9*<+STKS3e`q@qgZo3VI z7R*u{SdW3~=>N+9E`Z+^ap zNi;2j7^+1fwrVBS%pxcPSIuHJ!GH)NHjs$Aa5m9G7zkQaLb#}b>IVb^ML!@H7P%0O z{KyYfLPmYN=Q2uTLB(8n?s>TPJkL4za+s!RILeZ6#KkyHa|Af7|EcYBe31Eexlkx< z`Fy^We|-*P4ApA27z%~5^aQ)t>s=WP2FT@dAd}&6_(xu=)sWBUQLooQ8q$)1Zaf}i zGMPZ9(}~z_x8ZO&MB?IkJRTS4q#^CxfFR4Vh?E$M#Y7@;yWK80-6s+Wn9b%x2J*~6 zuh)x66_d#%OePaLoerYWC>o6hoKB}WTkiMaNu>~E?9AMt+wHrL?kwXmE9@WC|B4hRxT(TFv+?} zNLHfz<;<8Y7d4>Vz%%c&@67YeJIgyl5Ck~M5OKmGP;61`QYinaol(3dblU6ndiRRO z;`YB@M-T)UhVi~!F1Ohg)Iy=KJ)h6f>2$zMY}@`T@Av!YcDoo124EVdWd@S#y6`*? zk|gnHSr#-+;~Rg^*XwnjXBwsr4HyU^JhF|oT8(dHTvb)h*?ObVKs+8_GaxGiS(bTZ zCpMc+#9}dw$758hRSbtiq|<4h%jfee0}>icCKD)%g3)Ni%TFW{$mMbnMG>u53(;tl ziz1N-9LM?7U^<KY#ZSv*GFU7Yp@{wc!{Qq}vtIyo-_)A|KYZME?gO_IR|#zj zN7wbwXXz-FN@4lO`Ao5K?#g*yrRkcKZ*i{o_0v=@T%!CYg|@NvZpC+lGa_HVaA!w* z_u#EXUy+M1{!2nT?1<(+u&Zn|c=YX8+&}f)@+=L}z`(wJnP%n^og4~#`8YOXkIbM3 oJF{0`f$#niB;g4R-}x!P0IUHaRYuvM_W%F@07*qoM6N<$f*w{8?*IS* diff --git a/interface/ispconfig/interface/themes/default/icons/x16/eraser.png b/interface/ispconfig/interface/themes/default/icons/x16/eraser.png deleted file mode 100644 index 30473692a322b339bc2d97f7d3760e0f38cfa0ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 674 zcmV;T0$u%yP)qJHDCjhO~`+@Mo5J^ZUQIZ*~b_ghC;R$Kw!*M8M^8fz#=PE5%npF-K4o zh{OPr0F2=JRR{QK00SN6$Y!$;4u=K!pSW%UORju*w?zm6CH;U3Pk zG&~xOq(Y$}PbL#E38I1{83f( zFa@kUdHMpcaSy2~ov&Ofm1JB`z+4TiY_25)yr18AiIsN|`_5U1UAbH?%Y(t-%s^YM z7EnsT>-ECg$DQ0m!c@x0H#_g(l`EBs-0%0#z|CfJ24^yvoUZFN+^+N7Zy3Q58-c?H zd8_lm+qU6EA|YUp$5ZFfXZBaXJV+{)ilT|6D2m+c^~9!%1LL1oO})EROdIaDEQA7KwWgZ-IuZIrRj7kuFE|B zc#e2Os3~e73C^ zsH1`FB{4L(#R!_Xnl3{NAy{ugLJv0Td;6X1w3XHmew=gfIiK(McYpUB0r{|4EO0m+u-R2#>|JpiNk0wseW zsz5WK3N+4UfzLUp$Wj(nRaL=mx5H|+La*0jk2tPCZEl?&8xRBmfff(bG=Wcik+rwC zgNytlPAI_XmcWyN*xDMR(J0zx#`{U|46WIbSNbp9I`ODKO0cR@@rt5}bj&>O%K>iM zb8=4s+FZXlc)70S)#$D0>Z%5-1aFIk78c;VKiESeZEP<%olc8huUE=Ck7*$CFrTl5 z!&`GzYvMlkH@vyIDRy^vOR_8@m&>8Fvw25kH4mFiCQM%K@lyp;tPoD6Qlii2lc)j> z-cJ2_2UbEM(oi%waQ)_8`i+xB1zDkUZ*Q+e;~y~3FgYt1nlyOI+jozgCkT7T*`jUd z;o)H^nN03#Xe1H=V+`fxy%4M=VUTUCK6!Wd1z=z+Su6G<-EMStd(sv z8sT=kyV8}1_jh(!YYFy}@g=PS4)WkYVeqoK^UJUiZx>f0de5^P-@klKy|32c;yG*M z!|`uk-dw@ua@CWF7zhNUcs#DbA!-;uwq~;#*S?g*&z`cGmJ-0v>~DjbQsDLDkMlxB zMFs!9dU6wk!Jrh2#dbD{qS#gD>T?!XHyq;6399x;Q)A=7IxFTzr{@L6Zu84#raWLU z7_8)4lgVVX?^d=B&k`?)GD9hsdB$cfS3E}}BQF+|l^=d#J^Yjl7$~VA@T;g6q{3TM sFy@LoM*MV+8U!eQ`AydtU;8D%0J&Rv2GC$4fdBvi07*qoM6N<$g16abz5oCK diff --git a/interface/ispconfig/interface/themes/default/icons/x16/eraser_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/eraser_exclamation.png deleted file mode 100644 index dc0adecc108a24404ff3290f5f5cf8e9b6cf2319..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 785 zcmV+s1Md8ZP)%jA#!+Fo||2*e;&ch))tX3QGMkuc-rU4 zcyM+FXaN+C<~Je`kf1;$(^xDPI2;bxY&Ph0I_xl-WGF4|FCPta90z~fIbPKSX4p^O z?RJBS{9_!Ef#Yrd2g56ZfLJUB*VN-75)X zgU&SXC_snngCpH_ZBOrAi$$Xz$DS5^?c6!Rd6`-q+XX6I&0eAhIx9 z3z5jiT2Yg@i{A>TQYm|Xf4^^ieI1e{p`fefk4Q8No6TlSTpGAV5lm_}!^vdQ?(ukh z6v1Cn=}tTG`Qb&NA_$Xo82;|px9Kty9+y9*@tuT&^CY(WnBuuC5`!gh)i{$22oH^NHYb-9+mC$2=p`;TD;hB2nxRCe} z{P@++-a(2?ph_fYUSL(tnrz;U#+i3vGc{p&W6#UlTcMAlwmFZ~Zvh4XH5!5E|JEo^ P00000NkvXXu0mjfSm16{ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/eraser_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/eraser_minus.png deleted file mode 100644 index d0a621e08432c730dc34d2e77ea67028e991e8ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 699 zcmV;s0!00ZP)(x zkU+p31SwQul^_^Nl{5sRMK4lBJOm2TKn|gn6icAwl0y+JD}uEC;7Mq=*o&HjAm(7f zn|R32QAjokCE3l-?)c4QH^ek{;ANJbdEW2+W@kAthR^4NP$&d}Kme>(E1XZi03P3S zC>}V00E7Vuhx4Zaz;_J@3{V!2#{(ftvhhT-5o=qh1GDmLYcdb^{G>;aU(3r&HmDy;mDD!h~RWU1uh@58th8 z08!j?ZK?rop8d7?=wjr<%cpX!#$bZ5X;L~mg8A*uRWyn5)8KBmDUAG#X8K zkB^H^UH)k$DqGiR0u!WB#|MpV!msD%zCKaal^I=EOpvt>@WawAP7PNPrmp-)0Vve zmnID?n1KFlXHnR-n5hP|lk0dpsDT~jK-q?Ejiejx hnzJ_Xj_vs?zyPRWRX;~Ts>lEU002ovPDHLkV1gRWJVF2f diff --git a/interface/ispconfig/interface/themes/default/icons/x16/eraser_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/eraser_pencil.png deleted file mode 100644 index 57b9053f24f603a9d40d163be9f9eba3e5ba382e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 831 zcmV-F1Hk-=P)Xjz}DJt!~fBAr`vsnTt z#=U&`koOUCrKF>y^_nPNT3lQ-69RkV$h#<^)N!xb@AZPu=YvD8P8$|1!L!{oK^X&h z@gWrYo|&2HAAWtb{du>mSG|^z!<204zI)M!WRAy+ND?bj?t0Mpr1aPtDnL<&-@b%| z*&O}6;@6K?sa40%7Y~1NXUr89Xe+JF7yL*7j{BnrBmMg}G6Gpu2ltFQ2j-NrRxBKyGd>Y~E%7NxeU5 zIig-4@Q&vhjXCi3V;8K;uLKzPvm)N^Me<#bOLw(sQ7yx&wxWhFE8f zMgtX(Zds!o>B7e}AS+kW&Mhr1_Fyo$>IF?rO)XY=#z)~@V`aJt3zy1sZ{CMH8m26Fw-cI zI7S5_BJ^pmM2aZAHGO}yfC`~TB+`k-L6VbJV(gzimh)SH0RY#uX!NyNM#caD002ov JPDHLkV1i^Jf%*Ud diff --git a/interface/ispconfig/interface/themes/default/icons/x16/eraser_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/eraser_plus.png deleted file mode 100644 index fadaea76ad3c3296bd7630ebb978923f674abc47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746 zcmVL&R2o23N%zHb*-(faJgJ?I2{ms?fUoKfWCo1Oc(WL6K_$U)ZAP z_xr&_{t@R?ptmpfdOVX#A)QWRVD4Rn1TWH>3w5Rc!u`{)B58s(jfPiME^>M9eOLi} z)N_7c0cv*sn7DniZ|eE|^wt)KHG&%=iIo-fJe?RNkpXc(xKt`h!C+9X_MGM*>M;9G zZEV!OHGYUK;%>NDEJ`CIBXYT1hN37qc&&R!WUCHaEEdcRjXt6YX2oW>P$)>DP)Mc; zINV6X6%T$U5~QJWICkgWW4gu}qT*t+^Vry!O!Y6AB#jnawvfWd6pO{=Y&Of`1RWTAwl_}{rBdPhR%?%EjSWOu zp)4a}nm>Be-m&>6xq|Ta8T1-d9W4|oQ*;yCR9D%p){|{iX{ri-m6tXjuBp%qwFy3z c@JE0F0JOw*tn=e#5C8xG07*qoM6N<$g0+xP$N&HU diff --git a/interface/ispconfig/interface/themes/default/icons/x16/exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/exclamation.png deleted file mode 100644 index 056f680ad288a1f126e2c0d4beef406cda8ffe8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 622 zcmV-!0+IcRP)$M$+k2uA} z%||2QCbimx_EPSZIEIJ=LKQ+mAaUypP^sd;33vuxfg6ti2P9C4!~r1zh4c^ush}|% z$Diz2NeMKqDzVbfyE{AoSei&Fx2DVf*nn$m+|ck}j^}+Mxg;|4e}MJB9L%>ahQwFvbA!oE?(8aJ7nSBcB5e zi9#M}L>$58GurZ+s%G+`zYmV%B!od9(rGP!`fPa(eI_+D3=a-e6^PKxFI=hm>v7`wx;^@B;vZ|IW2@bC*^K@wDEc12+2v?RFcw z-7bWZ3z6&s$U{xhiYw?l))9P&932FCLoe1Ad;M47M?H|p5Wd?F5@gX!5CsP^hOrof zxPcnfl7Oec)3`lbuq;1%r&8j8BDx8>aX(=^N7PiHW{p`3HK-*)0A*298s`hDDZvj& z@twwu+oTQ2&1)v1w1Ha6SiEIgdPNrZ#W=iOkeHd7L9`GL4}0ISeNiE->^Hgp{{I7(6cvN0d;MxV z+?Ka*|9tiGySV1-*S|$T?mJk3gk`0v8SwC2=VoF0!obe_1B^w)>%bVs2Vp6(Kip|a zA_gEmus~FllH~AAi)YtnW%$6r!Tbx3;emrB2Ev(%{Mu5ItRUwpf?QBikuPk(%lV0g zmH9UVD^LLpe|uK}#>iqI%*XwQr94j%-+=UYApIMN zLD`iVsF)o{a{*~?Ak7V;f%qCDG$ugN!U@FeMCM|U|Gok74}bsz01;pAUZ(sDQ~&?~ M07*qoM6N<$f?IzkWB>pF diff --git a/interface/ispconfig/interface/themes/default/icons/x16/exclamation_shield.png b/interface/ispconfig/interface/themes/default/icons/x16/exclamation_shield.png deleted file mode 100644 index b0595f1933e301c4e52e3daeb5fce4cdaf9099f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 784 zcmV+r1MmEaP)AVgt-f-FpQYe-C7xX_Ro6B83Q8YFJ8#+}9(-MEm%xNv1m*tjt!xU>nOG4gML zN|lzDq2HmMulLQAY2_wo-kbOCIdkrt`-ou}5SnFx22Ozx0ERKgE?k-hD}uPUsq57o z8bf0`FmNPj0-_Ny>F=K!@%KL(p>u?f?i~%TGQLG@AU+~In0UW6aBG-v?iUP0hjL)N z{Aca`Gu(THkPtT!rxEu|0kp>VUV3wVH8eF!&|q8lZK3(pP>-Bjq@LhJ+ejbF)w$xU zA3CsPLl~UAxDtBu-FAQiy4%AaKR5dFngKc(iU{RQ7=o`YgVPgB;Psvq8i$_>R1j$@ zatvEQ(?OP{9YvF(Ty1^XY|$K5)q#&B&XSeFy$W*5wGIl3oRdLU>JG_@u0SZX0Et8b zChnfc9L-#37#7?vUl}?1ssjzgk|auQj(Al=hD<39l3IjtIBbb=CEJw-3TOvOiE?TM z;yE#zgC@Q;a}WdF(10V=QXGtG&k5n6SlG!^PHhRx>D1!Bt7!mOQbJhCd%Hn%OeeqC z0t|LpDx26x&PuI=`E2U9*e3K!4p#M8Ck?>2SdF-`G-wN`c-+PP47ERR3RWDTC1dVy z_%R+r;z}HELLJE72O@V^=8L%OZ ztw?$+z9mMSPBOz*E&-vJiQw%xi!CyC1v&zL2p+3<4)pZ;+S~mNO*APU%cobD#dt9< zFGON6J^Kx|7uV^XF>C><=b`BC0#}~^S1(_H8$x%(87i>8mS36s0iS-Y!`HP){=Efab{ackp6&&+0r3Dv+W-2f6A$0R{lF1ylAbe2BCF O0000ea(E5+`v;6!{{3YP5RrCNi%eL>AR=k42I7OnLGpMF`27cLi#@lX zo)*L3&-|-buV(oENHMBKi!>Plef--Y|IkbTe?Vd}iR``6$zS7$l_ml|b@%)4|72|9>1iaQ7~dc^4wmj%phd!w+-=7>9mdpx6L_ a00RI|$aT|1vjzgn$+YG}o7fUR zHI*t_7lI&yB6ZV6HdR5yjV|1U>Y@u53KduG#ElazGq^yR zGdy4n)5KemGyx&gmx`b2ABqpCuu_~dxe&0Cz=Aa+=tjd?Dde}*KNd{k%aW=ZfwUo4 z>lM}T>JXGDiPVA!$c&E38B@{J-~b7vn*!1bBur&PUU%UGK+!M1ho658{rV1gu z8MEzzt1d;>CG6bxOJG5z`s{TyUfu#~Um-u;fm#u_?OXB=nO@l++CjAAxJg1nmR9|C@mEK+j!+&RzuWo@~C9 zJ*T0|%h1IaV1xVH0v?gQ4gtq_UizTYFmGN* zYEu}=bHg~aErNZ}=r!)PT=s%!;Q>_W+nev0oho6b WIuFC;n3;(H0000XLm z+Gylsp7->hJ2MthwCKXef6hJU`~Ls`&N)meh5z|vUj@@KjdRoqj!Gfnl7bfGpTPwJ zoZ$&$=pf#bqyY$ZS)R-j?oFAwhTSkY?c_qhiUgLJGlGgl!b^T%L1@aa6JL{*RSQ&V z@@i<=h{Qq=v{4c%36UT(Dw8v2qbcMPCt4BQv z58bq)((|lB@ba_3o(n`}P!o?WGGehc0lwyLqTlq>6IfS20$Wux^-T-UNMQOEu=5mD z+D78WU`C@b|0ZC1?*bp5g5{KeRkhOr=RgfM(WX?O=n$fsOi(6Zn!gEX57bBtR9_>| zb3A@iN>4%sK0-~8;rdb)8tm=pWqT1LvW67G@*tc%XHh>EC*Il)`1*i?{Z`q0eiCnI z^HFx791nWJ*zNQ=zcMFeC}jCFojm8{XPLDcz?I%bj4xjXhO#j=H;$+bqO`gK5AOum z&!*(ove9b28y#B?mmjl*Rvf<`mCk(B)rlQtC7Aq9_cr?T4S4K8_q_qH7@Y_9x#0f7PTvm@tR z5o$I&u#2j3YIl<^#}ZNFd|^|uY&c_IY-ybd_}?_Iytv(|1u_Vf65?M^*QjZ0RAAe% kGS?P)ezBW=1%C)I06aAWaD{41^G5`Po diff --git a/interface/ispconfig/interface/themes/default/icons/x16/feed__exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/feed__exclamation.png deleted file mode 100644 index 54fbce83a8d8d6a6ef54897e4b9fb341f89b0541..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 761 zcmV^kDS8l!Z^7z8q!f$dMG!pnWKfSH3W9j3pok!1!3SOyETV`Ww71d+v?(fr(1Vpw zn@Y{2B^#5?Zg%`CpAQ#cGoA7Ig&Lg+w0Qn?v?cz+dXYX+<_BJypB z@LtCFg$bZo!q@pka^5n0C4|FJsIN!f&tQjrsCZH^cp4`M?!l+$u_aVuMu*?yI5;Gy zBevCt=Ic9gs@spl6irxGS610R#ja$9Y7fEPDC$m+a2vOgQm$TlN$zfB(Ub45oEpYRPwn!_NTlmJRzv6 z5=bj@)wayKXTzXGL8KOpCYe#2oG~+;NcNCGx*;I6KulFu6bpU1c9aj?)7+|3PL)hc1Y`H5Lku~arnuI*X@#zMGr zsJ$w0X%cQ`0{L7OBPT{0%7cTg8j<^Rb189Q5tuxPw`(tRL%peFUq{gFL~~V~S`~z@ zz6kC;f2b?@u9Ve^TdP`bX&uO_uOqQ5i1@XBoZ1({5amRayDgW!X4LQi$Hmw8-?2PX s#6r8I%3T*e?!DaeednC-yvI1__@AXX_c5`jNfPR03DvTKEJdaV zWo1Y*G>PF2V`wE_K%oN&b=i*02K&0q0yR}tC5n_}8Rkx4i8~|kaM%b;P893YlOpkL zg|Z5PYC#U^K{XuJAyc42q$K17nNgV%V``eCsDK2j;{u8)kR>t;a_*HWfcBX76|spP z@Zpz`f?h~OX3T6ClDbMI>$1$V*)M@5GU2N7_v?qEVB)Fu+WY;_fE;O+Pn+lzJB|wfCuS zdU#6$o(!-bu zNN~+sP;~NY#t-1y9|FPy?rH{iHUh6t#J`knXTY^D;GQAOXV}p1wP0sc4{mnenbkPI zp~$l7fsvfETt5^iwp9WXPM~9js-Fc5L zl`h$ax!3B$q7lKodl7vtKD7HH@Ckto0;Pn!!rwZ5s+M(V0kpn)#|QsSJ$VmUD?siZfbaNyi0I*UvNpX8c+eH<3cMcm z#Cm<*i%QR1wu5({2libeDubGO?2+L(>jHe;-Aca==cZ5>ABV5+2K7w~&q!cy0@!mF zs(ur39k`_u+`kF9sXM^*Q?S;ZV11)>z^zcPuF$4hAaVpHO(rN8aNS=7vET6-O&X?p(5RnNKld1kHV!F&P4Wgh8|SHS`yEINyTj_v_%USK|!mCAlg(yF4_qFY>KFrwQ3j(21b*9V2ZTS zYLa3ioxe9T@7>P1^X4gG559Nq&-uP{?m0&&r4T(RLQ-PLkmxr|w3r59n(IRv$Vh=n zAu!%Hrm}QIheU4eY949Z(%fkUElZN8Gz@4<5Z+!8RJmNrE~d8H-xisALknk`2fbQV?LQ{R)yX|XHYFpHSN-?o7yVg zw{C;%y8!IJL|y_a`BanPIKF`N1-$n*jV94B97kZ_7QLG;UXVa~8t6R_73v_a1GiFv z`#%9UaToaf9HM+P^+RG z^5F6Aj(4B$_dPf%O;Z$E33^#->U-r&o%mffGSQ9Qbpetw&Kd96)u3cs#xPnw?YELVB|Y_HKfWPv~@IZl Tv$35f00000NkvXXu0mjf=(x0j diff --git a/interface/ispconfig/interface/themes/default/icons/x16/film.png b/interface/ispconfig/interface/themes/default/icons/x16/film.png deleted file mode 100644 index 4efcaa7df6d1f13aefea3f26258dcdc510f570e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 667 zcmV;M0%ZM(P)1acH=3+L#h41-bhCn)P z;6~bTgp0*TzzEpQ1jS-;kw7wpA|a%*3G6&fVlT<@G#kUCofNE;r5R%XNziV$wPAcK z3hw%#b-c1~Ah?8Sa&R+@-N*Md6R>Lo&+||&m$m!x;rjs<pk|c))HZs8*}m@OCEP*lIIP z99;gK;n(>kCgTaBVTnv8tQlfA5;%^7Mx#Nc!b}*31m_H~L=@Im4B3Q%C)>dFV$yKH zt`khBQ`BlTTBxLwYT^CeZDby#5sj)@4HFkOFmah?h$YP`!C){rt=H=>RB3&Bw>SRJ z&uA$YqtWP8x0TwXdK*`DYMJN`gSO#JY3F|g7yw0+8);_FjmH20002ovPDHLkV1m^t BI?ez9 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/film_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/film_arrow.png deleted file mode 100644 index da770a5d867fa606c4f3e781b6febce3f1ff4cae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 764 zcmV@O;$>|5hBC-zv*_>dM7|2N19OIydR0^ zDApb0fig%YlhXqO18o8tcOs4HfBl8V+55Ho&Y#ggJ$i!L%B4>Y-22Ws@B6;{J;E5n?Ck6ufbQPj-bwt&n3X0bKrpd@L43sFlknZ0t0%ItSWK97i?=lcOixb>s4&7%G0dt^ zJRuDPE^ll~PL(T%QZwl5>l2U)Ot=Y%5IL|-6P0oWpL5@^wDeta1Xu9Hlo8mrjj5?A zX;>+lD3!NiTQ-Q|AQ)7z#VRly6FW&jsdE2}U|?WiCjv&G>M8PKpX3PcKM`cJS!w94cY~TXL>)IOTW~0Y%SAz58rnM=C8x^8ZV@fZLL!ln?vul} zasuS@d24xj*{Bf*FOq#{Pa&A-M_W7|M<$cmGY}Dsjg86u`D@RPm<~a)Y$0aLdjwSs zoN0c9o}NKi_I2as_zNDPx>o~XkW3~eSNG^}X)1KL3a?L-Gt#h#Xt*6Ao?hp%F5iW7 zjZ!0~QcGcUbW|FEQ5e4*P(q>W8r(WXt3Ho|kq#tN8FU`)@_d+k!o`Nv?M9GFrDO`* zB?m@@H`BU-wUrX+&$kE#2s9KhF);zk3N#vRhQ@MmY;&guhGAf2WJExX*Bpw%Kq-Nz zPRF6(dxWDQtgJ2I&Fi};Y%lPha6xB35YnC!89}jFL^_=oE$in}E_7pmdjr~EPhdO3|t95-BuL>JUl>3k4@dTv9U# zZC!!^X<~fM`?=S9Zj%&suoup|=e_%V-#h1g?=dMQYPH%s0Lht|nGKv_ZEtViRojl@ z-uBT0Aq0^rWs7e^RTtGr3I~y zgHE>x&-K6zfzeR|$I^l=9Go-(qmTWwf=niJQh{Xf2mOdmL=Zn8#blIYdLo1i@fggQ zsWF88r-DkQq6NcaBjAn)n&Xjm48bLQJ`U~+;NsM{#`Lim4$*a8gBGaQ>${~=>847}XNAe;|Nh3Ov$N+8 z4i0wrS63f0vPXFvR?lMtSI)46ijIozZvh4X{U;6TGLh7$cC7^JgsBc>1pwV9wrAZ{fjN-(fY$yuZe83cb?H4CA@-$ffM z63NN=X`DCj-P`@HGlSNq3*WonyYHNH&;9QAm=FSUb8`y-ngfBr6#ipGqtRP(T9jO$ zjTSiPM5dGtyxC|!W9^AbU@%#NG(oA0q0+^khrBoA4AYBUu0nL91acvEss6wpslU#z=2?}JM3_KD&Vbk;gm~9qo)ify>2+& zPK6=tKMo?1h!QM6Rti05f$F%I*$3AJY&IRbtpxRFjw?(a3-{#Yfq-e6Xm4*<>Qh5~ zYm{tnZ=0K&o5tT)$QaYF)zx9OzaQCH%vW?UK0dB)V;mQhj zg?L&#!szIz5`fTQ{5GI#x)jpY?%d*Vi;t)_NAP*^_UYczcibIRf!;2Bzxp4)L!vo3iqfT-HA#X!DFbo63!^4!8$eKgb1azID ztfCY(?oaSq?{GbM8LuanFf)&xhV!egBYluaB+%2-Lxpllsv=g`SD~irr?mY-k}u-b znY2C(f|Me07*qoM6N<$f<%U2 A5&!@I diff --git a/interface/ispconfig/interface/themes/default/icons/x16/film_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/film_plus.png deleted file mode 100644 index 17abcf8214bb09fba039f70cdf76ca34566df86a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 736 zcmV<60w4W}P)gBtvCnP~gx@@e` zdp?*Z(9xk`Pug&Vi-RGcwYa}_Fg!eb(1BzKnITv`ain?^IF;Zy*Au~sl!cfTQyk*{ z(Lu3TREE*cFu3c3a;)2X5L`mnIk;}1?@X8Cw7577(epfvjEpGvxv7a&0@Z5OTU%Rm zeqSMDjAyf1%+Agp8Bhl^Gc)S>>dmJYT*1(2dPw{7P^eZZd_2E*d8x%c%76?;M@Ll$ zX2gVUgkXk4h{lY=ip5R5?JYn)N)9ZZT~Qh;tv$l@^t3X7IBv8>N}^ULTE+%jGaWKCbWY2spNc8|j}QcK7j`ts{3_xTS?rn zJ;sLIe5MQ>$3dY`AZP@cL(?QUXNbhZh;>G=Yp>({wUnB<=G982mjdBeiU%UtQ#EMFHY;0_Ka&nR) z|Mt(i6LnLc`(^Kg(~>mEn3RpA-9`g~)!xcqPu_S4Uk(Hbub|*e1aF!@1sDJVC`pwq SM1|!50000RCwBA{Qv(y10{fofkHsB0W8Rz zJ$v>X08;jDZf520Ss^7zWqN4FfuZ(pT73O|A{Nk{hzq} zESL`xhsvYqL2<#KKYtjuY}o>0GJpH}li~Z%9}F*FeE{>J;`qY=WPp#44~WUiz{J8J z#KX!UCd>oogTz7dc*EfL@81loSFZ+Z*f6u;#<63^zWx3C7vu$2s5pKXfD8x?4FwzE z7(Y`Zr|+Cm!NiNkAU;SOB#+kxzkdBFLh{^WvH!}nC|Gx~ZtpC7#s5pKXeE`-3elE%w0Z5oyj+e1aq;0u*OpVq!Xo jZUE!Z&kGbA01#jR)KQfAz34v700000NkvXXu0mjfWI(Io diff --git a/interface/ispconfig/interface/themes/default/icons/x16/films.png b/interface/ispconfig/interface/themes/default/icons/x16/films.png deleted file mode 100644 index c004ac923a29fbf11c59a946b2d19b42807d32b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 741 zcmVz}*d(Um2D7ARty!+n&oOkZ|-4A7Ra}#8ob6BP*$~!Ui4-5>v!hdXI zW8;Aswp2@)n3%xa+?@5|($#!E55q8^ ztgWqa;$@8GFXNq$51s7p?mE-yG{(lpJ~kKm&@|0^xm*tFzr1zPnu%&v$Nu*NI6a-t zg@px)7@OY?fty%-*1fg7yeu_#6)&-kkB_5PtHJGZz}_l1&K8YEB?6-d@er5YWry42 zf~vNh@ftM))6>(kfKB8Eybf6)lgXf77YmxrW;vPQdehg}_azt%7X5xd4~0TBd9|~v zSH_dcB!BUGpJ(6xB>gjK0*$LwrOBg)A3g6n)C|-OQ}W%7nhwFMClU!eeLuc`bFaDM z?Nd`zD3{A0R6-aT8Nu-Iu+3&`6^smyYl>Jaj=E@DSaD`%rh92=iQey6XC{?O(Qw45 z1L7er{g~slV&M3odY+eCyyCc12j~5WX_|)7(NVfgE`{0A-qD6zonH9-9k}6fOP%7B z=kxgxi^VQnDs^XP=e^+RC9c$y+k2N>yfa?mQV0YBD3wZoZ?15c@awqRj+%bK{s=Gt X6pvr*2VKr~00000NkvXXu0mjfC=g`C diff --git a/interface/ispconfig/interface/themes/default/icons/x16/films_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/films_arrow.png deleted file mode 100644 index 00ef91b2376097bca7f81ee67489be8a2f3625c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 828 zcmV-C1H=4@P)oz?%dRZ zB$V=ef+-*chlNih{T>4D*7R5}VET4F8eQ z(a|bmCb+nxv9S?tZEf*oNm*GLwQQGnrc#s?$m9Te2Fn0A z5JeHp@bIugd0CeA?Zw;ftPCwKE*iSKyWwy+rgnzBF3WPM*XsrMFK>*rCLR3VqN=;1&WNWdj%7HeSNBr-H(^DH8eCJ8jZrp>!H)C7pJk??J5FGKa_`Z z>3AKCDLgnXVV75oifCFMc; z#bTj{hqH2v)VRy#QmQ>am8(Qki|xzQN6-|GR@vdw<`wD64#D?XsTmMw*+O zb#y&FI~{Y>m22i_Zydhm_8>OzpHvYj4{b}M(Go^25)%*X@}^Zi*!pt32Ja4D!NRwV z4=>+-M$Mga%^T@N;JKLpRPBKB&;pSy1>2h9)(J{0rHb-^|9P(ldGV z8NFTw%C4Qx^F0aOH zS2r7sMh|&w;E9^CzietNA3r3+w~!m_(DA&7H<|E9fB^uRad2b4PK7!E0000q$gGRCwBilV3PUQkn0S6BBC z|B#uPnakA732BGd>qTE*U;4AAzP_GWelW1mq@)N`T7cEyIiS7S9&|dLn4X@l;nO=7 z7Z>64`H)JbG@YEBWbTZVn!=VWLrQETx)HPf%p%mMJ z6q6yUGIV4M@kCPdvv@iI<7ESwU>XjGCwhB(QCV5Z7CIh`+(My#2^M@u?g1kTi>%Bq z1cN~+iUMwGYKkykp67%6@%HI_hnji=ne|VK01wB2T$j)3wd4(HAIUyKCh$AB-NG9n($H&JB6Uz0hy1M#f zNl8iAX0s8y-Oh?9ic71=#@b^t|J+R!DL_8FxlYbka9`OTibe#MWtT^AwhWhUN(z#S zs_~t5sfJ;nL!N$gQ><-pqq$`q{oN->m4nOg>bi|cWaX8Hz<3y!PN#>c*CQ({6K0cv zz6&TjiEm|PcIf#Sw5cP?)z=>Vl<~9MH99)lz_Sh*4@)4&3ASSj;_C_MXyPKPh;!wz z5FLlrjd?tM;>EhW1he(v;qud{nYqu!c}bGs@p#x}GI6{JOa1{A6kAbf%f}(}XOtYz zF$?-Hw1ahAymS{v;TOziIZtOWpQ1I&g-|H;va_?ZigsY>xO!xD@6m3*!dcv|B10y> zM*CACMg53JwLb=HLH4nwXxu~38cbBP_q($9?x2I3Guk2Hk>aWDjnnUUzXccof z6hQ?JmTr_3eU5M5$L*e*BSRS;IPdb#IrrT2JNH~^X=w>0j4>2MlBBnM3ADDhzQlhd zl}g>>%d%21^!N8;Y;3IX8)$25qg9@auXUIfgUt`1Gh_*Pc-x-{27^c@lL5J~Bb`no z91g>>ETQxB^JFfuYzs%a4lQ?#-Cz4ifBY`&hdD#o$zMo7ywrd>(o7~ZH#$0s#>PepY?%$pb)84(E_JhrCNB@#rVQ5XhqXe<_EB%JGYb93|Oy1KfI&*x))zn>1z z)z&u&e z*2#@~hlhue&1P2=Lg?!1LT6{E!{KmpMj5VBiT8@Z;AL~kbnNand`qS99N0M>nxUZ` z6Zk4BARgk<4;hXROjx!F??naGe|Xu4WD<7*0idPjTJhjLo0%~bP1DfZ+l%h*ZjU6Z z@LpEoy5K}P-&^jn>5+MSd`=!OEWp~_TrEz(?_*V2UtfR6d76l8=>FBMGajDzeN`2* z!QhHMJ>BFha+K0garJP$g!AQqH2hbB-vSH(WhGg%9XR#+00000NkvXXu0mjfcNbrJ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/films_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/films_pencil.png deleted file mode 100644 index 1bd451a8b4729a79770b5949e14c277c7bb4ad67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 810 zcmV+_1J(SAP)oo&B+)t zM_YmEixfVjL1nPerDzIS_|T+C^i63!w3Z4@2z9K`f(k4`( zFtA9d$mOov-R__6@8ayQbl`CAJ->6#?|gp0-=P*47ePdlB;Mt^(P$JN zj|YMvC^|bkOWb*aC}4-x0+pMVVzC@puwX*4C^KhK9h_)PTumv)JWf99JjGw^$xo zUR3x_Iz_F_%k}p5YK*!K#Gl{cZhCHMtk!GWZEbCaWIFvyL2x>qBwnRbsbxkr42JwY zURh#pR|5_guYx2`_<9{$ z9(AL+`5f*~_?~7sX;8l1rQGAAS(ZgdM+X@uJwmLFP0G480@^|2Bng9R*07*qoM6N<$f-oO|qW}N^ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/films_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/films_plus.png deleted file mode 100644 index b14d6b553dcfdb3f25fdb63de462d7316cdee618..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 799 zcmV+)1K|9LP)u5Cym|ARWrTP<4km;Ultd7Ox70YgySo?gA6Z^r zzD3Q7RB{Xt4`XU-s&sU?TrOtCneb|_q7rEI0rrL{0FUn2qE4q1u~^I@mTsg{DR{kJ zsH)0!adDBk%T!IpQ9h4s?ijnjGDxj|<9-%rdE(i&Sdo#D5gzF2>EVglOaa+U92x|WIXMZt-OdtQp9OrV(|>{mKTuU+L|sD-^Gnfa6pEri zSXx>lj8_!J=)ZWUy}d^p8ym*i*;xz>3?xs7ysv3mS2!Go^fzyjwx%JM%j4(P4vbYz zM!(-5fz=AI8JDWRr~Y zDib8B><_O}P%tqu!3*eUZbOZM7YGCbC>H5JL!l61Lb+abbaZ^MTCM5&`g&rs+1TT` zrsj4Y_xXIp9_c5I3l4&Q^B(h2G$OGor#zDL?$hS|tb(GValSUUW}v+J(a}+vofBW? zi=MuFy6>OY%g4vZvAMaK;0TO|wWZVPDWe`{^M$j#>D?R0n76(Fs)dgkHN)*#tv@wa z9r?;TU_7iq{*d7KK!K_$uvAE>JK-gJ#~+cmd;2gv_cYS4ZuY8BF>isJk&pdLTvP6lIne2 dlJQ%B0RSkFXX@tEtMmW>002ovPDHLkV1g%ob9Dd! diff --git a/interface/ispconfig/interface/themes/default/icons/x16/flag.png b/interface/ispconfig/interface/themes/default/icons/x16/flag.png deleted file mode 100644 index 7a56f68691763b44537d11e6b17d51765a650ae6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 726 zcmV;{0xA88P)ByH+Hw^(rG$QYQ5#B63*~Waf)r`KCW=wTg&{=uK@4o5YBMtSDnNP*WkO7E}yO zup*SG#5|okm%HnC<5oi$z3AX`_uTV)zTf-(e$PEjQ55{orGLk9u+boAlW#|3o~W0B z{Sr{T3^<(v2IeWYNF-H*0>+GlRV3VJs;JmttF3i$Mx$wB&hr91gsXLmt6Hu$Ke&GU$;@i_`BB7jTm6){LJX@Jgz4tB13R^#EWB+&O+761FN(U!t;z8bxs?w?Tn+wgq13wvqKL6i_yqL>f~BT+;c zG#%4vS(NBGEc_fEEF1cQTaQ2B4b2JK;+#NT$24*WSNSc#0J**0eJtJa5&!@I07*qo IM6N<$f*q4i6951J diff --git a/interface/ispconfig/interface/themes/default/icons/x16/flag_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/flag_arrow.png deleted file mode 100644 index 26f8217f6b92f072165d9df6bddd5503ce1af101..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 858 zcmV-g1Eu_lP)Q50S0jx*z(86Pw1 zh~pdaL7Iw_5||Y}QWT>;B67;2(9*sF`zXvT?L&X^BQP~gDFvglutbo`7Z~Y?nt~}k z(Zn!w)J7d==C-d{Sx`S+Se(b+d)>X(Ifn^?fdBa%hB*!zn*5;IOh%sMn^|!Qd7e@g+kd?ROIZ;SOLX5ekKkv_GbqXgrl;6 zfNh%e^sNHVyO|~@u`o9WtyYVd4GrB4SfLKsA~3p{z?*P{^YGZMra#JjeSH?DreK<# z#aELF)|C}-B-fKjG;VHqTwmWq5-y7poT>02l*$a(q@*oQv9UoGlZl%i9mUf8JXV)U zF&QnF$-pZV@F0RawY9xwpoEIs*)yQZ2Iy@Y#)w!WBxhym-;9q#DwTrg`E}@YI@HzF zydWblN`N+*=m8PHwt-CqX*8B*8Vve5((bBOL#0xornONIkjQ)nbTBbgoRg4WajLoU+@sequ_e8`%Gwvy zy5j6iAH8v8)}KhsR*Pj=GDrlDz6_!6-;3oEreC(=M0`$pUQ^kbhY!Lky$1qMr_4Kh z=8g>ygIDsp)WkqtpK;P(u-naI14s{H*c-~=Bxi9pJC5x+S(4XOQP{L<6Rx*pziZ6c z;pa6@w`R%uORk>+Xs+uqO2kDlNeI%gol6!WKRvhT_^qo&_bpab*3U$Cd~}EkdEPUQ ziT;V{k?z51xq{azwQ96hwi>N#YZdE05L~Y$;py9Z=Y^6)bRG!DA==Xt+zD!e3qj>% zXc&m-6a*(jqfwbsm@S^7WaB}(J8)S2GS=}&!=r=SqQZFV-ssfYdw)K13UbH zIUXn%fyNN+Nkl+3_=hn=!X+f!W}G`WQ^?CpV>!;)SXO2-G0XwlfByI22ZouLK{~Nh zKXvMSVa=Kh#bB`cJ3BGx^TFwKqV4+imkc0M2FwuPi8V+fwzCe$ax2}aPf1B0?COHQ zuMa`LACf47rE(LM0Y*TcYZaF9V=RaMh4aDv27m}kJ%2#^&SYmCY$v2yFytj}IAbUGaj2168=%Z2L7 z%6HVrV;bP0UhM%HATmab!D@;p*A*0G`KWe_)rzpY8?Ew-erXt&LLE5H(m9Pv;aCGz zSPz#|*3rCUm zhp=7S%x|8D+pSgY$vL@$Myq|2IbpdwB4d?ADXXwGBz$XQ@MRrK2F#yP&Z9Z)SyFnj z`rFg-PiqdOm4%EsP<&q-<3FgF% z)b9RfG~7RkzVJurgv3-y!p6~2Fl>x?>Cd3NKd0#EzUuQw?gU4at5b3y#&PycXu52A zwh#Gh&w*q^i?67aE}s%!ci_h3c6jKYF(+vz=WR&(K12cGYIyzl!w-}^q_IZT#i{LiC(%W*K%CM%OGM|*)#mjN0j zplA(nE&&WKP%cG?D*~$sGa^>K z5=u+Ao89iMvM5@li3!Y3Ps3)j;axa9#DD~Kzl9G+Hlar99 zrZ6W-NF@^BXxw!qVzyZDEEF215iTer6cVu>dVQVI<=VW~>D-i*B<^c0hWN}378ht@ zGP*zzAnJ6mlE8!R?vZ)GOXNP*5BSo6Bdr>vV2M!O(BSwuHU^&OA&TNM>~=eXfxsvk z*{J~{g5m)QAgv-tpqAbj_j){zX`0<=GQnUlAmI1EqFg(95K&rJ1h`dhAwoFY8xBY3 zwc2H}&+m_tXuFc*X)zEA@~<&j#=+p^pkd3VekZG68fq&Xw>{^hiXagqI@<7Rz0$Q( zi+Kw}vYLZnXApS?x|j+gAFFJ=-ty??si#Xuc#V_jQ^=Z?9~!hlTHF?3pBl_$;8;lG z=+5S@mV1{^K8`2l8|z2qdOD~poi`^5L|2TE%3#O0xO`;Kaqo${SK96`rsZ1&;~1DF za#LfYBj2b{PtRWuh`j5^T&8({Yo{l8?MyFq;_Ls60eM_T6`gdIivRhMC=PWj<0TiK ze|mUY_U^`u17$c!F&m+nU?LQ$#_Lq`d6maB>P-}DIV}EsKU6aO1$Ul&z-x+$YH^mJ h)G-xV59Qwi3;-o3s5{p3VDnAer#G;bQP)MR~ z)IJn(w#{w1o&HB=O~I=U{5bE|^Stl>d0!?70{-U_Mf;v|r$Pm2GAQ%ZrQ9Xf*g}vAke_i%!6P0h56SyNI)#TAdz2J4$0>b}!G)!nUvg zhs}mnmkS(~yOT_mDit30^o&vo4PpslBs_!A(CqMxjJ*njLF=*ExNnn_urDpay+RdJ z&>>POc$o}pGI-e4_0kD6l6Z(&fi^Fo_xgho`AuZz=j*>rPeUS+fam!&qNAhH-O=${ z&RAVMFz698AOm>)1Q=w||Jn(&S-(iNhet#}E|;UDz5VUHMpF~1R@;tDO;vseZgX4Q z!XQ!IZ?TL!gM-(^ZSC#jk_1-sE-mfzghG)SS66p(9;n}NjUF8bxq(9vTMP9kMg2ye zm8|bH*N^iFtUBs4R-C=gtY)jV!Kl@?2$SAF4w?mV1nx=!IVPMdf5F65TgnY(XQ_0yuZID;_fbg-5{@z5BChhMoiBpyVBU(dkPuYFg9#-n(C zN{2ie)7&U!&4T@taHoom6dXqmjmd}*LgLr0g(i0P9Mj@reLCKYf9f9~bYh<8OzcT& oBFm+ABq6?f1;P7u+#dl30OT(mne#3l2LJ#707*qoM6N<$f)#steEg2XQ3JtnrczPPvJ%uF zBb2C?Id$pgc5m;UGc~9`U3kuW?tRbmocDdsxr`)9_@5{E4a-79lO>szax~`%c_L8k z1k|Cxg?XT7j&feYtSs;sVTOpQL_8dpn3$l+&Ni?rRaj4Tb$B?#R8qeC_rgJj`Llv} z!ci_RZl@+Uce|uiYMtZbn4X-3PN&1$*4ADIn5PPu8DMCoz&gSaHaa>zl6K@`W7khl zOu*@Iz~ywpJ3kMW+FeT`8m$)AmX100-4Pka_ z3hp`Tn2ZkLI4D&rM3X>UQ`57bfQiVRj14gR0Kpe9M#chRcTth>VRRGY(ht2} zkLJe47i45j5YWNN9*_Wh0jv8HRqDZ0#(Q8R)xPUxWv`R=rOS1lUW2YepA1a)i3#+B;ls6zd4`dzs8(TWEN$WiXb{k^r-Glu1NBo?3CO+~;MlIx`tm!MPd%9NNDbH1_`;D*!ToTHaQf&@QiNCPr=85J zTJVZU`7$e&>@72$ynUtep4%tg=-d+8O@#W4{h5Ni#^H4!BRAbYx3zaIdqCv0Z!Yn~ zfr=Vq^VM_hREgR45#5~(?Y2R*+gcy{*To-95Z<*7+86J!-wV)@BH~gOy2kFGl}wp< zQeeO#`lcg95h4j{0*_jLKtE=XDB1%&CMfVjMFq2P{}}F#?fZmV4@WRS-;{)q02Kap qYH7#J;CBh{eXlSqT4ld~2`~VC;~8CZu^prU0000pxhJe03@&Igaav415A6~RW) zNW2IF5Jn~hCLu8Nbvs6ZkP?JR2y{Z=*$D_h1cdR@2qc4zR%7svAYFmc5wsfTf$tQM z>0tYOHB6vLfy!18Oy}_RR)dO1*d&sYWCi^o50o1rEhHUZy;=hsy>+HesDF=7&{uj` zK?IXAf}z=4&2KE{*U;|uKsaaQzY!F9pfb$!=#IrBhMmq}3^H+8fs>n|KzmRs9;emq z@`ZH-@}&x9c*5xE6+?%f}D1#itUAgv$vcn4?%a+V&3fi&&rJUw-{WrSPb)X#4Ri ZzyK=D8PSaZ6-)pC002ovPDHLkV1fy`*4O|5 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/folder__arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/folder__arrow.png deleted file mode 100644 index b700c10479aaec7febde7a806dcdbf808c4a76d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 647 zcmV;20(kw2P)^@RCwBqQeQ|@Q5gT-bMJDlR*7XK zHJ4COC@4dM$d~>>L`1#jqlEO74@J;pM6V@6L`Fdw6rq6%K`Hc*L=fyjC5O>gL$_)X z?#{N|bI$EM=dLYqIS+iCd(ZiPzw`Tk-)F>bGpJ=4I8R#$>sw!37sKkqa!V(4(6X<0 z^ag}j8)}+}4V}IA_t%nc`HF!%a2;n&yy5eKFswo#D+H2WcWWpx7z1G{1foJjt1t&XcHmO<1g28ENr|&6a?4pXG&N$S zSk(Cn$0p1^4Awo+vSxqO<6!rGJdf|etHoX92QP;zO$e{VY(B5^Rr!`H<=uJK8M(e; zB2<{2f!r8G*O5*<9kbyS@;Ki7Ro5?t3C_K8a)p8#Slvo%YfHoFQ-?!4W7&4t&Ea48%KAG}(tQ8`002ovPDHLkV1nmQBB=lX diff --git a/interface/ispconfig/interface/themes/default/icons/x16/folder__exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/folder__exclamation.png deleted file mode 100644 index 4f28e2e721599b95683792b0f112bbea0f444cbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 zcmV-|0)737P)K^T2AyW4G+ZPL=F zid3aknnMu16utQe=*5Ev(Srxc$%_YnAs#(>>ZKRG3SyvMs`w9h5;35ZQbKJD)=-D?691w^11md1ROn+Ac95Bv7oSuN}30UeF0w4k6 zSceI4O^&4)z&8SiJBVc)QVhz#HV!Cs==f~WCr~MWLbdW0zMn-ZdFem0lko8S#|A`a zgo`9n;M#!!gB#XXFqOTBMpz^#kr}58PV3uV-+&H!?y-1CoZEVXTt}v%d`u@&vv3n5 z7*5R~2$m7kIQ^*C0*pC zszat4M3EUokI&l_Iw@W8)7kM@>>;1eV?X=}#fQj65jxlo1cc~}Q*So)g|+m?IbA$P z{TriG=SR0HpYeX_0d|@zP)QfNd*98>-3ulUYHmHP9he1hB42jBi3`jvxkG#hSFgQ* zX9w`S8f8;M7;YMpiX|elu4}p6zeR^CE5Vqiv`f z168DGyAy(cqTnJft0Wui!Y(8WMTlD$-4wEEkrsr4D zX%f@C`S8wr`D)46z-8vm%sKbmJLj=%n!^sp@Q9`<3^#rngZFmfn8prm+`RMT;~OZ| zA1Va0>#!n6rgn?RT$2tWjc5#0#5 z1#2Y-;5~xw3bb;e zfM_BfkDkx?>Blzic6h=*v1<6_X?_wfG#roM7}#0b*uaG`+!_lg+D!P2sf<>r zk#sv3i&gxqvyr`DMDQ9&()q=A^I|o&u=uc-4>;o}m&@Lq{Cp*|l|^RliwZJ2o1nPy vd`>)@zK+|&{LA})aFE_qE42LmUw{DsNC*}Agds<(00000NkvXXu0mjfcEkbz diff --git a/interface/ispconfig/interface/themes/default/icons/x16/folder__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/folder__pencil.png deleted file mode 100644 index 7725b6302f38d778403e2c669904e43b534a2df9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 626 zcmV-&0*(ENP)(^FFM=RBRB1#I6;Wuxo8k{h@n|oh;I;K^5lT_7f}+$zgNPK59u#_0%PMIqqM@-E z%x|+ZJAH4nZ4g6~fwyn=?fbs>yTYE8;3EXCk{U#3=esd@%9nugEo6wsZ@-#>*1JP3 z3-*)od)u!8*X(?fP!5da?1~q`AP6Iy1a6bSrRb(j20}^@rb(ci1eWQ507O6-s}+G{ zu&Y%YyhqSF16MoHs$CBPUIx^3aQmbp0$(gwQ3gtRQd`d8&z*Uc-mmP~tl%ExSJymW zZE&1}OMdu5Jy2c=x%Co0+Ib9&jN!|Jv}cnvzV+-HxY3Czl_LLZJV8l8;R|Kppir=} z{3(az-8nqUf55=R8L*wD{I`fuUl^5o-ScPMKP40jUy;qe!{tl+@NoJDj-4GwPa;Nr zX_TOKqr_sZ=J_*DmZ=+Vh)U=}B(u7NL~NC4}lxo5Cx?gC6+fgd0{P{ zxU32T(_>Co5112)(J?H(c!qfF6pr*oyn45VN34B4k?rLS0-OP_a=cPT>im_dNSY!K z9X*NuaP+^0GOk9AQfIxfQ9-pXx<3CPf?vPI^~u!A#rgZg`Q+%W-u}bU)(a#gN~Myg zC({QP-q=`pyrlOFCck+>ybbLY#aLK$ck(ZP%ONxSTF=q-=av8i0G8iH!7J5I@c;k- M07*qoM6N<$f|e~FFaQ7m diff --git a/interface/ispconfig/interface/themes/default/icons/x16/folder__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/folder__plus.png deleted file mode 100644 index 221176212ad7e7da026a1c1b692cf81e4864f573..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 592 zcmV-W0Vs@SVX1OfN8YJ z%l*;szQn$YG4aC3{dvwk-}ye4T;MQ+F^tjFhWm{lT4T*DY+X8`gZ8e;^*Kmc8ERQb zE)UOKZ*8UjU2%v4bfHiY&m0GY;XZ-#2^9UVt0-WcgD^gU^a(6|4+0PYVXSfl+<=u7 zRq!4`c?C)qAVoC~Y)=814r8A!{wENmK-{gssjb7W?}re@6ncncn;QkCAPLb>2n zzMrW>7^C~9#T$A*ZYpRm*9QK%pS-;FyQ17LGr!T=*?}w91&Q^H zv{xPkP(#a*MtJbq06uNTA)7=Q^DOGIVv5;Z?m7)}Q{$~G@fogS7xDt2P5;+bL{kYE zQ~eMSqL|KQK5rVDZj!5@%bR1j}o3ThxHW7CR_O%T^u zQa4R@XU6v?yGdFQT=FKEQF}%);;@6GBv6vxD&H$}t>YPVl4dP8(0K4hRhY{HO~&VSbM;ttX}-R^bS77rn4X%Rn<6vS zJ5SZ+(=*aPe?s&HD0k5L;eV7YFVcJ$*T2_hYiqT$TBAT=pV0Z&fBjd00RRradz4P1 Rv!Vb1002ovPDHLkV1hFSH<17U diff --git a/interface/ispconfig/interface/themes/default/icons/x16/folder_open_document.png b/interface/ispconfig/interface/themes/default/icons/x16/folder_open_document.png deleted file mode 100644 index 99396001e4c01d97c8ee408a392fa96adec2e9ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 697 zcmV;q0!ICbP)f(NMwL68bP1&?A6wt~__3$`&a7PLQU zHchrWGwb(lca1Fw4m`g3``)~H^Nm=3B*9Gx+@x?4|JS}n5oWlfqGX09hK8;`ez3Py zLD={Sx3>WA$NGd3kn>~gI7U9l1YLzuKe!WL9IL#XO zl@dW)jpS?I7_7Ai39QkG!Z04VnLGy1oWR=R0z}_=I9*-H_4J@zE@Rc3JiU^=G!kmP zBAFn86B&aPR%=)yYwXmag8Y*Za<%*rdnOyV3O;kjm` z;W0rsq5tDotbZuI`MkTcwe2bog2?y^B0Z6y$T)^e9&r3ot!6~(;FWU{H!g^28{zWN z!ocY8==kvKw{zyst?#d^0}~NusV-(~->YY^(bD8o;rbqOB$Fp^ zU0?o{hEtqFps5XJOPp*JOw((jx{m34C$3eGhLEdQn%NjbpkV`CNH_~QWYZ}Wf4)a0 zF`zWAC?x{h=!|5|Zb&KD6G*|~I*xY;1S3f7*of4`I9T&u=yi1nH8#SsEXr&Hq;?875aDymRt zdua&)l6_+`j0J8YpU-1xWCY!j$nDpoqx}XKwf0EiKyatlFpUwBfX-Ixe~@a$#oc|> zaR;GL2xFFIuT@}3?n_^VAVLmJ(~!*y%vo6sO*Wv;Fo>I>QmHUaDeyrh)Z|kdlnMn1 zYL0rGN^uMx599GWhF~Dzm9@n6eRt>AP8|SkMTEeaek-i^+E+J z1&mNG7EOZ)>IvZwUy*Aceg0{C&z{XK;r3QWWU7QaXZxV$B^HZ$R+8T(5@N!SOeV;x z9Xz^A!>RpjK)N{6+7|EX=<4lw`f@}JeoQ{m>gyM22Ke72DNCiCvCiRQnEu0X_Isu$ slg=D#(h)69P2Hs{=O1Ie^hbaJ05}?WHL+f?!vFvP07*qoM6N<$f@zIY9{>OV diff --git a/interface/ispconfig/interface/themes/default/icons/x16/folder_open_document_music_playlist.png b/interface/ispconfig/interface/themes/default/icons/x16/folder_open_document_music_playlist.png deleted file mode 100644 index bddb6de2f7b326787d394624fad2e8e1ec55c7a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 786 zcmV+t1MU2YP)>q7Ok(20n?9K@p(_frMsm?(VkK zHryZE-8uK%&UJTAgP;Q+=O4fCe82Dfe$v820&7STu864<|2I}l6QkBbHtiE}5Q$uP zbhngAfaccVtZRni>kxAQ5^+>R9S$r!J%6XNl?}dqMHFuk&YD)3;Go$Qv_uTK_4m-j zLzc#}QbACZyZoBc3(om&0&Xyvlx}UD9zVi8ZHUdyLaOhF!{tJ)*Nb>Oj%8(F-(t!5oLq|<4PPE4TJ?|(csIXNgZqiPQ~C=5och7k$597SQRoaghU23*^F z0#4zQDO~R#h!=M%kU6uZZ^M9F;b;#yp=kzwsTy8uPSpD;nnN;lU6+WZz=lYnDqnmo zvY8F!@(ig}hFFZ@)?pvU-bpBA6r=@VNf7KzK`5Z$b_#?L%zyfb$njw)dt3;#*P^La zL9|mrTbuAkE-R4dmVw^R3IP)yFq^=EY=I(?4&mD}MIh|M^b*C5gGHoLTzH_PSS(89 z<_O2EAkmqml;u+!3@#^dZ(7BN3`Hvb6_*akIM+iEYIh)arrzRWlt4|D1Q;}d6;($ems4ax;1+0{`Hob}LSY{SpiYw`OjZzfk0eAFAq+Dh{4GL~!|-G{jAuZfNf4j&>i3zI-!b-2WVT zLEP?5(F5%7mgM<-O5Sx~VqDb2xRzA=)P#Dr&VfLFe*THLqW@^?-+u%c0H(l$yaQnG Qh5!Hn07*qoM6N<$g8t!Un*aa+ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/folder_open_document_text.png b/interface/ispconfig/interface/themes/default/icons/x16/folder_open_document_text.png deleted file mode 100644 index 50810b11ca981b79aaaf3a430625f2d7f7ffe5a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 749 zcmV{BvhlcU4w% z!~6r8B5cq>$?y~;5h4U#BIwk$W0&yQJ?az`1ce=fAPn{-9U~8EPmFe7t$@&F}kt?|Z)=TYsWJ4#seYrUCrlCMwH2zWSbuSIK3;0R_r7uHmYeTBN9mQf1TgKG+jpVfv zkMj*h5=2k~-$x9=IRuf}wL@^%MRk84^?DtS1NtxR;4F?AYSSS>b&t{)}Tw0pdxZkoz_#S-jwG2}jlF1~Lt}bLcJ7MZNrY0xh zlDbqXh2>(gsqvNvn&8LM<00Lz9Uelh)ljKa;LsJMaT1dg6L4LZolp=&(!=EBwnM?D znM6t|$YhZ1?WN}qLIR!6k4_Pg0uLg(f}$w+zPyZT_Y8d74$af)C1h};(ZD$(3l*$x z0r`QLfRhK20+P?k#KH0DFzbcU(J(ldPKUEf37X9&Qy#n)SRoRZGvnBOF9MO#+m=eD z5Y=iG<#HJ+)x1K%r< zZ5xs(LFoRniSp;A_um?|N>$ekF#1tmfyEgK8W|^{Q$5J}hh>>8cJTTo1-GxTIT2u{ zv!{P-cx+<$-G_qz`0LPHC6Q=Q5Af41DIBM)o!AJlNOiHew`*OrcB~s6D*BwYwdZu? f{iCga{}EsSdoXL-3iPiE00000NkvXXu0mjf+KyP| diff --git a/interface/ispconfig/interface/themes/default/icons/x16/folder_open_film.png b/interface/ispconfig/interface/themes/default/icons/x16/folder_open_film.png deleted file mode 100644 index 75b398da3e897227c6cadede7fad351c2b61fe2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 775 zcmV+i1Ni)jP)Zy@;HhkaWeZr@ z3|>4-Vddioyjp492aqHz&e<2o@AZsP^!fmRusCef1f#%HQIEl)%Sa~D=s6ODNA*JW z`5{qqaqhI#-`|gPI(@brK(;Llj=Lqfx-jVaHgws5ZRFwO44Lo0AZ)Pd>FMHMIRTX1 z1#npGx)bMh9fh487`YslmNaC3Y&v?$kw^p<iVy2UIA`AbtGM zv>b@FluRc7VxR~@6P%Yhp%X^lv|$PfUat>_!z~D(80d;dqu_Mr00X;3-9@H$t*sK} z&$Dsi~=A8_NKQfeBG6L861H)LUdiH_;nvgRH3VRt8`T3ky%L zAQp=ukw`#U_zD~k?E-Mppu~WN$EJ__yHH7SRiJV2PoHuO@p!y=?rL0MoLIDR4=2;jM`Y=8o;5ZAOf}3 zRHO>dJjfZgG%_-RY&Ppot!t5!5{CL%l%{MT*wEhH+1=YYdH-?S-IUmJhoLx}dp0^c z+M;RN%mIK4XP7$^1&$seFh~+KUyEC}DQ*7aS?~N2U;s3tTL}j9JTw3R002ovPDHLk FV1hNiU8Mj3 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/folder_open_image.png b/interface/ispconfig/interface/themes/default/icons/x16/folder_open_image.png deleted file mode 100644 index a63d6295a4730d585c52872c90f3bb5237d76dbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 802 zcmV+-1Ks?IP)gpFZEG{%ifH)_;{D|ZqTH!LuwCe`8hC;P<;Srz6M#0!DuZaPZ2#>ErjAE2!jfi!Uniz-Xy}1_C)5 z#m3q)#I0FmYJ585J}DJgu=aOEji+x=H*!RPs0uV$W{%NZhMHzCB7p!nR~Ia1Gi-J{ z+iPp-^-($BUBCZkp@2bCRp`b-VtL^({4t5?&jb$h9!ksX=&T29W}v41>3>T1<1JvA_OG(ELOU=&n?dVgza-feexhL63iKb_liIXQ4_vAmR=akR%P_9uI{U zj+9Dq{P!@8M`b4H_-fAdZ$-1h>TLr#)&QH;PO%AETrw^-NH7Qj;@jH>{`L!kZ&W0s za7BcLAm>bh7+=L^=s8yBClLxRGJ;PZMsVTrC~oyNe_08KBYGp4?+g>?P6{@?o(U}s zlB)+XsbVF(i=~i+#f2=xZm)OXLE`$TQ(S%+nVA_Ar~rKwIKM6->U#fX?o?|>wcY7* zaP)Aoy9?EwPpJVF9uLEwntHcTvWe)kNj0e7W6zu`_JnHUl%o&>-3PtwYP$=wCdU>4I#rVeW_15*Z^_~(Ao~0C_zCz zh@dDGLA>=YNUuG3(SrxQ_&@7_BX`HZhPNlE!SZ zv-896&F+@93Apg`GT*%S=G&QBVXdY5vQI(~`GRf`(P{es6S8due}Y2sqPBGA!tLiv zy;_Z`b8|#mPg;GSzCK>On-4ww7|U8ii+ASL5~+lYF$A_Uo&f5s^%&r^gKQzc+l|QZ z00Ce-r32x4(EIt=1t^mSd|arI?P?aJ=4k=M0jxg|km`a+N}5&5bzs3-P5ODaSszRd z7>vg>gLmYWHTHsW@Uf}>-+&|w7{hDDXE>gI&6%`qE%sXA?aRIj;Y5E*;LDG6{^X)eCEG|)h5cx$$J)2*L9=`lIyyX|V zeC~vJb$xH+?2!sxZid?(sc44pg9Yc~wRamYpT04x-&^(&`$htvvk(GTv&uNes37s) zHUH-OZ?<{$lDM+^$-bUHFHYTmrk`XBju>r5@2>y@0Acj9U}wzMBme*a07*qoM6N<$ Eg0zzxUjP6A diff --git a/interface/ispconfig/interface/themes/default/icons/x16/folder_small.png b/interface/ispconfig/interface/themes/default/icons/x16/folder_small.png deleted file mode 100644 index b60ab4a1bb89ea7a61c1700a5ccbd6ff53d04093..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmV-W0k8gvP){{8ur;ot9H2nPUN0}=;P>_F~Myn*=Z56FNY48MPT2jjm$mwbEu z8Z7?jA43MgSO6>h`JDlV|NZ&J@b%*-29t{4r9e3af?oLfn}H4Nf?q!%{s#vAw{PDV zUVQurmLuqbZ@(Bh8G)WR^$1hEl9EUc{5VDKPXhzL2XL{Jn%z$V1?q99_7 z;N|YT+|Ezld$WJ>XW(P@ee=C!Q2w?sA zY%NUEgKuL7i9LHyKfVE4bN%As63on$APhq&pD1Rno(J=Hk6lel-`I3Xf{MUK5f`OW z2?~V*8`xfdDiT2e*dsFolNlI%yNwgjAOjjE#|bF`dolx^8F=^tHlXauAdFk1d_a4Y~&-05{_WOuvTHH2q6_V$M6iYMkxk;#OqUn z=Y;cu4Y2fSk+s^wetPk`1Qw&37zcNKfJ&vpNvM{1eBT?3{6P;~Ru@q}MkgpKN(@X8 zL4wy`_CdW~hbt$yr(C3iai!a3J@xsy z6Y^Yqcadg)9^wQSj&EYlXb+Tf+iS0`(uL)tlPH^i{8a#{!eGSg=d&=4eSHEAwjy?(KjNJ&?|@SNpRL{#bK|G%&>z1t lEPR7-;+ejKk6+gW7yywehWuo#G1CA5002ovPDHLkV1jma98>@R diff --git a/interface/ispconfig/interface/themes/default/icons/x16/folders.png b/interface/ispconfig/interface/themes/default/icons/x16/folders.png deleted file mode 100644 index b3af87508fe36e87c8080c8a8c0b63741c99aadf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 574 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 wRenI*24ML?`byev diff --git a/interface/ispconfig/interface/themes/default/icons/x16/folders_stack.png b/interface/ispconfig/interface/themes/default/icons/x16/folders_stack.png deleted file mode 100644 index 477e7da065c3d10a2b840a936fdb455435c347c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 565 zcmV-50?Pe~P)maL_nZxvLbQ&z5*e^ zl#5`6pHRCwB?RKIW9P!K*pgRv#Rwg^MA zv9K~Rlqq6pq)JuEQYFe>OU=@;LzQer>W-@PPv{b=P94HO(5b3awGv2O=wyf#9KifA z{m%GNLlTyr^!f1l?z_8p_fQs#1^tgC_))9Xo_0E&-FCZ8syxPLyz(PyV-1hS`k2YTdmf`Y&HuCMxzmVo=>hjBq5TN$z;ehO(r74(8+P0zg(+; zrCO~zjYi{QFc=`%18%9`_b8Fj2wBOt?U1BiKYPVQYXsBj^aIq3LZLvtUJrqNWHn*( zNYf0;<#LqI=gG3nFenIu_mV*H!*yL&tzxn0pl<|e$ecj=N~m=`MXIXO$;p$~@cZKX zKCKZ%(q@uUspROo9+If45^6rkqoc>?`2HFA8J~jKm`X@eE|*VJDJED}b9lJ_7WPZv z$L1KtJ)>okt4ih38{5v)@$tbsynh6~Kez|oZkG>|=JUC<|B5@|+c%yJkD0ZiD0d0A z36nE8n3Kd3{o8|kMDBPX4IDTe4)3-Qmsoj|XyzlnFVJ$$w-c~4?}E&Xz9+Jc2M;k4 z703VvvT+$2-vRssJmqWP4-?71fxiL_ Y0O-lb1Kn4a+5i9m07*qoM6N<$f@UQY<^TWy diff --git a/interface/ispconfig/interface/themes/default/icons/x16/funnel_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/funnel_arrow.png deleted file mode 100644 index 2213a2b205c6f68316690c69cd54ba310345ab89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 732 zcmV<20wev2P)XCKpMJ;LU(uf+%WIlyyRd=0%emX+aw$3y_%ZX;Kc{?=KaikZ{~Y5Ot;&G{~0rcZSXK{` zB!Ss%CO{yH0>ok$uMI>%Mj#M~C6mdNqA2KGL#acxS_7Sq2YeN*Rx1TbB<{uu&;UTI z)q0BRs>9)cN~MC1ReaTqM>XJi5o|Ua$g&I;iEEPHqXa34rnA1I84fSS&)RRDw>Y(>wpxZ-gXgZIK1QqDyr(Z3Fe?p#W$& zwA#kdxq;#CHk;l{=f=IL<2?}FKdO}0_*m%vG=JE0W*3>yWwY?!u0eR#>3z1e6~}0R zA-%vb%)VFO`sV8DhevZiZOTl*Eqzz8D%yY0kB$N?FMixS5CH-FT_hTraxc@l!iJwC zYX$#(GT`-2oNz*VVQrIP*~k3=#7IIBvC>EwJn4b$HxE{j+(lv_MVHp<$DHtX{yB9X zH5$|XDdPZ6t diff --git a/interface/ispconfig/interface/themes/default/icons/x16/funnel_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/funnel_exclamation.png deleted file mode 100644 index fd24ec75072bf9ea2910197f86a02af546da2b84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 743 zcmV?P)0H^vb%BKvyqhc=7aB>efxGkGjHB3)9rTQe+EycOeQn4wzd{6m&?#*#Ev8c?g5!1DrNRM0eyLh||hHwb7OpwsC*M{_L} zi$S$oMaLRORq&Mwf*?U45P(o91gfe~C)ahK;SuOFoejevrl{+Bj%)~mfRTAjpP^P1 z_W;LnFh76(Hh%ZXvMgvc8dQ8=LCa)HCX=~Rsf6`#(TSljQpmZvvky{9_QU9KZIxjd z*inOiNGg@OzOwSAz;S=GnVp?@e0O2fJATZ3h}+Akmpun|m#Za^&*}7udzu!4Z1&uf z!+QJu$>Xi)aQek5hT$i%bwtuWL=;e|RA6Ic102WcLB919AKm=DPmP=z5k)zygeOKE z7p86elxQ0OZ)0btVJ%&U$pi-{_3V{b5R8uNWbN3%qjo()Z_pkeJ8B=;tBoeWsVhrM zOVBje6~P-zVD!_S-2kM*TWXW_^te5wM2^IN{wl%p$6H`ntKb=k#Ib2FVZzJ~0QtGL z0ItA%hl4RK3|u83um)VX_!PW+9b4K8ctl?kA!Gdj4yBU+0y}L#N^l#?5ZC1aiCqVu z2OFn)hgzSkHrXaqLzcz9@If-ZGnq4h_A Z0RYK->XBohdbI!m002ovPDHLkV1g-YR)qin diff --git a/interface/ispconfig/interface/themes/default/icons/x16/funnel_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/funnel_minus.png deleted file mode 100644 index 40c0cafa1f8653519ab1d49c6bdd6dbaa68d88b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 636 zcmV-?0)zdDP)q6vf4&dyu%<(WMk83+5k4Gl(Dx2{<%PmjsfF z$u-Hv-}jm;iAi02@O$68_rCZ0e)oOflO~f1{m%&TR45cS>h*fER;$rqFbMW7S(anE zu2Uou8O35T&ooUBc7X4nI6Jx^z(|(M<M~;<#al2^MR_Wh#Z1^Nmxw_lcFfJ zvy*=YzfYd$QLon%kY^HFW0FiJV{4iwNEAg9mJ_+Pb?XJrKLX!pt04bX6+x2CW}k$^ zOmMDdbMxja>>mQ(M8?}~T0c3V2gkxTwbP-EYL(V2 z6-pvc7fEb18k|TPkH-PYk6A{XeR+6#N~C!oR`R-Q=kA*Ku1)T zq4FERTHYgiIrZU}*0~4XYwXC1IpS3I3YQqT!u!CT^FNX*@CmZq27WOSNGJ{b5nupe WL&6uW%9Z;70000^`fW=l1<+b;Q0&IR(l4B;Z!QMq9}@PP_NfPlA2H|$w1RXV6)l4;cyTm z;5ZgyvGDA`1O$G+KbA};SE|)2iX~(XDisOLW(Ke;@I0@ZEH2JnBSr%T?RNVChRcE= zK)GB-VFkN7FeL%QaNu&e!0mQ})9KJfs;b_{p8zMaS)fUxR4S2>@_0NkQeYScJDYKQ zN{=jS0h7rD(P%J^-+Lt#i*RLa?T3-Na;~^hhppW@ajZ^%rQE6=fMl zaY_REueYL`jE|3BwOEM3)-==8lM9%CChYz7iQETbLcwzfV3PjFt0g9HeZGlXJnx1` zByb1MPY&;wKVCZj8E|h7Wo))nLLw2`1h}nVVxdqV7YUtC$1vIGcf{I<>lc2Y7*5Kv zd~_+Do)3(S+>L13%bvkbI5$<>64&6y(}!Zv>-En4Y&2HG02z7*ow4I;IM~v~fwS@8 zqvfTv_rSMxoHjGCNCqg1GCsD*y* soG0bzX=;6Jl)Bi>9YnJI`riT!0JS;qS2;Z#8vp`#%0h0_>B^F7TK}flyAuGCWT{jtx~|IsY}-b=?Z7mTAc{eR!(l|DQ3eE6 zRbUv)_r@47$!4=gp-?EcS}iJWlUist+Xw_?P*-T0#zEHCpFUtfV*uT5_Z6ADsZEgiZTUB zlCZkE@R;&GI*tR&vbc&P1FbNSOeSL}io!u8N#K?ZGM}G+M)CKgKPOJ%9}rAWPv76# z`cjajKAWYb+2=Hew}R+t;u^(tJT;b(d+ew`@5q_6x-Rm&0<0kK6G-*q{hh*89=>W=OCwvb=3nLqTKcM zJJ)XM%<}aqGZ>ZO9rv7hu?UxnTptI$0|N8d{#VKCs^Km{fWmfE@$-b8$0EGw{Zp%X_!={u8fAv-T?U` z9v-gojJ42*X0Hj@gdG$vAs|3t9S5|7>`{@P;n=`p|Br-i%BgXH#o!~#NK^4P6&pA= cg}(v}02f>71@~yg#sB~S07*qoM6N<$f`}hEYybcN diff --git a/interface/ispconfig/interface/themes/default/icons/x16/funnel_small.png b/interface/ispconfig/interface/themes/default/icons/x16/funnel_small.png deleted file mode 100644 index c1f307969e6bdb4857eac0ec158f26f1840cd6e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 379 zcmV->0fhdEP)YiAjuyhlf!_MC6BIK91@822z z{{71k6y#V2l;1VG&D5QIXE~Nn3_@QE4_|gF*a$W#B8(FRkN-qcE^Dsg5yuGZR37 Z0RV6pZ06x2wTA!z002ovPDHLkV1jO&r``Yn diff --git a/interface/ispconfig/interface/themes/default/icons/x16/gear.png b/interface/ispconfig/interface/themes/default/icons/x16/gear.png deleted file mode 100644 index 9db64b5837dc0abbf0ce73f90c944ad36dd2cf10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 740 zcmVU(LhNA*#;9_Gg3s! z{3+boPC8cX=lt|O(=)v5q65!)U*6|=zMuE|KEX6i`kzn4Z(v}6Y&IL!)zy(82!uiH zcKb!9d`G&puIq7&t5hmv7zRZmk;4J3kI73ME^z$7200uKPimS*gM)()xwggJEsmc# z#w?HRnEA3KNq45ErY1ce&pn>Smdz@(zyAv}+E4=r4YZa|z>@raKk^|KyjGM9wX~e2 zR4TPD%W^viRo;w^4%H^`u)#YtB z44nYvg+hVAK?5y3wJq=}u9nN?ySuwT3QJ2%8{9xjBoeFK+(`gAYT%%O79MNw)ZN|v zba63h&dq%?gdjN#3B_ z?S2u9Et>#x)WAUlEj-nCWIZNP6v^py-gLQK6MWw15LZ@yn#;@E=J6Ud&{~sMn<${g zM5h^N7$-pT!#dCV>_X1{`O4S%%hByEGZaRay_z)udU5gy;y+%n&iKvv!(QXB00RIl WkcEbXM1o5I0000VGy2kc6B!iMe`1t z#J1~-ZAXnoOR0wf%Mc8@v38*dDJlge!WR>|;6ouQ#&$8g_~46Dpgt&B6uS$pxUJcZ zjWV^gy|n6y_HxdiX4Ip-^wbY?X3l)y%>Vy0^D~kp!T&5JeagzpfMr>Tii!e;VSth< z6pA8*49h&HD2i4Y3x~rHi9}Wt$P2-(s5Ya1f&pB2cXzuW2w*aq&Y|ep#bUNJuv)SApA0K}VcVRsqH~9TOX-AfPgb|0havVcPDlIJ~`y3Kl-0mNcmX;0< zhr`8joQ43h_4;g$&*y`rq-3b7sydJE)|C^?&(A|35a_L|tG%RBsle;?Ku(Tc6N!jG zLN?FyKp1g|OEG@Ge<=Z;Vn-+xIygQ3jUOEy{e%Sso6Ytfi`z~@Hu(r64sj_)zB}aS z=U=efUrEEmPbI6>A~~H-$zU*CqaYHp$wwG*h)XdjOI-*CgNi^P2!bGjC`PcAN^Gkl zEVqhm@)1TH;!?~?5w%+FPSl0usIIO#SzNq5YjSed(b!nuL%xQFtNSuCQn*{=5E}DH z9)6_9^2^p`MrcSr!4U4|N={BWTToD#<@5PLr_1L0`kr%y&&_#ZYU(q%L#fe6_G{8R z7K*; zPX7qQvdwY=y2?6~L=-jcfXQ+(Sq|A)pSL*9Z`K~V_b}`9as7n(k&|H+*JEPi9>@u3 zpkkIq`LCxNU4HYj#4rUQ1e?Qs)%Pj)9{~mcW}1e^#AJ}@00000NkvXXu0mjf7F&E5 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/gear__exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/gear__exclamation.png deleted file mode 100644 index 97e8a0ecdf9d4b4b4ef051cbda39f5ce026875c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 833 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/gear_disable.png b/interface/ispconfig/interface/themes/default/icons/x16/gear_disable.png deleted file mode 100644 index b213087219ff7eb5e95224af6d1b83f89d002c9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 663 zcmV;I0%-k-P);WaIq8u$YdSt>2!LAV7uK$Y)axuh>>YFL9`tLC?1dJmPlV*E>{Al(E0^~ zj~H^m0Q=V!I9QIy>vh?#!m41kTCweR+i5f! z5`A8if$&884#s^QIbeVV=Uf3wG7Li|W3$=JDM=F3G)V+k++wJ6HvG|eS8Ozn}cCR;^O%osFt0eG^grD>I{4<5F%H^_rDS+*0-xFj*>V(7LWUJMB4^SqPd1J>Gi^Xs-7-;m+tp9~AfJ$C+v-%Q?#qI)uz$^H=u0Qm8y?c8C xWIxdt;+nPq#`A)k_>X@uMvD3k;+}pBFaZChKHTIlmazZ;002ovPDHLkV1kj}G`#=- diff --git a/interface/ispconfig/interface/themes/default/icons/x16/gear_small.png b/interface/ispconfig/interface/themes/default/icons/x16/gear_small.png deleted file mode 100644 index 87f66c5236e915f7470884f42c28cbeb5627cf07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 445 zcmV;u0Yd(XP)`{{5HX@#BxBAo{|EOZP$I zAbGse2=wD&Lqij78yjcEef#!2eE9G-!?tZ(AA{d?R7@bmM-*}%AW0m``m)50ELSnPp` nfBg6nw*f;lFHmd%K!5=NWdq0=;HFCO00000NkvXXu0mjff#lDJ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/hammer.png b/interface/ispconfig/interface/themes/default/icons/x16/hammer.png deleted file mode 100644 index d12036a6ebebe59a5776b1ac793cc62fd4d2f98e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 554 zcmV+_0@eMAP)(Q;R^{gb=QR7UMb>+M<1{AnFn70Ybrz8y~=^nKpq$B$+`ZnC9P6`%a7z zF$Htr$8hi5?>qP2bFLv8jWUf8fdZ=FZ7>*=zzgVfyIt1r_rDi%G@%jazyZOU-|ye# zdEOyOl3cA;uQ4x!_Gsal$K%m5pzQCxUhlD7E(`H^d@mA-Y+J3?`C_qXXti1o*hLo! z{xo3CW|K7<4W-lR^xEzAtk36LcRHP3x7+Q=<#JDoq7(t+w8Y53DwWD;_$2z9i2OP&Si^amsW^>(WG=2%_zHls4yaF1SghQk3BX@JvS>g4<9iMB*0M(Iciyx(kQHL$%ZP^@vZveJmCu zG4=MT9`P9{iJ~}ETlj+MjMqdWL1KDhmtY16U>ZyTE0_cmU>umJ%D@N=WN-w?fLd|| sEUV>N1PfqJHJw(?%&O6s$)^AV0GWV-S+`1)W_45xbZc1>JTL2ws$AA5tk^DH^-kE|v-l+RAh2 zBHTqOx(VUHcG}mOJ3X(sk~sFlkMn;0|IhP2?|Ujd9uFuq4k;ojWTR9ntsv`2zECK@ z*4EaajTD(sXs?k56m;0__OlGbH1Iqxq*AHRI4>Z%^2SPw#iC?DqW_d6X?bmJ&EWNV zZ@As=i!@Cih{xj<*=+V3W>LTZdm2C{lL1i_i}`$B%H?uKo6XkAvaHo?Ha7%=!PR21 z7)O9o5@Q5NCX?l1LJ))%GPk+82_}=tfyPEs2Q&w2W@bh)1B#-crltn8T5VdTQf&)J zz3^C7>2$gZ$E}!|0DCoJP+MCI?d|RUKp?<79FE82cF=4v91brV3sD;%kytbumCItrauUuwUx&8AX<&|?>Lw;Q-J&GEiYyKc z43G%Fh_0FN|O+53%apS3v-c zPQ#w-GP56Jt0uWr%9Jx0Lfn0QeTOC{CM4`XMQ$IyI}hyfri81rsc|U{AQt~dYtjNt zy;_Ko42F?jj^mog#>U8BGKt*We$SEwqTG1o!@?58qw(aI`Nd?lR>SIy^$>Uxh~YX3 z3_pB6A1N3SPb2#g15%IFAvB^xH1y^1Pqz26O!tq+bUhEQkQ$N<^pQxU6Tk1sxsiQH zHKInUb|Cvyr8;xl2EQyz34S;qe)N_^|1H1(uwN(WO?eda00000NkvXXu0mjf`Hf;l diff --git a/interface/ispconfig/interface/themes/default/icons/x16/hammer__exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/hammer__exclamation.png deleted file mode 100644 index 1810f6118eafc1aaadaf72f3dd8b7bd27d0ad92a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 779 zcmV+m1N8ifP);&Qn_!90kBq>)s$THQpFh)^z< zp;D>*oygLFg1tZtn9$qP({om*(-|U>NHm>Jf5LbaDIH9#F`Law0<`*XQ4}}g@i_1G zdapa3&cXWn`sP?HMvBGa4_rkV3mhr{g+c*xxtt^jf> zZq|4P6~j$!Y_E z02FgcZLP}GAyuGX#Orn-@D#Z?G&E!mg+e0w{%#9-a^(ULyen>PQ)k=uuT==mkHC)b z6*zrU8;y%15GpW@40=4C*4f!v`bu6Sx2^4XpCveTL}loPnmAv}?11C^6sXuN-VcH2 z>eSuzKNYy_^ZAbZ{r)QY^T-{9fB8;sC<)+gG-^&9Ws;!g@{muB?|s!=4w{;^t+;|4 zw3QDLdL%()9I5O-CTZj*OtzbV_FE6W0C+FaV{vH6&%D0GI#(002ov JPDHLkV1i zQ^y&#|L4wx*tb3SeKYgTd;j;|_dZJ^ksu6{fDSs~=X5$f2H$}?9*@anGWqMs(G7;Z z10DoKLZQ$$&+{HxmX%JY^9lP37@3YMfk1#IK(qhSH0`L>Y6+=S>QOu%zvpy1FE*P^ z%WydSf-1&HaH;?q3Ua z`At!jW4hPvc8SmDi$Zvvo&&@QS11&i6>uC!91aJu+wDE8)jAKL=Y_Uxy=4a#@Z>qc7=nAojRgtsV)2Ai3S{t^Wz|q9|sH#iES9GYh{qsR$-A zGsexdTcA;|*Jn$?rfpFXJg>2WcfsduHcK=72K)w=4+eW+W5L<76#NX_kHuoaTCGMe z%R`Zn!{_wEFf!5mxHv|7NVj2uQmLfk{RudHiUp;-g>z(C0Q(J7;5CRRlgX?3d|tzQ z4!pX9rGN52vb(eMkHG%H!Muex;I1S|mvgxst?E5^U^;Dso2Wo%RDkRa`uvejr)Ne> zAHjJbfHiOqIKf%43eEtV(Yn<86l~ zxtu{HnC7>ho_FXFJ@&$n!+Fm6{ojxC9OC!;L1b`93n?JKJDpAz`H9pUjRv&a?Y$Qn zS`ZoQh#rL*hr{8~Xf*nCI?Wdfg^yV0ky`J?eHM#FEP&4br`c?7<#IV)Fc`eTvg|pf zQh6wo$&hNb`W;u%zzIeMK&4WFa=F~9*Xzw%tu}76*^V0w2CK-VHi*-6d;$&OA?7>SD@#G+me<_ zB`Mz9ab-M=8Zvu{|nGqt=4cX7E9y4 z!+nqJ^J8PrwpmsaauvDIFK<32ud6$^1hd(E8~1Nt z8<6RKzW97Tq1$OUrY2xWezHW~vh%VzwOS4R0gsSxfk1%Dw6|BOym1GHC? zyGv)`4A%A|Qu>t<2|{SVJ%k3(mYhP4Ad|=htzY$#*xU?ZX&|CR(iwOXBayWNt{=f4jIg9;!{NsJD( zv$L}|{ZTHLw^^=UuanJY^TBwIode8?OQ+L{E8sYe^m;w%bh?IGt(FDsys#~8qtVb} zzJQgL>7ZZ+Mx&8D9#1Tn%ZWap?=ia_nB6NB3R`BgIczeSmi}kJJDtv0CX*4d@7TUi z3(N#JB8{(GF)o9WAPCY#d|FGiew64TPc%QZ#7vMqsU*G$KE>m4*5MD}=@i6k7G{tD zf;=)qg?Ioy`~7|2HL^omMmVzBY!~nM!8+a1 z6G@byf#d~LAJ&PwBUUdUUs8?5Pe33P3Y|!$QhmHX1Gi~;hUm(STzqcjy!YSbet7d< zHh2oIhQs0G$z+oKC2Qcur0UW%(Z%Tmy2%EvYiGP)UW+C9n~LP|S2P-BduHOd07p&O zARPg-zyJ<|L-a`h(YiS=VPrxzv(VsSDi({27~hTe&DM;zGzGL{G_qh;I@=I;CHgkp hps%AW>;6}O0RS*007t|hXvqKo002ovPDHLkV1lTHJgxu$ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/hammer_left.png b/interface/ispconfig/interface/themes/default/icons/x16/hammer_left.png deleted file mode 100644 index e808616c4acab4c2653eb7e7fb6b94f6ef358e2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 620 zcmV-y0+aoTP)j<1z4!a>d53#+4B>P-Sv($RtD)2BE?~F@a&)lY@Bf9_Y+h#Z!(y?-lgZ@O z(P+e3tyZrf2!>Xx^%WO2ub`<+gw3*%G6;c$Y>57z!aQWa6a$F*ARQy>s{V7J?u z-|s(znq0>By>vSL-0SsTU#GtYJ~W$6nZ&f98Zd~M+wB(ccJ2^b;@jY$SS-pIf0;}s zan-=#a4?(A7DSehR>cp&N4!cBAA+05H_3qNqQZm3@%<;@b1Ic0@fh6KN{{2XqXHAl zcnYLUCPQL+@Vo3kK}JTSQJL?7@7ZjY#MC7(*$Lxkp->?4Z}5hi6F9&Iuz}M+0F*Be zjA{$$sbR@ro1Q(Wfs0@hoCoK?S>RSpH&io=YNVL_5nuo|Am4?KAj5C~0000<2|CextX>%S(dr8gDePxm5q&!AXoyabUIDB zTyCpgX)qY9MMXvR2%5l`OeVtxpTH8nn<^?Qj+B>|AB#jH`_|Xjm5{8UF1sZN1OoML zxBE8mE-x=nClU!#tJPc(g&?r7u%K^mZ$E3bT2E@V+WmgNU!dk2{vZt*DN$&0I-TDB z{{B{<&sQ7@g{C1Q9!#ZDS&&I4lSZ@ITx&9!4waUc?wOpNoX=*nen1Kc9>Y4+*48%S za5!4AB#8%t!62=ztx+@@{Q+^1X9hWyl$2QF@wk!4_*t>JmbtmPA)C!M($Ue;YBU-p z-l)aJMOs~5jVTlgBR}&7Vp*zKEXGtqPXDyBvN8!vdS6vlB^}jjHPzMC(!|8XdyB<# znNJ6@?y0G%fL^b+>vXyXD%7w}X;hM4x-}Y~&t?np^S0qimW0D$Ie***+ljkGzvRI| z*{M>^-xT8TtPtb?`PRS^^al%t&j9amO^u9-+)7hZ1mW?|LY((PaO;nxV7ml9)YaAT z^b*I3`koTKjoa-q!cX1_A$cIU@*fFr(rja6BZrgV+-ZC~A{uZ)lIZM|5q>r!ME7$D z9%Ag&w(wQ(wWXzn!)b7xe>4Mxxp-gfIFl?CR>`Fki88U;w+pE}#ZGffnd55M8?i37^g|(VJnuOhD)H zcxusOzo-}N0Q`osly^%7G@y8f=;HyRz299fAB0000< KMNUMnLSTZ{5^KEx diff --git a/interface/ispconfig/interface/themes/default/icons/x16/heart.png b/interface/ispconfig/interface/themes/default/icons/x16/heart.png deleted file mode 100644 index f98dac0304179df36f99e38f4f9724f8c412edc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 747 zcmVrE_J3#BI!yoiThdKCOG^ic4i;6*&Bh)7RT>_G$%3dKt=LJCDhNt5n2 zOOj1yyR)KTCh7C~{ZvUBi9{$N>#t1J*BO5V2Kk zw}C-`0q+rejy={zO1OV^czEsF%1S9`+qt&qwZCs|O?tK3fHWwKj;>x_T%5KF1&cKr zY<4{~KqlidA%mqXLNK6wkk+ud@xq6oo` z9ETL7pMyA$*hvhiDrHrb9eQ3xYNS@Xg%AGYp$_3VPU*tLM3FijH3I_!u|7=9i)otC zp5v55A)eysv&>Jsk!C=sa3|p0_I!VGdT6MS;aoNPCJ^hI7X7H#cUzpl0{2-jbJA{} z7)u;{^P|Xi8Jjqt&kvb#tV*$L)^?*&_M+%DXphxy(&^IVz5VO~r%9IRt1HA{H4M*P zG>oDoe{8kNl_+`x?xR0Qc0)2F<A(LMQ2M#$5z^*bT;c$Rds_CMNzO(W0|IdGq4U~S(c`0 zb~>FVi(-H_IgZ8{vSC07v32}lulK;fpoFHXxqLn^l!J6#hqxp$Xbi<-5zKW1 zmSv&d@6YL|!M_eMfq<}zb!HR=^4TnuN6fB+o+_6M=TYoNt`Z)Gfhva4Run~|8me6zBc7;kns>tC@VVW=;Eqfp!C`~` zS{SSwCXZc)?^||)@6+@wo0g+Sp#bcmQU-t(e$4B-sHkdV(C70ybe(Zx7Ea`xDCSt! zc-nQQICQp$f01oslFgmDUybc^?BR;PpwU~^Fhp6?8n(OLK9^-N5Be^^vxBGMdD~EN zJ|?ZQHQws}o?t^b@_UZj0TWcuyGSy4&L!=l(IMM%2==qX1-p zDM}N00000NkvXXu0mjfw0?RI diff --git a/interface/ispconfig/interface/themes/default/icons/x16/heart__exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/heart__exclamation.png deleted file mode 100644 index d90fc15c33d5c226dfb51294a63b7841405ca3fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 829 zcmV-D1H$}?P)#$Nf{Zjoa%P;9 zXJ$N?nRA)l+TIdhJMitbIct62-s`dnr4;_>6Q&4Zmcw-%?RA8NC?j5>^h4%E-x!)< zL`TwtDUCfNbBqCV0oT=2E{-SZZPx?4kl}q%Brd|pVZUe-^n

    vhYrXr)pi zyFrZLSCkklavp^-WKVz)LLK};cWU5bP{Go5vs$gnyFrfQKz?nFLt(IO8@wF>p64On z+G;w;!P8v9-i}{bSz1bkV=;LH^W4-ls2T?BwwOmWU$h~Ra=`u`gyLLIb&#{wKGp@q z^B;?gYsB-cTCoTOuP-6lk3I%j1PC6dkQ%uM{w~KWnOcr<7?;0-3!bB49$v9nOdd%j zB4C=Fhyp(JG5Alq5YL{6MDHc2lvk@>aOIhNl)Ma{ARyHK4b_v9X+}RUFOR09(WJY% zDNvR-hebQ(LM)wuo42Om{zQft+?M3e(fmSkQIJCwFwa9%LMBA8`rI-MWhY_jTN)rh zBBjPa%Bbk)_NT!1$|^woH9+(&z$5p9BQ*B}iNxh0AR1u&xwB;hq7JdP&|w^v+rj~X zAfknJr+~|EoqnC4TTXHkXxp#yE^s`!A`do}hjJWL{|Ybwk(N>>xY?T<00000NkvXX Hu0mjf5TAaB diff --git a/interface/ispconfig/interface/themes/default/icons/x16/heart__minus.png b/interface/ispconfig/interface/themes/default/icons/x16/heart__minus.png deleted file mode 100644 index 4c8c315a4b7fcadb1c463617b6ca6758f9406166..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 751 zcmV+wRw$ok_dVCdH!`og|uRn!=W!U0j?I zF(Oupi87Kb>y*uER=wV@Ezuzw3z6#}hD)D-F_v&_Bs~o}aBBFD;{`#WrB0l4s@G}~h$#$1ih2aHEYrEs zQI8`Ar*)LD>%V(gtnC ze%mmJA^kjphhQ5-L6RsZN&X+(u89~CE8oO~b8OTR8HQ20FflPqo+o8MkcBOUiuvZ)L=UIq&DIvNe;>ybFo)8R;?sp(ZdL3Z20;uF?eygSLlPMb z{7XXU-$WX~kjX1tj9Fp$LiDhKN_qt1F*)~8ab=*rX}in7sJN{zCXkRvRQ(Cy^9-Q% hNZcP??dh)o0|09`EeVwoy0`!U002ovPDHLkV1igVUnu|p diff --git a/interface/ispconfig/interface/themes/default/icons/x16/heart__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/heart__pencil.png deleted file mode 100644 index 175b98096e961d61e0628b2befa8d01bdc4a10ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 837 zcmV-L1G@Z)P)YA_A zNefG65sA^mYEcxVLb)k|HWDOMt}0rz3d&82Ub}1dG@lNrD}ZZ`(CKemVtQ6U+BJ zaf~=XD8wxBjJQ*__Y(Vw3R6)qXPWuuvu8WU`unRyuk^y9Wwo`(wsd#L6;)LVx?cD= zIM}GC(@U7TvaYUoLq|umzsiojPI6Aqz<|^jiw$iJg7Z8D;E0}$U0p4v<0zR-2A1bV z+bI}C@gQTh$jn38UrR1Q6{dK9T?%{qPU7yFE8sqa zkx6GDEQjfkhF){UV#$Bx>%>G`Wqo}#m(3!t>#z$2SgjV0^nb>!^bb$dwD_7>tQw}tOBA4odfuqXSZebKaU4RSkUODiiK6FSC)pcTU}0w|15iar zZO2h{!)R=-s;ZP6hnFdcOg5Rsq9C~Axm+^uIQPi+Mmci`yBCZpT?`wpt7a`LwmK52 z3i&?I#H?5&v$F}^b?=kgCI0V}LtuTIEJL?J7oAD>atHpMxiD;w1)wC$>;c)lw7TNamAHa!GN^4Lg9V z%`BBV1+^{|T^^sAXRx0kXg#Go(xQhElDOBg{XdUjhsOn}a_eyHO0- P00000NkvXXu0mjf`Voro diff --git a/interface/ispconfig/interface/themes/default/icons/x16/heart__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/heart__plus.png deleted file mode 100644 index 9bc94cdb261df7a2f73e833ca6e2bd1038242982..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 781 zcmV+o1M>WdP)>v3Ll*zh7zUGR)I4TZ6IFaBe@5+ z-sWEH-ObIe-`oK?X`STTN#^^%Z|DDJhIyVx|1-1|#^kKvyNLM)paU6T71qxs32p(? zb>IZx0B^uO!|ZCJRxsb(*0y+QdU`-NO}${-g{}4V9y^%~N`p{G$HIk)iLen08BQkS zY^<%dW-QBr$x8(W44509ob2D{T;JQ2kzSclwovfr^Z6srG)=>U#udV+RnP}>UDt6OFPqJ> z!y+kYG|f&KastLEIWl03c^nJgK?W5RC7pbJzgR39hee!oO2lFcjHz5MlQ=L?Rh7Eh z+xIy%_*+FQ*XlQZMx#Ta&Q2qZK6AEB#X^A&k61l`9D#-gvf^=zLsLCIc?!Vm-JP8n z6T&H_QpB)*9pXlC^$02o1r){kW7{#Qk=p7pVnn$R%bS~ zE&W~Ys~tV5Ed!+0{ltUOqm<()ALH@a%gxQF6wa&s1KiI~y}Xk1Q92_s-BhXuxU)iO@m9iaHqzi6BA{NtX)p;;ks?ZwNaC5d>`z9x5`zQ-~gd=uott_9Bcw3Q2T# z9e3T`ao^6&o0-0E*TlRw@R^8(GP@(Q^Nlgo;MIGqKufs(65CP zeUo@xN3qvVi%% z+CMzpD>On&krk&0mqxjGuy7!>vc^K;;Gai zGtEWMaYk3N*=}kWcLPFV!Y9izbar&qJk($|E@39{05Tiv>lT&<+;yQ^Dk%|F9SUT5 z5sCNM-rfS`+)=O!jZ(0-w=JO&S}{aGyk9ZRE#mvk+1UYt{k9OI7_rzOCu9c8orna1 z6O$x}N)p>Gm9~V&KN4Ww@%{AD($Z=o9_OuCrs&0S-5oa!A1RdnXrok(DGJ}n=T|Xc zT4;n;9%=>v98tFJd3wpVyHfGE0j?V?SF01JRdxQ1rky=OX}DZ0u2enm4RT)`BnJ8F zk+np_cbjwFV(e5;OG~^*QEn$A5kn%x&y>q%iSxHedxE!fxc{=aw_gW9YZwLiX8C?w z!F9X(6(u3a3)QN*#rZqrPH$qdb7GefpPO6!@7Ikuhk@Gxo?VJY$Av9ZuYcMFxSz!$ ze;?x?4S>l&+_jh=Ndk0U0eC7LUjZKG0k)e(HXf5$OWt^m#{#q>5~4K}fCaE99Qmfd jvpH)hB5Hp{e*_o+LuO2*;iz%V00000NkvXXu0mjfkd14j diff --git a/interface/ispconfig/interface/themes/default/icons/x16/heart_empty.png b/interface/ispconfig/interface/themes/default/icons/x16/heart_empty.png deleted file mode 100644 index a7754d7b659bfd7228c9bbc71168c50dee9671e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 626 zcmV-&0*(ENP)mB5}^y{|u$wZex~c6lu;OM>r5ZllhG(zNP6E;ev1^+)`~wGgoZe2B8oR zhjXP;NsC6K#(KTJ91e$hP1AfZh(sbUi^Za*s_JUH-3A7OK~C3oi%dSqWFQgV5J4yL z9r1q<@q49GSrZ`#AVv-~aKMEITE%f3nT9_ek84CQ#nJ3wFnFKMX0c_4*jodaj8$lr z+wFEq z^!G0-bJV~A7n+m7;c#F8ZD~aPpSD`9=llIW<=(geLk=}?z;$)9=hitnzMs$MUz^S5 z3tH`|TR@B)YT$?+o`zJb)qXoU{;UN07lZ-GGI9d&?r zyInS&P9F`Px# M07*qoM6N<$f{`v8p#T5? diff --git a/interface/ispconfig/interface/themes/default/icons/x16/heart_half.png b/interface/ispconfig/interface/themes/default/icons/x16/heart_half.png deleted file mode 100644 index 5046e3e010f768aab84aae61ef40e769f61c3481..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 759 zcmVL`rw<}0lS2wba zv53(G0ZEV;Krh_65Kk^1G#y=q5paK4~)4phjAYBV<3PE_z3AYw7l#v#_r?$ zF1QAo;0HF|#_aGGMl60Fj6~)i&dm)Ak|b!Vs%@{X-cV&(B-{QH32@|3KsvuUZqedbPTbI zWm)$C<87iY&gYY;yW3wb6fSeKB&mCNdU}vXMk=Bxmhr36Hbo+lGYE%m+va#AWHY?! zy6&8xpR=|=wOXZKNs5h)kGnh9fZevi-8M~=AkwNq6SJ&WtF?N)?r%G}4uyQ4o9ODQ zbQGS+vfK;1hT_`17uVOrY<40Pi}}lnLcdj&>Y7Ggi<=z+VkVObK;XF5KDP_t{eC8s zXO^WKr4liOFJN)6m-7`EiX7hE-4#*5@8D7(YgpFnt*xz}k-olWz~>`37cZZthl9HG zudJ-Z8;!;e7MEKB1}rWnQSz)-d$*Iz?OzwgW`N^J{2KvjnigAHTDq+$N)F+t4Z|Q8 z?n-VBJYSV`{cY;xB-6w5P5;FybvrVUOeTl&`TPNP-E@5~kMid$3OCWAexjELhQVs( z^3zA6IEwa07Zw)o6bgkyK@c|30cUM(jdHo%g}|qd5)VRT0wStu#@BV-zp=P@Yj1B) zJv}|$OsCV%(b3UAFP58*1O`AHkxV9t))R@ui)b_&$G?C_kLP<4L5G0r5CJ|JgF>`w p$#T}cAD+$4UH7`uI+=e27y#GKWQep-8UFwP002ovPDHLkV1gmxTxkFR diff --git a/interface/ispconfig/interface/themes/default/icons/x16/heart_small.png b/interface/ispconfig/interface/themes/default/icons/x16/heart_small.png deleted file mode 100644 index 52f2739ccaf7b9cc08a8d735e2ca1450f605c039..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 369 zcmV-%0gnEOP)p5LWhRjN3FPNR{QrLzuK|A<7$#c>1!?dK3UcmUv0^Sr%rPuX z{nNX5-;ZwGI2p*b!fU`U1_oA60Re&MuU|77ySuCW{ri{U#hW)A++1AjAUT3w_`$&N z{P~k7pI*Ls!~g#6Tkan}elUQdT3Ar<6G)C=AOaPwIC0{{6P|zn7+61jV&MJti$Ri; zli}fm2Twq91YH13R?A+0`lNT`{(UZOE-uA?fBrCBdG+f4ho3*UZ~)~98UQt<;>yR5 z9DjfP3Ie*H;rfpsn*@PkL`5SE{9#}y*z^56Cx|T$WaCoDIGPt200ImE&FOI38xiIL P00000NkvXXu0mjf!&;pP diff --git a/interface/ispconfig/interface/themes/default/icons/x16/heart_small_empty.png b/interface/ispconfig/interface/themes/default/icons/x16/heart_small_empty.png deleted file mode 100644 index 0e0d9a87218553f08297c4c6191fe507f5cb0a4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xo_o4DhE&{2`t$$4J+o>_KMBCrGd9(58j~_qgeEkkA6g11+U5k9Lduhp&&*WjAf%Kf>18_=Ka4@yY~Sb^m!^ z7;dfLc@)2=;^X863m(WVS|rH!@6XT8$+x%V?o-&dW5*A^m{$_+pP85)8WvnkBUr&NA_{G4$$|)cq@ci{_Mq_t(6)rowH++12Pk4BE_<#NS zB}&kM9}Eo7pFer>>E)X@{O{ksD@gv9IU%!HGEMBa9@#4i#f`Wp3h>AuS_`|?Zu;=@CPKIsU{)&r>@4%&waWpS5 b00bBS_Y!jvdJ20~00000NkvXXu0mjf4!5YD diff --git a/interface/ispconfig/interface/themes/default/icons/x16/home.png b/interface/ispconfig/interface/themes/default/icons/x16/home.png deleted file mode 100644 index bbfd2813618592d0db02c89ffd127b348bf9335c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 753 zcmV%;cjmFNH0V4n$Gx##tIa&pq8 zaM$ZCzFJ+){UgDN`QQ}h<`!%*vl_p0g#ChEYiw>V%FEjt)dZ50*I@G&SH=hbm@B~% zhY`Q8M>mXqffXk>Aa<_3)znnrc4uSYaU&9PkIO>P_Z04m8id1Pw6{OUs>tk)$%z@5 z%SJe4n&$Nz4Gr#s0vBvH8|HtGBFkMSi-DI-Qlpw7c75H|bz;yz)Fv8qQ-i~T+^nsu z+g(_=3!0``M@o#dTU=FD3G&cM26}tzX>ukW4XZhS^X^&wIj7TU8RMO4`0neJARg1n zLte^ImW$nU(^8XAQo5&7VN9B69l6kG?Vg$Wmy@TYw1mw(>96_t^#@qG2%jv=g%OT0 z##C_5C5C-{xPQ7>f_O|P4|yp=S$^i&PK1mwH5aw0iPrlUZ8+-5lYBt%ZTSZ!Cy(&c z=%6guLxy!vY}p8=u^?~U;c#HnhV_pejtYE=$ww&~+Wt)3fO4 z=&^M2ke4!)Wv!i`F!XIoh`P#FG_c7An#NIHUS#P^HqcedP?ly%c+@@QoSR?d3b%vV z<0R~M8$zKF0)YU=$Hy(5JmjSeW$80WrT@%!@eL#b88p`~;MH%=vjiPk8g-*168S9Z jo~8QmAaIB19{~mc&iDA?U?;>000000NkvXXu0mjfxea2D diff --git a/interface/ispconfig/interface/themes/default/icons/x16/home_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/home_arrow.png deleted file mode 100644 index 8fbc5b967661dbc2997e7ba4d7f1c936abd43eb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 858 zcmV-g1Eu_lP)*E=bOiA0QgXF90!iQXF%5mio$7%>fnXw2@VufC=a9< zrRZV?qQRVt2~Sql)@HGfQ+av9&Vo=MNrTJtPGFQz3Ll^ z@%L53)@Ly~-EI@be-&(@nM*EIR;KFpQ7|`Dz&~!UWEi*Hg+8|!9*+l&jjfpH{S`Yh z`~%`YEu@K}c=lX*xjr>D1`34&_V0s;)bEjuU)n3BJ!W&$tWP>S_r31xucrZ?vHOu1v$KXJzQ=N z(@}pS2YA_5kL=83iJK{3ow61EVxNlnD*a?5k#|7k&VJEV!X zC=K|y<`8-wbNDo9#ngNbyRugY*Ehc{6sM*@tb-$1zSvI+!100{K&4W`>2zX9mw=SS zFnpK*g4Rca)oL1}M`wtRZENT$By}Bca42mRmM!uT*bE>CP)GqZmIt_RS_B_$5FEdq z@an>`Bzgs!u04852U^XJ(f{_-e(j|FH{pm9yizSesZ_w_av{gniW81&=qy+TK@?#R zSpoCaTVH-zjd#9Y-`>uy!BY0mtfhA#0MN1QKY@o6ghWzmo0-pYU$6JwXzbzqiGXEl k^?h($ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/home_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/home_exclamation.png deleted file mode 100644 index eb4e40d3d30d25f981953de0a185858e645f6dc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 883 zcmV-(1C0EMP)jRppp3R;2TfZHZdU|qbjbXDzWB$U_ zq*uM4Qk7{Y^!Gl0;8WG7jDIrN$Rd|stg6bi+ZW;4jY=qKdAh^({1)u_B?trpXl}lP zh~UrVqu-p+{wiUUrfFs8FI}={W~M@tBzQ&!kYeAXJHOnm($~08Wl=jjI`+Qq?Q3EJ z_qo7kW?U#OFJF_DwFn@+f7|(`F~cV8_n21p+(B zqwuliWMw#dQc?wejMN}u@nHEBWw&C8%%lfgIVj5`HznVdtqXz^bCw*!sq9R0ujRkvTR_YKDfmJm}kzx7iTxx?-j%0?}KcOj%B^x z%`QVAjqPvIH|SsjK9T$*Ai+;YK`jKbWdsJ|z_#ofnCLhZ#b=Ua^AaYqny?-z*YEdP z-JS_5Py>j;q+>8hP$NGh+9tqAhGCXG@O&@PXS3vnHBOnw5IR zJ_g(yr!-|p-eh8&O|!CkBV{16cZ>IaiPl>cC0X<;*i zG_2KBFiUN_4X*dSxzoTGp1bFMzvuV7zu$XzoEAVd1;=sV*nJsv?WMR7rnqn1fIefq zw2$(5idl*`EJ3tbb1~sXM{~1{JzT1&5T<6ppDDFwovLkl;JR6UPBB=cc)tWx-Elgt z+1aUb;I`9gtFEjho{9PC#rat*EG(%aVnG{eJ3PVxO0P6J9EEv#+rlx5#6&&Pwwlu4 zd8SOUx+qL|+^_tiI6(1V2M6iSwKtlYEM{{S1|K&fHm5{R%)6h!Tv~%*FbJ3H8PtwLEx1LST(@R4PA+P(N)}J*P42n=|NXB<} zmkh=uai(EfR>Nuu-90BcDIWHsJ>?wF%ObW8pKnxl&&XKeOk*#y^KSiFfFSoq=x+Iqq`6ggA6oB6yebGRvfYB$zWVD zpc7f7ML!b4yGJ^K=_+=~xO6mAR0m_9~1+XY@pX` zp-D?X+sNC*1@Lc#`RI6181Oo7Sy;z^S2_=q> zaJ`^H^$E+vyDvst>7$>ilh`-2gZ=|?Kspos0y_T?l1b^ra?>fgP-v9qt;_lGVc-^{ b{{$ESjFs}rPQTCO00000NkvXXu0mjf+*4~G diff --git a/interface/ispconfig/interface/themes/default/icons/x16/home_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/home_pencil.png deleted file mode 100644 index 02503c4a615dafefadf38e961d18ff04ae2640e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 849 zcmV-X1FrmuP)A#mH+Z zkD>5Uv@wIA#jJ}7ORB1?3)#mByPf|s1afeHLF&HJn%i~dhmV8<%;KCa11GOIodxOX zMrGr&(^+`x=uyGr^$(8veHa-TQ%#9^?Nr$lE#y#ox}vITv&E7!u}2XX7mX#!ro=a% zFQ!Oc1iYTEr=lcvP|Tprae&mb5KqOPt1b3%X8 zh6aB@p4P$!S(eY9D=V|wY$m8wDvS>FW2v=RF@Aqksq8VEM6*6=Y1!57>8+&!T3LWR zN-mV1KX1;@Uk!~$6D}z#LLKHj&nsXWR!L`jyMuL3=%Z}DAUuEhz;Q^g*N25#y#e34 z8Wk`;wa+v^>&q+e5fZ(U<8BHxdxjxC2HSUJ9_9#9L~Lz5RuRsgl=Pnu_3T?0VxMw)?yna}VZ3PyEcT%3PYym!ftjDGt3kuh-ZhR$*cj<`Tf*6p( zb0X7PkfkwY;yRrU@rw!i`|6NxwxH>;3%2Edy>q!(w-ks3>FFQBxENsIIl_mBrO~J% ziXsMv`!FcKL)w~5G(CC-Q^qksit?J1V&IO|fz&j*(fip)1Bg7C5kQ48={G_PK4I_i z(`crdSESjIV8~Lm%!m21-xztPwO2nfIxcX68blqTK&@86Cw@o%0T=3T+=6LM2@Fee z!8ARDW z@$sRe;bBcp=FP%FGCEgr=!ZKT^q;qUK(1SZ3SDw?45U&itkZf#>2gG;;Z2ojV?GD1`o690%)sbaJx$Qg z5*(rAUTIlbVp`f>$mMd+mV6a550^+JBAABlq^GN^oORCAM};>bonM>FFKaX!k5H)z z##C>s2*%g!OvAJ+hQ$(EJs~(yjjZgXJdWo@5nD&ER(h&OMEv7Sla-yt&oyd)ANfFnREz6`llGOeFyJvJR5e!zizS94F2M& zJ+M2R3^bmI2^jic)#GG_Rs`eBHfR|~?7l>d%Pc|7TlBCV-wa~2J3MpZ*R|ksEQ%9X zsZ@9!vw())Jok|nl z-6WV0dqNvPX~4&qA3*9_hj1Zv2ZFYFN!SeFNgx#y`1vUjC#Ye3HznE~DKh+Q8vZpe z6{hLc?Ptg6)6hPqS+Fhy2v6e46YDeQJT3eC1H7FlB#P3B)%k>|1YvkOg%nuSP^_3Ru+$;sGwELe1^`b< V4y$8rG>HHJ002ovPDHLkV1mIeiK_qr diff --git a/interface/ispconfig/interface/themes/default/icons/x16/home_small.png b/interface/ispconfig/interface/themes/default/icons/x16/home_small.png deleted file mode 100644 index e2213d6361ca8867f51020ec5397af201c75c54b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 412 zcmV;N0b~A&P)9Ft}TIwtf2Z z$K~b!|K>PdASWeYo||U-N?Jyi;l`d{+iG$?vdLhV7li};PA1utQYzz-i z?qmoJ^#Ic#K1duSk2e~>eESX-V`k%G;OFOIc>DG(mb+(151>?{zc??+4ej6**!P;3A|fB^vUGj_)rbS4%60000&Y9u=)E+S9bVbifCUMpIenw_q)PzOXsrRHv^hCFLC_5F^>QB< zm%p&G^Z@OJ72Ne(s5?3jX@JTB1f>?|*MK;VEo0}RgFhpV@m~kuhCfjkr%+NsDFv_L znP_@GfkUh9Ff6=w>v<=1g3L9$3w^wT@sIFI$PNlKjdW2@HhOzwzkR2GqP%?vrBI?jWL8bt4UYgzeBVgOM6xwO#&}dWq z`k~5>tGrKV+@9Fg!qPo=+i7pmWufq2Ei2q#ODsI>?tUU0##L^X&MZJA)QW! z$YczpQVh>OwsE#-;>BtmBSuUJgbu17oSIe(09)$6gCEaTbD`F}3U)z>YQX0oWZ_*DEnct25T0OPY0So^e5B+1Fi1xeS< z|81LWUA!Raqd9SJce^N@KAAHQTd3Sys<|6)mPMZT6+;~6PB6-k*9xmaAWnVm?qx)i zhRgANr@fEm&%^0D?>^st;1NRZ$N`>+{BHpU0AFC@t1uRStpET307*qoM6N<$g4-%7 Aw*UYD diff --git a/interface/ispconfig/interface/themes/default/icons/x16/image_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/image_exclamation.png deleted file mode 100644 index 179d435193f4709cafafe83c35179dd10c5185a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 707 zcmV;!0zCbRP)2Npdm1ByQp(vu3 z%?+Wh)VB7^E=|+KbCL_O>}m_V2`9<((yY1xoar~gSYFdK z)Ty9v8-a_bFS~(e2}l(Ix6_6}#rX=*8wUE?fl3V)!&ttmX@m{J-g)fY+KGS^w!Yle z2DJHX(HaGmpe?J?WU^=r7|T~xmDCLbFBk6Nwdlc--6Pl^J!nN1csn)|xXTZr{+fkg z48t2a55_Ro64dA*v6z6oMaHAj0~AV0L|Qr!YKoxMAAm?jwc;x%-KUXUeh!g4i>g6v zfvT#U6{paSY?;TOoPfvqPjHKikUSD3NkVV%D~5Lwh%N_I;zs<-45Hm9!B{3BI!&O2 z4nYtExLhuHJRbOb5@gwrfGlA^e1k4!2%{IKFfl%e{K^Zu5=WVUaO`9>v@>gOovu}- zqCqIlA;6Zgo<=MdgI4+us70*h<}CrAT3vNGoK8&N99^eXOr$>CM{8>UKYzzD`|L6@ z)i_P%K|c8e=~RX%{+^z5oYxy(uhRxQ3)?RpD;@72>h7rP1?-3}VCnOK)fn&JE&sUl zRJ=`F1OhFY?Tbdi-5X?l&pzcqQ;RDI(||WPf^v4+dX~$Sv)?`@XBec>N;kr%4pXzk pOuwC5O8mQf{r|1Zq4HON0RY|R{&}h6;-LTl002ovPDHLkV1kJYMLqxk diff --git a/interface/ispconfig/interface/themes/default/icons/x16/image_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/image_minus.png deleted file mode 100644 index 8e8fbf583e27cb76139305ed89f891d6a14461b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 598 zcmV-c0;&CpP)eK@`Wovp4%|=5}u{ zCMLIMBDq2#5uz3riXdoVp`Zwg!9T!1LeRoe>;h>5Rsj>xf51{LL@NvNlExxj8s*~V zHha5!yS|yV5JkbPz)~BCGiZ&{@?n}XwF&EQaAIa2O&RKwPfi2VUIjWJLFY&X z83B%4jLo5Z9h zZL|HtU=5~1qo@eQqEtaDMN|w}RL~ym&7%q)BnnuB1CL>L=J)pfXZ}Rjb!=vsu*t#Q93Stavwwqpic?ip zy4~OZa3l1M(a}LpRTQGpdpH;)FcH9Frm?7G6=1jHvQ@>=Vgp{FgJxAVAhJgXV>wxt zQK1H%%>-7C9<~Es5lH_A?3OAFYMdohdO$U$UIk#%?#=UK&jAg zti-8LSc%_3nnR5BTHa!pt+a9Ca8@jUw#cH06(L4+uZa5|iZnr*Ylro4z=K92{{DCWDn zUo!)u(gXqj5%4?@tJMlY5a4u*aJyZGJRT<+`6)OuAJ7{Kh##002ovPDHLkV1nl>Fbx0z diff --git a/interface/ispconfig/interface/themes/default/icons/x16/image_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/image_plus.png deleted file mode 100644 index c2967cf773644ae9ae89a29538a19a8e01ef7752..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 651 zcmV;60(AX}P)txgf^G`!LRSik8?m}j6h!=>2J9j= z6;f?XnocJ3;eBtiaASq`!r|RFGv~~?A1n+*>?9QIF!;>E!dW`=+vGR6=Xv(^>FL?+ zu&>R{UFBZC&jRYh(c26P1L85VMQ}YpbSJGv;8bie2b9UH7XTLyg%Disx-NVYnAppZ z;Pi14$Qi)uZy*_u$ROeME^yEWCJI2e56KZ+-g8|hE_UiA4(!GZNY) zLUC6l)+1+GEfNr1-g6x02LYbFy^B|xj#HI$I95I(Evr1TEd+*ipzqT&Do;<40C5CY z3iRo+R9iwelf``d9$M`cjP4#oerOcKX$whJ)S*j3Lj^P{&G82Uj^ilOPOE^m4#&n% z6%W=wAgR@0=mreKfSEES7Bv!&|H6@61+#~5LU4ru^TjaV!m$HQBf{<$z`9@Q{DIV|(0*Tnwgmdrmde;H%xQt7giO4(a&T&G$; zALN{Z$V*qsg-`cCuE-b5-fMACUm@h}|6;~?Z+|O?;v8_qR6*0l2BEzrs=N&=th8UO l(KZEd5M%SG2mT)c1_0l*>lb~CCaC}b002ovPDHLkV1iFT9m@a! diff --git a/interface/ispconfig/interface/themes/default/icons/x16/image_resize.png b/interface/ispconfig/interface/themes/default/icons/x16/image_resize.png deleted file mode 100644 index 3c66a736706690f71ce177979690f30913a5f1e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 595 zcmV-Z0<8UsP)XHC~rfL4Dk_lHM zAxTvPs)aO7WwROf&i>nH*YLlIFxs~_KPnN|os^0o4EJ$x&{BYu26|_UL0EK70mlSN z4sfXqEX)G8<}u?NUF9N0naG{jP+wDkUPo6xE z|4zI^L);D?Vz+t|_g2@@56^6d#`rq9tX zW2QWf>cz{rF;~QCydrR%vp7C(4_Y|yEkg)Fy_Yayc+|!eEYriUSWrBs-)JkWX-?z> zwmsROFJO~dUO!$R@(+$EZc?Jiv9_BNkcomc`c5WF-mPr7%Oiczs=wED1I)SF^MT}+ zC476%55Deftk#1~Zxlgk_WIt!>hr!6se*n<{^Ht;H~T+7$WO2C4ozNMdr1UKgS(*2 hHSTTHFy{IrzyJxv#7ZKm?8g8A002ovPDHLkV1nR`3RVCB diff --git a/interface/ispconfig/interface/themes/default/icons/x16/image_resize_actual.png b/interface/ispconfig/interface/themes/default/icons/x16/image_resize_actual.png deleted file mode 100644 index 5e4a6bd23737d7c0278a8b526ab22db26f23519a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 635 zcmV->0)+jEP)&Lf%0Oo(X` z(-~>;0SZcupopdtqbt#cOHo{O;UDlvxbX)R5&Quz#Eou5Ckq3Lf&p<;5jS=Ot+aH= zG}C!p&%F>y3U!kUhx<6+`R;ely+`4kW0s+GR{C(9GBizts;aOo3#MtgM7;hFq$u9b zP838@ge=RDrYXX38@(qNq3vZ9AhMuPD0UfB{5k~G;v_*F@48vG6)?t-Q$cU6DzFPe5nviX z#RQJlfm8FqmE&CIPAaGlnM?73mL$nKk%)YelHE_!-@>@uQ4a+iUpz^%0tlgJg9y>kTX|9z)x6Ksa%6m&}(0ilTaqseyP9AV9`(w*}1WXRc*4nBSfr)ZLJtsnmSKtFPqcGsqSLYq6b#n%1X z?YrN&m?zK4%yEF|BW1791M_X1x&EAbA)n|4=6!l`GuZsupTbIlS-X*8#_?Bx0RZ5m V{YRLiCR_jj002ovPDHLkV1l#SC~N=# diff --git a/interface/ispconfig/interface/themes/default/icons/x16/image_small.png b/interface/ispconfig/interface/themes/default/icons/x16/image_small.png deleted file mode 100644 index 7d411b90e0b170e71ace72c9d74d88c11d7c89b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 346 zcmV-g0j2(lP)Q}DxWn^TO#HAP*Ue6oD!#CqJ;McETQth#^Gq43KBM?_EUYvo~1wX!jXZrK+A4BAP zCI&$+p#Oln_&FIETs0UN98~{-(UkpSU}Rwf%i}fR-rc(| s4cy(!a7804E9*;)*cr_W3;+QJ0Q=QoX$1siqW}N^07*qoM6N<$f~9Peg8%>k diff --git a/interface/ispconfig/interface/themes/default/icons/x16/image_small_sunset.png b/interface/ispconfig/interface/themes/default/icons/x16/image_small_sunset.png deleted file mode 100644 index 9341f40174b7fb796cc19755ca986e7b45849b96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 337 zcmV-X0j~auP)Q}DxWn^TO#HAP*Ue6oD!#CqJ;McETQth#^Gq43KBM?_EUYvo~1wX!jXZrK+AH%gx z5Jv!A1JMaIQPcMsSRQW}eEar|@fXm5?K|ZeSlNUa1cikd0a11JuX$7{g7yLVq2xVx9(ibhse j)|VKuGny9|00ImEvmRvp>f>G900000NkvXXu0mjfKUR+V diff --git a/interface/ispconfig/interface/themes/default/icons/x16/image_sunset.png b/interface/ispconfig/interface/themes/default/icons/x16/image_sunset.png deleted file mode 100644 index 0ed90badbac4e0e5208c533eabc3036260097fd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 532 zcmV+v0_**WP)qh?V^)VzfE`mPMfuA)oF2 z!7a@Nhe$gRj)aaCbT5X{W*{I|_QQ~AV{m-@4APlKsno^#`_53nIb=EozgUEu@e$ny z2x>K`ULV8|I}pTnb9H$M-}mw5$U|^5g%vnWZUeK@f%^ zr|Yb(wd|QK2qDmDcxW~Ss#T7;`CDwfNF)2&N8`%i^lO0UGQiuF1jLfS3JuET)L-F+ z4;fnF9U9-8XkSZoS_&^c4XpuU!qE)|Wjs0Q{#ygiU^7H;?_uXgV3uzG}#VC?CklHkL zl9?p)^4v*U1gS(ExO2GYp7Y)BJNF#s`#%2Xlh0OHk2Z|4IWozA$gfKEcO2)?k$REK zy&QxSqxCeOe6vqtR$E$MbM^!bT#dQ6Piu_7YnJ)FGnd=YSysP;u=(z#J7aDTIKo>v!Ij%lKR_ zAT^x9wTm~Q6O|B0z(|h}BU8snJlO-VEGBK+{zLbzD~reKUVHN%JQIiQF$KV-(xG&3 zuATWyxq9$Z4{P|+Ao^8-nY05_F;F@b9mZqOG#{M#M|pyHGr{0F9z53%Xj^T-XmL1n zsb!i3Kq%^9X*rGYF&B>?9YBVtuvC+i=hKJ`#bIo3!}_ro08E{AFg#-XqXL+PnhynfNV0Dy6Zj_=~Y z;`sK-#m~Brt7>k9FmBAx@4PM)db6N(22>K)f!3vCg5FhL%=%MJLhkS`1La0|s3<@HMaHEAldI^epsqiIiD~Ud& z4aH?)O_FZcCbUyCM2<3cogO3=HZ4g~>~VteX|x0?nXiCzj)0~ilgTjKb=I1d-TOi@ahmO zmq`E@(uedtF}mpw!7Dn<)&g?ZS0D zUv|C#WOE!gZJIX>0uV)h7#fbCsnJ1i&jLgd6_#qUt|o#&SqRx=68SH47#z!DVsRrH z_yWOoe4U?HB!F84n0)^k>C}1{iyG=17$UVQb~ZMnNUwk!2*PnE@GfPb>ZyzV!~8KW->&O^ zFT`3J8*l!NCPwW{d;3XFtAcY5+p@Ct3|ZRSMl}^!;Roz_AV_^U2xwH>wjK!Sz`lgQ zd^*jt3KT^_K-XcKCUZRxd&(U|42=ddIGKfs7Jj z&xVKbX1EKn+yYdutA$Qdd6_@cTH5 zV^LIu9uoW@W~QfA2~ZpY480z~#Mmm>Ngc%{4DlijHKhsof?<5Mo+Dno9mkH}#f{6A zPH)eNfpc9~@6DOk1h*FzG&Px|+l1T=IvQ~17~T&IAs7*GojBmx=5cmp)tyadgyM49&{|n8J`28RVEQ3dje?0j^a zb#UoJrIUE*;^$@gTa!;QJJJfpKMub;i~R>$@pf zu(|G4L*4Gx6?u6+1Hyw5IgI2~clMt-m7I9};zN(zWQ|%_p6H(ew_0$4y3IdaUllG{ g^cJoF`o9S<0L{_|FS%WnH~;_u07*qoM6N<$f=;VX!TUqDAZr!LW$H{h1g<*ni`Fo zrZl-X>3wRB6!m`)oRY`2}*AfOfz9X;OzrA(NV>K}vZkUo7H7 zaT%%J49=ap07+Cr904O4Ax5S|e>~X+uq-BQ+x|oM#WN2M)V=ch4R|IF+hYoV3#CKp zURyc#mvXh?$8J~fu}1XE8ZM_Dn2LeYq3AFkgRcAF%-_$`h&R(1Jja9Q`T=dL3G6mF z96Ho8O#&bk6_}e(V|d8L-8(xFAu24@+$yk+xF{?`*@bmtG9wup-|FI^IPzc zfIRCRAJ1yBSgPCCL%P3QH;h~#t)&8~8pbl&xa#OG^3@%0Z_?D)ar_cs0H|*LWio_S QaR2}S07*qoM6N<$f~@c~)c^nh diff --git a/interface/ispconfig/interface/themes/default/icons/x16/images_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/images_pencil.png deleted file mode 100644 index 2bd5889ea1662a021627b6b9a55ef949683e1e8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 750 zcmVz%&hA;leG%s zu8Nqc3tQr1Nd-QY1lfWWJqbPaP_JP@KM+Da6-kI`@9l#SnH3fqQA9?RA_e}iu11)a zZo8B2&h9$1Gu_!;CD5X1;LgX~x#!F|_ugTqY2tq_;Yx4s`U7LkM~Cwt@C$-<*L8g@ z;kwq^+VeM>7{w*O|Fl3~g&+t}W3hBTMV1bAQjQ1masYJ|kmz(sfSq#tw*&biaM)vF zHJM~-1sumAR}`Tr3eyb(2i+P9WjhrzXsHY^Mnp*xT2l;cBLb@~ktOg^Bb_|YLlniv zk(n7x&D?{lpcLMUy%0%?jYC?Im`jRO5#NGQG;@{@>&30k67)ZGA}2>eo+Lrul8>UAYLxA6KtWjr05rB+i^aiQAfnrykEU!SbOIL11zgiwj$!MnzQaU??fKV^6gQHn|W+u7nkJ7)xU} zaQ0XoYU=9;V>a73HUGV!W)-xxkvS-^ra`L#Ey3`4EP%pN8$ON45e`Lhz}JG#uAW)9 zW4U|qb?PkvB0^kMnNCfdn=`UaGtvZ%V@R4QC^3d_^9eK`KZi#H!GT-;{KbN>QHn#f07)#RB@elbqq3*8h z{t9&7?eD+89wtWP=IH1(L8n3p0jp98;vQK#H$pKD*w6%6HK3X1NHd^Q?8FXWlL4Gh z_^4H@EFj>VBWxHb7K_Z45@+`~h_>jok-_omi4_v65@=65&`JVo-%3LuNrmjtG!2Gf z^rq+L@M-P|I@{tnxcwLmLJ4sML`Im1ECXGUj=F$tGvPSSZ@!Q39$M4)_{2N#cm$4Q zN`MRHL;0Q_-|~lY)#dkI%;QUu@N*i>mG=V+ zy#g#(I9xi^wk#4L6}2!t5<^e7hf94Wh!7Q)YO--_4B^%Yma|#dg+&acQ+Orc;Ar^} zlHwkIEG=nDfIB2G`|&ICxy`W326paZh;`{W(w#u4B?=jCh9{?yDNMmUbrKIAKg>QK z%nWeskp$PRgs5RiMFnpVwMKm75^{E=B${vii{U~`QNLF23xbopLZG0<~ z59McmUN(v*0|CYvs=kMk&5{1jv90e+uv%~nFq7s!_5AYb3r8p)8g=4@+Y4*9ZSU(L zOg_tyFo$;0&!4ks&fIA4?To=D+7LSo!Ge#h(}<{!{;R@3 n(;fK!0ZN{rOVI0Pvcjn#JW@p1) zWZ6VC*n))COLmCp=rJh7OZyLW>##Sw6x2Bif)3tvFJ82$YhA<;ArBn{O{CUQ+ku&) zb!WzzdAIlb?i8!IC^Yc${+M|_&-Z!13~RUB_@9SAo}ULn7-N6uJM#SE8TEU-dq`!hm6XXU`|t}BlOJ#x1dR7`9xpBSbbj|{ z3Xu@-6TlJY7atk82Iz7`0?76ODY+ib0|VxH+`m}_=cx|B^B6zwJX`9W`Tg3a5*|k9 z5Ox3>ryQ}&^<|;ZL)Jl;?=@s4u>$PxT54`l1(bs}nr0%M7V4gqRAa|)-qa5_|<*OllS}DLV3}iAHO?DWhnrt@id;WG^hiu19dJ0OfIkEB&5wj(q>Ky}VqLNnK7kh`O^Ql8cKKz;Hsa zOoaV!0*&u6Mvpr0rE|I6z;(eX2T|`nu}^H@rDQ(t{I5^>v9XG7nuBNgbIAFiUY{f9 o?nbBO$S3R59#VSU2Y&<@0E&bcRNW(H$p8QV07*qoM6N<$f(nupmH+?% diff --git a/interface/ispconfig/interface/themes/default/icons/x16/inbox.png b/interface/ispconfig/interface/themes/default/icons/x16/inbox.png deleted file mode 100644 index 0cd80454b21b68eb84463a17f991b786f496d88f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 482 zcmV<80UiE{P)})`wmoE+0clIHbfmi~?9vbbk^g1vr)K-38e<>HV7I4H5{b`^DpnGeuPqAesaeWs)si7oOux z;_>$UN_cL9Tmfx8d$4EOHma2h;_>+0V|87}VX=sqWWMW98o3^}SJpPShQlEoS=lg* zxdk|fbD3dQIuJXd)p*1h3}9InZ0Tg4_^)v;Gt83XAs33uf((&_X}fljA`qf%*lE5$53pl-YE--{KM zP0Z$UXf>NN1$fWs_0X41WJMwoIDP?F5I2Uy@3Jh$PR4Gg^--(MG?Q7fJp?Vw2FF;h z&o6&Yk*X4yrM`)%5bQ-=XbhQQma1Q(-o3ee_|H3d*HPzL4awl~qXl_xnyxJSoPPxv Y0CRP}poBWv-v9sr07*qoM6N<$f?Mv~;Kr4pP<2vcfj)Rzt0~%Yp8e$S~P53?g19NN*Y<9)W{AiuH#RaKi_TP~L| zlFK13IKPV@H0Jp@)^en+-84`Y~ooyZOj1_`eg z7LZP-8w!+4C7hp}+#O00mlUwd=4Q|rSxgMEE0e*-`g%hFirxF3!|HY%+3&VImUxO@*6$>tNe1vS<0b$3!e)?SZA8wsQ!AS(Z zUi=6p*^05Vqj>tPitfavUbbx^#yM$G{yFtR`v^{qW%1}?AHOs$%-gBq0q^}LI z{10BN%-mW2-`Xl^x$n_pf0TT~tRgi&5$zc6!He6|hFX|=N%62in?T22IDF-Ce&{vl z^o?D-Pwyuzet6gdKlge$%D@CH(|WTyHRDK4O?45;Ah2yW$cpN^T?*M3f*U{$R(5i)@>j{JfLoBtxl<0UY9UVtHlj(}z zE-yn>)jloRFr_VAo|#8^HHX+xTFjTlh$RQCQLT3SqEN&TCz46*R4VUxGIf z1Pe}}R9eA^cN$i=fXx{VhO#?lQH-4IyWwz9sx3iHUBT?l7g$`F#^%;b1gvu)mYELR zhGBwoKQ=yp>8(w<1W(K>-a#Gtd>+pph9L+1Xtj$VR&MH0I43WzBeNs@grZKO{I`HN zukWF%uS1Ub(J;S4GZ18Je|WKxTX=uel?BHTOkEvK!V^(E)*fcAKNjvTiVX>6?ML$$ z<5jl!k>3$odVcJ1f!rhM>11Z~lwba>!0kZWy^rSZtL|Q6Dx~YSW)ftG+&&E7xCVG! peEY-7#`pf$`Gdc*jMhH^1^|Do`aLyXg*X5J002ovPDHLkV1j~HFz)~W diff --git a/interface/ispconfig/interface/themes/default/icons/x16/inbox_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/inbox_minus.png deleted file mode 100644 index 43e8399fa136eadee25b77a8a13ba2dec316a877..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 516 zcmV+f0{i`mP)qTEQ^+HRV zKA}PfhITNR%mx#aS=jvn7XN_FVq&oQ158X73lf$F4NZlLmiBq=`*q#(k~SXEr0JKO zlmlMRGgl2MUJ6kLig2H(_z*xIl zxGp@$X~*T!_O9^U7j;O#0U~`X7K{G5*=%A&a)?VK@JKwB$i!2~%+C4+rza;!CX;~%l}ZK6D=R-!3F49h z{`vOi&qatx6UWnOl%Jmi4Jc>SYN$&S3972X@f)~;lQ9&&%d#0MX{q^%r+hwOCULp# zq0h2xP_%G&a~mL*4o+b{yaZQRQ6L<#!0Sy!gdi=Uf1NKEUa`8k^e2CCd>CV!^K37z zA=~Nd+#50Neq!)<{?WrZ?P|XaT0h?9TOiY_tk>uKEx-U!v&L=x6o3r?00000)+jEP)RO6o6p8Cpa3}8Cg$s4lMJ0>ks@*8+%DQvWg=hsus7fP72(}t* zY_)%xgd~&9-}AkJ1X4>xdf~uh-udpFdxs&6G3=xq*kRFEu_j7@Yy8~%pX@iDeUkDC zyl^=C!dLIyBu*zBl-2}7YHntluneQ7`6svH%rd>yWRN?$4wThzP zSU8L}&TOVX$<(xPu(`c+pQ@@bc;{lV*sy`{2(MrS%M-93SF6-gER~>X8g!ndQHif6 zyn+!dH7tbM{6XLHS`OuM**3|t47b}|2a3B)CS#uqi3Rv)Qz6=dvtk75@pbt_zAl9N z`)$L^nHdBEfw~6SY!*Y22v)Ny7T=|C^4#&}`S|SuiJBp^6({g2ZLB!S*dGa zKg%XD`(8(MbOQH>&%=9!e5QuUs921Uy=C4^B&nvUR<5*w&Uv#q@(m7(6S6kOD`D~l*}=T^~`8-IWx-HSUnf*YaGy6Zy7s)8Vu6l{eSx~LyGSh1r? zO!F}xZ=UZyZDs;{y(+vW%egbo*<2w zexY<@@t&sZh%wd$G_A`PoFfc^E;g6$KN2BNGcI5ajZaN@zK^X+1*U06ezsPtp;#&* zB{e@jzOxt)akhVOc%h=N0BVcLL!mq5z;%`wpH)CF3v~|Y3T?onHkF#GGi!APAbA$xr|&c z*JDtvR&jM<;rJ*^T1vovI*vLQRZ=c-JfFwG{(g@E&F(s@*l2ymw7j^7r!FH<23#;& z3_)#Kno*LYG{@Ygm7=s`#X3euzHL^FcVOz3rVI;i7nhZSh_8bzVp4am)uR zNEMAacIYB01ZC0xy7`?$2P4;us&@j}UzzzmfA%%4-MOee&YLJkUETBP#DqPl8`KZq zoHf2ZeXD*J{}X>r&p6E`M*oQi#@6VEDM8OanmFa=66Dy3#3k0iX))V)C3oS573kVB d?2!KwU;y!t>B?rMI57YK002ovPDHLkV1jVN1(N^( diff --git a/interface/ispconfig/interface/themes/default/icons/x16/information.png b/interface/ispconfig/interface/themes/default/icons/x16/information.png deleted file mode 100644 index d39b18dd117ed09b463494a3f6307226c560ea2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 725 zcmV;`0xJE9P) zNmAl38k>qOH7Fv8s3=&mDtPm6upYb$dh#w5JbCftRTPEZOAi(lG!{x*vG#{i+teo6 zo!#!v&N^?CZBs8EeDK|!*?phyzL_^mf*^qZ2{pV7zX2dIfS4j@BnO0y$-x<^LOX9& zY6gNpCI&x1`0^%zSH@Zf9WiR?>fO^P3#Ebn138+E8(3h|+-CD%)-Qhew04Wx-cy-3 zxu=2%PWL1p+#VY)2SQMXZ3C(usez-JRR7_0{`KT+&+jb;kx8ueKFApfW&Gyo@p7|a z(t6zl$8q5Kqg*H)HyS3`jM1x?ieqrrJyBJdkkF1Wyo|^Ftf5;yU<%WNV!~d6qFi} zOeP`zm%;kl(mFC7UEr@)7QQaX!)3)2-Jo@)LLrRHh~_BI1#4qvbsm`x15tGuo2X1p zRXo>YT7rTqb>-eNTps@xj#2Km$L8NnSGdC_kU^B-&xBtg@gjhB{<>xi-p>z?9Lp9@ zWQ=`j9h2DBru}nqwpN|{xZtt5C*V!J4ctWt*|q`hMMkO@Vn=ciJ9Q37-;i|7w@*bC zg72R}yq^ZK^b5B^YD2O-GQg!6ZK?nGgYiUJSeRtR9{~mc6?HIRoA$v%00000NkvXX Hu0mjftn)|m diff --git a/interface/ispconfig/interface/themes/default/icons/x16/information_frame.png b/interface/ispconfig/interface/themes/default/icons/x16/information_frame.png deleted file mode 100644 index 3dfa5b731be52cd8a715c9f7619287fa3875f848..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 900 zcmV-~1AF|5P)&x5;{nERz|5y z^WWV5o!q~Fz27A3gNN_%zR&Z$@Atj0uC=ulI-L$2$K_{231K&YGJ*x0BSr}2a=8h@ zDgm0Nfz1N`4Fh3+O-;?gj*gBlr_s%qXK2m)qjXU7Kz2m6D;;0PU!64K1Z*VWar zTN(LSb93`azu$j(Yzn1;R}u6+isI2b1v9}oM7^oB>xAbhMaoZ4Pp8N~NXYUomy3mR zsHLUF@AZ05UBCAWlS>6KS{x`Vv%_ZFj+AD`r|C4_d|bonC6gEw4wX{8ay74zoMezFynHR=brZV z_Rhy|SCGnC=y7xig?>X(l&!~M>y;ImY`}U-!i&)`d_G?%;|keqw!EsU(%t`Z5oWVJ zPi7;N$-w0s0@)#mVt!_$++oL;85IZG9B#&C0@hee!S@9fJDeKQ8ykp5<47b^=)X~w z|JttZ5O`tp!{W&d`DT$MJL3uz2FKJ@H47!a0XdqXP(=s^F;A8x38JxZE1jHm<=s2HguW*c5)rZTV;sd| z2zRcyF*G#zV03gOKn3`jXAMD0ixU&ybefjqu3v1eGwYL(m!~lPZ4&EiKT+?9qRmr` zD`)C4Fwi$dE%7jsNIVON!>W#+g(DaZ217CB>~*>7_g%Pf)z{c~p!UB;!`RsSxt^Yz zPp787f1tv8l}@K+I!-YGo?ss{_p=qsccv2)#s?dBCH$;tl}bn a1Q-C8M}wExY}=Or0000(@Q50VLoH@>%nKS0- zL?q6PIigl7i6~kb2vQhCLPSLn{efQc*@v*lF7#%%o^GLKq6W3^LSMi@<;=P4*4}e*f);$R_Fn7z_Ffl4DFxf$Td0@?Km>${Al-QJv>KQNN~1tc0E#&v z@Jr+Cbk%D#mOw2JV*c9Y-XR9&BfJ&zzg88Xi-g)1*e3!;L zNAT_ikMSIq%QyhG3g7hJzdLqiap~hEAp|DQ2mQU>-asPphlkJf91k{0M0&rv@e(VB z>sJT*mzLK)9SK;b>2^uY_ihhQu%6`eC5Xk6u>7o#hi4u}psmI3zcn-H$Jam*1QR({ zU4UAqrm8t(Z%-BBKUOZ6Icg?5Wdk{-h94N&LP68f?6o9aH=t+w4S&dHvw>-u{9Y79 z@OWCw$jKZDn8yBLu2@7*F-#LO*+VE4O0f9Y53DD5=5|03tL;K$vs#I9j;3H4@nkZc zH?XRdS_DleAWAYP%d!l%CTAUXS%F+m%OhvAv5Dct=3d6#){8_7YK>rIMNvSqEA{#% zNrbGrn?cTcLkW5)wVP6bo-H-W%?>sRW{Tnhm&*l`!(A6J%UbF1Ag!VsYAhj3O?@RA z{tm4jky#nFGm1kZ8jG`B#%UIMk?^>~ZkK(7BON$xGWFmm54*ixIBJW= zzl65-qwC*^=hyfaYh$>Ku^xg$2>!)Mkm`(^qupvq-5lC>R0I9b}@6X z24rUr%n!e*z5$$D6=0<}IYPbXFRCwBA{Qv(y10{fofkH6w2C!fV z=xt+QU}kXzGDCq_7Kk4M@oI*@e|G=5sNMmVFqq)ZU!D6F@_)CS-*nBiS)vc6<5w&z48Aq>n9Nr z5r%)iSwB6var*{HoTyk}`2T8NfK2lqoj= aAiw|{C|{--cD_si0000KL+2~MHFK02BR4Qrt}!dpqg z=X4hG@$Srejta%bWhAt1-L5~QYdUR`)isT&WC9R=2Y*c1nqohLL&SMOkT(=aiSmKE z9ed6j+Bz>do;?nJ@qTnmQWiSh&f4Y^r!G&t9#a094@HPNna@!a3J7U58;*6fe6S7r zzk2L_N@=B?htMAW7U*-^NBsK_x3(}&VNOv6t7+`oT(zw}JneSzDj3OS%*P_3aL9C2 zxtDQD3#8;kDlG`-uJp7@)Um{J41y4ch6gm23Z#=!fpH3RimxEz{rJ0AQ&~|&a%l+* z;UFS`Nkqe5q++uecYCK8r(^}x#8Lb6;l}9VV#;vHtXFHb^_omIL}a55hilsJ^;tO% zqa`a~8d(YVJ!5Yy{r9?^n`&yI;w$iU!0PmQd=?gCoN@xpM1q~b=St*r3%}+Q|0Ne) zLCpLgd-9<7B`sZfC-oL3D`2m>037pOyn6iz?e8!jOa8u4M&Q;kFf$7zlR4ymS8vbV z5!&BaSp^+Ui ZU;uS>8=!?U^y>fs002ovPDHLkV1l`4Hw^#) diff --git a/interface/ispconfig/interface/themes/default/icons/x16/key__arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/key__arrow.png deleted file mode 100644 index c41e4930e72b0ce4bc6fb9fcc946717242659a40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 819 zcmV-31I+x1P)3h9#FbrS`#yLHYp{1)Tb}(EPW|&<~VK?0cN8SKE&}* zxKBYpsOc#aN}1Py!Xk^d0whGuhMLl=6-TPBl-G3@SoUORBt`b)51jHXoUkSYpz&dc zK7c^5{7nFH5%8$|W<@dKy|BNE`7tctF)6IMrl&!bNz?Jk3iy1lMUOA95(I)d5`jU6 z2tP(c?TG#wL9fYJ2l+TBM+AkdpXycb2|=%mDAuTBPc#R<#yQ2qd+qSz%<)SxW(T}6 x*+qL}E??Q9~%2Mrov|Y355| znrSApWOMHB<=*u?(}9Uy_}#;EIQM`4_dFcN@Asptnnj2dj6{Mo0J(&CtUn8cx1xwo z9sz!A^ROF{@rfvn(i$rC*(Y=TvPhlVmZhJcYdE~=@C<@T)lhlP}CoT-Xwn%^foS7qLKW-I}&=>DPp{cmi{J!hi_{5O4 zK`J`SIq>DPUnd&|tnK6JIVEOV$w-MmI=pB6b(wupq zFpIa_@oV85>?`w7hck$ci^16Fc?in2#t=6S6 zjp{fyXK&76LuLvqfeTpU0)g9|&RBJ6$dA+(8RhbbI8|J}ku)pz z2>>M^;PtJmZT_v6$Mr8rsM%!%D+{Jjl3Rr~ zL8T)OE-`eS87AOFL5RqVN1h=XmE$%%IeHA{Jvtc3nhR3G)@>yD!M_3w0H3)(0B|&5 Qj{pDw07*qoM6N<$g0WDN{Qv*} diff --git a/interface/ispconfig/interface/themes/default/icons/x16/key__minus.png b/interface/ispconfig/interface/themes/default/icons/x16/key__minus.png deleted file mode 100644 index 67fcc277503098eb0b3aeacd91179b1851330784..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 750 zcmVQ50Qwp3M+ijzNhM zDGEVpF$5MOWQ2%G&>OAk%a7>wBh^O|Ax8G!M?y#wy?g{>g^)Bu*n=ERM{QDKn2VOB zV@_&$A9L?*pF7Sl+O%QabI!hdul+dtaGIu}`>F{RBRGQr+W?dhvJjJRgkDv}h@?P6 zl88niYSLg@K66nOmFqVa9L*~}QleSc<%&xSfG``J9PBQRd=Ivf&2vJ6#HuiGF#=K6 z3LV+`CyFZTYP_8ff}i{!e5$G-FK=^3*?~i@!B=g@pHra;N_GgV#K1m+gtDUjwdL=- zp9DUC^t2e&-&JM^Rs5H+7N4gpuzgQOIkORE7HlQ-4E{*ivNml)CO_`$Gn?Qfl`|e; zBE*ME_8GS_8>EmJfv7Erk{}#E*HocW#}*bN5QKTy%z$l;0n$=fU^b};VkO9UJMiY^ zs3OZ)nw!H9K8T62A%uB9#K>0+`23^HCOLI(lA7p4qKQ48XYIM+>1nZOS80LOZqKwu z(;-6%d%b<*0sru0jzdp8s$&Gm7zPw}eQXYHRC9UJz}ec%4Too^f_Um~>7es% za_%)5A;%r#qQpyB7D@~rf?02lSzp-4W1oSX|7fN2iYCg@e|4>Qn_tjUZ<_(Kz4))_ z8BprU;F#{@`Ad6gf73RtkKY|i*S8u>uSdJy4pi@^NEte*eqGH?x4LL)T%^J*G#95` zF6Zj#_uTHpTfoD2z`-5BrZfobeBoOCvBtUvF(koN2=q6Raf(^b07*qoM6N<$f~5*o{{R30 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/key__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/key__pencil.png deleted file mode 100644 index 267f7ad4fa70fa78b7e97e7eff9d0d93f1f1f2cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 816 zcmV-01JC@4P)@9yl?UO^J{X7iXHSMN8KZkhzHJ!Eaj04*`L)- z`cW-g@8ej_mx0SSd>^aVu4Jg|$5d4nE&$b14>eRESc9(i61tEW_FR0X*QdaR4jWVTQ0wUiV(FkfX)7YS1d__ zi^U1&xaw-|w(~s7cf@ZbudI;UbkeL_uDgk7=mo}TkfmjC;{TPZ$|6BPwHI=y*T+QR z+cp5-(iHeHj0EKuZ#K&l85ER`7CurXbPwvuoylnz`NymsR2^Qq>L+d`f#Unv8-TS=M`{QgRHg5>zO&thc`Cv@qz6*x@ z@{66V_0I48-8M<`BRP4G-gK(4r1wLkdUnb+L4xi3-+_uwyae3VPu}G@d5VB2?!EN;V0uF=g((ttQ zEfE!j3`=@A$y25|b60b&a8xS#ngdD>0u2(E%I;*7^DlYy18L| z9?iB<($Dvv+vHq?IjnouKMSmo6j002ovPDHLkV1gzke(3-J diff --git a/interface/ispconfig/interface/themes/default/icons/x16/key_disable.png b/interface/ispconfig/interface/themes/default/icons/x16/key_disable.png deleted file mode 100644 index 2bfd5aef479014bcc30257385c955f0133c7c019..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcmV-K0=xZ*P)LoxU@eWPy_1&`ZR3OE z-TUtDyD#runC*5;v{f#bce~kaW?>6~xoKzy_Pk!NMLZ-DiQgIv(XGv9Ll}m+aX1{o za5$`Zz20}kCzFZ2+wI=Y=kp6__^7YhBY+O9)9DPx<8i4_DA+rljt}ujB%)+88L3*W z27zP>kf_y|^aQKbDin*wW|d0ibUYq^`Fy@RH1rX}80Hu%fS}vua=k8>OP1p}D?qFk z15AaO2sxY~fvT#XkZ4JzQbY33f|w0+^qA>@V9;zf&rl4Q0`@@-{T0SA=a>Sa)oQsF zMe#?YQJG~~8F5h*&)e~&&2Q(WLf@0md$3bV6V|RAtuv)&%;aHGaSxzI{gAZkLSf=LHhl^v4VU) zPk5du9*^gDx^ubQrKX@>uj5#gqjylN)rcfX_{}?lVzKxLK9AU8@qYvis%kVECzRkM znM~dchrhTJVvr#7&a?P!6oVQY(<4K4d z_gov1Hv<2!T$&KO>VY!LC%I4U&9}GRWlUhayC+vO_2a$$CSP`~^RJd+|8mcAlB0{l zG}g7IdlT-Liv_48_b?{;JFX4Ab1vm1bZVDNPHb6Mw<&;$T{^lAkF diff --git a/interface/ispconfig/interface/themes/default/icons/x16/layout_2.png b/interface/ispconfig/interface/themes/default/icons/x16/layout_2.png deleted file mode 100644 index b0e3a9619d9de6bafe78f8ceaa140ee9285618dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 329 zcmV-P0k-~$P)q$gGRCwB)Q_Bj2Fc92m@KEZt(2pwg zEBa?1{3?%yo;(zMMcbVPgT}R52bRRy*>ST*ljr%3h^}-DPs+0F@d?1D3r+)SZP#_g zdkMf8L(aJwrvW(MHF%xMx8h4``#xtPJ?QI*6O<6G=NSF zAcinBm~v|d(An^9I9pX!n;k$W2BA2P<6TF94z-I8u-`L8|^mYs>{MBC$$B*~r9G`)V5U~v`u z@o3j|9pM2v4r2^iYgG(9ga{17pf>q15onr5nvmlNf`Hbri9p}?vn{P*UIEyw>srN} z0GiOC3HUH4u=EwoSyh#aIRULH3`2DUVBmQjpr-8ywTXkJIq?nw4Ra2PqL7R7f7YnA zZL4D7i9nv`vXm%_W{bjY(=hPlMB+HUaN)T1S7cYuvMg_gpZA;xxY@wBoG%{b{S{yU XE!IkRK?U!O00000NkvXXu0mjfkE)B3 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/layout_3.png b/interface/ispconfig/interface/themes/default/icons/x16/layout_3.png deleted file mode 100644 index 0740661a15e5e5b2e0c4b18afa9f4cb9deffc341..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 306 zcmV-20nPr2P)erEt@oZd z7Ka&QD1@M5s1<>2+p>g~*?FEN0f$vpMI|f>tm_&lQ^GOpE+9kD)f}0C75(Jr+CoKO0tT)-dT{7zVi2GTT5 z91d=nhN0H9ZF}dB%aNzZ-MkF1C-yVDEvygh@2>y@0H}_xRLLc@xc~qF07*qoM6N<$ Ef=k?d?*IS* diff --git a/interface/ispconfig/interface/themes/default/icons/x16/layout_3_mix.png b/interface/ispconfig/interface/themes/default/icons/x16/layout_3_mix.png deleted file mode 100644 index b984bc036379a10d5479c092bf824f126873a94f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 353 zcmV-n0iOPeP)Qvk zRaG_mn*vBiu`Q4!$$je#v1}GFJHTvZSyB{5kF^ne-={c^?-I$T00I!jhMT5Y6bOQV zKQ!wA{x3^J9JSnmxdS{QU~(=X#vK$z!53yYbNFc8StXJCJUjYUHU}rXlblh)C00000NkvXXu0mjfgLaFF diff --git a/interface/ispconfig/interface/themes/default/icons/x16/layout_header.png b/interface/ispconfig/interface/themes/default/icons/x16/layout_header.png deleted file mode 100644 index f8a173cec333d362e02cfffbce3f44c30cd7369e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X4tTmahE&{IGI=A{VFiIUe`UUe{!pSb)Wh(>{Z;U hkWVYGd>2Y!kgl1nU2yKY$Q@Jd3<)Yv(n&u5Cn#S5XFk~|G-g7dEBG2OJ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/layout_header_2_equal.png b/interface/ispconfig/interface/themes/default/icons/x16/layout_header_2_equal.png deleted file mode 100644 index 26987b80284d4c025941130f6ee8e788c992d696..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmV-d0jU0oP)wiI+hF!ChyIg%uJ%l^ZZCeA=%p_ilVzGr3~XZ zzS^p@EW6u4|Sv3AiBFb=elcLAO}}Fm67;W)-aU ziT(E)*Emx_S(bzcvAkD?X!ASuJ+kZh-^{lGu pCe(VTe2;1@^iugtwetQ5FaX41FKcXc{m1|S002ovPDHLkV1lg5k~9DS diff --git a/interface/ispconfig/interface/themes/default/icons/x16/layout_header_3.png b/interface/ispconfig/interface/themes/default/icons/x16/layout_header_3.png deleted file mode 100644 index 04bbe9d067d66dd33d6d779c43881a04657d8740..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 319 zcmV-F0l@x=P)68v~^jwQcLf z!~h$B_Q$SF+s-&!(=<*@4D5|C3^(QOF=#gxAh-Ln$JPpd&xU!qvVTk}sOy@HG3)&z z@B7|~L945(l7>W4v^EF7s0)Ku#c_P&#l`0>a5Znm^NHikp%3auj?Y(s0RXYxfmHko Rv*rK*002ovPDHLkV1gy(hC~1W diff --git a/interface/ispconfig/interface/themes/default/icons/x16/layout_header_3_mix.png b/interface/ispconfig/interface/themes/default/icons/x16/layout_header_3_mix.png deleted file mode 100644 index 3729263573c517e1266ea219b6b0ac48cc3d83d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 364 zcmV-y0h9iTP)?BDpvS}I)wg`YrQ52oKt{YS(?1o~@572ph9nddn-WSlwTx~^xrwI+fqvn=Dr zS(f!~BA)0pxAu_06^`Sa)aJ0|Ur-g^G3cH0y>j^{zg7Nt3NQeMRvu^(`*FSi0000< KMNUMnLSTYLjhXHM diff --git a/interface/ispconfig/interface/themes/default/icons/x16/layout_header_footer.png b/interface/ispconfig/interface/themes/default/icons/x16/layout_header_footer.png deleted file mode 100644 index 806a18491a1ab903272654fc3b957344d228dd9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 297 zcmV+^0oMMBP)Yy#fK z0~koXV4FRYjdp^kvJ9lL38?s&eN&|0$-=VRd>?NfjOqLSPDDBB&WpEg%bjzzhVHt~ z^SZ9`(FnkbpsK3+JkKcD7(-3dcwUx;_I;=0IHCkek`P!C0EQ&?{3XB$BADk{V2uE* z2s8=Mfe5B)QVFcJ1Xi5@%r61vVdm%#ge}YRnPr)35yo*O9)^M1wyncXM8Qa06oofw vnm$6KH%)@j!`p=S67Ch!NFI?tUjYUHN=}RI8ysQH00000NkvXXu0mjf*?M~< diff --git a/interface/ispconfig/interface/themes/default/icons/x16/layout_header_footer_2.png b/interface/ispconfig/interface/themes/default/icons/x16/layout_header_footer_2.png deleted file mode 100644 index 2648663702d2fa2cdb0815b8930ff033eeb518b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmV-W0k8gvP)809;DbG#bb8Bb>-Yo#*+gr%RlJ%e$^4@j}xyNma|TNbTuj#z_GHL6}3= z(}h-mF-C3M?g{`W1po$66cfEoa%=+JWQ-K@hpFYjhFnx+Y##6=hkLh`;L;8SZ@FkD22*53$jki372R7ZcBm i$SXuo@?rV?6<`1rhX66@VeE_m0000BrHwSGZ9&&9uL=bGv0Nb z<#}G9%1)BxiZ5^5cK%Tb@TLgE(C_m(iVV$x9I>m*?f>& zI6zOF^VLDgu&)E=IF4_crt(85ih{B%yYW2FDT<;%+_1mNaAe!|bp4rO7#A_sld1zT uhi6%qcP91+v5pW{;KS}qyoL8ifB^tVkqaEaP*-XI0000iR2;9~amt~34G%Z}z zP1EE!&$ARR2CRj$EVFf8cS<6g>$xppoFI3>P*r8Sw8;zaA8Kws$^VP*7IYd%k|!tg5OL5gkb{zW6jv zN8k5T9duciAs@$47CHpLQkG@GJkLKuiA>Z*QT*zu5_4dA-}fXQXjvA?Y8VFH_f)a& zNdhbau!gFq3MBz!jJmGd>Zb%)2Kb&JNs_0=3NLO1dj&XK+qM)%QTpfzrfE_f$05h^ zo&W=o;u8(S@GpU7S@K1H6rg^^M9hJe3UF@D`Q`x#_B~Z#F0r2H1&-rrU4*7-h}U&Z zd7h_m^qqh@*L6c?+xA&F|EZ%u`0$NCi*O-~a#s diff --git a/interface/ispconfig/interface/themes/default/icons/x16/layout_join.png b/interface/ispconfig/interface/themes/default/icons/x16/layout_join.png deleted file mode 100644 index 868cd87ac58917fb85eb8c64b763d389f42acb4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 391 zcmV;20eJq2P)^@RCwByld)>UFc5}MwxU3=*FxW* zbDtqoAdn$*$3912qYvQ0Tc%E33Z)OwDRii(kkx}5*>Y@EcO^mCCqsWYg!D;2zfQKu z^Lz~ex4`K2d-)6#vev#qmSvANpogb}of2}{wkGZ=gpOZn~_pCuxRV?$l zY?_8PVfl)p=xQ)zKEE1tT{qf<5ku_4g9aE;>zYO>C2N3O)^$yXIRj(P6!mVk8y()i zY>1NqmjDl1D*&7Pxm%44{$9_e(^|6zaU44n1$aec%*a3~MLd`Q*JiUtu!$E=3Ai5M zT&aX*K9^-#(uXp9Yh0Vp6PEd07DYh~!#fR|h#NTObCIU$#!YUxcfQ|#P5zDL@#9^% lap5X)CE|h)F9?RMhjnkaN7Nj-@p%H*9Y8BJZau66 zyS|L$m|v9cdw||xFm`&jFQX{p3&WYZmxu)}&-O(ahEpSUTwmM4`DgFf82`M!2vdiK iV?#;*!`d*}2rvMYF`}{7 zTiXI{r`uSDj_<3YPV$@i^8J>4Z{B<4c|YJ|rZ`U#pa@dzB8q272+8ecQAa<9Kggpn zQoN+_O8+wtldS68qSq@nRS2%;d;_B_4lD-be;|>t6#_{eOz)ht&5QBnJ=*TU5b0lY z>3{%g8*BM=qbIAiwMNx(vRJCoXfZ&DMmhcB;&yy$%DQv2{~k%K_(k`?FosBQY<7#} zQgb=WvJTegYst3TYk99%7g$(e5LjamIn-pd=%HSmAgJ90o4vQUm-TwjFbq>T-PYy{ zc6B8p92dh0SgkfYZ*)}MNV$fFhFcM{`NZ}q7>blYkm+gxwPBH5(3dwgYc@8H&ngr? zr_=dh*zdo8Hl4nkPNyGVPbQ}(Cnvpib#=AJhK34K3`1gj?w_Gbc#liiRec4MtgNhv z=QxNtoe4n@-qOAc{yi@2A%_~&q6fXWgwSCEa*157IpBE^cXwkKl}cBb5{f_W%M>|0 z?-F@Fb|8vC6bcP`(2ElQ4P)XZxJV1chd^UaQe4F@TFkd5_n-|6^?I zi(3%JX={UeGG6J68F+Q68G5u?@UGedhE1LD1VWzEJ1$QN;WJwWq7wFGR@mCKz-)a8 zjLVyuf7^s!f;&M^V*w3mKf2EQQHabhL7WOw7(h9By&bajn#}FYTxZI?8J&jjzXTWn X)tXaf(WT}1A`r3t))QiX;06oEj_-E(YcfSbKX49^ZTFYea`!m>%D*vPxS%SDpi7N z4OM-QBr&<@SIqQfd8JA!E7eV^XvzQJ0aCW3!tra^qfNrcrYB%ki@>45mIoyD%nhrO z8OD|ld&U)UW}Sx5ph?MpuTvJoi=P91wx%d|Jr)nU< zbhd!bGDVJ-*T3U8%+1yP$+EFvF!=32JpRr5#o|}RV)4>xNg5p<9*#CNH0;{i-(U5d zVMt~@l1pxbziqs zVSQs@H~eU8Qs3?T#Dpw%U=b_e_w4=ooyiLqwA=G}M^8`Bmm3`&-6^9nvtakyrLBAP zOU@eA%FH7*qb-2{l%KtJS-m~3m;;2~h4$hCjDIu;oXh2E@9XR9-go7Sy_C*@F`3|m z=Oi>X*TGyGAX9krTdH*ccLs0GV+U4M4dB_1Mf+^aoALVx*~#nY2>r5(p2n&V{m}OMI&Y*QHU0?1 zAMU|(Y?tOV`@B##xZZtsPONQw&ocbS=07)jhsI##g#ZHp

    c?8m~DQ00000NkvXX Hu0mjf{-fV$ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/lifebuoy_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/lifebuoy_exclamation.png deleted file mode 100644 index 34f9353271f9c794451b500eecf89024f70e2ef5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 960 zcmV;x13&zUP)!n2iy^#6V2I zMQ}F@o7ydCOKGv~w9|V#&S|`T$$u{AoZo-Wmop#x{03;bRn4k8Rh3nhBMtq)@{~M^ zC|31m|62}KPE}v4N(ujiSDA6NZ}6LYetjOV_WlN^MutcR=XO}J;KgaxijCtd{w+nm zd!~l3k%{mx{K#?(2EXXJbN!ledOE0o@$n(SY_^a=t5lL~ySqp7`nvb{%^M%E%Ds$| zSY9O)j@lNJtWSk~qA0!~rqffVKwzwvN?A|0w|NphQ;c#{)2$^&WvPR#C(|?^yAe`=A&mjo%cJP&S!5_tLtlPYpHNJJa%DarN6=RtbCTJ=O4vS zw1u2L4wq(lc(5i(C`Y4}R;%^B8sEo%YoB72qZ+CuhFID{zFk2d(`wDlS`A7rSAM>y zXTL!63Nm;<1h%^#neqA^-d^MmVLT0*i6NFcKn>tp)halR20D&|%jrbG?}sY@C`wm7 zj0w}DuYGE)I5KE9%3X$7x>&1vNOCq?7Su|+*K7Lu;>F-EszLjff>s-7ckqnK@${I< zv%FF=#9}d2 zn1(q`?TDRA<{o)TVD#) z4wn0NuUpgHT&3!`P$boAbr_I}MkB_>#jW_%lzsbt?^BXk4v5~qAq6JV<0RP)H(Su$>uX25622^BD{zx}A=B%iwD3r_P{)3K=M0jN-dyI$abdkt$Iif@&JBr7X zX|I*z1}f@XJ^}-#R3IZt5K)bDp43sr_(P+M=Y9rdsHAQVP9Vgn;Qn0oesgy(gy4gJcb7J5~p5v2lq7m`Ypf!0k~U@?R-%!00000 LNkvXXu0mjfT%D68 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/lifebuoy_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/lifebuoy_pencil.png deleted file mode 100644 index f4cd98da01d7addc58c902d9db9b2a0fba1016ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 990 zcmV<410np0P)vwB|?moO#?s3WOG?W zz${~1aAT>~0d5rty(=wid;4*3M|-d5Z8r5JPwvV4yw8*8ockW~LoeXsDfUyWQA8-B zh|SX^hU9XqYNj8{15{F2DaI*6+W(1%NXcUrHRl6vLkwOly8~8T8aOoA^czXUU9cvZ zVQS?$_l%nUW1W_dqKWojv9m7+#cs}VP&N2wxV+}d%DfFU-YB52? z^f$OYJv}{KDD(`&F!rhTb|KQ;ok@sd3KMW9Q)%VMNO240yk74c37+4+yb}f!TOh)8 z?}lQ_963;4_jIdqVPWefmKA(H-={<2@F&kI%7==geD$&nmt(7GS~TYjt|hdtPf8r0$uV)+bI5WU{G zAMMgBM?*azyv6lJpPS7kZ1p{k(7<0du(9rlmO_m}`=08LJkK%>(EtI>eX zY6Xwm4Gzj7aE~?QA`Ao9QYljVelH)*K`$mSO9l|rkx0tI^PI)yD!uM>Hn1$~e<~0t zB)CZpve|6I9$qy2lS$|p9VPGBH~r}@Q@_9j7SW{&!u))AgOauj7m6JYM>`>;;o$|~ zetTW~rTmF)RUMzzz`Ko&>lSdGW; z-75S>?Gv0?dd*e!WV4q&efr02{>#9u(W&%lT0znlX4?TXN2cz-a zvw@xG%ZsXX24Uv{X?gV+eD}fUS^4Lz|H^H3fc7p>O+m{L0(adGIDByy(vR0cW!Y9` zQLBp5()?;{rDDbK!oUsgVU1!}Cbx~b(VGwkY5_Hjr1qBgN`2~?wtE`n^ zp-aQ9Id$&)9CzI5eWWjX;m>(_{?G5>|DN+6a_0=-vQh1#nx=|U&7kaqB!=c>y=Sn``U}olcJfq+~KtG(0?+?(cVfKYHdo$&5tg;Mr~* z!eDHEf|w{=#q)d<9}YKYJ)UYI6f#cx{VWRiSVIqcmU@w)EGCHRzk%D+-rmlKLR(mt zEgfiV3`bjAGx0ft6pzWz2(rc=q*if1O zs*n@eiP5Rp_}AdvSTH!{`kV~ZPYZnyy~+}~nlq+e&(GgpNL~#+&t0H{fT6dsWN$re z|NT49B_Tfa3DWllVF43RuV8}*3a^9W^r%4AyH#?i{GD{5X8@*t3NQdvsAdlb<HoVv^USjYY&aEvvdg*88S2FT8vYktNAiqpG4FEA5RYOSAQP4JW z=KPh}XLlXP1LFv*VqMPhs*v?xxcT7rp!@Vi=whm=9GtjMpaB82H#K?f-c?nr5lw3} zX@d+SAVn!FrJWT#J##Ar1m_g(fM90sFbpUFz{0GRJ7zkB|cWktw zpkZAccQ-hWK z(e(Fk@pYbeaV%?Lwqjq_Gl^9STsU-ZdhbC;RX8P_SpB#GV2)udJoTX@Ov{cWkYYXY zR5lrvF=j9!ET%q<8Oi4#`fNd3YwL{}7jinCwQ!VVCL;r`R4Rq$p33%16R2j?b<5$m zfL<^CMWIj-ydnw&{HW33Q9oe6El^(owM&vTLIZ_D0hP;nBTr)vP_Y|_jpvMEU@+EB y(I9+Vz|Mhspyoc|b1Y@G%M`LXoq9LHD zm6U>ogCevQN-1>9{y4ADQVEkxW_ITL=FQughgDTYRG!_#C?^;rJD3_snQ0d6GH9@~ za?XP>ZU9buCY|=KCXP-|k6JER8=mxj z^Qell)dBca>g&$jJS{6Jq9_>=K|0Jjj3>@jv6D%Jj=EgJI)H}b2%T+qHuUubJoy5W zoHe^k1e;Bgl0YV^Bqfy6`S;5&y8?PbSe%hGn6V$`1g8~wJKl_9LfW?%U^8M&O07=H z7!ySl=h2PhQwucC^ET4bd8|BDX+>|_o@U8xFoec&;#&U9KWhJzxDC?ME zIHJ`GnCGn;Yl*lt(9tG}s;OPe^Il3Ig&jbV;g7F-Kl4S-G{;#uovw`0>urSR4=`Fy zW!klHr~8)ib`wm%o8ytf8Ny_ym*VkHL*9q|WqZ!+ii;gYudgCtwXeGF4=yi81Av(< zJIE$X%b0hi5}$BE}4CEB~-K=p+@oO{l2Sq4n;Cddfi2C%K50$@B~|ANAcK#O!}bag22 bp8x{@^4TYBLk0%v00000NkvXXu0mjfw&rkm diff --git a/interface/ispconfig/interface/themes/default/icons/x16/light_bulb__exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/light_bulb__exclamation.png deleted file mode 100644 index febe9fe85e16d09585af1144385b297d6feeb2b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 794 zcmV+#1LgdQP)$!@#*+x znqeG6DY51!M}iU5_hjTB|bseZZzm32!guqLjkE8^eB|hbBKwiNO zt>idN@YvuoP-#@9!{+uM4}`9UY@WvYTy9g}Szq3YuRU-dX}jOJGSRoIY05Lg%h3XC zRH_<)ri0&Bcl5;R%a8i(4ZZ*%)tZwxxx6-c%;P;Duvi60jk6<2xSfg$Kv5FVh=8g> zYw+x~Gpd%wnwBrn1~KL!m-u0=wfotNmj=O6*WRqDs9RNlA=ncrD(%`55jd?6nHtnNf7glflO zZZkd!!>@0EC@%qPcQ-2v^b`t!N&-}kAhxzJzMRjCyd=G6rJo;b5W;4_8<@i)oa?#= zRwfNRFFRN>-%3Q> z7p9uOeOZ_bw)Y0;a@Uuli__sdZ)zMcQ0)NKAhOI~@1O{kbTamJa&(blc-Ca%IT{nn zSW4O}E_Go9;n|A&$lCIhjF1Uo%pe-mJDLzT0A9V@BbG)8&-}rKP8T?x&g|F}{vI5+ zxFV4V^gon^lP!=nc+_5w0(5u&`xjtvWE(;uKZzvp`Mi+Nb5LGbZZAg4MktPBCJ@5m zaNX~AMG=z8n31Pep=*alahzv|zb&*6K5aNmNC-4x?b>epj(gbvkN&0kX-7f(K Y0E~n?1Kr6a7OgU*5eHIZ>HJD{X z0Q~1lorbW$W}_-6n>_wwhXOYOP2RnGip6Ak{a1W>F8nsUmW+8ZKSDK4LQO!^jhp>W z@8RR8u06f3YB|ufoKlpNrTG2+F6L*c+q%q4dS1!k%^Ofr8LtWGy5TxI&fYwu=>OFZViRT%cXukT+6s%E%dJG?%hs^*Z)lvOpO%kpo~{SNuz=m6ok zMzWSjU>C4lZGU{LfJKodwXiX-5yBYce15@l^xlz_DEgS4&8JI`ZeM(r8GyTL62OWC z#uO;222zPgcur9ydpiAz%Vr}yA!Umov=C7|z%9*8E-EEhv7QHDTPi%Jz5^8aGW!1I zH__T&egLV{2t;>KS>B)T#ZP1KF9G%k>kxWE;0!49GejlpODBL*derl|xZsZwpB zyp&pyQrkj*w7gf|$C=t!3v!c_J9F+{;8bLq>a+N5h!&&6x2u_xR z*$MeUV`rm2C)hb8V%uxot$ z!C9lR`>G&}z2gMl33i{-X5t4L6lTgZ)gQ%Je0@F*i}JWdS3O2wPe}A`_FtFTWNRRMB#|ULK(0 zMa}0wD+dQ((d6-KE0ld|5*@ZB+inJu{5wQ*Sl=j2+5t>z|X*T zfp34&dZrZgdVSJrmw2mf1*H^4L3=NwJ5>cqv2Mp5i1vCk2xhYhjaH$uvI5d+IqXFI z?+mhI1%l3EvFyWva5xOHSV+v{STTY!pGSz_88s_KPMs~%pt%b9b_Dzb?;*d2kU)sw gOT$kG^Zp1h03~)>^jurcDgXcg07*qoM6N<$g5=zANdN!< diff --git a/interface/ispconfig/interface/themes/default/icons/x16/light_bulb__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/light_bulb__plus.png deleted file mode 100644 index b35850e07c397c0f6be274c1c23c83415b14a6e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 779 zcmV+m1N8ifP)j@(ijzsf>bO8 zkpuYXmQvcnZo3cXD}70rP9ncsXfnOS0*CQx~Li$FmLfhJTQ4B2QD^%^2{p~Ze3 zKaV1U=)4SR1336!XqA&S4sUz2@2aoHx!0vA%VvCO;a52DEFdbYo#%TlHTJ#g2hcYk zE*8*@+{<2@^YF3Gix018dJ=R!nNif`?9HXYj_>tCx46d02|WRz8kF)0Ob8YW7 zwRT-Qr5kC+FfuBw&$0r1jjix|P9Nv%;E+?+WavEOqhr9^=Wj|KXnIcV-r;n+H7$u` z#?-Wgp{jqtYZcU)mmi6Rt0tst7e75P8O#qH+**LksIrz`pVbLra^zHMj=R(BiAs{2 z=@}k%#q||{4Q$s!+JPgb4zgNKMHfSXaJ7p$l1ha)3?oZemS?P1Cy}HB7B6wE4&4i= zNDfjmxU9gGcYsCSy&rt?S*mDJc;3znf`b)BHzP?0S*vBAaw0t4e?!T3gN7^23sb&B z-1YowEcRja@%6Rb7spq#Ss#zqHknAG|~8DIyBYL z)XANA7ya5%gUIiCTJTR^+PXf#5m zX$qlmWHX(4{5-@b?wB@WyF=6drEt;B^pmHdaCAda6k#wJpeqSLp18WU{zx}5wrp(B z(2I|u7)7`AR$J-ayZ<1qs;cO=G0_5CAdt`V@wsKyz$%fcnfB;hvkV(M&d9>XY+@k^ zc`3KeuXek#T!yq`Z_Q;3 zoleIM52}^&VoNI5Z{A(I4Qg?-^1WKGRgTD=SN?wcN_Gc$l7i6Ny5 zz*CF&kD$?Lc+ZcUQtce}fT1bGkk~7|SS(KTjl8llnGDKivnZ8HJu4In&eqnJ!!XRY zD2j++x^DVkKzn<8V-jM5umT$z7{`(%p{tCZiaEe6kSvgcZnum2ec8PyXK_H#TSvL_ zVeJ`kk&C1#Jcq%*1S~?%3-G4^GK(Id4`&vs`zycz7_nD-=$-fg00000NkvXXu0mjf D;}J>d diff --git a/interface/ispconfig/interface/themes/default/icons/x16/light_bulb_small.png b/interface/ispconfig/interface/themes/default/icons/x16/light_bulb_small.png deleted file mode 100644 index 6260f5277b36111596cb83c4933c9a555b098809..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)rk7RCwBA{Qv(y10{fofkHsB0W8=A zSJpG~GBPqa{`&qu+od5Lc3j4?BOlQA*XLwGM0bjo} z9KUkt{$pWb8y2+fnoyy0t^7;_<50m SPO3rx00005m=17tk z-n@Au!66`F{O-%I@4RC2daqu+k|4psK1#UOE5)U=lxSWTbZ(NH4)>0OQcl3ltjw5MTg99Bdt^AHxg) O00005qAdklT8A; z{(EQS1EMe3y=B{(U9?(ee<(P?gkjs)a*T0x5Q`gy zd^#T)ABeKJL5?>##4J$NYa)J!XUBGdt9Dcr85%6emMVqt*g(u6^MuA5PMaK5tIR$S z@cNGQlw}Eox1%8I@?_}JJC_sZc%H`1skRc>WVMTXoUX2oiaZUztpn23)d_cdEqvY7 zu)scQ%$2|0?eyBLMSM*~lexw8Fe}_$qsXcX#6GN0#8Rm~2n4;N zmx%MJ+0?iB^cZt>lMs$3W`IW{zNG78xoGN*$Ft{@D2?zyNr?^#=YGi~|4w002ovPDHLk FV1fkrHt+xd diff --git a/interface/ispconfig/interface/themes/default/icons/x16/lightning__arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/lightning__arrow.png deleted file mode 100644 index 6ef567de3648d9cbab0c7f5c46dfc900739452f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 770 zcmV+d1O5DoP)2&DQ znA!}as9t7dq$JWxOJfm1SZ_fOJ;ca8gis(vFM%0BL`3;8BPa|DEM!`!73wxuNx7NM z%D_UM-fiC9-9M*uwb52a4;}dU&OP7#{eIv1zVA>NWB8xNq<(mwpyXCZQPA-Z?6E%x zWO>aKaIMkYSh8u$shwEj$O#6D$%gRa^peNz@M+YzS*^nGHv&Wm>P;n$Wdb`!uriPN48rHCG7YIRPfw`s>V}WASh2;7IRP4QQh$4B3GUmreZoJ~Th1OII zl{yDKcbOMl9MgOpXi>zd%GR`tU-=H1nga3jWbg1tuDtyvI3LbPmB4cxtVAN|MI_a) zp%GN;ba1xBvH{U34B9Leo}KFV$0GBcF7bhlfIUR?weCixtWN^txa_%EAfsbNm>n}(Vv5WV7D2Q0FOF` zylDh>8wK`#a8#$yXjzGgUjx(lbO-aal_*)2cqA5sZM9Zw(RK^GzTM-c5Nc1mLbn@o z>#Ctz5QOlvLAc!2O9m0@&y$d%E$L6(8;X@$z}07*qoM6N<$f{Scq ABLDyZ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/lightning__exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/lightning__exclamation.png deleted file mode 100644 index af2683158f879e5a2e3bfac46868f1cb9bef9194..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 764 zcmVo?X*)E zpalX5jS@)24MqqOh>;irBy3pd%7leGVgwhO=*nm!8~+1cxUz{x6x~!qG%g6QMi+=g zn}Eg2WBSB)I*;q=kR~l)TzHc&cV_NAzw^yG_cD}H_@BX*zAU^X#YY#zz~g_!jvfM- z=KhSq=j4XrrslS>)6~e~7YYpLfw=NLu@Jhp03{^K=2xL>MKv)MPQ)X%|bnBDH4cA$ghKo+~`6G&mfJVDR?s9u->($f>u(nEA zoxk(JD_P5TOByzGWET)HT+`5hj8cu^gj)Q44LbX74>IU0seCp!BQv{(k$+flS{zL2 zIe7huo6Y7ZtLA{!bxO_-Tt1`z-U42bbtO8JZ0mktTbmnyZkqa4+@3pBM67;4OQ6@~ zg7KynKVeB6oT8m>|Co(d__{Qwv&t>``rEMB13J1Wh?KXHT0KWsos!pGE!fi#jV!Hb z*{!6n@x0^Gm8Vcu+jGJ+m=Qw<4pk1wWK2+13Ytc{IloVDm(G?*Ok~u!4B(^|72h@J`XdmZorQE1^7z;aojhm zX~2{Lf^Pt`L$^s8KD@ZKD2mK8hgj7LY*e<99T*&%0w!X|ua{bIeT+MB!@Q`TC(|(XejYL{jg(d5 u-!{W_M diff --git a/interface/ispconfig/interface/themes/default/icons/x16/lightning__minus.png b/interface/ispconfig/interface/themes/default/icons/x16/lightning__minus.png deleted file mode 100644 index 1ef5976d801a08b9f87379ce6a289e3d87adbfc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 693 zcmV;m0!safP)pP-z;| zHeyktr1@_)yV>3GOPW9uqaGZ1`_1m~-n@O^M;K%9KZ~z?@xGwtt%(qL^bhWZ-vl&m zvm*JFV0X3cIdJI+Q$_s3fbbTG$5s zL?q#x8JNfOeuTfwp_KxvRuplVnhqc2iP|hnDNsNMv5cJbP7f>;$Q)({OQPgopyW^hTl6Y-!yor2@b;G(*sH zeb(AoJib}cu+$?<8@3xROIE=V0<7 z|60s3PRaqND2$%y>OCrDe?o(?Mfn<^hQ;tTf*=EqEVR>m~F}@yo&L-i$ zGQs{niJ44k5GWiIY*bhahr-|2BGcMk*vmrTsU@SFuS!5sie-nv$nTFu`xJh_(S|*7f6f=<`QqD7}lJ_%VP6d zmMogPIo;*#oUd;>b#vec&-uRZocDRo`#k46%pk)QW&n43RjOKpO7*quLJJgffMKxh zI94pI&f%mbaqK)|k6t6dWVS6_eDcXT945!{uf z-OqVPC|3Y0QNZK2yN7$qO_UQMo7V-{$c5+mQFZphKx2JPZ&As^b1Q+J1wMx*Efn-3 z3<;dRkjL0vJ`y2|SYj50O&{#~g5K=)`ABthW6fNF=60HGOb@rm0hd?s4zyQ{QsRAy zSTM6Jp|xZ~fa!S~7kB1LK>jhvr5`=7y$s_}EBtO-pLhqBw***x`g-&$@O<0@ZO&m$ zGGQ{%-u5248wT{Z-zq$E@)W`X366iO8w~mvt6~YvrzX+HhUV4h4-io>0Fl#4vCDD5$iyZ`?D6mkM~uEH zPnpgt=VvEp7v}BVw5#VV%aCy!@U9IQvl2Y2jS7Ur3H;sCByo<@;aaj<{ti&jkAF;q z`_KW5TS-E3Tm&T=;GzaPS+b;JWjXxEIz!6zU9elG5`P40bFG8eo3uFfY(DZij&m9M zQQg{!NPnpmk(rNy5JkKI9SVvQ&24z`VHkeC@0_{Kxj7wL z7G~*16j2v5DoWC5{VGUN7hMHKmk}vlNCif8(@j^AS9OtHLU8sp7w{p#I>ElZ5M1btX@~zyD57Ep+B$NbVlI zd?>z2tujGgg`ld89`KyoBd`2Gk+o9>k@ol@s^6i;AC35ED0-#0EFC@wLxxzB@v<)vu%HFK$lgT4IIu7Xq0b(WbqS5;r?v{zWnOPCA$gYkt( z?-OEu0EM|Pdd|Cz47tD_B$K}ufnuMlg1TnI)8YBq$UvvXQ9A{346=@dmVl9s#pS(x zc?7DONgFIyace9ZUkU}kkAwvA`c#?@HJxg78<$Zvil!6UdZ=eG-^5lALF-|hw%JV` zE6eKF&@N4@(+OYJwBHo;_M_}r0~!=XiN6}got{3vh)~P$ zT530@j9VomF)aq9bOIA`LnQeg@Z;pM|M7F&eLIFEuU$Nhos%=+mnY`GeF7rzA;Oj0 c1^g6X0Gv1*Px}S%u>b%707*qoM6N<$g86}3umAu6 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/lightning_disable.png b/interface/ispconfig/interface/themes/default/icons/x16/lightning_disable.png deleted file mode 100644 index f4c8865c895d3e269262b703f58e72469e069e98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 618 zcmV-w0+s!VP)U>*z<;1 zGBwjpA6)Lcyqt5-{Rp$)@5%ohr!^>*N{6e9VVJl70;W=_nR5m}a3$z)PR zxHF%5RaH;x_4*mhvK3neyWP&jGcUv8@B;U5Fj^z8D2i0AR?l26SB2+!4l&!&(Wp+by;0NF<^m{0`%W!{J3PmwQTOI~)#W zv)PcYFPOVlt4YCNkUqb$Ozg&%fM$=yVn30MNK1I9*^w_BuOI6 z<&q#%07PoJTn==*-L=!{Y=B@-fmkF0LXywtj|u3Aa6FiV*zfnnMx((2`~gd(H=E4| znQfbxNF+!+9>4NPPN$m2{6N4 zX~S~g+f9MT4|UmUwQdK4!Tlnc>%23)Zhm(lA-@F}0Nf+Kf(HEg!@vO4>?a{@p(L;3YX}nCy|s2fkZL8$3%`Fe z@cjM9>@Ox|r2gm6Cx$i4YmWT;$I!~c{C_WT2K-?N6co|WU|{^kb^p%p+ronXKeDm@ zD`a5!zlA6RK7M9QJALZvwy_5HNf4 z=;Q002ov JPDHLkV1fz}o;Uyi diff --git a/interface/ispconfig/interface/themes/default/icons/x16/lock.png b/interface/ispconfig/interface/themes/default/icons/x16/lock.png deleted file mode 100644 index b5de7c4d78ab421dae924f39bd668a3ed7e7a056..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 637 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/lock_small.png b/interface/ispconfig/interface/themes/default/icons/x16/lock_small.png deleted file mode 100644 index cd4ffe8e2433fbd36781d171ecdb3cd6737ca875..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 370 zcmV-&0ge8NP){67g|GcqzP15yP9y#NHt9(fCMeti7M@b%MYhPSV-G4Sy)mZN?aiR`pxjq*v^gt<^nd>k02K?fLw6% z5W_!$2Hbx1|DO;J7u(bY2!{k%Z20RRC80Q^8>=U1BS QH2?qr07*qoM6N<$f3Y^IZq`6y|t zZTvV?M64IV8bnY-sVzuv-i6{tghD+FUOaf~p(l|-K|xSYo)mBnjye9f83^zQkEPD{4V)V;d|QvGTB@hZeE)d5PZkT;w=}3&gr;p; z3?Du|I`VwxVd>qg7xz@<;Gv_Z(kDkpX765I(zY`2el$!frmsC&e~?8;c*` zzEMkZX!faS7_YY{*rohB#Yp^3gS|szH!r#yChC?2+q6)(O_YlB2n(dQ>A;C&XU{}p z98YfFnCyx(e6InfEjJC2%Vud74V-f@ror=Elu9N-p~kk-QV@*?`@64)VXYhxAf3tJ zcY?5}Dgr11B}K6CEXZj`I|Ek-h*l$8C7}M2!V6Afe$_w9-q2WU1dj~qG{;ZerwkUB zeFM=d!RKY^2XQM0EE!}l{S-KT0G;WHTp!;tEZx5S@1^H2&HDcTKL-#%Okh(O8FMs?3c#B0tX<3S z;Otq3r>9OaFarJ0^y?SH>!(i{-stNy+_`s`;qS{g3|3Oo%)oG}1nC6`Ag}?vGU9>a zzg{!E-@lXL9}_c!ii-;a!_y}W48MOfF#i3^@c+pZ1_c`%2Eo)chI>~oF|hpm!63lH z;|kIX5J2EC;F6LQ{}C<6-z2Ll5$GlS%puM96cI~ZiT zx*3iO2r+OyzQ@4J%EANE3lKnH1O5U1_Vdek21X7xhW|h(|2=(zf$9H0hM(7Of`j<~ zw@(Z|PMl!)`~4dOn}Pzv&s)I2<=_Ix96$hp4fycx!~36#vSQ3nUo$WZ3NZY6^N!)s z&TR~TcW-3)^P7R;>)WpkLe{nnEIfP+|6jgj_|M41@Zs0*Zy>z@0R#?%*H2$;d&9)T z!1DGL!>=R97{psU7+A%n8Gbzf%JA*YR|ak&5eB91Zib&Xt}%SOc#h#4Cp*KlA3qO* z^a2DBI2yYd8TAyj)z4Zhi?V#V^^8Gs9nf}OE{3n`H#7VP1|pxI4+AS38^Z-JFNU8F zZZn)@VET9Q^HkLMm}H? zX8HS%;oqOX44=P#XLt=vjW>XPzwqT-2QYCpvjfxDLZDuN0D>C;3K0)&hU@tFVG7g{{H{=>i6&cAOHOA20Hl&BTyYH5Q7W=2p~pEvok<|0RYy)V;Aj; RqCx-w002ovPDHLkV1k%q%fkQw diff --git a/interface/ispconfig/interface/themes/default/icons/x16/magnet.png b/interface/ispconfig/interface/themes/default/icons/x16/magnet.png deleted file mode 100644 index 35181f5bfa6db971f262034802a9bed597d4b921..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 685 zcmV;e0#f~nP)-1SxILLg}rbf(jA@F;GMa3vKbxq^8-LCNZgT zH~Z1-I+N@sn?fE;cKCfv-g`5Ty@vi0FgQSj0W4xVhcV+(dl(;FfHw|6vmNk=Fu0N~ zW6!5=UA=zc=Cw)r?D!~w+HqqxpWV8>|MlAfxb72#4t)a)>>$DzTeGI@=PstFs{5+*F_$ZCWV40O+uP-1 zO|xTyG&Ye;MB2=e>j#G=Jc>d-jtNlUx#p6ymnM($2k=Ev)bBex>z1z1Q&3JAaik%w z@8j*RnPP@PKmG% zXIdOR;a(R41;EyHXd6baHD^w>h`5th3xb}30$gu_g#U87xBeoIG(!uFXd1{U5{48Y zjx+-W>|g=IgfY_`T7Wpx1U=%`(o!c;Rdsd#)ymrL?h(9y@oZg|uHY{GnoveQYom{`;*sbH0%~$Rz9BxK@cFFP7~((JZf!fX`xU65eZNf1wx@v zI2Mb6ENf7!)x>7A2_|ltRxX!ATn;A^38+?8s8lK<6(AlT9*omFkR)lrahy252gW)7 zjpRGT|6$Ob$;jVDJ{jQOBL0^O(7cRzU%{JDGSOXG-czBGki0MVhS0z;{|hhxv&Si) TK|FI@00000NkvXXu0mjfV+J>; diff --git a/interface/ispconfig/interface/themes/default/icons/x16/magnet__arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/magnet__arrow.png deleted file mode 100644 index 900479f8c8a6bd7cff2c0aa89284eaf23ddba7fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 784 zcmV+r1MmEaP)WtR~L5H z)Uj6AUEST;Sx09&S7!eL4;=30`_B31%sJ;W9>^MtP5_D+fNs3H&>aR9K>zS)@OOvC z@lIXW-CK&{kz+C7Am1u%Vm7%580Nn7(uLDCjg3`mXoF9!Z!*2+cIJ6u3;*>{mvu4VH_3vPxH{@8zfUdI z=$a-o&x~v=`*Ll2^PPjOt&YgjUu|r5R{F89uq#n01cN|^2aMB6c$Iy<4V$pN1JcT)@@ZnA@! zhC3L-7Rs^=fyKpj3npWOmNg((+CKI+yIx+O1yzMatpmKb`{Hsu?#5s6a5+^KsH#d7 z6u=IvIFV%(fu_k}u&?}D-U3joq6-jw;D!@FU$4cA$~?T;47mcJCS=%Al+0*M=tn1C zWcX{LPf%_<0Au1>OG$XObu+_r zqoboxUtbTANF<{gjYidEG6|w60?V?{(9l3JJ#qgn|uw-g8Gc$+_1$Mg~*489gU0vm<0OfImp_IM@p6AbLnpV!B5kmeT`4;gw zI_;T&{CVUna`-ohZ&CreFJ|MU{nLyj+AG{2(2bSgjguJ5tDvX;2`~WC3^|F>c6luT O00006nP)h_3vgAfni37INYcF}QPJMIiE0U1grlG zG?h8-T*vNRJ)Xb+39SRP<>N2Z|7#%TyDtXhK)b9*IOx*2aMxO^k815v;$q8 z-7RjfClQ+{KOP;OJT*N0>GXr)$QS8j-X3hno_+V=4sUR2N$ya|pgar`DAx`%kzQZ> z3iot;5^o|A<>TkiceH%IuWNtdO!IR8514*oXlMv}B_)`oK$}s*M%`%0fIP_Yf;FGd z%2+=nyTtc zcXCq{)IHDYYJ)K4H1jEJ>pu&tn1$V~n@p0ejq!~F&~tf|RJB%F`Y-yz0gt~qXyFsE znR3Xbk5^Y4{f^gf4>Ddf8rs0;3oug#Ou*18_&E#p?W@NQtB8muVFwZ6+&uScWPcy{5$9a)xv3ecQt z26k2X>)Wqfx%NdV;GuT3##8IWk&zLELLp=_nZKFL%*^P8LILr39D*Pq91b(A@`tBb zowa*>d>kSXh(scgB+24*Iw8wBq|<3Jo6Vv~DKi@z8zWq{c)ebvQVNpEq{svqPZtj@ z>>ilS=KgZI?BU3Go=*_@l<;5m4$H*vAl}!&KOuaU2}rDd^;M`(c6BVsHB>7B6S=v* i^7Y|mx3TzJfB^uHiB2gLr$$Qv0000YM;0(gUaoiMV4 z5MXeHEkd4+-<+Add}B5so%fAWvQe!}%Afac1kNFw+tbGADA+OCXa-6 zzXFe87@UR%Elo3UA_cKOodV^$n%?3t$AcztO8?1W07gTFj;8fS;~E+f)!NM_*g4{` z0jD;>jb9m_t-Yv5W1Kky1|y9INEpPQVL&w+Ghkpi4Ky9j>H3)lRHHG@9AR%|rF&2m zWpm-h##TCg1n<|LZcCEX<-K07t#2)@uW$ZTn((^yq^Aq&N`RF@vyWNYXX$J8<5RT&xQGCZnO?xJxei!wyLw}2Wjj(Z!u$}hL rWJ$DFEri9cgq!UgySy4g|0lozVKo@_08?}V00000NkvXXu0mjf+a^8D diff --git a/interface/ispconfig/interface/themes/default/icons/x16/magnet__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/magnet__pencil.png deleted file mode 100644 index 47c7969c1cf40441c2bfbb354e5392cc8e5c9cf9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 839 zcmV-N1GxN&P)en(()Ew+p0o9gQF#!|06v}sz_+#T!CTr?Ploq{lU z8Nf-Wv48{;HI`Hz*RFY&;iJnHn032{Qao=fDofZx8qfHTgEJ}1wGMdocyRj?^NVfZ zc_+RU_9h^LQM4?N=XqH4`_~mH(6Q^VVz9!wSQPZO_FIaVz5P(hoTd1mBbo*fKq8`V z;UgPLQ50zb2~vU}mY;_ebt#zmICR?D?^x|!y|KdYdQfesNsn^3kJ-vmQH=AjEeJrA zO(g+>QR?c=PLIuguhJ3uARXokIYk3h^N5R#CeOzshsW3XW~$X98{ z42Y4M+#Y7Stu1p11OolGr_TpGo;4Wl>l)%XF5_c=K>_$%Gx$KW-QNE#kbu{z+ZjAV z;BYv=Xf#4364_&oMx$aPkpQpP3o@Au%w{vmNxL}KisZVNmX?4)09-B?C=?21ad9zl zTpYsTFcXW#Ac-TBH8(ehc}}U<>md{hKrk3&2m!%~nbhPzU|F^)olfg0Tr^FuBKQ{b zf3nxjA>M*`Ne=!7^P7Y~LG;V+vaGX76VWP#K}J77^vv$`j`Puq0Li}s3;?SUNl)Ff RteyY>002ovPDHLkV1lG@hBN>G diff --git a/interface/ispconfig/interface/themes/default/icons/x16/magnet__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/magnet__plus.png deleted file mode 100644 index f623924d5699fac8d508fcd5f4c6f1498b529e3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 761 zcmV{&&|AF(_0T^MR1k%z1VJReL==?NL#=#?Br93qa^-cH z7n^gN&TV(Q+r53ynr;(3aQJ@te9rlN&pqc{?kNf;Fz10v4(MmsUgmrA)I9UIgJX3) z8Ifye_i0$x6~s-5D76NQ*(Bb^l-ggTR{R*;sBmQ}Gi%v3@VY6O9KOK9w3y9j zQ`x&a4;^vUyOrhNi{|9)toA(+2ov}5rrg$iuFFObhB6_XINeR30nhXI5Y0jby$$XA z>x1eaeD?XYuYUh{2Dndz^wWCcfAFEpX_IXHr6vT2zlDP}yvklJR6q^mc%eLzNML?( zF)XoU9atjbF~JF8&( zY&VTKiYd-15h#ntA+sQ12La+JrbNIf7SL0uNTqfZAdX^+bHu5Ef!syYw2@N}hev(B zAl}@&H7?6?4tF}8oBU}1(9p=7mc)zn^(|iXcsyunX+b0s*;0*0qee2BgsQ3#1OctB zt%O;dJc~7G+zSf}5E%il*9%FK9JRHzkmWd5S69VYEQS;-nQUfehT*cq?RFy+(y+3! zB9Z{{Y=hyV|G;jy_nD@taLjm~UuNWMhHo&Zp2>_q!}x|G{uRU5Nr3jHEPqn}%zP5{ rD$U%=uY^5+^0@^7*rFo!Pk;dc!|Wt_`k#&t00000NkvXXu0mjfU-n`% diff --git a/interface/ispconfig/interface/themes/default/icons/x16/magnet_disable.png b/interface/ispconfig/interface/themes/default/icons/x16/magnet_disable.png deleted file mode 100644 index d91043572f2327b50b9f6436ebdf07341462c28e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 550 zcmV+>0@?kEP)X=2qFhnVd zASIy#A`x6=+m+wo&ZVE^PQRcFyO1tjxX8v$-3$~GiBWMxR7!Q!H`8;5_mXF+P;%k$ z=G}A7op;~dFnlquInxx z$9ZOQu~?)$&$}CqMxU|$4*dF80b2-BDV0h_u~>Y<{ATtnS2@!hc4RrLC#`7#D2fOEffk1 z9V=^SVcG;eSscbkBQQ5JxTO z)#~-SgT*=J27mK+&T6;Y28$4lM#Bd@MRvR07%Iq7qxAGzm@K2y>2Q$ZaR$=LJe$p8 zXhq1`)Y3yQ|An*ZbebBE$Mb5ndQX+_`*Rr6a^536Cz12Pe<6?k93Jw4$pHdB$REp; oZwj>wjU-Q4QWMEfD*gyC0K^$B*-)hsrT_o{07*qoM6N<$f}%?MZvX%Q diff --git a/interface/ispconfig/interface/themes/default/icons/x16/magnet_small.png b/interface/ispconfig/interface/themes/default/icons/x16/magnet_small.png deleted file mode 100644 index 9574801432c582d9ac0b8a6db995236b4a24ba9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 380 zcmV-?0fYXDP)~c0NUEv`gT$WSzN2w@ z-B$g-U%sUQxp(n;;SbPe?GPWGw~Wke_1#migD{8<68i&j75*^z1#~tm7mx7v)tjFD z{q!jVgh6bO*e`^aaC-r$i2KLe56r*5ef!DAz;F~S24sW9fN}&4_zA>ZZ{9GlqltsW zeqxITP(nh+T3TAE2M(P0uc@h7ZfF)=X!`EaoxKYq-^YrxRU3ltjw a5MTh^&y^p_kPUVK0000fsjzWsy+BzJqAM5TM4~HVGn~qf*^tth9C^g(JTbX z3Afm0Yk%(U?!BE~C~fNs9r*D3bIv|SIG}_&5KPQkvqVU z1S0m*!gKl95%182tG(Edu2d>k>9=s>-z(4V<+=ndGdHJ zStt~i$;Rk#jUI+!MsMG|b$@dFO8iaiWy;h_MLSE`kgk>%V++Y^qZdD}eOg^Cm&-qh za5xMp8GCd)9NgH{)SbK0==i;CHv1f6o&>xAF62+(3-I3Ia42rK`)?=0pU+Ct;mGv# z>})i8{Q-!d!S*_^W>rM!0i-AjLZMIy1%tuM6BCnjiNsga??3&Brs;nC7T_Hqk|h73 z&SY6efk0p;l~T;%;gP2xK97a}YuM8!NzxD;A(YGIwjs3-u&3iJchPD_t!9mVbQ}QJ op$Xp*E=3K-E_%aQ$8P}!0I{+p&aUo!nE(I)07*qoM6N<$f)MIU4FCWD diff --git a/interface/ispconfig/interface/themes/default/icons/x16/magnifier__arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/magnifier__arrow.png deleted file mode 100644 index 90772659bff5f28b9eedae925a2f872e4c6b91a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 831 zcmV-F1Hk-=P)rfK)048yi6o2nmK^yWms~ z5kNu^H_Niq48!;!fP)0KXoY;CxW0D3p>%gujXIYWXGfz^uhnW@c>Q8b74UoCK$|6^ zsHg})#ZAB_5s0=mHlMz@Z>Oe2tH=`31dee?E|*dk6ezP*71Z3c4Ua~`OE?N6l|&*@ zRjW6YQ4*kZ9 z<+wgmTtqk;==R%>74Np~v*Qn%jxrfi0+HRa_Ib?lhd9ujHSHnD#$h_wW zD@>M^yi+$v1G8V9FC&r2Z%nV(!;q5el=1n3=B}-vXn}zv#&-+ib zyroH9IXLp=0t*ktbUGb6`JhUrY3S_i=`b3P^v}*Z2ce+7;PP7_FITu5>l8VQ0RV!D z|EVhY06c#%VJA@NJRZ-`*Eevry}fnF;jlf0ukj;V4}Z40{~1MT07}ri+TV6002ov JPDHLkV1jm!gnIx0 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/magnifier__exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/magnifier__exclamation.png deleted file mode 100644 index c005a93041ef6a464ce9af6db99ccde86a469c2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 866 zcmV-o1D*VdP)JN04SE1PUcV;@1x&s6Y`B%z{dY0)G@D6clM8mJvaa^+OOzl59)O zNi(Omxy^JRcf0ql_X>dxJ@D|J_kEvpIOloKi)CeHfmW*pjYb38jUWgSY7D~)&~_h! z0>O{qj7FnVJkNU(fD{w#V#YWnbF}z)WzPP>qKqURqi0#xGd?~(^M2%I`o_BF1L7k1zap6797VF z79Xp$&}xlAt&mbU2H3x{L_aloZ^q#hXYxcI84ibcDnBJN_du%XIK2VZ=>;~HV975s zzUY6DLPjEyof0rIxjcavw%UQ5B$X=WKDy)yQYe<$t%86MVK;z~FesSbiGcCp4HO%| zk+QG@e%U6+mI)juBAg(I0m0Qijn{V8D6WDK#il36mP8(|R;z(w7@%nylu9Ki6bg_? zBy+>h`yCQ~GZN;}%LqX{ygo`BEw#$&_qIsG)`Lp#F9pWyP>?|4#bfgNNiR^$&>}+J?U^bWWiwYOKGX4+voEwqw#d1 zj&cz==PFz|l&vz$@fD<<0RFXB*jyXhYFVGem~8INI#MLMT&}NZwTe<~gMdNQGxl-b sj{JEH6VGmK$+h({(4N2{_*Z}d02{e^)$2}v0000007*qoM6N<$fkAJs9sncwGKAjW%|Yn1DZTT>(o*lauCBhj z!C+he%F6Nx6kPPc+8uBvZ0oz$(cv>5_vO$KxXR^1PN%bXc=+9u&d&D1sj10V;Kqrx zrBMmcgwTL1TfuHy1_i{TW?7aSA)#q=b8{W+`3dGQkV>OweASFGiNT}*xd-wuGyjhD hA1w_we6#o~zyR48NUXS;R$~AF002ovPDHLkV1iwLS!nf`kMkNfH{3D6kKi z`aw{eWZ@9^(sp<6?Hn!8H4psYoO7T5bN=T!_rXji6G%@_2Wqt%tQ`bFAXp5;cEII! z2n`8C0-`96@jM@d01_qGVB~C)GkeP&uELVivfNA!lM#!>7X5zz#PF*ZhUKNj5g0Q~ zsIfw{cY#9&|28tD_0x&+l47Cv) zRu-gSZv3-vp1^T}O9(=;IPt+pOY0qld*FK%fy%&JLeZM^RMWnWocMPadiDzaDrtDRR+>OhQPb zzuwS&y$_@AHgB$@tLw>9*_H0Fc^Gn)`?T4CE)8(mrxlA z18Ys)1ygs|^%099ZD{mU+LsBGK!7!Z955P9&gN$CIgh8|{_N~bA51uP@fZ(SBZkE1 zp?Dt>heF~tE}j?(hZEo?I$5jLf{KcY*2&2Qv9i+94edH%1Fg8~YX|u+A7F#Xc4s^G zw#f~ghOGaeR0{9wgdKSWiqFC|>b@dK!KLHa9WgW^-u7be4>~{t>Jf+>X&}_>U(+fA`k$M}PqU+D|`YjS~Z&00000NkvXXu0mjf6xMFc diff --git a/interface/ispconfig/interface/themes/default/icons/x16/magnifier__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/magnifier__plus.png deleted file mode 100644 index 3eb38a2ebaaccd7dc01482cc381682acbf30ec05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 794 zcmV+#1LgdQP)$KhJs27g1VTigI#tkkM#F+Z#nu7z05NRWLLG zED!^Ns;W-PvK#>rjT7wBinKbuslK_jth%PomM8GJ$z(F@^?GN&ynka|jfO`+Gf$P2 zlpx5s184?TzxQNYXYcW1`=JW+e!W1E1g&8h&Qe%t$+cE;Gm~RvG7+CAaT)1Il2lXg zYAxpsMvH;n!;l0bHp{}cIsc%o;l$ZWtfNz@RHpI^>=m_UYy>0mWH5q~>4Nejbw#g- z9u?4{C}v8)XJu#ala+tlL1lS*ecHUb7+z-}mfx*{xFRN35vAcFn9C#}4(W6{#Ih{XXf$)fFNYR1@|u{E z)t&DHZX+5FEkEghI1`J-#>n*SaE%s*Va{B>ceeMlq{e+ZY$1tlq)lxwwYo5yqgmfPKaI}(Y!fSiW`8=#jS=sUVDbebN& z8~Q=bN>y?(iRf)B9~FcHtvx+`eQx*p`w;vL+;gg(_RAja0K9}+7%xTTs0m4m2*Ez2 zqH)6MbmEmyS*`Y#?(V*8Zuhxc1PZR9YzLIeJC{+ycR$l{ Y0Gvou#fH$Xf&c&j07*qoM6N<$g6ubEkN^Mx diff --git a/interface/ispconfig/interface/themes/default/icons/x16/magnifier_left.png b/interface/ispconfig/interface/themes/default/icons/x16/magnifier_left.png deleted file mode 100644 index c1bfed84f8f6ece6443b4c4c5a3cb4c867fa056b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 727 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/magnifier_zoom_actual.png b/interface/ispconfig/interface/themes/default/icons/x16/magnifier_zoom_actual.png deleted file mode 100644 index a445ea6a22ae0ef103cbd9540792e54089fabeef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 772 zcmV+f1N;1mP)1KGjZ_ZxHDJBf!Xc^d&6MBorGkcSG#qy|Fj``xz)H;>q499Os4Y3 zn$km?tf;EGh!sWIXQsQ>QS<1j@<`e7iou^qC$} zSvO)XO*JPX1c3rXqU*BC8k}&K9Oezk%5;`_17~A;bZuK>b;w|_fC5Z~J|;>zgg6L+ z>E^vTE7MtKb09>AvvcucR)?MGhjd4>gRbj4s6~xWK7_g_Pd02vJO?e(qx(&3f9|Fd zBF}$LY16Yx3D4VuoX6w&Yh*#QnLDgNWQJAn=jrZ;rPph z1AwA_T_-a*e{$4(jK09G{{F$?K%o0UNlowDY4eTi(;;csOXN6nP}5S2%!BjH&4O^~ z(!jvbP#|z^Bo>Q3vt{C82)TFre^M4CH$q_L(-^?H`*&1Vd)xc^hI#{mE00%KS0-q~ z@bdf!Z4CF>m*<237A}_y_3BI7@eIjmP6rP19y} z&Io{(L(R)--kQ~9VQvm(6poD|50WFhC-36700RJ&U1&|T;aY|O00003 z%4{-LXo-anZEA&bGa`_Y7KO#=A?Tq9nYITBdZ{`*ZI-w{ynGse9-LAK&@T`F+3h?+0s}Zh-RYqo9l+Ka55bFc=JV2q8a_ z0)dTSm0%KMJdjK#=QlSKfH`)41n_1X*clwhc4DlKI%_muaB-otZTiRoJ6ca?GS$D= zQrAe4pe)PtY$}!7WhT4U5%bVxk2TzU#9V3NIXi+7?kxeJ-l5m_RYZcLuf!o)QGc+B z#0Dr3eph2@*ws*6dC3>3p%deent|u$r|ja(2QFpiyBPlXCFV!*cpMaf&~VTs(PXM$ zKWT}@GV(HIs?!R_jrC?a7RVLSg-&3ruHu*J;N8l!Oydjh2}v)5Xc11LesP?WL-mxZ0R1mecidy>Ml3xNTsbGg3S9FNxbv$r;+@^ z8OGso{4>%ZT*F}TbZ5tju90z|M&d}c6f;rY0P(LCdHu!Pm^?ft@c`(0H4RU*`7cMz zhe!u@_4fMjdcEEEO856nOz~H*Oa&6#I+0=c0Y%xIrye%X++?*@c>4PK`@P-^gVAX8 zS#d^Mgpm2L`;%0#AqGJ3+kL?1?%&~b*0%e6{XJgqxyLIj!RMsl;?mq8DGYbnm*xhx zgxzijZnyi^!h)!^ww@ejS+<>YE%@J{nR=_$dYtUoCP`9AQIzTI839mokn>p1(=NPF-mIn_c-kRmM-wX{&` z$H7(`5`)!^S(DxD?rdiz=&CvN!JnDgH^2Y9c{@Z)=VMUozX3d0#<1D!z+$nqk|Y_! z%LtYaD~**z2*pdK((2)%0H~Yyrh(Pr180M#;UGfl+oqsqjdakNfo}6&bAbFSmCOD= zS@97z*^*^>6^f#G4#uapVtDFKk8|y63u6t`T0A5Hh+qTBG}hN>ZkN0P7E+5Q7vND2N5Ex8Kg5iCE4RN z@%m<5KVeKtG7>V`qJr5pq-k3!T#Gr zGw({02c#pU$^P1%+G+Y<+tH zVCDY(O-(JmV`CGe95?)OdwXjJ8*Xf_Ok!i=9KN{{KUo9<0T2#{pRBLvw63n6*AT*9 zf*`>EhQ8D6^?GmN6T5ky&nSwra8x4zN=33^lnrZrk4jYf;L-n(-U@?IMe3RHl>P}Y Y0GwGX>8zvJI{*Lx07*qoM6N<$f|c1=NdN!< diff --git a/interface/ispconfig/interface/themes/default/icons/x16/mail.png b/interface/ispconfig/interface/themes/default/icons/x16/mail.png deleted file mode 100644 index 98b9bcdaebe6e7a72c2be4726d5f0e24ee9d84b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 501 zcmV_#1~YUWV-Fl_kAO8gs*UXNzWCHb4p z4@V3+V1NY&T)B1}v0-(OK`J`Q<*3o^(v%5^!SRk5a=;)44!8;)9)GyLA8e42k_^M3 zW~W2tVljxd`+YJ^Gsu18LZMFq$8jXufvW3y^s-pcMJh!`B0(({fnBpul-ssuGct9Z zBH=J8%mEhy0vq)1I5eHl>71*hQjAAhEEEEP*nYgarja$B2AD7lI{Oa9YP}|FG9i;I zOKuHjHU=Hk@r{2{;qcSjL=Z)r^B00000NkvXXu0mjfEL7MB diff --git a/interface/ispconfig/interface/themes/default/icons/x16/mail__arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/mail__arrow.png deleted file mode 100644 index 340783a4f84ab42c54ec15d32e47a2947d54a5c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 621 zcmV-z0+RiSP)eR@8zpWCDdSP z655c^YD!%Ox+zwWf(sQ9H{w?CXZQ~kL8;(QLG4Ohx=}%j(pB0;NlIc`E2+k4(nj;X z(&s&~2qLy(2kx7hbI&<*-^^9M@8d8-Me|HoRW%w;;wGIpk79t+p*o^~Bv3QiPR^j-psDqbUMn z46cbWM-DM+s5SX+BE%g5>2VLW}g0YfUV_9{?a+s0O-frOl_B|$@u$iM*Zy>6r0Z1nf<*Vkc$ zJxtGJ@#uL8%|O0jZq@5XRo*o-Hilp@_(#)Jj2@=vMo``X0);$W!4{i9cILR;Q*Blq znVh_;W3lAlx-O8td`ZXBDXu%xfm3s*QpuB9EZ%+m!Fl)M32`2KOd@$u3|@IqoOI2RU8U5mfRBg7e+V!Dwm>uT#G?2r00000NkvXX Hu0mjfz9K7Q diff --git a/interface/ispconfig/interface/themes/default/icons/x16/mail__exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/mail__exclamation.png deleted file mode 100644 index d37c01966cd419ed4d61601dffc237fa361ee385..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmV;G0&4wL1`;yy&qPEMj!tD&vya0Y{2jdCcL7-9v>vJeS{Fv}gqYIRo; zict>b5<{$DS{8HpPRPL^X8CU{udZUV+lAx0JB)l3qa4a5hFHNg4CZomn4exVXR;}GlyRL z4PUtj`kW_>u5ppC6z4ZzssVg8>;15O( z>KO(anugJ6)UP7Mw{%8Txg7@EevN(mRm|PUAs!z`_s1e{s!amS7wDTN8XFrJjm01Y z0>8U1hrx-@34M@#N`aQ?Ap&%!&6{TRFue z3?JTo`TFR2=pnBSw5&q+Vp!nueKvpQ?2&Vc1HmM`0iwyP(6wiNY_p|n<>I#mf-G*$ vVffm4t{m{1ZKLr>7mt|c43>d%s00000NkvXXu0mjf;=m`K diff --git a/interface/ispconfig/interface/themes/default/icons/x16/mail__minus.png b/interface/ispconfig/interface/themes/default/icons/x16/mail__minus.png deleted file mode 100644 index adab26ad22409820be0be7618ce270f42bd6b0ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 534 zcmV+x0_pvUP)>Ky z)vx+YIVh^l5)$6cjWi6@EkYSFDgneayAJ2tCIOf%_$~NM$7}nbD9ivvQMk-R*+}s>u0{#^B zVi8*_E8p&08;*x2HOt%vbz22u_vsT-M^d_~ScZIa+Gi=lm+b Y0E7M+r*@VG_5c6?07*qoM6N<$g5mP^4*&oF diff --git a/interface/ispconfig/interface/themes/default/icons/x16/mail__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/mail__pencil.png deleted file mode 100644 index 7c07eacaaf27655fcf7c30e2264f13f5fb695851..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 644 zcmV-~0(}i=ca{Ai=0^0x3nkawBXzv__0= zs7KR|?d+Vhoxb-#K^hkM!Nd3RzR&Od{xZw5u$RHH$Kkv+G0`jL*8k+oPSZ4{^QqLM z&bBrLyxxDJzE!JODi$%hurSO`!(fSU7@0x=>#7Q~(b!ewAuln+a$VQq^LWrM66t(? z*CtdW4|$0pme+Kh)x}GA-EOptV=T%t);2d`*6Y8Ca#SM^d5IyG*EEgQMR!A(ytI=@ z1dF*G6ai3F0^knEuUq#vHQ7>EXHZ^xfbLT%JfED#v1ALv(I|*@R?1~ZUc75eBwQ}n&QG)a z4vIXE(^(2TPmhJ26y3GB4=}$lI@cylX*UoQ562(4@q8AHP%<9 zFC`6xN}D30P_%<|a&XYa!9{R&bQD48?&8?h(T;A;U8-43Yg&`o7$K5k6YWb<^8TOq zy9Pm!DE7d)=e%>i@0|1Qxk?`A>dZ4}!qDv%I{%I6I3|hVf6V z{&0xBRtv96rH5+Z`^v>^7CX%*z7GZnqG+rVLo7Mus-EW|ol0R|1hyNEu|=38hFEgQ zRb9_hLa_-WnZ&&KjdHz?Z@nIZF#Js!V~!YN$st#D9Y+a8bzguCPLj)^T&tlg2#itb zGsYY-jFCgG&chcUUJ%F&QdAY0Oa|N4Di#X`8Qa_6hiRHJ_Y0?KKMOdHqjDTp^?V;4 z+s1{dDP+=V?1&eR`;o84Htj~C zBEc3ksn&`FT4=Rum0B!{O5gOsAJBiI|H8M5K8O!0f|V336!9Z1_#i>Wv`qquCYyG5 zb~fJGXlZCs@WR=Trq3(s0Wkuv_kZ`Yw?Z&-v$ zGjU|p%HEz*h04laRLEB z8)t_5FnHoB@+%K%6AiR?@b`H$j-l)<%!mb-dJQ@m#nqLHAOVMpju80a8pvLpM>G=Y z__~@~TPRj42vZIjB(7b^yyGXwg)Yu;E|7ZR!JVNc400RJmU|LDATMFd>0000uSca@Rpt3dGGgTc2>AMISCFy5L|G?i~{nNJKdC?Qv{nwxblymH?8{{NMfuCzm7uY*&=6Z6Q984Q18H<= z9J7&2mjP?8U5hqbB7V-7XL_+nnKOqNCiCbdTx@_vTD)HPBngrzLTNPI+U))zFjq8m zT?mCcarR^$vx|#v!JkA7noU8LksG`K<}g>(>B81x(GDC;B=Dh7Kz$dH1`YJ{@-mL6 zQf@7Cm@8?T<_Z`zC_X9K)rEKS^Ry%m9Culq-^ld#B0x@bt|d|CO02@)T%(5?SzN8x zak#G!!9ZZ^zF>`euT zY8vEH3Gucz2sCM(7HYTPcTp1ITCd*^=1R-5EPYy7Kq{Gp&*#J6qJ>%u5SYVUA(YKt x6+@wJ{72ZTD)ZX$v3s!n&-|A#3EzJTFaV<3H54w!zr6qe002ovPDHLkV1hpsPniG! diff --git a/interface/ispconfig/interface/themes/default/icons/x16/mail_open_film.png b/interface/ispconfig/interface/themes/default/icons/x16/mail_open_film.png deleted file mode 100644 index a68b43779a3042f174f9a0654af64699a5111b2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 772 zcmV+f1N;1mP)!VjVhl2{b%pb?g*&scU$WE*=&!gx#P&r$Rbpf(JpQKTf!7 ztJ%)%&i~$TDk=$zzUA#O?|t9*e(%i;S1Ogjz;Rq~&E;}PM1hyLxi(7WSItQIR3XXo$H+om!tef4%ViEDJhg@`X20WRlvGPpL zbzLkhETH4?u`bVdVOS=NhKZVCpz>)4ORrbakvZDMIE>3QOv_WF3#p#rF_s({7=Y_I zys>LTubObkAf>o)Y#p__O*NMfIK)l%oEu|WabCI_Kb7k3udmrC6bi6y2O%|tm?|O6 z`w)Et$+!x)Gm7P-|R-RyVXbAVGCb3w!8Ekc@T7{;4 zpiLpzK@%DE(Vk}J=5V^R4-cMhTB2=PTqN3x!E6@Ov$KE{#*zLhxE`=;IOue|Z;#FM zurhx+;0%)q(=aV>(Vs)bWOFk{22VoW-vM6mz;gl=HH=tHL4-zUC&aTiB(mEJ=VM{Cd$6h32F>F*S0Y@N{ z-~@WD#_6UBtz1TmX5)As7Cq-bfz{$UxyVN%ZTJs(x~{Qrn6+)%^JV@E9QLk#6<`2`u}G~_3`2GR0000U#>e|b%q=HfGBrybhjWSSMnR#=xz z2OadqIM#f&a$KP+6Drq==B2jv{`K!hY(?1k& z6B7tIhEX5b2Dj4*H3#q(z+yO{>VAakcI_)tWhOTAB*69a7v1}Pk&d*ip>^jOY+scc zsjkjD1C`$U?j!1hUZhrX)@lFIju(6&%6-dKsNu@JcsewIge>Fx%c_46hFuMb*4iTy zW@HwNq-O4yj@C#U?hekYoTjRbP*9Av9qsrqHHG)DYth~ugXqy=7u~SBU65xaB3(zo zp2WCh;80U1D28HLm3-)>d0al!1%vn;bK>D+J6;VkNM!u5`zw)1S`kksF+3bal_;P{ zECIz(ET<@nNuXu3uyGtNU%!Td-m92r+=#wS!#O&R#JmSJMPJah diff --git a/interface/ispconfig/interface/themes/default/icons/x16/mail_small.png b/interface/ispconfig/interface/themes/default/icons/x16/mail_small.png deleted file mode 100644 index 629448fe76b2bdb70e25fc26a5a03dbeeebcd898..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XPI|gHhE&{2`t$$4J+o>BEQ3ADcXQet!O?x@F5Q>zbMvn8@!hY)-uV^771zy&vAb4tHba}JD!7s#q^0DcI&&&ON?En8u zeemQ_(gdbk6)(PI8t^`9KH~VPg88Gc2cxkuv$3>vv&4lkfi~s^Kh&Mr?(DDr-rBjn rTytGSLUM9-quw!#SyMF4859mMnAC*w$h_GA3IGOAS3j3^P6`6pHRCwB?lTA+(Q51&XxpO-oP;F{j zLrW84GDcZI+`!HyOI)$@5BM+q4es2rV!_V1lzlfS!6t-;AZ(hJ&<}*EGc7Yieb2-p zCTh~gNzUAybI;dv?!CrjGQt0R`t9!SyXa0#77eDbAgiQ{zVwxsg*M0fr>3y z*5_`$zQcHV16N8ogh#j@=JRPao6~-=vXZW%i#_9J7ykOzR$HzyWu%2ec%CdR!6N71 zKDlHL2bgiI`FT9w*g$h{55}X_)z@Y|U!C^#kh>lG{?7daq}Y_A+~_IdQ*LQJGyD`_ Y05=0d12Sk4Qvd(}07*qoM6N<$f*jZpZ2$lO diff --git a/interface/ispconfig/interface/themes/default/icons/x16/mails_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/mails_arrow.png deleted file mode 100644 index f23d9f8a04260238aa53cf6ec72875fe33edcf81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 660 zcmV;F0&D$=P)v>p_(!G+n!n>TOf`vziV~cx61t@_K{c_g{<42?6 zDzHd_=$Bie%3rHhY!On!vM2#%;cU#M6UKb0gxbai+9Z=lp6lD(lQSlseNJJi6~+=N zTCdk-g*j|W;BwJv1cO1$FDxJ#jiR!;iby2l`gy%*SU7!ZKW;xMd@&bazpWMu-xOL{7O9w!Z(d^2mnnRCao&mX?KrZ5Nd92gpchd6)#Qdgwghr+ZJ`&Avb&Cz0PvHpn;n uUkNGk__{(%Af6kq`H>r>jZ8zHLz0000jxBi5yVqLD|k>45j=`|@KWeaFP^-36ufzBg9uhH1@B5QttmEXtS!=} zku*u0CQZ8C&BmG42!27uh1uD8Gw;9idmmD}-Nyes^1bQlAAuxE6Xe4GFux%4+p?_A zK;+`+=;NWjJ{MB}P z+@g3cl|ncegyQvbF$$#;1_)2_cwpH!_M1&fHcj*J+|=a`d4t!Cen0|39F}`&@e%Z$ zDYVKns5hHV2My{#9ELmnaS0keAU1dfemjjqF^@e$YBm}qKq{=pTyer!$mLL~R&hXW zvgbIYEJN#x!sC|F8|+8GlfftIc)L<@v4Aj1z~Q3Z&~+UP*(_G`dB^LT3ak1WdY~Uy zZ_FSV2%B%`?j*0@y*-tipD&8W_YRn=P%fi45I{T@!`k|~<8`sjM-6SWh(sa*+bFn? z$GYWPqi;S}(&=Y{Ihbd2YYUpHI$d~awNDNYlUGpxGK;RBE^KZm@#^IyN=6py(eSac zQ#d>KR5Ao}Fi&430!`DL1J$wC-XbKsfHt!5h!W0UcnH5-gQ^-mZbdyo)MHZj$jCL9 zsz&~__mkt9%j4&QL!ppcMcanja|!kGb0@b`t{1cE{H#RZUa|n6=wAh%JivW&r+>P> kE?9JZ>~B{9sjmVI007Ni!hV3NEdT%j07*qoM6N<$fnO*6a1~KTSPdUcMGIO`DggIK=q_#j)LP_Z7~Axw+?4 zr4nw8jQsOdGYnC!*YS2`<%up)p_Ia9tHrL}9Uq6cy9>YBM7z`Zqf^g)+Rf}^HRv7VHmJ&``+5l4mx7o5&7NvI*R!` zEYqYh4jK*I5j-oMM!Va^MHFc&j^n|(CCgKpTdbJ`5C^(GEVnNhK@=q!gpz?iEVq)# z`$tFkAxKdeiUaXNZ{%_XW206>!57Ks#PfJvCax4e1sDM6l0|vdUl6PS0000dHf>tc zFBirlB?MA}RbzD7mEyugNp$PNwfq2L^cQFlTan7B`H5v{4&rcYgoZNRfjvJ!G-9mm=VE?MBHUpju zq0mH+&xb>1^Ix;dvW!F~gQs(I*Lms+K@hN0t1;ucy)G|IVAH{7GkxX+{mG0MEC|TOt~zXcXn) zVH}CYy7-oPQ?Xg1c6eX_fti_eJmbOmFkXJ5F`rB#Uo2vW#$+e+{d>Igxp&B}uHy2@ z2yW$ac+uPYT3|ftR6yrN+pt=#m|t9k&*egfKu)Jqk4rz^V}0QcZd?qadvGwa-PX21 z;>QGeZ-R=V=p8$4Hdsl_1dZL}_rpjVSWCY|E%OkkPaenJv59oRRvM2)wa=t&K~Q9w z+olz5Y;M9~x9i=Eq;{~cPglPxeS)&~0B25x@Z?z(3FX9d&QqEKX7zi%AW4R0QrPG5 zz+$oJA5_ycIfKpQJw179`U6DY6(qJ?siOH90^#uQ_hawxziQ~{@Eo-JOGlT&W8)vg zw{HfQUoCmxB=Vi#wMu0}EtendKR_}gnT<_zK#lcl=ecRAg8Pr(Hsa*7w_jk)nt)#d Z3;=dMU@-jMI4b}E002ovPDHLkV1j>iMRNcE diff --git a/interface/ispconfig/interface/themes/default/icons/x16/mails_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/mails_plus.png deleted file mode 100644 index 097f686dd35b51b91b0eeb79059b05494513d1a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 649 zcmV;40(Sk0P)X5vkY^(cV;uHxKb2(1Qm-<3$hRwHN;ZZ=M9vOBFnL(}O~9H6;Cknwr)YA-2VA zV)JXa+ucokFWO#IY;a+AX5O!PpZ8`&uh+x>d~$kbW`84u$kG%Yz<*Qn-*KEhLG1F> z)WeBH0*8l&{_52-43sJryv*lsDs(EOl-RW_9^ynij-~Z=)LSh$uKU|yIqTVu?G=uw zC<=U;UL)O8#uJfGJKr`yGjX$ooE_QAO+%Wax1t{ELb0Tg9W?mA(#O|zeYK^Z86 za!WdSqgq9WkW9l6k~ugUb0rC5p}OXzLU(sJj@je2K%R} zRPFTS9~&EkmpK3Qoe7=B{Hr1?YZu;2 z8s0x!Ec|>tD2QMxb;UC>5y76A?F= zc6Vmy|C`C~62mayKZBm8QeaFbKsfH}Pe_7&HWtb@j0Ux?QAF3YKq4MLKL~}u<8u9& zCn*X%)oO5)$(&G&+83FSL!DJ}o6SN%6hUw}=8{!SgZF+Pj-pYxN~Z~3hP=Y!PC)=w zRXMs0`My*FZ9Im7q7bU<`k%=%TaOs*g9&h~46?Vm3Au6^+L8n#rffCzVGQ@+Kys_o z0a;Z+k!21AI8@yY2H~Mtgl4Y?!_mkzoTCq8RyV}1*{A&6pKZMT79AE>&+k{r{c z<1MGbqdA@5$g|tK9*Z5@Jf6TJS0Bl8wR(Z%nZOhxPUpW3BoF4^&wrourvL*0CkG%y TNd%~E00000NkvXXu0mjfx{2a! diff --git a/interface/ispconfig/interface/themes/default/icons/x16/media_player.png b/interface/ispconfig/interface/themes/default/icons/x16/media_player.png deleted file mode 100644 index d69971992487c683cf8540c8a2397f39ddb161b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 619 zcmV-x0+juUP)m}DRm^L|V` z=Pom3mfghzhdK8=zwgYwN}*5yi=rsI^tn%Z6&K52(y#0F`WGJr8PZGN2gPFXD3wYb zc)rs@L(uE>ew0e3mvlU7;JU6Ck8yFiT!s(=)9Dnm*$iJ^9Ki|+%ykWiclPk?)w=_# ziFrk0wOaWD*#1zz38C-NBnP(bARh|hrz-IH-VT1x!r&ZI#c!~IK;_`0)HmdE0)z(1 z6VegkVd#HE2N8&HjMCIv<_9*v9Sm^%=`+mST?~h7Y;U_k3L6b1g?v6AK=9=4N8dKm@OE$}1(j{q5G^i~ z$+)M_=DrpZb2T`xi$Zq`;U;u-sQ1z(9HW2^-002ovPDHLk FV1m*?4?q9_ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/media_player__arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/media_player__arrow.png deleted file mode 100644 index 19b728cfba42db8aba6f1eaf1666aa14957e196c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 738 zcmV<80v-K{P)Y5X*jG< z4`>dXp7!N-PQTxY4JYOc5AWyi_j{h_eP1COje?sX2m$Jj5Nfe^+ayezrn$fqnFiJ> z^}VrJY{=vB1WRi>8x_IY+S-?RJbsI&{}LF6QQCKK@YK{4WLZWwn?){{!<(B!Se0bt zRXf6=c3i*xFi0_uQjlCM7Rv>AJo%#yvf56SQb;CKh)5FVL>ZU5Tkt(+1D_!XfhkP$(2C80>7Vod2w;iv$JryTyQ#___eWt*Uw(T-_r$MH__Z|R7%*Ez>*M&L@F3ux&O30 zZm37egIy(vJZ4B_oY(6m58T#9GMR*?X(jrM|9imj`FvI|-MO{FhO)eo=`^&Q0yB8N zyGY(|(KS~{;6n`7&cXBZ^JV(Hwy>__)EOTVi;?4|;<}vE^|1;GB?b&p6yb0@w)lLZ)FLX7Hj?WC5R7|ql?bgeq%Etx<22SSld27xUYiepRzM|mp(N=8M zdr%wffKgY6#SCyLwBI}PHqjy{5()VIekh7!{R@_`w6tWgP*oL8>l$7>p2HR;{*%c- z35VhB3}Ece^ACb3jz~m(Un-TVBj-bXeSNKDp33z3J+S*hPZ1{qGETQuf2-n@J@P15Ai ze3Z7f*0xA(5G__WW+5(A5Tq`;DY|j(reHxRUAYhy1Q7&(fbF7)x)Zxl1S#5$l1M`v zYH4GWkfhDm%g2j%UQJ1A@xo!|&AfBwo;!1;iHQk_kR+*}hI52={6F>xU+VSxn)u)} zF;;0DpPikZQB`%Mv35A<5G0ey?{jl=59o7WK-cxgzC)0gmX^RdN2yeTrfK+ee+D}; zN7>zm;OG#hAH5tQj-x^1wOZ}q05PABod9}l)x87=@Nx-lW3WZuSn0mgr ze@lfoP}xURvX_LwkrtSk3&>QsKp;Rh@E9A(#1^(AUojAz!upRzD6(cQYH}+{`1)I6 z_nl)w18B2Z(B9$4=wN)%YA!;c#e%4TfbcGetE;QDtiy$Q^bMcKE-BYI6pxk%0hX3=W3_R{1APW*K_Wl8ZK7IJ$JU%}NCli$LGmB$07(9kz{)jm}IaQ;Ef5QH#Z5^n%DD zvhob=_7tov4!e>^J~d;Eb|nXIm-Dz*#vSn>+=PJ1Wa?EECD`1~w{K{dk9FzZ=66A* m(M?J{&v{*2|Apm00t^6bA6*(rQH_%T0000 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/media_player__minus.png b/interface/ispconfig/interface/themes/default/icons/x16/media_player__minus.png deleted file mode 100644 index 04e3adb1216bbadca5277140b5be0922cf8c8195..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 660 zcmV;F0&D$=P)A zgr-;wEmBhigT+(Mg13Nr5f6F|r65=kLQbCakV8F)puOouyoyqWiX-@d1$QYo-0in2nl%jBnVvi%`1%x1H1{2?fiS$c0~ zGMOE}-@k6=jv8%(X0!P@o6SC?&;0?@>C~*dxH+HCLkNMvV1VIpi1!b6P`3$;yc#y* ztGM^***f*O%qB6JOy(PK{OU&x!n;a4wb5#|k+j)RQUz{aTE_RG9lVBInGZOGK;`09 z|3@Se0)z%W-wL)~0$M1DwevniLs#Sg>QUzd48yP>IBI7voWcFaIn)PToa#*F0P0bW zrNC%M#p4IcCK3^PMqcdgLFl@UXfz6^(<$!-L#z@v9_00U<@!-9 zhTTGe?~6q6Ti0s~hVe@f0v2O|d@&dd-p=K6cWKzUlP(hpsi)KFr}cXMIiE)P54sT)g0ZWvDv}}+g1So!B)Z9ds24$0WMsxNr)^^m z=RC`;P0u#n>3cuhat3|ya^CO9^L)?qp7#@adwW4c5CkXt9A&W^{~y0tyj4|oktPyL z_$vDz^LRXiR;#t8u(orsOR%!CGVAqvud?YDK|Y@^>>CL@IXMYQlAtIGGMNlsUm3)* zMncwXK0p& zkzktwkv30RKcb^U0#gHv#fi%!fT6Y;&HF8I)OK+Kh7pSd8yg!X3U-c$gEbhqK7?f@ z1${El2^fYea4#&BS|BxRYiscNe5kCfgvn$=ESbc_lb3LG97ZaoqOOjU2>sL3Fva5~ z1l)ql29anGy>H1r(wv!f4#;msI=>mi)tTySwq|@e4TZ z*`T7BX5Q=d5EF?6{&+81h{a+kFE8hHsL%zlv~U;g>@PeV8Apxt62h^HMIwJ?FhKJA z{ct!OC@U-D?}99Z!(mRO7k=W$x7+CKY{v)#oA;b!{eA@N>+2G=dMFeEb<{4FRIjeC z<^q9$pAqr5Kq}r%4CDBTTNoXEj+(}csIqr~&d^!H5SBX1%)+MA>FTvwZR_^uoKB|) y&bT#mUxLzyU{nefo^vjj`;^UQgDj8y7GMB10cwch+5B+;0000x8dDh&6suXkldO zc`6o*EqFYh>0WMU&>^T)Dl74L{1Lrw5$L+!tJ}Fbkw`#M6tr3`wA*cbd9Z+zNx`Pe zhM8kixbyhMH1*hfO^T*z{R4RYHaiK$HAN?>s8&@(OeUmc1(#2Z;dk2%-b0Z31lttI zT%7m(Ksc;`)WGeYz^ylc&F{nEBW{HJrwsz?k^2PQZg)Vz&KN&>0Qa6eL#frkzPfG@ zP>-~$1y<8+Hjzvw;dDCTa5zw|*RlBVGeY6xXfy;yNA*Dq+XxH`kw|1f!IkIl`)i*U zy&3FkLFP5XM1u;+C6B2H!;{dH>cC-zI@Il|E4i}b`G!pygpd-*P#o2&_YiELzZRO?OXrL?d69^ zZlobLHK>{j(bgng(Z54rNl{f5Hk)n0Lb+Uq*XuRrz>!L=V&se$BOqJd3T7|P1t}d& zyjz5l$z%`;gjeEfs^7*_$bDvU$e*z2uo|sY22@CH800000NkvXXu0mjfSR_IT diff --git a/interface/ispconfig/interface/themes/default/icons/x16/media_player_black.png b/interface/ispconfig/interface/themes/default/icons/x16/media_player_black.png deleted file mode 100644 index cbce27864acfdc6d3f61d9f8350e441ed7bf1309..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 548 zcmV+<0^9wGP)e!oAmQ<5aqYPE$-CL@g+FvHEM zR0@V+z;PV3+ig4?AEBzK_%g?_x{?5_h|bz!lY4;N?RIf(uR-l5Xs1uq>z~+B6uikQ z_BLkm-qyex)_M*|TQ5i^RgfEm!}B<}0LG^$u(%XPe0md?nP<-d(qQ_(np>X2;mJ9w zP77nr9yxdv+ED|PUav>C>&WGD2!%o-3%l9G-PH}^$#t|^eXxeLo=3=Lv;Qp^3B2Av z0Su~OFzB5@r_%vLq2Qv?C}j{91iLDgN+Lk!eM4l#VlmN7-&_zJC|fTS3cg=KWWeCF zb8|kQ|2ql28}hyx3?a)hbY1@;=-JJAIv5IU+eRc35jk)L0s-;PHDIIzjqdYPcLWFI; mk%P5g6$qyU{$U#50t^5wXy%u;fT+^|0000h7YZ zK|_}Wi`a%hrKJbyxo0o=FG9&7LO?wA5^~5n|3K1H?b7K>ofG|i#q1?fY~m+z!!)9JLy8$pKj()zMoE|+ZE z&MDul&>`q{yPqqS$~)Tr0+>uDDsEVom8({(5JJHBeGG>~obHrx85HR5Z0!Pf3U zj%o~5B*x>hvIA@%wO1j`44vfS>dM9IU=SApfsN~rMv0@MmD z%faR$pfASpBx@nP_(}n2zX3+0(H{(E3azGClY{a{>@-87@%ISBN~k& z5{ckjzmMY&ACb$-BFwuQeL%mT0)h5^TMpD!+lmWKccN;*U(P+p4kp}q*^ULgXI&zK2<5F+>IEQn&hHC{Q^MHurb-Ueeq*AFB z4z^k?IZV|8`}k%!huXX57TL#5GS5d8T&Ah7{m*Zt7Cuq&7qY)Hzyj$5o(JwHJUs8G a00RIiWl2b3$oIJb0000}M{P)_;q|l^@Qn_$X;V+0%SaRt|`Gyqf@(B@D3RkgQ7|WeyA{SV8fm~U@F5)He z&@N==2GD{aWTdm2ojYglnVIWTRTX1bLaPEZUEugxt zi{sjB2zLXP)r4&~@qt>rQ3UqiuA|(41kT~yMFkW-+>2cyn-z$~Vu(hc;qV8bCr!NA ziXxSKhhG=BGIyzhc}u@s!_n7osP;PWw}zykG^@ZfFsZ<{ZIntSgu`Jui(0FN)1N0u zW#6FF8Oauivs^*3Sd?%a2idX-@KWpU}*_b6y+9uACMXtE)CLm;QW(VuoE}u51-A= zEu4?V(wuYON<~rd!?tU$ibaK%J%DbvA0M00wDic%4m3?eyWK{o)4|8Z7pSWYzvB^H zzcz!Zmn&(i8S57f0t7s=HxF-sc{6A{HI!0RQY0xp*~&=gY5AZ@UONT^|Mlae#qkStysw zh(@Eb7l)36_v=MW=5E4uIlL6*d!8?VDgfO1d3>gY9tvTa0PYq(V6WN4J~b3NFycu7 z^~@s(kjtZ^Sjc1$X2-YuE1ATbg9CgcHp7k}83?_fO2MIPT;AQ4fhXCl^nJB$86RX2 zz_CM~tIxm)22r8i9C|oHg)Mw?1HnM_pjYS1z;s<)ibQZB9+v@O3tvBen!y@f^wE(} zCZ2GYcG#%Z!07)tk&w!IJ`t18oN{Fi)iO{3g#wVzJ7&FZCk-R^ojSf+tzw#*DP)h1 zV399GHzRV;YB|{20!&j5Q=E(mluFxgTdgonOmgTfa{d#Q$~M)^(#jN56(&7*YBK*% e{*bzV1sDMAIx~q-A^+b10000XaR22I_vrte}aNz?K+}M4$f=d-~;SX@38&Sk%QBV}jO6fuhE^A$wZfqN=);uPf zbn=+SJJ)+|J293R@W3~m_x;YDb2awlG?ZuB$Y5%iX_LFmvk$3I@YkB#6Pcyj7ktvRW@nMuo6W?~Bo-YXC`Z;9-5ThebDT40 zkxnz1rio~D53W50f{7URABbWoaSUay8tCl?ViN;x)7+^;{kVSj9tuqx{;G?j%n`j9 zR4fbGY!=~gSlvajTE+CMw-`!~!?p!D*Z*b!-oZdNFs|&wvNUQw9lk&x&c1$urA8hf zTDD3G&qR)Mtp?s@fZReLHa?F^pC<|Lm&{a&!SkZ;?>ia7)l+1VOVkm-fz&}Fv9ulULXs&!yMjy1Gs+W3F=xN zYjcKOB)kIcz7Z_ZXF%{K!-z~Chs*Ejh>Rxk_ZCoJD%iZ#a7PFIBM<^-4xm-3A$xP) zCWfa^*g0cy#pc_N5jYvFqt^is`%uf|q5N92L2Jr&d8+N|oE`KG>fcu3Nra&8>D(7u zQ_gA76WzrETAhc}6*f&1rN?OqH^Y{xF&ng|9C1`bwWJ`eYZY}YGaX5&r(*G)@vYlb zuUVGY_)`vMv4)mbMD>M+_KzwQMM0^UD`%F|ix2Se(HE->I*dVy_yl&0jUsrCgGDy` z6=e_kH1xUG`2JpQf0Ds~grB|${x8}R#%}=z0A%(yBCGAKwEzGB07*qoM6N<$f;q!1 AhyVZp diff --git a/interface/ispconfig/interface/themes/default/icons/x16/media_player_medium_red.png b/interface/ispconfig/interface/themes/default/icons/x16/media_player_medium_red.png deleted file mode 100644 index 02cd6c51238e070c33808eba10bf8e62dbc5ad3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 638 zcmV-^0)hRBP)Xe=;T~l;tavh(@ERR;#dW8@b!JPzsBv z#UmI^4I}$gRh&STK>^eq2d~OwL=HpKwxH`;UfADdCfo;dx)%USeM{x7*eUz#eB(p&=E3E?ce=5** z9fd*xu~^Kzi?V5A>E&DWXU1V!F1jeDzMlYBkb3;iv*m##qLXQ4r>;R;%%k#T1ro<} zcD5H_be$f<#KU=X99BHOW|;VN^$yA(zEIDt6@>WU!xuPyJ&TIAi5KT)Jh082?+@m* z2=E;+KK2e8^n{&8 z18WP9;K~Ov@^rxi+sv_#WBho|6{$$PCydgN6l>;Cw-ix~&tH+dd;>ja)81b;mh-TF z6wx6`pcvDj*frvf<`5#zb8r+$tH329dfJU5joF3$Vj94GyHk~&4Si64Q>$~H_FWb z=43K~rfCoAe1B!`t1AD+JRA;mg6VYnTvZhe!+>d;1ck2aXt&#FwOZJ2w^*%KI3AC% zEDK>6J_&>UelMl0*K5>uEdW#|1wjDYw&gj;apaumIryl`)4u`GQaKf>@B6|ciXzPC zb9kPI@pz2EV1S}1J^^;SodD2MNs-DInOK&kltfFv-|ype_XB{nDKUNmkR};)I-N_` z=rhiHD$n=|@QVRy_If>`zS(S~eu6Q60{ELjnx+_yMnd^4%jHtyEa}1^j$;gmLrWa> zfyyaRk|cray3&vHl+LnPEUYZcpsBOh?RFnk(%m&%qsqzueE>w c8{Y*O0H3_t^OqRN@&Et;07*qoM6N<$fSr9lO?FQF!ZCmre?Sw~+phED3^AG7u55MR!|uo7v3LPU4|~VcwfJ z^X>P|dn;Vm#VV#?MOzs_ieeEE;+WPuOZGm(btNvJ9UAfvK&b@e^BVCZsnT=4g&`eYH5%9ohp|rc z=vWq>OcS>Ec<2^vTSKJ+T0uuHcZzu2Sn3(I+jUf{Ck((-3VUppGuCd3fBzdl1sDK| WbIqzG0a!x-0000PeBE)&%Y|Ah2z_R)X5Ad{ux}1w_RG z`zernEx@%qFcj;?b?}5PqZuiyP3P4)$*VXJf0VF)e~hMN1f!vWnu8nfQRjV06<;NY z)f14J{)oH_pplsBuE17ba;6w-O yx<>ieQ?ZqsR|2X_G2M^)f=iUhzyFP&0t^5^6xEAvhGJy^0000P)ToO5g=3bvH32{c_lC&P~E*xwNQ2=Hr-4)XayxqNau91h{}c%&+dLRLXC z=|ec|!F0MnxBG_0VhLT>Q7T6DO64A{)(DwQ48>xG@=-Jz6A(^abs!0J+qNN; zF(yfpNiUks5rIv4O;{19(-C=(aQasQ?I(fjy3+Ui{p+cTSmaj(+MgY?+Y_o5LN*&i zuQx{`VIY>a&4aDI0t2*i|vAM@Bq#JA7b ezyFQz0t^6w_O07ByDFpr0000lTuP_tSH%8DN89Ezd{KMF_eZrDrKVB z*M-o|AtHnVy5}`CHi(+xK9gtpiI4A%N=EgEfMFPrZ4yeI&dd||%y#B|WD8_R5I#6T z^@tA*<9;ZVJU1n?Y^Vp}y`ag<2&jKVaIv}xM^i28S7tI1yj|U!c8R%`z%EVwgcN6# z%Eu+-Drm1!1OrQ`9O#C-xem(XGa^Ul(BtnA#EBFCm_R**vJPO~4YcLbMGA0x4a~6s pXUWac|s!L%Zv$&`ohKRIvI78Vr9HZ(7e;2(Wujw}Sm<1xqE@p$|hS>9P? zx!rD~P&h&)5}|0q!GXRcppn&`OeP};yj9=61W$?RL>>wH6%6yda3k)=y4Okjv%JA9c}J{pkFb1))}}!Q=5@ zn!j`fA+Wc%H~)DLUw;tMy#YZ`6h%aK!&oW6u-onM`9z6vdU`syY%-ZpsZ<1c`r}0l zDBK)Z1=wajpBDnbU=Zi$=VHInXux1F2qCHjTew&dm|5es*=!a9JfH2C%VnLqa6G-? zcfvbvK!xjSu~=lb#fjBwRaAio&u5lxHrp!_c>B+zx>QKny1BVIq~sFaJ;0SH7K`%? zw#;XpPUi;`2tOA(m2i!cwv9&PP43A5Jl|jRHjexK{x_PJuO9pnU;zFnN{AnmuM_|P N002ovPDHLkV1h`(G$8;0 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/media_players_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/media_players_arrow.png deleted file mode 100644 index 6513814a6f770ec84455724510aa07d6765da29a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 779 zcmV+m1N8ifP)YjkMm@x+hhPMOSo9VW^=9?tLvMvzJ@it9kZ@@xX!Og<(fLA+kCjSTPSMCdF=$k3pmKZJs~7pc{8xJuLH5jmh- zE>msk?(V+BA~)?8Ig`m?Zf+cbK!8;(dVA$6fQdzI8W|bkhFmU(;d@<(>NM~jZ^Ydv z{fNb4Fq_RBRw|XqqvC+dLZJHkdjn*H8;L{;M^qvlbtXu)CT@sCA_#}WJe5wT`U&GrQf6Y&MH@I=v%-NDC%jDf-OJ3??QfkS}GC z*SWC%N92a({@*Q2t(>J>PkwY7EY<6Z3=;MHCSZcwY$SaJp-IIlpCePB<*)c}&k zVu91ij~I)Ki(8SkS}j&e26S9IiT)QwNWPF!Wt5<%=GYFPn6tC99N_VI(D(T#mU0Rf zyw|ZbJ&jLa_v3O$08dkCtwwUUZvp5-k!Y>g>p6ht3pEl>ojCyOdNVvMEbadC1GsqO zlJ3p3;Vw0utHEFpsUHY1KR?e;fd()N4!7#8#Rl;8Z1_10ESVOYJRh0k$002ov JPDHLkV1lw_V+{ZR diff --git a/interface/ispconfig/interface/themes/default/icons/x16/media_players_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/media_players_exclamation.png deleted file mode 100644 index aae7e554d15a6d84a6eccf8a25b0d7aec81ffa6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 773 zcmV+g1N!`lP)>mVcHP?M zW>;FH_gjzNlt6f%w;n-s4o66S+f z2L=W(KR?f=kA{YZE_uCPsaC7~r(~NciqaX6$Av=%KA&&Tq{ZX$NU>N9l%Z)FR8{4i z%jG~#CHi;^)9e|vQ}j?cnMo)V@-o54B!TUi69z=6_BN=*4P|Q)L4Ad32sfx!tBiXm zCMKTH$kC%B7YYR=lZ)u@@270VXzvs}Js=Y<7X&yL_>TX72`;lTNIBY1>agm;nW67JYSf6-!G?sOUSW z*n-&pO`xeoxa+eRy#5Sr@-He=4;_IU^!4@azr1@d-*WZ`fO6pzPKLYT^|%oVpG8L| zcXR>6TKDxWp& z?hPmwGdc+SuFQb-ff;18S-9P9j?8)-W|IQJl!8bUTpNA?yLlVO13Ebsb~wiF3!NmB z$++_Qyhep-tJTWCL@Jfy*!nsJe`6Uol7quiMDgc1X9qn_Yp|jD!fD)Mf7A&ojEJIm zhBfkFjYn^muLR|)pO(`QEwz#;QkYTMyH5xf{|GPuvX?^mPi4f(00000NkvXXu0mjf DH*jPu diff --git a/interface/ispconfig/interface/themes/default/icons/x16/media_players_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/media_players_minus.png deleted file mode 100644 index ca6ea5ceb2c1458a8b6b5332cbf571e5584cfa35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 702 zcmV;v0zv(WP)BvsZ^j9jYgrY>kRi8Y*@ak49^%6;(XQb_am81 zQhGlS2wXLpO!8zhImM)hHJijYhb+dJL~u z51Y+~Cn+ax+`WZgq5<@u#bQCH(?P4%I^{s14Fiv4{p92X>2w;sVFx|QiJ!j(PN>yt zuv)E9`WIe-3v6$1&pzJmr*C<*tbr3mQRI=_5SBV1$g&KN$HPJSw64);P%4!;S^4l{ zkbY=5=7hM-OeVvh?sB=%Xf*I89LBYS13FV)A2X2vU|@6pawagfMtiMR%Nr@D+P7>L zcXoFEy${l>y}c_UovTi#6UY`dm&;{-3bZJv+R*Jrcz?gH84Mcp3T%u&iN#{kV7J=` zthwNDI5y}c^7;I%iQZio3Kia^QZFi%%IgsD-7%d~1?O0kN3B+0q>22`_5H!_#&NIL k%d)%}Qf`ul;g0|V0MSQ7O?JI(jQ{`u07*qoM6N<$g6K6wo&W#< diff --git a/interface/ispconfig/interface/themes/default/icons/x16/media_players_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/media_players_pencil.png deleted file mode 100644 index 604042ea3342d3a7a68d353b9694c3406fcadeeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 793 zcmV+!1LpjRP)B^;A$0CenlT)apfpA|cA6h`@&m5(*!RqD8|wiHL+UBb&{Q zHMFVeMTKq7{k{Fp4<{4-!IyLI`Tfr4_r3QV!Rd5D5CqT~8XCgJYGdkVGGpfzWxCJg z6^pYDhXbRdqx5*Gy}kXY!C=tJvb?2|E|Vmw*6nr++Wi4FR8(l~b~{)^CX+!r zo#t_2VF3)PWyh^lQvleQnwZK6QeR(hpn?wp1yuSnNK~SYc)8PhO zeeevSPzXAmj>EFqEY*~7z{ZO}@#UXd8+QmItj zK?l3608r#|Ih?5c0lU2nX0sVLzSZFP#WP5XI?$fUWI{Y1$MW(r_DB+*2!drlYn*}r zOgxfxzu%9Ei3y~#aiml=h^;HQgZcS+R99DX2Pt;*xt<>N5^#Of0mYV)im;T}AX=H_Pn zN+#D|0UnWtqZmLor>3SjpsubCi;Ig$tc<~C`iYJUow(Ka7&>)%j@8Y*p)M2v^rJ}h zu2!o#fSxmn?^u^!psTABE?1xY{-d0qj;uu3_5cl_NPX34Gzyvr0z@Ja-UV7g|0l%% z4Wg~hfjhVF&cqY)<>?5%6wO&u42Q!yi^Y;*g(3FswbY4VFvxf3CSSvO`Y8q;o=lF6 zso#x!PWf1RWy_>8?JX@WZBQze2WcXUH)FAw>(ntZ;GYqFp}+FmR4VnGrNhN%{tGYw Xps`l%JTQN(00000NkvXXu0mjfR~>rZ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/media_players_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/media_players_plus.png deleted file mode 100644 index 365b7f20d11d820a8656250f577707b9615977c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 748 zcmVXLKqF~#721+YX{?Dg zptT`g@}nU($!^y9#&?VD1_#?z;K(vgZ;-E!*hnH zw6i)iG=z9OPU)SIk&*KbheI(8V;7SaQ&qJ)91aV61e{LimPlt?TbmLL2Eiig^*U;` z8jsm*7EDxO?VZHg67VwgGT2DO@Ao^1FtZ{;K5T;y6Ka-YsEMsmHx|&PEfGiL0*yw4 z;tedT%b7-C{BOvhHmv@ZB50A77?Bf15B9RDpCClu0zP!AQL?VHzRz_9s z!mmw{6V}();dZ;x?BBBmE-)}Ku>JEUp1tMK)d5bBBnfff95TnhqqSfIBKtTXD2jqW zAizQSR^4ni;~Re9%C#|+l=9yza7l(lmt%(zx0y^P`RYEO54l_p55GLY`@Rnlsz6CE zLEB`UM~Ccix4hgIpdUq`xy54P0+dtjQ|U9#j`#7Js;TIm=;wzKo1X2L=v=Kq3tsm5KJ!7X&F1<^9Y~HdtadmaoUMLjmtT|2lq?1UcQXG_1 z?dpNcY1eD(Q*0VWUe5zHqYeY7n8XcwQAb%*z+^H}LHW<~{mI_OVs*GNjw9%XB+N71 egxici0t^79ZBfG0lb4$S0000jMX9D1(Jr8Gyq^-m~x$fYG0C53>{o1oA@$-#rP)I(CCRASN` zvb9}p)WrHLtDRX^i3xcyJG}Y6_q{i>GfcnVht<_p7%Y`a1zN4v&M=G%wfVb+qi>Inj=*lW1Iw}y2n47mavDCL@AbmM0z@K_jT-_= zQB=prKOq*2f#2^3tUl=Vdbqf_fO5GEnM?*kp%=te-4JNCTC#vfqm_g6^Y_7MWKm!O z42EeKAE%r%Ksa)56;O9NJ<)8oaDwnlu6C~{VG3-mG$*ko znL#(WyZa419uJI;jsm(5GMNlmmW5<834uTWoX+dS6`m5v=kvUPSS;a#9UYy}+^j?a zDJT?;(9j^qXaFdWTp^sDhH|L{McnwffQaKN35`apj>UfRZdWR0ETI5a~+DK4L1J%hfx*l;sPjYRjG$z;N7Yuy!el zKYSJ91@PhUHPeXm9?TEpXj)$O+_}5{IV@`HZ)7A=mdzLQ{SK>DXVydTfj`6u1dFxD zBq$b(s0lKv2=M~j)TC6lL3(rcIi75hNN27*dYbLh!{$BTds-}&%U5eBAR($lgAfxL zV+MTMR&25ma<=(vIzP9-sCs*OzRT=%TB{F2W#!Nl-!8U3uX}KXjoO2-3RpLg??Ni;Q9fwg{)2 zNx99o75igzXJ_mCPEMA7@SK@vXX)qQ;NS?kTyAi3 za&jsV2z0qzE(C+YE^@;u%2&r#APaCD2cGAV&1NZ@$Z1xG!-18R71-@|B$G)i<*A>> z(fA5v0YMOC7>!1xQmLBe=4Py}u3~I#3~Os^M?AHa*b3OH=Uh~&RM(@?sAheA9RmXc zSX^90e}6xGJ|8Gg{WR`G5)ZT6GB-E(C=?38X0t)3)4}a_)11i97#SJ4XR%l?J3D*h zgaAzjt>DhicPuO{V03g8B>T{4G{|H!h{xmjz4r`)$l;75GVI@OeEgq4KA)EbcwQ-! zt*!0Q>vcpx4Xw5g>RKh#;xF_K-N%09md!o1rJ}zbm5~Y%aD_rCW-^%(4o8qqX9&`= z%_ZN#YC8=2x6!+LlG4(S7Xg{eYN$i|*bbT$y@~ zPOH;Ul9)?U5gfrk0a{;j+Q#zo(#QIG)2_=kj#5cNA`yo|+CZnJ14=dtuh$DPzpqxR zJMHB3vmy~-=q%9s(i{|v#S0A$=JDz28K>KQzRzGV>Z6-C#Wt&+%S$^BBp>HRUG}r`ypa6_c=@@*((jkhmHA{I>Za zo62}9jl_zgD3FOW6PqP?MalXaA9{MVb+v310#DjJaaXnipFv|wokbLJjjI|efxtw- zA2yfo&Fhz+dn{!^$(M7KW0(hJ1&bo5fJiUPvdI4xU;wxjWSK=E7`Ffb002ovPDHLk FV1jsYe+vKr diff --git a/interface/ispconfig/interface/themes/default/icons/x16/microphone_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/microphone_minus.png deleted file mode 100644 index 8e036cd18aa519b45feef74d6b1e0fc237c102c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 781 zcmV+o1M>WdP)Wk;Gd5Lj?=g z0+sf)eR$55k^(pR-hJ)wJSfM#+gB6m(gf^G&nfe7mvpsHk&OrIyyR$NF+W``g1f$WY!|U~8X=%wpI}CEXlvjihP^;C@Xf#Nt(~LS=t;yr@V0wBQZnqn$RH}*N zoM#^Mix2_^gF&FSwibJPd*$`@^_ZENf#2`P?Ck7GoaZ99h_aHB9_Vzs=UZD_`nkC| zw6?Zle0&@&EiH&dBH%dZnOEwAF!9*khLMqxcgxGma5|kZnN0BceC&xRqpPdywcT#V z(9qD!a{_DzpWw>MDng+Uy1TnU?nAHF{6m4wx5v&7>+h1-f!pc1m!+>FCwv4Zo& z760@uF5+S;bxI()u(0s8qr>Z;pZ_ETs;anzH1$Fh?d_f5JaLmxV=*-B?}MF_xRqTl z7pO3({AY6`sm6eA~~ffeaAe7@RvDH zsC}G84{x((OAvk$a<}O5Pk;dc*-}NX+C8<900000 LNkvXXu0mjfbz^s} diff --git a/interface/ispconfig/interface/themes/default/icons/x16/microphone_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/microphone_pencil.png deleted file mode 100644 index f604b5e333cf313109aaead7d152453d6c3864e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 829 zcmV-D1H$}?P)WW1vYAhHObf1+^pyZ@d^08Ig2VN|;j!qRzPxw(s=5pUun;JUi@ppYJ*6{W%q35Ah+alIjB^s102U$@ozCAj+#Iw zlL=m7_nqt7usyIn7%pL9CCiBu|e#N~3i zgTbK5Znr}y6f)rr-NbLz5gftbhJiw%0Hsn1$z+nS8&5M@tyUNw9tN}742eX-NIb5{bVl{8^28d3jeC z7Z>vcV#W z3F-8BJO-J}IvllWV3)!toNjC?df40Lw^Z=2F_pmPD97V*+9q*;bZu={R4py7)ipII zD~pS@MN8j(!u<48;gs`CVQ+V50G-=KQ91Tc8#fB1q(?;ieuNvRt?NRESr%S1n zAaryYDZp_ij18Z!lf9dbuqXacY!YdD&)7ZqfmkQqZvh4XHGXgOW5Z)A00000NkvXX Hu0mjfit=(& diff --git a/interface/ispconfig/interface/themes/default/icons/x16/microphone_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/microphone_plus.png deleted file mode 100644 index a88db39fc82213c938daff99ee0309dcd0a387d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 809 zcmV+^1J?YBP)?biu{NMZ>@ViAx&>5~7I%111hSGzK+36QF}O zP-LLiw1pI?ZC~5>{O;8vmY1A&-~GPx&b{Bc-xU-^!SL`f%8yE=f>x__2!i0EX(J&; zoOMZ(BBfFZm5;hIK;(9V!Ej@8a&j~li`gs|%jWFt>_Q@ucuDDRmHaC9%IEXP$Y!%{ zpU>xyL?Ski$Ahh{EgS97&*CR}WpDwtS`CdxgG?sFV5QaCTrL-umX_djI+0GN+gP0C z8ISSH-~xKRo};O$2?qxU)y>V#SYBSn;NT!uR#uMVY%Fujs5(*3)tZ``@pwG0TU}j6 zcXu~}!63T2x*&=oSe)e<@05vu-90xmGczBJM&WQcU^E)x^?I2nyo~<-{^{1%R!mJz z-9IJ3%wQ+Dz5N}5KmY>+10eUI)9G+@bcAFwiBKp6zyA*7s!j>yayc%b(P(+FrR6*t z8jK`R2ZP}(YHRfr4T0r}tJ>*F(0NlxQvMTAOOl*0n=PhT><4#SmP=GZ9=p3Sm`r9o zP0ttKk9>U~>55Kjm~mv}KPEB(!hSd$-stW1AR65S6N$%v($Blp3la46^g&FoWp7`* z)q;ZJMqc^XNbGzM4-eND7Z*O&*PC}do*}+^DwTvJ74X5nfk(wB(*Az(SGtrY(`2Bi ze5Nv<3+yhi^JN|si^a<(lVxaZ>|U?ed#R(b(bSMiCH8z@eAOM-J9U+9{O;9Tkqgkp z;We|7=61^U(de9;3p|{d7<(pKOXB}@0Ip|tV}BkZm0#6cff>L9cF@tiwlB{uC|++OeD@G7r3IC nh81=s@DXw4F3za%TYv!oMIBU=s_yXi00000NkvXXu0mjf%@uc% diff --git a/interface/ispconfig/interface/themes/default/icons/x16/minus.png b/interface/ispconfig/interface/themes/default/icons/x16/minus.png deleted file mode 100644 index b0c15d3684753083dbc7f89112cc720ab5e3a219..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XmU+53hE&{oGifjHAp?Qd`Mw!58+7+@1haIy-eBl763tFw z)VLfF91s-oiGN#VnTU($6SHY{^J8lK%dNVn2xaxTJdI>(c&5a{QlOUAcj9jB$$f^8 zqu<^N%Ut_#j&{X+ZbP>xq5h`IOOIUmp3LqZ$DXvd)o|GrO@)>ZQ|koZ{BnIhh56lq zZ)`m0*UdKl-RxIpX=P^FvF79}e|rJ{dr3b}ePxtqWMg>!KWc5J{V5-yiy1s!{an^L HB{Ts5YFT7% diff --git a/interface/ispconfig/interface/themes/default/icons/x16/minus_circle.png b/interface/ispconfig/interface/themes/default/icons/x16/minus_circle.png deleted file mode 100644 index e0cd5a83535146c17bfc75905c8de8306be2fdfa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcmV;B0&o3^P)1RCwB?Q_F7CKoq@x#PT?yY7$Z) z5+IUPC_$=J38_*Ei>@oWfFv`3Sf@j{6E!u+=tT`j`m3 zz~<_2f=?ohZDy91a_Pmz1e=@F2|?ER`LemcUp(B~d&X_Mgt(nwPB0;}`T4Dt_4RzH zs?6~`a?Z{s|BRdYyphUelGSo~YcN_Libx^{u#nbt{q^d`#)|E_EC_E%RV^;#;GXm>i(K-YE2 z>i5aAEaIG#=ldhiibBbFJRvx<0(Syg);;)sT&a+0n$+!fNkMQl8l_k)Mw+G#1$MGo zax6<1oM{q00qn?oJ!&)>B!qC(KgeP*QEtR~vsG}3zVw>S<*?m08f$Bp<{&2GIlmB` z*%RzGkB^HtRMjw`e%1J9+a19fR%R@){rTkN6HMDtbfqB*{|}(V_IJlQ5S*z1s%{Q^ zzx1}%s=KH&g9sb@orMc>wcoE>K~NH$X(LG>+{NS}y78VYZ{{^EcVE*IaYfNZ(5dfV zeB``S=ltLhmrR8Q}VPRP^nG|10rBW;}FV7DS4)%LIo=MuW6LI#AHw|A-2qCu{DwRr8f8+Wk`cmHIa>Xd#LkPUlXk?#K z)6~>twOA~-R=c~AF);x>Wi@EE(Bg2X zNFYigmVJMJA4x$F_q945xan!=+S^N+mKkJ+LSgL9%|oDiFN}?0eSIB)Kmb%Llw?W` zL`Fu2Xz-@I9BGQ(+lzr|rF2vh`XOeBlE~?Ff*qesCi_b)9vgj4jABI%X_-NY=cSO9 zmLl$OV9jE||CW->SS-i!%pkR#sM>Ov?=B zY_|U4oSHhsPoF`M0K*VR;$B)|Bejc4qd!=zhvdZ z9JaoApd>*iAvw4ROGKoy8pV&EU}R+Qh21_mOau6yXBUE;ybB8-xl}4Gx!T!f!bv06 zs4p|#uW(6a5bCc$d;2a<-RXeM_H=}<#1I|tE5F~LbS*dEUD<|czDfh zt}6Pqc@D>vySMl8%f-b{?`WuA$K&xG+Kw>;p2#MSvr_5!vT5Rq=+flU|HB9RT^idh m>bjc-EWoNEd_>^800RJ?DtI{m-6ksl000011pYmDn*M z6$;XXhElKrYpdd-TA{11N*Dfu?%ld{Rb09daVNMFO1mk78=<8Ip`wMnCY=H?v2<+|cg*NN;I%3IWdTeGU&HJ(}drolL(1AEUI&u!H)hI5A zX0sWt6S0`XoNfoksSr-9)d~e{+eWj|XuF|2JTDkwBoaYN(;VU)cMDXggGKgY4^~&9 z>pBd>V5^{$A(2QR8V$6U2L~Zc^OQNEfDQbt)oRVCEGLV_A{^3J6y+S5BTk~C(Gbk( zp261xT{m-@hV98o{4cJOaK$uD;(QAQTEKesNskWz+Zx_+!!vOshfPp^Xc~X`O_j-FXBZ|_;Mc-|^wkE{EvFmQufM=UPsl<P)PCS`7MQ)Qs(BXpY+1!0zzxU(BkraVE-~pc2|Wa! s($keb(rYvUtK*sls)S#}b^Zu204tanJ7S!1g#Z8m07*qoM6N<$f|Mgm?EnA( diff --git a/interface/ispconfig/interface/themes/default/icons/x16/minus_small.png b/interface/ispconfig/interface/themes/default/icons/x16/minus_small.png deleted file mode 100644 index d1430d5720cce0e6667dcb855d9f69ff41f59578..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xf;?RuLn>}1{rUgjo>{e_v(d>Qi-DP$d)I*?w_`JVczBMz zcywTgmGsa5^;V9|c8sRSj~`8x*idj$=~2uFwv1qPv7-*H=^G^vSj?Kx*38Jj$j0!n XM&#VoHT!n~O=s|Q^>bP0l+XkKhJQTt diff --git a/interface/ispconfig/interface/themes/default/icons/x16/minus_small_circle.png b/interface/ispconfig/interface/themes/default/icons/x16/minus_small_circle.png deleted file mode 100644 index ef612efe465ca6a2bca634860a3a28f31d3935da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 328 zcmV-O0k{5%P)PbXFRCwBA{Qv(y10{fofkH6w2C$$D zEM;V5U}a$N0y1NOSPh780r8UG3=G?%v4j_f0YD{Q9D;&vrfzP^oc#P;Uq5_MKeKC> z)~^pAK+@X?df^w)W(^w~dL<$E+XuLA3$fTZQ8_h_Uu^( z0cK_fVPRng9w4|VB&0@^0pEdsUM()J&GP3D2Plo)1BS`Zzkh#xhlB;;SOB_U$&+{Q zZVLVT_eGI`;h*rIKVP1I`EnB^PLvCPfw=AdpFa$@KYW140#MNsF)RTH0*s?cnQ{XF a0t^7M;#J1HT~*ou0000igP);uP*9MaH+t$@c}0?xsMqPi>sl?vMhsvv{&wAqoa~WeqrCpy4A#6CD6`1B&G`1pB*2QU`=J5P1xO0|Np~M4>@W z^b{~nylB*`&lE_r00lzKg<`(&$bZaP@~qN~g0+WFHBEk!?#@UamF_G&Qx2EG%SSHaE9D zH%<4jZOg3k$D$5e!ZmB zqt{cV`ikJ5(AGC&6x4vtDlD2t4qXDSYmkl8k|h4Z$xSd(gjW~vXaWpEa<|+o z))zBQ@fVy*#khE?-5@(jkcmGTxUM)}-L&u0>o8f(t`r658Z=F3h1`z>zCBYu0uW9Gsk*5zgR%A zX5u{o;MvUU6!UZsA#ire92hVB!beyg8oo-XrTCdC7(x^9R_f9@|t*_MYh20v6`{n4s2{7&X`p)1#}%ZL?f%&n*9Xk8-}r) zzY{)lTnl`EI-f_t6xb;#s1D-0^EPC~X2uqlfnu|750q801h_!htgt*WDtF3ZXshIt6bfPq1+ZFuO58@-oDWCG$%^)p)_^C(LYk-Y4jpB7eP3*fZWQrM_TX| zijf}`$0b#Iw@>Q6b`?!WuJa?O5&kr)e}49c^J1`590`u3VHmWUKplr;2VVS<1rAMk dF2Mc@FaX)*D+p0tgv0;<002ovPDHLkV1n*`R5t(s diff --git a/interface/ispconfig/interface/themes/default/icons/x16/music_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/music_minus.png deleted file mode 100644 index e55eb3193515a9bd6b8a9e530d2e381203e48830..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmV-u0+;=XP)ZCx5U?aBzs3UcLHk2S2~qmQSDl8UFnF{~5Bp$AMOe z0neZR#cBXMJL4x777@p%PhT8jViN5D3dJGIt2{UaF@TrrD+3cV3&V#`oG1qT_yKYS z<4;CL@#z2mzn*1a;D*cPFLq^6d31;YWHpNb-xmfJR(1vf0Vame-*{0B;RKrb>led| zzkk`_ft@hLkwNLvAw(F!7;LP67=#7BFfg(5fccD!KuKl>hTne}K7aqtplGq7k-=_j z17;wiCZFF7jDNo{u(HFw^Pi2CSuvo+@qz4(1K48$MEv{r*Wu6apItzv5s+s7`Qyu9 zCMISE4sJe1?^YKE$r}e|0{v@@CApqu`S|uVh`n4()G+PO6lk8@*Yj$^>4J5L3jRyzb4Bz|ay_s)*5XKn(r_r%@w!G=e5^U|r2t1sc zior>q2Z4lC3-haHC(9U$MWYF2^^;{%D}(CJ%+Wus43ao*&QWnWkg1VOhoa5_<$rn%$m>l+Ic)fp$$sBH=E_6m61 zDqu`mpeP75jZzWn8o{_aY;xz=$%gJI+4n42dVuoom7v30g}?z7Sk7Sq*U5mt%dx?7 zKFW;Gb9ab2?#Z~_CxR0bXA1zg=!T_((SY?zKrwsjF+!xiHh`K2VzmmvF=mj6pM{2scNTMCFvZ>Lk+n^#E5BCLIQYAnvYC%L}m@95&q@#X0B)S>xGWv94)*aTjJ z_P_kd{N>YV*6V`@z7D+5NF+bHAenZ;y;2E&3orn36DJ2sk4zN+0000DA-*Cfk1q0X{q?Azd!!a zG@TL4l10~F9lQYy{6$bIiLL~GKQmQzV0?9T?FHw9*T{9w^|!(coeCnM4RA$8*$j3B znoU;)vl!cXR>}?hCrgSj?RBB^`Lw}A4L(&sQv?`<^l35I9Ct|_puMwX;j3kG#tuoOPW^z z%W;ooNR7dUXWzMtQu4s=L}Dn0O4-Dh_uq2l+b=#nz{@cm#*0j_9B7eKa-;1w*Axd#j6& zZ@&HcV}^=QMSkJ7^X3-y3L^v)IlD}l!Nrh`Jv_56=zlfn3K~m6WyAqQ385{1q~$&d r&mN`9rg)m_pwmHvFpVKUehDxD;Ro;2fvh%800000NkvXXu0mjfIAky% diff --git a/interface/ispconfig/interface/themes/default/icons/x16/music_small.png b/interface/ispconfig/interface/themes/default/icons/x16/music_small.png deleted file mode 100644 index a17dc8baf4ed85e65902d65e15a4a5028cac79d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XwtKobhE&{2`t$$4J+o>z38|?M{{Ef)klQnkfr;Jm-+VrwGiwyKaVskai)~XloOxii zdbzpw>eHX@?5&*MINLu%aQy-aW>2;|`^#Q32v{3z-e3mA1`^i4l0uJL%o3MiVB%r8 YwZhc=&Yu_ZKrb+Oy85}Sb4q9e0LQ^?3IG5A diff --git a/interface/ispconfig/interface/themes/default/icons/x16/newspaper.png b/interface/ispconfig/interface/themes/default/icons/x16/newspaper.png deleted file mode 100644 index a6e3bf83fe83c24076b73e249383e4347f34f4d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 565 zcmV-50?Pe~P)I07NWnR zq6PvYHfgLZ>@0#{BlrS&18X0_R(t{R0W1Snf>_xFM8QIBynup=x9s`IENiNS49xEA zT+W>Dd~5W2Js5`Z4ZsKf&VJnQ_u1`s!|U~edORLXe$;BU&hz=yNxrQn?TqQP?RJal zbo%`_(2Nh0NP@;j0y=?MyI!w2pU*g*PG~e59V=J1W zK+H5v$J>*8njG735 zJ_4^tY_V7%7z`qnN?|-6>l>g^{Zgr<>*;hFN-4TfcXIg?0q zHt>AZ!Knwu5?#nZVwqD+$X1F*cQT;y=lYYO%&FmUh-5OU)n;dJRW}%Acp_2UjhsOO=C=J5#K=z00000NkvXXu0mjf Dp|kx! diff --git a/interface/ispconfig/interface/themes/default/icons/x16/newspaper_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/newspaper_arrow.png deleted file mode 100644 index 215a4f59f29b3039d2d5118109aaf0f400ad9456..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 698 zcmV;r0!96aP)&1wtW_i~v`1{}xT0I-3R+1trvQV~TF^Z6Y7bULNr zMkEqR&1N$eq_333oaW?YolXbka{10bpb8BNLXy!akpP#0Xl*ldQFc=^fi>0KP zAl05F0G<*Ul0tz(p#ZH`3$NFUQmF*BS`Cdx!#Y!}+wCHk%fVzarIN`cF{$u`PA2Jq zKp?<6lgo2rB(wB*JdBl2r$aa#W_1eyvUEBPv)K&4-;YEh!4lnWH;hIjqR}X_*(`Nu zKyuv*gHR~My4vmbmEvl(3YAI)K@b=No6WWWP>e<+kP|?w)k44DXY=LaX0r*UQi*oE z&DLoy*YPyS46Ih`LeO|TzR*KH5n@J~$N+2$bUd=vYBd-P1~{Eg6pKZ60%W9qFc?It zJV#G)2HQ#wa@`68qP@&U?oOZ-`!QLAaLtC7?;H5Fz7?2=;_iY0CD8up-{o>KJ?Kt6 z`=rG8V_p)qfzOAB;MeBZy6nc@*K>lX)7|2!NCqI$$d?&3)=%NeRU5t>0T(Zw2VJ|5 z9YEL)IA1;eaF5UD^KdvEOl<<|^?D0EEEWs&wQtxzkUC4pcqCnAwa*8u&yDAgU)29} z>Pb$@-PGbN9R|L+;ju0Oi(ynEYOf3jPjRo}fnKFI75fc1pW80wol59i=E@%!hF g_~yYr#r_H~0P|&682mH?;{X5v07*qoM6N<$g6|JHApigX diff --git a/interface/ispconfig/interface/themes/default/icons/x16/newspaper_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/newspaper_exclamation.png deleted file mode 100644 index a94cf2c98d5e252d3ddb17dd17a8f4ccd8b0cb2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 729 zcmV;~0w(>5P)`+U!rkBdg5;5hCcfGPZ6yzg{68AVZ`sw#wTw@byT zm6esPUa!ZB^w*kL(wdT@R4U=%;9&hXQHDM|G3jj7NQC`FwAX62&}cLu%QDv1*0!`- zNW;z&fj|w6iRY0_CSkQ&v9Pd!bUF>Q*$j)t!X{I#TrMLXkHh71ZABsxQj!sfokH^g zk|eRol=_+!=_&((08?eN*|5C4%y0$)#rF0#+-^65!63rnFl+St{SZYFtE;Ps#bPv_ z5$U)A1xrgyY^vAm9RO#uSqu#gAruNR1=G{h1_9q}HbF@Q`FtMLYL%_~!MR)x_2Mhk zPoJQge+iSx1RW>PM_1tScnm`~H#ZGGy4?oO4xi$>w2sV|*WkGhbeurfqsQ^_F&qvD zW@cuPN~PEhP{_r1n4g`*u+4%o(Svqv4?1q(2qfF-bQ)@CEsCQMhreOe>BECZF*qlD zI4|r%X}7tm3DK;_S1 z=Ff5G?h71!UDTYDF*erqYEMPtwBAL#-9D!|Kl1mpd-k~g@YZc#@am++4z-7o@%xZV zZ`fYpr+l%OIQ^iV4*6QGmjBngb&TNV=Z{C$Kb7YL`vQ-`F98MspBZM(A1#!%00000 LNkvXXu0mjfBhgfe diff --git a/interface/ispconfig/interface/themes/default/icons/x16/newspaper_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/newspaper_minus.png deleted file mode 100644 index 4d9f72fc51150a5d2d396ec924555b436fe248d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmV-u0+;=XP)N*=&YhulMOU(0~s;krWye33v&_v)9*GY&ILL*J~6Cg^Gx!MeSPxXiShudOcdL z7AzJEVzC%HoeoSU6U=6_?9AAFK1ZX`fYa%$l*?r@8E8bO2_2A3CS_;3T9c7t8I49I zE34ItY&I+F&H%J(wF;NZg?K!UQmG^p!{IO-4hQo2JnHp2yGtNdcf}x+$;hrgpYN)8 zI2^)gG$Nf&O9o!A_Y9!lZnvNlU^1Ctxm?QiW$}1ChQVOKbUKyiT&p^b55>Ua@tg%M z7K>*+)QylCHBkU^1YVD_(P#v_-Ht#YfOfkrZ-7SiQ>m0Z4~0U|G!3fmiUDa~vQga$ z%2*^4k$W;^UF6~64+AD}KJJ6Tpwxrk1buXOho|RftX3=8{kstO{o~_j({`KCSfl_b z8vT+1?L|=kkVstr5x2L2FZcHet=VkC@Apf!3AR`)&U(1rZpr9H%w6qvvH$hoND(Lf z{cKtq(#wQG5Z`(di49^n8q6BR1d|?Q5c`u( z**~UJnUac5yXRL|G$J~1yw~6FoX`34JzOpr41(jhNdN=*zlby%js1GPj#jG${_^sY z4hLK=m%rI;vO{_bMJ(x^lH&aQ9En6??l)+kek4Q^X;etSP7vMIYBf|U6_m?mOixey zg)@iHJ4^tc3K&TuK{OggZ*MQmW;5dPIAk&zw{;lAr00RJ+_h?eHefHu20000< KMNUMnLSTZ9t5RYB diff --git a/interface/ispconfig/interface/themes/default/icons/x16/newspaper_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/newspaper_plus.png deleted file mode 100644 index c2e738dd528f6d5c753b9718d22e6f25ae80bad5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 685 zcmV;e0#f~nP)B zACZNCh($~>k;KBzA_z8ue_%-;EKFmSv^FWkGL2ZI2@%q4ViQ4>fYrK)VwN}t){jMr z&gy99zGRGBWiQ;BJNMmt?s@0U<4UCxIF5S`;0U*~)Af4YS*=#sZnxlNS*GMsGMOxF zHXD|tw^GEMVsf(4XoOa)b@CUeLk|rhsc2M4fcrqSCP@+&iv{NMInwELLCM9G-eUsb zsemDAG^o{TFdB^r27_oc8qn+YFc=JMGUdkOF)Eb`Y&KgVpU)GM4o~Q0iVhG2flVe? zV`8MT3m`u?V}}j!-CsTrS57{eC~JRx47e6w2i?O=m!A-wg)w zc$`gjyWKaMyWK8yIvrxM7-Qgaxpn}W<#Gvf0uV(J)9IAO`^|&F09vgU!{LyvQ>^y! z^iUZ%oz9)0nM`J+A%`Nd0IuikIyizUxE? zzrr|JZ2ti4Ga%agY}DxlO1TS8MC54%&94nSULNC{`|KYBDxm$*x6kKedeA>X{;K^N zKhB1b<_lcOSHNn6caJ_~m%8gPPfaQSiAKK9fNf3cCetv%% z=Bw2zJRT2Io4_WM$xaW4!@(Fmknf}S@j?-B4L*Jc+fNeOKhOIZteTus8#bHG4;AI_ z{_h&jUdUO;iPt+U^!o>Ix$JB@AN~NGNq7Fj^pW^ZO%lUj3Ap7Zb zx_7Q;vl-g$cKQZ-opRI#7n7E zN)t$kpcq#2$jR(Fq+LKtX3-=4hLefn1GD? z{a&c8Rtw#37e=EIjYb3gexLb5(=^QIb5yHUaY6|9?{+%@Xq+%W1zkB3iO9&Vii=Pv zBu>m`GkU$AK$+4fK(Sba%jH5a7(_0YgWK(f&*wujnS`nnoK7bKfq*D~0&qeAbD{&U z*DIB0o=k%&MWa!1!*5K3fX!y}w+1?ZSGHIzWKLza(P$)q$z+1%aw!LSTil}qG)@?x zWjf%2Y&LtpQY!NeaQq11&4>dXFc=K(4(jzfI-QP;1o9h4U3s-yNlYB*B;EGM6j%qY z{eHjxe?g&8C}%R6hH^9&07<$!@0*QlyWM`TG{4=RE^E07*qoM6N<$g5q%z2><{9 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/newspapers_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/newspapers_arrow.png deleted file mode 100644 index e6c1409bfacfb806265d03638cde66443e410f11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 717 zcmV;;0y6!HP);To0}L629PA_3V=Br9nZVn?oOxELBHRJ z!WI2v=!j@xJ)3j0YceB~V_V)JLZ_o}O1c=HyHY8i9mJsZ?t9IF$(@oN5{Ic$`WS3cYX>{ro=;A*}58 z`;p7#U^bgEJw1(3C?r5~yWJMld_Iptp#WKyk~1{Tsju0rW%#PN!3Jo<3=VmV&{cP{Vh$LBPSm!M^|=naN~=%jFW4 z8P#f40P6KRR8>X#y90%^k{SGrI(t62Wt-sLJWc>f;L5> z&?LpS3C8@yZL;~XiSq^%r3m`q&Fsw1eBS%Mx63v*HqdUj!5F&%z=40;>qeuoSFhL6 zYPBHK4!;b(>6n|FTQv+r0Lh!pX4h$*&*!nTv$OCEv_}I0L}U)RyuZJXY&MIYo*vk2 zHe@mxSS%J)t5uAQj6l;g%+JrSuC1*t5Rf2jeSQ7j|3oGT!6{p^m6a9BBq);>Iz)O- z&K(Fv_W69+-rk1QYK5w*n3QBmX?;_ zbUNX3xey2h!0QCh#1U+!7}}K!9N_H&BzhnKY4UhH7#kZCl_#AfgCtE)Pr+tMV%&Qd zeZ61!UK5o{MR*rLEi08u;+Z0orPFBvD1Unet8x}*Q!muPQB;fJEX%<1G=!d zxY%u}VKguxf5fn33b*b&#gkXr08bT#LHlEZNdN!<07*qoM6N<$f~OT&%K!iX diff --git a/interface/ispconfig/interface/themes/default/icons/x16/newspapers_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/newspapers_minus.png deleted file mode 100644 index 758ed144842ce164c943f4ad98eb45ebd65cd40c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 655 zcmV;A0&x9_P)p@W;aHh(|{p_6}tTZxM_xVUw4Oc5s|9mK&9f(mIB1x1VX>-y32 zoaCmqOFi(Od+xdC{NCqz&$+rnp@8jn3!P5)4!|+~->y_uy<0Aq*ladXI3qSgOdiMM z@r(6(ErE>HYV{O+9}EVl)oN#tpgVR1$jk!ry4`N0-|xdA`49VKCWLURWy@qTRFYNbg^TFt-=_v)=1?evN~Hp`*$kV_ zhFB~nLHfmFA*t1B74>=@dc7Xyav9BLlYXHn3WmcWip8Q-LI~H-=W`hfJ5DfzmN^oM z$R|S-7lA-PDlr<3XfzrUN=vec8X%j^!r^eh@Ao5}PQ&SR!t3=SnM^{|33j_3KA-O) z>n?x;0_cef+-|q5JblszEk&bIsfOQZgMjID`cMN6z#|)tMsm!|Y@JR=0(!k3#^bTv z$kXB)0vHNAPEaxxa6>AUdOA{O<{gl?ZU?}Vd3AI12heJ@V6|G|@pw=wmE@S!4~N5O zoS)<1{vO{C4>1u+z8)RnO{4MAq^d!MBsNXgK#dGiqk=+ zxZ2#tr~B)^&U0`hLZ}zs@9Z4j^LySuXS$i08EBdYole&WpaK83&-r|QHVFf3e?op;OOWG zm6er9r_*R^YJ#e&=61= zy&XQE57pJxsH>|(Pfw2o>9g6ar274S1cO27^?IzXu3~R*kM%-P6vX3k%+JruObB6o zCXPgN z&1N{APKZ9CzP=tUEiF>DxUqo;p`!`EXv2HP`RYedDFPBt*wO`--V{W6_@Y9>s^A`GK{T=Yf;3_im;Rv6oC&# znl~={+da0ceQ(|cdtW`jz5Qv;u<$K>HAH36_>X*m5+MAV@aue)moR<|_Uh*1DkeXC k(Y}hkcA%H(gdsppeFbX|3rZq%FmS zh9;yE@}9)`u10qojWtX?>pz-kyck%F&d2^NzyX_6Sz3m`~7~g*Xv<8975)b z`Z3hSiC8SQq$r92G6#dfdGfwit0AAy$A5#0ybvIiRmkk&;UTKkD)f3iY&IJzl?p5t z3)<~ACMPG+Y&J1BH@CFByc{Qx5NTy)W#KZ)gb+@*j8rN`Cuy0r@Fmvs|ENKz91I4L z&1PY>S}{I8j%YM0K)Ppw(*q3*eTS&1SgWZlTO5 zm&*cha&iKr(TLZrH`x5Kh1tCa7-;~K2%u#;;0K9B;(SY~%rn4o=jaAQwo*!!?Aj=1#H zgs*SE>_8_Cp~JRZEEcOXGc)l^{Do*N^cEe8$AjLe4+HM2_P~REMa`=`l@}788(*oN ly$6G|1zC#YrU^d<7yxE}ZbKYm%M$k}@P)=*3qIx5cCJ4oqr&xP0J93enIW3O*)o210fiOAM<@X_c}L6u;{>X zy!yWHdGsFT^!ggS6h+yi#~l8yJKy(9p67uvCO%MuAdp|CPWJcnB*2T_#?o>E0g0sW zsZ>Jo@$rDqqJEL47*CVUC@i1=qJihSa2yA=ZNsuGv|25k<#Kt_?UHXp2B_Q^mQsG} zfDa@;Ow$+B`I&d4(ZJ>HEw-kn@)uWEhonF61<)i}8_Q$xh(NDeSXqd}C#OqikH}`{ zc0{12X?QS1@b8UfIfk;zLVLFsPW_$lVVTG@H#>t6s-*p&-;r>Y1fX=7@z=Had(Z zil)5~O*_D77sQimxrcjIdeQiyUafvjY;Paq9~HFQUtxgvEx-W7QKXmFy?0000< KMNUMnLSTZJfdn)F diff --git a/interface/ispconfig/interface/themes/default/icons/x16/notebook_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/notebook_arrow.png deleted file mode 100644 index a1264dd659320435bfb777c090d360feab3ca761..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 700 zcmV;t0z>_YP)3lE zNfWAK1Wl97=k?r4#!P7Gfy2z)Iq!R(x%Z54XJrLE1VOk$mq8pJZ#7NJs;Uacn6co{ zb=`dFUznLmQUSKaJq(52(5c8Q{FcpPZFBP`??t&~ifr7?Oh#rp84wLrMS(2KkR%Ds zW)rnq4R>c}lT>$^bR(vLgA3ashHA- zsFN8ZVJ}o75Q|L=hn&zzsnD}ZWXA_D8HO&G3mfHf<3E97B`9_X3OllephLn~6QmJ3 z1|0$+deQ@px``!D(AyTWE)u8H31v;O7|=$U2I5Y`LLePLz*+>de4qiMA&+r%xl#ke z!8QTVMPjqtVbwTfD?!;pP~K1QA|s<%)A8GVZk*=jp-M;GWpFC!F^Y5aDUqPdxHpH1 zla$u~ARZ6k*~`d;*5kg>P-{#32&kVykS{k4;iFGKAyy@$pj6m~-Xr1K)zQ$C<*##m z@EqUsdGz`HErNjC5Q!Bc2((7I@Wq7-i7+yM0q1xO{LDW50;Z+L)2Usn33rdjWa0CqpV imOrN+&{E}}00RIvB%<)&;sjFw0000sk>^} z=IZMFpXvR^op!9~g_q&`=6#;`H}ifU_h@VkEI5w4Mvo5sKi=B5y=Yk$T-WtBLXPA3 zFH;W(2ZyNu1$ht0x*~9>$S?e|xQLm#xx1_vWx*Hm%*{`i%p5Wx8d#(16J%jGggCMR(!nH+vLI(m=lpB@-c zCqH_-qOgcSUeVCqDZnPBNo$M9+B(jAhN39qW3j0ICNP5pD|Le9H6uV!Cvja3q~YoY zbpo#Es05q3$*YW@u_km6kqCkSbH)r9(2w#Bc>eT-_Q?=wES?$E(j!nx zsz;y{H7^Ta-_U3sxW;$n^Lgx7WF+IscFV>^lLp9dDhdobZIoOt9YHn~@eFdAh)2<& zPM|3nL+R%%UQgV|mcD?d)_4m|{{{_^<3Eg#qe$nxQmODVbywCk@3=FPh52`=?k>|9 z=OOT0xN`Lgq|h!BO=>hO#`?+R98cBK{M1zI=Eg+Ta|(-N%m2wI!B5#cuw3-4j? z#{=&f3s=#Wj^}g(ci23W>?TTmeFJq?kcO8{UyKv XWqFDp{DX2200000NkvXXu0mjfk+fbV diff --git a/interface/ispconfig/interface/themes/default/icons/x16/notebook_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/notebook_minus.png deleted file mode 100644 index ab8597aeb5f7b62f5ca5e0c78e6e972009e58640..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 634 zcmV-=0)_pFP)L{0=|Y!QJvf=N zu63Jk;1or+qc>$Rke#=iS5F>9K|~Pz2gF<1ZG(;Nvg0lTVRuJmbfC0NY}OQq(8Fk& zG{0V-_f68IIK>B^rcd&Gzt5+ApGfa_cfmuFq!qeM;NS7t_x-x(d0>o*8*&f?@x#Kq z)zvaJpr)Fbn$97hrnvE>UdKVT`kc?Ati_@XcZ-veSwIFv1J8BgI1c*#K5W}Yx7)>s zwY4(!Jto~;Y#?)C6jGzv10P6wwA;Rz&TF2XP6u22`?xnYR{pfJ^OE{Mh6Xe#j=AYe z@Q6UwZOoLi@JZ=X?Gf3HiATavQ4|~*hBY8?(*$}#@T29V2oe&;Y>-Au3=#rq_GTVF zO;b-f!Du98LnPU37Vd$YGN3;yHc(quilBc10SgHn=RyO_mh$508mAU!iV*=YM3Na9 zL0Tg_X#yifVEl~${CEYy{NdrS!R=yRG&Sg_+$t*Kd%R3B2`AtNPqw#lt=asOfZ7Cs zX4r#?`r8+YwWO)@ZMHCKCa_m8ZNu zwY2n#MbR*NjHZjEy%0$|z-Sl5mG^QD*OCboUi{Ma^DB#sZ}1-xnC5w8;Qbb00EXV0 Um;y56w*UYD07*qoM6N<$g0`6?9{>OV diff --git a/interface/ispconfig/interface/themes/default/icons/x16/notebook_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/notebook_pencil.png deleted file mode 100644 index d52db4a92211f3c8098ceefa20cbc83b18edb735..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 744 zcmVP)U%CCT1QdonBwdrgC&*Pg>iVcC;!Vj=ie1c3@^y-Yy}f?7Q+p{d2%KmXmKTiB$# z?e5;~{yM+gu3j-ZaM-zb=leaM`@81~f!SH`5Cq{4{kZY}cvq=Z;^lG~j4}O&Rns)% z&xX;Vp=oMBESX1hivt=p8I9}lIF{Ge9`ad~F+*hGZbmXP)5w5mP*znaih@$91X-3L zNfMq64^LBHAL-f+11lF+Lr82Ezz32Z>2yV(&aZjy@9*PPFo?@8*YxDf%p>Zb_-jCu zjA(DEL751WTQXXkY^ab@rRy@0)w_FjL%ZFMFQQmHBv8!+TSo*NJBo?mh=eg2q~Yg) zE+Vq3M+8FK1t%&rExFAJ&Qyi$7>UhhgSxB=_ot>{i^a%*4$3e{?i5V~rGF4GouD}q z@ixX{3%kIi*#K=#PW{y-wu@->R0)7%B$;d$dznl}YalSVIyUCADrN%FL?E6dkaHgq z{wiU7Zf@|V&o^<8v87`MK95sxPSB%xJ$Ah|mMNF{fW+=IJh;_`o*Peto3i}kE)Y3E zK=X8hlqergF4E+m@d;e(@#FQI5H9-9CDl_`BHwArEPJUG6e=hMU!w!w28V9o^H5Fc zvV~C)Cw1}S;%9VUA4OJciMu;H@!su*H9S9$O9KNqTUTdErj7j&kfOSnOJFZLj^3+& zEW8b&sdEI%>24exytGJknBSI`^lm5R`R4xq5mt?aSYY(*>{IYDV^WkYJnv(vAIpq( zfzd87-pe&y%Qwo!zeHz8M~|hZrq=xJN-HblL${r)>%Z$m8~NIlabL^le-)z95S8ga a0t^6h3%FUq3R;N(00002(4~}KsUN@)8a31EiMWc75{*^5CU#hnoSlivMJQ9NVBntSes02k_l8x zpfye=^L0JJ)A&bvZ3L=p@JVQ!i}1A0-Ofzs&s2)d^bupWV7oN9oDcvyV8O1*>mm`eZ* zkpxCY;Md58pFs5ys3!?t?mxqKt%$$V+M@~W%3I4eh7GRA!lJlBk8&**5^HamI7wx< zgvF&>c>gIIS1&7KW=;@LKS5Ac^?v8)Kh{t>-VsGd_7Pauh9leCR9cV^s#T0dB0YlW zs1PYlB8c`znMe8S4yNu-i1nd$h{XrD7&gF1(c^MZcCj(sQ!l2sh^uK-L zToT3nx89w!gr6UG8-}bOP+5Ur3sX+brqfTE8x>V!)LkUag-DtKmU?%GMXE_AuaDKa zhHGUyg!tx9t#*7Vm0CONU)FEb9y(vND1JL7*TDKOzyJYTp&Kwd&ct9f)`Kf!9PF*5BUQWax5Nt@Zdo#J(LOt+hP+pNy#r8 zOq;mLZgw}j&U>2;Nfn2E%v)yW`#v-KR(PIHLl6YMY}*Di+Aouf;@|eMXIVMZvfwxl z*_}<=R?`;`bnhb_G|!G&%YF%mlLeHfFB+`6(=MPjQi% zWxi$cVCgQ!9GaX7V<2D{TtGSMKokWON(LvO2Mcp|I0<_{HIFcLevI!08uWmGHe6sX z9z>2rX5-_$f0pQxFyv3W1{zI^&qow{&~@DvF!}=dvc|taq1@%C+qN?xaU2~%KQKji zf)j}1-vqN)g7{JDU^*5U5O|&;XSWQTv|IvGfTn4#0HL@9l|Dg5AM`y;GVT|Mpg#l3 zt5zym?n>#yi&-_@L{AFV!bbVz-W+yX|L@WrWPvCim+-Nr2tbo?ZumbxRCd-G1 otIsgCw07*qoM6N<$g4PT+ivR!s diff --git a/interface/ispconfig/interface/themes/default/icons/x16/notebooks_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/notebooks_arrow.png deleted file mode 100644 index f2104eabb2ebc053f5c811733d950ada85a699dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 787 zcmV+u1MK{XP)4VY-N})sx z2$V-+4K*=_2tj;@NDN`&Mv&;%wJu!g#=WlVZ^bz|a&g$ojlx=|A?0)dv668gaM zk`C>3W;)}!w+|&6PiAuOr5Cr~eng(XHAEd>Nf7?`ERYQuZLf3Ve z{`43~L?s7V{hi_Au|z5Zr?Y|!YZN>i3gK-aaD(NbH^|TI(Ix?d(FmrV+K@mekxFHe zT+1My+=VELxHmE~M*edY-NBBO2nGqqUBrjcXzW|vj$ubs;B7hpm(>a-pU1bkO-xKq z!sl|0J@Wf+QuqUtMvfBlLMV;q7V945xo83ht7~Dm*l@hF2P*l@W;42@QHc{Mg_;oz zi>v}fm$SS%te*^dpt~FI=jY+vXNJpZ<0M8B$mMcEK|oPBd56c2U}P7bLlry=3!DuX zkeLO(2XU$IEctZmoC3KlAj@1Jypn;zAYge_<^=S>*WSxX*!Q-wg1QaAsh(#nv7A7ljLB2Jxdz{GS6X~(fHx{)vuN`W9= zB#2Apx>@!opHhfy$&eKrcGl+sOAcKpTQL*#oY5_g(cc6OL=elMl@S1Cf|VI7dMty^XJ*PTe*o!(r@qyM-_juqz%(NX5DfccFGIiOFY+SW5heZ|y4U zz6&Rg*85s9e*aBC&!r!;?A3>dhHlXToe0>XQ)WF+U8E`KGzGr0n5wH2UpuFDy=wI3 z=Y7{+jn-Ws=YLgmmDk&Ea5$X!k7=T~m8}^#FVuP4saFpzcKh>6ql#Yw3;^1bqwYyZ R6@vf(002ovPDHLkV1oAFWJdr1 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/notebooks_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/notebooks_exclamation.png deleted file mode 100644 index 1fa38738cddeb7d2d0d3eb6da04c51b8fd2c10bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 808 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 D18PQH diff --git a/interface/ispconfig/interface/themes/default/icons/x16/paint_can_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/paint_can_arrow.png deleted file mode 100644 index effd7005d499999efacdb26f6345b2a437901a80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 814 zcmV+}1JV46P)F?Ci|M3aU2*s-vVD;3+Ef}fg+VkoiM;P zCYekcB9TZv8nB1~4IDI01EJu|McCipmt$#?uolhxwp6X5vd4cYqC{K zld_J2&IX^)M@>#nn(-?KiQ?`sep(UZ34^0Qux|s&Y_(d=q9{Tz7?jr+7X{?cGnQqq zVGG8r1{v}A__*2c_se3B$0P4~y*?0xd6=Db^{Z5>D~XstfNc#O8f3&{V`F9_B;WvH zdwUzmF}vL!Y>ft|(+PI_^5d z4=k&Ml>gfd9xaJ`qR5D&(I~wBrG$-05!7jEI4k`Hr7{;Hf`7UPuuG8rjmbZ!^tf-f7Ji{z;M1& diff --git a/interface/ispconfig/interface/themes/default/icons/x16/paint_can_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/paint_can_exclamation.png deleted file mode 100644 index e5fce1004072d9f1852675dbae3fdde8b0f47b7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 831 zcmV-F1Hk-=P)+|8$%C>%5;SqWj?Cec$t)=Q-!R=e#1lUXLuFE|p51@%#M>x7$4#i^Zn*I;fB6 zVH+QSBpW-E$<&d+U_2g2I2`T`g+kM0gGeNTLZLwY<>ydqYEXUlHYCYpa-RU%#EC>g z7l}k_NkB%>k-#^Ol&MiVZVtJY$%7`nQ;dRRu}doo+L97}6A zNLjbGwk9&0%?4TpCy&QFNJ|r;exJbZ1J$i#kxeF(!Q=5D7z_&bxj7qQ>7h&}yFew> zXBF5ckByBPd_JE*US3`n{<&Ohu-U$1YU)>aPEJlkJnHjPSpz!)+vJfKorcw)od~&K zf-VqFrxUErcKb4w#$jP$0TUD7@2|`cndqLn>7uW3+hpUL5koZa5l5<9k&0T05Tll< z(BIz=p3f&Jp;oIQlSz^EeVC-yvLFv60@-LZggm3*b2a3sKz?B<{43LtN>8A%@yZUl zs_Gcp+M4h3JZ}jE0xbEXoWtQjD!GXW2^17p;A+P!6cv|46#ER;>TR-CTZ#7eivl?$ zK5e5Z1p~*X>_(^d39pocOM5XqJdDJK14kZBXP_#QAr}7vO-UVM{)1g@u!hU-V~)fYqeUpdS9?gXy_9K#(O34 zO)swjysrgECGTEuIv3K8ngcF677;dB*VEqjQo=LZ=Sik!GfA&+ z(LooslFrcENIc@{IVhQcT#ohM&P-C5wW%$ zw&l**5B8(|I6d!i6Pr8mIfwJU&-ZzsUoT^~+o8#0t5hntB}w8A4-dBrg~CpwfuY|H z;@TpRW@<%IZlQyvVzCIBOvaT?r+07-7={6k<6z{`J1}$&!L>WjfRxMSGY)V~Q!15g z*=%+g9cU37Ita2X3lw9|4X9SDsx3=TX(XS|mtwKlu;1?&oKELU8WGwKHj9>}VVwp& z+v4#!v%bDA;8!(DB#xHwGl7hpad7$v^S05GeLkO%NF*SYN~!Dn`y%q=jaI9@k132a zbx;?3yFMY+byvvLaAXT}-RYajoF-c!1~6BYH3x44~Dv zKsotg3tLO=UX!{wm&^Sp&Ss0y($Ws&yA1y$;>oT`)R2_yXsD8!y)0?(Xh!?~T8aF*hTx zx#&NKv?3jZkO>?X_vYqTB^Zn-*mD<(CvmSE=|uE3`!>Xgv@`fRhv;gXJce}@^Bk(( r$^aJldo8ORa)cCWw)D{4KLG{+W~XuP?`MYa00000NkvXXu0mjf6*p*w diff --git a/interface/ispconfig/interface/themes/default/icons/x16/paint_can_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/paint_can_pencil.png deleted file mode 100644 index 25c85fdd646f25c09a8f1c229707804bb444b2a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 814 zcmV+}1JV46P)G zoI*NvXhl=3Y~UhP>_JPcE`c%hAxN?a3!^Y{vWLPRf}Y%)5Jc|{L6|rdQbDIv6OZs-2mM06LvT<-6l&-ZuE`JEr(I1aKr+QY*`ozLf!?d|Q&#$vJglL1OK z2lk0!kYu9;LAZ_vBk_0~LZOf`7!1zi8W2K2CX<2w!52^#)xpJv=O9TYlcx-DjZGvH z+Hg2rj|Nhd77ZK>!+@y#;;WEKrD!Z8?s8JmXf)w+x$12;o4Kc_=Z%;V#@1%bmJ!oB zE_Bwq-EJ~DIcdf>4f1#nM)1{&(w{Oo{(*IC#htBItJ&l6Kp+sH>&we_)V4_~mEOh@ z^jQru@c8(++3WRE*y(iAe=e6B?Dj>No7?P{%jGTcsMm*O4Idd~;IXkWvj~d%yRZN% zlL@%;a@g5%VrdMludl<@)au*cE2CEIQ$IGklgYpqi^Ysxr||CXE^P8n&~v}3P@)FEO!(38+4>5 z6|!jVafSjBCb{<^udtrNB_$=mam~*VoWT=Va`1%^OcaO%XT*sel62?=jl785z19A@ zYWV$!?edzBYDRvE!YWk}G&R+}z@6vtVl6G;$gg1oG17zmL z73Lid%h2@nn&5Eo0`6!;xD6QzRs=+Yb?uNz;x@< sw{j61{3|_c5!3-HmNv>2*Zv7G0NB8YU)ZqmO8@`>07*qoM6N<$f&-F^VgLXD diff --git a/interface/ispconfig/interface/themes/default/icons/x16/paint_can_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/paint_can_plus.png deleted file mode 100644 index 6aac490979255607bef2c1a5b042a2ee6e1f7d5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 795 zcmV+$1LXXPP) zvgyvgXdC-DJ@07~Q4jpiVek9=|L^nhj<1q`I zABUmZOD)UtSuz+&rBaB+Vgu1=be7h@aU3)n4VrGghVe)}Y8&rEmC0mw8PJ-LPN&WB zc)WoOM8Zr4Zl34CC_Z``xm-?(<=H7aNhA_!zu({Ba5${Jy}eIZMig7OSGGJ$Ydhp@ z4g><+#KeS^zDiIqxH&?f%S6*IgY7@4ZZkXCZns;5!5|`$h_dc-If<2*q9|UW5}Nij zD2Qz~n>7>)DPo_`r|kLt0XUs=n3-Ab*J`z`sYFPkvWB+|3gYqcaVrxtsDW5pTLT-j z$K#{Ycq}a~VRG{8)87lDcIs0X?3f=+jU(8FjnLKM}= zgg#BvXj$BIRYCmt`wO^Y-*B8O!vo!2+Dt*ME<#(|tu3+1bOK#n?T>Uiog*9$v*c@d zuh+{;fGf0!#`BF>POKSP{dK;jFWCD7<}YT_EP1$x>YVMBa)3E zm&&3~dWO;5n=NrgMLBwUuJ+L_bkL}so=6o~1`L&4B~)Ix(Ok~**~o05thGYv{OWs; zA}%d0MQ3O8Jv#X_F+cAqMojg8yn-MM3b-iNdlpvUnfnQ^|7Q`{f;1)Dsd|5wgYgMZ}j+FxRmNal?UZ0(-_ Z0|52_iphNnNfrPA002ovPDHLkV1lpGa|HkZ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/palette.png b/interface/ispconfig/interface/themes/default/icons/x16/palette.png deleted file mode 100644 index 5747acba3bb22a68fd6cc55f3f982f9f3d8d713f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 855 zcmV-d1E~CoP)QTWHjFFXsd;%W z*zILdS6Z9n;0{n+8aqM0&I?DJ^({44SIrtV9Oh+NMxebN0ly#4quUVIG|bG*!0YuO z5Rg%l+k{|A(rW)lPYtid_12Y*t&LfQ?#fUw$j4L_<`y@;N)l`b8(?;?fJOpVV+F>? z$53FdLAqfXvWwOgQEagok7KcUd1-N2Q6PvS1cL!fYh5r`ITLr&=+11Ilk&02aR`0k zTwL~*f&8%-W)E%@>I?W?CW|d6c}bdaxTkaE_1!C;kP-}8?1fgH)R`z_CdBxnZ!H`S z2TUdto_sg05T`@9{^07REJ~8ZN<_Ht?`S_)x^XMKogKcOH!oz@n)TVPs#+TpVg4{b z7}o|aKVwz!5Spp}+j$OWsNg#tC1siH*wTBCq=)7zCGSg#Tewb(r4OT{qu86~87rLc zc$+9A1w!O>2%LVRpvYBMy`_28{Ol}>%QsllP3aFAMsAK(I!$Vz92h_-~TY~}IOmyN_&$G_u;e+jjL9jB=*XHfI~AIi{c{szLzCa6UOA>l-#wCWO`5{Tfk{2leh+zE3N2n4a hgedpF&-u3i0{~dnO`#1VHGu#C002ovPDHLkV1i1}ff)b* diff --git a/interface/ispconfig/interface/themes/default/icons/x16/palette_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/palette_arrow.png deleted file mode 100644 index 05f720dcb3ebf26e0a92e256bb32cfece06d81ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 906 zcmV;519kj~P)_`Sr}dWTm*rZwjxqw zD1}xiaG>GZK`q|FTZ{%1F`0yzXf*m@)MVnrn9L6_8l#Cs=RuvxJj`UgC1x_g45L+1 zV}y_yBdM5z)J&5CQp#z2+H?GNhX-HuWp=X8+BtiFYwx|j#SFv1{~6LBeKG`^2=rmZ zj6ou*r+FQ*gJ8jbOEJPM;T0YEn9hysG?6|L6A7znVSSPA@|Dbax>KnX^7l4t`OQwm zlH329A(t=EUiU=WT&n_=^< zLWTtFIn9`wnn0D!4~zU2ialR@sJ2$pb(n0GjkSq*9HJyalx3{wRA6g&XWy2gH}hf3 zt-w0hVf>RQ!u}au&Epe3QnG18?j0}xG`R#{*8jqRgmF z7vg*&)C!l&1*_GH`|qu*q!|@I-MxN!IUSPATST}W9vt|-aqTt?4-JM!o<58yEgi*5 zd#8hoaDTWToI9ge{^VT<5PGQpI|PRBsNuU@b>1R=?cmEm&`{^vg2Ru3JP7?W9T4pf zOw4K6R~VS6o*#UkZ6g&zVg^KJoT&0B>(^}Ush|Jw0kuu5?G~%$9_LgtiPtd`Hg(mY zqP$2akqDW1iwncOjN!O1>(wuNj-1(<(lR+b;u5|8(!VVjn>S}8`YseQTx&X5YilKb zzV`6#f?z(w(}!u5t~<@pz7oCpW~;ftWLc84bg67m0IrD}So@|X7GLQ=p3=Z{GH;Uh zH+UV^(Pu#iTZ}Nz`?9t&=G{_-&3Q8TLO%U7elIy?59fN!8sy}(nqKg1@w-cvN<8kr zGn$%waWQKFA&(32NPh{Y{WnJH|1u2DroH_Kc;|SOb;80TK08FuE+p0D(Cc$oHOAQa gB_e+0|33;a0Q{3Z!&mi-m;e9(07*qoM6N<$f(tjT+5i9m diff --git a/interface/ispconfig/interface/themes/default/icons/x16/palette_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/palette_exclamation.png deleted file mode 100644 index e778052a4724695bfa78a50eae43e307f674065e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 940 zcmV;d15^BoP)rC zvvi!ZfJr~R7KJS6wJrD1Dzvu7!Fq)>}{|I+;ga=CoOCN?b z!+;~zLv}Z57r}~GS7}0u@PtC%p}1L<4DK~&20}kw>}*gwLe1;mp<=O!+9SbIZP1N$ zVW}W1kIdzA8Oh1Hp9}M`FX;azc7yCB;%8=O$MN2yUmmM_Aq`plel+y;;mP^Sd?}ab zW7!$AB>CZX2TPCSdAL950ZKJx4y4m2A}T@rThctEk$@rooZH#;(xTTsqB`OC^ZIAv|ALfa`;IA%;4k zkOPM?h*<0y+Ql%e{2Q=)-|`aI$Ehmn#I{~vKAVMs<6z)fOE)-kIp2IzvwKe$q`W=F3z0uNR zl`IZFhDUya+trB^o1;p@(ht8;6R&We|Ej=aV{jr=>DA_K0|$DtnJlY6amgF>HTmqm zQf-X-u!cw^g0D~8kj^L9`L@(7SH#^)22W)TUrhnTF)aV_U_~nzb4Fto9jJ<&o+($` zomxD352M#lVzux)YFrLfw`z{aLyh4!p0IUZ)@+v^Fh9P`UXg2fxTvaHa}&&+yF|&( z+pJaPHSF7e4vUY1Kpi8ja^@{%B{QHe3A-_YYJ&0gP5bsNbD=-nwo7a@+9(^CZ3mH& zFIVo8tC`ignb@eFflBym1OLdOL7>W@C8lpL&i{LQ=0B@U8=U!DfB^tb>QD_?^guZP O0000P9FoEa*n@2`;o^(Wn(EwicDv zu{70G48*3UV=|e{T+fYJxD*`t=DW<9^WA&CbFRP`!~Z(P~=P z5xWRh{0YSfQNl;s@+Ix77_^Z75;GAtQlPWY@c11+Yr2!kBy#$iw45e4V(N?<(ckB$ zQYkDvo4BP;hfdS~Gh!yWgc48XmUs@}=O?^{`SzR!ok#zuU+aL2606XuXImRnZl zgWKHzt=idZKsZQw`TPXsOf((!cJ;SAeeG+tL_!RQ!-xzIBQie^@3EaQbRE%X6yxIo zL?U6-m3AXmm$hboGSDvS1{hu&=%PJmC#ARX=y?z zG=~a%JFMoFD6UywL%Fq*VIa@Gs=hX%C@@J9OlC7ybogLz@uq9jsb>Dzv&yl_a~K~I zr5Fr0fc$Y+6;HRBx+=syHixSudwIU)^Tg=PtJ_xtaU~XaxT~Cu)VU~UF2wm#a2-4z z4{SCYo_w=aN(*sZe=u~Vh&IXMEh5~T9~nMh-?jteqa(qI*U!VgwHu0kEgdc{!u{cX zaPEiwJso}dlbq$65*z((e%;Gk#?jT@a-oAn{*q^hRPY;`KQyCbL+$T!Bw#JgM= z-U0z9{AsUl?mcp@C#mTcKH?HLl`wVrK9=MVz`&Bf6jfb{C7>D$OvU5$Bz}r8TpSf} zyalG<)VuGFGH;P3J7*akSyvW+#OEeuOW)=mb7rKoGO%778fp?UBh2T$pt)3N*jj-t z*=D#XkVD^?&Jfln*(xK7LL-G=%s`4_jB3}v0%Kf2%qT7+SpM-6Y6O*#6#n-*{}x~X Xsg*#sPGnt700000NkvXXu0mjf^U#Fo diff --git a/interface/ispconfig/interface/themes/default/icons/x16/palette_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/palette_pencil.png deleted file mode 100644 index aba2912d024cf728acf450218ee5f6a7a2b53d06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 922 zcmV;L17-Y)P)7-TZ*$gd@9Cz$b1C`O19#;N2m)lF#R$Vqmd%ENUBPk)i~cUfDW%Y}l528{RI z)vL*rKAafME-Q1v;i!kY*4m+g9j3fI(Lp(vbjO_AIz3jGXM>tbNz>EQhztxMGBpL~ z@mr|SXI5LnsRGoO+$`lbzMy=k$_H?q0{S8xWxravvcun z8G5rg7DG8cuk6N)lnvJ=>p}BzRILhprrTB_?aME+7aMc)vL^gbLnC)?c$0}(vdB?o z<-{&Xg%w1?UYgv9jcEm*o8M#5=w74q*d-<4e^xr?9e6hx8282IQon}ZhTI#rv^xC5 zPbT~OZocM}U1%#eYedrbLPFF(i0%d(qQ6~G#1_1S4%+{2iQx<_d~aoKeSv5@_=h*h zle101F<(#!VKx;)ojQ!3D`)Z5&_J9yXYVhrkrE*@4jtnsDym&uH}C9N7grS2G_+XF z`Q``0MiT*qXNGX$n;m^J2Ci;E+hle8=qPtWQ3L(BY0)kNx2uUx+cZXOHkH6v?z w7}$UOt-O0LyOn3g(^b07*qoM6N<$f}FpvTL1t6 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/palette_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/palette_plus.png deleted file mode 100644 index 2742de01d07069c414d3c36e1103e62313c21f0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 909 zcmV;819JR{P);NG z6XH0wn~ytJXJSrk_PoSp>CGHmzEf1p)+OgNnLDY*-;xY>*0-C_f>w0Ha3K zl%guC4W*STH*H#yf+Z(TC-&GL&phrkS+GECc+#2kX5QR$-#hm{fiZ^vGvse)6^Jwu z=^+pc0%W4CG>;R92p;^sq!Y@7Ta@w&<*nE>k^dnk5q8nSl+TVPdmas^8;u5>FOHke z@i6rILcL`D=4v*ZSp6Y?v3`5$P5OU9+z1X*;A^g6^!VsYZyoD+*q83qH2B8GaO=G< z6w|0FOO<(7U!R6>I017gaKwgioZ>q94*HoWosR99Nd>gjcC%I!i^U>JnG8zH%ZR;v z0JdeJTrMM*%c4{&BHo*Z9(Qb8{xzEtEt|~_P0vnu4<>gQx-K?N6W*C59ux`)o!AR+ zatkaH2(*o3Y3V*9-V{8_6Yvl39H!V2*|yQ)9T**{RVt8V8Iq!4^P~pvM67i-i_Xl4 z*U^t>qbG5*){AqC36MYGLI3UD(w>NTSnUY~+ufaQck)*ke){~wtWnX8p73CRkvbRU z%!N3=zxWiQ(I`|^#rF@@E%K^?^Iw1TK{q9F@DdTeTAs_iGrD^}a#!aT^FLoMYTKXo zYZH?pF2eocesG>Fox8+M%yLlud9fW-jkA$>!pFB=xSlOAe=UB=CAQgZ#h+ ztQSK#+u48Ly*PKRRYs8_Wr0Bw*sGCYZR(llk8E9ETf@lMu7F4Ne8ag>uOnao15?v! z_&49Ny9yuAlZjvQ4nwRg_`f(`w@_E^|`}Z>(kTi}@#*05+IT3E2x5 z%j*hT)n(y3-hEgxXuB%{CLYI()2+H)9iGS9Hf>TEHGr|cR(*Hnir_yuDzy)E3st)c z-$=hBI22az-B@V#xU|vlT|0V(#J&jjwkrtHf|I^6i=p_5<`}r=lYDhis16-X#BQ9= z-K29{xNFU~EFiRV0p8O8i8Ic8@NS&pj4My?ZeBT_o!@7ZU~JsDf5%Q)hsvJRFPDJ2 jeT^Ld48PmWzXTWnxiL()*MPQo00000NkvXXu0mjf!g{N4 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/paper_bag.png b/interface/ispconfig/interface/themes/default/icons/x16/paper_bag.png deleted file mode 100644 index f1fb0215fa952f4ae47be43b0d8b8ad7ad5e0726..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmV-V0}LAj#NACw zDfYo*zL|O7H}Acf5ntYFunFLRhL?DrH4SjaK*LN|Xn3`E^yytR9{-c6G8xoP_D|!v zo|t4$`kn{x;Q@i~!zT}d0Ks5ju}`C&6Rx+yH;KU4A7PC5n&;%JaGoQxf~*6RN8|{+JhpUy1KrOez$9bWlU!LRFb3vh?AtPqqK>Ncd`_O zY869jSS%u?oQiQ2#SkaWAWSnLF=JEB5kUwscYQ8h9}95|adb*b1yo3HfW1H+FH!^l zw8wrQnuLg>=1z?TOcY@}9K!4Mpt+P83r8dCYMO=mTLyYU0zW$)de_31z%FMnuX7`# z*%FRx2Jd%my-u^yz$3jzOXS8`=UbR!UN_XlQ3#vfhYJIJeP?j;4LICE$t87BD)Glk z2rM8aWx#Vjk(&H#WJ({u1ND1jQ&}LedeuRD@cHcWIbX5WMZ12FO@4eVnkO&XpZR~r dpUC?yzyO?+yqW5BnAQLQ002ovPDHLkV1nEn3kCoH diff --git a/interface/ispconfig/interface/themes/default/icons/x16/paper_bag_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/paper_bag_arrow.png deleted file mode 100644 index 9a8be3784f95c41dafa6e40d4dfe7d2a5c70b07d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 707 zcmV;!0zCbRP)YyuKoXhX7ooC5``!RR&~vA%k^xXc?Tm z`Q%2c+59U~ayYO!bNQb2EVo(rov798s8=e`H4Pf2uItcM)vPsI&1b5M-;Jp*!P1&x z)sw5a93)9HQz7{zjoDghFVLVHSxfiXAfEMLmSE6&SVxB4eghHvt4e*z@^Z z^!Ydu?;(tAgKPrHpgX|ROOE@8o^2;DjbZ_Q*707KO*e;jpUJK?Ccs{OAVObCJEtJ;s5F%lm zKA(v^dYZq^$Pel3HgKX}01;huL+%%QTEDh!vOc^3!KiqDrLlL^+qBez^0XQu|SOuDyM@z=wG#edeF}k8qyN p-ewTSpl)TGuWrrLR{f6v0|4R$>z22QOXC0l002ovPDHLkV1jwYN3Z|@ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/paper_bag_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/paper_bag_exclamation.png deleted file mode 100644 index cb734d0b49445931045540d0fb2520ed261150a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 725 zcmV;`0xJE9P)QhNa*_Sg$HsynM5Fj+VLRlcwkZ2{=q@)?(9S#v$$C1 zttByPKs9aIJm{FH${B+`LM8*B42ww^V{oy8U4Ip}IzbB1R=}F1pamimk<=uu-5{yb z3rPYcKttKU;N%U|{56COdR)f>y0xG-X%D#6nG=CDD+Y`r%|Waz{qHtWtUp?Kb@1TiPbni)W5ZoZ_FaP(qPBet)$J$I zT(-|SQv6oEF1KNdU_~eMkFj_cw<(db1pV>XzXTWn=7|Cg-XA-O00000NkvXX Hu0mjf-Z4xl diff --git a/interface/ispconfig/interface/themes/default/icons/x16/paper_bag_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/paper_bag_minus.png deleted file mode 100644 index de3213da0eff22b2ce29ad1e3a22971fadf64c2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 621 zcmV-z0+RiSP)rpVB{*x&(8MJq{ zU&PNcRLM8)Iu4xEQ+Tcmm*9CGyt6YCyR@5UiVqI`%|zh+7e9_Sy3Hnp5C&38SeAu+ zp@3{Qi%PkSYm1AhE-b+7w7(?+OBEi+z1yp+jUhS65HXj}8=?^;v3M_5D!5VRy+q)8 znZ@ysrFtDqDOk2WPn?PETn>R!BJDw#_Mk{rYs4#qT%hNv57An<*^hpo-K zvxcq^8n0U|$j>JVJ0F0DYbe=do0UqY62EAq77!~nylTIVE*-ra_K$yuW9)w=2RipE zp?1H4C-o|BUFIqt4sg)i!*e}+S|Cp-nw$B5OJ5@Aj{pMzNM^@eo7+l)00000NkvXX Hu0mjf4<`tP diff --git a/interface/ispconfig/interface/themes/default/icons/x16/paper_bag_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/paper_bag_pencil.png deleted file mode 100644 index 3a9b7b912ef8e6cfd6d9d29c023cb7c1dd8dcfc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 742 zcmVU zCZ^Ri7Y`mR_TWKk4uS_odQ%Yu#Y@kOnksD5W4(4+TX%C?bMXs-U3s&?*E& zf7Jfaq%TduYtJHGHydS+H_BIJOO&;5ZJPa#`3mX|X0dJzq^W61-ce z*6rT8(NQRhBA}`&G);p)5P;X~MJO0Vds`dAt*vloCx12)#6oi2UOdv%bF@Gec!=op z`vp-Xq-1q%ghJRKlouNbB0;HcFUR6>NQ^<#^*@PCw(j%6WlZ6Oz%-*CZ142Ipi`qA z9Vq7WB3Q1Ixm~-GOa~B0?s~&utun|iHL(VTd%P4B42Pjow><=|8rqx=jhzG8vj{NtDeY6ROH8vi2t&KYb3*#~KL69HcyN^hq8(InZlbxHmwMI{u$}$YSXV}@37#vbC}-eYJB9uTpd!@2w`?n#?0`Za^)^7!z_=B8=;q}aen zDt7n!p<-!)E&V7g7Wn>r9?NMHhxzdFG4vA*@iYIHrK@M87dZ3^LBw0po0pzE_0WsZTflk{FXGLEccFR^F;+05Sd0a0k)(!3 zmt=RdoAJ%Gn{7nY2akC>`@ZkJ`Q{CKdYwZW0~TmGj{mck0O~T}5PLhcoS0vHaLXSK z|BBQj5v(m=y%T)%kr@Be29^b@+l4(CU_fr$Htc?1#RFQ^H^m#Dz4K#&XPaIS&$m`r zq3gPG&N-sdD9l6xu~-b5bQ;rBQ^@A?us^MR850yUS`cqls@1t3br2z7+%y$X5fWLj zCNmk#q_wRv!I3lz;_YIo1SSNchA{~|5F7D0d?EBugHfnKlByPFXYpfqS0!r!SjPKD z(x?Do#%*&y6j7IdVw8kz77hs(kZ78=M<%loe&3B$3P^ z3=csef$q@^NKcUBNfPjPyV-e+H^Xm8R+Hz-T@O}JH6ReakD=qh>h-|oQ4W~rx_E7U zMeV{xJn7s!^fG6_6_XwC5fSXP+ceiq9YMNAzQkVPt=Coq-}8GAu3#>wO@W5~eg`-^ z!$3q=BDtd{dsJOcn-tNZZXCzOU9XA5mnuk1BeoP!@%(B(f|JpEQB;-0XBaa7>fQeFx&*PD_Ka;$ngLFf3+9~2jjgaCV`BX zF1@I0|5*MDq64NQr2-?w|u%Ny6u+yH65 z`v|v2xB=gOGBE!A$Cy&kw7<4E!*t>IUktat|7UDFeC|J9jd0MG%GmSl>azbiL5#~B z4H;vBLgJv@2E-yjEC|H>K+FqDtU$~G#B5NnGXpU=IsMP@XI#DMD8uq+Z~os0^8Z3H nFw-&ohSJFF-$-iy0t6TURoMiBFYML300000NkvXXu0mjfgW=@| diff --git a/interface/ispconfig/interface/themes/default/icons/x16/pencil_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/pencil_arrow.png deleted file mode 100644 index 8430ca5ba26b9d8b9637c796a9c1e9054da3f89f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 671 zcmV;Q0$}}#P)QDScx7+yX4|DS<{0SiFZhy~dEVPGiw$G~tC$gX4|K_kQe|Nqru z92|`InwSJKUb^(^{?46y!3M~SGcatJ!N`CQfHZ&n_|bFEo;?%RtzUobUw8NW-wX_U z7?;*S6mZKh;?d0D@bf1_g}zyU`}1dyK6uAon_2whM}-Pdf{B3ufN2g0FL(d<_y4O4 zXU<-fllWb6jS*rY6S11_-nsE==hh9^|NdogP>}uySHnW8=3Anr3_lW!89qjQXXyL< z8M^_vG#{5=&+v}hnt|aT!UaskYCa~rmf;PD#mxWz{+$8FNDNj3uxWnIZ04{`^eV&S zKROJ*e*7?w@(?!$(giR>Snz3n#%SWOlWW#Y#=n1!{{o$H{o+N2Lz4d(BK(w$=PkWl z0CWul15+ZKP8>b=^2W6@H$cwb$TW$8QP=;Ow~d_StIUktat|7UDFeC|KPE2&cqJYQ8ePdIkP z7^La**RKpZPR7Pkx=IX7CT=^+$iy^(p)HlM=h@X||8s&EmpK|T#sbxegK`@XivY18 z5c2~uFDS9{MlU_5bMXIv-k4=)xm|1HfMSfyd(ScK{Q7j=>J3L2R$jjMAC$v@j$_~i zVs;>A17cQaSTX(MSJHob@!|j9PcKaQd9Z64DChtJ3;-ZPJhCASdo2I}002ovPDHLk FV1l5tJC6VW diff --git a/interface/ispconfig/interface/themes/default/icons/x16/pencil_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/pencil_exclamation.png deleted file mode 100644 index 5a77c7a6b9665ed02fa060d0129bf58a87dab41f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 701 zcmV;u0z&rSRFXDPX| zE&r}2ln-i2W?t#f2(8vbSWqBnKqkkJL7r!33 zKfAwzKJ!w2j+xzF>eH-6?0e`LEyxp|?bv&(l1QlLbseYL_qRc!&)!o;&UE7et4^1e zWylh(vVudB45-wsCbn*;gNjV{%H0g!++1N%$Fc;0^S41FacT;Q$;qfn-LR_& z@;8IaY@X>R&Cy#xfRIw~W%*_Ew5>6V7I|~D| z&(Zs!71PlXXg3-Q)%jQqBz%v8WQ7`=uk>ARX)5cC{J>a*(N&X)?@>be`t;0Vtox9W z#6qa4bz*#|1kh8)oK9an|214Lgd^mvZ|-Wj&{)TF4u diff --git a/interface/ispconfig/interface/themes/default/icons/x16/pencil_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/pencil_minus.png deleted file mode 100644 index 685264b7bbb7afdc53740c3c3b5ef2e64bb01fc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 555 zcmV+`0@VG9P) z1|uB^d*RLiFg<0%1`s9ohJoSLqyPUISQxN?2p>iuX21n({xC2U{bOLb31nBYkf4#_ z|NsALF%AyKdreFN882OWb${p1y(;No_OHA9 z{ci?_J&a3hAPTr;81ZOkaQOL?p+es*!2S8NM<2Xnugxs}@uNZoD8a-)0KhZ{gqOSj z`}_aZg)?U_%1QjLxW)*vkcn8$ckkSIwR7u+>wo_;I4DT}gR5a8Rr7ynZ0i6S>_D1@ zRLug%7#Na|L0s?`n*q2q^B;w1Mh7g!Xck++z`*$!yH{BVX%+@*W_`>s6X;xH4A(L+ zoMrj`6KD!EgWS7EJhp);k?#9;?|FIS+L;?5%}kFN7=8h5{sq(=9~XyVz`{j~7+Ajj zWMKUJk1?g7X@6~ThUvoZzZhvAtu{i%MLt83i&$Fw` z{^tZSE^{PaCHH28s}J@^3@JVf-+L$L=V=%t5V>cNAD=Ga3EDx`~`uy)fN^q53b zHAd-Lh}dF?A3JH8gRt|UQ>Kc`VSDC^X~J3fSl;*>1DIC#d%dt*af;e0A-9} zB@=MDTt230+O7E1RL&Y5{agh!HgUb4(7K(i03%=+i24tNLyHTAFDLqQv7zPV=q`HU zz$*3&4xhOivP@olmP%(kw^pM$RzJ|OR#>0Q7u5&KE7L?^=QitiPSa0l20!w(V%oRC zPQa4Yc#X~AvE3V?x4S6ePp)IlaJLt_#}y+uMQO2y1)9QL?a*7O*(#SKM=r?1!>G3* ztqSk(Kwl@tP$Q_uQ8vqfVGl7y-K3?8K~csk=!-&Z;6QrU+h1f00000NkvXXu0mjfSw$`LMn_X3TABzVeq(i&C>DOwXzos3==K?{X0OC3xHvya*3DMMX|m<;57q7BVHF^ zYG$zi_U)T)$Nv3I?#jyjk^leiAld-1=C2H8Yv<^DX=`iOefaTXV;BR&C87cmrrF)U z!fW1)j{VvS&yM{4`}Y!2v4F1m%a{Lc|Nb%TCn_5M{bx|aqInO|(fIlUV^nV04X}jLSh{Hd4XaB00ImEV1{qC!K`$Z00000NkvXX Hu0mjfsr82X diff --git a/interface/ispconfig/interface/themes/default/icons/x16/photo_album.png b/interface/ispconfig/interface/themes/default/icons/x16/photo_album.png deleted file mode 100644 index 3b6d55932f5ced7c31beeb4377beb857d4648b15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 739 zcmV<90v!E`P)0fA4N*3k?7W$s@B6%cGn^=jLjWT8&RG|+_cKFwojGg6lc-j! z5Lxk~sj1ttBtem7_!Px6O;zEmtAj$mLiz52fpJzGi^ZUCD~h&lM<&O{a3%N!WeRNk zXZzu`nZb?ABjcv7dof19N25`6>kX(>Dqdn$4Wr1(-dYd@WR!!Ua&y-pvAZ!k!gp7| zaU7VYiDWYA6|9E^+_;-S^)G^cpp{-@%;(7NOiT=U0?as$LuY5F`*BLrVNq-#!J|e2!;-Iv(#WMkc{sWj9dOMOrlPi$r{g_@@z%lhbqAjNo@cCfcK)s?O z5^9D?;>BW-a|JBR0<*Fhz_pvBHP}5J9iGpyAHIBx@O};TY8`$WMlFF&stkMnNwZhN z@!Kw`cEwkaE2&6sYBYxbp_ZURA|}1(W*3pq`Ek5ULQlVrqwOvD_IVu|TiIP*c;ph? z9K(*ZwPAjG8k>uYu7I@D2li$TBUgKO6|))Xc>0T2pH^YUyz;bld-(lEdQt?{h@+Ua&0!ztlxeKFaUv_ VAkeGPf}{Wd002ovPDHLkV1iKaQPThb diff --git a/interface/ispconfig/interface/themes/default/icons/x16/photo_album__arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/photo_album__arrow.png deleted file mode 100644 index 0b58fd3fc9c2a76876eadd0a0782e21d35a5e481..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 784 zcmV+r1MmEaP)++f0yu5^ia05( z{^#?pi{nkJC)>MJNiu4bfc1Dh@JTsHBofBNg6M?8n2dLh>&aiB&K>k4PkvNsu5SDj6pyzGG!M7v&WKs{9g)OA7I0dI>YKg4!cHaHId@?A5^Q zH*29#m`%+cRzt+r@VU~_l&er0pYg~wCFP0&(>tvcfsmM z&r_#Pv$P^7+;t~}0=uSQ z`lht`sXNN6YyI?SUy$$~H(_?OyZouL*%_9+k<{#1pEhy-9`)NV0R{l^C@EV|Swcks O0000CSl`GjSm@HxTZs51*iQ4SN(E>N@=FU!%?sK8N@h2*e9V^kP= z8AO4H&+COKO@ZNCkVqt0_8>uqh-kzwd|bik6Ad%38N_y7NTo9<@zkNMeH<=_JM(6$ zD^z{u^1bCqBuWMNKLol-(A=CtFt`DWxQdm9S)>&LY9ui+F@dbQE(Co}W4L4X!}Z{o zF@A3vO@g$l5;Pw5ccOcDki+`?UD#y{zWoSc@_8?|)DQ%xyHbxWw>Ae?W~hL$KL^Io zZS>!~nD2nIL_u}U4rJK}k&WZ(wFihSo+Z6xN_V8fs$@c`<;ge}(PEZd$2k{wX!Z?v z6#kRNu(BKU7$jqTP-0KbJ$ISiw-i%4=tRCEcDhl-+TTA<%?%uLcwyULlcuM|BCL^t i&2cPrQNa6O0t^5xx-}LI%2;mz00000 zVlCC!T1yN?^w5fx*i&<;_Tr(S;HlOg#ES=S)q4+mkpv{z9+aL$1gnS_MHC6eLQSy7 zO106_68o{H+1>2M_tv-?6uU6&yqTT<`^~<24A1i;03z3qRr;{~lOcAVIxC}7s8*}s zY4M%u>C2)ZKoUi`CCM?5EW_<`K_b3H@?AqiDOwzl$Dz~|dDAo_Q^_Pw2R=X}f%X4v zKf00`ULPDw>5AgSC;=OdM$x7CU>Jsz_$r4`Vnk=naU2$;T|q6}IZW8?7-`{)Enry| zbX`X_n{^6SLmVz#O{4k;K>}zcuO#&uVpk?7M;rla48x$Kqr?6;Aq4`d25TM0v!1dpr$Hq$Z}1#z%tu_*ZDm5$}bUZJ_Ntp4c!F1l8i_& z44sIVN+re?s8lMTrtyB9yEtBl-QC{q_!Rr*ljjKS^uQ~-@Lg5w2~46&vESYgJ0%QT zbBSu_Kmo$o1kLv zGB8jg;gWqS`I#jwTr;pft7B2=!I}B_!?LQj)Vj*>wP~~o%9=*dcpSg9TsMKwQoR`L zi~U^0Vzk&6xIHmpPonT^4$RFW#?GGjYlMAk1k>s5%Ekm@pp`iiheMLT*Oj<_=2XWc3iWmv( z{$u&hfTwNuV$YClHmfm8z&acbIL$eT$Kz_^yUv0zBdGrz$6-x8Vu}^o+X%Z7BU|t* z0;yCAvMj^v^{NHi77jP>4I_Pkpb;n`!yxq;Vs}SII#dB_48y=?vni98G-f17tYw%* zK^71raHed)pa)JL1M00QL?aQF3UK5cKyA-l1}}G55!hmLF}t#YQr&wvimH*P*F#PM z*`f|sQz2v`9u9{YMIez#fLe^t!}VLe8Q68@<*HAyUE}Xiys-p4d4ys?uw@V=i7Lfj zd|s%QFzmidRP9aQ;15LcW^EN+RaGeM>$|`nB%rrI(O$kHXT=y{FyzB>v;@V@N)#B4 z2>9PZls==q`zl;y?nF(^>kNW85s}IGY0ihBl#2?x26c^Q94#w?Z{aI`%s)hTa~15h zwPO*jc0n{6KTrYw4?#j9Xle?Ra9FvOmAOqwe$p2kQ8Zp^#(>N9rSeep!Bp`01VZB4EQP?ZiaOFlj2KpXj#v^Rc^3KVSF9>OQ`By8GcFdv0EX(4giOcAHDZP!>u4z2I zUxzZb6rTBy>+90kBuQD6JrY2AwPVC8&kNZ6`|-GCoVZrc?1a`42nW)koivtb;^-x* gBz@7e-+l@(03U=p)io`%mH+?%07*qoM6N<$g7k=Qc>n+a diff --git a/interface/ispconfig/interface/themes/default/icons/x16/photo_album__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/photo_album__plus.png deleted file mode 100644 index d1fb19656ce6661478b5c106af45798ce550befc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 762 zcmVqsV(PD47#;rxv_ihmIF0U(3~N0b!uwF5um{^3|d-R?2kVRGE7n%jI;20 z0FA%}Dgmz>=-Lk)4HuB#-e#!)NA>|U6uAjWZjUXHVyp3bc^UhpSw!j%p~mfoZUL2| zgm9o1IuTb@m9Yg((*zBTufe&CH_Na)nwy=RV&8i93PHaIl~M)1D@r+mMN}#F;{95u zg<(r6QEeSqMJx#dBI-JOWvy}kDG`og#% z2q`MS|0XbPf`I{*lvVpwmgm-RZN-JTYynlfYml|FusCgF{mlGnvaAGOa-&U<*EAcg zdn{Gvz@>+M2p#|FzOfSA%nrWAU#Pf4^Lb75_# syZo+~4{p>mIi#?N2gW7pw;uuw0BWowr1HZnv;Y7A07*qoM6N<$f)BS?vH$=8 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/photo_album_blue.png b/interface/ispconfig/interface/themes/default/icons/x16/photo_album_blue.png deleted file mode 100644 index 4e3f9ef42db4392ea9a12e4364c12093378b1214..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 738 zcmV<80v-K{P)e_3ap24Q^LxMV`@DI-CrFYs3?NkQzuk`Azd6z<>x^Cqpi-$o zV#!m}(^s6b48`e$TTyJOE*IQ2HBhLpP&_&~c!?$V_V(J2Qn_3X-5(nRjttRICuuux zUp#&0VxRYJFeq&qkiN9_-8U|AM) zT}M0~w-bD79``N}pzFq4)euEVIC&U4UUVbQ-Kn} z)q8+|8#vJc91B?}778LWaL|7MNM6-IY2zz5u*?iy+x$C8-BMNIxX`kE`;iv zpp$t%pBK1+X_^2@go*3tk5^&$barn27t)<)uh6(hg~wHc4Na>iC|hNYJ@>H5P7%a^ zU2^S;Eh1ZVA-=AnrA~*YY1ITK-2y{<{G<*2XEg+BEhqs$oPHm)g+(4a)L`N0z9Iz4 ziCivMO~4JP{VMd0NjN!@*;a+Eec&;M z9qQ=7+{_Ht(`jxXZ`Q#^!Nj?d8{3ju|&85$-M7-5<-xa(gABOjEQ|CD^!E9LvX+Zb}!bu^|kU%i(E5O6^_kr~>U&ddo=zqYF>io(3Y z@bM*vIEiO|7VvR`LmbCH_RTl1FnmaW&kZ*+9nSPb^%j4&K`s9MZ#)Yy0FCD4p?(JOBUy diff --git a/interface/ispconfig/interface/themes/default/icons/x16/piano_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/piano_arrow.png deleted file mode 100644 index 7ff46432f327db09e883e4788009db3b92482eb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 541 zcmV+&0^}Mh)&VLgVz5MbgQoY@(>=p89@iZb5 z6QigH-+aS2yl>tc-VjPD{3j&%XAp*6hVeh-W*9;;Tl~RbaLhDKAcTMb zkET+oCMT0g+DR9TdBVklw;6^3tt`;43&y;r0hV8>RQQ2l)H>;cg#qqlo6W`#TDe}Y zLnmGEXYNM@DBuI(je=2Y*JF1*Fc3O~bfK$R0mcJ!rP*wj{=_S>2fFh}IrmO27F_dd zybKj@5*E za~`Ga>;u)Kf$4C-{Tsl<%&>HIksHEs!xwS1_S71#)uVMbh<;+|00000NkvXXu0mjfK$!HQ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/piano_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/piano_exclamation.png deleted file mode 100644 index 84910e48028a8e36d04517f593d06e07967de6f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmV-Y0?i4!-WC;Q;rZ{K_Ky?Jk#VL}KT#|#|Pn8a&|$^X!LmV$QiLM50!!g&+tNvWr zc3vv(FTj(@q*@qf4dt5xSI+O_(!^uMKQXfwxyMeR~Fvp1i@W>3h=uh(zLF2Wi?#3;GfHpP@!>Z=zDE z!1p#FqCHrn>=aLQ+Q>H=jcTb>dMnw9v+Fk2ydMkvYA$#7_rW@UFjIhe(m`;z9|&(_ z_r)w*qU)BFIIU-j+x#rMe)rCqR~K{RR{L-p7e-gn{4%Lt!1u4;Rt|Q(=hR#%@vC3F zFvl=<84okr!QlbpCtya{+nR^BRaN<+;lXq3j`x%w^-2o&f$WgL_740H@0(2-YIZV< gy-(SI|3`oU09^U*IvK=J*8l(j07*qoM6N<$g212|YybcN diff --git a/interface/ispconfig/interface/themes/default/icons/x16/piano_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/piano_minus.png deleted file mode 100644 index 920b66e9e6d3928273ae3e110f25c92421c81d43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmV;f0a5;mP)FyaU1bqc9@(Krb2dOWhSR_JZAo3%Wg$$e>l(_klydGINUG$=_-}chbJulw6h#|`VaQcJ z5%Z|Z4xUz36?94J`$Wv!6u|b2qL3Rz^i)2P3gAjNO;c`k*)$EPeBwIyy8|@vg78El zdMckt9bkNjsyt0o{u^T6<+=?UPokMsilCTKLB{ZHoPp$X1?z~ z2_`BYFPBGG~&}A#|^;ks`t5z%Ug+?cwztkH+~5) Y0O6tS)V(RCwBA{Qv(y10{fofkMCt#Iu0d zm<+vVfjEr?NSG!iB^mtt_m6>*k&%Iki3yBBY#0D}6C@A9JA-yIc&ztem^W`8*!3U- zm@Zwq#K6kR%D~Rf&cMOJ0j614SilB>H2wblo8jlrpJ1%euE22V*CiD1U%q$m-hU$_ zqyNW`ABWR>_U!qOO&msp^ubJF2HE!O*DnTS8ivuuVKhizD#*(q2FUq8e*6GSz-W*d zHgOQmcH;)ad`3pOLbL3&j0_v6=dKOpy~gwUAy)lAASDh;{Qjtc>e$Xtn&Ya z2^0PU4Snec4MYx*O)x)W!(ZQ>V0imz9)ppQ0mFt32N?W3^*~X}ya^hO`=XNn7H>~%S`yd{|tY|HT(h$ plLZ9-AG-UPfnm;CR0RM51^_lO1Jq^RLe~HQ002ovPDHLkV1f>0`0oG! diff --git a/interface/ispconfig/interface/themes/default/icons/x16/piano_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/piano_plus.png deleted file mode 100644 index 165ac457f092d6e7c99f59f4e9e27c3a6081358e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 504 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 Ef@;Y&c>n+a diff --git a/interface/ispconfig/interface/themes/default/icons/x16/picture_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/picture_plus.png deleted file mode 100644 index da43cca6a1af2ce5b6d65d95f0969b4fb19159a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 zcmV-<0*3vGP)ICG0(pSzK#%srKHze? zjbfexDx-i#=M&jAnJ>6ZBr?V%PLBC-Efblviarg8YrsYT{0`|7`rSv}q!0^|e8~;N zM1iJhSn#f)Ff@Yd@mb_88)+&KP?DImp(RDEl!!IS5nQQ21iG%HzFf!3+6tQMpHUi} zfSWsn1Ga;V!I9QYxVA+KaxzzNq=Ft*Q4~cguzKf^?i%>|*B-F76{ESij8m0ksJGus zP7rP@*eUS(?#y3Dc4=`A&)W^S)PE=HKnY`98Tkn9G%vEBelmsIXAXjME)`goC41bl zmxWI_Qk|0PR@j1Fb_iv7_g94ud T<)x)l00000NkvXXu0mjfdAKNx diff --git a/interface/ispconfig/interface/themes/default/icons/x16/picture_small.png b/interface/ispconfig/interface/themes/default/icons/x16/picture_small.png deleted file mode 100644 index 75a8a0b047f4d3522ceee9ddb96cc132720107ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332 zcmV-S0ki&zP)V~`b-X86w_#h@+34wlDnz%PgaGW`Awzkdib zJb5e1z|14U@c%0xgOTK4usmJ^zW;=T!O=>4M0xUS=JlKZ$5V{!S eXkK6d2rvL7k3voGr2p3d0000jA}L5y{nqwh|OJG9Z?FVp9}F+EYIHdo*K>v)S;z$%2e0mOHd@F3oWbL?fQ?{Vy;S zVo+2?_<-;D0`gn&#JX-nfvT$5-iaX=XINY?(bMCD30Tu3Fb0RfxB{zEf&FaCSYn8k z3g|=AG+bZa;QmfW?or3c2**I2V|a7`sl+(A+Ko3yg;&3XE@Fw13LKY|GMROK-4eR3 zR_S6&ymyAm=@GaF++O&oz66M;RLKy_>n`;skTsRd{*T_NU4TtL5a-poNbnjUEnrYlDP^;C z=1u==l*g1~nh?<*^wPU%lNSZRWSu_e4*>=MNw%3=f^+Jq00000NkvXXu0mjfA${7L diff --git a/interface/ispconfig/interface/themes/default/icons/x16/pictures.png b/interface/ispconfig/interface/themes/default/icons/x16/pictures.png deleted file mode 100644 index 25765340ec0c9d789623fd167e077354fb8a4bf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 609 zcmV-n0-pVeP)DAV<3A_5IPrh=@fJpg6g;liihZsV9sWkSx|wn%CzcA z<~lmNv(tMs{tJp(=)vQA-}m18&HMen`6SQt@INM|($e95=KTu#YHhyIh-YHC1T6j9 zKkMu1A24j&4sDJ`qsWdvg*d4L7J=-PgG4TugE90x6u^9#M#Uuxypf1Sgrco&S|btP z2ggq#rU8mfPWgHjI35EoC4qB#-mfWF0)PyU&V}`LXkPvP5pVAI;PS=>^g10{M1xEK zZWaET=)ME>YX1SiJL~VfTmQlP^{Y|zcHM=dC~z2nd6=e&w&53{yk{QVMyVo0(=?(j z`ML=ngN;Wj&KQ3*NOEw+Ue&{~Hq(!fh@h7LALlTDs;ZcnJdO5?J4hxS$TVW?M8YpD zS(cw?D}4KeC%s9eQYmZ_YvJqy@L2P6izrw+TFwh3nglvh4fJ&h#V;1lP@ZjN)!zD? z%P)*iWF9VQ^kcD#v)2LuPr}!%jhh^1r`>holn*pW z5C04m(ygF;s|m|5mv-L*^N7decyzrnwAnBWpZ8IUZ!`d7Yb5kYyYl$MoO`9#2gJM= vir&5bn_~LpadNqaet!Gw`84`pKVX=&Q2#WF_N(AA;@-2$!K?NIFp=3g%Mpvk5IBClpg{C=5LtsE@B?8K zHnyAj!B(41*wMSI;7|dHGGl&C0Xz<1lOI^4$3@Is))MI8rSm|o2vrmBhtYqc8Jm+y z=tVkIn+nPVj2y)3ZQKiGYulp0vqXOG>OXKl>GeoG+KdSWwYV%dhMh$)scV&(IbSt_6?3hsq{*jO_Qzdr-YN_3QYMPMqC z5dH@hhcSvW47VRbL$QQuMol>frB+!ZFGkUGYYKgR241};pe1flXDKGXL-^ye4^8{F zW6&L(IrG%>VZ}=6vCKIZ1nTN|BdunB`AqOU9LJ4s$ME)R3rfbu@b2XZ`UibzIZ&%z zR^7?&O#2WyvKo%u03e*j2aNk# Qe*gdg07*qoM6N<$f=7uxn*aa+ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/pictures_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/pictures_exclamation.png deleted file mode 100644 index d4b685fcc6ac1609c157fcb8e6214385a1a0811c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 713 zcmV;)0yh1LP)>K+BQ$aY{00$75RqcJJ`sz>;5j+As=)J0epIRifxa+= zLPJK2KS;09sIC8@6OsUMENNukparZF;FW<^F|MvDSLy--)H+>g&|zEh!)rV~>%;C$ z2BJ=cpb@|lfvN(vw;ebHZD;Qvfk@)--0lD1el$LUgZuixaU4oifO4#byOh3zc=RGf zml1*>5Nt-xji)x2xW7j|4VxIYUgDaffN$=?_WkEkzCQ?_tAgI2(sBW@CKl0bJi4YD3)YL3CnaGW?%pc7kA zE6*Vq3}X1)F>LLSKYgvv44t`Ly~k4yYLjC4Pc5v7u7>x~<5;(z$LxFrZaAxy@4!T9PY0Hki$3h@z;vp_wSUG^Exv412af%PyeDH-zaa612ov(mJU< zpUHW7!tvzlaQN4W$%ga04m0vz*JhKRP4Lht$fr&tm%6LY*&L>px2aqotrNMhFq6iv vto_Xk7$n_}hToS%gRCwB?lTT<9K@`Tn-JSiDZakza zMr$!QqoxfdY85>c4;8VuLZH%{;8Bns>dAW#QuI>rW+@1sMD);-g9uirHWsSXKPU<@ zENPlxY_i!+cGr26R4Y_lap5sDJ8!=Ees5-^APDe3AA6pbHjl?%tzu-Si~IKC9?MsO zuitWz>(so*LZqk2&XF*n1%^m z)gf~M&xdHE7cM~?82u&i!rGcU`3LSNk7qD^{xTFrflC6!@h{xfrVL%zIkqI~#>mD7 zcj;y7w*`{iI^w_&(0P1Ozt#azhTVt9X4Bvvg;%u`&@~P6f6@xy$sPVhW_|&zPp6dI}3;SJaMlU?b_RHZe?~Z zhh&d3&xm6~U~rHM*(&B*LBdid2angNG*w65K8N-E2OKR!N;*&pPFnCnj5x?9*-Kyl zwq@}iO!i|SaSTW##9{F0rOw^y=>{VXvNm}!ibx~^(=>$}V)lI>j^iL-{fwIrmthzN z%4?OH+Q5o>fzAok2t=pOQUd6wkqvImkr_8@!@UC{Ztq=;ou!!)Gcklq|?U&C2 f^)qdO9|8;j>$=3BG=$a800000NkvXXu0mjfWs)UV diff --git a/interface/ispconfig/interface/themes/default/icons/x16/pictures_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/pictures_pencil.png deleted file mode 100644 index 1edf5320c1344f67e7eea9217fbc68c871b0a428..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 706 zcmV;z0zLhSP);pYL#l5d6<0zHx9r?+5*JaQ-E5PGq72jF4kmoC4fOjofYb;ux0-1XFNY`$BuX$ zQk4XaN&}t(7OBRy?L3N9_SR?QS_(LJIcMl-oI%BE;sMTtWcs8JQ+cM1N z40uXWUuOinXo@Ts^QyH9CW1@o>+Qwat`;adGAlA2JkLX;(I7ZBg@`Pnd8-Ixy@BTr`(kLHjd zSFy+0kL%}L%DRpGz{soo+h^~vAZ924qse4APJa7saEp-_nDAeO)oQ`rYd0_#AmLht zJgoc+NqQi&WT?vsgTVkvl8S7Y<}68qm?qJA;0SJC8bZCQ3G7Y-w z3Rgaj<#(-Q+om?oblLr-?)1N`#D)=tLVt@( zv?_{gCvI&(Py-}RM*e^btO)|WaiB||b7LA!Phd=xE&>BSbQj;v;@+7->|R)a?$e(}&;&yr?cI`9~kJrJe#NfK98(1wAT>q8L z^T@LjuAPtJth5E+h?)xy&b_jp=ieiBqk>Gv!pm0-JQN0B6+x*C*ZV(Yml6IW)A1iCw{QUEoYDuwkxW)Sa0 v0}F$Uw;hDz>N(=wPRTQrd<-!S-vt-|P0Ys?mvF2D00000NkvXXu0mjf0`4L@ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/pill.png b/interface/ispconfig/interface/themes/default/icons/x16/pill.png deleted file mode 100644 index d75a26d9ebcb157de5b0411c13d97b9e1997d1a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 603 zcmV-h0;K(kP)BDo=T)qpl;rIIyi^WzHMfoO4l6*G<8xACs%Vs?82xqg|pX6K~2u$6u zM2a%Fd31#9QVC^I912ra4m+I7q^SkWGy(BNGWo6pm-2aNstWh&sw2$Ch|#t&VQuYI zQ<4T?56|P7AmBI{{FV&XXNbfr>hL*+`PQZSRrgjtpa*(So`kTgG}58-~B&E_IW(wI)C<36A7X)2X^ zg?nMiUn10Ef>~wM9~1@9xSIv zofKu?4d*i%kdq{|dcAeHeDKAk;bVHYqS`Z#ZlN1;U2dw_TaGRUFV(Qld-9npM~U_ zo7mcTE*eNthfvC$=0gd)#P8^Ueaem9e~JLX&H6^fmKA;qFaVhzWlu|0+k5~3002ov JPDHLkV1fmeNV5O{ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/pill_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/pill_exclamation.png deleted file mode 100644 index 40fa6f46565a3941bff2a50efa4679ba49355a8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 750 zcmVHr|rBtoZC=6BAy_sn4o!@&Oxj$s(Ik*?CB?Z@V;!NH=B zD9Bz_Ra^4;dh*eqJkNU)iG(;hI{F|UkB^XT zp8ZRP%@n28=kwhoxGs~)SZQ6?-rnxd<#J7w4Y+@SDP<6hR4N5Yl2B4o;-T50>-v@s zwuH?)lVw?q#bRrwjrqeJoFQGP(e<9qusNJgCjx=MB~cV#(lWaF4%Xq?P^d=_28&=r zdIm0i9fNnf9xf~_Op^1c8Q|v;jPI~-S15E=3x|e#0V z=czV%c7tPedK7?04ex0em4yu-o+RH2Ldk!3T=>?qB2sFj2>u4qt7sAw){B3IClSTuALMc!Za|FMhPN$#!hU=9IbWMXt6fu>}p25?G zk$*~2-Lfn&K1lW;fTXm#dcS*kI09dnBoxBo4?-ZYx1woz4xXFD_8@%86^!@YjD zu>m1LHJAe)&HH?>{Ij!>$%%<6s)@O~vs3s6yeR;g0I(JUMhwsp?eifJNjIMZ5AOkw zsVx#^S)xJDeg?kMoqei~W6#AN06lKt66rE&@=t2$Im8_5Ild?FehDxDz_vf`EqV?N P00000NkvXXu0mjfgLf5b diff --git a/interface/ispconfig/interface/themes/default/icons/x16/pill_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/pill_pencil.png deleted file mode 100644 index 0724ea882febce36a3960180be5637b9e5732da6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 782 zcmV+p1M&QcP)=QKc0RCU1EX(zz%Y3AHCCLXn{fynK z?&$dP#_hgqu~=4Uu}ML|`!v`Ti^VGH>gt-+YIPy4?CtC8d*<``_*Q?YBw%nn5_xVk z8ttzfruJ|MH_7B!5{^cr6%7pyPY5mv27?;9FR84oY+PSoFXt0f{D=CRFpBeIPai)R zsXl8v%}v18tw}f>4ufC>0s*D}jEsyz8nr0{Ub2jlV36HUn#kd=H)>B6Z-E8sZ)0P_ zyRfjZ$~oa3{V|}?plGjz!u&Xx8upb#xN5m=%NrkeqTrw%aaFDY^UBG|fz@ig;`Mq5 zT`rdgb7a8vE1?=v?`&H$dwomKSa62*cU@ynr&H1F>?|{z%}t^xnhFXElz3AuFrbFi zpmR9tbsibwTp1o+sKS|xZU3z7cDp}OD&JBuO1uxCjNry1hvQs)Y6@$9KeBxk#j+k# zM~acP4XhZ%5~EdbvmK4QTng-8Ttr}b85*@3d3rsjMRCAgRFr}#9pz9JgGgfgdX+|_ zUGsRhz@K}1hGL9$aySW63Y$9!Ck%eCdOU%^;^H0-Q_jfM=`hsYJsJl(e*(Sy-A@OT zB{b6MmjUK-t=67XT58JNwJVFxBs@AiJpCPL?+3bOw)sGK3N#mL(!NW;@x#DLibYTB z%+rhhVhot1XR*JErd@MMWFT{c9i-i)%*{k0r%6haoHjCU@JE0F0PAs${VVz#*Z=?k M07*qoM6N<$f*gKi)c^nh diff --git a/interface/ispconfig/interface/themes/default/icons/x16/pill_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/pill_plus.png deleted file mode 100644 index 676c293526668f59c20782be5787b40d8731c337..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 704 zcmV;x0zdtUP) zR?`vsAXG*x%soUx`49w3zUFEK_RvGn9()pf@jZHoVA4Y}6e0wlEUAbfW-TxgLo@DH zY>n*>cXu~;@7>+){G5h=8U_8}%l(~u?&q9y&+q&=(=_ov%gS*ax=HuR=-ztyW@2L3 zN0h{)>-xD;sdR{xD;A3jk|eEang;84g4yD0C+Q@(tFNywCC3Z50;4LTVt@ZC^f8WrvL4x_jUO m%H~-JToezrJIwz}fB^s;oL$!|fc?q<0000-( diff --git a/interface/ispconfig/interface/themes/default/icons/x16/pill_small.png b/interface/ispconfig/interface/themes/default/icons/x16/pill_small.png deleted file mode 100644 index bf2de13448697709eb913297ceaa1e1e00230b66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 404 zcmV;F0c-w=P)q@rvLr>C;aQzFYB*gze;@h^5w`Wld zaQ5uk9m|$214(Tn=mn7GpFe+sH3Mme7cX8g2nh*!ynp{*0-Itue#*!Q!Ztv>8p!|u zP;zyJRW=H_tCtgNgm=q?6flt2UquikH|49`$dmv7yK!m8Ob7q}_ubyVpZgC3 ygUMe8hKoQScCj-s+{TxX7>9mdpx6L_00RIRBj=%x93dM30000RCwB?Q%z_SQ5c;4iICtA9=sG> z5JW^G2=ORr#L^a1M4DcD>CKCW3VIRZLGj)i5GqBnmo6{q!?&uyLyBDgr$DEDoqhF#1LR{d zoSK*z*|)4G6dkcQg}m_Rw2z4kM2(xp2C#hu_}a9;un^o^Uq`V}z;U-5M?D^>D=SGl zxh(IrzrxLH%ga9Ga)w?imG`%{@;?%Z+}YXLF`Im77}$=-Kkx_=!;{DgH66s;R!2Gc z>5aujpOH@EP}gB_n$D><`R&ruCS5&}fk>lYh*XR)`Ov%R>7=D7__@1_Vk(8bav7gi zS3jB#xi=umP9R03f7dKgcSRzn6~BK-%VuFzs}NkSMp@H7vt>i*_(EUoBM9vf!CQHZ zWhxqt&TGTN$xGwoKB-cHB?y&RJpP6*r&_&p#EyLvyW9xEXeN`H^Lo9Z+oGt|*48i< z4EkW2ZcbHNjn5o%^RXR>yv~GQRn-kymhTWJgIs&fU|#~8+T^75oRz@2em6yuq>F(- z;1!7h3Q4W?^TY#+%#(Z%c+rn+2cVF6*EG%d#5d<}(CC5QQyWg7VGEofJdT*00000NkvXXu0mjfp|~p$ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/pin_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/pin_arrow.png deleted file mode 100644 index 905ee2860aa2132259c0ba4c568645cbab97ebe6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 778 zcmV+l1NHogP)CBk0FG>|9pIqW&b*)l+5;{qlg9tpgjyQ z{sT9DOf2Eb?!>HY-!_zJ6>UNujKmhXF+pAXrt|N)sgrpJ0eYsYvY02jUWpx!8 zjV2LUTKe+lg5x4yYsTSQ3Fa4j7jlY#eS}S1M>jx*3n1MvJS@EG=y2F%*_3gl9FbXVI~Z-v)M0dnoRxsE7RTzbp_L3 z{lBz&t*OG6Z+hqcmWQRR@X1E3ksNb6omVXuO9SrvfsiovW8Pyv^3+;hq?wC?-k1OZ zX96Y`0m{!RlgnWjD^# zNu~;RBXp?;NK(&WeN|KMDru+HbUJYE1coRM>B%K0J^LfT06MlIEHPfV{r~^~07*qo IM6N<$g2_2%=>Px# diff --git a/interface/ispconfig/interface/themes/default/icons/x16/pin_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/pin_exclamation.png deleted file mode 100644 index 81026afbd7799013e30a021d77d006fe68a0c380..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 784 zcmV+r1MmEaP)2bb)r`WWL4igD1ziMnClLjPT^KHX$3M@SbPcsS>M&v~Br=bXbxl7#;mNjtyfNP2j zF9nX#%&w&@q?%PZ4o77axK855t2fpZ5L4GId_LqgHl7Xx)g*H4p8~7XkJGu>{5*U; zJ;yS$1|}2fH#b)X`};BN_hW-r3%yPUM|=A) zWwK8>_U9JLkG8d0;q?k}jtk9=jQD0csO&Rp;xe8C>+OI>-`#EPYib(S8I91bOM_;& zV945eB!jwU+%PZgo6vvkZh$y4TZnxjGSS(even{>|q7t{=k}IG!ZHJ#5!s}Nz5Qu(- zDm{A#&*LohnPKJ6Lbvig_;eZ{M3Eul=IN* zqZz6+{T>q8FK3WT0v9?vJ6{sfM*_Q&56b-W7p@si8#A@+6!fY^EC#C+vtG4;?5&3U zSPYkyba0M{^~nz?CBH#pW+Z9mec!|cttY5T^4&|^c;fAntzZ%UEx-V-W-QE2n>@$> O0000O|OrqUd_w{s0d}1VN|=W%o&U+^N;JY!(j=Szs$T3M#s=wTCjKFkES| zjJ2*4x;9PXn>KUFw0JP^-zk>h+M0M%?Y|X~7-gz_cxh@%F?>G!+}S}To5gOuj?byo zC*3kW)Ti_y5IC~}SwgNW3xt+Sme2Y|M~AD00<=a0jLX%oSF4+(@}-}C9>OWp*o+`X zMLfhSpg#ee^eiun?`LNf!Rv*a(l|3RGDLY_7AzyjB-+*-!!YCdeEx;s?+@Q&*=lof z5mGQHZYqj<0JuZ>u4&GRRXPMrx0P4p@%ZCFAP}PcYZyk2^4@xzN=Ek(T-ehDxDp}KlNq-)U$`KRCh`qQ3XR)L|tPQ6R zGs_qxN+NSj1vlNV+xacc$rwF!;lus?&b{Y*&OP^BLMes+8G;1E>@xC_q}tSq3~&Ip zH30t){E1=U0?y1{%3SsDfXwMMYyu3T`1zd+dkXxj{$?N^hX$LiD-U2o5zRjZcBWs% zeT8fm;!d&6iSmY?iM;5DER6 zqewyM@zl%JYFRoO1umZlA{1_A(&^8Kdx*#%ICj=PGc(p{G+LF}>@y%(#4l8V&v0)|MMTMczz5ChmN~L=_6fh*TUFkW;xdus^cYb(_yw+=K)DnpVZj=QWY-dF6bUHr?1cF}V5DLI^EbI#viM$<^ z(XzAUI%qpu1%P`h<;RF8bUNKrH0n@@E!$mYP`JMRMCy?3B@^t_J002ovPDHLkV1jq_P3-^x diff --git a/interface/ispconfig/interface/themes/default/icons/x16/pin_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/pin_plus.png deleted file mode 100644 index 1b7457954fbefea01e518f80402328abedb39c06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 741 zcmV*z$uCnUciV zXoOpvgl@YZoqIQRL!^f;{5a=-&pE&I@jrh?(=`0g$46Oq-%p*ADgJet(5V1}31IFg z9m142Ly|p+St&ktR(ie8H1LqfuM`>%Bv6ZW7Lf=}4i2_%0gs8~+CK>j%g>TuW^)sf znHgBy+8UFZ)=i|1x{--6yWP47wS+VoV=}OC2v|4DA0BpY%+4YfjpDG$1dG`W@7P$7 zDyio~d$-Vhb#zojIILt7iBxiaKJt5RE_}ML&!GozD+(5TzR%PGN5kVNs>`Urw^wQt zW$w8?G9oHVOW4k4p-{FgWz~bIn}>azTH)1bQ8Eo}^)5K-}>AkxC?>m6YJy z)RaG#$+-HS9+g6Mg5lge{s+iv;PeSB5|(mujgS!}=|q*?UKw9ogR->+MiAswJihYc zepv^(JtK&#wZfa#8XoLR8sZLK17#kd#4Ekz5HPND~O|+3cL%mgE`Q7?`3-V#&eb9*HIPRRo;dmfP(uAt2 zQv_p^&k|Z_u%GUjUWHEa*eGXy*lu4Czm6>i4TkTEA**~*YW`j2^k11kv^S(dU;;aSe+3u- XDmo7jm{)ff00000NkvXXu0mjf=1)|v diff --git a/interface/ispconfig/interface/themes/default/icons/x16/pipette.png b/interface/ispconfig/interface/themes/default/icons/x16/pipette.png deleted file mode 100644 index d2e99fd843cf492bf30c9683286eb23f197e44e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 576 zcmV-G0>Axk7RCwBA{Qv(y10{fkk&%(X3W$q< z97`+;{z5Sb0Ijn7$-q$jm4SivGXq1<@Bjbzv8(}Vwj{zPm}b@fe!ovopE4Zj?&ki@ zz_5>nRLxKK?`QbK&d%_Gfr0H0$P0M%*#L1qQ1f1(W=~|zM^~*n@r{9@;UCC=TQ~v{ zC_2G$#R}uQk&!GoH17ll;uBX_um&b3CI(P|!oa_O|0e8+h$wKKJUQU$o;_GKgAI7* z;sRl?urM$)Gs85ieE9Hz>qlJA`fo9M4EiA<#`{*SIt`4C&Hs@!gDpmPI#jb$ZgEwi zp@M+L$t9Q8A78WPY-m`RDbVJi{}AuNF$*rudoI7aBgDh@a(id=>lXq76TYunRRB~{ zgRK5GvH^eo{89e&>62qYSuI?1ag57Jpn?1U{{4FgXxkEGjoX0u7RZ3}=g))v&(6+n z+tD|*2&OqJ*!swqFJBG=!{shEjWED0EG*3M`SWKbE&(xZ7HMN4kmh&~g9AX#M}GhQ zeGe$daQ@pjhAlwFCxG}ZdZ2M~axzFuOUJ(c_~W{zy=yKH4^J%6HHsit5d%OGF9+0M z0nC-WK)>DtVvr?&(C}|G`VTChfehdWVlJp*pqTlGME`>-{D%tz1Q-D0j{a;M3?k$J O0000nRLxKK?`QbK&d%_Gfr0H0$P0M%*#L1qQ1f1(W=~|zM^~*n@r{9@;UCC=TQ~v{ zC_2G$#R}uQk&!GoH17ll;uBX_um&b3CI(P|!oa_O|0e8+h$wKKJUQU$o;_GKgAI7* z;sRl?urM$)Gs85ieE9Hz>qlJA`fo9M4EiA<#`{*SIt`4C%|Ms!yy{=V@aNAThCe@l zVuk@!vr}$yRpFk?ukM^&atUlmXjqu(vQ?{?4pwYvd#P%{@bmk3hHsxgGce)PEX2e1 za(id=>)iqZ6IQQUb@pKKDi)yTGr+_b1JeUH0O%y;w{PD%B5N*=aXI;wTW;SAo1`VD zU9(LdDVqL?@(?%v_2WkY%n+9I=g))v&(6+n+tD|*2&OqJ*!swqFJBIeMJ_3O!Ng?z z0;u@z>C+5{B>yo)_$e9BTY9%)-LL44*%LR^k#6(`J!276NIG_b@mB)O>{9 zDEywJz00g%Z#6Y`1#u|_Gi|AVf`SZ>zcVlx>4{5SK6OW)k&}~?K}bj__QJKhRepZH z(=MMq{^9rU-$(xb{d=ETLW_aNGeGjxu3s&WzcalHkQ&=VmLl$+u7gGuS@`m z%K@Dq#>U2$42(ucAYTuNwSZU+h?PL{Kr9KwqP)>d&g&ff|DQKz**Pwk>UdBXf>I7Y z5OV=BBP0Pb{6nJuK{F$m%@#O&0x;nkGyeZO;n&8Dr64hY00RKCZ!ima3Eleu0000< KMNUMnLSTZr2v&Fi diff --git a/interface/ispconfig/interface/themes/default/icons/x16/pipette_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/pipette_exclamation.png deleted file mode 100644 index 85cdafcb3a592020483a5b428dbf2ec45b370886..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 745 zcmV%MjF)f*BTMGt&A=RDlc^PKbWy@=;|_@5vVLU0(X4IiwVe88?t2;Ayu z8lXK1kP!#yqIrIl9Kf*kFFHxEvAf&891OyQ)0sm9jFSHf2gk;MQ79k=AZLUp{DG^) zx`E*l4A*UhC;R)~tpMENgaW=ThKRF0)qQ;ye{(ar1^hxBV!&n-0fHbv7^oB+$Mp;~ zHMQ7!dmDno!<)ilf!UgxwGByvOeT}yy|GvU7N;2o&Z@KrjI)dH;n~xh z5J`W947JuM4F`3T^O3iqVPzvuu4J;sMTP~GiDKU`1j!; zNp(Pi8Wd-yEl?GIi6kxwR$fY{)35Q0)(i-ov?895z8UxX@!pR;hI4mClZtl3XBh#h bp8^a3|8GU~=h}S>00000NkvXXu0mjfOGH;Y diff --git a/interface/ispconfig/interface/themes/default/icons/x16/pipette_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/pipette_minus.png deleted file mode 100644 index e122e13886a83ef6fe40ab68980978aac12a3f94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 613 zcmV-r0-F7aP)nRLxKK?`QbK&d%_Gfr0H0$P0M%*#L1qQ1f1(W=~|zM^~*n@r{9@;UCC=TQ~v{ zC_2G$#R}uQk&!GoH17ll;uBX_um&b3CI(P|!oa_O|0e8+h$wKKJUQU$o;_GKgAI7* z;sRl?urM$)Gs85ieE9Hz>qlJA`fo9M4EiA<#`{*SIt`4C&Hs@!bAl{JcREzFQ*Lop zp`n6+#mOa?)*oN9=4@zKm?_Zap#Ko>G4KO12YMhPYud&7ufx&CcfRrksF?E*Z`Sa(X&{vXH zROf+dj`uJ)@bl--V?Zz6v;6#-;S*4Ed|aF{dU!2dw1|O`larG{NJuF5!nM0qety2w zE}uRA;rH*~NB;i(dmrd61|^_E2L^_ja!?l_gGWFYfFfQF=zI%cuH*%3x(CE>K|z9s zf1}ZVVEK#@8Y7^9WrW7iKP37eRN+5d7$Cp^g3u1+#LX@@00000NkvXXu0mjf=oui4 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/pipette_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/pipette_pencil.png deleted file mode 100644 index 87cbb3519e05e1fe480aa4532e0a117bb0b08aa2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 725 zcmV;`0xJE9P)nRLxKK?`QbK&d%_Gfr0H0$P0M%*#L1qQ1f1(W=~|zM^~*n@r{9@;UCC=TQ~v{ zC_2G$#R}uQk&!IeGz%~??&JWfV_fX&3f92H#KZs!P#F04?_Z4Yu3ZJLlP4QL-LnTp zvzVCJPLtQK8J>e&@XW;p5*;io49v{TFwH6-K78Q%5!bW+TZ|rqen^P%zE!JE17l!Mg+AMl!ip^*ib<~^5R-4Wtpd%3+c`t=I|feGJNttt=-WZeGk+c%Gn{rj8Tm6iJ= z|Nq|sH{j2oKgypzeR3=)tA%SWj&V5&G;qJJ=Z`xIo{W#bePt+H>#y&nt*u@6;m41S zVGInHSk9k65B5JhJG*U1-_#{QSo-ZQ<7c$Dm>;7$Cp^R1__|-pe4X00000NkvXX Hu0mjf#vxtL diff --git a/interface/ispconfig/interface/themes/default/icons/x16/pipette_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/pipette_plus.png deleted file mode 100644 index 8208f3d5f15854857f816214d669f064b47d6e35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 692 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 RW2OKA002ovPDHLkV1j-aY?}Z8 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/plug_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/plug_exclamation.png deleted file mode 100644 index 5cad9009fe942aa145c58aa627632167f85e28f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 804 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 B;L892 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/plus_circle.png b/interface/ispconfig/interface/themes/default/icons/x16/plus_circle.png deleted file mode 100644 index ae80e5404787e993342bbdd10b4232372589c88c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 694 zcmV;n0!jUeP)hS!i@8iLi}l$PYxT?MbhF$4^l%bP+AOqpp@NuvDU;v1 zw{lmPK~jiM!1As5ovM|V)M}wxdU^6{$8>p|i-^;NN=8h#nm0Cd-WC=>9&) zvdp3HH^B3~EOO>601^@~eG_`U9^hP6AwA_6}%pf22JUTtP+(ZQx<>q^2K5CzByy$%>RYmUuWk%5d>FI z*+im}R62ziR5*#|Gb7EyK zCjQO+9Nkavdrb3#hx2~l`JU(f{WPtut@IG3NFU)|o`-dRvkP!@~D)E|;0!Rz(91_lQD7Z(>l)6rLg!vDnL;$rs7 za?dB)to6+tc#KYyMco7)F%;p@V46V`DaOEOJD$dT%M(O?{Aud`h77nGR zrKQDYwOYG+yuBC~T}T=PWEu33^)fcoLiie-z_5Q5*UP)gMNy2CNPtBI%EgeEmsi`+ zaKY9ycL$0-hRn=Ngu`JxH}|QCL?V!786jE04c|S~*Vo%jCQ~hQ1bpLqI_b~Ifj^V-?j zQEm3_o^gZjspm$c0pA4|>T;_}naculFt`O*WEzGiU#f7+S*!7L%~tJ zIFy>2nx)g}tQO13%I@x4O%)aA3lBUrjE{er@9TT;*5jETqrnId{jUH602Ky@`)tmm(f|Me07*qoM6N<$ Ef-r5EI{*Lx diff --git a/interface/ispconfig/interface/themes/default/icons/x16/plus_shield.png b/interface/ispconfig/interface/themes/default/icons/x16/plus_shield.png deleted file mode 100644 index ec0df77cd87f024d71e950c8ddd01ab8a0c582a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 758 zcmV(y<3;A2ul{mxHEBQVxkK~Au&cJ@dFf%5(_36u!WX( zDAVb*(|O+a+G!i&O-|?a-Fwcv@5~*>IR|?jgbYq_Fu+MqhST(Wzns7{<Kj)X1nj4(quK^UOZ9z?nahI#_w_Havg`*6=- zl=dFVT)AeZ!huWDOT6vcg{kS6pI%KeFgDaX7&_k8(~(N0WV$cd+odqYwYvG`5ef0} z$XMUv>eBa`fXOYt;`3iWHx(70c`DPF-`_;DrzvzbG8vMdIhZ9l^&RL3 z*#lEet8V-!3Wb7%9qtCVDL8cfrV`FmzmSvSqb2!i(Xf}zH zt`o3!bv96PMrt%n%IqJ1HD0vt=*{Jb!B8pk|J-$t9we50)1D@5@)R@ zP_UM>Ni`EV88ldkc|->?SveK$HABrp(J<6}hF<4#ZIDV(dC{6rZp63UjpU;r5>p+aC$>$D#?2o|3J>KEQ&XU7o{hvq6$99PtaD7$XG1jxc;C0Sb zm|$`+7=0aKY9{Ikqm|!twkT2WXj6wW;BS>4f74R>JN0iVU0gwm-NlNvg)K{(Z3~F2 z_$0^!bm9v7aLaT4*cl;Ud_4S#7@lAU3rKJ=Q5qpfT+0>^4T;m*2o18gMtCrRJM`%? oEMgW}81`Ti_6SMhn*RhC0OM6NA);605dZ)H07*qoM6N<$f(Ou67XSbN diff --git a/interface/ispconfig/interface/themes/default/icons/x16/plus_small.png b/interface/ispconfig/interface/themes/default/icons/x16/plus_small.png deleted file mode 100644 index 58219c319b002bc7b03ff65fa0b50f52fee1e73f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 296 zcmV+@0oVSCP)Zp|hXC;<5w7-=BYffW(RO!jFGT-aq|( z^PdpQ7Y+^%hCjkAU%ov5aT6p?R4f1kYulgu-xxmJ{u(34pbUux7RDtEVr<*68NfK2 elqoj=Aiw~@;(S`r`Z`_!0000=(v diff --git a/interface/ispconfig/interface/themes/default/icons/x16/printer.png b/interface/ispconfig/interface/themes/default/icons/x16/printer.png deleted file mode 100644 index a8a9098f5656702c18e523816308f70daa090341..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 736 zcmV<60w4W}P)VTVBwc<{1Qhay6vTY(VNwTmZ3v<=kdl5}hC zo7=a2+qd;RZ)r11df>dQ=@e^?2C3^MaK2itg6iOQyWw&M~X`0?ZAP_9mwdH9r zg+iI8uaaF24u|suWVu7syu0}tK3^!vT$QYP$nxM%a)C}&saX5x5V>ab*(f^Cn1jq^ z0lUM|Lp{+|#3v98ULprA5|Y|zzxRPaKh;FVp1EqJQn57}61uuHvbQJjzrkF|<#Nr^ z6?r&OEEbhaCiCF-bKv@Api@fY<;Nt7-!7m}JC7F+<+~el#0|V&r`EJqwKX{sLS(Y>A?(VB9JtmGH0t^7F@?OdL SI-#8a00001KIqEP)m|b1H&b~nimlG-E|QgJWZ3k3>=IwcG8QeV*qJL33p= zpslT~cYJ)@ABjXZlF8%>FUzvs>2x*|8N0i?Fq_TVnx{sJVg@XKaBu)R2b;|Xi^Yt! zwJ>UGgl5KN0uGnU&Y_4NMD- z7#Zoqo7ZN1vZh-YmkAh*MibRUqwo*H?QSOrDhY8K=|i>w`5K3|-`gW z?CkK~-kvTVkKexf47k_AVK6i{vL+@3pYP7UZlPRv;j+3M kwnJxps8{iv<$ee-02~N&G$oz`=Kufz07*qoM6N<$f@H&W!TLzmJXYPY1rG_!>Y%F8bNTrU0ggo2?W0L z;V{z2$KVns|=~|FfCt>89b~;fFNz6BgulyIn^Znw*?`8I4AJ^?JP|pXd2YkW?uYu-Rv$L}u3T(9XbjAsN~O@<>PKf=5`5NzjSUZ! zN_9Qs%BV5a*4A3XR1}Ix6AqtK^?8!3h9GDpIBaRy9X&AARHMGpft8*am`qj+6JnQt*jHqAZu=P+6&_6ao@Tt-E^x)oin=8m0;%c$mMd#X0z`4bbNe{ z-e1caMtCQg1Vd_L141j$yGpf9O&~W{uJ-n7v|;VAXD|=3SPZL?2+m59_Ihb4@ndiA zlbBAUw7m_Hk$-M(!qj!N^!J0w34#F6AB!fn)7RJMwj;|jmXk?SUtWfpO1a`pfN?ZR zsIwCjU1B7H(_(gJrfYO`^d4<@32%j-o*o}zWO8zH+Axekzu)iL7e(3T~Xf*m+*Y#DgTrT?qfj|e5vA@3$uh;9YB^sn*WWn;qVi8mapU($H@nU^Ff`$gU zgK?QaYcLoLr)empNCFDBw!WfJFb}Vhrh=LpfkY~9jcM9wY-|oQE^k>@puN34l&5P; z(O}Z)JWXFDyD}undkj2Z>(;y*eg#zxhZt8RtA4WF`J0@kQ$;G4|2srhGw@;nb!V(j z#$^H?Nou5?=qj`kghCg|L6wBKLy|QA9L;In-49zuc%Mzfru}vO+a0k`DAd?Chx&S% z?CrTY8JBlrxTR@-<>Lzr=Qu@C9?%u}St66k2#G}E@!glejY~is7sdR?Ib3+NhL((h z^QwX`D=Xi5o_D9a1FW)@H5_CJ4-Gx4o(TG>T$CNBTBeoN9Mm)JVWXb5Hq@%>ZTkL0 pr+tZZdcxY>T`1De#Nw9#0{{ZrXX;i$E~fwh002ovPDHLkV1lW`T&Dm4 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/printer__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/printer__pencil.png deleted file mode 100644 index ce151474ed36ecf95dc1a4407f0adcddd672e4ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 827 zcmV-B1H}A^P)PS8p+Ho+P!L40i=61iA}d-DLA9%hps2tWWCfw1H(q%WK`4|#5rW`lc%u-rQa9UA z+F)+}?EnAkJs&9(qZb~|ciwZJ=REIwzQYYqPvamsj_aqvfPcqAKA(3JjwJa)p-?k)7K)rX>)V4hA`l8I9^2}kq(_sC)($E{s=@@G8xQf zbH~WYh{f%8uZKb*C!ft`b$Y$Nfymg~+k;Z66vs3*G7^b`L`+OuIiwB3m9H8gyXkX0R7J{brE zM0G*nA(tzT;Z$7`ZD#tRX1ZXv+fm!yS@Bh?4e=x(lglemUQSnG8Gy;uL=FTJ;to%i z=2u`)I$^b5#rXIe^qqSQmA0MwG$rE`i9|^*$DyoDK_vu56i1ahh^CrVBHJ)JIt73D zG}?&Ff^j*ON_B^>NXHWU`}>1c}X1c zMbX3BW+UsCk)gh~_nuG`i=UqeLTpW#o$3*OuFnfus*UYA*w46!h01DbP--w-qW|A? zkc%xZzqok5%=s-^{lyzsd&Ji#k@z!#z}pl(CKi7L7y!LxdS7vxGW!4k002ovPDHLk FV1lMXb;$q# diff --git a/interface/ispconfig/interface/themes/default/icons/x16/printer__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/printer__plus.png deleted file mode 100644 index 33093aa75113a4bb729d0c3e8e99a01637f4bb14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 788 zcmV+v1MB>WP)ARbIOa3Rr?2__u8X+nb0qaNfyAQfz5 zp;92Ywg27z>~{TTMFNO^$;-@sJMYc=zM0`hW@hjwIF7qUgByp(dsS5L^$Cgb0T$H9$X7{{7KKWs;&i!O%|u2jm4el3)yEPwGLy-I<%`84XdN652W&PgLZL9s zX0e%ZnLwk*GH;) zP$(1(io&73UZfJXbsUV1GcmMZKc~+nMS{1xNuRH7hL3YLo9!MQk&`9T=`4*aKhaHty@6o#lqI_N1`sWffejw@b~mQ&<+GWDjgM7)y_V@ zsClBNG>n=Tb~xg0p~j{r)Vkd_>HhovbqkAu*o~@~cUFz+96ncv@KM1p0R{lbiE=MJ S3glS;0000p=cq)|&qvp%y^095(8BNnXHbRI` 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 X=2m-k#|jXH00000NkvXXu0mjfd diff --git a/interface/ispconfig/interface/themes/default/icons/x16/puzzle__minus.png b/interface/ispconfig/interface/themes/default/icons/x16/puzzle__minus.png deleted file mode 100644 index eb3f9836e8681be78d2b0fa53b5061c1a0abade7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 811 zcmV+`1JwM9P)l@KB!F(v{B4`RH)(UYF>h@42&s3*nWgv7+?K`lrRB$Cj2Ffm#ZCAO79 z#Zt=dw)^il+n*STvw1r^Z{B|2%$sj4&j8r4v&{^9F*D==Ea;`-RYI7sN|=Iyxth-M zzW^HH;`0#ud~>De(pg1Oz;PTN#2&vTuD_<^4B#G#BmV{`uXz6$c_LHr>F6`!%j;vCf|LG?ioHl7>O>;CTVJtMXv|gpiC1a zuC+qQ)+RgPSv%=$OSW@ywwI>hUY{Tc2)cs4O<{AQDoqf^EaUVpRhcwpe0tp%A38l4 zDVNKXz%U`pvI&>V1-IJ`UDxqy@ihx@n2Qa#pjHDcoOc7Nf$i;W6pO|Bs;pKkq>@lr zT9{3-@xjg`txRW{80&YkqpCDU(l^V-T(32j`OBw7rX&it+0x@5Vxw@_6L4_gi0CC# zu2s&?m^3?0gRIC9MG>V^2@aV7rm7zw~&L!Wc1ue*OB&=A;{U0dx6`Wtxfh ztqB7vUn*>+v!(|P&7oF4FQzm_>*Q$PtUM#KB=L!*#iZTq@cG(wnOI0u;-VMVxHM>#-2-kUunu^vuWaQ=w+Jm*5KBpa>DN6j&nNgX`-`9umcmz>NOg5R9_rY&#X$=J=`+}8RE p#OUv1h$2X5ED# zvKq8LSj$F9O^iQn{COaPtZ7Xp zf#t!ZrE6NK3+$?t4dCqT{N1^pxh{B;Z)VPS&pr2^@0^kTkfd!(fP=|~hO<2l4bR*6 z+(mb=95)HVBSc3U+};+A<>>T75&)|wni;9uQzv2 zRV%-o-2c6H{r7JCxnd16;VRg+Eug9@!r?GH&%?ukM=9FBL4MF0@|DJjDZ{eDeUs(# zYwcc_cIcY}xYFN+SJkUgtkhr?3p0by`ZE5hiN=lfq6A;Wc{NAXAo^ksm{ z-i%)_{{rmc#tLe`nd4~$PZGnOSs%R&{KYL-RU zEniF1DiZRkLdF*|h;7Q-%;;F{+gxs(_~V|*niqXm70=&)_0pZQFZuNn$DB9CPeU6c zweSa-U`-frxb0n)k#wFc{2a@uDN7}|sw?UyOObP{g)yVBrQv@AT*B lMP~j2JmdXMue$dF3;;=&gnoA^PE`N^002ovPDHLkV1hB3yjlPN diff --git a/interface/ispconfig/interface/themes/default/icons/x16/puzzle__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/puzzle__plus.png deleted file mode 100644 index a3efba69da632a95d48795a79347c5db762ac6c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 844 zcmV-S1GD^zP)&diBHGsl2%F7#QsJl6nDXg4jgF##siME94wy z>=vxAo^Uvf&mYx7)6mC6>AClBMiC6C2+H0VkBU(tMk9;)Z;Hr_F<7<*!!XcnHW3U3 zp=))MZ11&WX2<{nejE$kI(G2HaH1ozvGlXJJK5P4cU-o_+*||V07?1ZS`%$#3mD$CDT{TTP5e&ulrnV$@_w5o>@t$9LUbO4S z;Xpb6ZK0=JDlL-!n%iQB)@|=fS6+Odck0${(J$$kz0}+m8tm+WSY(1(FqXLG-j$KH zr`JA?Ei{tN5}dH(_1#{UmA9By?4MO_(ZuE)QqNdnWUWp@3XfZ9)EuxdL-b^-m&``n z=A+&{LeeTU;&Z}G3zkBH7ec4^*H<=QyHf~wZV}&F1;*r`eV9akwE&)XzlaU`E5HB= WnrV)5BE`Z00000ilB{^So=R%2-f-shzJ%I*Qub@B_14VVxw>-g}6jHl{4bEX6Ets zScDAxc6Mgx{oZ`7gfIz(LL?Xr5{~1DPNyRxu>o!Y=v)EXfRXS~=J9w)JRTPxAe+sG zsMTu0bce&?Ip{wCRi#pKiwQU+xR%rDL`lx)GsSc|m4kbUTJY_5JF?ww2}k}TNP+?T z{r;g=t9=01JJe`1KP8b}AG};HK~NTf1YxmQ_F%4!M&m2b^LH$c2X#*gX0sX5>-7SM zC6!7&gWigG@qHTz1b%_Wz)L=#x6&r!1Jjw$=R~8?2nW_!vxq=C7!0hfRtrlZUa$8B z%XlL|IUbK>y@|)v618PZEiQ$e; zZ8qBwh`uG0$?s_6t(ZEF4;lP^Kd(?IoGO*dABjYcK;p#S$zYbap332HXv^htUmOm{ zOFEr?Y&M(ra=H9zu~;Y#2E#5IjZQL|Oq*q7pgn;48~uJC=WHn! zi=S7k)eo#2NL*k$eLmlBuwMc1;r0v7pwsD$pccB@X0w@?OeWey@LfRjtOq=pH>|l7 za4{K=$As&4yYgPIrvzwWR5~0drWuRH#-Lq{z{PAiTO=jMH5v^aHcAD+5h*bMmgK9| xYNh`(%>5@DolC3L-iTLzGMOyl-+25dzyNUWM$K00+amw~002ovPDHLkV1oaTJOcm# diff --git a/interface/ispconfig/interface/themes/default/icons/x16/question.png b/interface/ispconfig/interface/themes/default/icons/x16/question.png deleted file mode 100644 index 370fdde8e779004f52924dfbfbe1a48900b34ce5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 760 zcmViUIisOh%a zs<|I?W}G>5rgO#_Kd!pyg=fy!^E~H0=beKr%Yy$2(f)M32S6SGkHAJK0tgMT&UuEI z!&_$<2g_naYXhjs8VV#cuy1fA`lV{|-np}}M0@;1M6U5kJi&5h4=?^GT>U=n!%fJ-}>-~>z4Rm!|l*$_30}dx@+fRjR<1NAHyRq5&Kf4%Q6UV@cNPb~xu>W*- zxm1x&lfv!Z1{-cXdA$kqE1KMQt+jjff^G32Wnkbjba;2hxs;ZEl z$iuTYvoP{0XH(jm1yB?WnySi)crd{=2N_rUo9*SNZ#O}#k`J=8kchbE(7+_Q?Hv^>h9C>R z8W0@f;KNnB^+|zawbnHqbIs8V#@BvsUuldr%Y;?Hjn6ORcH8&h_c4P)Zl%CAyzf+j zjIL#uv+Ux*1-#DL~?jE6I+RL0N^?DfkaGV~6u+7O+w zzGvXYZ|Mxt@G#eKDdLX_Aq2?R%C@?6-79t6k9H*6!mVdQQbVwslko12y16vFonM&B z8hGJ37^x4Iz67?`G2nL*VrT@<$q0CQE&^)mWRB7OLl}9me$4=#NCREr7gAu@Vp`%F q@S{i$#DBbC_7p+ki7_qxE5HC13pt6LfE5P-00009{MBLOEIgs6fYtR>v~v3*u!4D=s^(=3VLW^siq>hdRSa3 zl#Nyz4K;sN$=1|lYyKx`l9^2Q{YI=i@XYu7Jn#FxKZdcfF&GR67>!1KBy1<_0nkRU z;Nw>yBV2HW&HH)WpO+Dh6(N`!TPKeWA0kh=NF-9G z`!Pa|bGcm1l`ls}M?G%0`}_0Pk_fGBf!X3fTbms%E!$AmBrHWLc=9ZT<40Tr9LLp2 zWSxod^cH(pSJzhu4}RnMgsBcqqh!CO-=p05UARtNefISGg7G>^7%XhktC8S1$&%U#NskSu_|&!4P3o|!T$DE zpU?N4uhnYp9UVLRrvHpXlI%z%KIj%-L=-G6mGJdI8ata3@cVOk`YeZbhaE4XD)x;# z`WV+pKU<+7-7VlFM>R5m0>|;#y#t6BRU%q8 z12=x|oj#hSZJ(<}t75kUlzJwl7MS(5Xmlmize_|un?a+c2`2Ma9rHH^bbMMfC>0rf zP7~g|c^hI}Ch&4*X4-pbs0B824rMt7vC#^l!MbUb%^51CG+He(+=ETHchBo(T+VK{ z%b84CAg3CBJn8Oz^j8q?6KRNMD{jukaqB^r+!gTeY5>hb0+-JAVQy~rj?cH?r2_PG ztRYA#9tEako?|J zs)0N-vN(yN*epqs+vV!rd;0Xb!-IqSy8qW`SX})3^_43Z{|JX)J(Xqoaivm8({`B& za0Hek7HUZl1RHfeo=Se5qW)S@lq{`_1Xgj`{{$EStnrWb0@01<00000 LNkvXXu0mjf8Q80L diff --git a/interface/ispconfig/interface/themes/default/icons/x16/question_shield.png b/interface/ispconfig/interface/themes/default/icons/x16/question_shield.png deleted file mode 100644 index 0ec3a779aff8b1b92e3efd08e5669c0a96e99b1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 806 zcmV+>1KIqEP)0!j!3R7i-5pF~YGCL|i;(uFZGxOG7=aicM=#GS5KpvIjG7LpLfpa#K)AQXj4 zk(QQzpg-D~=Y7+!H#wO*@7{CXedj%aF@~a+_eh5d2qHlu2o1FGBvTjwV@@yyVAKOq zTTIQK&t!$c8<=V$3|;KAw{q~DU`~_&kBk5tAq-MtBOIc}rzbmXZS}SaOP$qZ>FM0p zPHWG!n%2X6IR_|8^A+>0>z!vuM!)t7f`IPh^;Ua>+2(fpwesPERrSTPAWuv#y`U50 z@`dK6(Rb6|@&c-&735TUd2_P-iK_l{2-lRxwO`Nl#=bF{FqSFPI<|jz$wn3SCxUb|Hn& zGg0&$^}|--fx{8RqB8_ZlwdMd><}lEH&ID#Y;VP4+SMou{DBbGy?z|n%W&gdIexm5 zcsm}2DCxk2B80<P}o z#91jc(cxb4hK!YVBC5z5ap}I+gJMH@&P-XB5Du(|h%=WLP?A%=bzcDNNW9oks^>Ss znHyt@}HAYpNTMnR%0E{=4t@)c9H~v^fpo?*k|w|FGl|G;T(KAEiWtP)l!N z-)W%vT1`_|BNte6OwI#8UIWWxV5>W{6d^>3t7ZlGJe35#qdtA|auT{az^4S>JO+Y^ kj3r!vzX2a{Q~v}Q0Qdzak6iki{5l|UqP+0`_Yc``U%&GF{P~Yz zS&JOQl%+Qq-oIny0f`f30K@MePhUL$`jwqsm~Ya`*9>Q_b1?k=_5UkKoVZx{^JB%8 zGgoi?|I7NRtJsi%=|9h>2RClt0ErXlg8%<_etr3n@!XEP(ZaF}@<5S?z*t$z$Rn~7 jn*ofYNttp300ImE0Q7^ft0V+S00000NkvXXu0mjfn$DN+ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/receipt.png b/interface/ispconfig/interface/themes/default/icons/x16/receipt.png deleted file mode 100644 index 7eb74c0fa3f18bdae12892258175df3f4f2d73fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 428 zcmV;d0aN~oP)usocW{AS6T)8u$iMCrye}@DV7rn{*KpLKFyDQ4oIIIXez9wq;*nrPca8 zvvad|CkB%VA%qZTT#h)OIJ<`W7RT`;dT#rDl3Hs*Dy15OUT^5SZr4=7+x8?IUynxg z6X$o1^T6s<73`93#^VeA9AbU%IAldpl;WD3x5{N9r6lHy>_00C!*l@wWpF@@W%-Ff zSa6^W4lqJkbP)b33hW*!RV~0HFux!W1bG3|88FWLN&(t6g5C(^&mj1R1B>yX=pZYA zD>R(}aHD|QF@h>};QN2RM&QiP3CP)WN}lH-C0c8?o$ORrfrAG=`qHS?>vY`dT)z8$ ze9&%Ry)2id6*zd{Zysh$u!B`&ztuXGwte`$Sj_gC&6BFCSF6vj`TUuCURmH{Ex-VR W-Wk{FABFS)0000}M{P)0E{ATRtzcfoIjiHsoI|NQ-n+W?>!fa=i<`1K3b0DNHpln1KEX#fKu zFZ_cT!0?IJ2o#tMe}4XCVEILY3uYbv!tg{ivivU-=f__^ek}R+^D_ez$N(s21Vtez z3~=F_FTOKGcq_^RH5UNWOAOcx=q^C_!t^5_8ScJ;1oYEKj~M>5{$z;oQ!<{n^m4&} zpjwt+K!4zi##;=W43@6S47WZ5Z8One02y`cEdzsFkgoCi1xE^4POV+bpzh)V$rnI^ zlbf62%a<<rajC0YGI4VY z{&?`<6o-O>88({PB(38=yQIY5Cue8;J-=ucP~TgC00RJh8%q$mhz2VF00008Yeq2FkoW1)*z%D z#opa}cmD6vmbTjd$(Qf$z5jjh`~Uy3`FtKK7-J8KE)doT**)X^)*CEl*Ayrj>i=9(siXzlxSSgH03&N(Qb zwXbQy^IAVjK=yF}+H21b1-vc?vX28*g4gZ9J5^-rb|GbN0V;v=y98XfQ=o@~n)Lzo z!%a*kj;D6)8;k!FK(7)4-@!?B3zsGyW9-M9iQCD|C@t5+#=0cXK+8clYQMiAZk)%U zt|6VCOi3U21y!ohA)rR6de8yk!mg}iXm|`yo_)mV#ako3WRIkPM)=o(Dxn>YMiqg+c-1j}?o=FJGhE?|GqsE~#G zj2Bl|QLR=LxN2X_Fv7>A_~hUlJ&p$pBWJsYRPijRKg5!H8UFBbP!PU0O%%%@!9@}y zlT5&biHV6O!Ul^88;PUtsEKi4@_&%Qfgd4ZVA7e{kT?)n%3?7ZWiSp-YpzC@dmrm!~?RL`5Q{JS8 zz+9C|6SC8rOy(BZ!O2i1T$jsd_?VxZahj&taRZBq)yY_v1AEukwt)F_1d1|C;C2TX$9zWuSk{6uBCz*6^*V6M zKNN5nSH=ns3I*_q;w%A;(CrQ=P6S7l3T$+{K$(9OENbC7n+2)aw7!E>r*q+vq!TK} zfj@DIEH5472NoYkqoYkYyoD-E|mA`!T2wXFI# zL3mvm4tv&}paSdAQ7kY|Q-agh44oNn`j|i-VLVGOF`@Ti7 ru^J5SI(b8qzJ`MENMaD5KLQK@)#e=84Mb_800000NkvXXu0mjft$5p& diff --git a/interface/ispconfig/interface/themes/default/icons/x16/receipt_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/receipt_pencil.png deleted file mode 100644 index 445b27d447d48e1ee94c51df0c8cfcf13b4476e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 zcmV-<0*3vGP)&+pIoJ#KSG=X~(+p6`3#=Xsy^J0Ir{1b`ODaV;1s5kW+=P26RSeS+NL4Z{F} zuInzp&o>f{Mw{&-)#W(^?)lhQUhL89uC8HJ2djlH;pO=FWBeS+p9z|#74im>N!4oc zJP%mU6`u*3sungRpxZbA%oW#P4+cR{|8bz(IG_>KoP&Gx{UV97Po3+qCIP}xw-uZ$rGGe|1MV4)Uqa-e2=YF{Dt%Hx# z3-CQ%H>)_aVb=`-qLKvs^5i6>QYivY)KZ7Tylslv^WgZrb88$ml) zSxrp??{HK|o14oeZnu}BCW>Q;6VCP+M&jBY0F6S{qb|S;S7U5w9W`kG=h7*F=rk z6+d|UW@o;6^BprRwXp$ijImLoX2L#UB!F)n$JxWD3ASy6!?LVUYHVypRn?Io=6=OJ z9BgiFttggQjK`Nr9ezepBDuakNyC-moM@V6Y2BvHT-DD6K>+!)?{lJQ7^NRBUgUw~2||1tqx|0xhu16n74Ujh7;g6#?5Tsd~@ z0mFf)|09CwvuSLFcV^$j*A5a$;Khc(1wO%e3waIvkbTNwVraaDPVR!{b?a9Il~PD% z=aI{+?mfs`c|dc0PT=5F)HUtTHsN#0%Tb(ahu$Z%YzHAkWmJ8GkfYC36ETtNH5@S$UvZa?M`@zg$*Wi!p=|g}40Mw^B Uo{f|QMgRZ+07*qoM6N<$f;2bf`Tzg` diff --git a/interface/ispconfig/interface/themes/default/icons/x16/receipt_shred.png b/interface/ispconfig/interface/themes/default/icons/x16/receipt_shred.png deleted file mode 100644 index 7bc0d8b7a025baea7327f51fa2cccb16c175814b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 526 zcmV+p0`dKcP)ieQKwpdZlol#TUvhH#?!D*q zw67Hsxg5h11mS|{gz!j+xNv{DT;`#+GT?3rs7LdE3`7{%fLK;l2}avM zov#emFbx)TVL{*&f1oHG42~>;&1RkYn6ouI26&;BX0w68zAS$_8Flns4REKoa=DGj zB=~SL>gewp%;(I)?0Y&@zhrq1!E341aWd-YW6su?1~17Z>q!!uOeWG(vG`0Z;(O?H zy9+0yZuKS1LuVc%OlpOK&le0zy;dvl_4!V!jYe%a7@BZ5Ldp8hMq0Bdc_`Pi~F QApigX07*qoM6N<$g4dhsdH?_b diff --git a/interface/ispconfig/interface/themes/default/icons/x16/receipt_text.png b/interface/ispconfig/interface/themes/default/icons/x16/receipt_text.png deleted file mode 100644 index b761ae03279b992a73c0a0112acd76bfff816cf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmVeL7?|`AxEUq}7E%UcLX3lH2*LEb-utwrZQ9=C z<@UaF?z!i^SFS%E0|m!%mzYj)z2fR*lU7+PSPNm=N4(9WDCo2=r z?_q=QhC}#|t4Bq7Ms-LFbP4yP(KUV!sD4ru$l10X;4U`%%1OcVJRqM7@8xXE3JMZ< zo6Xp_D2kx#I-FOldp6=>J`=EF4rEylz*4CMPRJ1*!HPSu_KKW?0;;OA>6)goO*Q1E zRj&i`V*;ib5s)N_6~$sPVwGybk)JBS?qIoGMjB~41vxk^mm$n&0%nQ>KaTMp{2<(n zI|vKV6Z#JPbBl$--XY?d0yN>Q(TF$*ze2JD!-zbilkp=Fj{JxKKb=fqv)Rz%sWmSM zY*JDtoOr~iz98~=yHdM-^JN&`QL}mbvE3$S!ih)xzaP^BvO`tnuvWX^1wqtTtLcF( qx6-n^+i5?G#XI(_QQ-SmfB^uB>?JH;OAwF%0000-BW-zr6wwyn|sx2 zbv-WgI`4BRIv4;8ABzE|hn32nkGYw-E|t>T2Y?Oegu1Cz>Qo4^^4@CE{lf#f=``iD z*|0~#wn<89@wfe-?oO#xy1cuir9y$;Jdacmguy0K2n#{ZKqXFhZDB#zC7LKicuE*_ zyIpPIKt-!lp3=i>xUQ=K?RNX;8KI(e{JudnxNhSZbH(CT zI+M}aNhay(@zJ?DI*Qyu%q4PtcYpu*y;i%OU0p4IH5%8`%gg1!^FF+nmz)EY5MXMW zx+9~b=kDn+a diff --git a/interface/ispconfig/interface/themes/default/icons/x16/receipts_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/receipts_arrow.png deleted file mode 100644 index da10cf5f55804e9be962dc13935f43608712b31b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 658 zcmV;D0&V??P)U~kMDfm%s$~!sRV)`c;>pUXS8rXiS8`=MT|{!ddwZ5 ze=9;@k%)-K9S0o7dh^rM^OZ_vBFs~s&dJcZNB}7uOmf`5&gbVH+y_0yZN|LgZGlO| z@o}Tk=%Qs=w`%n|>}ndQ@i<&eB>WnZD1vR<0)308;XcXba$hz#;d&|se+&Z{=e`k% zZCL^u$ZeD`-0@7ti`!U)q4~E&f>x{L5y*(*#W*Q*{$ERuaXk@VK$5`n1rUQ`RFQ=U zP*W|W3<^ki)+fM^e*%F+LEKJ(2o`EKn@0lHu>e)K!vqkQu0Z)$8yvpY0H!XnaDp%a z!nIJK3rD&0^AK*2o`>=$4Rm#Q1g8fwq8tgFLh$^371qA>!0g90P2r6`sf)q28%e0_ zTo`p@>VuO#2x;OrkHOf~Fzo8kXW+zXW}goM?%cb1?#;r|L%Gpt_yUA!;7_Bfs_zrE z@9^U3@(%{FU%F|+&{#U%dpQZkxp%AB;DWePF2g~!D$9`wT*+o<;)-&@KfXT%s`heD zUoK`uyrS8kgb&Y3t98RDxSSWMll^A~2eYE8_L%$oE6TvYh`G17uB1{|+k0*pzxA!H srRd#-8GI{gd^3fZq7;?xZul#}0O56pLf~zGcmMzZ07*qoM6N<$g4w+|ApigX diff --git a/interface/ispconfig/interface/themes/default/icons/x16/receipts_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/receipts_exclamation.png deleted file mode 100644 index 4c45ca6397599fc0fd2ad0d88907a5ab805c27b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 677 zcmV;W0$TlvP)Ny&|8O4{i^Y#yTey}^-&K?iDTOm z334B081B;IqNqF6#3co%Bm&E_1c6K_qULjF-~VSMJzQZD7(^nl0|Ua~HQv!3V!(%L z6XoyvbC`{{7&*Iy#DzNn0izF*2!kGKSmL~{0kioY(+dR=U9SVvG$j&bLJ@s<_b_G{ zS2jLCPo0ByMnP1cK&P=WoPZk)%Jm&6#ycd&XK?HGOT^VI$#`w<9I!S zK{bDFATg@ZRUD#JD#1McMptHFO4(efmdgV(2;KExc{u+53S)8IsUKJIrg9%g);2m` z-N;UEXROBIJmVN7VK723jt{OMz4jOQ_8#SXipq{~BmV?Z`4r;`GkS4WQrDkK6O3aV z)a$aWD7c)VzizV8- zyH$N|F5BMO`K+hYSMFZ=banc?oMlqi)nuosDlo%0L~m^Kj{pMzzrVc5WDx3R00000 LNkvXXu0mjfQeZSi diff --git a/interface/ispconfig/interface/themes/default/icons/x16/receipts_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/receipts_minus.png deleted file mode 100644 index 621a264ea9ce63c46962c70219d8959400de9c47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmV-b0;>IqP))B=a+4wrJyI%Hq;LhDQ3^zXgd(M|jRbPXK?x`a zKJR@vZ`StaxEw2u=l1RB&2PtReA(M0!!T3~heH*-u-`zMMLvMGp3FGAM&1_`TWlf_ zQ5aGf1atMx&E0mpy`Gl&oa;?gxP?pBQWaN8{#lxdSQX z>fOTwojVR$`8>UtnbAEmLXhwK27imEaKF}SwUbVV-j+&q>$(&~kq##Dr8E#^PEgWt z*D4jI`)Cp%^esU!7z`AF2^6J8>>Ne^jbx0gOte8JLsA<6gEj6Lq!{o}B`D(t8PsY5 zeEc(r6~%Fr23a)nJa1$m#|GTpPcr~6Um;Ex#s~xx@J3A*2FYMu!e9!2B@=RHt>5n( z_VF>9Kp9=(2?E9yJ3F-BYB|M~m7>$>I19F2eBbSUvOMqQ;~At3k@d@?qq~n=TSX<5 z%cE@D^WPhdcP3D@0pq!NG?r!QtPG~7yWbj(T+$rR_?I|sHtG86$~3cCdR47{&KC-g zGV85!xp_!bIY;zkfhYKZC%O1+dATYq>-l}JcUo9ldUJnq@w-qey`JnN*S-03cJ>ps jy>0v~j0y6HzXA*Z(T;u9Do6JT00000NkvXXu0mjfWCaAc diff --git a/interface/ispconfig/interface/themes/default/icons/x16/receipts_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/receipts_pencil.png deleted file mode 100644 index d6695dc62fba9b630f0b665bf5e8c52a65bc25ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 693 zcmV;m0!safP)l?8#K%hFqOD*t1ySrqw-uLmRWueCYQ+aMiBPeN zTGA#{Fxrew=5?>RScr%smIan+?oLFblbK8=+{jsHe)Q+Y27Jloz}?aU{2-}#sA@s#A30x*(~&QcES%;1(Oh4 zjKt7&0R?gmr4jDQK!Dc`9AcvEzeEB}(>Q^QD7;2kG9mvQNfnoe*a4CRItBz&DGWdi zR$~**1_A6)b)<9#SaWl5DVe-L6eTMn3di9ARaB=~y%xZf&*$MoIt@MX_<=QmTQZ{X zIc&OfiW8Up0_&H*zk&HrzhGc!2qK}-Y(J%AvQ`b?C)*%EVgxK;{XOJA--Cf;0Z2Yr zfkJ!xyN{AIBUUOEKnYfrpkA!*($kQ7+P`q5CjjHgiN(|5gHR$wdAz&~e-Sh~#A4wU ztffbk;j@?b-npAxeDRvzAD_M6L{xQMRg@07TrS%I&3NNfyfkjNo4cT`LM}Z4!-MC1 zj~?EBxrxxxr6qW7?9jm|7XM6e`+TskukT7h)9Ch4=<2sp$@ci5cZRA9bo55+*Nai; z?L7?O*$S|^yBnGuS9{NvuCDXjg28LD*L$41$8&-?_UM^Yt@Ha2?Ht4Bj@k#!e!m^? bTYv!oEoQIPx8j$Z00000NkvXXu0mjfBNswm diff --git a/interface/ispconfig/interface/themes/default/icons/x16/receipts_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/receipts_plus.png deleted file mode 100644 index db78fc40dafaea193f1a884660f0c624f78f6f7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 644 zcmV-~0(Qds7D?o%;%*nlW(x^$>q&*uv^)xpfVC8gKiH&`YdA6L_~ zP17_No9E~FUaLWm#V|2C>d%NM3M|VK{H**B_eCz3+o@JDmrUZ1VL&>LA53DIrl5e@ zM+w7ylumoPMMETo|CU71>2y2-l~6p*VQ0s=w2~gKXW|<~A~1ae!eEUj$`Auys!5bV zg9!Ed1oZIFAkY-V9W;p2pmw|6H86VyJlzU2AY6V0zJGR*NBOjhRN_7ni0)Tl0><$+ zO9q3%x=98@^eM}YGUn%J@#WVZTCJ8iNR*%uiiczO2re0r{<2=c?N@heiY?Hzn}qA) z!_>ypAJ@x;i#rHeBI}=ier!H`{9ughx~yYlZUl>1xV62$wV)D;Z@`!a{b_Vv_cQCm z#?^1zuitCjIF+4ARo;9pbr*z^vRf?TN e#;)M600RIST%M+4jrz?10000QDL6z zlIu7x%lrF>)oOKjp67F}(`a_F04Q7>dI-Oi%ZD!Fpy#~pI8r_p*aMD_8xDt0Ez8B3N<8kp?C`32c*V@I&$zy``LgCR1OmROS z9ep)wwaVL_or7Mp`RmQr)`4f5f6TkPtOgWcAcz^nO)M^+>#^7wzRok}{+{e~`n!!e zNehg@IE)pI diff --git a/interface/ispconfig/interface/themes/default/icons/x16/report.png b/interface/ispconfig/interface/themes/default/icons/x16/report.png deleted file mode 100644 index 449037c2746db3f00258ce05416944f4be40beb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmV+!0_OdRP)P9XZ0-78^Um(aDM7-~ay%@)GPA1^^wv@b4c` z_g|og(F{mSv$2`6Z|`2P3lfu)86H0WiRl7qPKLjK|6+H+gq=H?d(+dW**Z9YT_7vL zhG76m9BjZJEG{T;cb|4}-#)MlViOV=9zOepVSth>#0CHV{>OAd^Xk>C(@RRGSlHS! z`~})1Bgu;C0w4yv09zQ;hK5c#vVT9=1>tdV3{Rf^#tZ{_W}IG_RWfG|`=Z9iNyb)I z;EPdQws*oj7<9?1JFvXoe?G{$PfI5-ZFA%rHpl>EYZkVZsD`b90Cbq?oX# z1Dr0HQ&KYF)S*LQ7x+g+Fg$(o7t;mGY>OgdAbE#a01C=4 b009O7UEmCun(eNi00000NkvXXu0mjfx-RPS diff --git a/interface/ispconfig/interface/themes/default/icons/x16/report_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/report_arrow.png deleted file mode 100644 index e18b950dcbe7129b07c84b79bd9f35be1633f895..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 658 zcmV;D0&V??P)P9XZ0-78^Um(aDM7-~ay%@)GPA1^^wv@b4c` z_g|og(F{mSv$2`6Z|`2P3lfu)86H0WiRl7qPKLjK|6+H+gq=H?d(+dW**Z9YT_7vL zhG76m9BjZJEG{T;cb|4}-#)MlViOV=9zOepVSth>#0CHV{>OAd^Xk>C(@RRGSlHS! z`~})1Bgu;C0w4yv09zQ;hK5c#vVT9=1>tdV3{Rf^#tZ{_W(+StQxU`2$K2fSauX6f zHFR{qq0P(7gn_4?{Kjzkg*wBJZ{L6N^E*!AVl#xBly>*--I*ZUK{z-%n&HWlKNv3P zz4(>E#zu-^+OoZ0I5?Ctzkm6%1nz>%zkh!yPEYqx)zpN#fDw%6oO#Qz;l@XXLyx{N zJiK#<;nN>R25&cGw$o>y$p8QM?;BPZ_(w!AJbm&PEYW!52ZNQdB*U%G3=Ch893{ua zz_5P7k+bl?;5Ribdwl$O=bt~QPH$R!i{bLa4`BAUpFbJ?DJd~X=_)ZCpR?`k@8?%0 zfMP)ih^0P$Jgv`X#&QN<7UWj$)>3qG;o99X@!j9Y*H(W&K5HAu1wh9z@E}DgPQd0j sz2!dxqcOv`*VBLRsa*#Y`T`JO041^{)};jAi2wiq07*qoM6N<$f}LkH)Bpeg diff --git a/interface/ispconfig/interface/themes/default/icons/x16/report_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/report_exclamation.png deleted file mode 100644 index 31d6e09b2458f6cbd272b119535fb60e47c19345..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 735 zcmV<50wDc~P)|^T!CQ%gU3Zq(cxyQKG?5kH>toy?xSdw}Yl>3=IuoJ($efwm~gNDwP7#xjrh> zPE9$T#1n&I;!;-^(map4>XJMI0RZW=u$mJN{GWl@+}SzdSXht`!yyqEj7Io2Q+WnwG=B+rj?eaG za)_0vTD?6yFmO$)(?J}rP>}x!u~~#@8^XH`>>j^gnDkbhC_5y0(A)dUxwweg>1l8R zsxOeriHRY!@fkHuH&D&~LaDeh3-Ks90;atD_Z_40YIAF=blVDrEGt>kju-t;r+~vbXk7pAfqIL^hYR^wdgm#L!(Luy$V&IdU#4u zj^NwD!H(5pxzg0qk|7`@$x==fajQ_2lQ5VjFluQ=EEeL+_=t;3WBo84X0O*fDP};_ z^}arA1URvDu*-}=QzyqB`vbI3hgyvr(da(A=X1RgYU*}2pOqaQ_n75n8_TlU6vaX= zYTK?+-A RD{=q;002ovPDHLkV1fo4PSOAX diff --git a/interface/ispconfig/interface/themes/default/icons/x16/report_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/report_minus.png deleted file mode 100644 index 8565b4d7a0d435ce4f8de2a34378517e2c943729..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 585 zcmV-P0=E5$P)q$gGRCwBAWG-c900TybJ|L;jKpeQp z@SmXw&Qs9VW~g7eGVMPRp!h`bf94YAeL&0r!Ym*I9$dYe7H48IbI+bV4EOHcV@OR+ zWw`(R2ZptZQk)FGe*I!#_=gZP9XZ0-78^Um(aDM7-~ay%@)GPA1^^wv@b4c` z_g|og(F{mSv$2`6Z|`2P3lfu)86H0WiRl7qPKLjK|6+H+gq=H?d(+dW**Z9YT_7vL zhG76m9BjZJEG{T;cb|4}-#)MlViOV=9zOepVSth>#0CHV{>OAd^Xk>C(@RRGSlHS! z`~})1Bgu;C0w4yv09zQ;hK5c#vVT9=1>tdV3{Rf^#tZ{_W}IG_RWfG|`=Z9iNyb)I z;E#@gJ2f~M@KU}dGZG{43t=51~Am^|IeWQ>OaCMj+vSH z8zxMc@bf2T^xeqMXZU>nJOd*W6T`y~_ZhyudH+S~6T?klP@aVukaqX(-I*ZULD)Yc zg5l|tzi^3V00000NkvXXu0mjfCm{u9 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/report_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/report_pencil.png deleted file mode 100644 index 46851c01339ebde840ac417a30de54cdd7fe3fa2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 706 zcmV;z0zLhSP)J+xzX~9@5h7C&P&=Y`$jd8Hc z%gYw2yTsOx4)FPsdENQ26B2)hL0wY?2QEJLif*y#KF9q??_>Dl5`;BlclX)D6&3Ql zOG-$FBryvi&qJs^Rt*oHkHKOhw8{y1TP(|Nh&%@u+S|eJ6J(Yx}}9Wsau3L9gG1pRDIF7BJzfu{vB_`hcx3Talb1^Q4TV z|3LsLNhKTs6BN@m2hA#?oOtF|_L+`GtZoec3_(~HqOe4dd-N(G71%{toU^TS;lFa8 oSh*-zCT8&KCQV8?`cHrX0K2x8HsnYOv;Y7A07*qoM6N<$f_S+@$N&HU diff --git a/interface/ispconfig/interface/themes/default/icons/x16/report_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/report_plus.png deleted file mode 100644 index 689c34c5a9465cb0a0aea0bb07445ece5e5762ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 630 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/ruler__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/ruler__pencil.png deleted file mode 100644 index fd4a9fa8e19138441638bd72a587206dcbc6c9de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 761 zcmV6Se@5LDlse4e%$#$+Z_fFCerB%|0j50-0L)l0Hvt#kO)JPX2ym?ti8qOA zHwUX9mMzWK8|6R%gPjLD8N+{>$VrZXU>^P~*Q5*&BRwk%3Q#T(PV;&uCmvrba;#hQ z1yN9W?CMeDgPSnr5%iE`wN&5 zg9=Xk^bp>BQf}nAT&9$?G=%AJpVtr12WVBG{1jwh1|dq%keei+EMF(70?K>^ znV>U9GlYvPkHSz0IHLEe1f|(yxSi;ta`EAayi^Z2kBz~YoD4pdcDxBu4BtG!`h3#B zs*#(roiQ<$^(`%XMp|3r#cej-5&@-UWWdKYkQIcIsYO6U&SC?h%U=8eLkR%_XuD8z>6S5X)#Ml=Njnsdd&JMro%x{2sz8a&bQQl=@th19YIKvq!Fl= z$-Ves39hwQ;IZoby_@GOZT0L7&AI68arUTo2X?8Fa9^kXI3yhRIPQ_^s>@temftCS rKeUtGkp-N)(o2KO^0XN7M}PqU40%7)NFIND00000NkvXXu0mjfqPko! diff --git a/interface/ispconfig/interface/themes/default/icons/x16/ruler__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/ruler__plus.png deleted file mode 100644 index 36d874a6d2053794cbcf0aae32ec0b2783d33a8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746 zcmVeQcRrUVarg<5TQ+r+9pM1wiBX+Hf@4PfK(fk=| zOf8+p8Rz}n&VA3ZMOi)G;XC)-`+eu!bGWRhNdlPhHv{m({KhzN>El-&Wg9FAt$~~l zN#Zn-#lpAa@uTLV8W8m-xKWmKz!5|7tN}vNZ7LN0@UrfRiYawyR zq-7NqyG~tg$$NYQp7L@i@i<&tcgnt+{c`^BFuWBN_!DmO`_X;2slyUec;;dxg4aV| zFh(1?reP@>#e6u7ob2p1QE&uTT1@ci+ZRsU&&^;}#ih-jBvmjm`0CR@U+=qr-rs_0 zN!4-sTa4qwlzzQD6!H|f-LPBni1v@h75-O&^fU%3)5egO#ZZ=yglOP0RiJTLMJy5p z66!CJhubn%{f2=hvx?{MwN%XE9UVoU%LS^+7_T#vVKxTb+w4GBHIW%xnK{r^m5x3A zOOWdP)|3Eu7ZsTm=vWOtsU&i#BelFtWSKBPcBHe+0n3A44J*c`#>b5*Xq;Qg1mc$0 zZc>*it-|F)^#^2u##&sVzS@#fw{4^bCd>+qE8I01hPGSho^bH9rLR3J_n#C6-0-C|kR0`u?*e;Pc6qYd+x6#$+2xjXvE$@H`L_&zm z)H@1Lg@fwqYV;nKr9Gs+&jX}?bEMWe-h5;3rG2s zllk~`>=_cej{SiEBJHhOYxj9=e0bow`o}2Ez{`n1kYwnseLmlo7!Fwo5>bvEY#Js^ z+8wI(Ivd}uNjRZli0rm+w|z^?yeWDu8t~JMUXR{dTg&k8l7tzt2hxPjl?fgFqK(3C zh^Ukk44#(8>gwxzO#0aj#-|6~@-vjS)Ut)DBKq dnUMP@zySPFRkEVBfsX(H002ovPDHLkV1n_1Vm$x= diff --git a/interface/ispconfig/interface/themes/default/icons/x16/safe.png b/interface/ispconfig/interface/themes/default/icons/x16/safe.png deleted file mode 100644 index afd0a82a06f1aa09fda572d6808594be0203f871..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 609 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 VMH}06a>M`t002ovPDHLkV1jPvKAQjl diff --git a/interface/ispconfig/interface/themes/default/icons/x16/screwdriver.png b/interface/ispconfig/interface/themes/default/icons/x16/screwdriver.png deleted file mode 100644 index 5627d45a9a7887fca864460dde221cee9bdbbcfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmV-40?Yl0P)TNsGos6w12vWaX-goU%ErbpPe6cymzS4;kB^UmhlhuOlarG{US7Vey}i9t zSXeln1*Xv$s4)vjTLUpS4p;sC`xoS*vXqpRXbTIAa-h(279Aj&4Ag7^q&XRI1CVAh zF|o3YjEv~0sHmlP?%e4DiL=xJ31J5O0H!%RJ3Bf)K7Q%lyLY=_ax4r)XciY2FU!x* zk4{TVTYB%_y)I;VLI!Y4Nl9gwmX=26=H@QFfB$|Lx&nL#6lDMUWn=2$Ay`~ef>kpZ ztODY_z(70>#20}01`wZNWHjE#z;Nb&N5_8L4Ll+ zjtLV$ns!P9HRIBV5(ax18LNTeu;*7*)&G@1KLf>D*8{~P7>EEX7#JFW8V>($YWfef z|{d5oHEhFEhx-kU$a?s!2(C!%<-A zbVQ*A_A)Is-EQZujj~pB;JfE?e&;*CbG~ygQwqRHct9A!X3NdZgVUyDT07YINql|m+yK_ZbrBoaZR(d_H&?Ceq~6y{9@EJU=C7bCSrqfx#q zM{RAbv81G=nL%i@!5`0R<&zBsAET5RpM#&(i01dsgGXz;HMm_Q>}hMRBtqTr7sQ zl@)wlT1q{_CqNhBxau;uTPJU6VZ*dh`JN*vvittX-ST^Y0~#ejdr?)@uIogO0>iyK z4}Uq>bRQhY_0sJVg2DF2DeiVf(r-#zXFM%wB!QgPYT-MIcPJjKrh|hMNeNPVG z1K1cX)YJp{W)GyBO{CX^epWwsxpKP$fyuy)$Ynl!z!@*-t>_49}k|^m>ox z_sA1L6-`aMZh1UG4wyW19922`I-^vo)Twke zMlOl^1SJHBej&SKK<)PS_Qq%9;~@%lWcIU5Nsb-S6xNoWI6VeU!TwTV&m|xx{170r zXN|~ZPN(JZ@Nh6rm5YzDV6qJ6tlYij;FeT@Kme=DbE*vaj&iDQj;92O+`9@KtnBG& zxIZ+sPG&~dD{2HwB+#tV?x#nZrO(&J%ofT!1JHiWSt zBm_*qg8$8vyEBeXChepCcpq73i09xpK`4L0000e*kp?s85xRz^wdkA80I}X%)rab%fQFS$H2qG!@$YO$sjK; zui4(--YG0BoQ`5Z22f)GkmhE<4*vfA%OEN$T9%TM5^Z5&Q4SP>xIhG`u@*>kGT;Uv z&0=C=Wf>V6(NR%ROYhvd(*+V|$paEX4EO;|b9Q!ibbNgL(z|!>cERLW7>Lj;E-qe{ zpPwI{mX@~k-o1NW$nt~?;Fgk-$}TM}jn2)@U3&li{VsF`_zWn>{`Jeo)WbutxTFL{ zb0`%5#bv-t1_t9#|NqB0c61mER8*Y34~$V{jd)$~pMjy6hk?OP(cfQX8c?$u1H;bk z3=Cg?0OfvTv5W;xbJ^LwBi69dCcpnr|Axb`dylu`Yifx*$XveJ2dTN_w2D^TntP)-4&);K;c z4#R+jixx33u3%tj0NUUj+|*>Vw5|@Uc@t3cYN#R?Aa(${;13oT0Bt|ZFpGiV^#6{I z|8p4_&Xh7ROazLH0p*)M7@0*F82Dc7*&}?Nf#Fy$ t1IRoE4yZylsA5)V7=krGF&qE{7yxn|n7ZE0OFjSq002ovPDHLkV1o7)2f6?N diff --git a/interface/ispconfig/interface/themes/default/icons/x16/screwdriver_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/screwdriver_pencil.png deleted file mode 100644 index 2d6eebf8db1eb2b1b17dda352f078e168d9eba75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 720 zcmV;>0x$iEP)QM-Q^^8Ss(oGf&aO`@BZ)kIII$Yi8MlbiPcq5PymC$fGl;Cv@;fq zeUW6_ZDkCtv<7BpF+4sFxm=FCygbNcGDxLT6c-n3y7L#7DzeLvW1Um@4N~;uqFA***EEH@uo2jv}F*r3f`ZZsmX6^Zx2SJQGdCXL9>^}IyrgZCm^JNTUir)1u8yqetMVJdt#g4 zzm?#C2=`qEIOpoHTy8As>N@@nxV|m{2ij!7p_2M~^=-F%LIb=W)v`IHVHgsL#6Djr z)LmU#dh-zAr31I|+ny{(#*J zK-F%ivu>2&AM|CV3ajAidUx&cpf99T&Ag@QgjdE$aOXT=tmx>ddEVcjhEpnZE}GZF z@i^~UT0$t9Ou{0y#H@^>jcmUjJAiv=-@X!Oz(>v_N{7eTAc-WiXRv3-? zHHS6?yyre2zeli(#v)!ql7f`qcb@g|_(wi)g^is#h9l%{CT&_CznGrkES>rw!54u6 zGIXRpBsEDT{+*?cjZ{@I@%rYIKOujHjb^b};C8#w#!iy& zsMTtpH0`Qm41+O>x9WA=TUda>V1UtR1k19}>-BIr9Q)Gg^bNDwJi1{(kig3nyU^Z5 zQIvNT^ZWf?r_*_rQq3Lo5;#Fok3X9XTdmeuFc|a>4-e-`rBYVTYcA2F2Y(-EI%@Jns#M!?|j;+Jw)MN|FRT z_zq^4)@IURo2r3M6_J6Wr|S*RcSrO2f&%w#1+JM0MsvVQqx}xP09;*?E_gB-ZhJf~ zROv>sUkfBnzx8g}oS?Z;mRkFVhIZd3SOf}Fd$lVnJVOnON^CcP;MgkQ*)=k9>h;`Q ziBhA*J=#Q+Hvp?t{V8$&!xuR@D(m$k(lY)7a1TTx$DU753#36|Cm@`@!pg-NtP!*( zVOdrP*`l5V!fbFCV@TnESwW zI>+GIRLYf0CKdQG!TDC#(N5q)^P82}6LN<1}>hS0oQl6>YBcoNvD6WK;{sf#*@(2UJb`*&7GpjGN7qy z03~m4p`f(%W5}$3Vj!3a-9h9oojYHhp97I!q0ik=>svhaO>h(o&hj)acLyFP|rQugLo7V_Neh7SV53_Fd#w&k5woNNu!BL zch&5gjXRrlrcghEiSmeb>B5#1}tE)FCrCYSoX!O@6?=LSe?%H-FSyfd$+1OaG)oQN{!`P?z z={T@CqC%G>++ACHrfJ%?IMc9I#?PMbM+%6#;Mm-y06j1t?;sF4f2ejqKoSCcNl_vF zOF-rq=ph1L>k&NbCH%3AgO0)%DHl*=c@PqV-+qhS#5HuxG7_q%L<-2fdsu+|e2t;u zQN)iZNa$%y`5`O*ogiI&h!S{CH2U}1{3p2BK zpwTu`NjIUy^gI`t5&~Kf1bMg9nO!OtFNlN~L!kQcAx4Hx#7P~x;=tLxz4z4>8%K?i z6W!lf5U(PojE`TIG%X!o=)$?`rChpW^yd`Pa}~l|K56i|ip@U)3;;Nb%@~|Vu~h&7 N002ovPDHLkV1ju09*O_} diff --git a/interface/ispconfig/interface/themes/default/icons/x16/script__minus.png b/interface/ispconfig/interface/themes/default/icons/x16/script__minus.png deleted file mode 100644 index 59b0da8cf3f687256366efc15cab32c9bc138c73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 497 zcmV82}6{+-A?p(h7nEThS zS3u2RK`t(Jb$wnFlj8qC08C{#F$j33rA_BjQwsp<69ef5Sti7)q!h@=#U(;a7XJU~ n)4ku19^C^ne**C{fB*vkN@1WGn)TUh00000NkvXXu0mjf4UEyN diff --git a/interface/ispconfig/interface/themes/default/icons/x16/script__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/script__pencil.png deleted file mode 100644 index 44b9f924868c819512756c4c5726910b477ec8bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 647 zcmV;20(kw2P)^@RCwBAjBIXZfB_B;4hBg{NlPXs zCS3+1z`uY0p0gke{Q2|8Qh<#uq$D)72q=kDBhUhdP<6`s*t&PJjIP!NQCd2H)NuXLxwIpTWe~fMMJA6AT8{RSdU32;XIu zlw{a0AOMMlukYV8{QUV-Jv%(y8x#gCK#d^$D=q*4 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/script__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/script__plus.png deleted file mode 100644 index 82ad885f972f2f5d726f11b953626dded00ef803..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 543 zcmV+)0^t3LP)s592nT$nfc~%bJDEO2VbJ9Dp)KQx5;F3z(0f#l0dZ&7-M&*qD-&M%y^hl7|0U9 zg5ST05V}FBRI1kI*!Fro&&8rJSWy%>I6Xa%$Kz*KtMwLTGMOI^FQpO`nTn)Ml3;6h z_ej&UTYg8zQZc*hm5LC+?L4N)s^p4(^~W-B74~ni{Q^iFz=k9esS!YC4yX=5ZUjKg zp-Gm70MxJomR$r`i*3SnAqEe_iFqyCu}uj6y8=Z3h(1SQXk-YkANOsA&NNW=HBcd$ zgch^;d&sD~4k$wQ)w#I|J_F+xxVoGWJPB3LZ{q;5z1Ra$^)zz~ z@;6Ph+nwz$*D__owoIslJEOGkZh)FLI`|s*@>pJhs_VK7m&>Tx;qcb`eR2QO6ul_* h&@_pB0`R*40|0BVy^u|wuF?Pi002ovPDHLkV1mWx>mUFC diff --git a/interface/ispconfig/interface/themes/default/icons/x16/script_code.png b/interface/ispconfig/interface/themes/default/icons/x16/script_code.png deleted file mode 100644 index 9be3cb523207f9bce0d55216310ab6d2b3e42c6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmV+b0{{JqP)Bepzz9_E z;K2j1?eE{ehl|5pqpPEX-vDNy0V*mgV79QZFatJuyaup9U4RTgwu1o31(IlnV!8kr z$EvETIAZ}MPm~Lg!vN-gP)e1Cx(2TP^NSY@oCs$zu>fsA4+AkSE`$c4{GZ>y;m%-r zboelXn588H8#gxtGcav}0_pz!`zSU`BY6oV4-^Bt{3pb@?P)f>4{LJ=1NTnXL~6 z9}K(m&CEC7dv6{a86O8>hGBr;?+0DiAr^~OeXrLWR#i0wEmpZ)enC;(Y?Vr-uv=B< zHWwBm98}Gm+cXVZE2)}k(!ycwY~Rb^6BIDc7VbbTEwK$fFPo(Q6g(Xu(7jqxD<(82;a7> zM{b%)`t^v}!yJvL(cL|=zPvmw2o#AxNVdPfV_(3200000 LNkvXXu0mjf1fBh- diff --git a/interface/ispconfig/interface/themes/default/icons/x16/scripts__arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/scripts__arrow.png deleted file mode 100644 index 199991600235b4dafba8919799f0abff39e33e2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 681 zcmV;a0#^NrP)O zNs%;((&n($7ODi}LHvn5h!^!>T6*;0DHSgsTRd8GPz!<{Y7L&GR6PjANEHuC0}3Tk zYR!T~6Iv~sZ4!6cjc-#Elcj+U4D5U}^Ub&O-eZE12o4So!s&Fv@Are}d8AUQTI}_D zLmbD6Xk)sr{~%`bPNr#EsFUL^+=xaebi-)LaV(3=Q&U%LHd~tAsoCfAL6RgfMw@e+ zo5;&@!(~;)%>4ZGY&QFf4p}7@Ng-8LMVHHkU@&<6?aB%&l}aP;pug8o$?qi+&*=2k zLZJY%Tgi!J67HTJF#qe3&*wpMxm>+YoSmGkNp3cWAmFnk!Q0&pcUKo!hH1%@a=F|H zHWUTLrr0!t5PVFhaW)*@Zm<$G2h2aWV)Q7%lkHN%vh4{>d7P!d#LT8$5t#CLI?aj^ zirFc_o%dyY{rv}m?@UP7jr&?jK?_}dQnQ;_9nbtMPhIH`t~nGIW8NrMoj*Z;~&InaqdI=;Ie#y?!iCKUrp2 zHZJho9K#0!qm0w(Y4>ESviwbzq_x_P!q+AkcYhxxj@w_YP)*~x2CWA@m_vmMVnCr(Y0;$C zl!PR$$u>W`*~GWerb&qCzy~{T-Z%5jn;phCIf>yw0HP?u>-9nq1jOUq_6N$tdT4a-SNeZf}>X#%5KA&&m?b;eDl}amartOW;+6^xF>OOkj1?imPys zTt+3o0!h&Lo(T+j0=--wZB*ilP_x@z31~%u_S_DRX+WyI zgKTr*>h-6v_Bk--+6p`fy&@a2)qf`_=T=~oMby;IOwHg+&(C)b4w{T)vHL^)uuFhcg(!6@iC^Rp{?otyE6WheFeQ zmxA){2k6>&x>!F1fz9IF`TGz_5l3ZJb`Ds)cWyGHq|s>jN{TYIFgG_vzroUnJFwKo zV_2je-ON@w@OA9x?n22uYsOrs(D2kBF<=j}7)K~a>6!{cM9)oQKv5dPjMlJ8|QKe79{uIoU%m7K|D zp>J>yxc7W0m&-s)rP5noT;1AoC3`It48n<~f!yB@eLX!uIPSwbtyZh8;LftZ^u){> zl*0df9=<1&F9m)AZ@|5}AH$;rk-nr-LOK&LdAu)yVXUYt0wzzyZhnj+7Vr?%ZQD)y zc6#a~@O1KGUR=QUC<8b#-xZnh_8m0h4?diJa`HYREtG z0#ndzHkC)qnp$62n8I%$o=xO%17}uN_W$+v{x)^}2qAM8edz6kSdKV6JkLqeK&LC) rG>l7I(+aQQ75WX503!*aKMODb`}4SS!t`ld00000NkvXXu0mjfY&{yd diff --git a/interface/ispconfig/interface/themes/default/icons/x16/scripts__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/scripts__pencil.png deleted file mode 100644 index 6f0579621eeb5ba99947cb8a9b71b8b3b94d5aa1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 696 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 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/shield__minus.png b/interface/ispconfig/interface/themes/default/icons/x16/shield__minus.png deleted file mode 100644 index d1051146c2c9aa884b144fba4af4f3ec4ed076d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 744 zcmVP)p7E5C{-_f+&kx-?>moshhvOEJRS#HqtOU>o(G4+0UXDjL(^RtuXh-y z42Q#MjJ*UnwI~3|Zp30HlX*NBLPy&T+|MIkTeV-zL8ilT-Tb1Gn(rmkt)v0)f9b`YMe%)MS8{lgPCB!Js3b&xYSDbU4! zRkz!H3D3}MHbK++R4RhEKtvLtv!bX9afr)L1RAm|{~Qbk*!vOAz(9f%A%Y-`;dG97 zmrH_bwR%V#N@fcj%JSEWt`9MT@E6JHbWI_OmOuqLzi5#Bq~HDB-JJu&FqMCi2!cSn zgfkf^vb=Y2vC-InwzUNuUCaFZJUymZI2=jEVoNC+8qYhdereZVt^%ukvxciFzZ-De zQC+6lVgO~qe!f`Jr_Igxm%ZLI7oyR{D91S*V*wu2AK&5O&9HqzGZVn8_4RQDG;O>A zkR<6W+8@l$&Rtnvesnt=zIBy+pIBwL;nH7nX=bHvFxlbi`?YWRtA)C?`LjLKpZ) afB^uxzGdNm-c8p40000hZS}$uV8TrLe;XjZNq130oMD#_1KBN#fVHQGKZ7#DSVkE&jLE0 zONm`tlDCIRWpwJ$rBXYKM6^MUE#TG00EeJxOp`pPjifec)fU}^6{#!2~5D3BE+8)qV)FYV%l}ZIZpEpRHe_IF& z!jHw8n!`#4j$@VJu`#={vn;0!7};vI8dg?T7LgOe3(L2F{VsdG9)Bv87S(DEX3=0^ z$rh+owDTa#o1!3m^AjhTOy&jfL}hdcGcyi{PFJ>#M0*|@aJgPND3&;gdUI-S#Bv|8;Podqq128VhhzFB!)q={TmJS`f85oA=ZsF0uAn70-q#zHe7||t!g;HTd$Uhrt z=B)0n?#%4Y%uesk?kp|U@nUw?o9u-EJD_4#~vdU|^9H#RojN+c4ny}b?f z_4OU-vtyDZ_4f7k4HJh(;)(*6-|r6&4Gq1Zikhau=H_OpO;uGP7!0-y3=FhT9LLKN zxikX)nCWy{Nu^RA_|MAaawXgCb}L9RN&<#qQ z$jR;($l$yQQ4}lDhGa4cilR}g2-XG>Nq}rwPRPU|E?X4XiN#{Sv)L@pzJ+_BBY{V_ zf#V9``NG%Z5g;CqZxDxyIUQ`oVn2RXRb9Xe91;taoQf>#vhA1FYgmCeWR9f#0pr*o z>X0qYySlJ2|4Y{m*{Q_yo&(@G53Cq#aJ~5&B+8QIJE!(mzdl+5=N_mi5}TQsnvx{n z0TRy(FrvPKC%c2#DnQCi;f9*p(#?%8V8ICITwfgH^Yrw`b6)S!@=&NX#4s+GGsd#I z43%vG`*dVOhN~S-XUYCFF$+xbV&Kt;APB;7^xv+i2vm1=-fe1VxKc~8!TG21qPk$| zpsUpnE(I3fevjH}3`89P8bu;tMK|IiqOPqiOm`k8Cnx5x%c$|p^ZZP2uy%cH?Hi0~ zb?{iqI|4KcRi`H`*y8BJXB{FF_h=UL3~1*E;WV6wzYvA@`a?Rve*z2u{~lic1mX=- P00000NkvXXu0mjfk1cQT diff --git a/interface/ispconfig/interface/themes/default/icons/x16/shield_disable.png b/interface/ispconfig/interface/themes/default/icons/x16/shield_disable.png deleted file mode 100644 index e8c305e38ef8dfd7c966a99c8de836ca13a075e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 589 zcmV-T0DQM z228*rA}F!hYH?vJNwb|l(9X^_+NFpAtAK?TD~mhhI?=eA%sO8=XEF{VN$|qK=e_5i zIrnj&V^J{sQ;F0lxMvm&>{Ne4aV6TCLLke*YTB8^8pvfGL>z-%^C*b@kt zra7NXCJK)GxR9sQX_P&I0OrvKg8?rnvWGx~T=oP4>-GA#s;UZH@MfJ)njLb;WzV() z1C|DzPUjSVHzMyLK@Pd>2?V&JNZxh3-AJ?9yukTn=RRcSSR;qr&00%*Kztn8Y*v&? zr9?8B{2q_Tk88D>ijDh4QoG$gYqeUZi^bxfuIo3wUhio%8hMXzBf#f%K%~>@a3+&E zM_gi^y=}x-mEmysFdmPGnx@(Qdsw5_-3V}$Lm%FDVk^UN@YQ#4i{-KWjidl~;2FKn bs{jK4Si@pcjs$(a00000NkvXXu0mjf^8pJa diff --git a/interface/ispconfig/interface/themes/default/icons/x16/slash.png b/interface/ispconfig/interface/themes/default/icons/x16/slash.png deleted file mode 100644 index 2bb269e16fd8257fefc5b9c8940092b4b052d2e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 751 zcmV@|1%8q@auF;k2j%XtO0oOc^(`t z?E4AcA=EU8<}e|yBe-FoVSk0$>^s`g;c9Mg=S@{rM#@kYMdiC7T-XqVt4by_hJDZX zWKa~FZMJ(?Mn~O}B(W!xldD^aM4EooIUJVGwl=*h=*A8ASkD$d;0+UiOslgvLcv3hM_ z;5e2CK{udqZ^5nQm6e4hLHNZxoi6oHok|Ah9F2`UMGl3-{s-gZ!5c$EXYlJj=q+TK z0OQMo5JLfZ(v%xCWi`#1+S#EqKLmFl2LeH_$FtvLNy=u^swf&sQ*OZM?Cft(%#z9U z{Cx0oSJxgB9f=fWS5q>`G8U5JamC7U7EDi8icO@D2zyH2m~`6@}B$y{!?k?ctO7$Tcd zf)}aO$Bd?pK^Wbw3AL&Yci{*oXVHx<9Or8_8eJU_)Nq`UHl;L8S(fG4XGK}tfcOKt z@CT!s=Sv2L!nqID;{u&T`Y6UJsO!i;VQeeL*rzXOs7=NqSlR+{Xw{+t)xuK1@Q)iz h7f}RhXtm!03;^DY9O{lU8wvmb002ovPDHLkV1ntASpNV3 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/slash_small.png b/interface/ispconfig/interface/themes/default/icons/x16/slash_small.png deleted file mode 100644 index 8ef5c006ca16a5ee96c667ce30de6fef8362e227..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XPI$UFhE&{2`t$$4J+o>a==fQk`LLzJ?w8_6TwC^jV1D#QWWf>31#gWT|CA{Fwz^{7!ux~oi}8h>QVum@ zFZPryxZnenlvGS~yus}tJ)NQOt~nc<@&fU7_02n!SXKO{a5tFcSFP>8JKt&ba@;~JN|MV1Nw=<)78&qol`;+08ol=&;S4c diff --git a/interface/ispconfig/interface/themes/default/icons/x16/socket.png b/interface/ispconfig/interface/themes/default/icons/x16/socket.png deleted file mode 100644 index 18c6cc05c6fd36fb1f413706b6b80aa7863617a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 546 zcmV+-0^R+IP)!bKt^xEG2d2}~wse9ZWo89V2imuXXh2fn#8 z=brDo=bm#$n$PF3ipj8|F?y6rC6FZP0C9$&(jOd5dR|667Yc=iz<4}X{eJ&xHk-YO zL?X%G*zI<^QLR?pe!t(u&ndscXf)c3#bUW&FqoW7Ch!{qfj}}Ejpm3WYG7H`emow} zn5Ic$kk9A&>c!HBv7l*MhB%@IgTWxEs;Wi-WQjzA2UCZp(<#hmGw#FmL6&7;jA_IX z0(hS-*L8O&MY3=>47&bFwE@R*g|FK+_`9O89pZQez_x8b5j=Sep->3#Yhz~^p0+3+ z`505bODS=VsDWV^re%!`)0|$7dwAdV2wb-nxk{?U?U6$3V4IPCMa zR(s^|`Ut(=phX-Z(CKtu%H?vMHW^zNxWB*S@cIaq%0rzvq6W=o^X=y5s**|_out#p zVvvf(OIWno6oXW+KQ?Y}uPemi)u2}42=6M2a_IB<68{-x$8lbTMBIB#^yiB kLWBkwxrVgr@BAge0Cq4HRHr>-t8ijxHu!4BEP$qtr)NYFqBb*X=lD4}|s zNiKgbm&>0!-*-vQDA*2t@b3G*$NT->-(yVEgo6kR2NXg-*=!aVhKZpryuIu`q;XNKt zJP-&hBGD_uFg{y7Xti3=U@$nRswyRebUJOF<2tgTFNmTzM=_ZBpoB)FA@DpeQU@xL zNW^lc6Y6w2(Cv0D8%70|Wq}YPQjFaLtjC4vOpVg_`FtSDzi4lu-#2VqrJ`7Ojw4eP zGfn`#UJsB2Be%ip^@6VVa54m=4Qi)0Lik}P7z<+)D2k%CTAHG&U0=TsSZ@ZZRq3zh zQQL!eDwH$=^X^)cV(dkdWw}x+{rthQJf=4Z&1T&?3x&6qj%>x62}?@>c)80@NWqm; zyTZaCgL1k2HJ8h6udZHAj<5FC)+SVAmtfNz^rloS0y$*Bxs}-DW2u%lkCGjR0&t1= znVIO7wYA$fXJ_Z_MRGb_aJ`_w!Wj`hH2|8uKP82n0MDMh-nIyEg+m<29d|e!k$+d& zb^cbyF?}LL?@b(S^1^cXSTYLv_2(a0ZsN{};0O)4-+yrU^3xaLYnjvE);HcmN4@Ww z4n7(V32H9kg>)wXHdHUt`t##kg0nRB^Z;a014K=SXN()3h%}4HQM02m}JtvMe((EG#S-Yd;Qs6bqlvH_bSddG8AKdfg?8qK^eI z3xz^PFzZme-A1R=F?@6?c%FwK2tLL!Ye4t0Q#!+k>3cjLluEx?ZP4v%hA(#Z2kP5P z(8M@+`;}qFG22KRsHzGQfh;R`6pHRCwB?Q%g(ZP!v8%ZzAJBwGSw1 zsoFXWr659G$P__lHQUlz3Az#d1LD$!n_2oJbk(0Q8;!WAD2N~kg5qM3u_d;RP4jG< zcpCTaQmMrDpbdQ(3z8%)Pz+W+XhGAos3?jO4WKKN$*^F0LyqG> zx7%et%nCfu10h7B7=H%X&u1)Wa#(&m9tTBvq_cs3-}QaXrpo>WflN|NkN|qU9v}&3 zwjdUZfo=EjW(Z~*^iF+*h%b}i7{(`1RaG|(Q`Pluyx#}xcNJQ#`ai=9`mi#UVtgSf ziqgEluRZX*h~<5PPN&WGv$IoXK_9iJC+&e^W-l%V6*L-+J6V>`S60^Ng3>-X_|5k0 zp$z8LrSI2jf0G-n=5EM!%Nzxuh{Tzh?ArGBudPC1(HGMAIGYn3{rCpu!u%^u?CtNL zGXj+GlpqLSL!nUSEh+zWoYkb~O$GGt5YMy508WMk6Exv}yaWF|Pyz4Y{JBw|^Roa0 Y09+IWI4Snv%>V!Z07*qoM6N<$g5MPn7XSbN diff --git a/interface/ispconfig/interface/themes/default/icons/x16/socket_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/socket_pencil.png deleted file mode 100644 index 5e972490b36ba502baf944736d876c4206459166..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 708 zcmV;#0z3VQP)l@KVU;Wcu_q15GbZS*(!w4qz0{s9{iC| z`y(L`(qtfzJk- zO}%Xs#S&R}Wzy_$I6P4k#R9!80Gg%&5&=n)!QpU#s%oe+42otUz&1Qrs}f|gS*mYr ztd9q{O9V=#k|fJYNs<~UT|o6-2D7>A4`7?2euVY)4H&sSNneRm$oo;0GMQIb-w@!nP>4af@C2@fHeq~x;(M;UJNmY#=Oqyk1Ysi{kH5o2hS}Ff zEVe|TDIefxeg=ky24Q|a0VaJbfl6LZvTW-RbGckL8l7A5`%ew__n&EBr0MCWp!`a~ z)~5#$44#ICg%uELXVb~oFP5+m=1{m*=nD6m&F14KlgZn8m3_VXp&M7UOIJrHPd<8h zKl6OqwD|rD^SRkNRwkV=y>$prC#Z3-tSa zF%pSfEfflOQ>j#L8oJqR)~nU3uj~4EbRAm2vaI=hKED=^$8)xAPi-HI#d7I%dJPM` z^nJfUZ(y3{VkVPWH4K9kgJQ8r?WB%lmlt=;*S(a%sc_GJf zz;#_3!>+)xEbu%p5lnak+-DZYiH^rlCX=A5zsYUD^ZYQ@Zfo>k5cnv;OcsE_U;tPI zJNF@xNPuk*@MU=HHr$=WcwQV`f}xnOfTn4NXy*-9t-e&5<30kez z7e!HO>+2imC#k))^@7^U*=^W0_9(+TUI)58-F#L0_S9#CTMPjpiNuA4#XFmukM6Im zTnvdcGehqLH!C;b%=OeioKT)uYP0}SI4cOkIgaDx|54ew&6R>In1=d+s~;ai0K|;n2v*^IV3*p{R1j5VSz*4+aCDo@@ETbOd|wZ$P`+B{-?uxR&MN})Ut>Ob zMGI+~N|t2>ZZYzT0=wN#*y}9?_}9q0TLBB46>PWLn-!?4D&*bWf~IM|E!?Ak`IQ1S z48zT8wfZQ>_l)XZi26SBm``4DAC_hHFawQAq|IhCf4yGwpNnnVqYDum6r0ZH^QB^% zreLxfQ4C4(kfJE^yWK9y6T>hTjW+-_Ns>tQ4AoM>Gw=jF053qVn0JwcPXzb^KB)l6 uILcK4dINYYy>{*HIDjR-xn_YM0R{jb#sgCff^BuP@qoF87z6IF$^?d^$lMZHQl+25jZ;xFE5DJCDy=*r7Bp#2akFoId>{|oZ zu8iY{3G8+Mem{Q(SY7(`Rcg1}(O4{&CaS}#!DO?BwUwWqy>Hv-O-*6qvVzs;Z?-H~ zUX*OU?Daehlc#qt1orKP4``+o7%$)BQh2*0h2>?j)oOuj^^^Py7sp32^7<7X+?>SK z==NtV@*DqUFeuOFHBVEEv9M+z+LmPn3{EPdD1zg>1cN1ZnuJ|u wK=2;TPr#ZB9qH@Pu(tzm)FBS~XZ#Uh0ADB*p$f>86#xJL07*qoM6N<$f)F;a{k^kC@C9xa~45)aWO~f8T8kY zMdTs{SDsF#QW;zbB9X|=o$WVfAb9?o|LlCQ-q3~0Z?9i%PZu%wkm$M|OC%DHL{SVo zRdl;uTTK_{B>w)Hb1}HR@)lN~ErfLK;~n{j`qeN=k!`hFqkZxJWe$|mUg9(3V5aI6B$H=cr*)WO5c;PtkqQ0M~dR4_>C=PM9}DtOof z@VOe$`1R28KG!i!PVp1%Hryqus`eEOT2td->x+qz&;Ifr8N-?|aIpWa;wGj>oJSb6 z*~^cIwFz(>2kCVBNpSr0^ZzRNm(hGWZ%3U2BFl2UR4Q!;0)a4XoSxzJ_G6ys`!Q{M znos9hV@Z-`@ZMt>k2-fL6bhMItp?a55RFFf4Tz}YTiHa4OehorMN$6xi@RG7sa!5+ z{C+>3yn!lqojEw!qW270TY+em8S8|MBlMkEJ&&}JBcw_d&~CSm&^sDED&n^N$gtWW gnvHIc;g0|V0Np`3r!mHk6951J07*qoM6N<$g2doFDF6Tf diff --git a/interface/ispconfig/interface/themes/default/icons/x16/sort__minus.png b/interface/ispconfig/interface/themes/default/icons/x16/sort__minus.png deleted file mode 100644 index 4c70bf02ab215e88b1bc079044cc53620b3f98df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 497 zcmV?O)W^Ofq#Y2SR+ys_oxvzOl0(uvUJDC9`*f20n z^JoT=Bmu>p+=492zb%}?fcz;gX&Au!{rlv|FEJcH}7W_>c{i9NWuXg*Ve}phi z>%QB43<`0}R8>vj4E&kIR;#5=CKLMS@Dho19}0!5T_$?H-emE39EQW;mI14~i!>Mv zv}iP1&fE6gwc{jr6L5g$dJQFyfr7X|oFOg|2^v?#2tn)kNs~;wkjH7i@mgB97DSwT nr@Zg&XaGG3xF7kIG@SPoy%mFegdl^Mwp@~ZXyLjp-_y!yw=CI%;tro%gYzHf!h*oxM+WtVD2aJ zX^}`I*6nr?4u@ljL}HQENXQ?v*=&dIt*u?T?DHiqD9SS-8jXg7!Qf4+)#@2iq4`{5 zwe%W4K0k!dcLMjHno5;QWo0UtdmuHNO|!*f@sL!Ev)c9>WWTIndfJQi^>?@$x@Awj z`c{=ECn3qQj83PcVwC+VZz8w#7=FJOsnlC|W^Z7^H4j<-sK%v6qXDjU)DM2|hFc`EF{;6P`alWR2PT4IK3SS)#he!YR^t_sH zGMNT?g7cZDuHA08i+W(76WP+~bgWjZfqDd9uXk}s#4gRsdqQ4tI-Mw&%L7q5T^*!S zsT8x@?M&Vv6J-%*!qzW@LL07*qoM6N<$f{+L;$N&HU diff --git a/interface/ispconfig/interface/themes/default/icons/x16/sort__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/sort__plus.png deleted file mode 100644 index 0495593bca0f8cd6c0056d6074404688acc6dc5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 565 zcmV-50?Pe~P)>==e|+GsSMooTgNV45Zf z@Pc7bLegwF99C$hJ-lKp7K;T?!6f?q_CPcmRj3N7OC%DD9Xt(Ve-LN9UawDvLZKB= z6lME~X0zG$Baw(=kCn^iY%-Z#L-&l=YPEj1+byG1=+@{w@yO@ZYSpS{uh@+d&q|={ zy7ij9B%pU8-n$i0g0_N6rP8wkK@fm=Jzrrd_YDrTBls+iBk@6jU{~-K($`t|GBpAF zR~bve-@y#y>G6o($X6_E%26!{O~Q(7>xr74Gjeee>(~a@}PFnIuU8 zoPqx)F`Z5;s;W}Y;p6)7`Sje3uk%W~TRSP{_xqt#Dm@Eeb?YM)i$%rb@hln(uIbi@ zW0YcY_){>uagcgw2c(|9q420cL<}HYh!2PWjVs~?(SX&ypF{IL`Qpd<9ynPLI0HwA zDryB?{vL6O$UUxi7RF#y`+bFDXr@3nf58BUe*z2ui-rp%W?@Zb00000NkvXXu0mjf D;hO;Y diff --git a/interface/ispconfig/interface/themes/default/icons/x16/sort_alphabet.png b/interface/ispconfig/interface/themes/default/icons/x16/sort_alphabet.png deleted file mode 100644 index 28353f241eb9bd6df62817b20f8e755c19675aef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 588 zcmV-S0<-;zP)_K^Ua(&O0(G{MN!BpUayxlP1AY#$ap@TPH)HK(dBc!Ua43tl1kqQAL<2Ca*M@c#5Y}?;3PIa zpTQq-C__6O4!6Nz@PQBLw*r5}NeTP?p3dj9px^HkXGa4mole^U?RHyqAP}HTCL?Ra zNrK&ON2nDElF6iO8ipaZCHZ`w#^W)~W;5Bxt04}eIvI329rT1&tCiTbT1_-qb-P`P z$K$rI#X#L|w>E>(Xhfw_$xcwIR7CfBJxZlgozw6DO<( zgMqB;^*VVx9=in1$)H>=ySi=lp<1oF_M8kynoxYmmYs0D)aPGqo{)j^YMc4Hx z&wy(ZA;aO&Sg+T3b4nx(Wh()+kKs49=bH(>U;s`0gN+3L a1sDL$M`CSYoOI#<0000;eN}e}I93AO?zo#%BHn19K-54g3chZeZkQf*a|wnSmmxEBLW~UA zG8R16^ba%mFv9*fIu5NG= zg|BCb2M=W!hr{7M5D5I@1NvV>Ja|&Ve!r*l`7CI++Y;dS`zf7HD?-2DC%zSprBo^< zd*Dfe-EK#y6$x^=9F50gn$2dib}W%dh_@_D_VL%igXwMsxTV|eQY;peb*)wt-|2MF zD_X5qD%Me;Z?{{epx5hBGMOZw&nN3jr6PVb8d0%WR0$9d-d`m^{$MbWgL=KLN(csn zqDI$siHSy|sszKWpjxdelDh|`Qt9R|xE1K!u+4NjeYM9|!KoE+?;{TJ;30u#nr4J& z;ARqG!{N|cuh;nJ6pzQtUq)fW$zCRt$-5Q~ho$>&;~|lUG@s9{P$&fQv)Ai=yLkhw zX1QFF^9*%c!2{zbd;j{gZZzlMH0krXnH4^+0 ZU;xZCUw^?B6w3er002ovPDHLkV1i*-3*Z0% diff --git a/interface/ispconfig/interface/themes/default/icons/x16/sort_date.png b/interface/ispconfig/interface/themes/default/icons/x16/sort_date.png deleted file mode 100644 index bf49408e8a66eb7cf51c2ed2145097271ed1f5f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 558 zcmV+}0@3}6P)`m_PZ&0RZ_#xO0 zV@nKR8`tBVAEK(dZdNKFdcAO`s>eNbMQnOF%lQS%GIlhxxw)oHO!zFzYAZ}lYp+E` z`P>nYtQ88+51Gu#9Oqk7-Lj@-kH=@lU!7qq^CMsOAYjk zqu?o#0A*;XCD3X$Q2hR%jtyK8pz+}~NT;fro=+wh{D#pM48!liB?(T0!SoU}&~bMY z$0q(7ORC|x9RFuO4Fo&_)wLRE=ytyiL{S9I{!9Owfb`A;La|tU%jfggE|&`= zG{?d5h3I@wI?_{J%a2GT5;hED5!a)gyJWN3RJB?Kx7!V|SZt?fh&OC@nakxKStt~O za=F~~wO+4BFs+tKrBomgpyD%GmhU??G))DsI&+M*C-5L+$N=I+!pI|1p$mz;A}=%n w-FCYAP6Ns^GH7S diff --git a/interface/ispconfig/interface/themes/default/icons/x16/sort_date_descending.png b/interface/ispconfig/interface/themes/default/icons/x16/sort_date_descending.png deleted file mode 100644 index c33ecc9f832a38e6c2550f1299697f621e499133..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 520 zcmV+j0{8uiP)hIB;jc^8hs3h!-*WzG?C3_A!3G6Fiu6uR4P?r z&+nLH5(PKN?-4@IN8T-y$y5x(KsueSD2j4st8wgy>R!lyLYC!pyWMWkPNo|~GRAa_ z^SO@Okox_8C=!Y6PymY>=X0Iaf~INEb=|@;#&s4!uh#?jx(osTHLm-&0wx$MP*rtl z1)?Z|>nyTc;Po({PYi5Hi`c5)kNa}Deq@@vlEGg{fwxeA)@Z;WC2A~&V6{4*f$|OK zBGIDRX|*=>VlnIw1paO!w-pSI^SwUbME{iE7ZEwk7Jkc#j`-rO&0-sFTrQ~m03r}7tqFl--CbVsv0kKM*Da?z8?+;SI*^fp;DVk+x#q3;PeM)oQufZ1&1GU7X+|Hh#vC4<6c3 z_xrs+5C}YRfc|U92T!!H+wJIdItjE|EgFxkY7)`Fu|D8G0-Q4~%=pE#r|974uFs z#}i?EG8RyP&w){v1>k**JImi(ncy=9(83q?DDW-708i_KLWqDsjsO4v07*qoM6N<$ Ef;mR;(EtDd diff --git a/interface/ispconfig/interface/themes/default/icons/x16/sort_number_descending.png b/interface/ispconfig/interface/themes/default/icons/x16/sort_number_descending.png deleted file mode 100644 index 229c0d83132e9c5aa59492ea1c41bf5b7f80d148..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564 zcmV-40?Yl0P)^yQ;BYuNaxRw(6$%A%(H-MMg^Sd5I<3Paraw&P z!!Y}IhS%K0ZTWm&KcCN($z=3et)>}lOj~hXoBbD6DwWJ^Hv8b4E_QGe3)g4JM;*qH z_xruq=kvYs0sYsIk2*2JZnvY;=_Jr_MJf!J#s{8$Z6gNE{&%p5pn9Y1XC-WJ)3=4l+6b49>$a5AMPml3;`PWL5v2!0t^6s1cO4EEd?HIn}Z^xR`5sFq<4?JG_lt9;N$Y%-FNRU z?|VY4)dE2fz;B^Y2xM8-@KZgJ!d7tX8X6Jjw9`i+H$s2GX~(lM)|~JBkcEkIG@i9x2)6YFrUxonI|4Au-ol`X8o%`E|+7T^61uxce8_D zuLtAt7~=6bq*5uU*XwM*TCK7IUI*Ll_G$;Zt~2mc%jL57Es7!#@5cz0N`-AU8V%@n zyD%6GAel@;CX)%oBuV-n!QVlxR`X6tr_&64?T=AD??7BE7MuBe{^rWp1OG1s|32kW zKJlo4plMnRH4soD*=RH}*XuRiIV2K^(#550u-I@inal)LRRNV1h@wc?Ls~AEW;7Zl za$ixDY2XcDHcmaI6h$9hb)S}ir7&tLhZvlCpz#-$JO$U__IZnyLK z{r+cm(0>K-$P+DWw_7?Mj{?nRQv_r(nLmplPZZc}HiTYLAe~MNBi6qOUJZFy3@Vk1 zFqTRsYPZ`o7z`*J4pS@^yDDHaSg+SMgF>NTGthNi;1(lUmI--REfkAIVXRiG)M~Y; z+wD>`8l^-c;qobp^4)@yLAhMEPmIUo0@mK?L%hX6o=&H$$z<|oj;{^tUI3>ZafnBr zxDQR!LOcVmNrd$KePg*?;>{@%iR3RHV#URJ!{Kl&1%pB2$#QvlNW@2)&1Oa*5I}Or z>-COYe}LI677Mbzp=>gEWIQnL7*C9ln0KNDz6j%k@eT&K4vex@0NTsAH??wOeoh!b g6Q9_lz?T3607J?-qZI)1vj6}907*qoM6N<$f=DdwS^xk5 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/sort_small.png b/interface/ispconfig/interface/themes/default/icons/x16/sort_small.png deleted file mode 100644 index 9f17a434d0d08b43931e70a559d776db2c5dedbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 370 zcmV-&0ge8NP)hKoH$UAS%;w0Sk$O zh&H`1fm|UPOKEcuS2U>*7jd7KgaRpYOF_f0;Un<8jU15>XsA5WXqkD#o8K-U$B}Ij ziEWh41oG4f!;neRH>aW~2Iu@hEnd2=`+{#62Iji%as?E;r=TP0DM^wS$8p|p!iFFC ztON}4uD1Q`+lUXKMEUu;L~{MuNLaM-jO`DZ97W@Kk(HV6h*-(o6uRHEDL;< zAkTC0^M4iG@zpg_K$WKHCpJMF5JWg(!w>u~0iWJP+qU;j(>$YP%d*TM2wpwUJI8UH zkgrlz^*xHB>mq?^nyf5K@l8`V2s=;(7hTuIJD!iE|N1k=IU7wnw`b_nds+#6M3Km@8fgiS|f1me!GR!gM$}Znw#fXOw%is3WN|Hvm+zpRrS!N!~F`W~L*dOfC?Cr4g54JtxFl*=87(b2g2 zPPkpLg_XB33ajw^is_jrN1k={21<$JvDih9*r33jhRS??hvJt{uwFj^ly+~ceF8c1 z^#+0y2+{d89v>s%^#H+LfLvdO*ClaSyum(C5j)(q2IR;Kr$M<~hSH<_WnxhhU>hE;jTg1Ve^EfxLh`p^xu~CvJ zy_~QwksSFyCMcCk506EoSNMi?)%csb;GzURdge($d0KUS_j7Rg+Z>mNjRm|JQyBFaV%)yp9POnH2y4002ovPDHLkV1n^I BI-mdm diff --git a/interface/ispconfig/interface/themes/default/icons/x16/stamp_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/stamp_arrow.png deleted file mode 100644 index c3c37036441a372afa52f1914b7626c8a97cdf2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 774 zcmV+h1Nr=kP)24szm%r#O;uYhZv9U2UzdzE2Z=i2a5j2tjWi9K6QON^=ck zj1ESPO-;gZYpdnTn-B!|26Rhr;mWRzBzRP$;!<;SeO6}X=%0&3zuylk{F(hl$y;ARN^5H#%Oqg?{n~MI-yQI z2DlOqhdzNg;v)$Zsz6bUW8K|d1jNcf`VoL_eM79oa9a6*6xoAlZ72b8#E0Xc@%eo8 zm`{spYJ^dXr86rIcu}7RolXab!x5BTKZk^j0(7|&@oIi~Sxl^AUcU&B+a0Ok;<(M$ zNsqM4|IXzeJ5JsnhpEqw$I#DAlSZkCSa<$?FYN~g`X zTvbs~I=QI@^~;VQ*xA#v`X};plknLMY_q@nsnNibhZEDmh2CID)fX1taPhiy2E)yNJ;~HDS$t^E_NFUlQ5l8Y2>d`CcEFfuaq|BvNBU^>8!it07GZe-njdelc)+xNz*B>aoU*c_l;RFQZ9_?3HhAgk+&KL!Rz(XK|O}TLawi&p*A@Jcv*A|8jS{%laoOlIRxm^(x6rf za4auaE+;>mQ!Ct?GB`Kb++0hSuZ9(*3N{(TUO8kVwb@gl*4;)Al@=o89WPeVv%@5twZu zNOn6Uo$mEUjt#@e*jtD6r=)wEelDJe=a&Ej0GptYXWesro&W#<07*qoM6N<$f*mq@ AIsgCw diff --git a/interface/ispconfig/interface/themes/default/icons/x16/stamp_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/stamp_minus.png deleted file mode 100644 index 5fd5bfb7982f6daec869d84c9d35ebae224b288d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 721 zcmV;?0xtcDP)Ptm&%8|SdFj;Gsuw!rEelc%p_2AP$C#D3j!r1>BZJVC9wyY zBtvhS+k@M3XLt8@zHRNHNIUSq-#PdDec$=+Ip39fCni8cV$3FtQ|Q%hR@byu6b92Y z4Z5z|6h&$7b-RZb7Z;s7S>lMNIFfXGe4G+p>1%6yL=)k}zlJ19IqM4qt_m|ubEB%N zpJ5Zor@>ifa=2i6frkNQ~1&RbM(gJH46!WC4;4>tV>L&ElFwe&UFyI13i56=Lh zgM0FyKpgSK1e_}1y!Ex;|BwK)4A}Pr>gEc}1{EjyCmfYiC@aY)AddJ#99TM?hR};9 zkEerxnsVU%jT0z0??WUK!R+iTVhh1sMdT-r_==?^H23rrD>y$hI{JVPDJyQr^*Ds% z_hxW;B!nZi4cOXNu{}SMJ4E7$KQ=d)?~OAZ9n?IP-xbC6W^8OQ5GjMjB-((Bk_Dh@ z;s8Ajs8H5$_|O3;;c&E+^Ek_9x!CKYF_}nEBGTF=D8=G%-1^f#Z*SLc%5v0SU$1wWOwl`xeZC8X?u&M&zO53n z7_C-oson1QxxBovn^j}6xQK~~npUKpexCmszXTWnJ*b&EQLme#00000NkvXXu0mjf Dt`bey diff --git a/interface/ispconfig/interface/themes/default/icons/x16/stamp_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/stamp_pencil.png deleted file mode 100644 index 57c91bec159848c3e2c159733f4b2369ab79bf16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 801 zcmV++1K#|JP)%_*`zf{ z{BJ7hoZI!f+waUN?x8yH<@@{n&gY!pxp#M*wyg~m9M7wmr7{`+=aSPo0eA3DrxTJS zsivl;PHQtW8-|94Qvc<|5l?j_uC%$C8eOf-$*HFWOX6?Aah%J`TUzp%HPBiviXtTp z8D(W$XJuvG`M2v3mS&;+`5p@gGB+EvCQCS1UY;Kn8EM$Kh+kb@g&+v&omEwJYwS?Q z!zF%s7BbPgxhGMcIO3^}#0#_##TTi?#RX0VC>ThR&6uFD&28>UlqZh(T_zK<^YYjP zf&jtcNbjz$)~~Ub;w6Jim>7h7c?Jsio}BW;5r4#JbUy-Xz|?)JprDXO^k$%+oMk45 zVf!@(sqYEE6y&r12*e#V7^Xwb=I3j`abBPa1R>+4Uaup-Ujc+~2gJEi_{&7Z3tzBX zVS}&NdV@z56}o;uzua)G_RK7BOYU$uXp*kv++5C3S63Ug1L(;=1f^05i^bxSN;Qn2 zhy*MIjN{6+`lrT@4$aAkh?;Ck>Xp+3EY7}eYISz)&Tn#O+2v%V@{;N87KEKXPu z+NZ^sxD2B%R+EsD(lcteKh6RMc$&a&w?9kF$||A}=UCzIRlp_!Ba1-rB^^|Wu}}tl zgE}r2_iG=T_l7Jr21iE^493T^7j3oD1ey=+?KSk1UI<_I`1-8VA2GS_GY-e4!O;5& zX_ve98}GD+?TiHaHz1W-y+@UlbYp>iUP`t4=7x{Ynj)K_lM=j(HqIFz>#p;RZ80$(PXDd^bgsSRB6ln- f#N&K3{s=Gt|G;A4$2<1ObtS?pogI5Ln>Af zvrJ61WoDaqzuiCm&b9_6+7G^b&+nekIrrS({Ru6-y`UwCqLrJ2Yv_NjYuX%=OVl(C zx~^O2=jV^NR95;XCnp^nIdQ~O9Z9&+(?g9ex~i-1P{5N|ZwZ1B_h!GpmYa`aqoOF3 z7_4Y&68c;&@0rmAgq1~@Kfl0IVP&ep{Zbt#o15zj^79A(yhx12VqlDw_qDZoRsPT* zA}%q!2!rw~wI@-YIO3^}Br*yV<%y%Qv0meV#6gl_;XR~CD77b1o;c#EjwHqy1B*t> z2i$It$`8e4KwOxcfHAxPDY+-7JaNQR9Z5_E17-E~muSQ^4sJ2>24ANT`8Esv%>#fd zdsE^Qh$BALfYAhuRSbJP9Ry@ZKwc)Ggl3RoP_U1^MUE7~W>ca8al|Lx&N2y3YcPKi1 z{O_E)7r^e;5uEJ`z*e{)E3yLlWf#W3PvD&6bdIzt9Tw%p?-pqSS(f{YtE#Tjh#@}E zatw$lz=xl}HfIN36-RM*$1~_L4a@2>m@5C!R5bt{KB3s@q()bUJ3DW)#GP1k1CI?I z#nzJSHP4^-kB-FytKFV!Eh)LS#IKjxZomGopC4(^#a7GgF8?9DaOR*c+{_xst;_)2 znLhfETrRWGVzH#><=I!Kr(dt-zK#t>H2pNt^j=r1YYq4IP&yAL>kj exF^?d0R{l8a+nDAy^nwZ0000V= diff --git a/interface/ispconfig/interface/themes/default/icons/x16/star.png b/interface/ispconfig/interface/themes/default/icons/x16/star.png deleted file mode 100644 index 353bbecb1acdd3a5e2157eb195b464b528ed7a18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 750 zcmVj#acBTF=`Du!9^7)@?#yAliPm8^8mloEz}GI)JJ+ zcEdHdXBg}ir>27~?Wa3Y(MBJ}nq?mVr8Q0Z<*r_V^I|-4V}7Z#7kwCO7J;=k-t4q( zfJowahoR=!A9xUM>FX#L*PkB5GI??bk{k!aoylVZXU^Y91td;%tRgFP!PeI5uSjjR zJK;sp)T)`Dex2J`U&**G4D*-HL0J^Zm~H;~`*UfkLzF`Pa3~bkwN+59GL-cK6f1d9 z4F%SIWPi_P-puQ2;Q=H09^<8i03Zm&^ZCfUEIFUcTiKKxZ|hc^RoS8nxP&ps+hCh| z;n(uaM~={2tZszynrLQ5P^@(okCIl?}~1KVN% zy62~q>rce(NWiB<(C5?Q~6a-G#+%%ToPQqOJ+kXJ;BCwQ$=*2;}u4zspo2`8P@Ws3R@Hx!Bn}S73y$qY_ zARCwBKQe8+>VHkeT|9*8-*_u+EH65Q}(=(6%7QN#TF;27$D) zR-1}344m2Kx6zouD@g_WbIg0KGUQn1l~bQeVA;yFWc zAAd}~xJ#)|9O1D*j)d%kJSG%Coa2_BEHv`7+FnCaL*hKgiAJe^eGw(#;*u{E5?1(l z08^7JXsGBKFmVN&=PJ~v4iz|1@)ab0){oTy;T`}uegIhzl-ALxG1nctEjuV8g41ZK zy1t%=zUgBy5OAqIV?!bE6IMsRn#$C8P}!}Ku81DyBh7Ce5|PJL@@fj-oo z8pLHIWTCja{RZ@vUTlk23`ml`v3FeKYPpmiMA=0iLK&Kg(WaBo!qDJA=VF8c1S^7F t#lTKOee=7*(|1_1`ogu<9O9n<0{~$PE5^8FSVRB-002ovPDHLkV1lr_ctEaN$Bw5JVI~!G*Y~B8Z3xf(UM06f0N|v9%~IsUX;ei~2)r zV`D#718x49{3bKwoAhIw_Q9QdIrqLZ_q}@_xqFS^(|6$FX>7GluK2#n#Qn!Wzz>j- zK2ipF4v^(d1ou|_rS)JY1E{6tm|F!+z%-6stMiF+Q>z)|GBZBv=FGUH{olNSV3pZs zTaF1qhqI<@J76H4oar!(WdcRn*dkNeb3RZ1QYu@gyQbZ1ni-pznX6oz2sEv1je^+V z=NQAq65Sc+BnBB==C=4 z?l^elY?EYVETv+cZq%V>f0v6In)dr0cEPWt!e9lj`sH&d99amD>pFVb?!!o0EM!nE zEJkOi#_B9qS+L8pJ(rz>QcNP5iy@wzg_8IIU)yC&O+1LjV)0(u*bRCwiPb6Sw2OWV zpMN*~_32GsJl0br5w}6BKxLwpVz7GxhA6p7ee3Q+g&t)?cE5e8HGcrL;t` z5FsL`K;pC16d2h>cxu|oiBr$8t-iBa*T_+=1WvTlDV)DfKg57qqy#xb&@^U`r%H85 zd=552r?X4KDpDPl6buXuP*Fvkg4Enb1=VE=s@%ctM{DET>2TRR7B0-U2fP}(f~CSFcz10JJ^yh!Em9_!3Wi*8bdV&+JA*p@!)7A`23B2L6YFA_qpsM z6M;G|WC;fvME)RhCUXUoz9qf`NJ177ZsT{ zA!sY9JhmG!5R3TR48tUl<;@Z;g_>2BR!L`Z)LGeD&A@EtW3j@sg&>p3qShwvYTzwK zDM$2Do4vY$`B<#*@KoAJp;Oa?`2@YpdRb*|cf4eb}hqq8`v7o!Uc3)e2 z=Y_f*c8icst@9N@xdcAODTjQw%cc0oHvhi>0{|X|BHz`M$jtx%002ovPDHLkV1kAIV#)vj diff --git a/interface/ispconfig/interface/themes/default/icons/x16/star__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/star__pencil.png deleted file mode 100644 index ffadfa84c6a954fa5586957db70eb938424dc3c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 874 zcmV-w1C{)VP)&e_!La^OAZ@Sf*+&U4=L5*JPo&^rilveS8DDanbTbPMDxlQkzF zZ@B1K7CIZ(G$>|Sc2$GdTkl!E{L+3+dqyq34!f{e5_^IGw>_;m6Ws~3Gh=Q^f?PHR z$6Bu!ZgaU@C&N7dpc0^u`r9+MN>OovB1hVWbSyB^e`_Bi8$1=qx81nb;C1EDU6T>2 zZ%H)){|G2boSbcDGFDQgmNXrD2P{h$c`9n0n2gTORqYkLj8%x^DfF(kzeSK;usI8t zPJZo$k@xLTT2|w1ZfclHO$Dpn2DJ!Mi+Blv;SsHxB;j;=_A2+Lt%q~WMv|7rY2;jm zHysb4xS|bO?|5KiX{94G*X3YiQK7r@-dOOvj6dsc7S zT`m$qhrf68!m|WEH1%V=>$%aO)hRMe%;y&sQ3GCp36)jDq7WoZ*4Q6)iLwe2i6~)G zM@%fvlSj^=iO@h2kpQO|6op*lOqOhBJqH$p3KqQ#W{QK9WZ9-D#2SpjSj>rYvC8?z z#P^|a*^(?ynwr%qqAGT`4-LHP7#>hWPBiLyoy~4^VhqM&4j%Ew{fUaMqHoE|h8rCW+b}K=2*O5*rc%waOkT<5y~9=0T1TD66r+2kwuwO3^X{>5TN@b@ zE;l2i++wS1q!`^RHHJtVDFrnRpscdFRu;k}0}Q-tZ*3~Ec>jNGLic>&F`1yR&ePP^ ze&k}k-Da}p)C9R`fF>>!Ua?i@zmeGrqL5X_0#C!S#krtiK%cq06H-7a zwN{(c!aJS3Bt}3`Q;?G4kVr>CkTb9_KehBR_-s-V;{Bw^w@6)*t6eaNiXkg2znz_W ze3RvRPN*p6!bCpMF<}7|S&sKEe^TGol$DbVy(G1vU2%1N5i!ULj;7OkQdMGzV+63X z;+i8PiN5P*?rhh&CeZMHP%une88BVCPFjI5XeuF)utnER`zkB6GCM1Q!(xDg&4Dlc z3rKlkR%{s30iHs6QIYWYhss$c=?$IIuh$;gVnHb#*6i z9)A*?2v5!}fsQAb;xKV9{JXg4&~@VHi@S^K?6dd4H$=)*I;n&v23z( z80mVh&OP@rbH;43SY$?{5tGm7nH%d~-+!0`)oPWA$Kwo#4{WtsF@C?_%!}MA0B$y$ z)qKtXWm(qDX0sU(?{c}^aQ6E>Pn!V$bUJA~V_D3VjY7xc@h%(=%P{x`4$kvsG0(i+ zZjp>mZ=%uY76u;}V&=t}0Yy<5mSuU5$KwhF0*}DxSbj?8DJJ|^;BvWqHiH;7l}e$V z){>@>+wJzJTQae^T<#@x_?So}JcUAG6$*t8giCr{)OWAGI~I$Dvr?(}hr=O`*0fS5 z+3WQVD5z4Gw|2XojYJ|M9b*klH%V1hd#lxYRjbtkhr{6~#lK6E^kiJ3%5mJUU@-Wl z-|usi$po?~&kY!2;DDBUh2i&WS^?IE-pU=!@vta~5 zuu?FXOeO`r!wcP1V2FVOE^?5oP0(mGH2KJaKA-Q&;cy)1^LeyXDy3oYfguJCxX8h> z;_lO=K@69q14JN|&Y`g_K%|qWFR5c_+O{mADW3-JGrkpfO1kqNE3sb4X+2rtBy{ sm_(hwrPJwTEEao5m{Wf%%3lEn0O815@iXI*8~^|S07*qoM6N<$fT;Bi6i|NjtveDO0p~;?;a%8_XpkEvxp71+Z{~0`p1WSJ|C|r$_SDG&+`W~ z9w1QF4*Vu|c#NTShsWb-7>!0N61dugxhELZI^UaA6ac&X^nlp>4JIe>*oCyXxOnZb zF;UO%gP*1$Hsn7!aqiOXfTfQ%x8)kTsDaY@3(k?}I3sZE?q|#8vSn&&%AL>WiL|8Q z%0<{Ro2fZP+Nk`=CkM=ZoXN&yk8^s%i%*(gym0WdG_zBxeiL4Rf?P9U$%4V~S*Xw=FFw8g1=^YRLtIhWVD3jp8x{@ X^pRhZeCQZ!00000NkvXXu0mjfX1aF> diff --git a/interface/ispconfig/interface/themes/default/icons/x16/star_small.png b/interface/ispconfig/interface/themes/default/icons/x16/star_small.png deleted file mode 100644 index ec965f7627d0358e423954cb9ae3e3e577d9e140..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmV;H0crk;P)gGXSXmhuSRtYuK)e`;V}ba`?>`I-zkf3@*oOYY?*fpbe-Jf>P$5GQA0$q+7eI>t z{$;S{6*3eB(YQ2YcmZhBW+=@7aZ{HOeP#091|VA zl5~ZIMR@=H{m#J1$jtEe^|R0Wcdfkq^T*HpjJkhkaC(7>iQx=4_s_huN2Xu+{OvKr z%XgOF>BW@ct$2FfV|?(9a7L8vqbs05=bjaRx14|GX z0}Mq)MJho42QDry86f{3kSz$5`-s;7pdUe$Fp&NUjKV`eC%<_A{=Eb+D(yhxK>PsR i0LG!87brFWAiw~x>5g+wI%`Y-0000gGXSXmhuSRtYu?|+9hzWEtc17!dH`t>UV2fBybu`1R|T z?Dy~A!J3Ko0>}`cUTZEM8Rj29ekgzY_Ki3%0Bzn3r5S$z0Xo6j_wCv1mlc6RX-LXu z;WXg-O@>Ae4vvYAUP-#b!Xmt^Yz*@Y3k&bxxN(EKyStko=$hSly}-o8aE6=vXWrQ( z(=UAf_L$-8k5`|8!tb_i+a{)}s=9}Th2`>hHyGxI-SKneooKH@b1 znyS@4e)x3*NVoj^_y6Mi_wOZu$=wdf7Y5=7=mszj{k%Z20RRC80I*Dv$uMUF`v3p{ M07*qoM6N<$f)Yf_MF0Q* diff --git a/interface/ispconfig/interface/themes/default/icons/x16/sticky_note.png b/interface/ispconfig/interface/themes/default/icons/x16/sticky_note.png deleted file mode 100644 index a73a7585291cde501cf836c13f2786fff91d7a7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 467 zcmV;^0WAKBP) z2nro_)Jb<27ypL1wNpnoan?a_7rF>et}T`F#0(9u?;(U? zOJwC8%M+}Yfno_#Mk$gchB%fGMG|JS8BC{NaJYX(4d8@$JGliWTQNjIR@jnhjh;RKG;(TXmW;CIKJD3^(d7x;QVZrFp;Ux(MGKxT^7{B;nFrMG<1h%+Hid6IQ0{}K>veP$noYnvU002ov JPDHLkV1jRN!u|jN diff --git a/interface/ispconfig/interface/themes/default/icons/x16/sticky_note__arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/sticky_note__arrow.png deleted file mode 100644 index e152858ec5ebc7d3aa198553a07ee0ebd2934903..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 608 zcmV-m0-ybfP)mAFudHff6>7qxUz5k$3-6h{P+0i9B2 zW9H2B{ddlL^TyCo7hO2q^Ugircg}b2edM|>{%5H(Gvql$xXWAX5&3Vq-kjqAL0vUC z;XvE9-ZzgN$6%i`V8QprT&(=cA(wj+Dy7c_xR9`wjC~unZFpu`CQQ?YVc5`h9XmTk zT)#ZQ1#pXT7t0a^9FP%(Sc*vU3n|KO?^|1&`1tKJB9T-&n|*zWLwzLz3UWBz2NOB_ zNRqK6cWE*~1ck!XLZuEAA55&dGKoKI61nAwYTLU6awsx*A_tNXDLkWp2=;a$G7cjl z3Ln^k>VwI<<4PpYXFIX{yAjRW{aDeehQ+tDPl7*4R3us0s6y}6bC`ZNnAo&hQrh)Jg2I%glR9E6o zOok*ng-`ael@26(;`no-1;;z$a2gu0ssUYzlhOI_%V(rkBU^NMSQ%<>$JxD)|NZ*I z_)qP8z4!%9!>OMB`e?*qo?zu?Dwgcf urChiPUDLlVJ$+&Fu%CrpOiKK(00RKcwA}DGS%aYf0000^@RCwB?Q%z_SK@|RGvdzYAl7__k z3lgh^qK67ONku^{9@>k7h~Po*UcHF778JdRH&MLlAwj%U5PA`MkRpntv_>IPkX1;V zZcUT4`#XJ;-OUdvcyQojA2aX!-uvF{Fd+o~XDRdZtQ9bZ+w{r)BmWK6D|#Lf)>Xn2 z+8DVsk-zVG7R8hS2YxIe@bixjU4O)b^kT^4QY`?*E?n1Y!EtQZwhPO0VVWj(cAA(x z_lyeQI`PKa79=?oV~mp(X~{1XiFA6e)i&{AaRI7&^WN&}>oc@96$r2}hthpAV_u&~ z?o^Jtv`Iikqw#8auMQ$UnUUwcMf_niX}7(jxNb*49!eWDkv@^F>PKvC6p2eN@R=D&W)cJbE%b`ijPKw|5}s|KP$-a< zU(mE;X~)F{+aZCK6@l4Vf$eR?fdL|FZE(I1Yx)z90%84 z=E3BzoGz8bk)REi!u8@Idopo;f6@Y#(KS4{H)JOQZqo$x_TLiMnq+Cq5Pw> h`=BR>(*^AcFaR02^O%VOH?aT!002ovPDHLkV1ic%C`SMQ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/sticky_note__minus.png b/interface/ispconfig/interface/themes/default/icons/x16/sticky_note__minus.png deleted file mode 100644 index 81021bb04e7b0dfa660216c219eaeb5c2661526c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 507 zcmVJNRCwB?Q$0%qK@gqET?k09FrAf} zPW-}@1}m-7+1S|FTErqw|k312>8#?t5uWR0zXfS|7)tkA^7(!$Y}=UJ3f1vsE` z4goih1{lV6%rCD8xEQnfLAeXAYsqjN8*JMJ%W}aqP3U&tU^%-(4PcdUvpow84#*H= zWQ8rMMw-^w-fp+x^!yAGiM3+0c{oQ?IiCQ78Y)*{MDH6(W->!6Z6ZiOr*m)}ra)6* zB+ua_YO|5;_GWa~?Gx}K+n^nZBtg_@j|K?7DqtHwks!t+73d0#@{FTM5Or1{k6#>z zSWp`Ykt96F7PJzrGz91+N{U4ZiYqXyfKMc~&0T0+-ueoN)DSD~6U@_cO>YoOxeQP! zV3IiyhZrgYQAh<3SND*cS?nLhbT&oL)Lx|`TaHkS=JVP{It}At7vO#0o3ii3aPUpP xgK53MvjK3y1l%$?crX4q9Ew-`?{)qVU;s*oz4&`<1*`x7002ovPDHLkV1i-K)FuD` diff --git a/interface/ispconfig/interface/themes/default/icons/x16/sticky_note__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/sticky_note__pencil.png deleted file mode 100644 index 03123f278659ab037055bd1cb0b4bda5c342c261..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 636 zcmV-?0)zdDP)o42udKK!K$gb zMDZt5Yic&TnH|5$?xsys?7@Y{emnDi=IydfDTV*JBIDz%IxvQFblbcHe~j`{o(F`v zk#L6=wj9`dzu)s5nu&o5{8>X`>PsH^{8b*%Q=yJ)w*WLtNa<8jskm@m3CEErm&>s2 zKRDQVlLBy>blYncv^X?lj8hd|$qy1@?(8!&(|G>+B@E;2rCjdr4q7@I7_g8-bYIMv z*I?4Vt({Kkl7WHQ**g<@ZP~s069`|-sPp0`{>x^%uCV%nVwxCI0s(~HoL^(^S&&Ht zoHx_ljA&A9Xi4KC$@a~EiNa6(x5?LU4$`^xn_343y1oOKBRU!dxBowjS%cu;$k2m7lJ`vpkAIHj7Wg!*YZu zpEb`Utkot95$|EwRdG@cU1YC%PU6IZeXTLs5`UjMf1Ev7u@W~5MfGBItda0nfB^u2 WpzOffHR?M60000J%=P)q!t^Sv?~4q!9vg~O=^1${DCL&n`yM<`!F3f%r4lYL&oTINjvHWv zdC#jBgdBnWae?*ecl02oy z0&x_J3*VzAunn2mbF_$AHi_M8#!>28KrY1wZ{$`HBAa(~L*VZT#Kv7BM6p{Za15Es zZyY5ukzGcn@DnwD-9Q^ZbJ2^iU>1o;k<9TvUi7}k%9mVIS~+limYtaadm=&1kj)gK zn23yL7SX--5%4rl)hXa=V)7<5=B#X1V|G^K;sUimj0uS%}f6I&_6`` z(7>bqH+@Nzf~2%*WHe7s+G8y(coOvk%&U0EuD0qWZW`{Y&!@HyPCPomZjhE-Lh>SV zFQy-SYyQ!$<*aZL@*KQN6d8p((c=`*pt}kiN8r)ZyzigP)*lc0rGl(pLh>iV%#A3lpkOd17Hn6!kle4)& z5OH8g=48JA%nTFJY9TfuklOsVSf}tf0xn)#(GyB6ip*2z&i2Wt`Q-~(nmatKcbZL` z!mSeijr_VGK#H>)t5;{f-^a&|i^tPje4ZTCH){*^>X=MPtu-E=j~YoV!w?v_3<3?$ z^DwkFh1%^NW_BiUci%;?*Gt{^O>V*!1eB`K4MPwx1F4QmtSo24ky1k`ry!uiFilWG zXjoPSjsw`XqPC&}Y}>>1v=c$#{aS$*LdHpnD2wn}9_E-BUD|@FK*nHJnJmB@=Ub5H z=iH}Yw+2g%q!Kfa3^oELml9re*pC1M0AG=z$(9UpssI20 M07*qoM6N<$f<0s57ytkO diff --git a/interface/ispconfig/interface/themes/default/icons/x16/sticky_note_shred.png b/interface/ispconfig/interface/themes/default/icons/x16/sticky_note_shred.png deleted file mode 100644 index 87674f4bb7496921ed57e5cb34310e3aa29b27ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 592 zcmV-W0GM zH@m9|ViCIV@n+t<@0;(<&IqkF-Q;uj_k|e+}wm}vGI@y%S{MG!pzdY_*R^?g;=9jwur#|`*dWRl}LGQ?epnv+gZ&}8H zGv#1HAd)g1#!09^==!ZbqRT|nQaVs_91T%7C9t!Di2z!iZ|~b2EBP4=G@Kw}j{NcW zk63S^9z63KYc);4%8J;nRzE!8+*9}T$WIcwgZqi-1z*klOQ%ua+ta)C`k(iMOJFnZ zGVU>MBe}6*zdAV3{?d|o-e~CN!h*QJzOJ?kPQvIhF8CoTQQW{=1-bGc4{*$gA;bci exao8LCBOiK(L73&CS*PU0000|^4`2#eJk>SIKrMHPP0OT-`3*gRV0%2CD z9EmP~0g!=28SwizBRc~F8`#$W|NnvF1xzzCGD77D81Ur_S$%^Z)<= diff --git a/interface/ispconfig/interface/themes/default/icons/x16/sticky_note_small_pin.png b/interface/ispconfig/interface/themes/default/icons/x16/sticky_note_small_pin.png deleted file mode 100644 index 578964ab4219d1ea028b5a52981cada38bc517f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 377 zcmV-<0fzpGP)~V7TOcbR=)s9Mcl|#MlXr3XkKX_wNCaYqPYeu(%BiWocW2LL1L=dxJpkhQ zD5^n$h>UmaU}*XCdDj02OEdrPkeC0ztSsgK$CnfS|Nb=XKS&N;J%$VZ{$*hK|DTgV z&{>7S>{uqluirpxAAV)fP~!#55e&pXe;8SrnAjND*!UQjnOPaw*%%p=75RZ|F0dTI zK>YKEft3-cj)eu}bv~f2KN(nAxfnoVAUR?TU}I!tVPIln0U82yA`>&%B_J`796DphO;fG00000NkvXXu0mjf9nYL{ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/sticky_note_text.png b/interface/ispconfig/interface/themes/default/icons/x16/sticky_note_text.png deleted file mode 100644 index c7637e281bb39be8ca7850dc333e0dac7c98ea76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 548 zcmV+<0^9wGP)fA-doFB_Cq3} z5JBT3A(WI<^cs!7vC$EQQYUH(iC&_Ss3a;vw!t>*BNCB~-L)SxD1vzH`6=3b}_aB)IxhA?lo5-<6zTB35*cCP!PPU9Taa^@jk_hl5nS+;Ad? z>eiS^l;$&P68P%i=05F`UDd#ejFuC{K~GQ1j}H9iGYB!**UeiU!CV~p;=up0h0sBg zTPSnIREl`6m?&0dRG(W|T?H~3_a`FaU~)Ji*NRDV22rd5r37tm^t?8P%p)#WIKq`)(%G!-JwI2Eo7)Qqe|bPxSM-?8nlTP<#e0kq mZ+;hl{OXJs`tNgo6JP)whXn0Ka6vKv0000S+)J(^Jb3^oM0oz5W5&>>2p|@x5yGcoC;IRguRyigQDEzL8eK9sTB7T*eP&6Dk6|eHy01NtILvGFO>?smCHQhAt3z} zMnx!eyF8aju-&1$Ytdv9Bo4p?ZVE_DuPI7UJ{zS3qES-AO-< u&PB%I-9YK1h0p@d_^;Lyr+O#81sDKl`|t}w=9dZp0000s diff --git a/interface/ispconfig/interface/themes/default/icons/x16/sticky_notes__arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/sticky_notes__arrow.png deleted file mode 100644 index f1b8e2eae05065c5a670750c0ad7de912b7d1ac3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 668 zcmV;N0%QG&P)YCd@6CJnojK>;dCV{j{LdrL&N47&y)?P#{RRzve>pRw z>&Otye7Su`5ZN1{3um9-(RG#Pbz0k@QN_yV5=y1}+)mGkz<;H;NhF;@qp?HKplLc( zwSih~8)IXF7*R?+VOp@ywImAy&M{gn%|IyV={^OoJ7^|tYh^EJjjHf z1dMT#FF}mW#HQr3(uGv!WowUfSBrpx*+YrkQv$Q5B2r?z7 zQXrb5caWGqsj9keAhtY+{Q6#8JGS~efz?rN|5TkMoXcqF4DZWcM9v+-(}g;EHYWz= zr{A_Kuq+rxC&|5JFFq)HP+7aF77BAU&FK!DjtpQr9__Dm_upz$z*-jCN!}rZ@cF~Y zSHsTz8k}`neXRgzu3kLw;=6l7%4QixMp*RZ@#{lY9UL}f6U*s!yjjd6x45vjG{2H{ zc|Aej!F@w2)HXz)jEY{7zvp6sRl0~C5tym{}T;6W%-(4$8Wp7hXA1W_-&^j-|5A}QEPz-^>$ z!iH=Tl5~IgW|F2$#9lh^X6DVj_vQ2E4f8w?XBq0+8Utf(=U9vUC$xRcor++BI@x-Hrt(OHw$7Iq5;4C58=gl~z7_sVxf6qhE)X_DEnZ5OSUgGQr{ znHeFBhZLHYC3Nz-$U=Z~+|L`U5CntgCJ_zmGN@81V}1P-!r}SFeE!1(9nGquj?<72 zOW#NY=!@vMJ$^@01p*2z>wQj^AZk7h`O5Wq927TDtM5Tk0%Rc~3{o6aGN?j;hQb&p ze5LJBpdT5C zSD?i&!`#oJ*+ghaVK@`WoGrJpO>_Nnn zAQllRmeSfo4aAan9&O=)+@G6MA72A|?cs1E-w0WAr2W70hwNlJ c0{APy0Fp`gX{uTQO8@`>07*qoM6N<$f;(Ff+yDRo diff --git a/interface/ispconfig/interface/themes/default/icons/x16/sticky_notes__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/sticky_notes__pencil.png deleted file mode 100644 index fc3cb8b9587ab68d2dfa2fb942569b2ef50d1117..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 678 zcmV;X0$KfuP)RB8T;_9`@1kzC6llex?7@VM-FtGq3u7}V){g{+2J%|NxP zqg>v`;Gh)7ISM^umSE>Kkfi|UIGM^sAPM$#9fRB1Z3b;@XoyB%!RZ{nnMytDrL7@V z*0CFMHa|-uK!>XveTPq&R1SxN&CRC?vjkc5Zpa6EhOwTT!PfRF6vaW-PK0d~2espQ zlK^9!@D<3h9#}{ImhZ%D{AI&eoy)*?4QE_0aEj|XBQ?r|d`|XUgqei`dd`n{v%qbYP|VA;2;`#>5)^Y&ikNlMtr~`amRrVrj3aRI9xk8teDMo$ zhf4ujkM*LKNGl2F?I;&DtSr1mU_i&jqpRrZFQr4kyCwpw1R=QnGk=q4xfP_BK9z@p zH=N;#P`;w_q^61F65wqJSa)ER&@57*WX|0Fo9bmRnFTH~;_u M07*qoM6N<$g4n4%_5c6? diff --git a/interface/ispconfig/interface/themes/default/icons/x16/sticky_notes__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/sticky_notes__plus.png deleted file mode 100644 index 40ada63822db88db6c518b4e1f09a6c5f648cb24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 640 zcmV-`0)PF9P)+cg8m}+fqn?1Dm{=oqcb9`+aYAnUoU8x$Na-2FA>y#iI3Hn)(melM@1Y3SDn^ zW)vt&4BWUf_eh9Ma6TP~qR{MpOm6u2)rXH3`vuS#C%T_)Plf31- z1OZNT^t41p9l>FtZuU}yLZ%YD)1PzrQ1g&E*@vqUfGdEZaeb-=#P-Gb~9ty@@di^Mfgn0!WOc`myl*RdqAu#i85jkxz3UUDHjtcA+5q z*4CK+^!McAL4Vv3MWQH+PkNGL)vyZuC9uOXWE@IpH$|7`9d%8|vLq`_8(oTfI1|Tz a0R{l0@f3WMzj$f@0000s}S6{aFL4^5wv;eBLYcqD@bXe5d}h4 z1`*xI{WqO6)4fd^b-0I_GxwZtelur8vk3?RoER360A9^&6KB>pECwmOrGbZUn))Ri z)3oT}?>0hylqcVSlgCF#>l@S4K85FQ>Zlc(Q36&JbM_ujcYh|u?KU{KOqPL z#Ib~-|R?4R? zc_d)za{;B=P$-npSxE?0=fxSake(@)Gz!{07a$aqS1cBBVE;ZuQJMS)9ZQ?y3|VWD z7w-_T$K*v$U<$S*3I9M&Qw^J=O!IaL@MjZXL@c_4obtc+U!C`;#iDIuLc0XgB=eoH zNETvB9$_3=UKU>_zh7$LAC@80^sT$jJ?u1F+xh=2;9cE?p8^a3 X*Cxj$;kvOx00000NkvXXu0mjf9IF|! diff --git a/interface/ispconfig/interface/themes/default/icons/x16/sticky_notes_stack.png b/interface/ispconfig/interface/themes/default/icons/x16/sticky_notes_stack.png deleted file mode 100644 index 8d1cb62cf9c6ca2ab040628a43207db2fceade30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 558 zcmV+}0@3}6P)77_%-&O(G30ulTW^c3-rkr``Wld|OS*@>IeJdb**)uwnnAiG^o!kxL4=v(KQSwv!PTwA zwOZd?ZgqprnEPMm{{Bhm^fKC7IuLE`L_WWgwIxU+SbwbfA)mq1lY^a|b#`yZ`9%^V zgER2`pnO-l$>M0<_`U>+74@09P{VwbyMa>mA%GG9R)-%;b zWRo0NXTgag7JyY2+d=LQ@dX82Ss7%YZ_s8Hi8vv%*2WGXEJ0Aj1{ug?bOne_Q>l!}Tl$AP&yY69wP5D`Bhc^no<0E`8$X8wHpF4xhOO3~fY w^Y{jSk!t4f=VOhsHkS5(i7-EuAAATf0G%luHT&M@MF0Q*07*qoM6N<$f<%S%qW}N^ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/sticky_notes_text.png b/interface/ispconfig/interface/themes/default/icons/x16/sticky_notes_text.png deleted file mode 100644 index 9ee1fc60abfffba341c91166acef79724dfad83f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 631 zcmV--0*L*IP)A>GcWAFoqmNIUHf;NujNDhalZWLa5kpZI1Z}b|x?Kg|58!#bn4Dx` z+$Yy-I)&)o9x@9^iQ6@M4vm(JT;>XdJdG3C0W_Pxu(&vn!NCVlYPFZ+qkH{)KGQs+G4kJUms5g?RZaLtz*e0&0kTeaPELi9jp8Q*YH!qxN z=nL7jr%99wkk5}2vWY-(?iQCDIGE=NYi1^l69`Sf5i&#(l91y{6be1$)sL??mfpTu z?bl1Cf*<8_I2I!ixKYfIfFeuNmWt**CKDfFwmqY0S78hNYiP zN`YcgY|^E;{WJ;V-14&6dH(y}tK5q(}cEAkRk&K74$v_%B3){SJr2*gsiJB$Cl72vE3Kfo)SlV39yI z0fVa5D$flD10)D=E_GaAKT)vRY$91AE+9KZ;5bgKK-VSaL)@D*=M*lsplJz^Qj5q! zC={+>GMVtmFfN(g^8(0bj|2**FPBT85JEz~|H?k8xKg=?*=z-)(G2qWYa~x1(M4RN zaI)9yL8(+?iI(+<(wzA0%jMf2*I3nz$77gIr$Cx-@M7HI#+c{4B;2Q^ZQE}|K)^Kb g;(3i;q5CPo0BwK^y*%2AH~;_u07*qoM6N<$f_SX)X8-^I diff --git a/interface/ispconfig/interface/themes/default/icons/x16/switch_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/switch_arrow.png deleted file mode 100644 index 19dfc937c218bfa44b1db612da83c5a62335d545..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 652 zcmV;70(1R|P)pCb*(?qFM!eB7?V^EJ_7;tfn9yF+!N~O^2_0a8hdHg;? zp%4%1AtD#YXyOvMpjNAeTrPKlAd|@;91cU0B>r}Btl#hRgc#i-+41}R$Y!&Ap3mpe zY&IQrqux$Ofs6A9hQlE&YseQBrHf!Nh-fs**C-zhOlN1`SdVy2K%PeyOdK6`_*;@> z?zdX4dj83xEc?c%Ai>3X3KWG3lG7wPYAg;)CX;-vQmHru7M?aH@TD(faY8#*plRAz z7J>bq9U@Rw)l(pf3`v&-MED5r8&&5 zuE2=LQEmc>n+q|mtK1PHkqBb3*xK&y-ew>Wgr=z{&OiUUjt}2Q_d|8mO6O;B_Cg$Q z){Aw$S-(e`XPk?1Sro`~T^Bewd_JE5 z-@}D$9_0&Lz$SG%9b~iFLjvh^8h*bYvMh_)=F#DBC=9M>J9#-yrxTe>MyzwW99pdw z%Wl56*VAD0_5`NWDJ*L$f|{nomz-ykDFhRTB6SFKU zqTWiSB4X+ZHzR+?#pV0>Q7N)(nD^>X2AaklG89E-*;qm#kw}Qx*5-4Z30;8K>%ytP zIkb&$dl`^^zYmT%+4%=9Az&B=484cQLJenQm#}*81p>hsW`hr`Uz*?&o(hK~DWKFP z;BdGR4oA^wG*GL)L@0C`6m1lXMVNX64rPqU$?DQ*q=9t1U2w=U#m2@vcDh4k5szO* zv)RRVoe3;P(QJRg`kP1CHLH;QCeDYd%d6L(Nu*pZqh7Cr5Xv6O9nnA=(V&jN!Wgo$ z2?yClBKZU!s=@2tVU4vG*==8uSn)CTFjfd5>d`m<_+kI<^&7Fv!LZYh*%ZFOZRo96 zBDV9(=zaaX^_DWbt7+PM(ZwS}^&%A_P)FV2W<;_!3nx-JEa*=+XkuWE20luD(2x~s$C z5NJD&1C>ezY}@{IQ_pBL0v{*ohZZGuT?fmuz%)(X-&ZsmLCCT;WT(@a%*Vpz8|?0E|9l;j>xtu&lMPv|Rw0o{utZ(oLutLBXLWUr&+E-?II7(S{>ftV z{_go5;D$6W>0?zSMoNdupIQSG`095x5QOa;3lmGw#07*qo IM6N<$g7i)NjsO4v diff --git a/interface/ispconfig/interface/themes/default/icons/x16/switch_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/switch_pencil.png deleted file mode 100644 index 25e3f1d9ac13ed4db8c6c956316721b4ee659141..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 687 zcmV;g0#N;lP)5X>|% zBGjfu%wj-dpoyBG)Y-IXAwc& zpU=1cx7DzO2#3QrNEiG4K1hbcA)?VJdcEEsg<=MS0Suf>8!bBYdcEj$I%qbVTz+0w ztCb7I5RrkC$uI~EP_0%&Fc|!W!0-3NX0t((B>pvUa<|*%3Nado)Q;I~Mj#O2b|@4= zwOVD>?Z-A6DhTI{$A1uvMk8q2h&xra35&%7yWP%xr1yG5mf6H@@$EZY3WaWVDwV8A zJ(COuL+tG}81sOYsqlU?nG6@wsYOLGq19?3TP$K`Wo4!U+#gqmoH#rBZ-q|Ze#k?6&{nz<*>7}1FCtNJ&d!WDB2Id`K62P#Yc~~ zy=(VQe|(-)p1t{GesB2Loa(Boz9s?!9^q5`eSNv^6`p=;VmrAiUMLixY1%^>ulytSSRVd{d!9$hN-CAw z|64ZlK;-lJU5fS5Xaq9Xbx|x9;W*A8je5r8F?<}S2Q4ZllSvE)19ZDxWxuX)IIN6% zXpoQNl=uUDP`lkmHk#V}K5j8!GMT{hCTdfNE<&LYqS2_@qu6m=d2(RRM?W7xnr9MRoSk))XUtG~tJUg4 zKS?xAY!$Y$W+ z+%BmBy>(#M+cUyVFe7ssdm!N3|IM?PHr-;R_q0wll?A4X`u-qRov;b_+ zmTwt&dF%Dwz;NQaZQCGYjN|a|KYtPYNjEF9xI%m+8HdT$k{?kSdcma+M0 z%Y-wD^HQk<(=-*uWb(13)?3{D+SPx# diff --git a/interface/ispconfig/interface/themes/default/icons/x16/table.png b/interface/ispconfig/interface/themes/default/icons/x16/table.png deleted file mode 100644 index 9e18958e3a5c09d9b91ff0b9608190519d9567d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 521 zcmV+k0`~ohP)R^) zS=nl}1Wy4v1A_$zxP5+(riGD8CUJ3pAAFl=7&FXDj~iG9!1U;-WpGn0V$OBr`ZAvf zGt7ntQG*YIe7S5HBpnCWg@SEBIWTB8n?DTP;bF@lS1MsPlZor=hlij6vw?yBW>Bb9 zECZ*j3%9h!R|EZ_aCwwPg7q+EBiBb6F#=P~Ikb7JD|cIc_;=}Bst zCKxZqmH^vkPFNO$Y1%y7ZvI_w_Gp*(K(N#>O=2@Kf?zC4FsCt`RRG2aZzLQ79xnqI z4>E{00Y6Ie%nQL%(=dqT4tSPh=$GoSi}m(49+qumyoWdIVtd=*Tram|JrFE43w>B4P`$(=j+D1F3x8-PVqP-;c$W73a*{ zWr7hbHN*gq0WcJacnp>_4I`@Bsb6O@5R72k2JV1OgN&|w4E(Z;ciF7hfM>^`*=%kx zP{U!5K{}ViVMW26w{_$y7KXaYIK&yjItKP12H8TvV<7u{NbzgD{~W-X(*t-q{|(`_ z#@`JFL!r+0+Y4o+3*Y%QcA@lT4T)}o<0l93a9%@2ijB~p)#?_5PsL(q`*N!rqvONS zegJ((6d1g3@hh-zRKbUj`U$#GDp5(2aDRW*-6?zCRwS9n+=IMxt~DAU(I|q${YcKf zL~T9sf&^6c@{T|t_+PJQaPnH@>XnclzgI*h^~zpfctZH^-8{N@(0}p13-MbFQNA_+0000C#NN&-)ilj_Cla~87xnFliJMf{ zG%#Ka&j5zO%+PfPO*42lto*m$>Pe3tgwRq|(}=-@1;KDH!OJwmg+72W!W#(}0nZY^ zl~W9&O^7Ey@yrXMrJAY|-7s%#6xs<_QLIS;Hd97GNq5)UwWZ|GHs^xbk0j(%X3xT+Ur9#2lUq>VN7~O$GD3;@xdOn6yJr0}4j&kk^suf+L ztHmOfWf_n96>DSr_S>rRU4Pkrf=KJINt+l6-$N#O2A~QyzN_$(%^u1@CTh%a y-K`PFnI7h6lC4&qQ68fhr{Mp|3yS7H0R{lOu3ACF$cMWC0000W`YqcQA7cQ0nlf+8w|qnIL^uPZoaU9yw3+mON*;&P%E%w@Hv$-7+B0^gkmv$ zp3miw=Z5aVK{#e+JWb_t*-$+6kFl`-G+ zz_+C@N8f(>(VqBsT`Lx|;@A)JXyrlnsFAtlkrs0W%sqX_A`NSlN8zsk0{~@SbtETQ RR5<_u002ovPDHLkV1h2mJDmUk diff --git a/interface/ispconfig/interface/themes/default/icons/x16/table__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/table__plus.png deleted file mode 100644 index bce8b907080aa4def2e25e4393796a3fb38d5055..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 634 zcmV-=0)_pFP)}i89x4>SP-09?={Ck< z44aA+G>}k}ot<%JcUu{QC|!7Y=N;bXd4Ds@klT}!=K%C#W8X4mjHU04jErwYeQRRk zD)kwIki~Eg;9LaZ`vQz{nR%3d*K0kc3tOPH)MJcrp)3f7cMv=+37pCTLJ-+VqzHI2 z2b|w0pxTu9@jIDip|q5F9`PfC>9WAK#45PE8cvhpbB;6JvbmzBhXiMPB&Fzv(o)a! z5E39D@T)&@b5DerR{c`s3|}^AUI(F`K6_3S{P<3g_ra5 z!CFMaltyW(rwlX#U~hlFMvyC&FlgKB^{ZkLN~5$PL1eH-P^?rmf|Oz4t>fqfG6w{$ zR;z=+&SW%#Lb;6n*(`3%jUoTz11z4wqut|B+JJ!nLEu!Y8iA2aA}^2eqWT6$jvvPC z%=6&l|4OjavNVFrGo$#zKBFt1MBT3g9>>tsX?*LgU!=`Oql4h1>uLmx-yNifLemwt z0_$kFb}EZ~bh%cei9`YqcQvAUM#tMa=nmrjbUs+~V==^@aS##%bvL=hwCzhV(@g)* z<7uA!bbad;%li7jb#%3AxpAOfOcjf;(fH=wFetS&rG=2#%03u>> U|5}_wwg3PC07*qoM6N<$g0Mv&xBvhE diff --git a/interface/ispconfig/interface/themes/default/icons/x16/table_delete.png b/interface/ispconfig/interface/themes/default/icons/x16/table_delete.png deleted file mode 100644 index 9a7fa99d7ef70f94479ca618a9cba061f930564e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 634 zcmV-=0)_pFP)1AZap_2Yg?`^EiA6(GICb{>Q;NTeC;OI%VJrq4|<6G|ZgV@UkFrby%ZB3J-X` z0o*z#m5}3^O@%0*b;>}vuI9B2UVW4}W&DI!s)ZG=^-=OCn)_Vc$Bkn|DEq*=fWUPT z5I_-#&vo1zIUerS+T6s&R4QD*USFsD1X!mGn$4!h?!ZAsaQP5mZ*Qw=hr7CvjK#3A zvjaMDnBCoo_4g~96U)nQr6OR1KL~)ap`ozio9StcEiNK5KCb5cl_*Zy_Cr$T1A>-8 zo8Voss0boGJ!nQE$j#5=l4apXt%mE9lY#T-==mp^4D?2$v5(+vBJrD`P{5UJ7A9@y zd!>TR%1UsH%H_P?Ch-3v_^`L92n=1vR4#{a^*X*1)rHknl{Y}=awna>JFvE9{gdF# z;9yAbes>om$z-^;sVmWFl)ErhoS3lms^jb<*eaD2fv>tlXVU6Qd(HW*Q*ETZ=!Rk7 z@vzgXK@N!j_Z@IP>v*o2snqQQrWx<_G5OVM*>{|$jB$jbSKXuz^b{3}+AjeH09UI= UYBnx0TL1t607*qoM6N<$g7}p)9RL6T diff --git a/interface/ispconfig/interface/themes/default/icons/x16/table_delete_column.png b/interface/ispconfig/interface/themes/default/icons/x16/table_delete_column.png deleted file mode 100644 index 87685aa657d06dd43676d3b7eb6cb42fde20e5d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmV;G0&4w!GZ_DqeZHatW-RHv# z*47?URc*$=#bO}~I1YzxQ#xSGO)e{aMoB$;_b-BU(!gR&aX48hSeRDu$>6xHDWXxN z4Se_s+`Go5kn+7Q28n*sNdsnCirqE%yw4H!w_ul>-o!gW(OeR1ho(D7UlN2o2-0;3 zEDIe1NCNif6i=>R_Rji!cNf=VF>n86dt3BJKsssAZnqV32YiwsH4Ny5f}BPf7#YD< zF6ZqjsGoEl0y5|$0A{DAyosfwBWRP8-hOLm2h?x52JIdLm*7{ih+rUqQaX*{a2TaZ z1>+kVs2v}72t>b2Fl3r$9|1)?62bWBC}JxsDChICUI~RTACG$mr1J=z0fPL&0aTw4 z=c7?1GZ~zkCUSzR*=or?r-witB%nK(nV69KOfu=6eSULOR$crmy#zyzdcBW;Vy|3A zsaAt2UfZoyO4fq7haZOF5s*$2R1ObSzu%8{TD?0ENH`fu?<(F^o56EH?MsFtTr#mmhu8^&9T@PNPwUe80dskr(7k>WQ1c vzXb5w1m*-&_7(8B+b8uR|8mZo{{@had>hA%G!} zJ!abbO_X9D?n4&Sa9el~}H=?*~@&?VSDJTwHCMn}=C z*D-r{-kNs`+hG04KqZelj+|Dj)k83wPFurit%i-Y^)m#lcTYy{)kHaO2-H6WJIBX{ zz;ztt9(=OzuOl7nZ|vQ^+PHQq&Lx;mrEIsa2M3tTWbD33Q;EmppvI}G@&cTO@AnXt zDiuSZ%yj6RL{sVRS9(oYG2!a+7i?t!G)r6!j z4QVBmG>O^W*%{}}c30CLqz@i5lYHOzeiJ6z)a>jifD_n%l_tl=<|2%-uE*o!)BANl znwgoPHR3S_AvYtR0nPb<>;MO^zjMOg{rHECp^z*G9bMh1UUZ$1O!Wk0^){&JK4LwYZ-Vx z@D!VsiccW*0fBDYb_)SjDw)K|&Q37f#_)wmH_g2S^;&HY!K!5;7K>qfG)NBa_@V~`%g#;D$6p4aPTsP_vTlHH+R(%*89PYnGs(wy#Al-*nZplh4c mOULB?Ao*oig%FKD0t^5%QD*y?1+aMl0000$)2`thGX_1DF z>}L1vTW8*8YoH!7FwD-&dtbiayj|_($_k<=LK2#$m8hJ?Xz|M!9D)!cSF3MKPY(rBsT4fdRjnjPZ(1Itj1Y#BGJ*(0Rk@c^;>FEV2z+1D6E$7eVW!jQ_xoB% z0*rMfp8>;NJD0(YDNC*0Iv-cw!+Y65i53(yyGUm;cPgzG+dlAMp3A-DrLpj}q z)0spuOOD8e5+L^fGT$y7W&XInj(ddyTJ1Ih67W1vGnj*!?{DxRNm+yl0!jI=3L#N1 zA4f!on!CF(0t>jVrYFoC4=!q|KDtC)#rR(zUyXm`J)ZAlDwk8wg3=`cg9Vs}#)wZp zB3v*%gg^fvASVweBz!wW>4YTaEUgJN$UZyZGbErJ%n>Mo*nw}mcvd{A`pV7@=4WT| zrCKHCGq5ZRIdY%|J~oE^PKN}@MmP{)2Y1uJX0u869m1k({aUNV2(;(*($a_8*4F1_ zsIu4FGnhjR&A_*T%hS`U-)uB+eP#xg?QO+8ZkmQBLkv0K_-@;%(!0R1 zQLn4Ydm_Vd=F8 AI{*Lx diff --git a/interface/ispconfig/interface/themes/default/icons/x16/tables_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/tables_arrow.png deleted file mode 100644 index 1c7dc076ed47240262e4ba35ca7ed953392aa665..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 743 zcmV?P)dJ@jB7eq{N9E;=>l z8mN(CIpfTona-JUO(@6}*>X@cDeuHO-ycf4B4B=oh?ADGHdzshpT6WMx1(%s!1Vf>^eno+{An<u7L=GxTX%+LG!a6FZQGCK>C1aw`O{LI134THRqq%16$ zrcLoD3t?m8+!i?0G?mGC2rQs!lALAcajHaeb7L8Cm3v=3yWe}qYjndvGC$va78Du@ z_*sB?XdCe|?O;zphxPRrOmcEMX2Vb|H09aE9HpATB-v*N+(QDgpE*odz;j@z8m^RY zb?5!#<2Y1WiZ{c<#9V;hABE^yjNxR;hh$C;7Ut$;nK`UA0d~OSlS%po@HfuREXii$j;$w~CgOpJ`J zynY*xw_K<$c<|UMi|e6REFg;w4(fxzn5xnrXL%xq4|R=ING}5?YDy9&)q1}J4d-jB zo;_M=^)rW$cpmQkxpvxNio*4?FaD&U`-uXH{?vi-&oia<#|jgbyU}s`#Q@dXrFca} ziyVz6HgkDIaqFdI+r?e#{ikkoZZz7#2Opt`@g@47K;X>18xG_HbottYkw`}*7Q=4= Z1_0gD diff --git a/interface/ispconfig/interface/themes/default/icons/x16/tables_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/tables_exclamation.png deleted file mode 100644 index f55b16ca5f32cd8e9fc25cec4c2889d65eb9fb8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 763 zcmVJNRCwBqlTAoeQ547j_r3Xep@j9ypwL?#KU~-?{ga`(tCUZ5st6gbdJ7iQU;x*XAY|hEW)- zdN?%nY&W~_j*i~=E5P$SR7G)8i&peBp~A9kn5ISDhGCjcWVvNoxOb!sdM-z}f*Qwh z@OZt@G>w>4fMK;)31DztH3E8Sea_g?{rSk&u(hm$0XpC?vnsrTaC|zEfRZ*awPK@) zSV*p!&ZY{^gWpmRtsXD-9x*3FF<{+em9s zh)u5-iW~m{SGuWUkwTZca_P#Vt%1_SG&V^IwGq>z zNFy_u#~shPlhOD9bK!92p4{`z_d9o@+*??H=XnU0q9{2^htS{pq;;F%I8IPZ+@GF) z)KB-F`T1Kv1wx?^Ov8{{L5?2QO$gz^bp?e7$8}}qy$}L-vj<^YmZAn~s;VL!iJ;Tz zC@u*wRwfYz!<`zA;>?IHYv;!N%xCy4JIGN%GP8?FG2alR+TU$N?3mAr?2F$#!98+YzdYrh@{#&n|^nc?sre$Fy9+%G!g+T%u3os9j z5idV@I2tzLZhnVNPNoJ0tcHu+enHGJsyV2VeRjY-B%o@{VM_tufz>c@JAFXzm)F*C zc6=O*tE+=snzJdUFdYJZ%QQ}fzCXboqb*^ z7GDQL747!6#vD%146FulVsupQSE^NiyG zXh;XV3Y7}Jmdm)2%>tQBfTKSfZal4>32Vip6KcJ+I=6-%Byreg5Ct<(TOa_#wamjbu{}HcfM| P00000NkvXXu0mjfkoPnA diff --git a/interface/ispconfig/interface/themes/default/icons/x16/tables_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/tables_pencil.png deleted file mode 100644 index b5a6db580388e1f3facd14a149181988be3db8ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 762 zcmVqOmQ6Z) zJ39Ke(tUMc;LxgHoN`UcqjyES;N?O6Was> z;e^hcO2k|wV@0URXN(vN4#2c;s`-fPf6b4*UNpH}2t}h%8GtOyf|YcT=F>hJBtzD8 zsH(yIZ`3pcvu%YiSyM0)NlPFANfN}YX0kJt0*@`#Ojk|%t>@~}cT^)Q3d%}KU`|eA zt-T!;K3^pVAU$L+0wyYQW$0hyP#5B8E{H=3ucEa$&NZuS)!yl8_yYly*4LwYc(_?4 z9cl)E7*ym)xLmg#R~mMrxiF5NqfWFG#kuA@;}ez^7tz+$1&^xYSyk1Lm2~JE7@V*H zQ^6qHw+;te>j%G|->oc-U}>@^*4fdytFqzx>t7a&pUrN1bic9T=TIV#KH!=3 z&sS7idqK?4cW(BxoOcCIdHP42dT$&EzMOTw{rK52q9>F0=uSx_kXl^@Ek2KV0fB9T s5xIC)c)GHN+mD7#A8F3`y8RJg0HddJ3#Lo|(f|Me07*qoM6N<$g4oDfPXGV_ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/tables_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/tables_plus.png deleted file mode 100644 index 00fe7b69c969ed4b5668526227bbbe9e16bf81ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 719 zcmV;=0x1^nvdh?Ltb$7fKeoY+bpj;?jj1MG)8GPB$WM3KenTN)&XXh_(%crlpB#Al5`k z(_&CNlbL((c+O0s6$N|XaB|Pw^XLEWozZSiOu%(rG(yv~1eI-AUwkp@Ll8nVn(eno zM((d?`uh0zrC$PpKme9$dP_x)?&U2g&KHQDoL8V;Qb>@(D0d~NVT3A3bn?;1K_5JLuk3f6g zmfn1g#|JQxep2im8oHKGrf% z^2)``C_aiL3+Q5vgJU6Ju27&iPI|p$CWCA>gN~D(7{uZBil|^XF}#PLy?*-2F_#KTb{iUmm6n=3t)nd_3}meR)N$046zZ z(gt8?;EUf#+2ZN_FRlb{LAm>AaGG)q9U=S_U;r^LZ%Q;Pnl1nU002ovPDHLkV1h}> BRpbBw diff --git a/interface/ispconfig/interface/themes/default/icons/x16/tables_stacks.png b/interface/ispconfig/interface/themes/default/icons/x16/tables_stacks.png deleted file mode 100644 index e1e400d119f0ecbdb516314c4cd78e4541e9d689..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcmV-K0=xZ*P)VQ4q(!Z+#kKgH3x- zss#^1<1Y|Odn^GjEiE4GQTziu_0mH@+IsQctKgv*5j^)I^i~SBR3Z}mkrD%o!Ge_{ zn6TO1_uh8qZH#M+n08>89kToR%DQ~Pb4h?T3*gbWg9CgzQ7|-7WFi=whI-f4qa`2`*91J;J)u$ zz(1S&WC%sQ1^kb>SNaGE&}cM-flp0}ZC@-o~2BqgWTjo$HXa;zmaCi)+ zay+>wY<)IDdyU1`>52Haq?rMVdXE5-0ZauPtbdO%)YX7KtkX>zPkRgkS7YjyA# z4#Id60yvWQ2rVFrSNrUCte|8ez&~*;l=#?XH%>Fl)Q&Zyo106Mh6FNzg;flelCa2y}e6j zzg{o=+Spj3Th1KbLnS8Q*mYeLD;0ZPD3xqIH;?4=ud0%fj`Zy^OGGPpLH^s{&o%z?R?}_t1JHL>BRx0yg}L1yuL2Zl6H>Y0t^5&DO}=q SXX1DO0000_3aTLeTy}NhI7Ok@l}f$`!^87c2ZOr5xOkI0H!=ctmkacbK@~0* zi@ryrqx0+OG^8^b@Veb_+Uo`M11mTj(8LHHc!)4o06+Hk!6FC@tz@{za7|%Z9(X)H z9xoIM)B`xy*$FvGQmkh4-vF`f}jQq#^bjb zhDosv;Nu93PZ0jOw+CfKsfn(^B0L$3O=9`46-CLg^(?}&EKUc5bNPI}4kqah2DlN8 z-p0~Zm>5xP3FP5aCr9n?rvRH3Su-G z;o8(xK>i0NfKLZLedFCn~1zV|CD@Gh0AC13^v0S{Jj@zu=C(`+>eO2Bbl4g~HZ zoW$q7`FU*(KCG_(H#ElC-w(E)o)b8tOG^t2(-frDW&?3->>kcLk=@w%xP@>t)1i)7 zdwb6x6~&N*<pP2nfo_5_p$?%Aq6{d$!l@mjpLRNIXlrZb?e>%M_V(Mt&dwL~ l$@F3?E9tk!M=JdhU;w#2FL1JGOFjSq002ovPDHLkV1mWoKve($ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/tag__arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/tag__arrow.png deleted file mode 100644 index c02a8f63a26d193f0d70f668c96b12d88d5f3fee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 795 zcmV+$1LXXPP)L%<1A+Vc}K)Z-Uf?S1U zgafZiWlfpi9?#iM&$~HO8b0vndCzm+-}CXlF9lnSRx06SO%0TrOu#Y>Ff0oU@hF*0 zb_BOrV7pB-snrRq70T>(VC8a1W5!r4X6dM{?MVeF)SbS*Cgyl$C6rn$AWsh_U{Mq; z_Z*I%(eZH@4~3w}XoT{jBEUG%$INEf!3b=0rNJpGf8k1g=vQ z^`1@xA4S-9AK|6tWr$1CrpOpH!Y$q1E!h5$BuOE9JBzR&*dDlCj}{gdw!uVlg#xa1 zb+uya379a&(6&yXHGpXOrp-pg3BI{b1wVBd4#Xve&71q+KUx_5or7 zZMPc8#AIX^wU=yGgqtP(Lj>0ilS)mZ)_aj-yl$rCMR2|vo$qPYPW+XIT(Wl zL9jn*Y8wCS^MTLrha#&L%8QBs_klc9T@6Qs0y`cfj1|D&?QNiqMnYMYz-I(?B+T=U z!Il5Ne;bwLOnuHj=;-V+9tPhFqgDX4dI; z-z5m*1DOOaK-f8iFt@b@k}MxcIR=Sv`|xl(mOmrQvY$$15$1X4NO$*WC=>#MJoFE( zO+YmG9%jCUCIsF&gIDZV_NjOn&*XIX_KvbF8!MZXB#_WVmUe&-&jOuS7cN=pN-L*5 z%LlU)m)SLj@W$q5LfNun67fPf!Y*g%GSYJ_mARq>PC>*bqDX`b5x(@IuWy85m;_jn zE4OuZiZ2d|BtG+T5k zIi#JMnu2XEkg3t0I)~XW@-c(m-Rb&{j{Di!*@tDLvJ3{e*?F()yvb`Z9WOMm20y{O zw>`i_7eQ^v!2yGM90P(}nw$I1aon`4x%t7q2~Hc-;{Ou8H<)9f%%EDKH6#O9t`32g z3WH7;rParDWoS~Rd=n~Ex~aIhRBJX@eD!#S%3Q9VNFd;Kw=Uc%vE^UZ(i?%Lwr&d?(A{jB(BOy1%q^i#aqRdv%!$V0hkBcJ~9Fa1c5yd5k?2_bAKQ71_MP_61Yb(2f{q>c|0?d zs8lMX2XLad7fKu_8g;rx0iK8M1w_%t*J@+Y+1Z!B@idyk8>0iOUJu6%2B}yek+@A! z)F-+Nd>Uc)3Btej_Mk3`e?_iABRm(2&7u8|qA2F*P8MOFXBPs27v*xf113@^m2fi} zok!~uOcrkf~XQ8ki1;{RFmbZDs8%E6}sP4gzt2@EHQXi9}+hQVFOwn1n{Fh3lbE zz?{#govW)^hd+e|86QCe_F&Ml5GOx$R;q4j+RyVyzi>dH~8h_S!_!f}=ja@Z8I8lBGbm^TnJC@tzR z83sy;k~cZ2W8}|K^0CrlG0Uyi0e*Y?OJ!%LfH|JL*yc)9ZOah}e*_o+K@%S$6iOT{ P00000NkvXXu0mjf+GR-e diff --git a/interface/ispconfig/interface/themes/default/icons/x16/tag__pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/tag__pencil.png deleted file mode 100644 index e158a2d8c03ada1be370a399ec984774ad0d1b0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 848 zcmV-W1F!svP)6bJK_dG4iFXsYON-l_Z%|mZZ~&eXv2Pfx|*7oiXu)l@M44DN)YX5%vNy3x!!~ z`7K|UDah3Bw%c=VPE4T({+xUN=lq`YoaY?s14SJO1Sqnq)pspw^~cM{UjT`3u5=iM z3}6_Bmp~v0M>`q*jd5lgpln}BNn(}7@`>ZPX~M$#*x`1&lglzQYrO`Ay4Bd2N6&Cv zd1_tV{R*q~w$tfM<2XoK3%gvd8;hmZ)=Cm!kS@O(2!+ z0g+_$-(9dlLZJ`}s;l#{;hi*1kI=*M@em#t2a>QPaQGgM7?-B|9LstZ@#^(^NIX~t zBYn@ogCLPeEQTwUl?7OOCngvnIce_^(1^eZZM9xsBUS7L)$SW$sw#%$6XiU-K_Y>R zMk9ecaP6>{qrEW8vMCP@hMJ!{m5Vic;Bs4gM(kcBmBP*pf)L^qZ3tHt$r5EA)_)T zWcyzDR?%&a7Sp1w%r#C^6Hm2w%ir#4-?~A*I!<-Wh@v^rAPFmiabt(jN!n zpor>n^RiPkIc~dO&+oQ{*6@KZ&+*)Sozki{IyWYTr5xp^oPU{F^_N6&M68yaAr%LS(FpbjSz z3D@0SxW`Xx0EZjtRWpx!aLjH=5!6Mu>FwlkVzaoT0*^Mm1sw(vRe0P_Zmp8yvrkot; z2nM^cbseS*w;sk9LdfsGBg?YhHmhl%v8ftnvl-6z^>xS0-^Um7#5p>KA<3i?q$@W* z33;PhQkPTz^Vo;!es~_et@tfN&mHNLHLy4 z?-RK%<1yn``#Iq>4=Uk7A$kFh!Xv@p?N~gXY8!)Ex_UmY%hS_y@onkLqf(yO1`5DZ zatT1uznB67VW!dREyFIFo(vA&if59bY`CtIUhgGb)r+z6MLZNrKg&odHg<{{vmX4Ky59o ztUORE2t6{kLw#XY)qafI=p?8uC=2vjri(s13HorF)2}ie+qy6_vyvl8kz$^|qKe`N xWqw}9_%?cDQL3(K<)bLhF)$DB(j56CzyJw^M|1_hUt$0N002ovPDHLkV1oS`UXB0& diff --git a/interface/ispconfig/interface/themes/default/icons/x16/tag_label.png b/interface/ispconfig/interface/themes/default/icons/x16/tag_label.png deleted file mode 100644 index 200a5fd3410083eb463885c05e4cac87471a679e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 760 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 DqvCkH diff --git a/interface/ispconfig/interface/themes/default/icons/x16/tags__minus.png b/interface/ispconfig/interface/themes/default/icons/x16/tags__minus.png deleted file mode 100644 index a46edab9e34fef2bb1b15bf40be570cca0c98eaf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 737 zcmV<70v`Q|P)OkgM)*C z9fsN17}$WAg_V_og@r{0sKyCN{d1s&o0*uHz#Nd}EO-o8{qyIKQ*%_*3=oGAh-;QD z%K#dRqKFBbPN2!Ee}4aVZUk!n`|lrvQA9*B$fJM%{1F3EX+U`}2C{uwuxb7c)ZCex zI{oLbUkuF5%nYZOE$aoz{r&q_qdqLG3E4$V=$e21{_WBZ)co!HcZR<}KLRx|FarHt zICJLmqM)ECWETNl$;gDHS?|}+pRPUG+0#CK`N9BF_z#F#fdQH`Y0`?)@bE}JPEN3) zFcij9rnVP{8iQO?wqE=uq1%?4Vy7pV6(3sAHDlJ4$_ zuU@}qU}6LY4N#Ggpddp`b@iIg!opB?V6=fWGXQPn2D&JzwKa#4k#Ud2lP9-C9zJAX zaLvtCcge}g{{S@Z&Z}4dKLKg4qM|jIo;>;g;LV%=kKVoe|MbI$|KEV(AvHC*S#fb{ z(-ajMRsp@f926Ts%?xi|zt#XI8m}X3*7Ul^$8VV0*cc$d%?)-D2tTW;Vz{wv*<-dJ zKRz-4`SSxF@C*!RLD9(|rlrO3m!Dq?7(hM}l9G31WMyU7OrAUeXfT7As3^lc9-hbP z!NIcVX=dS~MPLJ%ftVMFIicy}znqzwGM}uh8OTL8AtA+efS^?u@quCNZ})> z3s`|z5{N~h2K)mhI!qUH zhz|ICK2Q_|!QeQ~FCLG#x8}P5n$jB^)osJWvsl0-EWw{hz?x>?dKEReZw>q(9M^Kz zVwo9OUcRT*YPYcIJk}>si44PNn)Uh)vXOAq_x6?(s=per0Hg1Ach{6k<<`Q~rS_45 zAv;g>Q_lFj;ueG9G3)ceNxj}U+uv_u8Agf?N(uTNQ5QZX5((sJLbJ_xsPSLlZgG7b zhv(PVUU55aH@C|$oR?)eAG&J0yR9S>k+^NOmhqO&~9{g_SNL)>j_axVWE*QFkUakCk>K9LqSN>$5$yzRD7`^Y0%yb zIpG5E+4)xa;7hgUo5&?_&j^17q;rDnvzzZD536I;I*=97F4@9RzVrmTx z+NU8iyA@hZ#S3*sMTKIT_M3x5m1c8=$Lk&A6SLdxR(CfyKib&b^q;ZxXch>C5l~uw z?#q)Nr?Rq600f;xC{mP}Ojq%Kj3M=B9-6bd(7f()0S*UzxRDICp=Zc;^WodLuiM*x zGkH5Pm$bB0BJE3j@giwR8jR?ws;);xNBbK@L`Fh^(fI6cMTJg)w~&}gT`U&Em4=3E zxc^1a?6BK`e8Q&5Nl0o9T?f@Z8+gqzw}a{YFHBi12VIsI9F=>`|Jg7vGPM z15xmTfmERYRw7a0fG)(u#xBLl<#Jnldn+~uDU#(QA(|&wW@hFVr>EiH2tge}#iEXo z9G{k!k*w9$Y$G1YM^&m!tcy`$C>kXQ`24?`AYhIP5Rq}SBAHA|%Va5Dmuqgv>HL5- oFFE=^W&&cVefRpm;N!Tx&QzG diff --git a/interface/ispconfig/interface/themes/default/icons/x16/tags__plus.png b/interface/ispconfig/interface/themes/default/icons/x16/tags__plus.png deleted file mode 100644 index 02c222409fc4b5b1b7296ba347305a7bd54427a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 791 zcmV+y1L*vTP)x^q%{&qkAOXRt)xdGw zD&!Qz@xNoi2Q14*C$u>C5A$qUmJ3=cDlX9pgE;B&96{3sBz7?+I%mt0w6h7tN+be# z<>hwTs3OZI{2a#pDDZy|x0qN$acfP@ML`rnrBcC5kH<~-6h&Ecx~!}@J`wx3Sd^r~ zGbo;!odpGZL=iC9bA5OB&4%LQiugpBl40Y->qJ2)I#*ZMH60EEB}NcxJWy+U`>jTc zWnZFB7d4$vBw|7~CeB6i);7Dnb1D>yiYZZxf?AjB_KC{Ma=k{gAd$7R^C+h6WvN&Y zgl%08$A!Se#IMRo)a&(du%+d$v%1=%#Vd_ZRO@!vVZmP14ss~o-s5t$jr;w;GI%sd zG9)L%euu-`T3=tP!E2*pz^cdJJK@Hl*JnsEZcdXjyHrF4P-L^MF0@*Y1<`J3e4I?< zcUMD$_uc3y`4R{a-{d6u77UUZT-RRB@*SFNB+!%E2iH;nt{8x}@G;=`KiX1KVox<1 zp{T0rezVQCcL_$NtuWd_-avU=bOXQ_!|x#kgTNS#kHx8}KZ^nJ#n{OkgM)*C z9fsN17}$WAg_V_og@r{0sKyCN{d1s&o0*uHz#Nd}EO-o8{qyIKQ*%_*3=oGAh-;QD z%K#dRqKFBbPN2!Ee}4aVZUk!n`|lrvQA9*B$fJM%{1F3EX+U`}2C{uwuxb7c)ZCex zI(^}jzYNim3=F52E$aoz{r&q_qdqLG3E4$V=$e21{_WBZ)SPkp3&V_C-x=oK|HZ%v z^mF0NnahiUf})UJ1au`M6Ov}VUq64k_GD*I3)=jcVe8e`3{t;7F{G++GUQB}w4yXT zJaXG-9)`cbfP=Z{*RNlYKm=;m2WqyNQC&U7b?J466VHDzSV?m+tn^T1Nbl}m*_e_N zQFoh#;qvG23_pG_Go*tIojNs(k&$sP6G-#VpFi!U0X6%szQb_--CqV9S#E}%k?IVI z&CRQ8laj(Sj(kCJQF?E0HqgSoK)ttFfST=>bazkeJM)U+2{SK)hbAw>A{TLnnCj{^ zorQ&=u{&O&xG1T$H3w+(9yWINTOijn%NrYiSha22oxYS%4@QQ63@zru4B^GaYg_X2 zLb4BkVL0>pH-n`VC&P{ib%xm5+B{%P>|$nSz6DAT=XdR5U;#Sg=9|~A8EryBijS;W z)9V@^zhP=)WAM7?tUwpBz+DtpTAB~Ec^5m-=1cqbF@P{EIvK>Yv>5*K^J@W3_mPm4 zydxtkE4ya$=s2aN#n`2#jefs=ec|i< s``3YDzd=zCrT;+jUq(u^GeCd=0LgJP$ubZ{WB>pF07*qoM6N<$f@rvF3jhEB diff --git a/interface/ispconfig/interface/themes/default/icons/x16/tick.png b/interface/ispconfig/interface/themes/default/icons/x16/tick.png deleted file mode 100644 index ccf42c882a6e1e0a829e990d80893839dc145e35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 640 zcmV-`0)PF9P)5_l64E?JKDEj zJ`mm?GfIX%Ge5In7{)a1ecTY>M6$S&zI5fN$j;jRejyGxjbi&Baz2Sb-XZqK)AGyMs`Vw_&AK)^dnr?x_OJq}BAcClY z5nhCU_0__n`W7G1xN@H&i2}X&Q80Z_$H+tXnpJe1@CQ zP%Ipc3&v}3F47(e*J?GGrs+y_vAw&EJHhMdth6Ja&*SFnyI5XX1~XV#FkXXWGUT9b z+xUEG9>q!#xt$zhqz`AiMxiJQrZ->URrw7XQUiu%1O?+Y0JSM@_g}-((h}x}XK*qy zf+r&nUHENz0gnsQKnSj=LS5#-py6zlwUUwjdLObZ!{_ti>Chwi6d%^>KX7j|3)aE- zzkn-?n1*1y9ems_6{~VsM*91>`_-nduHOPWu@4IwwR%-BUW3`+Ta^t7L??X&r@mcw z;nZRpIMNC;X6t5A-w@1!0doqrMyD#DimMJ~I*AdazHm5({c{Vk2G!NY>ME<-Q-X10 zAi_il&q0g_VN@EI`sIv2*&g>N+QM>|5)?)DFKSq8^{Tb1ZLpslUSxB~*>KrC197Fh zxgzM5dN7PMjv~dw<=!?Po&t8Uj1?@Pz;^gfiL1<6+BA?nCsqEDV39?QtIk>WM}PqU X8gD*;Zn-LF00000NkvXXu0mjfwggkd diff --git a/interface/ispconfig/interface/themes/default/icons/x16/tick_circle_frame.png b/interface/ispconfig/interface/themes/default/icons/x16/tick_circle_frame.png deleted file mode 100644 index 7fe467b751046418f22aea200e095c9f25a5228c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 933 zcmV;W16urvP)Mb9 z(q@oQv;uKKCkDeRvOppbgJh0bJ}jBZ5)-3K=7*8Z4`xf2`AIa(o^zh(ocBHN%eAz$fa5suJgGUKKB%rD)*jL2b$Rs|tSS-8S+S=NSi;K&X$)vU*iXyyTudBPe`he-%q3jtJTV`Qq$br?6BMI9ml+#m=Ih@=kdtRGeB?9Bf5SGL^!~$WSPRSS-*@+VMds3v+XG=(zbcB60-xV=fdHZn7~gGtkR& z46eiz?PIR7C6EhE%n;&0 zrLF=#->jQynZZ9!=e6F3{05lf1&}g0>~MdoiER&SfK6*+N#;tumKhbg^WqAg-JJs53TjrW(Qf<#C(AqGbYAJBmbgKMHW&_vlN|Z; z#JbGP%-rnkY`fLEb?4Ee-!@iN?JD_SqhVs=@0qTypKnb~J-I{0HKHiWYnonW1_Gfc z3@lQ50X@ZELQP|&|Be6Yqf{e7y7J8G>gpm3iU<*lZv+?s3J;!e|I%#300000NkvXX Hu0mjfdm6m_ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/tick_shield.png b/interface/ispconfig/interface/themes/default/icons/x16/tick_shield.png deleted file mode 100644 index 8889996c9406f1c737a61d8ba647b1ef03094bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 801 zcmV++1K#|JP)2_OSB~U0d zptKlJiIhT7qo8;&cmRzjPA100i(HM~0*0 zy3%wOOCP_z4HJ$Ib|9sf(7FHe=}Tvs*qZK@8L=bdz~CcQAJs`JH@$7Jp~~IpDsh%O zZB^w>E{~V)y)k0xGkqBbW&=;@_RfnP-D5vKwG$B1SmSY2+g%mmaM%dfmem~R32&ZW zo*AY_`qhTE+VSa$Us(fH*95*mxY69PN6e3b7`x z;jzCLOMxX6mlUg%iDZkYYC%a#C~P^|K89cir> ziYPNCYmn6cL?Szh`={>0@At!3{~pbD4_~KFSN9^VR2e;ZnoWk>nE=OtjmS8h(Hiu+uNY& z`xuk`3amv{eIPcs(*m<@&2K8KbkDRAxN=(@x-=c#R2IZVLjMjYO~z|- zqEvs%*?4b$Yf%O77D|m8&&I>j*XZ9=BsqmJ>A{q?idE{!*o=Yc@GTw0ib`BZExN4d zkJT{)WimF8-}rz{j3S`#)2%pFg0k9y0ZWM8W{2^y=qQ90*YJ@3x&-6shX^I}GR$C` fDnwcJp8x{@JXSyGR4P3y00000NkvXXu0mjf{N!+O diff --git a/interface/ispconfig/interface/themes/default/icons/x16/tick_small.png b/interface/ispconfig/interface/themes/default/icons/x16/tick_small.png deleted file mode 100644 index a110aef9330c6e9089dfb18544d1a46d65d9fa92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 283 zcmV+$0p$LPP)r|rbf13~o0CF{;I zeE(Mibj=Rp4EXV{=Jdj2XJrEwj6pPr&+z~M4x(cLY}2dX43E2Sv@ozT)-Z^%?!Xtu hjH5}JasvPY3;^T3N38C(J0t)A002ovPDHLkV1ipCc|`yK diff --git a/interface/ispconfig/interface/themes/default/icons/x16/tick_small_circle.png b/interface/ispconfig/interface/themes/default/icons/x16/tick_small_circle.png deleted file mode 100644 index b49be4d9cacde67c312412de92617d042ffef098..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 329 zcmV-P0k-~$P)q$gGRCwBA{Qv(y10{fofkH6w2C$$D zFfJ8kU|?nR0y1NOSRRNU0`U@t-~YG$kA6+q0EYhzUVLo4ZMIrg$~^2mT%Ue?);oIb znAWFXpFy(Q2z%kzzZg?RW93h8KJnbSeTONMFM#J`;5~hiIB{X{)1s2973}S5Cuo=KOnv^Lw b03g5sL77}{cJ&VM00000NkvXXu0mjfz$uf+ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/ticket.png b/interface/ispconfig/interface/themes/default/icons/x16/ticket.png deleted file mode 100644 index ab11ce288ec713f49fbd15d47bc4e01533b25963..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 730 zcmV<00ww*4P)RCwBqQ(Z{YQ4~M_kG176H&>KI zFV&o}s74Si%UG619}q<5mLLc|_!6eAWh(<8qKH1wzaN9>v3fHpi#}g8hht(JXdi|Z z?4b`*m$tS2|M#wQowKbpyYS=ObME<_bM8Ioau=(%fl3rXM5sgoB|;EE5O|aV@F)eI zUkd=c5dDPGKq8Rlj7TazT;J+JxfS(|>4ysiFj7K`kJPtzkjNO6Iomr> zx3bLt6Tqktvb*f0)Gq({2CQrvkHFo|PKv7r&o})mKt5(EDR)Y30so66nNpxchFd)! zJQeO6ZFpXYewMicIL@UzJ>k=*D-SSxwfm56Z4Z7 zW#zy%XL&t#<{|2@XWJ;tWPi>1_ABA>WUJ;PtF<|Bxvt!aSIi)H`$j=1TAwHPJ?(mD zJ8*PQf>}Ad5={;Y$8n%tqK8W->@FmB^Bn(*jrg;dA&|NTVI(vTT%&z6U|Czx!PY-G zWVrL7&nd@a)8uSjE?lU!pT_+?{1?N$!=K@KAe7N_vFY{z>@ctJ<>@s(bN*_#TCIlI z&nV>R4REIV&{_OQ_Xplj4EGFuns;Q`LuwJriVE}x9oFSd;g5j?lUAc{C)y1N9U>c% zh0q{W2!V0AnN2QYDRbDcQoUxCPPDxJD))|jiI1X9PDA_;o%|AD03@<^K=d>&<^TWy M07*qoM6N<$g1cKxj{pDw diff --git a/interface/ispconfig/interface/themes/default/icons/x16/ticket_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/ticket_arrow.png deleted file mode 100644 index 37df09ea960c16a0dc92bb39014c404174901137..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 824 zcmV-81IPS{P)X1H2V5c(x0&Y7?u4H(`9Ydbb@Aq zk|JTw)^uO@z4!KB=f@)Lz{A6P&ig#)y!Rdf1Vm2q9>`5qfRGddNfMYzATW~zu@{#$ z7=sMUS~-pbnnu7dED*doIT@e#2NsDN<*A@O7!4bQ zf@Rpu^EIvQjLQyrdSg32r|_Lu4PfI?Aci@XcbPKMi*vw_&H7yMtgDN~QGx3R{$~)2 zyJ!paRGZb@?-#QyunY~IeG?rehP!RJo`&zK)-#Aj4AK@|X`#Fec2FvnFf=seH$gsN zX*clCDQmb-;d^O+8E^nfgcw~(E!E<7+LyZW!oIT~QTc*jG3|Ml5%ZLkOKHH&9Irj(^1~d?Z5$&9#Nq z48y$S#k^LC5s$^$mDlbxI)B+gAP@jS5dKjEI5;#6O7B_T&8i<=KoB(R^LR#GPA3pF z&E!;EH8wit{l99x&LQG3xK&-CpAscV^Rss(U~v`Bm+%vi=}Ft^fu84IGfw7baePLA zpTznXg`cLywiy~;{Ft^yorxbA9(9YvBDqczBmZET+KKPE1Pz6U056OhJ7x@i8i{z) zJ)oz3-X*a_wgpbV5ju703dt8IzyezP;?bc1T@T+{$X?qFf1aih(;p*`RBLk!H6D)} zq*!dYc(#6QR^sS+KkpqkkI&fpKF@@Nisa&`aOgI6TM$h*t!$$hV{3X`_^G0lZPy)> zR*vTsh3qKKM_|Y>B$DFCACr1HPEy=y5ogtx@>+7)K#CDL`P1VOa0vB0eei8~YSCo< zzBq;R!5BgOA7iC4`{t|@96fENyuCLc^BeF-fB^tbubbhO%ilNv0000 C<#pfy diff --git a/interface/ispconfig/interface/themes/default/icons/x16/ticket_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/ticket_exclamation.png deleted file mode 100644 index 2eec043c449c1dce367f857904084fe5bb781de2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 817 zcmV-11J3-3P)w=Q50Qs?mQg5sA-mE z`5qq$+KVtNf-Eg93_>xL6#Gd(q)%u_eHQ44ebkQ;7#d}c!3aePh7^^g z`JC}}&$-jSqnXlU!(wsH-fQiB?!G!~i1fq=WF%Rjm-LV%Ml695ON>QQ`UIh0sH)xN zazRlzgiygWVd}w9+$%nT^h4qJOIS#he4(_djX06c2^*8FwlE1P`-Ab1u&6>!&Ma+e z6$?|yDsO3}^I@&?x&i(j7B0letTJnh;`{+^Y;|P;kGr~5iXzJI{hvV;bxFxCw>H~t zFIUB?3RNh0*gMviS9QOc@<*s{-`@ z11r@X*<|1XqB$3-c{i+$i}O?Nu9`3|E)F)EZG95v;fuDa+!C7N*+v6Rd^*3<+ORP9 zTl|Y7LO#Q8E5O`*H<~JQu5zJv)BP}8>m0*5Pb;jl-gV6WDHdW0PUj%vk6pw2fohx4 z?C8`?9oV+(XoxCw=LLtJ07kohQD0Gb!`sIf2BV37 zU1^gE=fjwp8T}-|;nCUIiABe_kI^%14;MJDXa-a?Kqfu4WtS?l(~{~Klh!Bklzq_G zUD6*A66^PMdH_$Klw)%F0}OtF7S55WDA2L$M}z2nH~wby+w7gVsPI{n$>i=Xd;6l{ z_NjLNon|j){309KB+}2;!BamESzh)xc*qH4lBjKgk%3o7-&lbC$ vN^VpbVrVfg5E$I7lE|gqjf~;#PXPu1#T}EPH9{X000000NkvXXu0mjfj)#LX diff --git a/interface/ispconfig/interface/themes/default/icons/x16/ticket_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/ticket_minus.png deleted file mode 100644 index dd03d933642da64c677d89273bb806357f688d0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 763 zcmVJNRCwBaQ*B67Q5b&jM{P}I(n9;J=;NRLkfi$AhiJ3V2&^C~ z(8zGMG}m^|IqN-}+FIHR5AQwaeV^xj?z!g*5D|qLDR4B)1hOQ9B#D?M5HU-lxCzU- zh(XHONH7=#RV6?v1CbL8(l^45id-n%l?+RS2}yY;>}_3`GjP2vvM4r|XF>js4X{j@ z7-e}U?QNZO&I3h`j!s->^2v(=uzZ*Zr3Z?tl@9gi6mZ)tFbDU0dl|-AtZ)CHKq^kj zFLo&HBkpHmGGoA~3U{7->?(2IY{z;w_F0z_NF|iy+s?Nt{#g&0&1M)K9Sw_+05H`D z{B_DM^(fev{g*%xz)T1&D5+6eeKVfWR8F*5EZ}y#7oCV&19Ul0SE7r@kpi52u&hpL znfvjFypXL{D+~+_fV|28ZFRPDgtAAt|5luzoJI&aT<%n^&wBqQFXTNr1<+D+s)|zj zkdrxAMr=m%p^7WrS7*L^KoA5FMKNqOBCpix;hLk^j`jYS$=NZ(%g-Q8)WP1eNdp}DHqq5C@1pZI!wO#8(f>Z1tZvMqfl+R3pu_B8qZek4)+Ty)V% ztUdv5@6H&Co$$sAg!!TleON~F3%oEwV|8im;Hx*rdk>yFC?TN+U7Q{oDvN59CcLG` zZ6#ZxzxOSd3*`E{!?4$~c4%F^cF2;N?9^y9;Q!?VeY_DaoH=$8f22MSVaZJ{moHiX z4{&(lHpU diff --git a/interface/ispconfig/interface/themes/default/icons/x16/ticket_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/ticket_pencil.png deleted file mode 100644 index b35c58e9e68a2a48b2769fa7b79e3f34f229be7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 904 zcmV;319$w1P)p zQ902&6)%^^qdz2KS1f2W91sB^2i8~; zEI>f8oXGCmb#?`V8YlU7-pst2H*L9cj++qxY%H_e58bfaU2Eo_heq!kk|7ELc!7t& z^I@clBUCa)sZ&)Ik|cvM1$--zGb}rMLA}|WK!z~gqb}a5(l9pNcr) z`G##hL2NQ(35&Pp6-eLOprx&Jdr)%WfpgW@9+QXIgZ1kl^Mwqu?y$c-YapFM%DwA8jT1IU~dBbGN*c^wkcl100f7Oh1>0h)oKM)N?m18fZTkIC1(xVVJE(kX3P#6*B zB}>N8=JpShW8$LGSbqs7lN}*LMxv&s20=kVdLm+fUli?LzJaQ`#rJ7gxGb}zRawRB zZQ;vsrQ{Z(6Hno}`?_Ag)9HlE<$~yKLH>@kO)^tTN&id_paP?0S)P-=EAQCX&UOR@ zPQ>uA)yO}%9y8JkK~2+xM8_uLcvk8b#@J2GS#QgM^r+FqXRpgCI`Z{%2la^q&-4Fq zZ?i9sWi87f`5G9bpmK%Cewx3%Gw6MbJxlLtw$gqC3&Bk2PcRa^v@OZI2%TWLi8 zkiO>BLA4a|3u_u%B_UCXGf|Q#^hb!cOcsXzh@gbh`LPK5Rrsfjpr8*530=y}HVYKY zv<&~GHRs&Nd++;pUZ*xoJ8*dJz2`p9Irp9;fe_12-vtGkDv+{LU|9x{1qP92nB5r8 zMenCP?+^q5IF10NJTM~Bkh&diSLQ-~+D=%*R7lD@QPXNgOvnA+&>(ZYJQMW$<6#|B z@s!UyRnyu*7iOW*)ZT&n3^DVH0IY8+Lg}Hxi6&T<5KY;|y zqAxO8+8p-YAerZZryM+ZJ7Fy`-)+Nq7T(jYC6GWU(HCE8vH0g_L9JGU)9DO~kO1(U z7sTh3)puI(Ue+oB0YFU%HI&p^TD;$^6SNIqOv zXK7xT`$JwvtyT**n+>FqN@%Sst|F9wf#;*lQszWL$kB4M<<`9GU-B|$>kQCbYpkY} zJ{QR%SBjp5_Qx&Zt*NJPM21*@dqm;xx0hL?5yL!V;0p7oiyfPe8R(aOzmt;%@$ zX3p2r?323Wzx(~>(d$9B=i{`v{*LOsJK|!~^aaLTpU(?&B%9A2zk;oL(icCsZNfPY z6T{=vvZUy^fiByixCSZ=E>B|=`j(u;O~;Bewl=yZ9fF7%D&+w@k3m};$IY^Bx2 z?1Yez1j=uOD6K?kX^RR-MGA-uNJw0eP^#pf79H@E##HB(ABp^XbBc*|= zP$v*t951$&M3(LR8+&(cXQyu*+9D8)_GxC``@XmDeNV#%PH8@;iZ2(+^7EoCo0mLr zPeLm>Xec`}Bmrg!RDC*g0wzj9AA24&QSh7WS5x4o0I;v^y^l|P(sST5a6M2im$9<7 z6_rW_i}M96;o#- z!5fx}DNHsyT@XSKDlVTdN#WWhx2t=-?l*DTXRxvYGsfx$^|9pyDyA@pCbEb6DA+!Eb7)dLrgCG(I%^mzA)xm#Ct%t1q3h4$=K1r}tP-&-R_GbRkG_>Rsm;d7R4K>3=Xv@!zPbYl0)Lg5o8O z;xzxbl<2y9>)HiRO4iZ6v01h7cr2A48Xg;?iG59XOJo0&_^V1&0?W2bC;M++8Rv{E z4KXnIXWDiuCspiKytq9AP-cA53YZlo7VAk@ zaajlL4=y`&oyszBu(_!-?6@{45u(vZZeyd^%^D^N-IlkHitZl&H-orI zC?P=D7UHO8<`h}U79k5f$|I4x@c?gI`5F?m#g>)8;y(fm0PinEGREEjJ^%m!07*qo IM6N<$f^7zwX#fBK diff --git a/interface/ispconfig/interface/themes/default/icons/x16/trophy_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/trophy_arrow.png deleted file mode 100644 index 4331f6cb56089d0144773376f93bcfdc3811272d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 963 zcmV;!13dhRP)~H#fLJNYHVZKv3i3`Hx$RV-*%fj|q4~tZASX0w=NJ+aJ$g6!wlbPu)wqLxbt$!X+t_XD!rfccvDjnw65r zdASDe^9Y;pNu`!GN-a)-m9lw8i-ml#yJx+{uHaLfmFU8m5K-6Eo788s%F@K-UuslM zeb0;fMod9BP4-!0K|Q??S9fuJz!-TY5O^%qWTBKZ&U?2=n4XKLPmP6VxcwZj>Nu4U z5k~qyjv{>i5ysH{`)|j;HW?%9dNwwS7Ut&TOB0jx^S9hv-^n%%sM&`G;MUH-ESDe; z_Yv?>f`h^CN~TgNPbAd2!T!*;_O(nBr%#@pFO{pWpBtQdkAn~BN~@lB^v^8P0Hl-C zz}PG&DhoK40rx5wCsFyx3inFm99A!EI--^gBlz-gQ;?tg8Dp>3Y_XfbKWSjt%atnc zm;bahlAT^(*HBAmum7O>1g7fW^kyXgzPZ_}1-sMkfBv~n|Ala}gPEpI?q&HrRLiuH z^LB` z7wYTlaZK5RIBTw5Do!k{p>6PQ?!x5ZU&BO_z7zq(Bpwu%zrP75`UZl*29F26=4QCv zZcea?%*qNhz7zXz>;T*QE)s{1&Qxz)KCF*_F)F|^7mp}=b_vn+&*A&60!p2&9oi=! l%X;d{v1;V#n84lh5;C%I?Do*&>L_f(VK)BEIN@hz|>bpzq!u6d!cKiim7sWh+!+ z-HR8}?r!bovQ21fHk7UO?>VBdW+hd=%J-L=AMy3Psl z+8gieH|llNwl+~Im%%Iog-H15^u-_Dd}Jul`Q&4hQ>FF%&vaXJ!c6ih#kF)iw z7t0J23l|r@nmC$#`ks}g3;yC-w&DT>K>($~9+(M~?}5PqzcLW&O^%I4hb~=S&bV0N zSb|(%UoUuy8-@Pi*j=GOXf)p27ZhyUhG{mS)l2B<6yWm+XxS{}l>~bJ!Y{dWuJ{RW z>O#3;Eo+{AzB7e?Qbno=ha}oeYYMamD%UB1NvaWK`OjdTkTm7dD(zj3VVG z**`Q&asN|}gZMXRzx=><91OZmtX9GB(-I2r*4@>^P1a%>qPH+%NVF?kh8fgjYOk3G&P0c2?dcc6+U_s9ij$p z^VPj~hq#MiSdBMZc+Lg8T?BZ@S8gF)I`h+C^TZ#)aMv}+e^2-(2)_?h#s)tEw$}sm bHvt9!CAnRGEIVrV00000NkvXXu0mjfN3hRQ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/trophy_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/trophy_minus.png deleted file mode 100644 index 9c6b03dceee56d32e952223933c4b8ed1c6c7038..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 887 zcmV--1Bm>IP)_T!`5M^10B*_gjmnC`zUhfF{I>N2dfr0MG-QOS13$A=< zh|Mi7X4LFbrhQA#j&La4-`m=@S+;E(mSv(+&Y`7QhDViAvw7IqbO7g8Z*9OwkpstAl29Zaj+FrJH2hHH^= zXrAoLqvh90MXZl~jYcR6*>d4126oEP)hPqhHP@rXyuq z5bu5T#r>6X8KuR)u#n3^& zd4S4Q@jn-fv7B^zAtwl;gK@cnYzkUM);ia&7i|(gv08}2k_jP80K3UQ1z3#b1lrxA zrd2h@6)GCSW8v>NJQ;fBopPp8TX@4TplK@Pat5m!dDtW#HAC=NEj)K_^!HdK zmOkbm$6+=F#W2i$iFoXEd^)y^em|^+Uhe6+udhWE1nM~LUF2}>#&qVFp-ba5e!gX< zIrZ!)o|*@K<9BQzppyWd{X9jO;{0s<&y6;_!?Duc;wTl8NX^V-&z!w6VRss@U%2($ zb+yQEd}(0djVmJ~0q%CEO%t(7Mcy-X>i85#IOZY3XRgF84YfUY^88=OP=H;GUIQa~U95)x`f6_r201AS?wKDB-70|6e2`T$6Ms3-y{g#ZBw z0#ytSBwQRXwv~YE*f?<<@5PRHJ7bDk6*1bQozXepcg}q03>o@XavEjq%4_zvf^G*Y z7N})IDjKNK4BKl1L}4g9Wn#D;D0-Y^-s3>V9?AU_?0chLejf^<9zuh$Doh?a~^v}ax>78uX?$;z(1Th9N|Kbee23!D&N ze|K`7UMOHL_Zrzu25f=ALlm67aBoETo15xt4(;pSoSsTNpfg3gktr@uYBHKp7+KHD zHSnG#d?F^5%4QgoJpxN-i#9X$qS@BoA-f#--l-5x1QSB42Jw+M1i~j`TAS-+(=3?+ z%XAY%_l7Qg+|zsHqi2tXeW}S0EWJ0}`h^u?~d4th=I22mjy+me=E6(pOQ;d$q(^m(>kGTIXuj(SBhzKY9 zk46#R|A=j)?fSsQGnQ?WmiAQvafPw*`1GCO@p09!97_abHCZpCEn9+A0qFmg<^-y) z7yAaUT$rGQ3Jo!I`(Z*iN_}THdyn7jbdS97%crk(xG}KY3Hrw z+wsaxU%<3-`3lcqS^_cx8)5P`%a7evf>m6%)BNcEqW`BZ%_vkydH<{H@b6sr&S2gA z?Z&?ZU#$jK)Zli{zJnVhqY+x>Z=trf7KAhQ2mV6RRpzZ!ARSnNv0q2SRS-c~bV1nS zQ%@kD_z>=x8l%lEEeJL=z~}R!!slUiE{6<%6Mg0b=#?BWUy<=maXZJ&2(ZMhPL%z4 u8qxISFy6b?vgY|jUcwC2e=u`@3orm<_D>DOvmXKg0000df diff --git a/interface/ispconfig/interface/themes/default/icons/x16/tux.png b/interface/ispconfig/interface/themes/default/icons/x16/tux.png deleted file mode 100644 index bbefe2ec455c42b2c8e8435582cc11a8434495ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 696 zcmV;p0!RIcP)a8B{-MRO+d-q3;Nq=BQ5k|pUEm)WqMHu)e1HsCoBnZl&D2fWC zaQI+^Ypcj~qlqjN+KQ~b2pMEyMH{Ql+1>s2yE7NkMta~2=N!)coZtD~5&$KI!t?Ad z$MG3K5aJfgx?{!872ITuZRI#lqksTdtyb{7RJQ~`I$^U_K{Co%zhNU}Spi{>7Y)dA z2T(yWOq>p(RuxZ;w1ML7gxm{mzWemI`nN(<|yr*`feZQuYV#H)Ari z1=G>vINi|>i=~44z?}aDs8rU})cijABZaAtpP*_$DD;f_AnVU~YcQ}?MFF~@lnxDf zyNq(_WL&)Po|mVtd(wFiQob0&DT1hhg-xfS-QxYqH-fm1@dyFt8i e#x0i4_uw}&{+U-AleQoL0000l0ldN diff --git a/interface/ispconfig/interface/themes/default/icons/x16/user.png b/interface/ispconfig/interface/themes/default/icons/x16/user.png deleted file mode 100644 index 79f35ccbdad44489dbf07d1bf688c411aa3b612c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 741 zcmVz1iyEv%?$mbQ(# zwJpuiQJP8?X_`#S8b+U_G6=ziYB!xPAcq{)ZJ0bECH@ zYx#`n8^Wzn^J!4>=q^bltNO15ry?0ecSLkjpT@vlid!jk)Fjf7&)q_V5zGs#3N%6* zbW~7Hg=&P0&~Y(|g>$hC9FL?;ttzPDZbpZu9OLb33^e2;FNTGJxScp1&q4M+y2ntQ z?C(=hpU$3~`Thx0eHwi0x`q+!d5k@|0_WHe%sG3e-s^MM`xM-ig!VcIA7H}X1ot~L zg=MLB4w-Q;Bi!!u2|I+Qb;0{{4Q53YX6+4_aXena{nmt*!YG7ua~`qc>o=?@U?rOU znS7%>klzi*muXnbM6i@4FR@s^8vTjDgy&%J?w?`u>NYMDFa_2%0SQ(qJE<3=<8Bzo zfdU60e*y(^$RF%r$kl)p7=7tlCDa$+J7w>}DU(O#~fk>pYuRvHi1E9^msg{tLeV XM&GIRvfA7%00000NkvXXu0mjf&%8>| diff --git a/interface/ispconfig/interface/themes/default/icons/x16/user_add.png b/interface/ispconfig/interface/themes/default/icons/x16/user_add.png deleted file mode 100644 index deae99bcff9815d8530a920e754d743700ddd5fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746 zcmVR5;6} zkbg*1Q547RkCGx=+ZrJV#zL@SQK$qJV#CSW)Px1IG~1R7@Ce7&_JfOHMV?!rlp(uU_DLu%oT329{ zvd}^m>Zu}~l!lF)$vj*+!9ivWYi3=6E`B>+7|Su$tH+R~2!#ne6eorwU&M#{7<<90 zO$iMuFlR;n2z>v9nKwp!?XQQ|aSfBtZ^J)10wQ zP}rH=KSJQ4N-!Ms3A?4X%~8iSR-zylzlSXd_?|M%f3%_Vax4V#xlec^^VT&5JP8rX z6}RO@h&}Lqo`s_<751_e20DK|@e2`2FToK$y2KTlwyhFyPdYY*B{>w4$%B}fnn&9d zQ0xQp-T@b00q1)Ft+NxwMg`RMry#!}42Vk(RW1t-$ePmK0V@&mp4&IBO>%w~~-qNFem8*NKi5C3*h;eH{=}2kRqEdNlF-|c6B{jNg1xE|{xZ_qq=T?P)vCi#|P&Xm-dkucwL z3)87{8iWe96huvPHfK`KOdC2Z({T6vJ9pwDx$D4>d(Pqff6w7Lmj{5i6;ZyPPpPN; zroaW=6d#@oL2Fa53F~$Su10(RG%K0p3VTuP3?Z=nBA8z$uq+XLUL^QrC74`bU|!e| zr>hK{)%Q!vdmIO5Z3JIvaOyjOX`X@c8-ua03`Q&)f&%p*{(A$q`ZTTjk%q_T7>v^J zu!R-a9fFLScYlKkNBP_Cob=9m9JLVoC-?c{)eOtMnh7qNN{ejy2sM{pS^mgFHJm@(buuM4>=<5Vr$&Kzw{B?uPr; z(1Yf=#g)zADkWnx=MR%ykl| z3Ui42k+O2{bCn)01-s5Sxp|z{G2di&KT(_M6;$EI zDL57JFf}cw4bP1P$pgTRKH$0@h|~aA>j`qZ2*kU5t2EVD5#~@VNhqx{vz8ethDD-=+1vnemftUBA zF;N!Q%PBB5B=KLB#QO(CHe?;R+-C8M?ppDW>R$5`cCPq@YpusFRTaH1i9Kv;l<>I( Ze*oTy+;kdDB`N>_002ovPDHLkV1l3CM+g7_ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/user_delete.png b/interface/ispconfig/interface/themes/default/icons/x16/user_delete.png deleted file mode 100644 index acbb5630e51a12a1cd30ea799d659b309e7041cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 767 zcmV!wMF|0iq|AK>&MHw6~-ksQ9RtH+=$?!G=zinz|BNIO*d}XYdmm2K>Qw%i9j?X9SgRBJn4W5%uAclWG_T7f?M4s9q5$`w5b| z31S}-Tq~-?NahjDw3mU5cfqF5z)+g+pPplGDyLv1f8WAnTQ+Xiw;{fhcBLH^j|gI# z2~IT;7{m9#PQ$2>16f?4#0x*vLFksSJ~;)W1wO>uQ-rAG1{C+&5Zw%%))Pc(2_k9< z`smoi)Pkk!SK)SAcOy>0d#x(Rl;b_GP?XFE#P>r%M^9Kn>j@#I>kHsrS$qYvKE>lwZZUsXcw4nFNHZZ~?%71a&2u7&aV|47ZvJKBUVO{)!ekB`ACp}1 xSnjsa#jtYM{A~v!cV^R$X2;lcpKyd7^}lwPp>~q=QF{OY002ovPDHLkV1lJ{Vb%Zu diff --git a/interface/ispconfig/interface/themes/default/icons/x16/user_edit.png b/interface/ispconfig/interface/themes/default/icons/x16/user_edit.png deleted file mode 100644 index c1974cda745278a404b9e29fa91e0503a84accb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 833 zcmV-H1HSx;P)wKwNApj*j?`*x8fjj}+T^cdNV;=~VOf{An4CI`(Q%x}`$a=uBQ`IcOG~+O zhFmpv$jQAVt#pVn<-FwXyxzC#)@;^BTYr4EXV3Qe?Ah}?KRp0?|HEG!QT7K}`6R>T z0?GlfNd&N5h)SxRamGIduGtwfO1+4h$^b)DXu0o8M7BEtF^>B+6kDUTT?1tl0&27( zTPtN#enUj2hcV)v4ROVeu()d=+i@S-%91h3XQQ_&2GLH&h;==J>*q}oafY~7o8YOx zW1up~WKKQv35z{tnCiF(G50p)FLR-gi@=FATO4h+zckVifX~k}G4#+4;u7niZGj@H zRkx!55oQOPpc>+6Y1FM1A`bW&7GI~k7+8?J0DewkUh)LOJkrdTe3;U(*Zgc$Er)&@ zD+5(f%bInl-ZwzNw#9d8%I4~~7EHgs3zhUKHpaRkt%*?UWMg-Zz7eUOc8t^s*~Buq zNnU77^3>6u=K_U{g-umARHHXA*H6dCx-dv81Ap`v`JB`FJi0MFsY3lE z5Gw;{eLz-+019a$Hq}BXzXU@)LB-NA6Y>hD8BxCLDcvPn`&N6q`mxc}yMb~sKo@Ed zDbOI5^9}?Dhz0FQMoKPVwk00IILo!IfS6^eQMBJdKtv5PI+Tbj;^0Fo6JmY=Cj0!M zlv6P`lmJPo4+6tWG2fYveukB1DzkD{lX z41Nw7E`C*@hclIfDYh$GCw<#Tk~h)}QkWS=$Gv&wY2h|l6&7Q)uMmBi&Zxg?1_yGk z;>5+4_M6eEhsL=ygB_>Q-+`#k4z^f-l|x?d%y)UiW7wGPG|s;O<^@R5;6} zlU-<1VHn33^g%H_Q)k_G9ovjfnFiK+H+Wv4;+`mU!eP_1WYT1cBMG4+b^?L6?AK< zB&!jFQPqM`i@@k4u(!!^rBRBL3hHN70i&#iOH+^0u48x?v*GiYACKJzT+r-=qk+oz zUpus;svxs4gSf1jroEXH?t1wdY3Aof0-iGMy6$K8JD3_XyAT<+1dUmit6yK(! zNF_M9n(Bm#E9}vQx7n3q{&nCY)~18Vynj^W_e>bi@1BCANxml61a_7c$XmJMZk?*# z;GcZLxX)MuKlTCU=6xU;ncBCjL?Amju!Wp&&M@$uZ9p#m5yGvf5Ue8*EJF}(aLDzJ zAlPvPBtx=PWAE0I3CKlubR6lS2?)Vw;GM(ZEgZ6)VF+v#S+fswc_vu$Vh-L#8KE%#xl>f)!T)$#yRmO>TTOvB+HZ zV8!UbBF$h)Z%6VHiyt@rn*}fK8xy1uKWEQR=pEqAk+P7{#x6 x&>pVMG)#i!=x;v%@<9vjT^KNkD*ncQ;SaYr!-X7+DklH{002ovPDHLkV1noBEY$!2 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/user_go.png b/interface/ispconfig/interface/themes/default/icons/x16/user_go.png deleted file mode 100644 index 0468cf08f3760dc13e44aed69f4f15cedc93b503..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 793 zcmV+!1LpjRP)a8r-1c`3+>owstQ*9I-_ekzW(ohmYMY`{P6ZeF5{f*M765oC3mgQisOM;QQbX@ggAS2KgDM2gcqZA9XdZ>iF!~Vl<60PAsYul3 zdO@$k{dkx0EmyGNDt9}0CpW25-SK_A4lC2`W(<=`JkE57@PX&*6@@GQDqw`DDAt^o zq{Ey(Out`(COaJJ>@YJM^^2KrxFq*RzAhRU<&M8e2tg%w*9#|$0B%$xx&b3n#4 zkf!uOYO^O28&82>e-b(E7tlIZg-q>P1XbD?eadJSW`T2LeMI1S3A7{YkWT@r!zKv( zO-N}zjVBW|c%-j32i0RzNc%F;I4prs$%aP>#pqIKVL?pfIIhp@vQS;GLtGb-&KrG^L94A_pU%f6M3**AM

    gJ6i>thi*In%G< z11qR?nZ<5fV+Cs0?EF;*rjKIYInQ$Ka$^8kIXfoF@SaV-aWlw~zZ}ip35JN+^=tnJ XxNVQ!&Csrn00000NkvXXu0mjfj)-I{ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/user_gray.png b/interface/ispconfig/interface/themes/default/icons/x16/user_gray.png deleted file mode 100644 index 8fd539e9cb04111e950ac9b0cce82676f12f67d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 706 zcmV;z0zLhSP)%zf?XuhjnHwp)vDVV-Nit=+l<1e_j@md!Ei+v5AT8J`SE{vdFuew{g2kYyx=h3 z4xieMNJl*eP72^_-v!pJyZ=`JAM1)mw9ObhdlWZSJ22`#g1!y`+|mPJoz{^J0U@Ip zqqZgtkkAd&ArfvtoH-0%$6gp(_f$3noIl=(%W5IUuV^sBo`C&WBd!{oVQoJMrfnxi z`p#^x2^duFTU~s97sdAz`2P9<<{$Or>$7WEm>ok@v;XI(hZnch1SA}-?@Du%ST1C- z@^Ol2n(j;UQ@G<16>3&!ll!(xrPAzppcCc7J*<9tO11JKgUNwTh{fV3qSNQLtqV{p zl?^JDic_oANTpKf>FL455JRQWXy~0zr{ni=;uWj`kl?0ZFnEhM@}^`m39HqLY&MHb zCIgengyG>~csw3-cXwB0GT9)3Y_0-G@Dj_iNT<^<7z{8Pjj-G8$mMd#=ku^wEYNDT zu-R;gMx$`M-4(f9-d6=I3^o5=o*hIu90td6)Z}nDKqjN(GYkW-*9(`+1;5{qVlIle z{VnAxU@_8CDZRK(4T(g8f=DH5<}3B~_974nARdoX*pHVS=7PdX74Z47KQtd|`sH*w zq1WrFkyk7hqy71*_%rE`uC6XDL`7wi;nuvu(zLIhbZjEe_=@yhBIB183I%xaA+i=F o63H90*)04vGrr7ApigX07*qoM6N<$f`O4mr~m)} diff --git a/interface/ispconfig/interface/themes/default/icons/x16/user_green.png b/interface/ispconfig/interface/themes/default/icons/x16/user_green.png deleted file mode 100644 index 30383c2de517fd22945a87b0528d2821ec4d49ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 722 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 XHe4|Dt4X diff --git a/interface/ispconfig/interface/themes/default/icons/x16/vcard_add.png b/interface/ispconfig/interface/themes/default/icons/x16/vcard_add.png deleted file mode 100644 index 2a68453811f26444e2d04da5713c9c757dc999c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmV;G0&4wR5;6} zlgmp~VHCiBGxv_KMl&C2qkCXb}Wq zf!ZRmAV?dcl3`5C9`u^&j*R%u>z&8;KPY{YWGtbfuK$a=ExUB}iH8 zEPs4~N^jt-Zswr3g){Ci_UZ~2!Wmr0Ma#WbhXyeU7+*w?FH!AkTK)!xHA(%V`3nWCtofZB~;xy1Wp zclf$8!*6>HJGqJf=sC(o!*&OC`_`CUEJs$9bD*XGd(Ea)E&#^XnS(ZgInMBG4q?C+}4skYc8sQWiIn=|m_d^&hoje?QvJHqv zqa+duDl02#Y;2^Yq$CGiSe?h^a1&_01i;l(w|V?-kc=Ef7eagphr`W62s%1C9HCH1 z#bU9%U$?rx%&ZwAVonn5xl8}}1&XvnG^ef{ySYZA*K@tzyT7lq^#o0|ZG4^&6PlhR v_HFfsW4GsQ^m_V%%Rnix4h+5;FoS;pMlVc!y2FYE00000NkvXXu0mjf;fN;k diff --git a/interface/ispconfig/interface/themes/default/icons/x16/vcard_delete.png b/interface/ispconfig/interface/themes/default/icons/x16/vcard_delete.png deleted file mode 100644 index b194b971b398c3d81cdb3daefe3fc4c5ba959eaa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 651 zcmV;60(AX}P)#u+p-Y`QM29X# z5S}9c5Y@7+BwJFTy>-o9T}AP^yYJ2Wb+BDs>L55U%nZzY=R3oUp|$2H;^T;NWB|3Y zvN8%>1@Jr%tu>zKRj7#kWB=+iBb`pWEiEl3z`=c#{QudKpGYJ`X|2twswy7FgrdF8 z#`pJVX9r(v568pj8EW`JBobkCauYjW#NI7p=N(?$j36SWI@q=E+auicCzdRW#jK4U zn*+dc940Q+;(68Ou>eE_RSE!{whLVB?clOsG4uH=3DYbmPEAc!EN^gda1TI4_KIDP zkC~GwwLwEu6S3j|xm+F^_5h;MXt{fdbp?Y>Yk}7ASzf9>a=(hy1pTz{ESD4GPbToi zUn8p)5(v_D?Jm;XyU(DbevA3_0A4V_u{J;Xtvroh7N{lr_9?AvF}iMyP#r$U?%X8F zndca7OBl&yQg?TESIlSIHibf=OnLrJl!5Cb)c$-2%hS*tU`?GN_F-Y4fn`}_G8sal z5S^W!)Ya9M0cF*qracTp_x3Mv`~+%q9VH^kcs$-CBJ}t78?&>sI+aRQUSD$%`^y{Z zU)`p#`x_hB-ZF6;1FmtHZ=4?P822~UkDUs+O8HW3XI&OoO>y%2zH!)ho*6zpx|2)a lGQ~I}re4d+k;eSjU9UZ+4 z90QP2;y4ac$|Wv@_#^)I2TCfH$_D}g6<{%&x%_W&E|0}xLUSBPb-Uf%j0$Yy8`JSu zIJqCV%4?_y)^fz#Pbd`P^79OaX=7w<3^T{$(;h0T?8^6sNPyezP`j= zwjWIh@oP9Qd7EC1rcL85DIsd_W@^d=?=OJ*&@}nP1cmEP;0x{~GgM8_i-!vgGKoIQ zgH=4y>X`a$v%;^l>PHd)EBy@BisRqBhpB-cbj7B)WEI}h$^`~%ie~AWEJgZDDXY{m zXHAOb1ZuV$&E1Qy>LAwWBXp0#$cJ8}qm%SCE&!ZA+%SI&!!WQc3u`h#f!T>~QwwJD z4lX^9+q;1x=L>;DHyCK|#x)0!NF<0xqYMuZlQ-P2qCDiuU8_Gh+~hpQQ;Y9Yg04!_ZE%SemW!igKchx4WJa+_9IUqH2;IpT3(}`$+Aj z_Rhbl@sAabH~F)5Rh8PVnjntbie%Fhr;c9#IQTC){{(bKa?t*>JG%e?002ovPDHLk FV1hfYVB7!z diff --git a/interface/ispconfig/interface/themes/default/icons/x16/wall.png b/interface/ispconfig/interface/themes/default/icons/x16/wall.png deleted file mode 100644 index ecb897188bd16bd0dc82f8145b4e3a35ce1fb519..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 547 zcmV+;0^I$HP);Vtb)pe+^d+T*=sdIflUQ3jtaM3GCSwFT_#dq zTHD#$S#Gsj?}NF!tRk14!e?gRU1KIUF0iGAg>?!KeT*?7;M5(k0g=@m&e)K^JfM%l zQHsV(tzwS$nBq3seMZLv!83c lJA%K+D_2JTyUuR{3;=sJ{nIy;L23X1002ovPDHLkV1hE{{4W3i diff --git a/interface/ispconfig/interface/themes/default/icons/x16/wall__arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/wall__arrow.png deleted file mode 100644 index 643a5450c842aee902d9ef343c869d2eb153d1bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 675 zcmV;U0$lxxP)7^ zB;C?BpmOJ_r(;Q`;g2hMYlWTi|d zvwKt*2R!1@)I=CNxlCt1@dbvBuv4>7XYVu`jb39m*2)M=$FY~G8+pXSAqShBn7GfO zjXqu19RpfbgYI*(sz#VT;9zZ_kAuc%)5}>KR7w^2gMOgJBArg7vQ>ir(11PWcDJ#d zOQTd&5%dK*F9M(CQ03*QoPc2%5Kw?Dhiy+oP~DKDM|-&)d>QiaF`HGv%cM6Jw|fLd zQ4t9I+Pb1D2;#W~IkGkGo%b!>BGy@UQPqrGV`FY9@5Cw^(f2se*v(KmA zSQdSHuRgp**V4Y#yZURmPL9EBm`mRtJZ>@!GwrtUobsOn3;@y;CU}4|4E6v3002ov JPDHLkV1glXGkO33 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/wall__exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/wall__exclamation.png deleted file mode 100644 index 88b771628fdaf7c22f65b3bd8e583eb6400cdf2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 712 zcmV;(0yq7MP)je`lJk`u%aXz}?x| zd2?pwt!a5CRJA|ORw0_E!II_SR{*Dqzqu1C{80Yk6rOw{8vjyh$dl(Gl1%-iSvl^O;X@WPm)HeldMh*Y)~~*DvHuHkj-VGxSLrn%b3#9#L7S`MOKJKKE-U1N~YlL_5ynZkw^ro-6Xue4twly z_c9D)57khQawjUdD*a)KBVhmgF@;1x#v*H zAT-@T4uZ(Of=R6-$g+%dI)j?G^Gw>#iM9l9rwF&J4P8DFW&OQ9Zq<^5TwzQ4x{QRh z3R==(`OhC0AxRQSY?sJV6x{9t{5>IDy806RVhD!z4)OIhtI0TZp>QTV6sosv#oER; zdIyf#%*C%D80d#UWlT*?;psgu0)Y+~ya|p&h_IXBuzm_vRqM*6)2K1NynwDA9}<}l zc=P%eb_y$K>m)YkIMYpw!0N=<7;U^DR+$3cI5lW^#;-Y#I|RO+?B#I&!b3>khH>B! zhoTw^8&|j|BO|^ePO`=NEJID*hLU<^&j^RzhS0J>ts}bx-p;*-8!-}QK=I<6$~9=EMtc*2q9tFGy*J9HG!nDo$4hq zBJu096Q?mOAWk~HyWgGe-8=gP#u%O=f+%L+@pF3MUvk|Y*bn2p!1}?#cecO(jrlfL z4D?}~R}tIoHhlGM6ey5v;Vw_2g#ze3PN29I!#wFXq_`5~+YJ!uIrnOYVT4bO5nxNk zt)sy0nMOaK+Z92a5jXd?_da$yo#9}r7j+a1vlwM|^%v%g(-HQ5W#torhXkcG5^$Oh zXeP><4rg>M!aN{B;K*hDs2qSst%2-#7U+u5bsderHDo8of>=E6;mFicyS6c&$@edU zTqbDBYDryy>$*sy0#z*rwl7IL4z=`h=m#R#p-#RESQE0!XTwPN1k19K&;M`TvMuDP z5@|bN=`e>8k``{R&b8wp$g9D(>$ZcGlH+}Q&<;=gL;Pby$tl6}G))WZnIwgqrNxC( zq|LM6*O;1_8?yA*9dye-k&qK$o;S?zS5NN;pz>j;u0!|mQKU6LiZRlaFEkit^BfXicdF(jPDd&)M?v{R*DsrbiQ z0Lcb}ugeOYd>5&^iunAO`Zbi|2zMuO|7t&?QGxvEAU=S7%{WmyalAKVDl@sfhQmEa zo0@}3f+~E6K+2w&m_pyF)37>&n4EkPV#p-0#-lJ@nIwTfRM*xE&?a0dK zdT#&^fwvXc2dPnA{i@%&Ld^|E5oz%odmPk1rd5xfp`PyVz`d-hzj^pwK4Z68X(Nh}PO zp^_AIMsPD;eEAzpxTpzHPIzL$+yq<_j%raeO?&TH1R)$VcEcKT1O^vmFm^RAC1!q9TckV$KVQ7DF0#UE!D__P5i8>Eq_!xvgL8E#;pWpvg zjsPzN3{?^OsFEM|r@qFpG4{#I%asTHet)_#+vNtL;RPIK%JwD_(TIcHOQoI?7;tNv z=4epcDm0&ywN=VAzk?Zon?Mx`x%Gk#TJ;tJp#ZSQBA3gdwOdDE&TqH5Tn5%FIn;L) zgnYsALJ$fBZ9$4lOVD*49@HR7QQKR^qqrc&PfugJ2n|T{XKmJoAkn=s$^I|MvVvgn zAaz-h5!A$KoF;Ek^jEPkjNw)%32Q7l&J2E*vY+h^bT(MNp{SSXg&o_4MhRx9jtMXEXsKWo$qhlN4O2V}2$rvw3KSO&_pz~KZ zRuPPYxy(2o>xRw(u>H5h#@DL_yR@3hxK|yJjpkEboZRVqSX<1BO=5|98slCT&?|*K zxTL%g*>s~*jDhTaA=TFZPZ k|JYCG!&c^f&OZVS0P?N??S?-BPyhe`07*qoM6N<$f+;7=9RL6T diff --git a/interface/ispconfig/interface/themes/default/icons/x16/wall_disable.png b/interface/ispconfig/interface/themes/default/icons/x16/wall_disable.png deleted file mode 100644 index f7317d3cb0ebd32cd792095981176edc61b9a690..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 415 zcmV;Q0bu@#P)SvMx2H_2pYzF~$L zmLXl&Ep`za1c45xH29BD@CFS+$Sh9Vwv|lN%)oi~egBjxK8w?)X%KEu(T0NGtx-CQ z6VLN>K@e)Bd7huJ^8vq~;QO?yD#OYH=W!V#fa|wEYd-BJ8T;q!Dy3St$3;;|i((y{UxBvhE002ov JPDHLkV1nH0v*7>$ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/wall_small.png b/interface/ispconfig/interface/themes/default/icons/x16/wall_small.png deleted file mode 100644 index 54930c4e5db6fc36251fe8d2c24600605291c40b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmV;V0bBlwP)bzK8U_{f313=$&341x?lp5yfb1OIm&D+e>#gS(GDS+izw{qNtu z!NSk(-ek~GmS^B+_^yNBfcG5tc5mJPjF*F-|LWDN4ELYj`NGb__L=$rUxo*V?=XDe zXMBR+fRF4-mU^~QFqGM`pd^JY&`rtzkn88!)pK!!%r(+RYit#*KRQ=Dk?Jk`SXVhD9m;5-aQ62H8qB1 zb2g}<8^DO1l%-i%x`CAbR|d8}Uw{}(y1D%4&xdN91`N%-K(PS;0R{jHF_#zMDN_vq O0000&;S%Mye5V-Z|A_GYL z?)h`Z_zn2SaQ6J2LtsTfn&HLwUknnQYz#0yNFJ{NKmRcpt4bI#z-<2U;5-8||JKzT z_+9W5=*P3S4j8}s`G-M_9U=wfGr;&iv4jCiI{5mR!B|7ultF;;9|MS1k=6lY7#}2$ zZU7^4QVwEcocZ@ZrXm<%W@I?K?iXr0U>y2+fnoyy0t^6L26>`k+u#fU0000u8vaIloJC{!H{9XeDI@{V`#br{!?jmFO9ia7K;erX)c}959793?B g08{w)+xR2E0M8`T_}vFJ9smFU07*qoM6N<$f(h5qO8@`> diff --git a/interface/ispconfig/interface/themes/default/icons/x16/wallet_arrow.png b/interface/ispconfig/interface/themes/default/icons/x16/wallet_arrow.png deleted file mode 100644 index 6a24de7540ddc0006663d8453d16175963ca826e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 638 zcmV-^0)hRBP)JVBB%5Wm;t!Zo zWo#A27M30=xQz|P`QsvG2SHCB++p}H_&>PrB2o|;b^~E22d)PPg5c)C91LRZHs{zb zwG+CwNtz~U;`^nrPN`Gb3xO|R@;vYJyg!)dc{oT2IABPRuP`u%G@TRwiB(AagyeDu z9uhb2+)voHy)Qx(MX0I@S(fp7Zn~+!X*54tmIYnc_az7f0ZK_wRV;VzFpqes;E{ z;CBLkuGMPT*eH@;rN9>&M+B))c!qJyOJCmcS3fq@Gc8j6u30fU24oI3*?Jxp`39-l}Tdag%T zk91-)m&4oleYkpe6xnA6JSv{7FJtexTjW`w)D`OZn+m{&Gv5lgMtV=KQ~_;I7kj#Z zg-02q@AXII#gBNk-+2ez%Wc`ng$2QQv(EA zyJ1-tOw()$+}x}}QIuvyLBQJDCx|==w=w@)fdg)3pRw1941UzK>x4NyyzQ_J{&Rsum0eFfwu! z@pzaNF^rB5p}z;%Ct;dBSO??~CrjNS@WK`ni3Bw>5BWeByqy|EQFJ9c$*81Gex0#G zC;p;B777gNY6zFM zLLnUtw?4Kuacgs^q5lvK(I0TJ!6A@H8roVK8fq#WByve3LYzYT(5qg(AKu&ZzCxOr z5DqK&Y?eIvqXMJwwMANp^eS0kYN}j5t1Y! zm&+j#2;lN8)n#CIx-WHIN3+=+*}&m&z%Wd-+iftMLSwXp6<}BQ9H(rU9tQ$QK7>G$}G#Xqdn?$}5q<5vnGB!Jv@EVeZ0e&Xa< zy`IFwZ<+Y8k-yQfD;xkv)KOITfxQvAVgYCi|Nb|A3NQfP!PmOfnH#+T0000< KMNUMnLSTaU)8#z? diff --git a/interface/ispconfig/interface/themes/default/icons/x16/wallet_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/wallet_pencil.png deleted file mode 100644 index ba27aa17239f35f99667729c0e712eefaa1efbab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 zcmV-<0*3vGP)}v>34kPsIj72Fd0js)GbcP!M=+LFgC~l#mz+9R&519qQttK!~t}7HPYTp-Wmw ztZnYhy0bg~_VwN@XoZR54<5Xk_rC9a-|u}-pp;@SC1Q_7hR+HR1dOnGe3#fX6Mu_T zxdV!L=hfc0>$=+_BuPRhlYypbc>R2|roi)Si;m-AWKX*#mI&N4&KT_p-kq!y;8 z-v4E7A?u_?5$O#Aelk5!fP5s6{?s+}b)7GyVKP#Wq51~;cJUkV?8VLrehV-FA8hv= To62(;00000NkvXXu0mjf;1nY2 diff --git a/interface/ispconfig/interface/themes/default/icons/x16/wallet_plus.png b/interface/ispconfig/interface/themes/default/icons/x16/wallet_plus.png deleted file mode 100644 index f25be79d081e6b6ec57d166a544bf55e64351d0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 607 zcmV-l0-*hgP)Ip^aFr7jLD#D0&g}(ElL%2dq#$DCAaz;=x-%ddQ)dQVVuLR;3?^L=RFE zt=W7uo7s=?ok_8^)KKXQGtAD;^S;mX%sZM80!ImkBZl$png&fnp4Qp_#9Bmt(g>vj zf$WW2_p+Ynbwud84%@b2nkEXbX4(w=p#76`jz*)=F+nUAgXj5hT^ACklK}>Os|bPs zzV9Chtkvpp9H(8;FtEP9frw7T1@eCwNbo@tDwQfi(m6P2qSb1tJ$ZAPOgcL^JG;wZ ze*(E~Hk&9GH%apVrl)5xHg*N2Qc1B$CX@I>!{AA(h>wv9PXE+#_k99PA}Nj?Poi9MFhBq1FKM4XbBi%pY%$jb znPinY7@fF-V!}g&DDEAp)Cmj?okcE}Aw~?t!)f%N0(uhE2g{ec@@oUpbT1F#1P&OP z`siXAXKGPQemSXR>}_{Wni-X@(v2@v0S!-k?9rRo&+m7C<#}OyWU99Mub%iNu(s5~ z0|PvKyYQl*N}RiW!Tj*@ovlv9VZCe|8SV95Xg002ovPDHLkV1l$y4FdoG diff --git a/interface/ispconfig/interface/themes/default/icons/x16/wand.png b/interface/ispconfig/interface/themes/default/icons/x16/wand.png deleted file mode 100644 index 4747dcae4ca5d5d57a2b4b5352ce82e1b4402397..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmV-b0;>IqP)!Til9uBiJSyQCuU_U+pbK+M3xfCc>e&A{;SBZDp*8$F#QFZj0MO3{K?RxYm({YZy+7&8moM@#%^FJInpz59 zGq8aCi{}4WpzYD1u)Oz}arUOY|ACqrCY6v zFpy9H(B{S8zWryr_k?kA`wWQYl9Cen?c2BiynOlcXHiknCRSEf206)}AOn0^R&2pA z0EFklY%VA$kl(p;Cs;F(FA59?29N=S07&zLoSdBhy1KeQfb7>W30_`a1}P~ih7B_r z!I%k$=1J-4>GB5;9)#PB5>7yWU%7?H=A@(~44a7oV9jxHapY@`ii#pjvl2*icz8Hj znn4Nq9}vG~Vq$WK2AB>Ia|1Ca5OaVM6cmHvjs>a*6!_q53?k%!SQv;sfOrQGgEH

    LgbZ9b79@~d zJqC6XFKJhxvo(?6sf7?>ef;__+||`ZI~)!+5D3JSN@br^Dur?tD-_U?BOmt_5cGE2 z*-M z3X=c9CXGw-eYvSZ{mmPq zv6TezFKjRvXauvzRvQMOs^!}9mGkAQIb4ZzJ8tFq0Je8-uW*7&)QDcMr-Q*@78ZBq z7eky^RZqF+VE+63%FGwvN^ZVPEiXL`6R#$`Tsr++*j9kLrO{{@%n?)>suWd%D%$$4 zK*<%Y@2BfrJg;aQ_R25bH{u#0*#cI>;qVgX2ZApu50xvt#x0S;eQg$0o{0YV4e2G{ iOV-stjBETK0R{k%r)ZjQ+D?oB0000 zOX!m3D@`N%kOWyoAl1q*vC@<>!U7WmUrPF-2-3@!)|V)PV)Q|mNKRP=6ZWAY3}0|E zEJ!3xq-~k*^}5~No^wS@(*u9bJ?Ea^|9PHs9#T?B;A$m+z5q4`D+kz}CVd)FJ<$k2 zT#(k*k*NZMbMj!i-|zp80_I^G{5Mu(0L#muXIZFTT?J1(4(@rc2IhaN4P#&O@_9a5 zA&TNBJUT5C(0Lox@H{-xAH8XyGhHuu)j;8BG+NQ$-~Y6|y}d^egd>bBX>)XjK_!7X z90B)7>x&eYC2bZPOoZSsJUl!++1S|FhX!K|t#_+IiUN$W81w`~V76Mti2*xY!17JO zV31pf3v0Qpuk(UE@5n(X3wzhI*Wo3LI5a^4?o;jqZg%oB6>^EJ4+xtX)sY`oj;4z%1(?@S~TuwTbh0|U8iAX^PkBCMqi zrlzJQ&ThB!xw@&?gFEm6_l8ifc?|6J!H$E%vkeUmqF%3$CbQrh9hAQb`d=;5*)>2E zDER!2fNTfYR9|1uIUEitZAUM;o~}Jzq)?<~sj^NM2?;nu8;ic6Y&*EFu8wm$of7=4 zgXj_hsnlej%D-~07c{!#`E)JBfkACDkl@T=77L=j3ff-7I9xBR0PDYvk?6wzyMQ5a32d#nOXn<002ovPDHLkV1hYdcCP>c diff --git a/interface/ispconfig/interface/themes/default/icons/x16/wand_minus.png b/interface/ispconfig/interface/themes/default/icons/x16/wand_minus.png deleted file mode 100644 index 6c14df9b9c9df232aefb3e7d0e0e2462df30e5fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 665 zcmV;K0%rY*P)VP#D0!Y-wtdsn}KV z-~z+B9*hU|(u;WTP=tsV33OY8qV!Tqh0;L<4@D5ci#_=V53UETItq(WE3C&Nl&xct zqL(39JXi{@>AIv%h~KMiY|{=O{NBqW@ArM*``S?Fy%a3o0O01q8jJ&A>PYudKr-q+ zfNpg6(&sPpd~y5Cv3kA!8v**!GK`FN2Vi#>IEI0Rb{i_X4sx|N4b@+6e)HShSxr;@ zrfGh{qhBWsj68-VO@qhWr8_)X$^K`}4MbK|)t}8~pCl5AjA0lT=!wbU>@CoYBrl} zU-r(nk`M0IfF}2~-G2$QFOXjD{GeW}t(z!ADjtusKA%rh6lGP{_2jk74QMDJ(b%M+ zftk~-mdWf?sr19Af8|&##^!Q4O_pWF`xq=nwV=BPx8)Q9-+#YDyN#q1FjU4a2pF$2JF2sqD z-;sO-6sceaaU*`@BSJo0-A2c@>b-Nu9{~mc5rr5s42jE&00000NkvXXu0mjfUlcJ_ diff --git a/interface/ispconfig/interface/themes/default/icons/x16/wand_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/wand_pencil.png deleted file mode 100644 index a10900c9269f73e3cc81c7c591a3c283f5a57e89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 706 zcmV;z0zLhSP)`Tg!W_Z(JJ#n5^NFjZnZ)O&z^MO#f9F)Akj zCAHP}fBaNw{jgZRe`RIm7Xj5kH*#WQ6Ifk^Nv%f9#s)qs3PKU71d*S5>sX(8PWzIueGKu@9qnE7WDf-Kj9zvF7xzXqI4SGDD(NrpRL{(6jSzVrYK6k<=7h5qVTiv zCoCfYRYp9{FDyma@NMrOxvQ(o5C{a4p-?DVO5xFHa5fUb*HiSxuO^X`fEZ3!?(FQ` zmZ@J_U0sbLNir*dTRVwC>=Hu$?sPi2$z+nLEs4PgHyE0mo6E1%*7oqeKK_QW* z#Kj%*LE->Wa_=&`%VS~gy~$=;fpc^2Z0Gp)yvL8})Cc~&ALsr3AD-uZk8rtFz{9(MsRer>8Gzc8`qWDDG%8GPy>A_{xn#kuLzL6ikwY-h3W0RYi0)(TLS}gC+8#`I4gKx*20% z=;(5pM$Sj5Pf_sNboH@?k9_?v(EtwTa=GrQsi`-^!^1vJ)2@hRnS>?Wc? z|GO$l65JmGnBPDV4uwLCcDsF&3?d@0x747j64pWizRU)^em|R^p1~a|e{q4J_jLr$Yu@?{_mh91b}c4C*kg zjq6<+6brDFF`!*7;JD!M@1da~W-^&_G*9Te&+CB+BfSjLcq1N+RYN!i9ef-mI9P5e*QZc=7jxlPfw3bU=eO6e@Bge`1-vY=F(cfehldbO{9?3 zYL#QLSP|Zht_t8*#VBRd4chN_n3pCN=Jam@^pU!Q!F}C6Lpn`rB%Rv%PIce}JT;MX zzuFj$9OOTNP`(4K#pCh6{Gv$Jq)Ji+e~mj5b)b%Qq!*IFPc4Gwt3=|0 T!(X?)00000NkvXXu0mjfPncZ& diff --git a/interface/ispconfig/interface/themes/default/icons/x16/wrench.png b/interface/ispconfig/interface/themes/default/icons/x16/wrench.png deleted file mode 100644 index f2af4380f098c646a623c18a1d7b5ad2c3d0d3c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 687 zcmV;g0#N;lP)S-hK2^1{`c=6ie{ijAzohI(CFx>FilM@Qv(Bo zQjoZ%r6pLNMOauE&iVWIF9Q}}5fl^@E+;4F7#tkb_xkng&8DWN&xC}8q=9n(Su3JOXCT^ji7*RStPKY#vYz=wbT{>=%rfHx^A z(Z|%(BnoJNv8t+S`Rv)V+dh5z#K!XU=~D(~W@b=8foT|KVPOH$j6iW_pdk!jzItb{Q2|M^7He2jvqgM?A^O}ufUSuzkg={ItOGMI2@1y(g$dOxRsTaD-RD3&`@Ru z0|P_pQ>RX!@9ys2_Tj^a^(?qN{{R1fKOolX=xA?`k56cN`SK+jRO&kr-v_#G7dt!q zD;6A@{W&=~4cpt>>$9_SYJlu3K$mSqRs-@TIE`S@94IU-V%5>nRbNz8+yeC8RiM~L zTrOon(;O@-D`(%@+L>Eal-v9E?VAg%tgIVwY5w~4D+2=`A0GoKF-b^Bgg805%sPGg z%71HX+bL2~QX%s4@(jQzV-OP)!<|Z?281~~yDhwQ>F$3!JBPWzBpoIxDajxpAizKn z01XItbaY*EXFKSMLH+&w_)48CXC9!otD~s;a7B8e|YM0BRKC<>d{H zj*be`)YLLHFfb?uiCbD)g5_C+goGGOO-;d^zkmNSU;!3EK|$eia&nHr!9jhmU%%cA zRR0X9PZ}uqp9Q4(&!0aGc!0EwjI>FA|AZ|kPMll@a=M_Ppfu2>fxmwJ`p)$8=T8QF z`1kMMoIneBladmBOifLqfCd-?y<0we_UyJ#pFXj%Jbn5U9Eh;MgkcsI77)z{6lVq+ z!tmwGXNGChrWMVfKVL0BKhNj*@#Dwdy?gfxEcyNWcLtzyK(>Ly0VyDTfCh+LSy{RA z@bCZ)Wo9riFqA%Z>h$^U?(S_LK73fug3IIo|Nr*`Vy%vj_V)Prgr=7-U$Q}^z60@n zpzC(Av$MZq!J*lolatf1y}i9YJ3FTa$i4z}*+yxv0#LMqQ{p#UQ0E_srWyPV&}g28J(4=}nG{fnoiEBWIa`AsKFHXzDj@ z+QQhZti&Z3FP_^DOhBvNzkkp02NeJRCDl$Gxy5k%%sl^wM)W2mk-)jahb< z+qE_hl-F2*iRXxxmNX+U3?2a4r=bS?LBqd6^!JD7FWv0>%J~2FwJCp&O;`>x03g5s X$X8^(Ils0B00000NkvXXu0mjfS1FHm diff --git a/interface/ispconfig/interface/themes/default/icons/x16/wrench_exclamation.png b/interface/ispconfig/interface/themes/default/icons/x16/wrench_exclamation.png deleted file mode 100644 index c85cf6de5a60eb37b42a4364c4f3394b2f233818..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 889 zcmV-<1BU#GP)XFKSMLH+&w_)48CXC9!otD~s;a7B8e|YM0BRKC<>d{H zj*be`)YLLHFfb?uiCbD)g5_C+goGGOO-;d^zkmNSU;!3EK|$eia&nHr!9jhmU%%cA zRR0X9PZ}uqp9Q4(&!0aGc!0EwjI>FA|AZ|kPMll@a=M_Ppfu2>fxmwJ`p)$8=T8QF z`1kMMoIneBladmBOifLqfCd-?y<0we_UyJ#pFXj%Jbn5U9Eh;MgkcsI77)z{6lVq+ z!tmwGXNGChrWMVfKVL0BKhNj*@#Dwdy?gfxEcyNWcLtzyK(>Ly0VyDTfCh+LSy{RA z@bCZ)Wo9riFqA%Z>h$^U?(S_LK73fug3IIo|Nr*`Vy%vj_V)PrgeGV6rzUphf0U1& zVY#|^JvplTv%g{n5-3iGddD9abw-_?oz1zqxi#9VKW-Kze3Z8Fo~a|xzxlep z#_!ITZ<#;7dC$tgg2m=QVPO%A*4DPN!oq?Up!cqpBt7^mAmOgb!NDiaFYchJ`)7}9 zXZhF73=Cfxn9wu_%gV|*c6Robm6etBzJ2@VLRs>YE&u*928c*IszoNOVi1wERs-?> z{$XGNVuS%e%^@l(YVKWKlX6Q-i>5w$^yq}2)BCk5^55;b1@*KT{(j~MCSiu}UtaLD zaVcv3`O9Gc8_9q$ZEZc@2@__f78mEtyLt2aA$7%{YkV9&F#^+AD8GcR>a+K!8MbaI zWq9-R1_P^*gepiJ7-@_k1H$$6jQplfT@aU>o4VxU#q+zqefzdbO5`0dg)&&MbBX9P zFh3P$V|v5j?bFS`#qybfhv%m-D+iB0NS+Cp$_!`EUKX8}7PI{1$zz8)T2&&BOYIK|-2e3Fv}k7GUBzqNOFx2n>SXFKSMLH+&w_)48CXC9!otD~s;a7B8e|YM0BRKC<>d{H zj*be`)YLLHFfb?uiCbD)g5_C+goGGOO-;d^zkmNSU;!3EK|$eia&nHr!9jhmU%%cA zRR0X9PZ}uqp9Q4(&!0aGc!0EwjI>FA|AZ|kPMll@a=M_Ppfu2>fxmwJ`p)$8=T8QF z`1kMMoIneBladmBOifLqfCd-?y<0we_UyJ#pFXj%Jbn5U9Eh;MgkcsI77)z{6lVq+ z!tmwGXNGChrWMVfKVL0BKhNj*@#Dwdy?gfxEcyNWcLtzyK(>Ly0VyDTfCh+LSy{RA z@bCZ)Wo9riFqA%Z>h$^U?(S_LK73fug3IIo|Nr*`Vy%vj_V)Prgr=7-U$Q}^z60@n zpzC(Av$MZq!J*lolatf1y}i9YJ3FTa$i4z}*+yhFAa8=B5sT(PVPO%A*4DPN!oq?U zp!cq-{`$314=ttwfZqO#ZU9hou&k_{eQRrHZc$Ng@7uR;E~xzey&(n^&^Wxxf}}Y_ zMMcf6vvWdfK|$u!M~@zzU}a@pn*h}OpMhZ}&^BWX*D^4ig&7d0t*z(X-#33TmZEFECUx8SI3<@um9WGIW6Ph;79|CivzJ35Q_k@5D@bNF)t8v z12HEMvjZ_JC?ddl4d_%KV2-l|hQR}%%_l&43W)!p;ooTVAE>&&009O7)v_4$Je**> P00000NkvXXu0mjfx^hnu diff --git a/interface/ispconfig/interface/themes/default/icons/x16/wrench_pencil.png b/interface/ispconfig/interface/themes/default/icons/x16/wrench_pencil.png deleted file mode 100644 index 564d981b1ca46ce9e98b5640a05704b82e489955..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 824 zcmV-81IPS{P)XFKSMLH+&w_)48CXC9!otD~s;a7B8e|YM0BRKC<>d{H zj*be`)YLLHFfb?uiCbD)g5_C+goGGOO-;d^zkmNSU;!3EK|$eia&nHr!9jhmU%%cA zRR0X9PZ}uqp9Q4(&!0aGc!0EwjI>FA|AZ|kPMll@a=M_Ppfu2>fxmwJ`p)$8=T8QF z`1kMMoIneBladmBOifLqfCd-?y<0we_UyJ#pFXj%Jbn5U9Eh;MgkcsI77)z{6lVq+ z!tmwGXNGChrWMVfKVL0BKhNj*@#Dwdy?gfxEcyNWcLtzyK(>Ly0VyDTfCh+LSy{RA z@bCZ)Wo9riFqA%Z>h$^U?(S_LK73fug3IIo|Nr*`Vy%vj_V)Prgr=7-U$Q}^zPmCp z@vQjr#p=WV|3_GGX!hsi51#D$-A$L~43?cy4NJ zcCTcd(#o z4wjXbvu|zf%q=R)?S1?9%>^x$KO1tQo`N-h`^r$Zc8T`u$nu|EYD1`+S`^ z9QpbA8Rmd&g&Gj%?CiGi(xtoq?d%-piin7W*%}EktgL6i(A-(X;NtDT!N9@60dY3a zfN)1g*CjV@Jo|5N@3a_baySG7$*?312HQQGlTOQD=VuHFvr;f1MmSbA)Nr_ zDIop>#W$0@8Moej#xVEb`Ts|N{NG4&Aa#EM0t^7tHc5%_2X)Z^0000L$|EsfBqF zfPwHh)qGDJ;?_6jDdluBiZ)mmPv*Bgus!#pH*lgT9dX_ZO^ zMx#-@L?RK`N3zXkbD37F&9hj{PyK%XdyMyDo(6paO_F(@heJe@nySfiIy;8O#=iEE z){~NwG}vizC=}u(!C(*$LpU6kV*zDV)r}&fF{>O2SRD6JPft%vAP|V9Jsyv^#NB1? zf~IMrDYQ$G1lHI8Kxb#?{odYQU0vP1qS4XOFDol6OQMtGIKXyDHE|Dn7FmP@DLFYg z1qy`%Nu|IrnVRwOiRreswhybTt8eLp1{Vb362j2hYPVNZR5tm1zStcXhgiVwMr1PC z5`94OWw~6QX}8-S*VNQD;&~Q38{~^)|HsJYB>-*!dY|NCwK_Swxw*yG&`|#b$NLdF zAq;Yj3FN2fCQC%P!h%q}zQKbeD%p~jrp@eE;f15b?drst^%rob+(c^x4^HC%yW7)G8ySiRj ztE;cQoSAVA;pcp{xw*L=bzTNgDC@>*BEhNB)9h^jH`n$<0T;x_$G6VU`-R-x{Jyxj zxI1W0K^#RSBUFeZ2qhu`niNyV7fuSO34xSQ&{*xW!JwgV2W~u1>=5u#2#b0u_}%OM jNr4Zh$tx$T`zOEv-FZU5=UcH-00000NkvXXu0mjfqi=RK diff --git a/interface/ispconfig/interface/themes/default/icons/x16/wrench_screwdriver.png b/interface/ispconfig/interface/themes/default/icons/x16/wrench_screwdriver.png deleted file mode 100644 index a2e384b033e3bddc9cf7db40f15e16e39b461e80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 913 zcmV;C18)3@P)k4IHlSg4PVj#g_lh20K^!=zLyZ6c9KhI}c5L{_O( zb>-#d2F#?Ekal->VP|KDkO^c_QL@C2j%OdIrl$Kz>KIIh85ZpC?_VPVrlqB&$0a2t zeN|OehKPuWT0*qj?cj2`!0mPiq0K8RE6r0X6N}M5AvQL)uDiSYk<;nqFpmngv9U2Z zF)_h!Y-}`Gtycc(>gpty%cbxtMXk=d>U3^{R;x{Bvsu#W>btk*<}8+xk&!Xx$?9)z zZcdubX1|EVV&P-tNH&`to|2N16A}^vEEW?Kii@(Dnb~jc?d_kowzh^S_|KBd<+Tm@ z`K7T&qc^mo;@nM>sd;T}jdOUthxo~4GDiaf0@hf8fq{Uj0*Avn2KN1zu&Yau+SDW& zZfLOSMWR1@E?4I(7V9_&3LNag!NGpx2uLmvizP|d)6#PXUv%2@a&trDtX4X~=ab#` zc+4Io%`+H&Uls~7F^!XCO-zhDv$eJTeocSx)4xvVNaXyyalp2Z~}khvzZ zdyo{x9mhXCGrP01yLWrH_mG1G6w%{&C=ZnwMIkB%6B3M?luBu#u_{(#Vl-uZBq|~x zzBQ%91eH=SA*N!9K@IT%27{VVq6P#{@I2rMcgM2to%b()>~b8&L`Y_v&bv;st2!805JiN?h;^#lFEp@m6%k^aY(4&u@IdtO0Y4u+m z+7Yv2ExH-CK$Kr9S4zEoeVH9y+y1%jgSC72^gMs5*zf;e09Hg(6FMeO{PD=CC(lkz zIIdoe9RuYGeAESw14>n^rh$Y6`8<8^Z!2`JUBBwXEnDuJEB40!3E&|WjgCHY)jnnv@jP~IdZ)bcg*Er>&h+2@eR1u>23VqE zttU;MymZ_dr_VCuaVVC-^QsRck!lu}Z%*)vT(J?RsZHf5RL!w5?|EQZi5)dj4 zuaIYRx``<(pJe!iw}QW%djS)6 zb`!6!ry$T&C@>}!x3vE^!q$27*>vm8_-OcO*eGnkL@`b`ctyO;q5qX8L6dUXRxq_U^_BXvERO5~K#hfo3x1Oo^VjH;XP_M!!7VMxoB->W8^Po{9CP$i%4 zMT>cF!F)g?K*NWD>H!*1LJ&nPfTR`xt`bBkb`j7?Ko=o<5wZwnz^fTrzxXabe(iNU z5p2i7w(WuHg&{lNe2do?-$e+ux37viwHM1FWDxpA=m$a&O;E)^C|OETheB$E8H8Sh zUPAWblZjd!^WXzCpK%)HTn@*!aU5r$mh*WUr<}m(UoIh&s3(KZenR>Y_9FBUvXhWL z1QfW4BT&+StQSaMs6iVVDIkd=UJXwaAw*-0UvvkKo(j@M`}^QL*jIm+~Daggp7&C7=j{#qHFo%#9w-u`nEO-g(AgL ziPjOrNj|xP?s>Ohp^-qNd(i@{Uq4FQQAbiNmnjyCm`zRit6${rx7~=1B8|p4Ey6BM z$b~%nu-MyR&~ki*GCK@|H?FKp)fciky2J-UQf7>C4=`jLN09>LX*NscW z7GJ2F?9AuL0D?~ivGaJh;_T!P=6m8v^$W~k^X6xfd-1Q-Yrz(Oa1!a@&y0YA?k`J#M%2vt^as1nWIcSB)oQbBy#;(sZ`@+BSHg!X;v4bM521HRQ1eIsX(a& z6`OJpu+jDSQ?Zc$$aC*fXm>6b$Ne;&&peuaM@2iL$d5)w&GU~>rJ6>k(;U&*NV07x zhOQxwjqiC>3Pt*|`{~SNd3*o$$!Cp0_1O@T!km^R&1-4#)0c0}L+bs;C8F1CXqpR0^Q7&xl+3 byte)YGv3SnbZ5BL00000NkvXXu0mjf<&ua5 diff --git a/interface/ispconfig/interface/themes/default/icons/x32/state_error.png b/interface/ispconfig/interface/themes/default/icons/x32/state_error.png deleted file mode 100644 index b9a291171e35cfac828da05a7ba72458bdb00e52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2212 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 KMNUMnLSTX)CrQl! diff --git a/interface/ispconfig/interface/themes/default/icons/x32/state_ok.png b/interface/ispconfig/interface/themes/default/icons/x32/state_ok.png deleted file mode 100644 index ab86df2f5872b0126a27b09d5e711db515d4e301..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1518 zcmV$Tmw2iCFe=4e6OSa}o((1hRv0i6W?5DkW?(Fkfx{6~!vgNc6; zC5G@INVhRiL?9THASxn4Kv>z6o23QT0UKjX+O6B#ZgXGFYjfD|uLdQae(Yen|Zdk(Ob5=A&IRc?BFll!3yBb!Gr zcTKow09zSRgeK}MU9=%PQUurwf zb+kaV@d6(ef2RxnLELeG%}W%%kye&2DtA;Lt3{U)MZ$<m*$>mF z$+$ZXu&pBsAEG|*;xb2dO*Oh%6bZzz|J*M)qc?-g0FcFy%_*W0fA8?IZ?PKlh6A`nWNfYg>E5=1dZcB=RTYfnjz)@mK+I|h73HM>nfJ4d{f^Z z#)N;LD0_?99IrAq8^p-Vf&5(S{CH@fcxo9@$QhH*`&OBws<9G1va)iXOU9tGJ{%1n#<@f@BuZfxWJI|9=c`a>#OFdstUq5#Pk>h zo=3Jl2am1v`0ZollGbNqR}cj|)0E!h$;vgauFL+Ttqutz29>F(?W)2B^*ku0kT?k; zZyTcR9mO1nVEnsl;{ZUc9}$yy*1EO)-3@c8D1s0UomvMpra^}WffrygS@B}|0)NK1 zl#-vR~(ooG0z1`sjApdy9DOE|Qq7TvapTYQKG&(BY2H;Z2b0D#1IDid z0D%1i!K1dbjblsP!?MQNp(a&0=?Dy$MuO*fXhcJj=s0aOB8m=BfkNad_EsDQ$xFJ^ zvn;_QlLLc_-w*%*_T`+X?-Z$+@Z>nBYepUtdK{^|9R=cW$efI`tO;GD6I7ruaUyn? z?T1vzyK^!!gFhA>9dx{3003l`n>=wJDkjaE;2br3IQsNn2%HErXNJo4fpQcgD0YVfDmZx$==qSihLd!Yt?O*n*X3&7UH4nzG+5Z~wHz#We UggAPbj{pDw07*qoM6N<$f})Gi!vFvP diff --git a/interface/ispconfig/interface/themes/default/icons/x32/state_unknown.png b/interface/ispconfig/interface/themes/default/icons/x32/state_unknown.png deleted file mode 100644 index 47694461fc97bcfb8f5d0b8fa900369a7b120d3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2832 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 RP-6f9002ovPDHLkV1jFGhMxcc diff --git a/interface/ispconfig/interface/themes/default/icons/x64/network.png b/interface/ispconfig/interface/themes/default/icons/x64/network.png deleted file mode 100644 index f4c20744e5962e6fcf8b5d408aeb37394fdd828f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7481 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 D685nK diff --git a/interface/ispconfig/interface/themes/default/icons/x64/server.png b/interface/ispconfig/interface/themes/default/icons/x64/server.png deleted file mode 100644 index 6ca269358209e2703c97a65c446dcca142b386f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7475 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 IBfww{0BZFy)c^nh diff --git a/interface/ispconfig/interface/themes/default/images/favicon.ico b/interface/ispconfig/interface/themes/default/images/favicon.ico deleted file mode 100644 index da6257c84cce5c550eb7118581ed2a22f15af248..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1406 zcmeH_Sxl5y6vzL!*4AoOwAHFiof!oc0gFpZTWqzpwSq7+ezSbczOW1o%Py^e~16f{eD0E{?}MuUc#$a^LYMz22)d$ z7$5%!KA#sQE*Bb`n^9C;46o0JM~@%lVP_}qKX`yUckklH&6{X!YQmL<2GrHp!|m}v zrPe^fCqi#B!)nWb&R|5MMhjbJ7Sd>KO}D|4oC1?22?jc&H=0mTScIHhC$e)KI3rg= z#wj3?aZqdZ6srTT)aJCS6`2}$1QVPtLWSEH0NPGsPnQG@E+wMSS zmK`cygVxroC@pm%pBP`fc!~c00eHPWJbUKFlP6En+1Z7A_wJ*;{cqg5bsN{NT}Mkx zE1HS9j#%Ap4^~!INUvoqEiGYjaS;m(3z(mu$K2c;W@l$HGc$wf>1on&3X_wQn3$L# zJ;yONHipsBQH+d?V0d^KLqkIt92~^JzyNXdqpz&ND@k=3d0w8wG85%;ak?x27%!La5<1xDJA}dmp9B@3*d-M17dhFF z!6K39P(;P2`$eK)@mc2nVw-sDh7#x6V6pgMR3$4ptP4A>Ik|4f!Kf%n*k;BqBpmws zx8pSzC1GK);ZbJBOnG*?LRD;d_@0QpD$6RyK5!Hy{k$h4A~HU5pJey1Cr^EQI4&+S JKK@pF^hrcPRCt`NQ9%;JAP7`MN6oW3o$3ES)P@)^W!vNu4-78Lt{}gj zk2iDXz`garRYLC)mNhiHwyxK$qxA;WO<-hw5vi3@Yu!7-dWKQXc@3Q9DnYVRG|Q4X zNPWDW&1DSrAb$uPqVMNLZ6nl#~B)ev~xfsdLiBu4JZRKl9CoSYlI9B8SMh z4k3?_a*Q0Kl37bYrU(|(-2?$a9s1vupo`$Cb5cM1iK(^YGIh^TF(AhH4XC35Dt};j zAUO?a(LXp7y<+H2rl@}hir!!wVK^8cfjg%4?|_y|Tk;#j7GPYikS=EdAh-j-2croR U_6me1^#A|>07*qoM6N<$g13W%hX4Qo diff --git a/interface/ispconfig/interface/themes/default/images/header_logo.png b/interface/ispconfig/interface/themes/default/images/header_logo.png deleted file mode 100644 index ce00716f5dd296951d525b7a3ea9ebbdb2286025..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2452 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 diff --git a/interface/ispconfig/interface/themes/default/images/screen_bg.png b/interface/ispconfig/interface/themes/default/images/screen_bg.png deleted file mode 100644 index 9679f4e1251516b3d02c46f54abcd40d793f37aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^j6fW~!3HF69GAZhq*#ibJVQ8upoSx*1IXtr@Q5sC zVBi)4Va7{$>;3=*6-!(rN`mv#O3D+9QW<;`lZ*0mQ&Tb%72Gn5Qp@v;vWpc=^bB69 zsh0v3i-8n77o{eaWaj57gkEaktF(=ug_}Q6yH8(dm oHZ?XNxV53J@8c8+2T>*lnN2JiIuA38fQlJBUHx3vIVCg!07?Hi00000 diff --git a/interface/ispconfig/interface/themes/default/licences.txt b/interface/ispconfig/interface/themes/default/licences.txt deleted file mode 100644 index 5a50cbb39..000000000 --- a/interface/ispconfig/interface/themes/default/licences.txt +++ /dev/null @@ -1,8 +0,0 @@ -Theme created by Martin Henne (red-ray.de) - -based on: - -Templates: http://www.yaml.de -Web-Forms: http://www.sprawsm.com/uni-form/ -Icons: http://www.pinvoke.com and http://www.randomjabber.com/static/sizcons -Know-How: http://particletree.com/features/rediscovering-the-button-element diff --git a/interface/ispconfig/interface/themes/default/templates/form.tpl.htm b/interface/ispconfig/interface/themes/default/templates/form.tpl.htm deleted file mode 100644 index 429bfd9f2..000000000 --- a/interface/ispconfig/interface/themes/default/templates/form.tpl.htm +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/themes/default/templates/listpage.tpl.htm b/interface/ispconfig/interface/themes/default/templates/listpage.tpl.htm deleted file mode 100644 index 429bfd9f2..000000000 --- a/interface/ispconfig/interface/themes/default/templates/listpage.tpl.htm +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/interface/themes/default/templates/main.tpl.htm b/interface/ispconfig/interface/themes/default/templates/main.tpl.htm deleted file mode 100644 index 475cd976f..000000000 --- a/interface/ispconfig/interface/themes/default/templates/main.tpl.htm +++ /dev/null @@ -1,111 +0,0 @@ - - - - <tmpl_var name="app_title"> <tmpl_var name="app_version"> - "/> - - - - - - - - - - - - -
    -
    - - - - - -
    - -
    -
    -
     
    -
    -
    - - -
    -
    - - -
    -
    -
    -
    -
     
    - -
    - -
    - -
    - - diff --git a/interface/ispconfig/interface/themes/default/templates/module.tpl.htm b/interface/ispconfig/interface/themes/default/templates/module.tpl.htm deleted file mode 100644 index 36cdd09c7..000000000 --- a/interface/ispconfig/interface/themes/default/templates/module.tpl.htm +++ /dev/null @@ -1,37 +0,0 @@ - -   - - - - - -
    - - - - - - - - -
     
    - - - - - - - - -
    - -
    -
    -
    -
    -
    -
    - - -   - \ No newline at end of file diff --git a/interface/ispconfig/interface/themes/default/templates/module_tree.tpl.htm b/interface/ispconfig/interface/themes/default/templates/module_tree.tpl.htm deleted file mode 100644 index b0895789a..000000000 --- a/interface/ispconfig/interface/themes/default/templates/module_tree.tpl.htm +++ /dev/null @@ -1,38 +0,0 @@ - -   - - - - - - -
    - - - - - - - - -
     
    - - - - - - - - -
    - -
    -
    -
    -
    -
    -
    - - -   - \ No newline at end of file diff --git a/interface/ispconfig/interface/themes/default/templates/sidenav.tpl.htm b/interface/ispconfig/interface/themes/default/templates/sidenav.tpl.htm deleted file mode 100644 index 4626d369e..000000000 --- a/interface/ispconfig/interface/themes/default/templates/sidenav.tpl.htm +++ /dev/null @@ -1,24 +0,0 @@ - diff --git a/interface/ispconfig/interface/themes/default/templates/tabbed_form.tpl.htm b/interface/ispconfig/interface/themes/default/templates/tabbed_form.tpl.htm deleted file mode 100644 index 0e31bc056..000000000 --- a/interface/ispconfig/interface/themes/default/templates/tabbed_form.tpl.htm +++ /dev/null @@ -1,28 +0,0 @@ - -

    -
    -
    -
      - - -
    • - -
    • -
      -
      -
    -
    -
    - - -

    -
    - -

    ERROR

    -
    - - -
    - - - diff --git a/interface/ispconfig/interface/themes/default/templates/topnav.tpl.htm b/interface/ispconfig/interface/themes/default/templates/topnav.tpl.htm deleted file mode 100644 index 025b9bc90..000000000 --- a/interface/ispconfig/interface/themes/default/templates/topnav.tpl.htm +++ /dev/null @@ -1,9 +0,0 @@ -
      - - -
    • - -
    • -
      -
      -
    diff --git a/interface/ispconfig/interface/themes/default/yaml/!important.txt b/interface/ispconfig/interface/themes/default/yaml/!important.txt deleted file mode 100644 index dfdf80dda..000000000 --- a/interface/ispconfig/interface/themes/default/yaml/!important.txt +++ /dev/null @@ -1,4 +0,0 @@ -DON'T EDIT ANYTHING INSIDE THIS DIRECTORY! - -This theme is based on YAML V3.0.6, Build: 080609 (http://www.yaml.de/) -CSS-Styles can be changed in the /themes/default/css/ directory diff --git a/interface/ispconfig/interface/themes/default/yaml/core/base.css b/interface/ispconfig/interface/themes/default/yaml/core/base.css deleted file mode 100644 index 632248e2f..000000000 --- a/interface/ispconfig/interface/themes/default/yaml/core/base.css +++ /dev/null @@ -1,229 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) YAML core stylesheet - * (de) YAML Basis-Stylesheet - * - * Don't make any changes in this file! - * Your changes should be placed in any css-file in your own stylesheet folder. - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media all -{ - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section browser reset - * @see http://www.yaml.de/en/documentation/css-components/base-stylesheet.html - */ - - /* (en) Global reset of paddings and margins for all HTML elements */ - /* (de) Globales Zurücksetzen der Innen- und Außenabstände für alle HTML-Elemente */ - * { margin:0; padding: 0; } - - /* (en) Correction: margin/padding reset caused too small select boxes. */ - /* (de) Korrektur: Das Zurücksetzen der Abstände verursacht zu kleine Selectboxen. */ - option { padding-left: 0.4em; } - - /** - * (en) Global fix of the Italics bugs in IE 5.x and IE 6 - * (de) Globale Korrektur des Italics Bugs des IE 5.x und IE 6 - * - * @bugfix - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid yes - */ - * html body * { overflow:visible; } - * html iframe, * html frame { overflow:auto; } - * html frameset { overflow:hidden; } - - /* (en) Forcing vertical scrollbars in Netscape, Firefox and Safari browsers */ - /* (de) Erzwingen vertikaler Scrollbalken in Netscape, Firefox und Safari Browsern */ - html { height: 100%; margin-bottom: 1px; } - body { - /* (en) Fix for rounding errors when scaling font sizes in older versions of Opera browser */ - /* (de) Beseitigung von Rundungsfehler beim Skalieren von Schriftgrößen in älteren Opera Versionen */ - font-size: 100.01%; - - /* (en) Standard values for colors and text alignment */ - /* (de) Vorgabe der Standardfarben und Textausrichtung */ - color: #000; - background: #fff; - text-align: left; - } - - /* (en) Clear borders for
    and elements */ - /* (de) Rahmen für
    und Elemente löschen */ - fieldset, img { border: 0 solid; } - - /* (en) new standard values for lists, blockquote and cite */ - /* (de) Neue Standardwerte für Listen & Zitate */ - ul, ol, dl { margin: 0 0 1em 1em } - li { margin-left: 1.5em; line-height: 1.5em; } - - dt { font-weight: bold; } - dd { margin: 0 0 1em 2em; } - - blockquote { margin: 0 0 1em 1.5em; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section base layout | Basis Layout - * @see http://www.yaml.de/en/documentation/css-components/base-stylesheet.html - * - * |-------------------------------| - * | #header | - * |-------------------------------| - * | #col1 | #col3 | #col2 | - * | 200 px | flexible | 200px | - * |-------------------------------| - * | #footer | - * |-------------------------------| - */ - - #header { position:relative; } - - /* (en) Text Alignment for #topnav content */ - /* (de) Textausrichtung für #topnav Inhalte */ - #topnav { text-align: right; } - - /* (en) Absolute positioning only within #header */ - /* (de) Absolute Positionierung erfolgt nur innerhalb von #header */ - #header #topnav { - position:absolute; - top: 10px; - right: 10px; - } - - /* (en) Backup for correct positioning */ - /* (de) Absicherung korrekte Positionierung */ - #header, #nav, #main, #footer { clear:both; } - - /* (en/de) Standard: 200 Pixel */ - #col1 { float: left; width: 200px } - /* (en/de) Standard: 200 Pixel */ - #col2 { float:right; width: 200px } - /* (en) Standard: center column with flexible width */ - /* (de) Standard: Flexible mittlere Spalte */ - #col3 { width:auto; margin: 0 200px } - - /* (en) Preparation for absolute positioning within content columns */ - /* (de) Vorbereitung für absolute Positionierungen innerhalb der Inhaltsspalten */ - #col1_content, #col2_content, #col3_content { position:relative; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section generic classes for layout switching | Generische Klassen zur Layoutumschaltung - * @see http://www.yaml.de/en/documentation/css-components/base-stylesheet.html - * - * .hidecol1 -> 2-column-layout (using #col2 and #col3) - * .hidecol2 -> 2-column-layout (using #col1 and #col3) - * .hideboth -> single-column-layout (using #col3) - */ - - .hideboth #col3 { margin-left: 0; margin-right: 0; } - .hidecol1 #col3 { margin-left: 0; margin-right: 200px; } - .hidecol2 #col3 { margin-left: 200px; margin-right: 0; } - - .hideboth #col1, .hideboth #col2, .hidecol1 #col1, .hidecol2 #col2 { display:none; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section clearing methods - * @see http://yaml.de/en/documentation/basics/general.html - */ - - /* (en) clearfix method for clearing floats */ - /* (de) Clearfix-Methode zum Clearen der Float-Umgebungen */ - .clearfix:after { - content: "."; - display: block; - height: 0; - clear: both; - visibility: hidden; - } - - /* (en) essential for Safari browser !! */ - /* (de) Diese Angabe benötigt der Safari-Browser zwingend !! */ - .clearfix { display: block; } - - /* (en) overflow method for clearing floats */ - /* (de) Overflow-Methode zum Clearen der Float-Umgebungen */ - .floatbox { overflow:hidden; } - - /* (en) IE-Clearing: Only used in Internet Explorer, switched on in iehacks.css */ - /* (de) IE-Clearing: Benötigt nur der Internet Explorer und über iehacks.css zugeschaltet */ - #ie_clearing { display: none; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section subtemplates - * @see http://www.yaml.de/en/documentation/practice/subtemplates.html - */ - - .subcolumns { width: 100%; overflow:hidden; } - - /* (en) alternative class for optional support of old Mozilla/Netscape browers */ - /* (de) Alternative Klasse zur optionalen Unterstützung alter Mozilla/Netscape-Brower */ - .subcolumns_oldgecko { width: 100%; float:left; } - - .c50l, .c25l, .c33l, .c38l, .c66l, .c75l, .c62l {float: left; } - .c50r, .c25r, .c33r, .c38r, .c66r, .c75r, .c62r {float: right; margin-left: -5px; } - - .c25l, .c25r { width: 25%; } - .c33l, .c33r { width: 33.333%; } - .c50l, .c50r { width: 50%; } - .c66l, .c66r { width: 66.666%; } - .c75l, .c75r { width: 75%; } - .c38l, .c38r { width: 38.2%; } - .c62l, .c62r { width: 61.8%; } - - .subc { padding: 0 0.5em; } - .subcl { padding: 0 1em 0 0; } - .subcr { padding: 0 0 0 1em; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section hidden elements | Versteckte Elemente - * @see http://www.yaml.de/en/documentation/basics/skip-links.html - * - * (en) skip links and hidden content - * (de) Skip-Links und versteckte Inhalte - */ - - /* (en) classes for invisible elements in the base layout */ - /* (de) Klassen für unsichtbare Elemente im Basislayout */ - .skip, .hideme, .print { - position: absolute; - top: -1000em; - left: -1000em; - height: 1px; - width: 1px; - } - - /* (en) make skip links visible when using tab navigation */ - /* (de) Skip-Links für Tab-Navigation sichtbar schalten */ - .skip:focus, .skip:active { - position: static; - top: 0; - left: 0; - height: auto; - width: auto; - } -} diff --git a/interface/ispconfig/interface/themes/default/yaml/core/iehacks.css b/interface/ispconfig/interface/themes/default/yaml/core/iehacks.css deleted file mode 100644 index 85445964d..000000000 --- a/interface/ispconfig/interface/themes/default/yaml/core/iehacks.css +++ /dev/null @@ -1,310 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) YAML core stylesheet - structure-independent bugfixes of IE/Win CSS-bugs - * (de) YAML Basis-Stylesheet - Strukturunabhängige Bugfixes von CSS-Bugs des IE/Win - * - * Don't make any changes in this file! - * Your changes should be added to a separate patch-file. - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - * @appdef yaml - */ - -@media all -{ - /** - * (en) Debugging: When you see a green background, IE is getting this stylesheet - * (de) Fehlersuche: Hintergrund leuchtet grün, wenn das Stylesheet korrekt geladen wurde - * - * @debug - * @app-yaml-default disabled - */ - - /* body { background: #0f0; background-image: none; } */ - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Forcing vertical scrollbars is not needed in IE (only for Firefox/Netscape/Safari) - * (de) Erzwingen vertikaler Scrollbalken im IE nicht benötigt (nur im Firefox/Netscape/Safari) - * - * @workaround - * @affected IE 5.x/Win, IE6, IE7 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid yes - */ - - html { height: auto; margin-bottom:0; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Fixes IE5.x and IE6 overflow behavior of textarea and input elements elements - * (de) Korrigiert das fehlerhafte overflow-Verhalten von textarea und input-Elementen - * - * @workaround - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid no - */ - - * html textarea { overflow:scroll; overflow-x: hidden; } - * html input { overflow: hidden; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Stability fixes with 'position:relative' - * (de) Stabilitätsverbesserungen durch 'position:relative' - * - * @bugfix - * @affected IE 5.x/Win, IE6, IE7 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid yes - */ - - body { position:relative; } /* Essential in IE7 for correct layout scaling ... */ - * html body { position:static; } /* ... but not for IE5.x and IE6 */ - #main { position: relative; } /* helpful for several problems in older IE versions*/ - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Clearfix Method for containing floats in IE - * (de) Clearfix-Anpassung für diverse IE-Versionen - * - * @workaround - * @see http://www.456bereastreet.com/archive/200603/new_clearing_method_needed_for_ie7/#comment28 - * @affected IE 5.x/Win, IE6, IE7 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid yes - */ - - - .clearfix { display: inline-block; } /* ... especial for IE7 */ - .clearfix { display: block; } /* ... für IE5,IE6,IE7 */ - * html .clearfix { height: 1%; } /* ... für IE5 + IE6/Win | hasLayout aktivieren */ - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Adjustment of .floatbox class for IE - * (de) Anpassung der .floatbox-Klasse für IE - * - * @workaround - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid yes - */ - - * html .floatbox { width:100%; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Special class for oversized content element - * (de) Spezielle Klasse für übergroße Inhaltselemente - * - * @workaround - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid yes - */ - - .slidebox { - position:relative; - margin-right: -1000px; - height: 1%; - } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en): Bugfix for partially displayed column separators - * (de): Bugfix für unvollständige Darstellung der Spalteninhalte / Spaltentrenner - * - * @bugfix - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid yes - */ - - * html #col1, - * html #col2, - * html #col3 { position:relative; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Preventing several css bugs by forcing "hasLayout" - * (de) Vermeidung verschiedenster Bugs durch Erzwingen von "hasLayout" - * - * @workaround - * @affected IE 5.x/Win, IE6, IE7 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid no - */ - - body { height: 1%; } - #page_margins, #page, #header, #nav, #main, #footer { zoom:1; } /* IE6 & IE7 */ - #page_margins, #page { height: 1%; } /* IE 5.x */ - * html #header, * html #nav, * html #main, * html #footer { width: 100%; } /* IE 5.x & IE6 */ - * html #header, * html #nav, * html #main, * html #footer { wid\th: auto; } /* IE 6 */ - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * Disappearing List-Background Bug - * @see http://www.positioniseverything.net/explorer/ie-listbug.html - * - * @bugfix - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid yes - */ - * html ul, * html ol, * html dl { position: relative; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * List-Numbering Bug - * - * @bugfix - * @affected IE 5.x/Win, IE6, IE7 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid yes - */ - body ol li { display:list-item; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * (en) Workaround for 'collapsing margin at #col3' when using CSS-property clear - * Left margin of #col3 collapses when using clear:both in 1-3-2 (or 2-3-1) layout and right column is the - * longest and left column is the shortest one. For IE6 and IE7 a special workaround was developed - * in YAML. - * - * (de) Workaround für 'kollabierenden Margin an #col3' bei Verwendung der CSS-Eigenschaft clear - * Der linke Margin von #col3 kollabiert bei der Verwendung von clear:both im 1-3-2 (oder 2-3-1) Layout - * wenn gleichzeitig die rechte Spalte die kürzeste und die rechte die Längste ist. Im IE6 und IE7 lässt - * sich der Bug durch eine speziell für YAML entwickelten Workaround umgehen. - * - * @workaround - * @affected IE 5.x/Win, IE6, IE7 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid no - */ - - #ie_clearing { - /* (en) Only a small help for debugging */ - /* (de) Nur eine kleine Hilfe zur Fehlersuche */ - position:static; - - /* (en) Make container visible in IE */ - /* (de) Container sichtbar machen im IE */ - display:block; - - /* (en) No fix possible in IE5.x, normal clearing used instead */ - /* (de) Kein Fix im IE5.x möglich, daher normales Clearing */ - \clear:both; - - /* (en) forcing clearing-like behavior with a simple oversized container in IE6 & IE7*/ - /* (de) IE-Clearing mit 100%-DIV für IE6 bzw. übergroßem Container im IE7 */ - width: 100%; - font-size:0px; - margin: -2px 0 -1em 1px; - } - - * html #ie_clearing { margin: -2px 0 -1em 0; } - #col3_content {margin-bottom:-2px; } - - /* (en) avoid horizontal scrollbars in IE7 in borderless layouts because of negative margins */ - /* (de) Vermeidung horizontaler Scrollbalken bei randabfallenden Layouts im IE7 */ - html { margin-right: 1px; } - * html { margin-right: 0 } - - - /* (en) Bugfix: Essential for IE7 */ - /* (de) Bugfix: Notwendig im IE7 */ - #col3 { position:relative; z-index: -1; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * IE/Win Guillotine Bug - * @see http://www.positioniseverything.net/explorer/guillotine.html - * - * @workaround - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid yes - */ - - * html body a, * html body a:hover { background-color: transparent; } - -} - -@media screen, projection -{ - /** - * (en) IE-Adjustments for content columns and subtemplates - * (de) IE-Anpassung für Spaltencontainer und Subtemplates - * - * Doubled Float-Margin Bug - * @see http://positioniseverything.net/explorer/doubled-margin.html - * - * @bugfix - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid yes - */ - - #col1, #col2 { display:inline; } - - .c50l, .c25l, .c33l, .c38l, .c66l, .c75l, .c62l, - .c50r, .c25r, .c33r, .c38r, .c66r, .c75r, .c62r { display:inline; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * Internet Explorer and the Expanding Box Problem - * @see http://www.positioniseverything.net/explorer/expandingboxbug.html - * - * @workaround - * @affected IE 5.x/Win, IE6 - * @css-for IE 5.x/Win, IE6 - * @valid yes - */ - - * html #col1_content, - * html #col2_content, - * html #col3_content { word-wrap: break-word; } - - * html .subcolumns .subc, - * html .subcolumns .subcl, - * html .subcolumns .subcr { word-wrap: break-word; overflow:hidden; } -} - -@media print -{ - /** - * (en) Avoid unneeded page breaks of #col3 content in print layout. - * (de) Vermeiden von unnötigen Seitenumbrüchen beim Ausdruck der Spalte #col3. - * - * @bugfix - * @affected IE7 - * @css-for IE 5.x/Win, IE6, IE7 - * @valid yes - */ - - #col3 { height: 1%; } -} diff --git a/interface/ispconfig/interface/themes/default/yaml/core/print_base.css b/interface/ispconfig/interface/themes/default/yaml/core/print_base.css deleted file mode 100644 index 54c6a3969..000000000 --- a/interface/ispconfig/interface/themes/default/yaml/core/print_base.css +++ /dev/null @@ -1,120 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) YAML core stylesheet - print layout - * (de) YAML Core-Stylesheet - Druck Layout - * - * Don't make any changes in this file! - * Your changes should be added to 'print_xyz_draft.css' drafts from 'yaml/print/' folder. - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media print -{ - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section layout preparation - * @see http://www.yaml.de/en/documentation/css-components/layout-for-print-media.html - */ - - /* (en) Preparing base layout for print */ - /* (de) Basislayout für Druck aufbereiten */ - body, #page_margins, #page, #main { margin:0; padding: 0; border: 0; } - #page_margins, #page { width: 100% !important; min-width:0; max-width: none; } - #header { height: auto; } - - /* (en) Hide unneeded container of the screenlayout in print layout */ - /* (de) Für den Druck nicht benötigte Container des Layouts abschalten */ - #topnav, #nav, #search, #footer { display: none; } - - /* (en) Linearising subtemplates */ - /* (de) Linearisierung der Subtemplates */ - .c25l, .c33l, .c38l, .c50l, .c62l, .c66l, .c75l, - .c25r, .c33r, .c38r, .c50r, .c62r, .c66r, .c75r { - width: 100%; margin:0; float:none; overflow:visible; display:table; - } - .subc, .subcl, .subcr { margin: 0; padding: 0; } - - /* (en) make .print class visible */ - /* (de) .print-Klasse sichtbar schalten */ - .print { position: static; top: 0; left: 0; height: auto; width: auto; } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section content preparation - * @see http://www.yaml.de/en/documentation/css-components/layout-for-print-media.html - */ - - /* (en) Change font to serif */ - /* (de) Zeichensatz auf Serifen umstellen */ - body * { font-family: "Times New Roman", Times, serif; } - code, pre { font-family:"Courier New", Courier, mono; } - body { font-size: 12pt; } - - /* (en) Avoid page breaks right after headings */ - /* (de) Vermeidung von Seitenumbrüchen direkt nach einer Überschrift */ - h1,h2,h3,h4,h5,h6 { page-break-after:avoid; } - - /* (en) Format acronyms and abbreviations for print*/ - /* (de) Auszeichnung von Abkürzungen */ - abbr[title]:after, - acronym[title]:after { content: '(' attr(title) ')'; } - - /* (en) Disable background graphics of links */ - /* (de) Abschalten evlt. vorhandener Hintergrundgrafiken zur Linkkennzeichnung */ - #page a[href^="http:"], - #page a[href^="https:"] { padding-left: 0; background-image: none; } - - /* (en) Enable URL output in print layout */ - /* (de) Sichtbare Auszeichnung der URLs von Links */ - a[href]:after { - content:" "; - color:#444; - background:inherit; - font-style:italic; - } - - /* (en) Preparation for optional column labels */ - /* (de) Vorbereitung für optionale Spaltenauszeichnung */ - #col1_content:before, #col2_content:before, #col3_content:before { - content: ""; - color:#888; - background:inherit; - display:block; - font-weight:bold; - font-size:1.5em; - } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section browser fixes for print layouts - * @see http://www.yaml.de/en/documentation/css-components/layout-for-print-media.html - */ - - /** - * (en) overflow:hidden Bug in print layouts - * (de) overflow:hidden Bug in Drucklayouts - * - * @bugfix - * @since 3.0 - * @affected FF2.0, IE7 - * @css-for all browsers - * @valid yes - */ - - .floatbox, - .subcolumns, - .subcolums_oldgecko { overflow:visible; display: table; } -} diff --git a/interface/ispconfig/interface/themes/default/yaml/core/slim_base.css b/interface/ispconfig/interface/themes/default/yaml/core/slim_base.css deleted file mode 100644 index ef205e1d7..000000000 --- a/interface/ispconfig/interface/themes/default/yaml/core/slim_base.css +++ /dev/null @@ -1,50 +0,0 @@ -@charset "UTF-8"; -/* "Yet Another Multicolumn Layout" v3.0.6 (c) by Dirk Jesse (http://www.yaml.de) -* $Revision: 202 $ $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ */ -@media all { -*{margin:0;padding:0} -option{padding-left:.4em} -* html body *{overflow:visible} -* html iframe,* html frame{overflow:auto} -* html frameset{overflow:hidden} -html{height:100%;margin-bottom:1px} -body{font-size:100.01%;color:#000;background:#fff;text-align:left} -fieldset,img{border:0 solid} -ul,ol,dl{margin:0 0 1em 1em} -li{margin-left:1.5em;line-height:1.5em} -dt{font-weight:700} -dd{margin:0 0 1em 2em} -blockquote{margin:0 0 1em 1.5em} -#header{position:relative} -#topnav{text-align:right} -#header #topnav{position:absolute;top:10px;right:10px} -#header,#nav,#main,#footer{clear:both} -#col1{float:left;width:200px} -#col2{float:right;width:200px} -#col3{width:auto;margin:0 200px} -#col1_content,#col2_content,#col3_content{position:relative} -.hideboth #col3{margin-left:0;margin-right:0} -.hidecol1 #col3{margin-left:0;margin-right:200px} -.hidecol2 #col3{margin-left:200px;margin-right:0} -.hideboth #col1,.hideboth #col2,.hidecol1 #col1,.hidecol2 #col2{display:none} -.clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden} -.clearfix{display:block} -.floatbox{overflow:hidden} -#ie_clearing{display:none} -.subcolumns{width:100%;overflow:hidden} -.subcolumns_oldgecko{width:100%;float:left} -.c50l,.c25l,.c33l,.c38l,.c66l,.c75l,.c62l{float:left} -.c50r,.c25r,.c33r,.c38r,.c66r,.c75r,.c62r{float:right;margin-left:-5px} -.c25l,.c25r{width:25%} -.c33l,.c33r{width:33.333%} -.c50l,.c50r{width:50%} -.c66l,.c66r{width:66.666%} -.c75l,.c75r{width:75%} -.c38l,.c38r{width:38.2%} -.c62l,.c62r{width:61.8%} -.subc{padding:0 .5em} -.subcl{padding:0 1em 0 0} -.subcr{padding:0 0 0 1em} -.skip,.hideme,.print{position:absolute;top:-1000em;left:-1000em;height:1px;width:1px} -.skip:focus,.skip:active{position:static;top:0;left:0;height:auto;width:auto} -} \ No newline at end of file diff --git a/interface/ispconfig/interface/themes/default/yaml/core/slim_iehacks.css b/interface/ispconfig/interface/themes/default/yaml/core/slim_iehacks.css deleted file mode 100644 index 0b46deb4e..000000000 --- a/interface/ispconfig/interface/themes/default/yaml/core/slim_iehacks.css +++ /dev/null @@ -1,36 +0,0 @@ -@charset UTF-8; -/* "Yet Another Multicolumn Layout" v3.0.6 (c) by Dirk Jesse (http://www.yaml.de) -* $Revision: 202 $ $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ */ -@media all { -html{height:auto;margin-bottom:0;margin-right:1px} -* html textarea{overflow:scroll;overflow-x:hidden} -* html input{overflow:hidden} -body{position:relative;height:1%} -* html body{position:static} -#main{position:relative} -.clearfix{display:inline-block} -.clearfix{display:block} -* html .clearfix{height:1%} -* html .floatbox{width:100%} -.slidebox{position:relative;margin-right:-1000px;height:1%} -* html #col1,* html #col2,* html #col3{position:relative} -#page_margins,#page,#header,#nav,#main,#footer{zoom:1} -#page_margins,#page{height:1%} -* html #header,* html #nav,* html #main,* html #footer{width:100%;wid\th:auto} -* html ul,* html ol,* html dl{position:relative} -body ol li{display:list-item} -#ie_clearing{position:static;display:block;\clear:both;width:100%;font-size:0;margin:-2px 0 -1em 1px} -* html #ie_clearing{margin:-2px 0 -1em} -#col3_content{margin-bottom:-2px} -* html{margin-right:0} -#col3{position:relative;z-index:-1} -* html body a,* html body a:hover{background-color:transparent} -} -@media screen,projection { -#col1,#col2,.c50l,.c25l,.c33l,.c38l,.c66l,.c75l,.c62l,.c50r,.c25r,.c33r,.c38r,.c66r,.c75r,.c62r{display:inline} -* html #col1_content,* html #col2_content,* html #col3_content{word-wrap:break-word} -* html .subcolumns .subc,* html .subcolumns .subcl,* html .subcolumns .subcr{word-wrap:break-word;overflow:hidden} -} -@media print { -#col3{height:1%} -} \ No newline at end of file diff --git a/interface/ispconfig/interface/themes/default/yaml/core/slim_print_base.css b/interface/ispconfig/interface/themes/default/yaml/core/slim_print_base.css deleted file mode 100644 index 42a5d5b06..000000000 --- a/interface/ispconfig/interface/themes/default/yaml/core/slim_print_base.css +++ /dev/null @@ -1,21 +0,0 @@ -@charset "UTF-8"; -/* "Yet Another Multicolumn Layout" v3.0.6 (c) by Dirk Jesse (http://www.yaml.de) -* $Revision: 202 $ $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ */ -@media print { -body,#page_margins,#page,#main{border:0;margin:0;padding:0} -#page_margins,#page{width:100%!important;min-width:0;max-width:none} -#header{height:auto} -#topnav,#nav,#search,#footer{display:none} -.c25l,.c33l,.c38l,.c50l,.c62l,.c66l,.c75l,.c25r,.c33r,.c38r,.c50r,.c62r,.c66r,.c75r{width:100%;float:none;overflow:visible;display:table;margin:0} -.subc,.subcl,.subcr{margin:0;padding:0} -.print{position:static;top:0;left:0;height:auto;width:auto} -body *{font-family:"Times New Roman", Times, serif} -code,pre{font-family:"Courier New", Courier, mono} -body{font-size:12pt} -h1,h2,h3,h4,h5,h6{page-break-after:avoid} -abbr[title]:after,acronym[title]:after{content:'(' attr(title) ')'} -#page a[href^="http:"],#page a[href^="https:"]{padding-left:0;background-image:none} -a[href]:after{content:" ";color:#444;background:inherit;font-style:italic} -#col1_content:before,#col2_content:before,#col3_content:before{content:"";color:#888;background:inherit;display:block;font-weight:700;font-size:1.5em} -.floatbox,.subcolumns,.subcolums_oldgecko{overflow:visible;display:table} -} \ No newline at end of file diff --git a/interface/ispconfig/interface/themes/default/yaml/debug/debug.css b/interface/ispconfig/interface/themes/default/yaml/debug/debug.css deleted file mode 100644 index 0c4269b13..000000000 --- a/interface/ispconfig/interface/themes/default/yaml/debug/debug.css +++ /dev/null @@ -1,157 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) YAML debugging stylesheet - * (de) YAML Stylesheet zur Fehlersuche - * - * Don't make any changes in this file! - * Your changes should be placed in any css-file in your own stylesheet folder. - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 43 $ - * @lastmodified $Date: 2007-06-11 16:09:28 +0200 (Mo, 11 Jun 2007) $ - */ - -@media all -{ - /*------------------------------------------------------------------------------------------------------*/ - - /** - * @section layout preparation for debugging - * @see http://www.yaml.de/en/documentation/practice/drafting-and-debugging.html - */ - - /* Adding debugging background */ - body { background: transparent url(images/grid_pattern.png) top left no-repeat !important; } - - /* CSS-Warning, if core stylesheet 'iehacks.css' is missing in the layout */ - *:first-child+html #ie_clearing { display:block; } - * html #ie_clearing { display:block; } - - #ie_clearing { - width: 500px; - font-size: 25px; - position:absolute; - top: -2px; - left:0px; - background: url("images/warning_iehacks.gif") top left no-repeat; - } - - /** - * @section pixel grid - */ - - .bg_grid { - background-image:url(images/grid_pattern.png) !important; - background-repeat:no-repeat; - background-position:top left !important; - } - - /** - * @section transparency - */ - - .transOFF { -moz-opacity: 1.0; opacity: 1.0; filter: alpha(Opacity=100);} - .trans50, - .transON { -moz-opacity: 0.5; opacity: 0.5; filter: alpha(Opacity=50);} - .trans25 { -moz-opacity: 0.25; opacity: 0.25; filter: alpha(Opacity=25);} - .trans75 { -moz-opacity: 0.75; opacity: 0.75; filter: alpha(Opacity=75);} - - /** - * @section colors - */ - - .bg_red { background-color: #f00 !important;} - .bg_blue { background-color: #00f !important;} - .bg_green { background-color: #0f0 !important;} - - /** - * @visualize semantic structure - * - * Many thanks to Tomas Caspers for some ideas - */ - - div[id] { padding: 0 !important; margin: 2px; border: 1px #000 solid !important; } - div[id]:before { - display:block; - color: #fff; - background: #800; - padding: 2px; - font: bold .8em "Lucida console", monospace; - content: "[div #"attr(id)"]"; - } - - div[class="floatbox"] { background: #f4f4f4; } - div[class="floatbox"]:before { - display:block; - color: #fff; - background: #66a; - padding: 2px; - font: bold .8em "Lucida console", monospace; - content: "[div ."attr(class)"]"; - } - - div[class="subcolumns"] { background: #f8f8f8; } - div[class="subcolumns"]:before { - display:block; - color: #fff; - background: #444; - padding: 2px; - font: bold .8em "Lucida console", monospace; - content: "[div ."attr(class)"]"; - } - - div[class="subcolumns"] > div:before { - display:block; - color: #fff; - background: #080; - padding: 2px; - font: bold .8em "Lucida console", monospace; - content: "[div ."attr(class)"]"; - } - - div[class="subc"], div[class="subcl"], div[class="subcr"] { background: #eee; } - div[class="subc"]:before, div[class="subcl"]:before, div[class="subcr"]:before { - display:block; - color: #fff; - background: #6a6; - padding: 2px; - font: bold .8em "Lucida console", monospace; - content: "[div ."attr(class)"]"; - } - - h1:before { content: "[h1] "; } - h2:before { content: "[h2] "; } - h3:before { content: "[h3] "; } - h4:before { content: "[h4] "; } - h5:before { content: "[h5] "; } - h6:before { content: "[h6] "; } - - a:hover:before { content: " ( href='" attr(href) "' ) "; } - a:hover:after { content: " [ title='"attr(title)"' ] "; } - - img:after { content:" ( alt='" attr(alt)"' ) "; } - - address, blockquote, dl, fieldset, form, h1, h2, h3, h4, ol, p, pre, ul { - border: 1px dotted #888; - margin: 2px; - padding: 2px; - display: block; - } - - /** - * @visualize inline elements - * - * Many thanks to Tomas Caspers for some ideas - */ - - abbr, acronym { background: #d9eaff; } - q, cite, dfn, kbd { background: #ffe3f6; } - /* :lang(de), :lang(en), :lang(fr), :lang(es) { background: #d9efaa !important; } */ -} diff --git a/interface/ispconfig/interface/themes/default/yaml/debug/images/grid_pattern.png b/interface/ispconfig/interface/themes/default/yaml/debug/images/grid_pattern.png deleted file mode 100644 index 55e65e477c61a692d8d9c9cafd4cd986097897db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29833 zcmeFZ2UL??ur?ZuV!?m~Y!R>_f&z+w(osYN1QZCpBi#T}q(cxv1rwU+E4yN0SOL01cB_5H5L`Ub<4=y+T6;> z+~SyosOT{ZOLGI`yZR7_9X3qfP(gn5fFQnS{;Jetl%JHj9Nms%a#y`kv@cJy9^bh~ z^6~MgPjt5{_lk*ag};w{41N9_^_1@Rx!qp7I=2rVkAChR^Vq9)wcjzuw7mrXrJk7A zAvByi7nakwy<*4ifEyQYbE9@AU1iwY=U(%+x_^*e#BJ9p3&@@wId_g*5l&J-mRtk` z&Yq~)UIwACYo*!&sgMq-IDhmJiDv9-kU9nGAw`At%ga(bP_z&chv!%0AtKi)P+_l6 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 diff --git a/interface/ispconfig/interface/themes/default/yaml/navigation/nav_vlist.css b/interface/ispconfig/interface/themes/default/yaml/navigation/nav_vlist.css deleted file mode 100644 index af2f7e890..000000000 --- a/interface/ispconfig/interface/themes/default/yaml/navigation/nav_vlist.css +++ /dev/null @@ -1,109 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Vertical list navigation "vlist" - * (de) Vertikale Navigationsliste "vlist" - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media all -{ - #submenu { - width: 100%; - overflow: hidden; - margin: 2.4em 0 1.5em 0; - list-style-type: none; - border-top: 2px #ddd solid; - border-bottom: 2px #ddd solid; - } - - #submenu ul { list-style-type: none; margin:0; padding: 0; } - #submenu li { float:left; width: 100%; margin:0; padding: 0; } - - #submenu a, - #submenu strong { - display:block; - width: 90%; - padding: 3px 0px 3px 10%; - text-decoration: none; - background-color:#fff; - color: #444; - border-bottom: 1px #eee solid; - } - - /* Menu Title */ - #submenu li#title { - width: 90%; - padding: 3px 0px 3px 10%; - font-weight: bold; - color: #444; - background-color: #fff; - border-bottom: 4px #888 solid; - } - - #submenu li span { - display:block; - width: 90%; - padding: 3px 0px 3px 10%; - font-weight: bold; - border-bottom: 1px #ddd solid; - } - - /* Level 1 */ - #submenu li#active, - #submenu li strong { - width: 90%; - padding: 3px 0px 3px 10%; - font-weight: bold; - color: #fff; - background-color:#aab; - border-bottom: 1px #eee solid; - } - - #submenu li a { width: 90%; padding-left: 10%; background-color:#fff; color: #444; } - #submenu li a:focus, - #submenu li a:hover, - #submenu li a:active { background-color:#f63; color: #fff; } - - /* Level 2 */ - #submenu li ul li a, - #submenu li ul li#active, - #submenu li ul li strong, - #submenu li ul li span { width: 80%; padding-left: 20%; } - - #submenu li ul li a { background-color:#f8f8f8; color: #666; } - #submenu li ul li a:focus, - #submenu li ul li a:hover, - #submenu li ul li a:active { background-color:#f63; color: #fff; } - - /* Level 3 */ - #submenu li ul li ul li a, - #submenu li ul li ul li#active, - #submenu li ul li ul li strong, - #submenu li ul li ul li span { width: 70%; padding-left: 30%; } - - #submenu li ul li ul li a { background-color:#fcfcfc; color: #888; } - #submenu li ul li ul li a:focus, - #submenu li ul li ul li a:hover, - #submenu li ul li ul li a:active { background-color:#f63; color: #fff; } - - /* Level 4 */ - #submenu li ul li ul li ul li a, - #submenu li ul li ul li ul li#active, - #submenu li ul li ul li ul li strong, - #submenu li ul li ul li ul li span { width: 60%; padding-left: 40%; } - - #submenu li ul li ul li ul li a { background-color:#ffffff; color: #aaa; } - #submenu li ul li ul li ul li a:focus, - #submenu li ul li ul li ul li a:hover, - #submenu li ul li ul li ul li a:active { background-color:#f63; color: #fff; } -} \ No newline at end of file diff --git a/interface/ispconfig/interface/themes/default/yaml/patches/patch_layout_draft.css b/interface/ispconfig/interface/themes/default/yaml/patches/patch_layout_draft.css deleted file mode 100644 index 83e835357..000000000 --- a/interface/ispconfig/interface/themes/default/yaml/patches/patch_layout_draft.css +++ /dev/null @@ -1,29 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Example of a patch stylesheet for the Internet Explorer - * (de) Beispiel für ein Anpassungs-Stylesheet für den Internet Explorer - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* Layout independent adjustments | Layout-unabhängige Anpassungen ----------------------------------- */ -@import url(/yaml/core/iehacks.css); - -/* Box model adjustments for vlist navigation | Box-Modell-Anpassungen für vlist-Navigation */ -/* @import url(/yaml/patches/patch_nav_vlist.css); */ - -/* Layout-dependent adjustments | Layout-abhängige Anpassungen --------------------------------------- */ -@media screen, projection -{ - /* add your adjustments here | Fügen Sie Ihre Anpassungen hier ein */ - -} diff --git a/interface/ispconfig/interface/themes/default/yaml/patches/patch_nav_vlist.css b/interface/ispconfig/interface/themes/default/yaml/patches/patch_nav_vlist.css deleted file mode 100644 index 21041be29..000000000 --- a/interface/ispconfig/interface/themes/default/yaml/patches/patch_nav_vlist.css +++ /dev/null @@ -1,61 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) IE adjustment stylesheet for YAML vlist navigation - * Import this file within the IE-patch-file if needed in your layout - * - * (de) IE Anpassungs-Stylesheet für YAML vlist-Navigation - * Einbindung ins Layout erfolgt über den Import innerhalb des IE-Anspassungs-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media screen, projection -{ - /** - * Box Model Bug - * (en) Adjustment of width values for list elements of the menu in IE 5.x/Win. - * Note: If IE6 is running in quirks mode, it also needs 100% values! - * - * (de) Korrektur der Breitenangaben der Listenelemente des Submenüs im IE 5.x/Win. - * Hinweis: Befindet sich der IE6 im Quirks Mode, so benötigt er ebenfalls 100%-Werte ! - * - * @bugfix - * @affected IE 5.x/Win (IE6 in Quirks-Mode) - * @css-for IE 5.x/Win, IE6 - * @valid no - */ - - /* level 1 */ - * html #submenu li a, - * html #submenu li strong, - * html #submenu li span, - * html #submenu li#title, - * html #submenu li#active { width: 100%; w\idth: 90%; } - - /* level 2 */ - * html #submenu li ul li a, - * html #submenu li ul li strong, - * html #submenu li ul li span, - * html #submenu li ul li#active { width: 100%; w\idth: 80%; } - - /* level 3 */ - * html #submenu li ul li ul li a, - * html #submenu li ul li ul li strong, - * html #submenu li ul li ul li span, - * html #submenu li ul li ul li#active { width: 100%; w\idth: 70%; } - - /* level 4 */ - * html #submenu li ul li ul li ul li a, - * html #submenu li ul li ul li ul li strong, - * html #submenu li ul li ul li ul li span, - * html #submenu li ul li ul li ul li#active { width: 100%; w\idth: 60%; } -} diff --git a/interface/ispconfig/interface/themes/default/yaml/print/print_003_draft.css b/interface/ispconfig/interface/themes/default/yaml/print/print_003_draft.css deleted file mode 100644 index 29c6df629..000000000 --- a/interface/ispconfig/interface/themes/default/yaml/print/print_003_draft.css +++ /dev/null @@ -1,32 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - * (de) Druck-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../core/print_base.css); - -/* #col1 - 0 -** #col2 - 0 -** #col3 - x -*/ - -@media print -{ - #col1 { display:none; } - #col2 { display:none; } - - #col3, #col3_content { width: 100%; margin:0; padding: 0; border:0; } -} \ No newline at end of file diff --git a/interface/ispconfig/interface/themes/default/yaml/print/print_020_draft.css b/interface/ispconfig/interface/themes/default/yaml/print/print_020_draft.css deleted file mode 100644 index 885b0b991..000000000 --- a/interface/ispconfig/interface/themes/default/yaml/print/print_020_draft.css +++ /dev/null @@ -1,31 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - * (de) Druck-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../core/print_base.css); - -/* #col1 - 0 -** #col2 - x -** #col3 - 0 -*/ -@media print -{ - #col1 { display:none; } - #col3 { display:none; } - - #col2, #col2_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } -} \ No newline at end of file diff --git a/interface/ispconfig/interface/themes/default/yaml/print/print_023_draft.css b/interface/ispconfig/interface/themes/default/yaml/print/print_023_draft.css deleted file mode 100644 index a80bb0875..000000000 --- a/interface/ispconfig/interface/themes/default/yaml/print/print_023_draft.css +++ /dev/null @@ -1,40 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - * (de) Druck-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../core/print_base.css); - -/* #col1 - 0 -** #col2 - x -** #col3 - x -*/ - -@media print -{ - #col1 { display:none; } - - #col2, #col2_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } - #col2_content { page-break-after:always; } - - #col3, #col3_content {width: 100%; margin:0; padding: 0; border:0; } - - /* Optional Column Labels | Optionale Spaltenauszeichnung - #col2_content:before { content:" [ left | middle | right column ]"; } - #col3_content:before { content:" [ left | middle | right column ]"; } - */ -} - diff --git a/interface/ispconfig/interface/themes/default/yaml/print/print_100_draft.css b/interface/ispconfig/interface/themes/default/yaml/print/print_100_draft.css deleted file mode 100644 index 99f29b4f1..000000000 --- a/interface/ispconfig/interface/themes/default/yaml/print/print_100_draft.css +++ /dev/null @@ -1,31 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - * (de) Druck-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../core/print_base.css); - -/* #col1 - x -** #col2 - 0 -** #col3 - 0 -*/ -@media print -{ - #col1, #col1_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } - - #col2 { display:none; } - #col3 { display:none; } -} diff --git a/interface/ispconfig/interface/themes/default/yaml/print/print_103_draft.css b/interface/ispconfig/interface/themes/default/yaml/print/print_103_draft.css deleted file mode 100644 index 983e61a4a..000000000 --- a/interface/ispconfig/interface/themes/default/yaml/print/print_103_draft.css +++ /dev/null @@ -1,38 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - * (de) Druck-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../core/print_base.css); - -/* #col1 - x -** #col2 - 0 -** #col3 - x -*/ -@media print -{ - #col1, #col1_content {float:none; width: 100%; margin: 0; padding: 0; border: 0; } - #col1_content {page-break-after:always; } - - #col2 { display:none; } - - #col3, #col3_content { width: 100%; margin:0; padding: 0; border:0; } - - /* Optional Column Labels | Optionale Spaltenauszeichnung - #col1_content:before { content:" [ left | middle | right column ]"; } - #col3_content:before { content:" [ left | middle | right column ]"; } - */ -} \ No newline at end of file diff --git a/interface/ispconfig/interface/themes/default/yaml/print/print_120_draft.css b/interface/ispconfig/interface/themes/default/yaml/print/print_120_draft.css deleted file mode 100644 index 43f095060..000000000 --- a/interface/ispconfig/interface/themes/default/yaml/print/print_120_draft.css +++ /dev/null @@ -1,39 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - * (de) Druck-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../core/print_base.css); - -/* #col1 - x -** #col2 - x -** #col3 - 0 -*/ -@media print -{ - #col1, #col1_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } - #col1_content { page-break-after:always; } - - #col2, #col2_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } - #col2_content { page-break-after:always; } - - #col3 { display:none; } - - /* Optional Column Labels | Optionale Spaltenauszeichnung - #col1_content:before { content:" [ left | middle | right column ]"; } - #col2_content:before { content:" [ left | middle | right column ]"; } - */ -} diff --git a/interface/ispconfig/interface/themes/default/yaml/print/print_123_draft.css b/interface/ispconfig/interface/themes/default/yaml/print/print_123_draft.css deleted file mode 100644 index d2586db76..000000000 --- a/interface/ispconfig/interface/themes/default/yaml/print/print_123_draft.css +++ /dev/null @@ -1,40 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) print stylesheet - * (de) Druck-Stylesheet - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -/* import print base styles | Basisformatierung für Drucklayout einbinden */ -@import url(../core/print_base.css); - -/* #col1 - x -** #col2 - x -** #col3 - x -*/ -@media print -{ - #col1, #col1_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } - #col1_content { page-break-after:always; } - - #col2, #col2_content { float:none; width: 100%; margin: 0; padding: 0; border: 0; } - #col2_content { page-break-after:always; } - - #col3, #col3_content { width: 100%; margin:0; padding: 0; border:0; } - - /* Optional Column Labels | Optionale Spaltenauszeichnung - #col1_content:before { content:" [ left | middle | right column ]"; } - #col2_content:before { content:" [ left | middle | right column ]"; } - #col3_content:before { content:" [ left | middle | right column ]"; } - */ -} \ No newline at end of file diff --git a/interface/ispconfig/interface/themes/default/yaml/screen/basemod_draft.css b/interface/ispconfig/interface/themes/default/yaml/screen/basemod_draft.css deleted file mode 100644 index c738ee0ed..000000000 --- a/interface/ispconfig/interface/themes/default/yaml/screen/basemod_draft.css +++ /dev/null @@ -1,70 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Template for designing a screen layout - * (de) Gestaltungsvorlage für die Erstellung eines Screenlayouts - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - */ - -@media screen, projection -{ - /*------------------------------------------------------------------------------------------------------*/ - - /** - * Design of the Basic Layout | Gestaltung des YAML Basis-Layouts - * - * @section layout-basics - */ - - /* Page margins and background | Randbereiche & Seitenhintergrund */ - body { } - - /* Layout: Width, Background, Border | Layout: Breite, Hintergrund, Rahmen */ - #page_margins { } - #page{ } - - /* Design of the Main Layout Elements | Gestaltung der Hauptelemente des Layouts */ - #header { } - #topnav { } - - #main { } - - #footer { } - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * Formatting of the Content Area | Formatierung der Inhaltsbereichs - * - * @section layout-main - */ - - #col1 { } - #col1_content { } - - #col2 { } - #col2_content { } - - #col3 { } - #col3_content { } - - - /*------------------------------------------------------------------------------------------------------*/ - - /** - * Design of Additional Layout Elements | Gestaltung weiterer Layoutelemente - * - * @section layout-misc - */ - - -} \ No newline at end of file diff --git a/interface/ispconfig/interface/themes/default/yaml/screen/content_default.css b/interface/ispconfig/interface/themes/default/yaml/screen/content_default.css deleted file mode 100644 index 5742599df..000000000 --- a/interface/ispconfig/interface/themes/default/yaml/screen/content_default.css +++ /dev/null @@ -1,170 +0,0 @@ -@charset "UTF-8"; -/** - * "Yet Another Multicolumn Layout" - (X)HTML/CSS Framework - * - * (en) Uniform design of standard content elements - * (de) Einheitliche Standardformatierungen für die wichtigten Inhalts-Elemente - * - * @copyright Copyright 2005-2008, Dirk Jesse - * @license CC-A 2.0 (http://creativecommons.org/licenses/by/2.0/), - * YAML-C (http://www.yaml.de/en/license/license-conditions.html) - * @link http://www.yaml.de - * @package yaml - * @version 3.0.6 - * @revision $Revision: 202 $ - * @lastmodified $Date: 2008-06-07 14:29:18 +0200 (Sa, 07 Jun 2008) $ - * @appdef yaml - */ - -@media all -{ - /** - * Fonts - * (en) font-family and font-size selection for headings and standard text elements - * (de) Zeichensatz und Schriftgrößen für Überschriften und übliche Text-Elemente - * - * @section content-fonts - */ - - /* (en) reset font size for all elements to standard (16 Pixel) */ - /* (de) Alle Schriftgrößen auf Standardgröße (16 Pixel) zurücksetzen */ - html * { font-size: 100.01%; } - - /* (en) reset monospaced elements to font size 16px in Gecko browsers */ - /* (de) Schriftgröße von monospaced Elemente auf 16 Pixel setzen */ - textarea, pre, tt, code { - font-family:"Courier New", Courier, monospace; - } - - /* (en) base layout gets standard font size 12px */ - /* (de) Basis-Layout erhält Standardschriftgröße von 12 Pixeln */ - body { - font-family: 'Trebuchet MS', Verdana, Helvetica, Arial, sans-serif; - font-size: 75.00%; - } - - h1,h2,h3,h4,h5,h6 { font-weight:bold; margin: 0 0 0.25em 0; } - h1 { font-size: 200% } /* 24px */ - h2 { font-size: 166.67% } /* 20px */ - h3 { font-size: 150% } /* 18px */ - h4 { font-size: 133.33% } /* 16px */ - h5 { font-size: 116.67% } /* 14px */ - h6 { font-size: 116.67%; font-style:italic; } /* 14px */ - - p { line-height: 1.5em; margin: 0 0 1em 0; } - - /* ### Lists | Listen #### */ - - ul, ol, dl { line-height: 1.5em; margin: 0 0 1em 1em; } - li { margin-left: 1.5em; line-height: 1.5em; } - - dt { font-weight: bold; } - dd { margin: 0 0 1em 2em; } - - /* ### text formatting | Textauszeichnung ### */ - - cite, blockquote { font-style:italic; } - blockquote { margin: 0 0 1em 1.5em; } - - strong,b { font-weight: bold; } - em,i { font-style:italic; } - - pre, code { font-family: monospace; font-size: 1.1em; } - - acronym, abbr { - letter-spacing: .07em; - border-bottom: .1em dashed #c00; - cursor: help; - } - - /** - * Generic Content Classes - * (en) standard classes for positioning and highlighting - * (de) Standardklassen zur Positionierung und Hervorhebung - * - * @section content-generic-classes - */ - - .note { background: #dfd; padding: 1em; border-top: 1px #bdb dotted; border-bottom: 1px #bdb dotted; } - .important { background: #ffd; padding: 1em; border-top: 1px #ddb dotted; border-bottom: 1px #ddb dotted; } - .warning { background: #fdd; padding: 1em; border-top: 1px #dbb dotted; border-bottom: 1px #dbb dotted; } - - .float_left { float: left; display:inline; margin-right: 1em; margin-bottom: 0.15em; } - .float_right { float: right; display:inline; margin-left: 1em; margin-bottom: 0.15em; } - .center { text-align:center; margin: 0.5em auto; } - - /** - * External Links - * - * (en) Formatting of hyperlinks - * (de) Gestaltung von Hyperlinks - * - */ - - a { color: #900; text-decoration:none; } - a:focus, - a:hover, - a:active { background-color: #fee; text-decoration:underline; } - - #topnav a { color: #aac; font-weight: bold; background:transparent; text-decoration:none; } - #topnav a:focus, - #topnav a:hover, - #topnav a:active{ text-decoration:underline; background-color: transparent; } - - #footer a { color: #aac; background:transparent; font-weight: bold; } - #footer a:focus, - #footer a:hover, - #footer a:active { color: #fff; background-color: transparent; text-decoration:underline; } - - /** - * (en) Emphasizing external Hyperlinks via CSS - * (de) Hervorhebung externer Hyperlinks mit CSS - * - * @section content-external-links - * @app-yaml-default disabled - */ - - /* - #main a[href^="http://www.my-domain.com"], - #main a[href^="https://www.my-domain.com"] - { - padding-left: 12px; - background-image: url('your_image.gif'); - background-repeat: no-repeat; - background-position: 0 0.45em; - } - */ - - /** - * Tables | Tabellen - * (en) Generic classes for table-width and design definition - * (de) Generische Klassen für die Tabellenbreite und Gestaltungsvorschriften für Tabellen - * - * @section content-tables - */ - - table { width: auto; border-collapse:collapse; margin-bottom: 0.5em; } - table.full { width: 100%; } - table.fixed { table-layout:fixed; } - - th,td { padding: 0.5em; } - thead th { background: #444; color: #fff; } - tbody th { background: #ccc; color: #333; } - tbody th.sub { background: #ddd; color: #333; } - - /** - * Miscellaneous | Sonstiges - * - * @section content-misc - */ - - hr { - color: #fff; - background:transparent; - margin: 0 0 0.5em 0; - padding: 0 0 0.5em 0; - border:0; - border-bottom: 1px #000 solid; - } -} - diff --git a/interface/ispconfig/interface/web/tools/form/user_settings.tform.php b/interface/ispconfig/interface/web/tools/form/user_settings.tform.php deleted file mode 100644 index 516031a18..000000000 --- a/interface/ispconfig/interface/web/tools/form/user_settings.tform.php +++ /dev/null @@ -1,144 +0,0 @@ - 0 id must match with id of current user -$form['auth_preset']['userid'] = 0; -//* 0 = default groupid of the user, > 0 id must match with groupid of current user -$form['auth_preset']['groupid'] = 0; - -//** Permissions are: r = read, i = insert, u = update, d = delete -$form['auth_preset']['perm_user'] = 'riud'; -$form['auth_preset']['perm_group'] = 'riud'; -$form['auth_preset']['perm_other'] = ''; - -//* Languages -$language_list = array(); -$handle = @opendir(ISPC_ROOT_PATH.'/lib/lang'); -while ($file = @readdir ($handle)) { - if ($file != '.' && $file != '..') { - if(@is_file(ISPC_ROOT_PATH.'/lib/lang/'.$file) and substr($file,-4,4) == '.lng') { - $tmp = substr($file, 0, 2); - $language_list[$tmp] = $tmp; - } - } -} - -$form['tabs']['users'] = array ( - 'title' => 'Settings', - 'width' => 80, - 'template' => 'templates/user_settings.htm', - 'fields' => array ( - ################################## - # Beginn Datenbankfelder - ################################## - 'passwort' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'PASSWORD', - 'encryption'=> 'CRYPT', - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '15', - 'maxlength' => '100', - 'rows' => '', - 'cols' => '' - ), - 'language' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'language_is_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-z]{2}$/i', - 'errmsg'=> 'language_regex_mismatch'), - ), - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => $language_list, - 'separator' => '', - 'width' => '30', - 'maxlength' => '2', - 'rows' => '', - 'cols' => '' - ) - ################################## - # ENDE Datenbankfelder - ################################## - ) -); - - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/web/tools/index.php b/interface/ispconfig/interface/web/tools/index.php deleted file mode 100644 index 641221baa..000000000 --- a/interface/ispconfig/interface/web/tools/index.php +++ /dev/null @@ -1,50 +0,0 @@ -auth->check_module_permissions('tools'); - -echo '

    '.$app->lng('Hosting Panel Tools').'

    '; - -?> diff --git a/interface/ispconfig/interface/web/tools/lib/lang/bg.lng b/interface/ispconfig/interface/web/tools/lib/lang/bg.lng deleted file mode 100644 index 3373fe1cd..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/bg.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/bg_usersettings.lng b/interface/ispconfig/interface/web/tools/lib/lang/bg_usersettings.lng deleted file mode 100644 index e4bc3af39..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/bg_usersettings.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/br.lng b/interface/ispconfig/interface/web/tools/lib/lang/br.lng deleted file mode 100644 index 0ea96868b..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/br.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/br_usersettings.lng b/interface/ispconfig/interface/web/tools/lib/lang/br_usersettings.lng deleted file mode 100644 index ad7432df7..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/br_usersettings.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/de.lng b/interface/ispconfig/interface/web/tools/lib/lang/de.lng deleted file mode 100644 index 296bf1fad..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/de.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/de_usersettings.lng b/interface/ispconfig/interface/web/tools/lib/lang/de_usersettings.lng deleted file mode 100644 index 2adc8210d..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/de_usersettings.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/en.lng b/interface/ispconfig/interface/web/tools/lib/lang/en.lng deleted file mode 100644 index 53af1714e..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/en.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/en_usersettings.lng b/interface/ispconfig/interface/web/tools/lib/lang/en_usersettings.lng deleted file mode 100644 index bfe487113..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/en_usersettings.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/es.lng b/interface/ispconfig/interface/web/tools/lib/lang/es.lng deleted file mode 100644 index ba82e68be..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/es.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/es_usersettings.lng b/interface/ispconfig/interface/web/tools/lib/lang/es_usersettings.lng deleted file mode 100644 index 12f52063d..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/es_usersettings.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/fi.lng b/interface/ispconfig/interface/web/tools/lib/lang/fi.lng deleted file mode 100644 index c629aa106..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/fi.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/fi_usersettings.lng b/interface/ispconfig/interface/web/tools/lib/lang/fi_usersettings.lng deleted file mode 100644 index 16ec5cf1a..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/fi_usersettings.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/fr.lng b/interface/ispconfig/interface/web/tools/lib/lang/fr.lng deleted file mode 100644 index 5e72e4fa6..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/fr.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/fr_usersettings.lng b/interface/ispconfig/interface/web/tools/lib/lang/fr_usersettings.lng deleted file mode 100644 index 22e1d0ec5..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/fr_usersettings.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/hu.lng b/interface/ispconfig/interface/web/tools/lib/lang/hu.lng deleted file mode 100644 index f66f91206..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/hu.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/hu_usersettings.lng b/interface/ispconfig/interface/web/tools/lib/lang/hu_usersettings.lng deleted file mode 100644 index 89dc62835..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/hu_usersettings.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/it.lng b/interface/ispconfig/interface/web/tools/lib/lang/it.lng deleted file mode 100644 index 12f312c72..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/it.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/it_usersettings.lng b/interface/ispconfig/interface/web/tools/lib/lang/it_usersettings.lng deleted file mode 100644 index 95bf88af3..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/it_usersettings.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/ja.lng b/interface/ispconfig/interface/web/tools/lib/lang/ja.lng deleted file mode 100644 index e9c01668f..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/ja.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/ja_usersettings.lng b/interface/ispconfig/interface/web/tools/lib/lang/ja_usersettings.lng deleted file mode 100644 index a838f9de0..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/ja_usersettings.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/nl.lng b/interface/ispconfig/interface/web/tools/lib/lang/nl.lng deleted file mode 100644 index 5bf2ae7a7..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/nl.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/nl_usersettings.lng b/interface/ispconfig/interface/web/tools/lib/lang/nl_usersettings.lng deleted file mode 100644 index cf0fc7160..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/nl_usersettings.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/pl.lng b/interface/ispconfig/interface/web/tools/lib/lang/pl.lng deleted file mode 100644 index adc0178fe..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/pl.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/pl_usersettings.lng b/interface/ispconfig/interface/web/tools/lib/lang/pl_usersettings.lng deleted file mode 100644 index f8d76658a..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/pl_usersettings.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/pt.lng b/interface/ispconfig/interface/web/tools/lib/lang/pt.lng deleted file mode 100644 index 292274fa4..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/pt.lng +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/pt_usersettings.lng b/interface/ispconfig/interface/web/tools/lib/lang/pt_usersettings.lng deleted file mode 100644 index 999611e94..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/pt_usersettings.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/ro.lng b/interface/ispconfig/interface/web/tools/lib/lang/ro.lng deleted file mode 100644 index a4d5765fe..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/ro.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/ro_usersettings.lng b/interface/ispconfig/interface/web/tools/lib/lang/ro_usersettings.lng deleted file mode 100644 index 1e48a56cc..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/ro_usersettings.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/ru.lng b/interface/ispconfig/interface/web/tools/lib/lang/ru.lng deleted file mode 100644 index 084bbb83f..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/ru.lng +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/ru_usersettings.lng b/interface/ispconfig/interface/web/tools/lib/lang/ru_usersettings.lng deleted file mode 100644 index a097b7b28..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/ru_usersettings.lng +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/se.lng b/interface/ispconfig/interface/web/tools/lib/lang/se.lng deleted file mode 100644 index bea9c7867..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/se.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/se_usersettings.lng b/interface/ispconfig/interface/web/tools/lib/lang/se_usersettings.lng deleted file mode 100644 index 5485f52a4..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/se_usersettings.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/sk.lng b/interface/ispconfig/interface/web/tools/lib/lang/sk.lng deleted file mode 100644 index f44162974..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/sk.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/sk_usersettings.lng b/interface/ispconfig/interface/web/tools/lib/lang/sk_usersettings.lng deleted file mode 100644 index 194b23339..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/sk_usersettings.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/tr.lng b/interface/ispconfig/interface/web/tools/lib/lang/tr.lng deleted file mode 100644 index 32bfc8328..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/tr.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/lang/tr_usersettings.lng b/interface/ispconfig/interface/web/tools/lib/lang/tr_usersettings.lng deleted file mode 100644 index d9efacca7..000000000 --- a/interface/ispconfig/interface/web/tools/lib/lang/tr_usersettings.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/ispconfig/interface/web/tools/lib/menu.d/statistics.menu.php b/interface/ispconfig/interface/web/tools/lib/menu.d/statistics.menu.php deleted file mode 100644 index 6fdcf1b96..000000000 --- a/interface/ispconfig/interface/web/tools/lib/menu.d/statistics.menu.php +++ /dev/null @@ -1,25 +0,0 @@ - 'Other page', - 'target' => 'content', - 'link' => 'http://www.google.de'); - -$items[] = array( 'title' => 'Mailqueue', - 'target' => 'content', - 'link' => 'tools/mailqueue.php'); - - -$module['nav'][] = array( 'title' => 'System Info', - 'open' => 1, - 'items' => $items); - - -*/ - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/web/tools/lib/module.conf.php b/interface/ispconfig/interface/web/tools/lib/module.conf.php deleted file mode 100644 index 36165d39e..000000000 --- a/interface/ispconfig/interface/web/tools/lib/module.conf.php +++ /dev/null @@ -1,38 +0,0 @@ - 'Password and Language', - 'target' => 'content', - 'link' => 'tools/user_settings.php'); - - -$module['nav'][] = array( 'title' => 'User Settings', - 'open' => 1, - 'items' => $items); - - -$menu_dir = ISPC_WEB_PATH.'/tools/lib/menu.d'; - -if (is_dir($menu_dir)) { - if ($dh = opendir($menu_dir)) { - //** Go trough all files in the menu dir - while (($file = readdir($dh)) !== false) { - if($file != '.' && $file != '..' && substr($file,-9,9) == '.menu.php') { - include_once($menu_dir.'/'.$file); - } - } - } -} - -?> \ No newline at end of file diff --git a/interface/ispconfig/interface/web/tools/templates/user_settings.htm b/interface/ispconfig/interface/web/tools/templates/user_settings.htm deleted file mode 100644 index 658b94faf..000000000 --- a/interface/ispconfig/interface/web/tools/templates/user_settings.htm +++ /dev/null @@ -1,36 +0,0 @@ -

    -

    - -
    - -
    -
    -
    - - -
    -
    -

    {tmpl_var name='password_strength_txt'}

    -
    -

     

    -
    -
    - - -
    -
    - - -
    - - - -
    - - -
    -
    - -
    diff --git a/interface/ispconfig/interface/web/tools/user_settings.php b/interface/ispconfig/interface/web/tools/user_settings.php deleted file mode 100644 index d705cea24..000000000 --- a/interface/ispconfig/interface/web/tools/user_settings.php +++ /dev/null @@ -1,97 +0,0 @@ -auth->check_module_permissions('tools'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - - function onLoad() { - global $app, $conf, $tform_def_file; - - // Loading template classes and initialize template - if(!is_object($app->tpl)) $app->uses('tpl'); - if(!is_object($app->tform)) $app->uses('tform'); - - $app->tpl->newTemplate("tabbed_form.tpl.htm"); - - // Load table definition from file - $app->tform->loadFormDef($tform_def_file); - - // Importing ID - $this->id = $_SESSION['s']['user']['userid']; - $_POST['id'] = $_SESSION['s']['user']['userid']; - - if(count($_POST) > 1) { - $this->dataRecord = $_POST; - $this->onSubmit(); - } else { - $this->onShow(); - } - } - - function onInsert() { - die('No inserts allowed.'); - } - - function onBeforeUpdate() { - global $app, $conf; - - if($_POST['passwort'] != $_POST['passwort2']) { - $app->tform->errorMessage = $app->tform->lng('password_mismatch'); - } - $_SESSION['s']['user']['language'] = $_POST['language']; - $_SESSION['s']['language'] = $_POST['language']; - } - - -} - -$page = new page_action; -$page->onLoad(); - -?> diff --git a/interface/ispconfig/nbproject/project.properties b/interface/ispconfig/nbproject/project.properties deleted file mode 100644 index 70b7f0fee..000000000 --- a/interface/ispconfig/nbproject/project.properties +++ /dev/null @@ -1,8 +0,0 @@ -auxiliary.org-netbeans-modules-html-editor-lib.default-html-public-id=HTML5 -include.path=${php.global.include.path} -php.version=PHP_53 -source.encoding=UTF-8 -src.dir=. -tags.asp=false -tags.short=true -web.root=. diff --git a/interface/ispconfig/nbproject/project.xml b/interface/ispconfig/nbproject/project.xml deleted file mode 100644 index 2316b2d6c..000000000 --- a/interface/ispconfig/nbproject/project.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - org.netbeans.modules.php.project - - - web_ispconfig - - - diff --git a/interface/ispconfig/server/conf/apache_apps.vhost.master b/interface/ispconfig/server/conf/apache_apps.vhost.master deleted file mode 100644 index ccfcbea04..000000000 --- a/interface/ispconfig/server/conf/apache_apps.vhost.master +++ /dev/null @@ -1,42 +0,0 @@ - -###################################################### -# This virtual host contains the configuration -# for the ISPConfig apps vhost -###################################################### - -{vhost_port_listen} Listen {apps_vhost_port} -NameVirtualHost *:{apps_vhost_port} - - - ServerAdmin webmaster@localhost - {apps_vhost_servername} - - - DocumentRoot {apps_vhost_dir} - SuexecUserGroup ispapps ispapps - - Options Indexes FollowSymLinks MultiViews +ExecCGI - AllowOverride AuthConfig Indexes Limit Options FileInfo - AddHandler fcgid-script .php - FCGIWrapper {apps_vhost_basedir}/php-fcgi-scripts/apps/.php-fcgi-starter .php - Order allow,deny - Allow from all - - - - - DocumentRoot {apps_vhost_dir} - AddType application/x-httpd-php .php - - Options FollowSymLinks - AllowOverride None - Order allow,deny - Allow from all - - - - ServerSignature Off - - - - diff --git a/interface/ispconfig/server/conf/apache_ispconfig.conf.master b/interface/ispconfig/server/conf/apache_ispconfig.conf.master deleted file mode 100644 index 7a7179c7f..000000000 --- a/interface/ispconfig/server/conf/apache_ispconfig.conf.master +++ /dev/null @@ -1,43 +0,0 @@ - -################################################ -# ISPConfig Logfile configuration for vlogger -################################################ - -LogFormat "%v %h %l %u %t \"%r\" %>s %B \"%{Referer}i\" \"%{User-Agent}i\"" combined_ispconfig -CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m%d-access.log\" -d \"/etc/vlogger-dbi.conf\" /var/log/ispconfig/httpd" combined_ispconfig - - - AllowOverride None - Order Deny,Allow - Deny from all - - -# Do not allow access to the root file system of the server for security reasons - - AllowOverride None - Order Deny,Allow - Deny from all - - -# Except of the following directories that contain website scripts - - Order allow,deny - Allow from all - - - - Order allow,deny - Allow from all - - - - Order allow,deny - Allow from all - - - - -NameVirtualHost {tmpl_var name="ip_address"}:80 -NameVirtualHost {tmpl_var name="ip_address"}:443 - - diff --git a/interface/ispconfig/server/conf/autoresponder.master b/interface/ispconfig/server/conf/autoresponder.master deleted file mode 100644 index 0126c998d..000000000 --- a/interface/ispconfig/server/conf/autoresponder.master +++ /dev/null @@ -1,23 +0,0 @@ -`test -f {vmail_mailbox_base}/mailfilters/$HOST/$USER/.vacation.msg && exit 1 || exit 0` -if ($RETURNCODE==1) -{ - { - if (!/^List-Unsubscribe:.*/:h ) - { - if (!/^X-Spam-Flag: YES/:h ) - { - NOW=time - if ({start_date} lt $NOW && {end_date} gt $NOW) - { - RESPOND="{vmail_mailbox_base}/mailfilters/$HOST/$USER/.vacation.msg" - RESPONDDB="{vmail_mailbox_base}/mailfilters/$HOST/$USER/.vacation.lst" - - # The following must be one contiguous line - cc "| mailbot -t $RESPOND -d $RESPONDDB -c 'UTF-8' -D 1 \ - -A 'From: $RECIPIENT' -s 'Auto Response: from $RECIPIENT' \ - /usr/sbin/sendmail -t -f ''" - } - } - } - } -} \ No newline at end of file diff --git a/interface/ispconfig/server/conf/bash.bashrc.master b/interface/ispconfig/server/conf/bash.bashrc.master deleted file mode 100644 index edcaf7dc5..000000000 --- a/interface/ispconfig/server/conf/bash.bashrc.master +++ /dev/null @@ -1,65 +0,0 @@ - - -## Hack for Jailkit User to change back to the logged in user ## -if [ -n "$LOGNAME" ]; then - if [ "$LOGNAME" != $USER ]; then - export HOME=$LOGNAME - export USER=$LOGNAME - export USERNAME=$LOGNAME - cd $HOME - fi -fi - -## Change machine hostname to site domain ## -export HOSTNAME= - - - - -# If not running interactively, don't do anything -[ -z "$PS1" ] && return - - -# check the window size after each command and, if necessary, -# update the values of LINES and COLUMNS. -shopt -s checkwinsize - -# make less more friendly for non-text input files, see lesspipe(1) -[ -x /usr/bin/lesspipe ] && eval "$(lesspipe)" - - -# set a fancy prompt (non-color, unless we know we "want" color) -case "$TERM" in -xterm-color) - PS1='\[\033[01;32m\]$USER@$HOSTNAME\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' - ;; -*) - PS1='$USER@$HOSTNAME:\w\$ ' - ;; -esac - - -# If this is an xterm set the title to user@host:dir -case "$TERM" in -xterm*|rxvt*) - PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"' - ;; -*) - ;; -esac - - -# enable color support of ls and also add handy aliases -if [ "$TERM" != "dumb" ]; then - eval "`dircolors -b`" - alias ls='ls --color=auto' - #alias dir='ls --color=auto --format=vertical' - #alias vdir='ls --color=auto --format=long' -fi - -# some more ls aliases -#alias ll='ls -l' -#alias la='ls -A' -#alias l='ls -CF' - - diff --git a/interface/ispconfig/server/conf/bastille-firewall.cfg.master b/interface/ispconfig/server/conf/bastille-firewall.cfg.master deleted file mode 100644 index b9658c986..000000000 --- a/interface/ispconfig/server/conf/bastille-firewall.cfg.master +++ /dev/null @@ -1,320 +0,0 @@ -# -# /etc/bastille-firewall.cfg -# -# Configuration file for both 2.2/ipchains and 2.4/netfilter scripts -# -# $Source: /cvsroot/bastille-linux/dev/working_tree/Bastille/bastille-firewall.cfg,v $ -# Modified by: $Author: peterw $ -# $Date: 2002/01/04 13:34:18 $ -# $Revision: 1.7 $ -# -# Copyright (C) 1999-2001 Peter Watkins -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# Thanks to David Ranch, Brad A, Don G, and others for their suggestions - -# the configuration values should be whitespace-delimited lists of -# appropriate values, e.g. -# TCP_PUBLIC_SERVICES="80 smtp ssh" -# lists Web (port 80), SMTP mail, and Secure Shell ports -# -# This script is suitable for workstations or simple NAT firewalls; -# you may want to add more "output" restrictions for serious servers - -# 0) DNS servers (Linux 2.2/ipchains only) -# You must list your DNS servers here so that -# the firewall will allow them to service your lookup requests -# -# List of DNS servers/networks to allow "domain" responses from -# This _could_ be nameservers as a list of /32 entries -#DNS_SERVERS="a.b.c.d/32 e.f.g.h/32" -# If you are running a caching nameserver, you'll need to allow from -# "0.0.0.0/0" so named can query any arbitrary nameserver -# (To enable a caching nameserver, you will also probably need to -# add "domain" to the TCP and UDP public service lists.) -#DNS_SERVERS="0.0.0.0/0" -# -# To have the DNS servers parsed from /etc/resolv.conf at runtime, -# as normal workstations will want, make this variable empty -#DNS_SERVERS="" -# -# Please make sure variable assignments are on single lines; do NOT -# use the "\" continuation character (so Bastille can change the -# values if it is run more than once) -DNS_SERVERS="{DNS_SERVERS}" - - -# 1) define your interfaces (all systems) -# Note a "+" acts as a wildcard, e.g. ppp+ would match any PPP -# interface -# -# list internal/trusted interfaces -# traffic from these interfaces will be allowed -# through the firewall, no restrictions -#TRUSTED_IFACES="lo" # MINIMAL/SAFEST -# -# list external/untrusted interfaces -#PUBLIC_IFACES="eth+ ppp+ slip+" # SAFEST -# -# list internal/partially-trusted interfaces -# e.g. if this acts as a NAT/IP Masq server and you -# don't want clients on those interfaces having -# full network access to services running on this -# server (as the TRUSTED_IFACES allows) -#INTERNAL_IFACES="" # SAFEST -# -# Please make sure variable assignments are on single lines; do NOT -# use the "\" continuation character (so Bastille can change the -# values if it is run more than once) -TRUSTED_IFACES="lo" # MINIMAL/SAFEST -PUBLIC_IFACES="eth+ ppp+ slip+ venet+" # SAFEST -INTERNAL_IFACES="" # SAFEST - - -# 2) services for which we want to log access attempts to syslog (all systems) -# Note this only audits connection attempts from public interfaces -# -# Also see item 12, LOG_FAILURES -# -#TCP_AUDIT_SERVICES="telnet ftp imap pop3 finger sunrpc exec login linuxconf ssh" -# anyone probing for BackOrifice? -#UDP_AUDIT_SERVICES="31337" -# how about ICMP? -#ICMP_AUDIT_TYPES="" -#ICMP_AUDIT_TYPES="echo-request" # ping/MS tracert -# -# To enable auditing, you must have syslog configured to log "kern" -# messages of "info" level; typically you'd do this with a line in -# syslog.conf like -# kern.info /var/log/messages -# though the Bastille port monitor will normally want these messages -# logged to a named pipe instead, and the Bastille script normally -# configures syslog for "kern.*" which catches these messages -# -# Please make sure variable assignments are on single lines; do NOT -# use the "\" continuation character (so Bastille can change the -# values if it is run more than once) -#TCP_AUDIT_SERVICES="telnet ftp imap pop3 finger sunrpc exec login linuxconf ssh" -#UDP_AUDIT_SERVICES="31337" -#ICMP_AUDIT_TYPES="" - - -# 3) services we allow connections to (all systems) -# -# FTP note: -# To allow your machine to service "passive" FTP clients, -# you will need to make allowances for the passive data -# ports; Bastille users should read README.FTP for more -# information -# -# "public" interfaces: -# TCP services that "public" hosts should be allowed to connect to -#TCP_PUBLIC_SERVICES="" # MINIMAL/SAFEST -# -# UDP services that "public" hosts should be allowed to connect to -#UDP_PUBLIC_SERVICES="" # MINIMAL/SAFEST -# -# "internal" interfaces: -# (NB: you will need to repeat the "public" services if you want -# to allow "internal" hosts to reach those services, too.) -# TCP services that internal clients can connect to -#TCP_INTERNAL_SERVICES="" # MINIMAL/SAFEST -# -# UDP services that internal clients can connect to -#UDP_INTERNAL_SERVICES="" # MINIMAL/SAFEST -# -# Please make sure variable assignments are on single lines; do NOT -# use the "\" continuation character (so Bastille can change the -# values if it is run more than once) -TCP_PUBLIC_SERVICES="{tmpl_var name="TCP_PUBLIC_SERVICES"}" # MINIMAL/SAFEST -UDP_PUBLIC_SERVICES="{tmpl_var name="UDP_PUBLIC_SERVICES"}" # MINIMAL/SAFEST -TCP_INTERNAL_SERVICES="" # MINIMAL/SAFEST -UDP_INTERNAL_SERVICES="" # MINIMAL/SAFEST - -# 4) passive/active FTP (Linux 2.2/ipchains only) -# FTP is a firewall nightmare; if you allow "normal" FTP connections, -# you must be careful to block any TCP services that are listening -# on high ports; it's safer to require your FTP clients to use -# "passive" mode. -# -# Note this will also force clients on machines -# that use this one for NAT/IP Masquerading to use passive mode -# for connections that go through this server (e.g. from the -# internal network to public Internet machines -# -# For more information about FTP, see the Bastille README.FTP doc -# -#FORCE_PASV_FTP="N" -#FORCE_PASV_FTP="Y" # SAFEST -# -FORCE_PASV_FTP="Y" # SAFEST - - -# 5) Services to explicitly block. (Linux 2.2/ipchains only) -# See FTP note above -# Note that ranges of ports are specified with colons, and you -# can specify an open range by using only one number, e.g. -# 1024: means ports >= 1024 and :6000 means ports <= 6000 -# -# TCP services on high ports that should be blocked if not forcing passive FTP -# This should include X (6000:6010) and anything else revealed by 'netstat -an' -# (this does not matter unless you're not forcing "passive" FTP) -#TCP_BLOCKED_SERVICES="6000:6020" -# -# UDP services to block: this should be UDP services on high ports. -# Your only vulnerability from public interfaces are the DNS and -# NTP servers/networks (those with 0.0.0.0 for DNS servers should -# obviously be very careful here!) -#UDP_BLOCKED_SERVICES="2049" -# -# types of ICMP packets to allow -#ICMP_ALLOWED_TYPES="destination-unreachable" # MINIMAL/SAFEST -# the following allows you to ping/traceroute outbound -#ICMP_ALLOWED_TYPES="destination-unreachable echo-reply time-exceeded" -# -# Please make sure variable assignments are on single lines; do NOT -# use the "\" continuation character (so Bastille can change the -# values if it is run more than once) -TCP_BLOCKED_SERVICES="6000:6020" -UDP_BLOCKED_SERVICES="2049" -ICMP_ALLOWED_TYPES="destination-unreachable echo-reply time-exceeded echo-request" - - -# 6) Source Address Verification (all Linux systems) -# This helps prevent "IP Spoofing" attacks -# -ENABLE_SRC_ADDR_VERIFY="Y" # SAFEST - - -# 7) IP Masquerading / NAT. (all systems) -# List your internal/masq'ed networks here -# -# Also see item 4, FORCE_PASV_FTP, as that setting affects -# clients using IP Masquerading through this machine -# -# Set this variable if you're using IP Masq / NAT for a local network -#IP_MASQ_NETWORK="" # DISABLE/SAFEST -#IP_MASQ_NETWORK="10.0.0.0/8" # example -#IP_MASQ_NETWORK="192.168.0.0/16" # example -# -# Have lots of masq hosts? uncomment the following six lines -# and list the hosts/networks in /etc/firewall-masqhosts -# the script assumes any address without a "/" netmask afterwards -# is an individual address (netmask /255.255.255.255): -#if [ -f /etc/firewall-masqhosts ]; then -# echo "Reading list of masq hosts from /etc/firewall-masqhosts" -# # Read the file, but use 'awk' to strip comments -# # Note the sed bracket phrase includes a space and tab char -# IP_MASQ_NETWORK=`cat /etc/firewall-masqhosts | awk -F\# '/\// {print $1; next} /[0-9]/ {print $1"/32"}' |sed 's:[ ]*::g'` -#fi -# -# Masq modules -# NB: The script will prepend "ip_masq_" to each module name -#IP_MASQ_MODULES="cuseeme ftp irc quake raudio vdolive" # ALL (?) -#IP_MASQ_MODULES="ftp raudio vdolive" # RECOMMENDED -# -# Please make sure variable assignments are on single lines; do NOT -# use the "\" continuation character (so Bastille can change the -# values if it is run more than once) -IP_MASQ_NETWORK="" # DISABLE/SAFEST -IP_MASQ_MODULES="ftp raudio vdolive" # RECOMMENDED - - -# 8) How to react to disallowed packets (all systems) -# whether to "REJECT" or "DROP" disallowed packets; if you're running any -# public services, you probably ought to use "REJECT"; if in serious stealth -# mode, choose "DROP" so simple probes don't know if there's anything out there -# NOTE: disallowed ICMP packets are discarded with "DROP", as -# it would not make sense to "reject" the packet if you're -# trying to disallow ping/traceroute -# NOTE: the scripts that set up the filter rules will interpret these -# keywords as needed, e.g. "DROP" becomes "DENY" for Linux 2.2/ipchains -# -REJECT_METHOD="DROP" - - -# 9) DHCP (Linux 2.2/ipchains only) -# In case your server needs to get a DHCP address from some other -# machine (e.g. cable modem) -#DHCP_IFACES="eth0" # example, to allow you to query on eth0 -#DHCP_IFACES="" # DISABLED -# -# Please make sure variable assignments are on single lines; do NOT -# use the "\" continuation character (so Bastille can change the -# values if it is run more than once) -DHCP_IFACES="" # DISABLED - - -# 10) NTP servers (Linux 2.2/ipchains only) -# more UDP fun. List IP addresses or network space of NTP servers -# -#NTP_SERVERS="" # DISABLE NTP QUERIES / SAFEST -#NTP_SERVERS="a.b.c.d/32 e.f.g.h/32" # example, to allow querying 2 servers -# -# Please make sure variable assignments are on single lines; do NOT -# use the "\" continuation character (so Bastille can change the -# values if it is run more than once) -NTP_SERVERS="" # DISABLE NTP QUERIES / SAFEST - - -# 11) more ICMP. (Linux 2.2/ipchains only) -# Control the outbound ICMP to make yourself invisible to -# traceroute probes -# -#ICMP_OUTBOUND_DISABLED_TYPES="destination-unreachable time-exceeded" -# -# Please make sure variable assignments are on single lines; do NOT -# use the "\" continuation character (so Bastille can change the -# values if it is run more than once) -ICMP_OUTBOUND_DISABLED_TYPES="destination-unreachable time-exceeded" - - -# 12) Logging (all systems) -# With this enabled, ipchains will log all blocked packets. -# ** this could generate huge logs ** -# This is primarily intended for the port mointoring system; -# also note that you probably do not want to "AUDIT" any services -# that you are not allowing, as doing so would mean duplicate -# logging -LOG_FAILURES="N" # do not log blocked packets - -# 13) Block fragmented packets (all systems) -# There's no good reason to allow these -#ALLOW_FRAGMENTS="N" # safest -ALLOW_FRAGMENTS="Y" # old behavior - -# 14) Prevent SMB broadcasts from leaking out NAT setup (all systems) -# Windows machines will poll teh net with SMB broadcasts, -# basically advertising their existence. Most folks agree -# that this traffic should be dropped -#DROP_SMB_NAT_BCAST="N" # allow them (are you sure?) -DROP_SMB_NAT_BCAST="Y" # drop those packets - -# 15) Log level (iptables/netfilter/Linux 2.4 only) -# Control what level of logging is used when the firewall logs -# information. Default is warning (4). Lowest priority is -# debug (7); highest is emergency (0). To prevent syslog -# from copying iptables error messages to the console, set -# this to 6 (7 would also work, but 6 is recommended) -# You can also stop syslogd/klogd from printing kernel -# messages to the console by issuing the command -# setterm -msg off -#IP_LOG_LEVEL=6 # level used in 2.2/ipchains -IP_LOG_LEVEL=4 # iptables/netfilter default - -# 16) Always attempt to use stateful features for inbound connections -# Always using state will allow the firewall to reject invalid -# packets sent to otherwise open TCP services, e.g. XMAS, NULL -# and SIN/FYN scans. The downside to choosing this behavior is that -# services may become unreachable if the packet filter's state -# table becomes full. -IP_ALWAYS_USE_STATE="N" # default, ensures services remain available -#IP_ALWAYS_USE_STATE="Y" # disallow invalid packets \ No newline at end of file diff --git a/interface/ispconfig/server/conf/bind_named.conf.local.master b/interface/ispconfig/server/conf/bind_named.conf.local.master deleted file mode 100644 index 764730d09..000000000 --- a/interface/ispconfig/server/conf/bind_named.conf.local.master +++ /dev/null @@ -1,9 +0,0 @@ - - - -zone "" { - type master; - file ""; -}; - - diff --git a/interface/ispconfig/server/conf/bind_pri.domain.master b/interface/ispconfig/server/conf/bind_pri.domain.master deleted file mode 100644 index faa42f3d7..000000000 --- a/interface/ispconfig/server/conf/bind_pri.domain.master +++ /dev/null @@ -1,48 +0,0 @@ -$TTL {tmpl_var name='ttl'} -@ IN SOA {tmpl_var name='ns'} {tmpl_var name='mbox'} ( - {tmpl_var name='serial'} ; serial, todays date + todays serial # - {tmpl_var name='refresh'} ; refresh, seconds - {tmpl_var name='retry'} ; retry, seconds - {tmpl_var name='expire'} ; expire, seconds - {tmpl_var name='ttl'} ) ; minimum, seconds -; - - - -{tmpl_var name='name'} NS {tmpl_var name='data'} - - -{tmpl_var name='name'} A {tmpl_var name='data'} - - -{tmpl_var name='name'} AAAA {tmpl_var name='data'} - - -{tmpl_var name='name'} CNAME {tmpl_var name='data'} - - -{tmpl_var name='name'} CNAME {tmpl_var name='data'} - - -{tmpl_var name='name'} HINFO {tmpl_var name='data'} - - -{tmpl_var name='name'} MX {tmpl_var name='aux'} {tmpl_var name='data'} - - -{tmpl_var name='name'} NAPTR {tmpl_var name='data'} - - -{tmpl_var name='name'} PTR {tmpl_var name='data'} - - -{tmpl_var name='name'} RP {tmpl_var name='data'} - - -{tmpl_var name='name'} SRV 0 {tmpl_var name='data'} - - -{tmpl_var name='name'} TXT {tmpl_var name='data'} - - - diff --git a/interface/ispconfig/server/conf/debian_network_interfaces.master b/interface/ispconfig/server/conf/debian_network_interfaces.master deleted file mode 100644 index 08c713691..000000000 --- a/interface/ispconfig/server/conf/debian_network_interfaces.master +++ /dev/null @@ -1,27 +0,0 @@ -# This file describes the network interfaces available on your system -# and how to activate them. For more information, see interfaces(5). - -# The loopback network interface -auto lo -iface lo inet loopback - -# The primary network interface -auto eth0 -iface eth0 inet static - address - netmask - network - broadcast - gateway - - - -auto eth0: -iface eth0: inet static - address - netmask - network - broadcast - gateway - - diff --git a/interface/ispconfig/server/conf/error/br/400.html b/interface/ispconfig/server/conf/error/br/400.html deleted file mode 100644 index 7edd410d3..000000000 --- a/interface/ispconfig/server/conf/error/br/400.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -ERROR 400 - Requisição ruim! - - - - - -
    - -
    -

    O seguinte erro ocorreu:

    -

    Você usou uma sintaxe inválida.

    -

    Se tiver qualquer dúvida extra sobre este erro contate seu webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/br/401.html b/interface/ispconfig/server/conf/error/br/401.html deleted file mode 100644 index b0fc2215d..000000000 --- a/interface/ispconfig/server/conf/error/br/401.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERRO 401 - Não autorizado! - - - - - -
    - -
    -

    O seguinte erro ocorreu:

    -

    O endereço requisitado necessita de autorização para acesso.

    -

    Se tiver qualquer dúvida extra sobre este erro contate seu webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/br/403.html b/interface/ispconfig/server/conf/error/br/403.html deleted file mode 100644 index 574830c76..000000000 --- a/interface/ispconfig/server/conf/error/br/403.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERRO 403 - Acesso negado! - - - - - -
    - -
    -

    O seguinte erro ocorreu:

    -

    Não foi permitido o seu acesso ao endereço especificado.

    -

    Se tiver qualquer dúvida extra sobre este erro contate seu webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/br/404.html b/interface/ispconfig/server/conf/error/br/404.html deleted file mode 100644 index 0d00ccef2..000000000 --- a/interface/ispconfig/server/conf/error/br/404.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERRO 404 - Arquivo não encontrado! - - - - - -
    - -
    -

    O seguinte erro ocorreu:

    -

    O endereço requisitado não foi encontrado neste servidor.

    -

    Se tiver qualquer dúvida extra sobre este erro cheque por atualizações neste endereço ou contate seu webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/br/405.html b/interface/ispconfig/server/conf/error/br/405.html deleted file mode 100644 index e05d56cf3..000000000 --- a/interface/ispconfig/server/conf/error/br/405.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERRO 405 - Método não permitido! - - - - - -
    - -
    -

    O seguinte erro ocorreu:

    -

    O método utilizado não é permitido.

    -

    Se tiver qualquer dúvida extra sobre este erro contate seu webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/br/500.html b/interface/ispconfig/server/conf/error/br/500.html deleted file mode 100644 index 7a24b5113..000000000 --- a/interface/ispconfig/server/conf/error/br/500.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERRO 500 - Erro interno do servidor! - - - - - -
    - -
    -

    O seguinte erro ocorreu:

    -

    O erro no endereço requisitado foi causado por uma Requisição interna do servidor inválida.

    -

    Se está mensagem se repetir muitas vezes contate seu webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/br/503.html b/interface/ispconfig/server/conf/error/br/503.html deleted file mode 100644 index ff7b5e88b..000000000 --- a/interface/ispconfig/server/conf/error/br/503.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERRO 503 - Serviço Indisponível! - - - - - -
    - -
    -

    O seguinte erro ocorreu:

    -

    O serviço não está disponível no momento por uma sobrecarga temporária ou processo de manutenção. Por favor tente mais tarde

    -

    Se tiver qualquer dúvida extra sobre este erro contate seu webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/cz/400.html b/interface/ispconfig/server/conf/error/cz/400.html deleted file mode 100644 index f83ae5892..000000000 --- a/interface/ispconfig/server/conf/error/cz/400.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 400 - Bad Request! - - - - - -
    - -
    -

    The following error occurred:

    -

    You have used invalid syntax.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/cz/401.html b/interface/ispconfig/server/conf/error/cz/401.html deleted file mode 100644 index 49c7b4780..000000000 --- a/interface/ispconfig/server/conf/error/cz/401.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 401 - Unauthorized! - - - - - -
    - -
    -

    The following error occurred:

    -

    The URL requested requires authorisation.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/cz/403.html b/interface/ispconfig/server/conf/error/cz/403.html deleted file mode 100644 index 12934ce6d..000000000 --- a/interface/ispconfig/server/conf/error/cz/403.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 403 - Forbidden! - - - - - -
    - -
    -

    The following error occurred:

    -

    You are not permitted to access the requested URL.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/cz/404.html b/interface/ispconfig/server/conf/error/cz/404.html deleted file mode 100644 index fb17b2ac3..000000000 --- a/interface/ispconfig/server/conf/error/cz/404.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 404 - Not Found! - - - - - -
    - -
    -

    The following error occurred:

    -

    The requested URL was not found on this server.

    -

    Please check the URL or contact the webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/cz/405.html b/interface/ispconfig/server/conf/error/cz/405.html deleted file mode 100644 index e5f66a8fb..000000000 --- a/interface/ispconfig/server/conf/error/cz/405.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 405 - Method Not Allowed! - - - - - -
    - -
    -

    The following error occurred:

    -

    The method used is not permitted.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/cz/500.html b/interface/ispconfig/server/conf/error/cz/500.html deleted file mode 100644 index 4413bf56a..000000000 --- a/interface/ispconfig/server/conf/error/cz/500.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 500 - Internal Server Error! - - - - - -
    - -
    -

    The following error occurred:

    -

    The requested URL caused an internal server error.

    -

    If you get this message repeatedly please contact the webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/cz/503.html b/interface/ispconfig/server/conf/error/cz/503.html deleted file mode 100644 index 983ce2637..000000000 --- a/interface/ispconfig/server/conf/error/cz/503.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 503 - Service Unavailable! - - - - - -
    - -
    -

    The following error occurred:

    -

    The Service is not available at the moment due to a temporary overloading or maintenance of the server. Please try again later.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/de/400.html b/interface/ispconfig/server/conf/error/de/400.html deleted file mode 100644 index cb223c85a..000000000 --- a/interface/ispconfig/server/conf/error/de/400.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - FEHLER 400 - Ungültige Anforderung! - - - - - -
    - -
    -

    Folgender Fehler ist aufgetreten:

    -

    Sie verwenden eine ungültige Anforderung.

    -

    Bei Problemen wenden Sie sich bitte an den Webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/de/401.html b/interface/ispconfig/server/conf/error/de/401.html deleted file mode 100644 index f01cc1e60..000000000 --- a/interface/ispconfig/server/conf/error/de/401.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - FEHLER 401 - Zugriff verweigert! - - - - - -
    - -
    -

    Folgender Fehler ist aufgetreten:

    -

    Der Anmeldeversuch ist fehlgeschlagen, vermutlich, weil ein ungültiger Benutzername oder ein ungültiges Kennwort verwendet wurde.

    -

    Bei weiteren Problemen wenden Sie sich bitte an den Webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/de/403.html b/interface/ispconfig/server/conf/error/de/403.html deleted file mode 100644 index e01e62614..000000000 --- a/interface/ispconfig/server/conf/error/de/403.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - FEHLER 403 - Unzulässig! - - - - - -
    - -
    -

    Folgender Fehler ist aufgetreten:

    -

    Sie besitzen nicht die erforderlichen Rechte, die angegebene URL zu öffnen.

    -

    Bei weiteren Problemen wenden Sie sich bitte an den Webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/de/404.html b/interface/ispconfig/server/conf/error/de/404.html deleted file mode 100644 index cfc5009d6..000000000 --- a/interface/ispconfig/server/conf/error/de/404.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - FEHLER 404 - Nicht gefunden! - - - - - -
    - -
    -

    Folgender Fehler ist aufgetreten:

    -

    Die angegebene URL wurde auf diesem Server nicht gefunden.

    -

    Bitte überprüfen Sie die Schreibweise der URL oder wenden Sie sich an den Webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/de/405.html b/interface/ispconfig/server/conf/error/de/405.html deleted file mode 100644 index c59dd5b2c..000000000 --- a/interface/ispconfig/server/conf/error/de/405.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - FEHLER 405 - Methode unzulässig! - - - - - -
    - -
    -

    Folgender Fehler ist aufgetreten:

    -

    Für Zugriff auf diese Seite verwendetes HTTP-Verb ist nicht zulässig, Methode unzulässig.

    -

    Bei Problemen wenden Sie sich bitte an den Webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/de/500.html b/interface/ispconfig/server/conf/error/de/500.html deleted file mode 100644 index 55b4f4f96..000000000 --- a/interface/ispconfig/server/conf/error/de/500.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - FEHLER 500 - Interner Serverfehler! - - - - - -
    - -
    -

    Folgender Fehler ist aufgetreten:

    -

    Beim Aufruf der angegebenen URL ist ein interner Serverfehler aufgetreten.

    -

    Sollten Sie diese Fehlermeldung öfter erhalten, wenden Sie sich bitte an den Webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/de/503.html b/interface/ispconfig/server/conf/error/de/503.html deleted file mode 100644 index ca12cd6c7..000000000 --- a/interface/ispconfig/server/conf/error/de/503.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - FEHLER 503 - Dienst nicht verfügbar! - - - - - - -
    - -
    -

    Folgender Fehler ist aufgetreten:

    -

    Der Dienst ist momentan überlastet. Bitte versuchen Sie es später noch einmal.

    -

    Sollten Sie diese Fehlermeldung öfter erhalten, wenden Sie sich bitte an den Webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/en/400.html b/interface/ispconfig/server/conf/error/en/400.html deleted file mode 100644 index f83ae5892..000000000 --- a/interface/ispconfig/server/conf/error/en/400.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 400 - Bad Request! - - - - - -
    - -
    -

    The following error occurred:

    -

    You have used invalid syntax.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/en/401.html b/interface/ispconfig/server/conf/error/en/401.html deleted file mode 100644 index 49c7b4780..000000000 --- a/interface/ispconfig/server/conf/error/en/401.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 401 - Unauthorized! - - - - - -
    - -
    -

    The following error occurred:

    -

    The URL requested requires authorisation.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/en/403.html b/interface/ispconfig/server/conf/error/en/403.html deleted file mode 100644 index 12934ce6d..000000000 --- a/interface/ispconfig/server/conf/error/en/403.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 403 - Forbidden! - - - - - -
    - -
    -

    The following error occurred:

    -

    You are not permitted to access the requested URL.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/en/404.html b/interface/ispconfig/server/conf/error/en/404.html deleted file mode 100644 index fb17b2ac3..000000000 --- a/interface/ispconfig/server/conf/error/en/404.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 404 - Not Found! - - - - - -
    - -
    -

    The following error occurred:

    -

    The requested URL was not found on this server.

    -

    Please check the URL or contact the webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/en/405.html b/interface/ispconfig/server/conf/error/en/405.html deleted file mode 100644 index e5f66a8fb..000000000 --- a/interface/ispconfig/server/conf/error/en/405.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 405 - Method Not Allowed! - - - - - -
    - -
    -

    The following error occurred:

    -

    The method used is not permitted.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/en/500.html b/interface/ispconfig/server/conf/error/en/500.html deleted file mode 100644 index 4413bf56a..000000000 --- a/interface/ispconfig/server/conf/error/en/500.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 500 - Internal Server Error! - - - - - -
    - -
    -

    The following error occurred:

    -

    The requested URL caused an internal server error.

    -

    If you get this message repeatedly please contact the webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/en/503.html b/interface/ispconfig/server/conf/error/en/503.html deleted file mode 100644 index 983ce2637..000000000 --- a/interface/ispconfig/server/conf/error/en/503.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 503 - Service Unavailable! - - - - - -
    - -
    -

    The following error occurred:

    -

    The Service is not available at the moment due to a temporary overloading or maintenance of the server. Please try again later.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/es/400.html b/interface/ispconfig/server/conf/error/es/400.html deleted file mode 100644 index f83ae5892..000000000 --- a/interface/ispconfig/server/conf/error/es/400.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 400 - Bad Request! - - - - - -
    - -
    -

    The following error occurred:

    -

    You have used invalid syntax.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/es/401.html b/interface/ispconfig/server/conf/error/es/401.html deleted file mode 100644 index 49c7b4780..000000000 --- a/interface/ispconfig/server/conf/error/es/401.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 401 - Unauthorized! - - - - - -
    - -
    -

    The following error occurred:

    -

    The URL requested requires authorisation.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/es/403.html b/interface/ispconfig/server/conf/error/es/403.html deleted file mode 100644 index 12934ce6d..000000000 --- a/interface/ispconfig/server/conf/error/es/403.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 403 - Forbidden! - - - - - -
    - -
    -

    The following error occurred:

    -

    You are not permitted to access the requested URL.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/es/404.html b/interface/ispconfig/server/conf/error/es/404.html deleted file mode 100644 index fb17b2ac3..000000000 --- a/interface/ispconfig/server/conf/error/es/404.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 404 - Not Found! - - - - - -
    - -
    -

    The following error occurred:

    -

    The requested URL was not found on this server.

    -

    Please check the URL or contact the webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/es/405.html b/interface/ispconfig/server/conf/error/es/405.html deleted file mode 100644 index e5f66a8fb..000000000 --- a/interface/ispconfig/server/conf/error/es/405.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 405 - Method Not Allowed! - - - - - -
    - -
    -

    The following error occurred:

    -

    The method used is not permitted.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/es/500.html b/interface/ispconfig/server/conf/error/es/500.html deleted file mode 100644 index 4413bf56a..000000000 --- a/interface/ispconfig/server/conf/error/es/500.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 500 - Internal Server Error! - - - - - -
    - -
    -

    The following error occurred:

    -

    The requested URL caused an internal server error.

    -

    If you get this message repeatedly please contact the webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/es/503.html b/interface/ispconfig/server/conf/error/es/503.html deleted file mode 100644 index 983ce2637..000000000 --- a/interface/ispconfig/server/conf/error/es/503.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 503 - Service Unavailable! - - - - - -
    - -
    -

    The following error occurred:

    -

    The Service is not available at the moment due to a temporary overloading or maintenance of the server. Please try again later.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/fi/400.html b/interface/ispconfig/server/conf/error/fi/400.html deleted file mode 100644 index aa667fa3f..000000000 --- a/interface/ispconfig/server/conf/error/fi/400.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - Virhe 400 - Virheellinen pyyntö! - - - - - -
    - -
    -

    Seuraava virhe tapahtui:

    -

    Olet käyttänyt virheellistä kirjoitusasua.

    -

    Ota yhteyttä ylläpitoon jos sinulla on kysyttävää.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/fi/401.html b/interface/ispconfig/server/conf/error/fi/401.html deleted file mode 100644 index 6846fa4fc..000000000 --- a/interface/ispconfig/server/conf/error/fi/401.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - Virhe 401 - Ei sallittu! - - - - - -
    - -
    -

    Seuraava virhe tapahtui:

    -

    Tämä URL-osoite tarvitsee tunnistaumisen.

    -

    Ota yhteyttä ylläpitoon jos sinulla on kysyttävää.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/fi/403.html b/interface/ispconfig/server/conf/error/fi/403.html deleted file mode 100644 index 156785eae..000000000 --- a/interface/ispconfig/server/conf/error/fi/403.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - Virhe 403 - Kielletty! - - - - - -
    - -
    -

    Seuraava virhe tapahtui:

    -

    Sinulle ei ole sallittu pääsy pyytämääsi URL-osoitteeseen.

    -

    Ota yhteyttä ylläpitoon jos sinulla on kysyttävää.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/fi/404.html b/interface/ispconfig/server/conf/error/fi/404.html deleted file mode 100644 index 79742a2c8..000000000 --- a/interface/ispconfig/server/conf/error/fi/404.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - Virhe 404 - Kohdetta ei löydy! - - - - - -
    - -
    -

    Seuraava virhe tapahtui:

    -

    Pyytämääsi URL-osoitetta ei löydy tältä palvelimelta.

    -

    Tarkista osoite tai ota yhteyttä ylläpitoon.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/fi/405.html b/interface/ispconfig/server/conf/error/fi/405.html deleted file mode 100644 index 8194b2470..000000000 --- a/interface/ispconfig/server/conf/error/fi/405.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - Virhe 405 - Metodi ei ole sallittu! - - - - - -
    - -
    -

    Seuraava virhe tapahtui:

    -

    Käyttämäsi metodi ei ole sallittu.

    -

    Ota yhteyttä ylläpitoon jos sinulla on kysyttävää.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/fi/500.html b/interface/ispconfig/server/conf/error/fi/500.html deleted file mode 100644 index 21c7ab5bd..000000000 --- a/interface/ispconfig/server/conf/error/fi/500.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - Virhe 500 - Palvelimen sisäinen virhe! - - - - - -
    - -
    -

    Seuraava virhe tapahtui:

    -

    Pyydetty URL-osoite aiheutti palvelimen sisäisen virheen.

    -

    Jos saat tämän virheen toistuvasti, ota yhteyttä ylläpitoon.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/fi/503.html b/interface/ispconfig/server/conf/error/fi/503.html deleted file mode 100644 index fa1281362..000000000 --- a/interface/ispconfig/server/conf/error/fi/503.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - Virhe 503 - Palvelu tavoittamattomissa! - - - - - -
    - -
    -

    Seuraava virhe tapahtui:

    -

    Palvelu ei ole tavoitettavissa hetkellisen ylikuormituksen tai huoltotoimenpiteiden vuoksi. Yritä myöhemmin uudelleen.

    -

    Ota yhteyttä ylläpitoon jos sinulla on kysyttävää.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/fr/400.html b/interface/ispconfig/server/conf/error/fr/400.html deleted file mode 100644 index f83ae5892..000000000 --- a/interface/ispconfig/server/conf/error/fr/400.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 400 - Bad Request! - - - - - -
    - -
    -

    The following error occurred:

    -

    You have used invalid syntax.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/fr/401.html b/interface/ispconfig/server/conf/error/fr/401.html deleted file mode 100644 index 49c7b4780..000000000 --- a/interface/ispconfig/server/conf/error/fr/401.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 401 - Unauthorized! - - - - - -
    - -
    -

    The following error occurred:

    -

    The URL requested requires authorisation.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/fr/403.html b/interface/ispconfig/server/conf/error/fr/403.html deleted file mode 100644 index 12934ce6d..000000000 --- a/interface/ispconfig/server/conf/error/fr/403.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 403 - Forbidden! - - - - - -
    - -
    -

    The following error occurred:

    -

    You are not permitted to access the requested URL.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/fr/404.html b/interface/ispconfig/server/conf/error/fr/404.html deleted file mode 100644 index fb17b2ac3..000000000 --- a/interface/ispconfig/server/conf/error/fr/404.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 404 - Not Found! - - - - - -
    - -
    -

    The following error occurred:

    -

    The requested URL was not found on this server.

    -

    Please check the URL or contact the webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/fr/405.html b/interface/ispconfig/server/conf/error/fr/405.html deleted file mode 100644 index e5f66a8fb..000000000 --- a/interface/ispconfig/server/conf/error/fr/405.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 405 - Method Not Allowed! - - - - - -
    - -
    -

    The following error occurred:

    -

    The method used is not permitted.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/fr/500.html b/interface/ispconfig/server/conf/error/fr/500.html deleted file mode 100644 index 4413bf56a..000000000 --- a/interface/ispconfig/server/conf/error/fr/500.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 500 - Internal Server Error! - - - - - -
    - -
    -

    The following error occurred:

    -

    The requested URL caused an internal server error.

    -

    If you get this message repeatedly please contact the webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/fr/503.html b/interface/ispconfig/server/conf/error/fr/503.html deleted file mode 100644 index 983ce2637..000000000 --- a/interface/ispconfig/server/conf/error/fr/503.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 503 - Service Unavailable! - - - - - -
    - -
    -

    The following error occurred:

    -

    The Service is not available at the moment due to a temporary overloading or maintenance of the server. Please try again later.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/gr/400.html b/interface/ispconfig/server/conf/error/gr/400.html deleted file mode 100644 index f83ae5892..000000000 --- a/interface/ispconfig/server/conf/error/gr/400.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 400 - Bad Request! - - - - - -
    - -
    -

    The following error occurred:

    -

    You have used invalid syntax.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/gr/401.html b/interface/ispconfig/server/conf/error/gr/401.html deleted file mode 100644 index 49c7b4780..000000000 --- a/interface/ispconfig/server/conf/error/gr/401.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 401 - Unauthorized! - - - - - -
    - -
    -

    The following error occurred:

    -

    The URL requested requires authorisation.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/gr/403.html b/interface/ispconfig/server/conf/error/gr/403.html deleted file mode 100644 index 12934ce6d..000000000 --- a/interface/ispconfig/server/conf/error/gr/403.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 403 - Forbidden! - - - - - -
    - -
    -

    The following error occurred:

    -

    You are not permitted to access the requested URL.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/gr/404.html b/interface/ispconfig/server/conf/error/gr/404.html deleted file mode 100644 index fb17b2ac3..000000000 --- a/interface/ispconfig/server/conf/error/gr/404.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 404 - Not Found! - - - - - -
    - -
    -

    The following error occurred:

    -

    The requested URL was not found on this server.

    -

    Please check the URL or contact the webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/gr/405.html b/interface/ispconfig/server/conf/error/gr/405.html deleted file mode 100644 index e5f66a8fb..000000000 --- a/interface/ispconfig/server/conf/error/gr/405.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 405 - Method Not Allowed! - - - - - -
    - -
    -

    The following error occurred:

    -

    The method used is not permitted.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/gr/500.html b/interface/ispconfig/server/conf/error/gr/500.html deleted file mode 100644 index 4413bf56a..000000000 --- a/interface/ispconfig/server/conf/error/gr/500.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 500 - Internal Server Error! - - - - - -
    - -
    -

    The following error occurred:

    -

    The requested URL caused an internal server error.

    -

    If you get this message repeatedly please contact the webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/gr/503.html b/interface/ispconfig/server/conf/error/gr/503.html deleted file mode 100644 index 983ce2637..000000000 --- a/interface/ispconfig/server/conf/error/gr/503.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 503 - Service Unavailable! - - - - - -
    - -
    -

    The following error occurred:

    -

    The Service is not available at the moment due to a temporary overloading or maintenance of the server. Please try again later.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/hu/400.html b/interface/ispconfig/server/conf/error/hu/400.html deleted file mode 100644 index f83ae5892..000000000 --- a/interface/ispconfig/server/conf/error/hu/400.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 400 - Bad Request! - - - - - -
    - -
    -

    The following error occurred:

    -

    You have used invalid syntax.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/hu/401.html b/interface/ispconfig/server/conf/error/hu/401.html deleted file mode 100644 index 49c7b4780..000000000 --- a/interface/ispconfig/server/conf/error/hu/401.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 401 - Unauthorized! - - - - - -
    - -
    -

    The following error occurred:

    -

    The URL requested requires authorisation.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/hu/403.html b/interface/ispconfig/server/conf/error/hu/403.html deleted file mode 100644 index 12934ce6d..000000000 --- a/interface/ispconfig/server/conf/error/hu/403.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 403 - Forbidden! - - - - - -
    - -
    -

    The following error occurred:

    -

    You are not permitted to access the requested URL.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/hu/404.html b/interface/ispconfig/server/conf/error/hu/404.html deleted file mode 100644 index fb17b2ac3..000000000 --- a/interface/ispconfig/server/conf/error/hu/404.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 404 - Not Found! - - - - - -
    - -
    -

    The following error occurred:

    -

    The requested URL was not found on this server.

    -

    Please check the URL or contact the webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/hu/405.html b/interface/ispconfig/server/conf/error/hu/405.html deleted file mode 100644 index e5f66a8fb..000000000 --- a/interface/ispconfig/server/conf/error/hu/405.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 405 - Method Not Allowed! - - - - - -
    - -
    -

    The following error occurred:

    -

    The method used is not permitted.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/hu/500.html b/interface/ispconfig/server/conf/error/hu/500.html deleted file mode 100644 index 4413bf56a..000000000 --- a/interface/ispconfig/server/conf/error/hu/500.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 500 - Internal Server Error! - - - - - -
    - -
    -

    The following error occurred:

    -

    The requested URL caused an internal server error.

    -

    If you get this message repeatedly please contact the webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/hu/503.html b/interface/ispconfig/server/conf/error/hu/503.html deleted file mode 100644 index 983ce2637..000000000 --- a/interface/ispconfig/server/conf/error/hu/503.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 503 - Service Unavailable! - - - - - -
    - -
    -

    The following error occurred:

    -

    The Service is not available at the moment due to a temporary overloading or maintenance of the server. Please try again later.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/it/400.html b/interface/ispconfig/server/conf/error/it/400.html deleted file mode 100644 index be1f24625..000000000 --- a/interface/ispconfig/server/conf/error/it/400.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 400 - Sintassi non corretta! - - - - - -
    - -
    -

    Si è verificato il seguente errore:

    -

    Hai usato una sintassi non corretta.

    -

    Contatta il webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/it/401.html b/interface/ispconfig/server/conf/error/it/401.html deleted file mode 100644 index b7e2d7ce7..000000000 --- a/interface/ispconfig/server/conf/error/it/401.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 401 - Autorizzazione richiesta! - - - - - -
    - -
    -

    Si è verificato il seguente errore:

    -

    Autorizzazione necessaria per accedere all'indirizzo richiesto.

    -

    Contatta il webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/it/403.html b/interface/ispconfig/server/conf/error/it/403.html deleted file mode 100644 index 662c379ac..000000000 --- a/interface/ispconfig/server/conf/error/it/403.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 403 - Accesso Negato! - - - - - -
    - -
    -

    Si è verificato il seguente errore:

    -

    Non si possiedono i permessi per accedere all'indirizzo richiesto.

    -

    Contatta il webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/it/404.html b/interface/ispconfig/server/conf/error/it/404.html deleted file mode 100644 index a4b5634c2..000000000 --- a/interface/ispconfig/server/conf/error/it/404.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 404 - Non trovato! - - - - - -
    - -
    -

    Si è verificato il seguente errore:

    -

    L'indirizzo richiesto non è stato trovato in questo server.

    -

    Contatta il webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/it/405.html b/interface/ispconfig/server/conf/error/it/405.html deleted file mode 100644 index 40cb8e695..000000000 --- a/interface/ispconfig/server/conf/error/it/405.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 405 - Metodo non consentito! - - - - - -
    - -
    -

    Si è verificato il seguente errore:

    -

    Il metodo usato non è consentito.

    -

    Contatta il webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/it/500.html b/interface/ispconfig/server/conf/error/it/500.html deleted file mode 100644 index cbb0b33a8..000000000 --- a/interface/ispconfig/server/conf/error/it/500.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 500 - Errore Interno del Server! - - - - - -
    - -
    -

    Si è verificato il seguente errore:

    -

    L'indirizzo richiesto ha causato un errore interno del server.

    -

    Se questo messaggio si ripete, contattare il webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/it/503.html b/interface/ispconfig/server/conf/error/it/503.html deleted file mode 100644 index 7268ab502..000000000 --- a/interface/ispconfig/server/conf/error/it/503.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 503 - Servizio non disponibile! - - - - - -
    - -
    -

    Si è verificato il seguente errore:

    -

    Il sistema è momentaneamente non disponibile per sovraccaricato o manutenzione. Riprova più tardi.

    -

    Contatta il webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/nl/400.html b/interface/ispconfig/server/conf/error/nl/400.html deleted file mode 100644 index f83ae5892..000000000 --- a/interface/ispconfig/server/conf/error/nl/400.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 400 - Bad Request! - - - - - -
    - -
    -

    The following error occurred:

    -

    You have used invalid syntax.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/nl/401.html b/interface/ispconfig/server/conf/error/nl/401.html deleted file mode 100644 index 49c7b4780..000000000 --- a/interface/ispconfig/server/conf/error/nl/401.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 401 - Unauthorized! - - - - - -
    - -
    -

    The following error occurred:

    -

    The URL requested requires authorisation.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/nl/403.html b/interface/ispconfig/server/conf/error/nl/403.html deleted file mode 100644 index 12934ce6d..000000000 --- a/interface/ispconfig/server/conf/error/nl/403.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 403 - Forbidden! - - - - - -
    - -
    -

    The following error occurred:

    -

    You are not permitted to access the requested URL.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/nl/404.html b/interface/ispconfig/server/conf/error/nl/404.html deleted file mode 100644 index fb17b2ac3..000000000 --- a/interface/ispconfig/server/conf/error/nl/404.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 404 - Not Found! - - - - - -
    - -
    -

    The following error occurred:

    -

    The requested URL was not found on this server.

    -

    Please check the URL or contact the webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/nl/405.html b/interface/ispconfig/server/conf/error/nl/405.html deleted file mode 100644 index e5f66a8fb..000000000 --- a/interface/ispconfig/server/conf/error/nl/405.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 405 - Method Not Allowed! - - - - - -
    - -
    -

    The following error occurred:

    -

    The method used is not permitted.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/nl/500.html b/interface/ispconfig/server/conf/error/nl/500.html deleted file mode 100644 index 4413bf56a..000000000 --- a/interface/ispconfig/server/conf/error/nl/500.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 500 - Internal Server Error! - - - - - -
    - -
    -

    The following error occurred:

    -

    The requested URL caused an internal server error.

    -

    If you get this message repeatedly please contact the webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/nl/503.html b/interface/ispconfig/server/conf/error/nl/503.html deleted file mode 100644 index 983ce2637..000000000 --- a/interface/ispconfig/server/conf/error/nl/503.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 503 - Service Unavailable! - - - - - -
    - -
    -

    The following error occurred:

    -

    The Service is not available at the moment due to a temporary overloading or maintenance of the server. Please try again later.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/pl/400.html b/interface/ispconfig/server/conf/error/pl/400.html deleted file mode 100644 index f83ae5892..000000000 --- a/interface/ispconfig/server/conf/error/pl/400.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 400 - Bad Request! - - - - - -
    - -
    -

    The following error occurred:

    -

    You have used invalid syntax.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/pl/401.html b/interface/ispconfig/server/conf/error/pl/401.html deleted file mode 100644 index 49c7b4780..000000000 --- a/interface/ispconfig/server/conf/error/pl/401.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 401 - Unauthorized! - - - - - -
    - -
    -

    The following error occurred:

    -

    The URL requested requires authorisation.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/pl/403.html b/interface/ispconfig/server/conf/error/pl/403.html deleted file mode 100644 index 12934ce6d..000000000 --- a/interface/ispconfig/server/conf/error/pl/403.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 403 - Forbidden! - - - - - -
    - -
    -

    The following error occurred:

    -

    You are not permitted to access the requested URL.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/pl/404.html b/interface/ispconfig/server/conf/error/pl/404.html deleted file mode 100644 index fb17b2ac3..000000000 --- a/interface/ispconfig/server/conf/error/pl/404.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 404 - Not Found! - - - - - -
    - -
    -

    The following error occurred:

    -

    The requested URL was not found on this server.

    -

    Please check the URL or contact the webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/pl/405.html b/interface/ispconfig/server/conf/error/pl/405.html deleted file mode 100644 index e5f66a8fb..000000000 --- a/interface/ispconfig/server/conf/error/pl/405.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 405 - Method Not Allowed! - - - - - -
    - -
    -

    The following error occurred:

    -

    The method used is not permitted.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/pl/500.html b/interface/ispconfig/server/conf/error/pl/500.html deleted file mode 100644 index 4413bf56a..000000000 --- a/interface/ispconfig/server/conf/error/pl/500.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 500 - Internal Server Error! - - - - - -
    - -
    -

    The following error occurred:

    -

    The requested URL caused an internal server error.

    -

    If you get this message repeatedly please contact the webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/pl/503.html b/interface/ispconfig/server/conf/error/pl/503.html deleted file mode 100644 index 983ce2637..000000000 --- a/interface/ispconfig/server/conf/error/pl/503.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 503 - Service Unavailable! - - - - - -
    - -
    -

    The following error occurred:

    -

    The Service is not available at the moment due to a temporary overloading or maintenance of the server. Please try again later.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/se/400.html b/interface/ispconfig/server/conf/error/se/400.html deleted file mode 100644 index f83ae5892..000000000 --- a/interface/ispconfig/server/conf/error/se/400.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 400 - Bad Request! - - - - - -
    - -
    -

    The following error occurred:

    -

    You have used invalid syntax.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/se/401.html b/interface/ispconfig/server/conf/error/se/401.html deleted file mode 100644 index 49c7b4780..000000000 --- a/interface/ispconfig/server/conf/error/se/401.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 401 - Unauthorized! - - - - - -
    - -
    -

    The following error occurred:

    -

    The URL requested requires authorisation.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/se/403.html b/interface/ispconfig/server/conf/error/se/403.html deleted file mode 100644 index 12934ce6d..000000000 --- a/interface/ispconfig/server/conf/error/se/403.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 403 - Forbidden! - - - - - -
    - -
    -

    The following error occurred:

    -

    You are not permitted to access the requested URL.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/se/404.html b/interface/ispconfig/server/conf/error/se/404.html deleted file mode 100644 index fb17b2ac3..000000000 --- a/interface/ispconfig/server/conf/error/se/404.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 404 - Not Found! - - - - - -
    - -
    -

    The following error occurred:

    -

    The requested URL was not found on this server.

    -

    Please check the URL or contact the webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/se/405.html b/interface/ispconfig/server/conf/error/se/405.html deleted file mode 100644 index e5f66a8fb..000000000 --- a/interface/ispconfig/server/conf/error/se/405.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 405 - Method Not Allowed! - - - - - -
    - -
    -

    The following error occurred:

    -

    The method used is not permitted.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/se/500.html b/interface/ispconfig/server/conf/error/se/500.html deleted file mode 100644 index 4413bf56a..000000000 --- a/interface/ispconfig/server/conf/error/se/500.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 500 - Internal Server Error! - - - - - -
    - -
    -

    The following error occurred:

    -

    The requested URL caused an internal server error.

    -

    If you get this message repeatedly please contact the webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/se/503.html b/interface/ispconfig/server/conf/error/se/503.html deleted file mode 100644 index 983ce2637..000000000 --- a/interface/ispconfig/server/conf/error/se/503.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 503 - Service Unavailable! - - - - - -
    - -
    -

    The following error occurred:

    -

    The Service is not available at the moment due to a temporary overloading or maintenance of the server. Please try again later.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/si/400.html b/interface/ispconfig/server/conf/error/si/400.html deleted file mode 100644 index f83ae5892..000000000 --- a/interface/ispconfig/server/conf/error/si/400.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 400 - Bad Request! - - - - - -
    - -
    -

    The following error occurred:

    -

    You have used invalid syntax.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/si/401.html b/interface/ispconfig/server/conf/error/si/401.html deleted file mode 100644 index 49c7b4780..000000000 --- a/interface/ispconfig/server/conf/error/si/401.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 401 - Unauthorized! - - - - - -
    - -
    -

    The following error occurred:

    -

    The URL requested requires authorisation.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/si/403.html b/interface/ispconfig/server/conf/error/si/403.html deleted file mode 100644 index 12934ce6d..000000000 --- a/interface/ispconfig/server/conf/error/si/403.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 403 - Forbidden! - - - - - -
    - -
    -

    The following error occurred:

    -

    You are not permitted to access the requested URL.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/si/404.html b/interface/ispconfig/server/conf/error/si/404.html deleted file mode 100644 index fb17b2ac3..000000000 --- a/interface/ispconfig/server/conf/error/si/404.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 404 - Not Found! - - - - - -
    - -
    -

    The following error occurred:

    -

    The requested URL was not found on this server.

    -

    Please check the URL or contact the webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/si/405.html b/interface/ispconfig/server/conf/error/si/405.html deleted file mode 100644 index e5f66a8fb..000000000 --- a/interface/ispconfig/server/conf/error/si/405.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 405 - Method Not Allowed! - - - - - -
    - -
    -

    The following error occurred:

    -

    The method used is not permitted.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/si/500.html b/interface/ispconfig/server/conf/error/si/500.html deleted file mode 100644 index 4413bf56a..000000000 --- a/interface/ispconfig/server/conf/error/si/500.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 500 - Internal Server Error! - - - - - -
    - -
    -

    The following error occurred:

    -

    The requested URL caused an internal server error.

    -

    If you get this message repeatedly please contact the webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/si/503.html b/interface/ispconfig/server/conf/error/si/503.html deleted file mode 100644 index 983ce2637..000000000 --- a/interface/ispconfig/server/conf/error/si/503.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 503 - Service Unavailable! - - - - - -
    - -
    -

    The following error occurred:

    -

    The Service is not available at the moment due to a temporary overloading or maintenance of the server. Please try again later.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/sr/400.html b/interface/ispconfig/server/conf/error/sr/400.html deleted file mode 100644 index f83ae5892..000000000 --- a/interface/ispconfig/server/conf/error/sr/400.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 400 - Bad Request! - - - - - -
    - -
    -

    The following error occurred:

    -

    You have used invalid syntax.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/sr/401.html b/interface/ispconfig/server/conf/error/sr/401.html deleted file mode 100644 index 49c7b4780..000000000 --- a/interface/ispconfig/server/conf/error/sr/401.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 401 - Unauthorized! - - - - - -
    - -
    -

    The following error occurred:

    -

    The URL requested requires authorisation.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/sr/403.html b/interface/ispconfig/server/conf/error/sr/403.html deleted file mode 100644 index 12934ce6d..000000000 --- a/interface/ispconfig/server/conf/error/sr/403.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 403 - Forbidden! - - - - - -
    - -
    -

    The following error occurred:

    -

    You are not permitted to access the requested URL.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/sr/404.html b/interface/ispconfig/server/conf/error/sr/404.html deleted file mode 100644 index fb17b2ac3..000000000 --- a/interface/ispconfig/server/conf/error/sr/404.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 404 - Not Found! - - - - - -
    - -
    -

    The following error occurred:

    -

    The requested URL was not found on this server.

    -

    Please check the URL or contact the webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/sr/405.html b/interface/ispconfig/server/conf/error/sr/405.html deleted file mode 100644 index e5f66a8fb..000000000 --- a/interface/ispconfig/server/conf/error/sr/405.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 405 - Method Not Allowed! - - - - - -
    - -
    -

    The following error occurred:

    -

    The method used is not permitted.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/sr/500.html b/interface/ispconfig/server/conf/error/sr/500.html deleted file mode 100644 index 4413bf56a..000000000 --- a/interface/ispconfig/server/conf/error/sr/500.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 500 - Internal Server Error! - - - - - -
    - -
    -

    The following error occurred:

    -

    The requested URL caused an internal server error.

    -

    If you get this message repeatedly please contact the webmaster.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/error/sr/503.html b/interface/ispconfig/server/conf/error/sr/503.html deleted file mode 100644 index 983ce2637..000000000 --- a/interface/ispconfig/server/conf/error/sr/503.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - ERROR 503 - Service Unavailable! - - - - - -
    - -
    -

    The following error occurred:

    -

    The Service is not available at the moment due to a temporary overloading or maintenance of the server. Please try again later.

    -

    Please contact the webmaster with any queries.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/gentoo_network_interfaces.master b/interface/ispconfig/server/conf/gentoo_network_interfaces.master deleted file mode 100644 index cca4f08a8..000000000 --- a/interface/ispconfig/server/conf/gentoo_network_interfaces.master +++ /dev/null @@ -1,13 +0,0 @@ -# This file describes the network interfaces available on your system -# and how to activate them. For more information, see interfaces(5). - -config_eth0=( - " netmask broadcast " - - - " netmask broadcast " - - -); - -routes_eth0=( "default via " ) diff --git a/interface/ispconfig/server/conf/getmail.conf.master b/interface/ispconfig/server/conf/getmail.conf.master deleted file mode 100644 index 2f48d76b3..000000000 --- a/interface/ispconfig/server/conf/getmail.conf.master +++ /dev/null @@ -1,16 +0,0 @@ -[options] -# message_log = /var/log/getmail.log -message_log_syslog = 1 -delete = {DELETE} - -[retriever] -type = {TYPE} -server = {SERVER} -username = {USERNAME} -password = {PASSWORD} - -[destination] -type = MDA_external -path = /usr/sbin/sendmail -arguments = ("-i", "-bm", "{DESTINATION}") -unixfrom = true \ No newline at end of file diff --git a/interface/ispconfig/server/conf/index/.htaccess b/interface/ispconfig/server/conf/index/.htaccess deleted file mode 100644 index e69de29bb..000000000 diff --git a/interface/ispconfig/server/conf/index/favicon.ico b/interface/ispconfig/server/conf/index/favicon.ico deleted file mode 100644 index da6257c84cce5c550eb7118581ed2a22f15af248..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1406 zcmeH_Sxl5y6vzL!*4AoOwAHFiof!oc0gFpZTWqzpwSq7+ezSbczOW1o%Py^e~16f{eD0E{?}MuUc#$a^LYMz22)d$ z7$5%!KA#sQE*Bb`n^9C;46o0JM~@%lVP_}qKX`yUckklH&6{X!YQmL<2GrHp!|m}v zrPe^fCqi#B!)nWb&R|5MMhjbJ7Sd>KO}D|4oC1?22?jc&H=0mTScIHhC$e)KI3rg= z#wj3?aZqdZ6srTT)aJCS6`2}$1QVPtLWSEH0NPGsPnQG@E+wMSS zmK`cygVxroC@pm%pBP`fc!~c00eHPWJbUKFlP6En+1Z7A_wJ*;{cqg5bsN{NT}Mkx zE1HS9j#%Ap4^~!INUvoqEiGYjaS;m(3z(mu$K2c;W@l$HGc$wf>1on&3X_wQn3$L# zJ;yONHipsBQH+d?V0d^KLqkIt92~^JzyNXdqpz&ND@k=3d0w8wG85%;ak?x27%!La5<1xDJA}dmp9B@3*d-M17dhFF z!6K39P(;P2`$eK)@mc2nVw-sDh7#x6V6pgMR3$4ptP4A>Ik|4f!Kf%n*k;BqBpmws zx8pSzC1GK);ZbJBOnG*?LRD;d_@0QpD$6RyK5!Hy{k$h4A~HU5pJey1Cr^EQI4&+S JKK@ - - - Bem-Vindo! - - - - - - -
    - -
    -

    Esta é a página index padrão de seu site.

    -

    Este arquivo pode ser reescrito ou subistituído sem quaisquer dificuldades. Esta página é produzida pelo arquivo index.html contido no diretório web.

    -

    Tendo quaisquer dúvidas ou problemas contate o suporte.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/standard_index.html_cz b/interface/ispconfig/server/conf/index/standard_index.html_cz deleted file mode 100644 index f9077b41c..000000000 --- a/interface/ispconfig/server/conf/index/standard_index.html_cz +++ /dev/null @@ -1,60 +0,0 @@ - - - - Vitejte! - - - - - - -
    - -
    -

    Toto je standardni stranka Vaseho webu.

    -

    Muzete ji bez obav vymazat nebo nahradit jinym souborem. Toto je soubor index.html v adresari web.

    -

    Pokud mate jakekoliv dotazy prosim kontaktuje Support.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/standard_index.html_de b/interface/ispconfig/server/conf/index/standard_index.html_de deleted file mode 100644 index ad5661831..000000000 --- a/interface/ispconfig/server/conf/index/standard_index.html_de +++ /dev/null @@ -1,60 +0,0 @@ - - - - Herzlich Willkommen! - - - - - - -
    - -
    -

    Dies ist die Standard-Index-Seite Ihres Webs.

    -

    Sie können sie problemlos löschen oder durch eine andere Seite ersetzen. Es handelt sich hierbei um die Datei index.html im Verzeichnis web.

    -

    Bei Fragen oder Problemen wenden Sie sich bitte an den Support.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/standard_index.html_en b/interface/ispconfig/server/conf/index/standard_index.html_en deleted file mode 100644 index 186ea25bd..000000000 --- a/interface/ispconfig/server/conf/index/standard_index.html_en +++ /dev/null @@ -1,60 +0,0 @@ - - - - Welcome! - - - - - - -
    - -
    -

    This is the default index page of your website.

    -

    This file may be deleted or overwritten without any difficulty. This is produced by the file index.html in the web directory.

    -

    For questions or problems please contact support.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/standard_index.html_es b/interface/ispconfig/server/conf/index/standard_index.html_es deleted file mode 100644 index 0071036ed..000000000 --- a/interface/ispconfig/server/conf/index/standard_index.html_es +++ /dev/null @@ -1,60 +0,0 @@ - - - - Bienvenido! - - - - - - -
    - -
    -

    Esta es la página principal del sitio.

    -

    Puede cambiarla por otra simplemente reemplazando este archivo. This is produced by the file index.html in the web directory.

    -

    Si tiene dudas o problemas, porfavor contacte al support.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/standard_index.html_fi b/interface/ispconfig/server/conf/index/standard_index.html_fi deleted file mode 100644 index e34f57a27..000000000 --- a/interface/ispconfig/server/conf/index/standard_index.html_fi +++ /dev/null @@ -1,60 +0,0 @@ - - - - Tervetuloa! - - - - - - -
    - -
    -

    Tämä on sivustosi oletusaloitussivu.

    -

    Tämä sivu voidaan poistaa tai vaihtaa ilman mitään vaikeuksia. Tämä sivu on index.html-tiedosto kotihakemistosi web-kansiossa.

    -

    Jos sinulla on ongelmia tai kysyttävää, ota yhteyttä asiakastukeen.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/standard_index.html_fr b/interface/ispconfig/server/conf/index/standard_index.html_fr deleted file mode 100644 index 8615dba11..000000000 --- a/interface/ispconfig/server/conf/index/standard_index.html_fr +++ /dev/null @@ -1,60 +0,0 @@ - - - - Bienvenue! - - - - - - -
    - -
    -

    Ceci est la page d'index standard de votre site.

    -

    Vous pouvez facilement effacer ou remplacer ce fichier. C'est le fichier index.html dans le dossier web.

    -

    Pour tous problèmes ou questions, merci de contacter le support.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/standard_index.html_gr b/interface/ispconfig/server/conf/index/standard_index.html_gr deleted file mode 100644 index 41751e169..000000000 --- a/interface/ispconfig/server/conf/index/standard_index.html_gr +++ /dev/null @@ -1,60 +0,0 @@ - - - - Êáëþò Þñèáôå! - - - - - - -
    - -
    -

    ÃõôÞ åßíáé ç ðñïåðéëåãìÃíç áñ÷éêÞ óåëßäá ôïõ äéêôõáêïý óáò ôüðïõ.

    -

    Ìðïñåßôå åýêïëá íá ôç äéáãñÜøåôå Þ áíôéêáôáóôÞóåôå ìå Üëëï áñ÷åßï. Ãõôü åßíáé ôï index.html áñ÷åßï óôï web öÜêåëï.

    -

    Ãéá áðïñßåò Þ ðñïâëÞìáôá ðáñáêáëþ åðéêïéíùíÞóôå ìå ôï äéá÷åéñéóôÞ.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/standard_index.html_hu b/interface/ispconfig/server/conf/index/standard_index.html_hu deleted file mode 100644 index 33444ec7b..000000000 --- a/interface/ispconfig/server/conf/index/standard_index.html_hu +++ /dev/null @@ -1,60 +0,0 @@ - - - - Üdvözöljük! - - - - - - -
    - -
    -

    Ez az oldal az Ön weboldalának eredeti kezdõoldala.

    -

    Ezt az oldalt Ön igényei szerint módosíthatja, akár le is törölheti. Megtalálja ezt az állományt a web könyvtárban index.html néven.

    -

    Kérdéseivel, kérjük, forduljon a support.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/standard_index.html_it b/interface/ispconfig/server/conf/index/standard_index.html_it deleted file mode 100644 index 141bbb9e2..000000000 --- a/interface/ispconfig/server/conf/index/standard_index.html_it +++ /dev/null @@ -1,60 +0,0 @@ - - - - Benvenuti! - - - - - - -
    - -
    -

    Questa è la pagina predefinita.

    -

    Questo file può essere cancellato o sovrascritto senza nessun problema. Questo è prodotto dal file index.html nella cartella web.

    -

    Per domande o problemi contattate il supporto.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/standard_index.html_nl b/interface/ispconfig/server/conf/index/standard_index.html_nl deleted file mode 100644 index 9a0d660db..000000000 --- a/interface/ispconfig/server/conf/index/standard_index.html_nl +++ /dev/null @@ -1,60 +0,0 @@ - - - - Welkom! - - - - - - -
    - -
    -

    Dit is de standaard indexpagina van uw website.

    -

    U kunt deze op eenvoudige wijze verwijderen en vervangen door een ander bestand. Dit is het index.html bestand in de web directorie.

    -

    Voor vragen of problemen kunt u contact opnemen met de support.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/standard_index.html_pl b/interface/ispconfig/server/conf/index/standard_index.html_pl deleted file mode 100644 index e657b3842..000000000 --- a/interface/ispconfig/server/conf/index/standard_index.html_pl +++ /dev/null @@ -1,60 +0,0 @@ - - - - Welcome! - - - - - - -
    - -
    -

    This is the default index page of your website.

    -

    This file may be deleted or overwritten without any difficulty. This is produced by the file index.html in the web directory.

    -

    For questions or problems please contact the support.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/standard_index.html_se b/interface/ispconfig/server/conf/index/standard_index.html_se deleted file mode 100644 index 6a217475a..000000000 --- a/interface/ispconfig/server/conf/index/standard_index.html_se +++ /dev/null @@ -1,60 +0,0 @@ - - - - Välkommen! - - - - - - -
    - -
    -

    Detta är en standard index sida på din webbplats.

    -

    Du kan antingen ta bort den eller ersätta den med en annan fil. Detta är en index.html fil i web mappen.

    -

    För frågor eller problem runt detta kontakta support.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/standard_index.html_sr b/interface/ispconfig/server/conf/index/standard_index.html_sr deleted file mode 100644 index 07a88b85b..000000000 --- a/interface/ispconfig/server/conf/index/standard_index.html_sr +++ /dev/null @@ -1,60 +0,0 @@ - - - - Dobrodošli! - - - - - - -
    - -
    -

    Ovo je standardna indeksna strana vaše internet prezentacije.

    -

    Možete je lako obrisati ili zameniti sa nekom drugom datotekom. Ovo je index.html datoteka u web directory.

    -

    Kontaktirajte support u vezi pitanja i problema.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/user_standard_index.html_br b/interface/ispconfig/server/conf/index/user_standard_index.html_br deleted file mode 100644 index 88cc913e9..000000000 --- a/interface/ispconfig/server/conf/index/user_standard_index.html_br +++ /dev/null @@ -1,60 +0,0 @@ - - - - Bem-Vindo! - - - - - - -
    - -
    -

    Esta é a página index padrão para o usuário {USER_USERNAME}.

    -

    Este arquivo pode ser reescrito ou subistituído sem quaisquer dificuldades. Esta página é produzida pelo arquivo index.html no diretório user/{USER_USERNAME}/web.

    -

    Tendo quaisquer dúvidas ou problemas contate o suporte.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/user_standard_index.html_cz b/interface/ispconfig/server/conf/index/user_standard_index.html_cz deleted file mode 100644 index 0be2ca0ad..000000000 --- a/interface/ispconfig/server/conf/index/user_standard_index.html_cz +++ /dev/null @@ -1,60 +0,0 @@ - - - - Vitejte! - - - - - - -
    - -
    -

    Toto je standardni stranka Vaseho webu {USER_USERNAME}

    -

    Muzete ji bez obav vymazat nebo nahradit jinym souborem. Toto je soubor index.html v adresari user/{USER_USERNAME}/web.

    -

    Pokud mate jakekoliv dotazy prosim kontaktuje Support.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/user_standard_index.html_de b/interface/ispconfig/server/conf/index/user_standard_index.html_de deleted file mode 100644 index 6264631b4..000000000 --- a/interface/ispconfig/server/conf/index/user_standard_index.html_de +++ /dev/null @@ -1,60 +0,0 @@ - - - - Herzlich Willkommen! - - - - - - -
    - -
    -

    Dies ist die Standard-Index-Seite von Benutzer {USER_USERNAME}.

    -

    Sie können sie problemlos löschen oder durch eine andere Seite ersetzen. Es handelt sich hierbei um die Datei index.html im Verzeichnis user/{USER_USERNAME}/web.

    -

    Bei Fragen oder Problemen wenden Sie sich bitte an den Support.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/user_standard_index.html_en b/interface/ispconfig/server/conf/index/user_standard_index.html_en deleted file mode 100644 index bb3a7aa5a..000000000 --- a/interface/ispconfig/server/conf/index/user_standard_index.html_en +++ /dev/null @@ -1,60 +0,0 @@ - - - - Welcome! - - - - - - -
    - -
    -

    This is the default index page for user {USER_USERNAME}.

    -

    This file may be deleted or overwritten without any difficulty. This is produced by the file index.html in the user/{USER_USERNAME}/web directory.

    -

    For questions or problems please contact the support.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/user_standard_index.html_es b/interface/ispconfig/server/conf/index/user_standard_index.html_es deleted file mode 100644 index ccd4f37eb..000000000 --- a/interface/ispconfig/server/conf/index/user_standard_index.html_es +++ /dev/null @@ -1,60 +0,0 @@ - - - - Bienvenido! - - - - - - -
    - -
    -

    Esta es la página indice de la cuenta {USER_USERNAME}.

    -

    Puede cambiarla por otra simplemente reemplazando este archivo. This is produced by the file index.html in the user/{USER_USERNAME}/web directory.

    -

    Si tiene dudas o problemas, porfavor contacte al support.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/user_standard_index.html_fi b/interface/ispconfig/server/conf/index/user_standard_index.html_fi deleted file mode 100644 index 14cd51576..000000000 --- a/interface/ispconfig/server/conf/index/user_standard_index.html_fi +++ /dev/null @@ -1,60 +0,0 @@ - - - - Tervetuloa! - - - - - - -
    - -
    -

    Tämä on käyttäjän {USER_USERNAME}oletusaloitussivu.

    -

    Tämä sivu voidaan poistaa tai vaihtaa ilman mitään vaikeuksia. Tämä sivu on index.html-tiedosto sivuston user/{USER_USERNAME}/web-kansiossa.

    -

    Jos sinulla on ongelmia tai kysyttävää, ota yhteyttä asiakastukeen.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/user_standard_index.html_fr b/interface/ispconfig/server/conf/index/user_standard_index.html_fr deleted file mode 100644 index 8c074c099..000000000 --- a/interface/ispconfig/server/conf/index/user_standard_index.html_fr +++ /dev/null @@ -1,60 +0,0 @@ - - - - Bienvenue! - - - - - - -
    - -
    -

    Ceci est la page d'index standard de l'utilisateur {USER_USERNAME}.

    -

    Vous pouvez facilement effacer ou remplacer ce fichier. C'est le fichier index.html dans le dossier user/{USER_USERNAME}/web.

    -

    Pour tous problèmes ou questions, merci de contacter le support.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/user_standard_index.html_gr b/interface/ispconfig/server/conf/index/user_standard_index.html_gr deleted file mode 100644 index 63f16a46f..000000000 --- a/interface/ispconfig/server/conf/index/user_standard_index.html_gr +++ /dev/null @@ -1,60 +0,0 @@ - - - - Êáëþò Þñèáôå! - - - - - - -
    - -
    -

    ÃõôÞ åßíáé ç ðñïåðéëåãìÃíç áñ÷éêÞ óåëßäá ãéá ôï ÷ñÞóôç {USER_USERNAME}.

    -

    Ìðïñåßôå åýêïëá íá ôç äéáãñÜøåôå Þ áíôéêáôáóôÞóåôå ìå Üëëï áñ÷åßï. Ãõôü åßíáé ôï index.html áñ÷åßï óôï user/{USER_USERNAME}/web öÜêåëï.

    -

    Ãéá áðïñßåò Þ ðñïâëÞìáôá ðáñáêáëþ åðéêïéíùíÞóôå ìå ôï äéá÷åéñéóôÞ.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/user_standard_index.html_hu b/interface/ispconfig/server/conf/index/user_standard_index.html_hu deleted file mode 100644 index 2ca87323e..000000000 --- a/interface/ispconfig/server/conf/index/user_standard_index.html_hu +++ /dev/null @@ -1,60 +0,0 @@ - - - - Üdvözöljük! - - - - - - -
    - -
    -

    Ez az oldal a {USER_USERNAME} felhasználó eredeti kezdõoldala.

    -

    Ezt az oldalt Ön igényei szerint módosíthatja, akár le is törölheti. Megtalálja ezt az állományt a web könyvtárban user/{USER_USERNAME}/index.html néven.

    -

    Kérdéseivel, kérjük, forduljon a support.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/user_standard_index.html_it b/interface/ispconfig/server/conf/index/user_standard_index.html_it deleted file mode 100644 index 6f253f04f..000000000 --- a/interface/ispconfig/server/conf/index/user_standard_index.html_it +++ /dev/null @@ -1,60 +0,0 @@ - - - - Benvenuti! - - - - - - -
    - -
    -

    Questa è la pagina di default per l'utente {USER_USERNAME}.

    -

    Questo file può essere cancellato o sovrascritto senza nessun problema. Questo è prodotto dal file index.html nella cartella user/{USER_USERNAME}/web.

    -

    Per domande o problemi contattate il supporto.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/user_standard_index.html_nl b/interface/ispconfig/server/conf/index/user_standard_index.html_nl deleted file mode 100644 index 0c7e13c1d..000000000 --- a/interface/ispconfig/server/conf/index/user_standard_index.html_nl +++ /dev/null @@ -1,60 +0,0 @@ - - - - Welkom! - - - - - - -
    - -
    -

    Dit is de standaard indexpagina voor gebruiker {USER_USERNAME}.

    -

    U kunt deze op eenvoudige wijze verwijderen en vervangen door een ander bestand. Dit is het index.html bestand in de user/{USER_USERNAME}/web directorie.

    -

    Voor vragen of problemen kunt u contact opnemen met de support.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/user_standard_index.html_pl b/interface/ispconfig/server/conf/index/user_standard_index.html_pl deleted file mode 100644 index bb3a7aa5a..000000000 --- a/interface/ispconfig/server/conf/index/user_standard_index.html_pl +++ /dev/null @@ -1,60 +0,0 @@ - - - - Welcome! - - - - - - -
    - -
    -

    This is the default index page for user {USER_USERNAME}.

    -

    This file may be deleted or overwritten without any difficulty. This is produced by the file index.html in the user/{USER_USERNAME}/web directory.

    -

    For questions or problems please contact the support.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/user_standard_index.html_se b/interface/ispconfig/server/conf/index/user_standard_index.html_se deleted file mode 100644 index ed9c9ae12..000000000 --- a/interface/ispconfig/server/conf/index/user_standard_index.html_se +++ /dev/null @@ -1,60 +0,0 @@ - - - - Välkommen! - - - - - - -
    - -
    -

    Detta är en standard index sida för användare {USER_USERNAME}.

    -

    Du kan antingen ta bort den eller ersätta den med en annan fil. Detta är en index.html fil i user/{USER_USERNAME}/web mappen.

    -

    För frågor eller problem runt detta kontakta support.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/index/user_standard_index.html_sr b/interface/ispconfig/server/conf/index/user_standard_index.html_sr deleted file mode 100644 index 83ea2570e..000000000 --- a/interface/ispconfig/server/conf/index/user_standard_index.html_sr +++ /dev/null @@ -1,60 +0,0 @@ - - - - Dobrodošli! - - - - - - -
    - -
    -

    Ovo je podrazumevana indeksna strana za korisnika {USER_USERNAME}.

    -

    Možete je lako obrisati ili zameniti sa nekom drugom datotekom. Ovo je index.html datoteka u user/{USER_USERNAME}/web directory.

    -

    Kontaktirajte support u vezi pitanja i problema.

    -
    - -
    - - diff --git a/interface/ispconfig/server/conf/mailfilter_move_junk.master b/interface/ispconfig/server/conf/mailfilter_move_junk.master deleted file mode 100644 index ef346c922..000000000 --- a/interface/ispconfig/server/conf/mailfilter_move_junk.master +++ /dev/null @@ -1,19 +0,0 @@ - -SPAMDIR="Junk" -SPAMDIRFULL="$DEFAULT/.Junk" - -if ( /^X-Spam-Flag: YES$/ ) -{ - exception { - - `test -e $SPAMDIRFULL` - if ( $RETURNCODE != 0 ) - { - `maildirmake -f $SPAMDIR $DEFAULT` - `chown vmail:vmail -R $SPAMDIRFULL` - `chmod 0700 $SPAMDIRFULL` - `echo INBOX.$SPAMDIR >> $DEFAULT/courierimapsubscribed` - } - to "$SPAMDIRFULL/" - } -} \ No newline at end of file diff --git a/interface/ispconfig/server/conf/motd.master b/interface/ispconfig/server/conf/motd.master deleted file mode 100644 index efc2ac3e8..000000000 --- a/interface/ispconfig/server/conf/motd.master +++ /dev/null @@ -1,4 +0,0 @@ -Welcome to - - - diff --git a/interface/ispconfig/server/conf/php-cgi-starter.master b/interface/ispconfig/server/conf/php-cgi-starter.master deleted file mode 100644 index 3c00f9dba..000000000 --- a/interface/ispconfig/server/conf/php-cgi-starter.master +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -exec \ --d open_basedir= \ --d upload_tmp_dir=/tmp \ --d session.save_path=/tmp -# -d safe_mode=${SAFE_MODE} \ No newline at end of file diff --git a/interface/ispconfig/server/conf/php-fcgi-starter.master b/interface/ispconfig/server/conf/php-fcgi-starter.master deleted file mode 100644 index 97a162872..000000000 --- a/interface/ispconfig/server/conf/php-fcgi-starter.master +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -PHPRC="" -export PHPRC -PHP_DOCUMENT_ROOT="" -export PHP_DOCUMENT_ROOT -# The variable PHP_FCGI_CHILDREN is onyl useful for lighty or nginx as apache -# mod_fcgi will control the number of childs themself and never use the additional processes. -# PHP_FCGI_CHILDREN= -# export PHP_FCGI_CHILDREN -PHP_FCGI_MAX_REQUESTS= -export PHP_FCGI_MAX_REQUESTS -exec \ - -d open_basedir="" \ --d upload_tmp_dir=/tmp \ --d session.save_path=/tmp \ - $1 \ No newline at end of file diff --git a/interface/ispconfig/server/conf/sieve_filter.master b/interface/ispconfig/server/conf/sieve_filter.master deleted file mode 100644 index c3393cf7c..000000000 --- a/interface/ispconfig/server/conf/sieve_filter.master +++ /dev/null @@ -1,30 +0,0 @@ - -require ["fileinto", "regex", "vacation"]; - - -# Move spam to spam folder -if header :contains "X-Spam-Flag" "YES" { - fileinto "Junk"; - # Stop here so that we do not reply on spams - stop; -} - - - - - -################################################################# -# Autoreply -################################################################# - -# Move spam to spam folder -if header :contains "X-Spam-Flag" "YES" { - fileinto "Junk"; - # Stop here so that we do not reply on spams - stop; -} -vacation :days 1 - :subject "Out of office reply" - # :addresses ["test@test.int", "till@test.int"] - ""; - diff --git a/interface/ispconfig/server/conf/vhost.conf.master b/interface/ispconfig/server/conf/vhost.conf.master deleted file mode 100644 index 36182b056..000000000 --- a/interface/ispconfig/server/conf/vhost.conf.master +++ /dev/null @@ -1,350 +0,0 @@ - - - AllowOverride None - Order Deny,Allow - Deny from all - - -:80> - - DocumentRoot - - - DocumentRoot - - DocumentRoot - - - - ServerName - - - - ServerAdmin webmaster@ - - ErrorLog /var/log/ispconfig/httpd//error.log - - - ErrorDocument 400 /error/400.html - ErrorDocument 401 /error/401.html - ErrorDocument 403 /error/403.html - ErrorDocument 404 /error/404.html - ErrorDocument 405 /error/405.html - ErrorDocument 500 /error/500.html - ErrorDocument 503 /error/503.html - - - - Options FollowSymLinks - AllowOverride - Order allow,deny - Allow from all - - - # ssi enabled - AddType text/html .shtml - AddOutputFilter INCLUDES .shtml - Options +Includes - - - - Order allow,deny - Deny from all - Allow from none - - - - - Options FollowSymLinks - AllowOverride - Order allow,deny - Allow from all - - - # ssi enabled - AddType text/html .shtml - AddOutputFilter INCLUDES .shtml - Options +Includes - - - - Order allow,deny - Deny from all - Allow from none - - - - - - # cgi enabled - - Order allow,deny - Allow from all - - ScriptAlias /cgi-bin/ /cgi-bin/ - AddHandler cgi-script .cgi - AddHandler cgi-script .pl - - - # suexec enabled - SuexecUserGroup - - # Clear PHP settings of this website - - SetHandler None - - - # mod_php enabled - AddType application/x-httpd-php .php .php3 .php4 .php5 - php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -fwebmaster@" - php_admin_value upload_tmp_dir /tmp - php_admin_value session.save_path /tmp - - php_admin_value open_basedir - - - - # suphp enabled - - suPHP_Engine on - # suPHP_UserGroup - AddHandler x-httpd-suphp .php .php3 .php4 .php5 - suPHP_AddHandler x-httpd-suphp - - - - # php as cgi enabled - ScriptAlias /php5-cgi - Action php5-cgi /php5-cgi - AddHandler php5-cgi .php .php3 .php4 .php5 - - Order allow,deny - Allow from all - - - - # php as fast-cgi enabled - - # SocketPath /tmp/fcgid_sock/ - IdleTimeout 3600 - ProcessLifeTime 7200 - # MaxProcessCount 1000 - DefaultMinClassProcessCount 3 - DefaultMaxClassProcessCount 100 - IPCConnectTimeout 8 - IPCCommTimeout 360 - BusyTimeout 300 - - - AddHandler fcgid-script .php .php3 .php4 .php5 - FCGIWrapper .php - Options +ExecCGI - AllowOverride - Order allow,deny - Allow from all - - - AddHandler fcgid-script .php .php3 .php4 .php5 - FCGIWrapper .php - Options +ExecCGI - AllowOverride - Order allow,deny - Allow from all - - - - - RewriteEngine on - - RewriteCond %{HTTP_HOST} ^ [NC] - RewriteRule ^/(.*)$ $1 - - - - # add support for apache mpm_itk - - AssignUserId - - - - - - - - - -########################################################### -# SSL Vhost -########################################################### - -:443> - - DocumentRoot - - - DocumentRoot - - DocumentRoot - - - - ServerName - - - - ServerAdmin webmaster@ - - ErrorLog /var/log/ispconfig/httpd//error.log - - - ErrorDocument 400 /error/400.html - ErrorDocument 401 /error/401.html - ErrorDocument 403 /error/403.html - ErrorDocument 404 /error/404.html - ErrorDocument 405 /error/405.html - ErrorDocument 500 /error/500.html - ErrorDocument 503 /error/503.html - - - SSLEngine on - SSLCertificateFile /ssl/.crt - SSLCertificateKeyFile /ssl/.key - - SSLCACertificateFile /ssl/.bundle - - - - Options FollowSymLinks - AllowOverride - Order allow,deny - Allow from all - - - # ssi enabled - AddType text/html .shtml - AddOutputFilter INCLUDES .shtml - Options +Includes - - - - Order allow,deny - Deny from all - Allow from none - - - - - Options FollowSymLinks - AllowOverride - Order allow,deny - Allow from all - - - # ssi enabled - AddType text/html .shtml - AddOutputFilter INCLUDES .shtml - Options +Includes - - - - Order allow,deny - Deny from all - Allow from none - - - - - - # cgi enabled - - Order allow,deny - Allow from all - - ScriptAlias /cgi-bin/ /cgi-bin/ - AddHandler cgi-script .cgi - AddHandler cgi-script .pl - - - # ssi enabled - AddType text/html .shtml - AddOutputFilter INCLUDES .shtml - - - # suexec enabled - SuexecUserGroup - - - # mod_php enabled - AddType application/x-httpd-php .php .php3 .php4 .php5 - php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -fwebmaster@" - php_admin_value upload_tmp_dir /tmp - php_admin_value session.save_path /tmp - - php_admin_value open_basedir - - - - suPHP_Engine on - # suPHP_UserGroup - AddHandler x-httpd-suphp .php .php3 .php4 .php5 - suPHP_AddHandler x-httpd-suphp - - - # php as cgi enabled - ScriptAlias /php5-cgi - Action php5-cgi /php5-cgi - AddHandler php5-cgi .php .php3 .php4 .php5 - - Order allow,deny - Allow from all - - - - # php as fast-cgi enabled - - # SocketPath /tmp/fcgid_sock/ - IdleTimeout 3600 - ProcessLifeTime 7200 - # MaxProcessCount 1000 - DefaultMinClassProcessCount 3 - DefaultMaxClassProcessCount 100 - IPCConnectTimeout 8 - IPCCommTimeout 360 - BusyTimeout 300 - - - AddHandler fcgid-script .php .php3 .php4 .php5 - FCGIWrapper .php - Options +ExecCGI - AllowOverride - Order allow,deny - Allow from all - - - AddHandler fcgid-script .php .php3 .php4 .php5 - FCGIWrapper .php - Options +ExecCGI - AllowOverride - Order allow,deny - Allow from all - - - - - RewriteEngine on - - RewriteCond %{HTTP_HOST} ^ [NC] - RewriteRule ^/(.*)$ $1 - - - - # add support for apache mpm_itk - - AssignUserId - - - - - - - diff --git a/interface/ispconfig/server/cron_daily.php b/interface/ispconfig/server/cron_daily.php deleted file mode 100644 index 24c0961bc..000000000 --- a/interface/ispconfig/server/cron_daily.php +++ /dev/null @@ -1,303 +0,0 @@ -uses('ini_parser,file,services'); - - -####################################################################################################### -// store the mailbox statistics in the database -####################################################################################################### - -$sql = "SELECT mailuser_id,maildir FROM mail_user WHERE server_id = ".$conf["server_id"]; -$records = $app->db->queryAllRecords($sql); -foreach($records as $rec) { - if(@is_file($rec["maildir"].'/ispconfig_mailsize')) { - - // rename file - rename($rec["maildir"].'/ispconfig_mailsize',$rec["maildir"].'/ispconfig_mailsize_save'); - - // Read the file - $lines = file($rec["maildir"].'/ispconfig_mailsize_save'); - $mail_traffic = 0; - foreach($lines as $line) { - $mail_traffic += intval($line); - } - unset($lines); - - // Delete backup file - if(@is_file($rec["maildir"].'/ispconfig_mailsize_save')) unlink($rec["maildir"].'/ispconfig_mailsize_save'); - - // Save the traffic stats in the sql database - $tstamp = date("Y-m"); - - $sql = "SELECT * FROM mail_traffic WHERE month = '$tstamp' AND mailuser_id = ".$rec["mailuser_id"]; - $tr = $app->dbmaster->queryOneRecord($sql); - - $mail_traffic += $tr["traffic"]; - if($tr["traffic_id"] > 0) { - $sql = "UPDATE mail_traffic SET traffic = $mail_traffic WHERE traffic_id = ".$tr["traffic_id"]; - } else { - $sql = "INSERT INTO mail_traffic (month,mailuser_id,traffic) VALUES ('$tstamp',".$rec["mailuser_id"].",$mail_traffic)"; - } - $app->dbmaster->query($sql); - echo $sql; - - } - -} - -####################################################################################################### -// Create webalizer statistics -####################################################################################################### - -function setConfigVar( $filename, $varName, $varValue ) { - if($lines = @file($filename)) { - $out = ''; - $found = 0; - foreach($lines as $line) { - list($key, $value) = preg_split("/[\t= ]+/", $line, 2); - if($key == $varName) { - $out .= $varName." ".$varValue."\n"; - $found = 1; - } else { - $out .= $line; - } - } - if($found == 0) { - //* add \n if the last line does not end with \n or \r - if(substr($out,-1) != "\n" && substr($out,-1) != "\r") $out .= "\n"; - //* add the new line at the end of the file - if($append == 1) $out .= $varName." ".$varValue."\n"; - } - - file_put_contents($filename,$out); - } -} - - -$sql = "SELECT domain_id, domain, document_root FROM web_domain WHERE server_id = ".$conf["server_id"]; -$records = $app->db->queryAllRecords($sql); - -foreach($records as $rec) { - $yesterday = date("Ymd",time() - 86400); - $logfile = escapeshellcmd($rec["document_root"].'/log/'.$yesterday.'-access.log'); - if(!@is_file($logfile)) { - $logfile = escapeshellcmd($rec["document_root"].'/log/'.$yesterday.'-access.log.gz'); - if(!@is_file($logfile)) { - continue; - } -} - -$domain = escapeshellcmd($rec["domain"]); -$statsdir = escapeshellcmd($rec["document_root"].'/web/stats'); -$webalizer = '/usr/bin/webalizer'; -$webalizer_conf_main = '/etc/webalizer/webalizer.conf'; -$webalizer_conf = escapeshellcmd($rec["document_root"].'/log/webalizer.conf'); - -if(!@is_file($webalizer_conf)) { - exec("cp $webalizer_conf_main $webalizer_conf"); -} - -if(@is_file($webalizer_conf)) { - setConfigVar($webalizer_conf, 'Incremental', 'yes'); - setConfigVar($webalizer_conf, 'IncrementalName', $statsdir.'/webalizer.current'); - setConfigVar($webalizer_conf, 'HistoryName', $statsdir.'/webalizer.hist'); -} - - -if(!@is_dir($statsdir)) mkdir($statsdir); - exec("$webalizer -c $webalizer_conf -n $domain -s $domain -r $domain -q -T -p -o $statsdir $logfile"); -} - -####################################################################################################### -// Make the web logfiles directories world readable to enable ftp access -####################################################################################################### - -exec('chmod +r /var/log/ispconfig/httpd/*'); - -####################################################################################################### -// Manage and compress web logfiles -####################################################################################################### - -$sql = "SELECT domain_id, domain, document_root FROM web_domain WHERE server_id = ".$conf["server_id"]; -$records = $app->db->queryAllRecords($sql); -foreach($records as $rec) { - $yesterday = date("Ymd",time() - 86400); - $logfile = escapeshellcmd($rec["document_root"].'/log/'.$yesterday.'-access.log'); - if(@is_file($logfile)) { - // Compress yesterdays logfile - exec("gzip -c $logfile > $logfile.gz"); - unlink($logfile); - } - - // delete logfiles after 30 days - $month_ago = date("Ymd",time() - 86400 * 30); - $logfile = escapeshellcmd($rec["document_root"].'/log/'.$month_ago.'-access.log.gz'); - if(@is_file($logfile)) { - unlink($logfile); - } -} - -####################################################################################################### -// Cleanup website tmp directories -####################################################################################################### - -$sql = "SELECT domain_id, domain, document_root, system_user FROM web_domain WHERE server_id = ".$conf["server_id"]; -$records = $app->db->queryAllRecords($sql); -$app->uses('system'); -if(is_array($records)) { - foreach($records as $rec){ - $tmp_path = realpath(escapeshellcmd($rec["document_root"].'/tmp')); - if($tmp_path != '' && strlen($tmp_path) > 10 && is_dir($tmp_path) && $app->system->is_user($rec['system_user'])){ - exec("cd ".$tmp_path."; find -mtime +1 -name 'sess_*' | grep -v -w .no_delete | xargs rm &> /dev/null 2> /dev/null"); - } - } -} - -####################################################################################################### -// Cleanup logs in master database (only the "master-server") -####################################################################################################### - -if ($app->dbmaster == $app->db) { - /** 7 days */ - $tstamp = time() - (60*60*24*7); - - /* - * Keep 7 days in sys_log - * (we can delete the old items, because if they are OK, they don't interrest anymore - * if they are NOT ok, the server will try to process them in 1 minute and so the - * error appears again after 1 minute. So it is no problem to delete the old one! - */ - $sql = "DELETE FROM sys_log WHERE tstamp < $tstamp AND server_id != 0"; - $app->dbmaster->query($sql); - - /* - * The sys_datalog is more difficult. - * 1) We have to keet ALL entries with - * server_id=0, because they depend on ALL servers (even if they are not - * actually in the system (and will be insered in 3 days or so). - * 2) We have to keey ALL entries which are not actually precessed by the - * server never mind how old they are! - * 3) We have to keep the entry with the highest autoinc-id, because mysql calculates the - * autoinc-id as "new value = max(row) +1" and does not store this in a separate table. - * This means, if we delete to entry with the highest autoinc-value then this value is - * reused as autoinc and so there are more than one entries with the same value (over - * for example 4 Weeks). This is confusing for our system. - * ATTENTION 2) and 3) is in some case NOT the same! so we have to check both! - */ - - /* First we need all servers and the last sys_datalog-id they processed */ - $sql = "SELECT server_id, updated FROM server ORDER BY server_id"; - $records = $app->dbmaster->queryAllRecords($sql); - - /* Then we need the highest value ever */ - $sql = "SELECT max(datalog_id) FROM sys_datalog"; - $res = $app->dbmaster->queryOneRecord($sql); - $maxId = $res['max(datalog_id)']; - - /* Then delete server by server */ - foreach($records as $server) { - $tmp_server_id = intval($server['server_id']); - if($tmp_server_id > 0) { - $sql = "DELETE FROM sys_datalog " . - "WHERE tstamp < " . $tstamp . - " AND server_id = " . intval($server['server_id']) . - " AND datalog_id < " . intval($server['updated']) . - " AND datalog_id < " . intval($maxId); - } -// echo $sql . "\n"; - $app->dbmaster->query($sql); - } -} - -####################################################################################################### -// enforce traffic quota (run only on the "master-server") -####################################################################################################### - -if ($app->dbmaster == $app->db) { - - $current_month = date('Y-m'); - - //* Check website traffic quota - $sql = "SELECT sys_groupid,domain_id,domain,traffic_quota,traffic_quota_lock FROM web_domain WHERE traffic_quota > 0 and type = 'vhost'"; - $records = $app->db->queryAllRecords($sql); - if(is_array($records)) { - foreach($records as $rec) { - - $web_traffic_quota = $rec['traffic_quota']; - $domain = $rec['domain']; - - // get the client - /* - $client_group_id = $rec["sys_groupid"]; - $client = $app->db->queryOneRecord("SELECT limit_traffic_quota,parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - $reseller = $app->db->queryOneRecord("SELECT limit_traffic_quota FROM client WHERE client_id = ".intval($client['parent_client_id'])); - - $client_traffic_quota = intval($client['limit_traffic_quota']); - $reseller_traffic_quota = intval($reseller['limit_traffic_quota']); - */ - - //* get the traffic - $tmp = $app->db->queryOneRecord("SELECT SUM(traffic_bytes) As total_traffic_bytes FROM web_traffic WHERE traffic_date like '$current_month%' AND hostname = '$domain'"); - $web_traffic = (int)$tmp['total_traffic_bytes']/1024/1024; - - //* Website is over quota, we will disable it - /*if( ($web_traffic_quota > 0 && $web_traffic > $web_traffic_quota) || - ($client_traffic_quota > 0 && $web_traffic > $client_traffic_quota) || - ($reseller_traffic_quota > 0 && $web_traffic > $reseller_traffic_quota)) {*/ - if($web_traffic_quota > 0 && $web_traffic > $web_traffic_quota) { - $app->dbmaster->datalogUpdate('web_domain', "traffic_quota_lock = 'y',active = 'n'", 'domain_id', $rec['domain_id']); - $app->log("Traffic quota for ".$rec['domain_id']." Exceeded. Disabling website.",LOGLEVEL_DEBUG); - } else { - //* unlock the website, if traffic is lower then quota - if($rec['traffic_quota_lock'] == 'y') { - $app->dbmaster->datalogUpdate('web_domain', "traffic_quota_lock = 'n',active = 'y'", 'domain_id', $rec['domain_id']); - $app->log("Traffic quota for ".$rec['domain_id']." ok again. Enabling website.",LOGLEVEL_DEBUG); - } - } - } - } - - -} - - -die("finished.\n"); -?> \ No newline at end of file diff --git a/interface/ispconfig/server/cron_daily.sh b/interface/ispconfig/server/cron_daily.sh deleted file mode 100644 index da0ae3c16..000000000 --- a/interface/ispconfig/server/cron_daily.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin - -/usr/bin/php -q /usr/local/ispconfig/server/cron_daily.php \ No newline at end of file diff --git a/interface/ispconfig/server/lib/app.inc.php b/interface/ispconfig/server/lib/app.inc.php deleted file mode 100644 index 8cc03bf4d..000000000 --- a/interface/ispconfig/server/lib/app.inc.php +++ /dev/null @@ -1,181 +0,0 @@ -load('db_'.$conf["db_type"]); - $this->db = new db; - if($this->db->linkId) $this->db->closeConn(); - $this->db->dbHost = $conf["db_host"]; - $this->db->dbName = $conf["db_database"]; - $this->db->dbUser = $conf["db_user"]; - $this->db->dbPass = $conf["db_password"]; - - /* - Initialize the connection to the master DB, - if we are in a multiserver setup - */ - - if($conf["dbmaster_host"] != '' && $conf["dbmaster_host"] != $conf["db_host"]) { - $this->dbmaster = new db; - if($this->dbmaster->linkId) $this->dbmaster->closeConn(); - $this->dbmaster->dbHost = $conf["dbmaster_host"]; - $this->dbmaster->dbName = $conf["dbmaster_database"]; - $this->dbmaster->dbUser = $conf["dbmaster_user"]; - $this->dbmaster->dbPass = $conf["dbmaster_password"]; - } else { - $this->dbmaster = $this->db; - } - - - } - - } - - function uses($classes) { - global $conf; - - $cl = explode(',',$classes); - if(is_array($cl)) { - foreach($cl as $classname) { - if(!@is_object($this->$classname)) { - if(is_file($conf['classpath'] . "/".$classname.".inc.php") && !is_link($conf['classpath'] . "/".$classname.".inc.php")) { - include_once($conf['classpath'] . "/".$classname.".inc.php"); - $this->$classname = new $classname; - } - } - } - } - } - - function load($classes) { - - global $conf; - $cl = explode(',',$classes); - if(is_array($cl)) { - foreach($cl as $classname) { - if(is_file($conf['classpath'] . "/".$classname.".inc.php") && !is_link($conf['classpath'] . "/".$classname.".inc.php")) { - include_once($conf['classpath'] . "/".$classname.".inc.php"); - } else { - die('Unable to load: '.$conf['classpath'] . "/".$classname.".inc.php"); - } - } - } - } - - /* - 0 = DEBUG - 1 = WARNING - 2 = ERROR - */ - - function log($msg, $priority = 0) { - - global $conf; - - if($priority >= $conf["log_priority"]) { - //if (is_writable($conf["log_file"])) { - if (!$fp = fopen ($conf["log_file"], "a")) { - die("Unable to open logfile."); - } - switch ($priority) { - case 0: - $priority_txt = "DEBUG"; - break; - case 1: - $priority_txt = "WARNING"; - break; - case 2: - $priority_txt = "ERROR"; - break; - } - - if (!fwrite($fp, date("d.m.Y-H:i")." - ".$priority_txt." - ". $msg."\r\n")) { - die("Unable to write to logfile."); - } - echo date("d.m.Y-H:i")." - ".$priority_txt." - ". $msg."\n"; - fclose($fp); - - // Log to database - if(isset($this->dbmaster)) { - $server_id = $conf['server_id']; - $loglevel = $priority; - $tstamp = time(); - $message = $this->dbmaster->quote($msg); - $datalog_id = (isset($this->modules->current_datalog_id) && $this->modules->current_datalog_id > 0)?$this->modules->current_datalog_id:0; - if($datalog_id > 0) { - $tmp_rec = $this->dbmaster->queryOneRecord("SELECT count(syslog_id) as number FROM sys_log WHERE datalog_id = $datalog_id AND loglevel = ".LOGLEVEL_ERROR); - //* Do not insert duplicate errors into the web log. - if($tmp_rec['number'] == 0) { - $sql = "INSERT INTO sys_log (server_id,datalog_id,loglevel,tstamp,message) VALUES ('$server_id',$datalog_id,'$loglevel','$tstamp','$message')"; - $this->dbmaster->query($sql); - } - } else { - $sql = "INSERT INTO sys_log (server_id,datalog_id,loglevel,tstamp,message) VALUES ('$server_id',0,'$loglevel','$tstamp','$message')"; - $this->dbmaster->query($sql); - } - - - } - - //} else { - // die("Unable to write to logfile."); - //} - } // if - } // func - - /* - 0 = DEBUG - 1 = WARNING - 2 = ERROR - */ - - function error($msg) { - $this->log($msg,3); - die($msg); - } - -} - -/* - Initialize application (app) object -*/ - -$app = new app; - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/lib/classes/db_mysql.inc.php b/interface/ispconfig/server/lib/classes/db_mysql.inc.php deleted file mode 100644 index f7ac0f508..000000000 --- a/interface/ispconfig/server/lib/classes/db_mysql.inc.php +++ /dev/null @@ -1,612 +0,0 @@ -dbHost = $conf["db_host"]; - $this->dbName = $conf["db_database"]; - $this->dbUser = $conf["db_user"]; - $this->dbPass = $conf["db_password"]; - $this->dbCharset = $conf['db_charset']; - //$this->connect(); - } - - // error handler - function updateError($location) - { - global $app; - $this->errorNumber = mysql_errno($this->linkId); - $this->errorMessage = mysql_error($this->linkId); - $this->errorLocation = $location; - if($this->errorNumber && $this->show_error_messages && method_exists($app,'log')) - { - // echo('
    '.$this->errorLocation.'
    '.$this->errorMessage); - $app->log($this->errorLocation." ".$this->errorMessage,LOGLEVEL_WARN); - //flush(); - } - } - - function connect() - { - if($this->linkId == 0) - { - $this->linkId = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass); - if(!$this->linkId) - { - $this->updateError('DB::connect()-> mysql_connect'); - return false; - } - $this->queryId = @mysql_query('SET NAMES '.$this->dbCharset, $this->linkId); - $this->queryId = @mysql_query("SET character_set_results = '".$this->dbCharset."', character_set_client = '".$this->dbCharset."', character_set_connection = '".$this->dbCharset."', character_set_database = '".$this->dbCharset."', character_set_server = '".$this->dbCharset."'", $this->linkId); - } - return true; - } - - function query($queryString) - { - if(!$this->connect()) - { - return false; - } - if(!mysql_select_db($this->dbName, $this->linkId)) - { - $this->updateError('DB::connect()-> mysql_select_db'); - return false; - } - $this->queryId = @mysql_query($queryString, $this->linkId); - $this->updateError('DB::query('.$queryString.') -> mysql_query'); - if(!$this->queryId) - { - return false; - } - $this->currentRow = 0; - return $this->queryId; - } - - // returns all records in an array - function queryAllRecords($queryString) - { - if(!$this->query($queryString)) - { - return false; - } - $ret = array(); - while($line = $this->nextRecord()) - { - $ret[] = $line; - } - return $ret; - } - - // returns one record in an array - function queryOneRecord($queryString) - { - if(!$this->query($queryString) || $this->numRows() == 0) - { - return false; - } - return $this->nextRecord(); - } - - // returns the next record in an array - function nextRecord() - { - $this->record = mysql_fetch_assoc($this->queryId); - $this->updateError('DB::nextRecord()-> mysql_fetch_array'); - if(!$this->record || !is_array($this->record)) - { - return false; - } - $this->currentRow++; - return $this->record; - } - - // returns number of rows returned by the last select query - function numRows() - { - return mysql_num_rows($this->queryId); - } - - // returns mySQL insert id - function insertID() - { - return mysql_insert_id($this->linkId); - } - - // Check der variablen - // deprecated, now use quote - function check($formfield) - { - return $this->quote($formfield); - } - - // Check der variablen - function quote($formfield) - { - if(!$this->connect()){ - $this->updateError('WARNING: mysql_connect: Used addslashes instead of mysql_real_escape_string'); - return addslashes($formfield); - } - - return mysql_real_escape_string($formfield, $this->linkId); - } - - // Check der variablen - function unquote($formfield) - { - return stripslashes($formfield); - } - - function toLower($record) { - if(is_array($record)) { - foreach($record as $key => $val) { - $key = strtolower($key); - $out[$key] = $val; - } - } - return $out; - } - - /* - //* These functions are deprecated and will be removed. - function insert($tablename,$form,$debug = 0) - { - if(is_array($form)){ - foreach($form as $key => $value) - { - $sql_key .= "$key, "; - $sql_value .= "'".$this->check($value)."', "; - } - $sql_key = substr($sql_key,0,strlen($sql_key) - 2); - $sql_value = substr($sql_value,0,strlen($sql_value) - 2); - - $sql = "INSERT INTO $tablename (" . $sql_key . ") VALUES (" . $sql_value .")"; - - if($debug == 1) echo "SQL-Statement: ".$sql."

    "; - $this->query($sql); - if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage; - } - } - - function update($tablename,$form,$bedingung,$debug = 0) - { - - if(is_array($form)){ - foreach($form as $key => $value) - { - $insql .= "$key = '".$this->check($value)."', "; - } - $insql = substr($insql,0,strlen($insql) - 2); - $sql = "UPDATE $tablename SET " . $insql . " WHERE $bedingung"; - if($debug == 1) echo "SQL-Statement: ".$sql."

    "; - $this->query($sql); - if($debug == 1) echo "mySQL Error Message: ".$this->errorMessage; - } - } - */ - - public function diffrec($record_old, $record_new) { - $diffrec_full = array(); - $diff_num = 0; - - if(is_array($record_old) && count($record_old) > 0) { - foreach($record_old as $key => $val) { - // if(!isset($record_new[$key]) || $record_new[$key] != $val) { - if($record_new[$key] != $val) { - // Record has changed - $diffrec_full['old'][$key] = $val; - $diffrec_full['new'][$key] = $record_new[$key]; - $diff_num++; - } else { - $diffrec_full['old'][$key] = $val; - $diffrec_full['new'][$key] = $val; - } - } - } elseif(is_array($record_new)) { - foreach($record_new as $key => $val) { - if(isset($record_new[$key]) && @$record_old[$key] != $val) { - // Record has changed - $diffrec_full['new'][$key] = $val; - $diffrec_full['old'][$key] = @$record_old[$key]; - $diff_num++; - } else { - $diffrec_full['new'][$key] = $val; - $diffrec_full['old'][$key] = $val; - } - } - } - - return array('diff_num' => $diff_num, 'diff_rec' => $diffrec_full); - - } - - //** Function to fill the datalog with a full differential record. - public function datalogSave($db_table, $action, $primary_field, $primary_id, $record_old, $record_new) { - global $app,$conf; - - // Insert backticks only for incomplete table names. - if(stristr($db_table,'.')) { - $escape = ''; - } else { - $escape = '`'; - } - - $tmp = $this->diffrec($record_old, $record_new); - $diffrec_full = $tmp['diff_rec']; - $diff_num = $tmp['diff_num']; - unset($tmp); - - // Insert the server_id, if the record has a server_id - $server_id = (isset($record_old["server_id"]) && $record_old["server_id"] > 0)?$record_old["server_id"]:0; - if(isset($record_new["server_id"])) $server_id = $record_new["server_id"]; - - - if($diff_num > 0) { - //print_r($diff_num); - //print_r($diffrec_full); - $diffstr = $app->db->quote(serialize($diffrec_full)); - $username = $app->db->quote($_SESSION["s"]["user"]["username"]); - $dbidx = $primary_field.":".$primary_id; - - if($action == 'INSERT') $action = 'i'; - if($action == 'UPDATE') $action = 'u'; - if($action == 'DELETE') $action = 'd'; - $sql = "INSERT INTO sys_datalog (dbtable,dbidx,server_id,action,tstamp,user,data) VALUES ('".$db_table."','$dbidx','$server_id','$action','".time()."','$username','$diffstr')"; - $app->db->query($sql); - } - - return true; - } - - //** Inserts a record and saves the changes into the datalog - public function datalogInsert($tablename, $insert_data, $index_field) { - global $app; - - $old_rec = array(); - $this->query("INSERT INTO $tablename $insert_data"); - $index_value = $this->insertID(); - $new_rec = $this->queryOneRecord("SELECT * FROM $tablename WHERE $index_field = '$index_value'"); - $this->datalogSave($tablename, 'INSERT', $index_field, $index_value, $old_rec, $new_rec); - - return $index_value; - } - - //** Updates a record and saves the changes into the datalog - public function datalogUpdate($tablename, $update_data, $index_field, $index_value) { - global $app; - - $old_rec = $this->queryOneRecord("SELECT * FROM $tablename WHERE $index_field = '$index_value'"); - $this->query("UPDATE $tablename SET $update_data WHERE $index_field = '$index_value'"); - $new_rec = $this->queryOneRecord("SELECT * FROM $tablename WHERE $index_field = '$index_value'"); - $this->datalogSave($tablename, 'UPDATE', $index_field, $index_value, $old_rec, $new_rec); - - return true; - } - - //** Deletes a record and saves the changes into the datalog - public function datalogDelete($tablename, $index_field, $index_value) { - global $app; - - $old_rec = $this->queryOneRecord("SELECT * FROM $tablename WHERE $index_field = '$index_value'"); - $this->query("DELETE FROM $tablename WHERE $index_field = '$index_value'"); - $new_rec = array(); - $this->datalogSave($tablename, 'DELETE', $index_field, $index_value, $old_rec, $new_rec); - - return true; - } - - public function closeConn() - { - if($this->linkId) - { - mysql_close($this->linkId); - return true; - } else { return false; } - } - - public function freeResult($query) - { - if(mysql_free_result($query)) - { - return true; - } else { - return false; - } - } - - function delete() { - - } - - function Transaction($action) { - //action = begin, commit oder rollback - - } - - /* - $columns = array(action => add | alter | drop - name => Spaltenname - name_new => neuer Spaltenname, nur bei 'alter' belegt - type => 42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob - typeValue => Wert z.B. bei Varchar - defaultValue => Default Wert - notNull => true | false - autoInc => true | false - option => unique | primary | index) - - - */ - - function createTable($table_name,$columns) { - $index = ""; - $sql = "CREATE TABLE $table_name ("; - foreach($columns as $col){ - $sql .= $col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." "; - - if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' "; - if($col["notNull"] == true) { - $sql .= "NOT NULL "; - } else { - $sql .= "NULL "; - } - if($col["autoInc"] == true) $sql .= "auto_increment "; - $sql.= ","; - // key Definitionen - if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),"; - if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),"; - if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),"; - } - $sql .= $index; - $sql = substr($sql,0,-1); - $sql .= ")"; - - $this->query($sql); - return true; - } - - /* - $columns = array(action => add | alter | drop - name => Spaltenname - name_new => neuer Spaltenname, nur bei 'alter' belegt - type => 42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob - typeValue => Wert z.B. bei Varchar - defaultValue => Default Wert - notNull => true | false - autoInc => true | false - option => unique | primary | index) - - - */ - function alterTable($table_name,$columns) { - $index = ""; - $sql = "ALTER TABLE $table_name "; - foreach($columns as $col){ - if($col["action"] == 'add') { - $sql .= "ADD ".$col["name"]." ".$this->mapType($col["type"],$col["typeValue"])." "; - } elseif ($col["action"] == 'alter') { - $sql .= "CHANGE ".$col["name"]." ".$col["name_new"]." ".$this->mapType($col["type"],$col["typeValue"])." "; - } elseif ($col["action"] == 'drop') { - $sql .= "DROP ".$col["name"]." "; - } - if($col["action"] != 'drop') { - if($col["defaultValue"] != "") $sql .= "DEFAULT '".$col["defaultValue"]."' "; - if($col["notNull"] == true) { - $sql .= "NOT NULL "; - } else { - $sql .= "NULL "; - } - if($col["autoInc"] == true) $sql .= "auto_increment "; - $sql.= ","; - // key Definitionen - if($col["option"] == "primary") $index .= "PRIMARY KEY (".$col["name"]."),"; - if($col["option"] == "index") $index .= "INDEX (".$col["name"]."),"; - if($col["option"] == "unique") $index .= "UNIQUE (".$col["name"]."),"; - } - } - $sql .= $index; - $sql = substr($sql,0,-1); - - //die($sql); - $this->query($sql); - return true; - } - - function dropTable($table_name) { - $this->check($table_name); - $sql = "DROP TABLE '". $table_name."'"; - return $this->query($sql); - } - - // gibt Array mit Tabellennamen zurück - function getTables($database_name = '') { - - if($database_name == '') $database_name = $this->dbName; - $result = mysql_list_tables($database_name); - for ($i = 0; $i < mysql_num_rows($result); $i++) { - $tb_names[$i] = mysql_tablename($result, $i); - } - return $tb_names; - } - - // gibt Feldinformationen zur Tabelle zurück - /* - $columns = array(action => add | alter | drop - name => Spaltenname - name_new => neuer Spaltenname, nur bei 'alter' belegt - type => 42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob - typeValue => Wert z.B. bei Varchar - defaultValue => Default Wert - notNull => true | false - autoInc => true | false - option => unique | primary | index) - - - */ - - function tableInfo($table_name) { - - global $go_api,$go_info; - // Tabellenfelder einlesen - - if($rows = $go_api->db->queryAllRecords("SHOW FIELDS FROM ".$table_name)){ - foreach($rows as $row) { - $name = $row[0]; - $default = $row[4]; - $key = $row[3]; - $extra = $row[5]; - $isnull = $row[2]; - $type = $row[1]; - - - $column = array(); - - $column["name"] = $name; - //$column["type"] = $type; - $column["defaultValue"] = $default; - if(stristr($key,"PRI")) $column["option"] = "primary"; - if(stristr($isnull,"YES")) { - $column["notNull"] = false; - } else { - $column["notNull"] = true; - } - if($extra == 'auto_increment') $column["autoInc"] = true; - - - // Type in Metatype umsetzen - - if(stristr($type,"int(")) $metaType = 'int32'; - if(stristr($type,"bigint")) $metaType = 'int64'; - if(stristr($type,"char")) { - $metaType = 'char'; - $tmp_typeValue = explode('(',$type); - $column["typeValue"] = substr($tmp_typeValue[1],0,-1); - } - if(stristr($type,"varchar")) { - $metaType = 'varchar'; - $tmp_typeValue = explode('(',$type); - $column["typeValue"] = substr($tmp_typeValue[1],0,-1); - } - if(stristr($type,"text")) $metaType = 'text'; - if(stristr($type,"double")) $metaType = 'double'; - if(stristr($type,"blob")) $metaType = 'blob'; - - - $column["type"] = $metaType; - - $columns[] = $column; - } - return $columns; - } else { - return false; - } - - - //$this->createTable('tester',$columns); - - /* - $result = mysql_list_fields($go_info["server"]["db_name"],$table_name); - $fields = mysql_num_fields ($result); - $i = 0; - $table = mysql_field_table ($result, $i); - while ($i < $fields) { - $name = mysql_field_name ($result, $i); - $type = mysql_field_type ($result, $i); - $len = mysql_field_len ($result, $i); - $flags = mysql_field_flags ($result, $i); - print_r($flags); - - $columns = array(name => $name, - type => "", - defaultValue => "", - isnull => 1, - option => ""); - $returnvar[] = $columns; - - $i++; - } - */ - - - - } - - function mapType($metaType,$typeValue) { - global $go_api; - $metaType = strtolower($metaType); - switch ($metaType) { - case 'int16': - return 'smallint'; - break; - case 'int32': - return 'int'; - break; - case 'int64': - return 'bigint'; - break; - case 'double': - return 'double'; - break; - case 'char': - return 'char'; - break; - case 'varchar': - if($typeValue < 1) die("Datenbank Fehler: Für diesen Datentyp ist eine Längenangabe notwendig."); - return 'varchar('.$typeValue.')'; - break; - case 'text': - return 'text'; - break; - case 'blob': - return 'blob'; - break; - } - } - - } - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/lib/classes/file.inc.php b/interface/ispconfig/server/lib/classes/file.inc.php deleted file mode 100644 index 9fd28b834..000000000 --- a/interface/ispconfig/server/lib/classes/file.inc.php +++ /dev/null @@ -1,319 +0,0 @@ -log("WARNING: could not open file ".$file, 2); - return false; - } else { - if(filesize($file) > 0){ - $content = fread($fp, filesize($file)); - } else { - $content = ""; - } - fclose($fp); - return $content; - } - } - - function wf($file, $content){ - global $app; - $this->mkdirs(dirname($file)); - if(!$fp = fopen ($file, "wb")){ - $app->log("WARNING: could not open file ".$file, 2); - return false; - } else { - fwrite($fp,$content); - fclose($fp); - return true; - } - } - - function af($file, $content){ - global $app; - $this->mkdirs(dirname($file)); - if(!$fp = fopen ($file, "ab")){ - $app->log("WARNING: could not open file ".$file, 2); - return false; - } else { - fwrite($fp,$content); - fclose($fp); - return true; - } - } - - function no_comments($file, $comment = '#'){ - $content = $this->unix_nl($this->rf($file)); - $lines = explode("\n", $content); - if(!empty($lines)){ - foreach($lines as $line){ - if(strstr($line, $comment)){ - $pos = strpos($line, $comment); - if($pos != 0){ - $new_lines[] = substr($line,0,$pos); - } else { - $new_lines[] = ""; - } - } else { - $new_lines[] = $line; - } - } - } - if(is_array($new_lines)){ - $content_without_comments = implode("\n", $new_lines); - $new_lines = NULL; - return $content_without_comments; - } else { - return ""; - } - } - - function manual_entries($file, $separator = '#### MAKE MANUAL ENTRIES BELOW THIS LINE! ####'){ - if(is_file($file)){ - $content = $this->rf($file); - $parts = explode($separator, $content); - $manual = "\n".trim($parts[1]); - return $manual; - } else { - return ""; - } - } - - function remove_blank_lines($input, $file = 1){ - //Leerzeilen löschen - if($file){ - $content = $this->unix_nl($this->rf($input)); - } else { - $content = $input; - } - $lines = explode("\n", $content); - if(!empty($lines)){ - foreach($lines as $line){ - if(trim($line) != "") $new_lines[] = $line; - } - } - if(is_array($new_lines)){ - $content = implode("\n", $new_lines); - } else { - $content = ""; - } - if($file){ - $this->wf($input, $content); - } else { - return $content; - } - } - - function unix_nl($input){ - $output = str_replace("\r\n", "\n", $input); - $output = str_replace("\r", "\n", $output); - return $output; - } - - function fileowner($file){ - $owner_id = fileowner($file); - clearstatcache(); - return $owner_id; - } - - function mkdirs($strPath, $mode = '0755'){ - // Verzeichnisse rekursiv erzeugen - if(is_dir($strPath)) return true; - $pStrPath = dirname($strPath); - if(!$this->mkdirs($pStrPath, $mode)) return false; - $old_umask = umask(0); - $ret_val = mkdir($strPath, octdec($mode)); - umask($old_umask); - return $ret_val; - } - - function find_includes($file){ - ob_start(); - $httpd_root = system('httpd -V | awk -F"\"" \'$1==" -D HTTPD_ROOT="{print $2}\''); - ob_end_clean(); - clearstatcache(); - if(is_file($file) && filesize($file) > 0){ - $includes[] = $file; - $inhalt = $this->unix_nl($this->no_comments($file)); - $lines = explode("\n", $inhalt); - if(!empty($lines)){ - foreach($lines as $line){ - if(stristr($line, "include ")){ - $include_file = str_replace("\n", "", trim(shell_exec("echo \"$line\" | awk '{print \$2}'"))); - if(substr($include_file,0,1) != "/"){ - $include_file = $httpd_root."/".$include_file; - } - if(is_file($include_file)){ - if($further_includes = $this->find_includes($include_file)){ - $includes = array_merge($includes, $further_includes); - } - } else { - if(strstr($include_file, "*")){ - $more_files = explode("\n", shell_exec("ls -l $include_file | awk '{print \$9}'")); - if(!empty($more_files)){ - foreach($more_files as $more_file){ - if(is_file($more_file)){ - if($further_includes = $this->find_includes($more_file)){ - $includes = array_merge($includes, $further_includes); - } - } - } - } - } - } - } - } - } - } - if(is_array($includes)){ - $includes = array_unique($includes); - return $includes; - } else { - return false; - } - } - - function edit_dist($var, $val){ - global $$var; - $files = array("/root/ispconfig/dist.inc.php"); - foreach($files as $file){ - if(is_file($file)){ - $file_content = $this->unix_nl($this->rf($file)); - $lines = explode("\n", $file_content); - for($i=0;$iwf($file, $file_content); - } - } - } - - function getDirectoryListing($dirname, $sortorder = "a", $show_subdirs = 0, $show_subdirfiles = 0, $exts = "", $ext_save = 1){ - // This function will return an array with filenames based on the criteria you can set in the variables - // @sortorder : a for ascending (the standard) or d for descending (you can use the "r" for reverse as well, works the same) - // @show_subdirs : 0 for NO, 1 for YES - meaning it will show the names of subdirectories if there are any - // Logically subdirnames will not be checked for the required extentions - // @show_subdirfiles : 0 for NO, 1 for YES - meaning it will show files from the subdirs - // Files from subdirs will be prefixed with the subdir name and checked for the required extentions. - // @exts can be either a string or an array, if not passed to the function, then the default will be a check for common image files - // If exts is set to "all" then all extentions are allowed - // @ext_save : 1 for YES, 0 for NO - meaning it will filter out system files or not (such as .htaccess) - - $dirname = realpath($dirname); - if (!$exts || empty($exts) || $exts == "") { - $exts = array("jpg", "gif", "jpeg", "png"); - } - if ($handle = opendir($dirname)) { - $filelist = array(); - while (false !== ($file = readdir($handle))) { - - // Filter out higher directory references - if ($file != "." && $file != "..") { - // Only look at directories or files, filter out symbolic links - if ( filetype ($dirname."/".$file) != "link") { - // If it's a file, check against valid extentions and add to the list - if ( filetype ($dirname."/".$file) == "file" ) { - if ($this->checkFileExtension($file, $exts, $ext_save)) { - $filelist[] = $file; - } - } - // If it's a directory and either subdirs should be listed or files from subdirs add relevant names to the list - else if ( filetype ($dirname."/".$file) == "dir" && ($show_subdirs == 1 || $show_subdirfiles == 1)) { - if ($show_subdirs == 1) { - $filelist[] = $file; - } - if ($show_subdirfiles == 1) { - $subdirname = $file; - $subdirfilelist = $this->getDirectoryListing($dirname."/".$subdirname."/", $sortorder, $show_subdirs, $show_subdirfiles, $exts, $ext_save); - for ($i = 0 ; $i < count($subdirfilelist) ; $i++) { - $subdirfilelist[$i] = $subdirname."/".$subdirfilelist[$i]; - } - $filelist = array_merge($filelist, $subdirfilelist); - } - - } - - } - } - } - closedir($handle); - - // Sort the results - if (count($filelist) > 1) { - natcasesort($filelist); - if ($sortorder == "d" || $sortorder == "r" ) { - $filelist = array_reverse($filelist, TRUE); - } - } - return $filelist; - } - else { - return false; - } - } - - function checkFileExtension($filename, $exts, $ext_save = 1){ - $passed = FALSE; - if ($ext_save == 1) { - if (preg_match("/^\./", $filename)) { - return $passed; - } - } - if ($exts == "all") { - $passed = TRUE; - return $passed; - } - if (is_string($exts)) { - if (preg_match("/\.". $exts ."$/i", $filename)) { - $passed = TRUE; - return $passed; - } - } else if (is_array($exts)) { - foreach ($exts as $theExt) { - if (preg_match("/\.". $theExt ."$/i", $filename)) { - $passed = TRUE; - return $passed; - } - } - } - return $passed; - } - -} -?> \ No newline at end of file diff --git a/interface/ispconfig/server/lib/classes/getconf.inc.php b/interface/ispconfig/server/lib/classes/getconf.inc.php deleted file mode 100644 index 96e2c9be3..000000000 --- a/interface/ispconfig/server/lib/classes/getconf.inc.php +++ /dev/null @@ -1,65 +0,0 @@ -config[$server_id])) { - $app->uses('ini_parser'); - $server_id = intval($server_id); - $server = $app->db->queryOneRecord("SELECT config FROM server WHERE server_id = $server_id"); - $this->config[$server_id] = $app->ini_parser->parse_ini_string(stripslashes($server["config"])); - } - - if($section == '') { - return $this->config[$server_id]; - } else { - return $this->config[$server_id][$section]; - } - } - - public function get_global_config($section = '') { - global $app; - - if(!is_array($this->config['global'])) { - $app->uses('ini_parser'); - $tmp = $app->db->queryOneRecord("SELECT config FROM sys_ini WHERE sysini_id = 1"); - $this->config['global'] = $app->ini_parser->parse_ini_string(stripslashes($tmp["config"])); - } - return ($section == '') ? $this->config['global'] : $this->config['global'][$section]; - } - -} - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/lib/classes/ini_parser.inc.php b/interface/ispconfig/server/lib/classes/ini_parser.inc.php deleted file mode 100644 index 0e9dc918a..000000000 --- a/interface/ispconfig/server/lib/classes/ini_parser.inc.php +++ /dev/null @@ -1,69 +0,0 @@ -config[$section][$item] = trim($matches[2]); - } - } - } - return $this->config; - } - - - - function get_ini_string($file) { - $content = ''; - foreach($this->config as $section => $data) { - $content .= "[$section]\n"; - foreach($data as $item => $value) { - if($value != '') $content .= "$item=$value\n"; - } - } - return $content; - } - -} - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/lib/classes/mod_mail_base.inc.php b/interface/ispconfig/server/lib/classes/mod_mail_base.inc.php deleted file mode 100644 index f989e2f8b..000000000 --- a/interface/ispconfig/server/lib/classes/mod_mail_base.inc.php +++ /dev/null @@ -1,76 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/server/lib/classes/modules.inc.php b/interface/ispconfig/server/lib/classes/modules.inc.php deleted file mode 100644 index f5e14201c..000000000 --- a/interface/ispconfig/server/lib/classes/modules.inc.php +++ /dev/null @@ -1,250 +0,0 @@ -debug) $app->log("Loading Module: $module_name",LOGLEVEL_DEBUG); - $app->loaded_modules[$module_name] = new $module_name; - $app->loaded_modules[$module_name]->onLoad(); - } - } - } - } else { - $app->log("Modules directory missing: $modules_dir",LOGLEVEL_ERROR); - } - - } - - /* - This function is called by the modules to register for a specific - table change notification - */ - - function registerTableHook($table_name,$module_name,$function_name) { - global $app; - $this->notification_hooks[$table_name][] = array('module' => $module_name, 'function' => $function_name); - if($this->debug) $app->log("Registered TableHook '$table_name' in module '$module_name' for processing function '$function_name'",LOGLEVEL_DEBUG); - } - - /* - This function goes through all new records in the - sys_datalog table and and calls the function in the - modules that hooked on to the table change. - */ - - function processDatalog() { - global $app,$conf; - - //* If its a multiserver setup - if($app->db->dbHost != $app->dbmaster->dbHost) { - if($conf["mirror_server_id"] > 0) { - $sql = "SELECT * FROM sys_datalog WHERE datalog_id > ".$conf['last_datalog_id']." AND (server_id = ".$conf["server_id"]." OR server_id = ".$conf["mirror_server_id"]." OR server_id = 0) ORDER BY datalog_id"; - } else { - $sql = "SELECT * FROM sys_datalog WHERE datalog_id > ".$conf['last_datalog_id']." AND (server_id = ".$conf["server_id"]." OR server_id = 0) ORDER BY datalog_id"; - } - - $records = $app->dbmaster->queryAllRecords($sql); - foreach($records as $d) { - - //** encode data to utf-8 and unserialize it - if(!$data = unserialize(stripslashes($d["data"]))) { - $data = unserialize($d["data"]); - } - //** Decode data back to locale - foreach($data['old'] as $key => $val) { - $data['old'][$key] = utf8_decode($val); - } - foreach($data['new'] as $key => $val) { - $data['new'][$key] = utf8_decode($val); - } - - $replication_error = false; - - $this->current_datalog_id = $d["datalog_id"]; - - if(count($data['new']) > 0) { - if($d["action"] == 'i' || $d["action"] == 'u') { - $idx = explode(":",$d["dbidx"]); - $tmp_sql1 = ''; - $tmp_sql2 = ''; - foreach($data['new'] as $fieldname => $val) { - $tmp_sql1 .= "`$fieldname`,"; - $tmp_sql2 .= "'".$app->db->quote($val)."',"; - } - $tmp_sql1 = substr($tmp_sql1,0,-1); - $tmp_sql2 = substr($tmp_sql2,0,-1); - //$tmp_sql1 .= "$idx[0]"; - //$tmp_sql2 .= "$idx[1]"; - $sql = "REPLACE INTO $d[dbtable] ($tmp_sql1) VALUES ($tmp_sql2)"; - $app->db->errorNumber = 0; - $app->db->errorMessage = ''; - $app->db->query($sql); - if($app->db->errorNumber > 0) { - $replication_error = true; - $app->log("Replication failed. Error: (" . $d[dbtable] . ") in mysql server: (".$app->db->dbHost.") " . $app->db->errorMessage . " # SQL: " . $sql,LOGLEVEL_ERROR); - } - $app->log("Replicated from master: ".$sql,LOGLEVEL_DEBUG); - } - /* - if($d["action"] == 'u') { - $sql = "UPDATE $d[dbtable] SET "; - foreach($data['new'] as $fieldname => $val) { - $sql .= "`$fieldname` = '$val',"; - } - $sql = substr($sql,0,-1); - $idx = explode(":",$d["dbidx"]); - $sql .= " WHERE $idx[0] = $idx[1]"; - $app->db->query($sql); - if($app->db->errorNumber > 0) { - $replication_error = true; - $app->log("Replication failed. Error: (" . $d[dbtable] . ") " . $app->db->errorMessage . " # SQL: " . $sql,LOGLEVEL_ERROR); - } - $app->log("Replicated from master: ".$sql,LOGLEVEL_DEBUG); - } - */ - if($d["action"] == 'd') { - $idx = explode(":",$d["dbidx"]); - $sql = "DELETE FROM $d[dbtable] "; - $sql .= " WHERE $idx[0] = $idx[1]"; - $app->db->query($sql); - if($app->db->errorNumber > 0) { - $replication_error = true; - $app->log("Replication failed. Error: (" . $d[dbtable] . ") " . $app->db->errorMessage . " # SQL: " . $sql,LOGLEVEL_ERROR); - } - $app->log("Replicated from master: ".$sql,LOGLEVEL_DEBUG); - } - - - if($replication_error == false) { - if(is_array($data['old']) || is_array($data['new'])) { - $this->raiseTableHook($d["dbtable"],$d["action"],$data); - } else { - $app->log("Data array was empty for datalog_id ".$d["datalog_id"],LOGLEVEL_WARN); - } - //$this->raiseTableHook($d["dbtable"],$d["action"],$data); - //$app->dbmaster->query("DELETE FROM sys_datalog WHERE datalog_id = ".$d["datalog_id"]); - //$app->log("Deleting sys_datalog ID ".$d["datalog_id"],LOGLEVEL_DEBUG); - $app->dbmaster->query("UPDATE server SET updated = ".$d["datalog_id"]." WHERE server_id = ".$conf["server_id"]); - $app->log("Processed datalog_id ".$d["datalog_id"],LOGLEVEL_DEBUG); - } else { - $app->log("Error in Replication, changes were not processed.",LOGLEVEL_ERROR); - /* - * If there is any error in processing the datalog we can't continue, because - * we do not know if the newer actions require this (old) one. - */ - return; - } - } else { - $app->log("Datalog does not contain any changes for this record ".$d["datalog_id"],LOGLEVEL_DEBUG); - } - } - - //* if we have a single server setup - } else { - $sql = "SELECT * FROM sys_datalog WHERE datalog_id > ".$conf['last_datalog_id']." AND (server_id = ".$conf["server_id"]." OR server_id = 0) ORDER BY datalog_id"; - $records = $app->db->queryAllRecords($sql); - foreach($records as $d) { - - //** encode data to utf-8 to be able to unserialize it and then unserialize it - if(!$data = unserialize(stripslashes($d["data"]))) { - $data = unserialize($d["data"]); - } - //** decode data back to current locale - foreach($data['old'] as $key => $val) { - $data['old'][$key] = utf8_decode($val); - } - foreach($data['new'] as $key => $val) { - $data['new'][$key] = utf8_decode($val); - } - - $this->current_datalog_id = $d["datalog_id"]; - if(is_array($data['old']) || is_array($data['new'])) { - $this->raiseTableHook($d["dbtable"],$d["action"],$data); - } else { - $app->log("Data array was empty for datalog_id ".$d["datalog_id"],LOGLEVEL_WARN); - } - //$app->db->query("DELETE FROM sys_datalog WHERE datalog_id = ".$rec["datalog_id"]); - //$app->log("Deleting sys_datalog ID ".$rec["datalog_id"],LOGLEVEL_DEBUG); - $app->db->query("UPDATE server SET updated = ".$d["datalog_id"]." WHERE server_id = ".$conf["server_id"]); - $app->log("Processed datalog_id ".$d["datalog_id"],LOGLEVEL_DEBUG); - } - } - - - - - - } - - function raiseTableHook($table_name,$action,$data) { - global $app; - - // Get the hooks for this table - $hooks = (isset($this->notification_hooks[$table_name]))?$this->notification_hooks[$table_name]:''; - if($this->debug) $app->log("Raised TableHook for table: '$table_name'",LOGLEVEL_DEBUG); - - if(is_array($hooks)) { - foreach($hooks as $hook) { - $module_name = $hook["module"]; - $function_name = $hook["function"]; - // Claa the processing function of the module - if($this->debug) $app->log("Call function '$function_name' in module '$module_name' raised by TableHook '$table_name'.",LOGLEVEL_DEBUG); - call_user_method($function_name,$app->loaded_modules[$module_name],$table_name,$action,$data); - unset($module_name); - unset($function_name); - } - } - unset($hook); - unset($hooks); - } - -} - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/lib/classes/plugins.inc.php b/interface/ispconfig/server/lib/classes/plugins.inc.php deleted file mode 100644 index f1e041703..000000000 --- a/interface/ispconfig/server/lib/classes/plugins.inc.php +++ /dev/null @@ -1,130 +0,0 @@ - $file) { - include_once($plugins_dir.$file); - if($this->debug) $app->log("Loading Plugin: $plugin_name",LOGLEVEL_DEBUG); - $app->loaded_plugins[$plugin_name] = new $plugin_name; - $app->loaded_plugins[$plugin_name]->onLoad(); - } - } else { - $app->log("Unable to open the plugin directory: $plugins_dir",LOGLEVEL_ERROR); - } - } else { - $app->log("Plugin directory missing: $plugins_dir",LOGLEVEL_ERROR); - } - - } - - /* - This function is used by the modules to announce which events they provide - */ - - function announceEvents($module_name,$events) { - global $app; - foreach($events as $event_name) { - $this->available_events[$event_name] = $module_name; - if($this->debug) $app->log("Announced event: $event_name",LOGLEVEL_DEBUG); - } - } - - - /* - This function is called by the plugin to register for an event - */ - - function registerEvent($event_name,$plugin_name,$function_name) { - global $app; - if(!isset($this->available_events[$event_name])) { - $app->log("Unable to register the function '$function_name' in the plugin '$plugin_name' for event '$event_name'",LOGLEVEL_DEBUG); - } else { - $this->subscribed_events[$event_name][] = array('plugin' => $plugin_name, 'function' => $function_name); - if($this->debug) $app->log("Registered the function '$function_name' in the plugin '$plugin_name' for event '$event_name'.",LOGLEVEL_DEBUG); - } - } - - - function raiseEvent($event_name,$data) { - global $app; - - // Get the subscriptions for this event - $events = (isset($this->subscribed_events[$event_name]))?$this->subscribed_events[$event_name]:''; - if($this->debug) $app->log("Raised event: '$event_name'",LOGLEVEL_DEBUG); - - if(is_array($events)) { - foreach($events as $event) { - $plugin_name = $event["plugin"]; - $function_name = $event["function"]; - // Call the processing function of the plugin - $app->log("Call function '$function_name' in plugin '$plugin_name' raised by event '$event_name'.",LOGLEVEL_DEBUG); - call_user_method($function_name,$app->loaded_plugins[$plugin_name],$event_name,$data); - unset($plugin_name); - unset($function_name); - } - } - unset($event); - unset($events); - } - -} - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/lib/classes/services.inc.php b/interface/ispconfig/server/lib/classes/services.inc.php deleted file mode 100644 index 2441409e8..000000000 --- a/interface/ispconfig/server/lib/classes/services.inc.php +++ /dev/null @@ -1,80 +0,0 @@ -registered_services[$service_name])) { - $this->delayed_restarts[$service_name] = $action; - } else { - $app->log("Unable to add a delayed restart for '$service_name'. Service '$service_name' is not registered.",LOGLEVEL_WARNING); - } - - } - - // This function restarts a service when the function is called - function restartService($service_name,$action = 'restart') { - global $app; - - if(is_array($this->registered_services[$service_name])) { - $module_name = $this->registered_services[$service_name]["module"]; - $function_name = $this->registered_services[$service_name]["function"]; - $app->log("Call function '$function_name' in module '$module_name'.",LOGLEVEL_DEBUG); - call_user_method($function_name,$app->loaded_modules[$module_name],$action); - } else { - $app->log("Unable to restart $service_name. Service $service_name is not registered.",LOGLEVEL_WARNING); - } - - } - - // This function is used to register callback functions for services that can be restarted - function registerService($service_name,$module_name, $function_name) { - global $app; - $this->registered_services[$service_name] = array('module' => $module_name, 'function' => $function_name); - if($this->debug) $app->log("Registered Service '$service_name' in module '$module_name' for processing function '$function_name'",LOGLEVEL_DEBUG); - } - - // This function is called at the end of the server script to restart services. - function processDelayedActions() { - global $app; - foreach($this->delayed_restarts as $service_name => $action) { - $this->restartService($service_name,$action); - } - } - -} -?> \ No newline at end of file diff --git a/interface/ispconfig/server/lib/classes/system.inc.php b/interface/ispconfig/server/lib/classes/system.inc.php deleted file mode 100644 index 407289fa6..000000000 --- a/interface/ispconfig/server/lib/classes/system.inc.php +++ /dev/null @@ -1,1232 +0,0 @@ -server_id = $go_info["isp"]["server_id"]; - $this->server_conf = $go_info["isp"]["server_conf"]; - $this->server_conf["passwd_datei"] = '/etc/passwd'; - $this->server_conf["shadow_datei"] = '/etc/shadow'; - $this->server_conf["group_datei"] = '/etc/group'; - } - - /** - * Get the hostname from the server - * - * @return string - */ - public function hostname(){ - $dist = $this->server_conf["dist"]; - - ob_start(); - passthru("hostname"); - $hostname = ob_get_contents(); - ob_end_clean(); - $hostname = trim($hostname); - ob_start(); - if(!strstr($dist, "freebsd")){ - passthru("dnsdomainname"); - } else { - passthru("domainname"); - } - $domainname = ob_get_contents(); - ob_end_clean(); - $domainname = trim($domainname); - if($domainname != ""){ - if(!strstr($hostname, $domainname)) $hostname .= ".".$domainname; - } - return $hostname; - } - - /** - * Add an user to the system - * - */ - public function adduser($user_username, $uid, $gid, $username, $homedir, $shell, $passwort = '*'){ - global $app; - if($this->is_user($user_username)){ - return false; - } else { - if(trim($user_username) != '') { - $user_datei = $this->server_conf["passwd_datei"]; - $shadow_datei = $this->server_conf["shadow_datei"]; - $shell = realpath($shell); - if(trim($passwort) == "") $passwort = '*'; - $new_user = "\n$user_username:x:$uid:$gid:$username:$homedir:$shell\n"; - $app->log->msg("USER: $new_user"); - $app->file->af($user_datei, $new_user); - if($shadow_datei == "/etc/shadow"){ - $datum = time(); - $tage = floor($datum/86400); - $new_passwd = "\n$user_username:$passwort:$tage:0:99999:7:::\n"; - } else { - $new_passwd = "\n$user_username:$passwort:$uid:$gid::0:0:$username:$homedir:$shell\n"; - } - $app->file->af($shadow_datei, $new_passwd); - // TB: leere Zeilen entfernen - $app->file->remove_blank_lines($shadow_datei); - $app->file->remove_blank_lines($user_datei); - // TB: user Sortierung deaktiviert - //$this->order_users_groups(); - if($shadow_datei != "/etc/shadow"){ - $app->file->af($shadow_datei, "\n"); - // TB: leere Zeilen entfernen - $app->file->remove_blank_lines($shadow_datei); - $app->log->caselog("pwd_mkdb $shadow_datei &> /dev/null", $this->FILE, __LINE__); - } - return true; - } - } - } - - /** - * Update users when someone edit it - * - */ - function updateuser($user_username, $uid, $gid, $username, $homedir, $shell, $passwort = '*'){ - //* First delete the users - $this->deluser($user_username); - //* Add the user again - $this->adduser($user_username, $uid, $gid, $username, $homedir, $shell, $passwort); - } - - /** - * Lock the user - * - */ - function deactivateuser($user_username){ - $passwort = str_rot13($this->getpasswd($user_username)); - $user_attr = $this->get_user_attributes($user_username); - $uid = $user_attr["uid"]; - $gid = $user_attr["gid"]; - $username = $user_attr["name"]; - $homedir = $user_attr["homedir"]; - $shell = "/dev/null"; - $this->deluser($user_username); - $this->adduser($user_username, $uid, $gid, $username, $homedir, $shell, $passwort); - } - /** - * Delete a user from the system - * - */ - function deluser($user_username){ - global $app; - if($this->is_user($user_username)){ - $user_datei = $this->server_conf["passwd_datei"]; - $shadow_datei = $this->server_conf["shadow_datei"]; - $users = $app->file->rf($user_datei); - $lines = explode("\n", $users); - if(is_array($lines)){ - $num_lines = sizeof($lines); - for($i=0;$i<$num_lines;$i++){ - if(trim($lines[$i]) != ""){ - list($f1,) = explode(":", $lines[$i]); - if($f1 != $user_username) $new_lines[] = $lines[$i]; - } - } - $new_users = implode("\n", $new_lines); - $app->file->wf($user_datei, $new_users); - unset($new_lines); - unset($lines); - unset($new_users); - } - $app->file->remove_blank_lines($user_datei); - - $passwds = $app->file->rf($shadow_datei); - $lines = explode("\n", $passwds); - if(is_array($lines)){ - $num_lines = sizeof($lines); - for($i=0;$i<$num_lines;$i++){ - if(trim($lines[$i]) != ""){ - list($f1,) = explode(":", $lines[$i]); - if($f1 != $user_username) $new_lines[] = $lines[$i]; - } - } - $new_passwds = implode("\n", $new_lines); - $app->file->wf($shadow_datei, $new_passwds); - unset($new_lines); - unset($lines); - unset($new_passwds); - } - $app->file->remove_blank_lines($shadow_datei); - - $group_file = $app->file->rf($this->server_conf["group_datei"]); - $group_file_lines = explode("\n", $group_file); - foreach($group_file_lines as $group_file_line){ - if(trim($group_file_line) != ""){ - list($f1, $f2, $f3, $f4) = explode(":", $group_file_line); - $group_users = explode(",", str_replace(" ", "", $f4)); - if(in_array($user_username, $group_users)){ - $g_users = array(); - foreach($group_users as $group_user){ - if($group_user != $user_username) $g_users[] = $group_user; - } - $f4 = implode(",", $g_users); - } - $new_group_file[] = $f1.":".$f2.":".$f3.":".$f4; - } - } - $new_group_file = implode("\n", $new_group_file); - $app->file->wf($this->server_conf["group_datei"], $new_group_file); - // TB: auskommentiert - //$this->order_users_groups(); - - if($shadow_datei != "/etc/shadow"){ - $app->file->af($shadow_datei, "\n"); - $app->log->caselog("pwd_mkdb $shadow_datei &> /dev/null", $this->FILE, __LINE__); - } - return true; - } else { - return false; - } - } - - /** - * Add a usergroup to the system - * - */ - function addgroup($group, $gid, $members = ''){ - global $app; - if($this->is_group($group)){ - return false; - } else { - $group_datei = $this->server_conf["group_datei"]; - $shadow_datei = $this->server_conf["shadow_datei"]; - $new_group = "\n$group:x:$gid:$members\n"; - $app->file->af($group_datei, $new_group); - - // TB: auskommentiert - //$this->order_users_groups(); - if($shadow_datei != "/etc/shadow"){ - $app->log->caselog("pwd_mkdb $shadow_datei &> /dev/null", $this->FILE, __LINE__); - } - return true; - } - } - - /** - * Update usersgroup in way to delete and add it again - * - */ - function updategroup($group, $gid, $members = ''){ - $this->delgroup($group); - $this->addgroup($group, $gid, $members); - } - - /** - * Delete a usergroup from the system - * - */ - function delgroup($group){ - global $app; - if($this->is_group($group)){ - $group_datei = $this->server_conf["group_datei"]; - $shadow_datei = $this->server_conf["shadow_datei"]; - $groups = $app->file->rf($group_datei); - $lines = explode("\n", $groups); - if(is_array($lines)){ - $num_lines = sizeof($lines); - for($i=0;$i<$num_lines;$i++){ - if(trim($lines[$i]) != ""){ - list($f1,) = explode(":", $lines[$i]); - if($f1 != $group) $new_lines[] = $lines[$i]; - } - } - $new_groups = implode("\n", $new_lines); - $app->file->wf($group_datei, $new_groups); - unset($new_lines); - unset($lines); - unset($new_groups); - } - // TB: auskommentiert - //$this->order_users_groups(); - if($shadow_datei != "/etc/shadow"){ - $app->log->caselog("pwd_mkdb $shadow_datei &> /dev/null", $this->FILE, __LINE__); - } - return true; - } else { - return false; - } - } - /** - * Order usergroups - * - */ - function order_users_groups(){ - global $app; - $user_datei = $this->server_conf["passwd_datei"]; - $shadow_datei = $this->server_conf["shadow_datei"]; - $group_datei = $this->server_conf["group_datei"]; - - $groups = $app->file->no_comments($group_datei); - $lines = explode("\n", $groups); - if(is_array($lines)){ - foreach($lines as $line){ - if(trim($line) != ""){ - list($f1, $f2, $f3, $f4) = explode(":", $line); - $arr[$f3] = $line; - } - } - } - ksort($arr); - reset($arr); - if($shadow_datei != "/etc/shadow"){ - $app->file->wf($group_datei, $app->file->remove_blank_lines(implode("\n", $arr), 0)."\n"); - }else { - $app->file->wf($group_datei, $app->file->remove_blank_lines(implode("\n", $arr), 0)); - } - unset($arr); - - $users = $app->file->no_comments($user_datei); - $lines = explode("\n", $users); - if(is_array($lines)){ - foreach($lines as $line){ - if(trim($line) != ""){ - list($f1, $f2, $f3,) = explode(":", $line); - if($f1 != "toor"){ - $arr[$f3] = $line; - } else { - $arr[70000] = $line; - } - } - } - } - ksort($arr); - reset($arr); - $app->file->wf($user_datei, $app->file->remove_blank_lines(implode("\n", $arr), 0)); - unset($arr); - - $passwds = $app->file->no_comments($shadow_datei); - $lines = explode("\n", $passwds); - if(is_array($lines)){ - foreach($lines as $line){ - if(trim($line) != ""){ - list($f1, $f2, $f3,) = explode(":", $line); - if($f1 != "toor"){ - $uid = $this->getuid($f1); - if(!is_bool($uid)) $arr[$uid] = $line; - } else { - $arr[70000] = $line; - } - } - } - } - ksort($arr); - reset($arr); - $app->file->wf($shadow_datei, $app->file->remove_blank_lines(implode("\n", $arr), 0)); - unset($arr); - } - - /** - * Find a user / group id - * - */ - function find_uid_gid($min, $max){ - global $app; - if($min < $max && $min >= 0 && $max >= 0 && $min <= 65536 && $max <= 65536 && is_int($min) && is_int($max)){ - for($i=$min;$i<=$max;$i++){ - $uid_arr[$i] = $gid_arr[$i] = 1; - } - $user_datei = $this->server_conf["passwd_datei"]; - $group_datei = $this->server_conf["group_datei"]; - - $users = $app->file->no_comments($user_datei); - $lines = explode("\n", $users); - if(is_array($lines)){ - foreach($lines as $line){ - if(trim($line) != ""){ - list($f1, $f2, $f3, $f4, $f5, $f6, $f7) = explode(":", $line); - if($f3 >= $min && $f3 <= $max) unset($uid_arr[$f3]); - } - } - if(!empty($uid_arr)){ - foreach($uid_arr as $key => $val){ - $uids[] = $key; - } - $min_uid = min($uids); - unset($uid_arr); - } else { - return false; - } - } - - $groups = $app->file->no_comments($group_datei); - $lines = explode("\n", $groups); - if(is_array($lines)){ - foreach($lines as $line){ - if(trim($line) != ""){ - list($f1, $f2, $f3, $f4) = explode(":", $line); - if($f3 >= $min && $f3 <= $max) unset($gid_arr[$f3]); - } - } - if(!empty($gid_arr)){ - foreach($gid_arr as $key => $val){ - $gids[] = $key; - } - $min_gid = min($gids); - unset($gid_arr); - } else { - return false; - } - } - - $result = array_intersect($uids, $gids); - $new_id = (max($result)); - unset($uids); - unset($gids); - unset($result); - if($new_id <= $max){ - return $new_id; - } else { - return false; - } - } else { - return false; - } - } - - /** - * Check if the users is really a user into the system - * - */ - function is_user($user){ - global $app; - $user_datei = $this->server_conf["passwd_datei"]; - $users = $app->file->no_comments($user_datei); - $lines = explode("\n", $users); - if(is_array($lines)){ - foreach($lines as $line){ - if(trim($line) != ""){ - list($f1, $f2, $f3, $f4, $f5, $f6, $f7) = explode(":", $line); - if($f1 == $user) return true; - } - } - } - return false; - } - - /** - * Check if the group is on this system - * - */ - function is_group($group){ - global $app; - $group_datei = $this->server_conf["group_datei"]; - $groups = $app->file->no_comments($group_datei); - $lines = explode("\n", $groups); - if(is_array($lines)){ - foreach($lines as $line){ - if(trim($line) != ""){ - list($f1, $f2, $f3, $f4) = explode(":", $line); - if($f1 == $group) return true; - } - } - } - return false; - } - - /* - // Alternative implementation of the is_group function. Should be faster then the old one To be tested. - function is_group($group) { - $groupfile = '/etc/group'; - if(is_file($groupfile)) { - $handle = fopen ($groupfile, "r"); - while (!feof($handle)) { - $line = trim(fgets($handle, 4096)); - if($line != ""){ - $parts = explode(":", $line); - if($parts[0] == $group) { - fclose ($handle); - return true; - } - } - } - fclose ($handle); - } - return false; - } - */ - - function root_group(){ - global $app; - $group_datei = $this->server_conf["group_datei"]; - $groups = $app->file->no_comments($group_datei); - $lines = explode("\n", $groups); - if(is_array($lines)){ - foreach($lines as $line){ - if(trim($line) != ""){ - list($f1, $f2, $f3, $f4) = explode(":", $line); - if($f3 == 0) return $f1; - } - } - } - return false; - } - - /** - * Get the groups of an user - * - */ - function get_user_groups($username){ - global $app; - $user_groups = array(); - $group_datei = $this->server_conf["group_datei"]; - $groups = $app->file->no_comments($group_datei); - $lines = explode("\n", $groups); - if(is_array($lines)){ - foreach($lines as $line){ - if(trim($line) != ""){ - list($f1, $f2, $f3, $f4) = explode(":", $line); - if(intval($f3) < intval($this->server_conf["groupid_von"]) && trim($f1) != 'users'){ - $tmp_group_users = explode(',', str_replace(' ', '', $f4)); - if(in_array($username, $tmp_group_users) && trim($f1) != '') $user_groups[] = $f1; - unset($tmp_group_users); - } - } - } - } - if(!empty($user_groups)) return implode(',', $user_groups); - return ''; - } - - /** - * Get a user password - * - */ - function getpasswd($user){ - global $app; - if($this->is_user($user)){ - $shadow_datei = $this->server_conf["shadow_datei"]; - $passwds = $app->file->no_comments($shadow_datei); - $lines = explode("\n", $passwds); - if(is_array($lines)){ - foreach($lines as $line){ - if(trim($line) != ""){ - list($f1, $f2,) = explode(":", $line); - if($f1 == $user) return $f2; - } - } - } - } else { - return false; - } - } - - /** - * Get the user id from an user - * - */ - function getuid($user){ - global $app; - if($this->is_user($user)){ - $user_datei = $this->server_conf["passwd_datei"]; - $users = $app->file->no_comments($user_datei); - $lines = explode("\n", $users); - if(is_array($lines)){ - foreach($lines as $line){ - if(trim($line) != ""){ - list($f1, $f2, $f3,) = explode(":", $line); - if($f1 == $user) return $f3; - } - } - } - } else { - return false; - } - } - - /** - * Get all information from a user - * - */ - function get_user_attributes($user){ - global $app; - if($this->is_user($user)){ - $user_datei = $this->server_conf["passwd_datei"]; - $users = $app->file->no_comments($user_datei); - $lines = explode("\n", $users); - if(is_array($lines)){ - foreach($lines as $line){ - if(trim($line) != ""){ - list($f1, $f2, $f3, $f4, $f5, $f6, $f7) = explode(":", $line); - if($f1 == $user){ - $user_attr["username"] = $f1; - $user_attr["x"] = $f2; - $user_attr["uid"] = $f3; - $user_attr["gid"] = $f4; - $user_attr["name"] = $f5; - $user_attr["homedir"] = $f6; - $user_attr["shell"] = $f7; - return $user_attr; - } - } - } - } - } else { - return false; - } - } - - /** - * Edit the owner of a file - * - */ - function chown($file, $owner, $group = ''){ - $owner_change = @chown($file, $owner); - if($group != ""){ - $group_change = @chgrp($file, $group); - } else { - $group_change = 1; - } - if($owner_change && $group_change){ - return true; - } else { - return false; - } - } - - /** - * Add an user to a specific group - * - */ - function add_user_to_group($group, $user = 'admispconfig'){ - global $app; - $group_file = $app->file->rf($this->server_conf["group_datei"]); - $group_file_lines = explode("\n", $group_file); - foreach($group_file_lines as $group_file_line){ - list($group_name,$group_x,$group_id,$group_users) = explode(":",$group_file_line); - if($group_name == $group){ - $group_users = explode(",", str_replace(" ", "", $group_users)); - if(!in_array($user, $group_users)){ - $group_users[] = $user; - } - $group_users = implode(",", $group_users); - if(substr($group_users,0,1) == ",") $group_users = substr($group_users,1); - $group_file_line = $group_name.":".$group_x.":".$group_id.":".$group_users; - } - $new_group_file[] = $group_file_line; - } - $new_group_file = implode("\n", $new_group_file); - $app->file->wf($this->server_conf["group_datei"], $new_group_file); - $app->file->remove_blank_lines($this->server_conf["group_datei"]); - if($this->server_conf["shadow_datei"] != "/etc/shadow"){ - $app->log->caselog("pwd_mkdb ".$this->server_conf["shadow_datei"]." &> /dev/null", $this->FILE, __LINE__); - } - } - - function usermod($user, $groups){ - global $app; - if($this->is_user($user)){ - $groups = explode(",", str_replace(" ", "", $groups)); - $group_file = $app->file->rf($this->server_conf["group_datei"]); - $group_file_lines = explode("\n", $group_file); - foreach($group_file_lines as $group_file_line){ - if(trim($group_file_line) != ""){ - list($f1, $f2, $f3, $f4) = explode(":", $group_file_line); - $group_users = explode(",", str_replace(" ", "", $f4)); - if(!in_array($f1, $groups)){ - if(in_array($user, $group_users)){ - $g_users = array(); - foreach($group_users as $group_user){ - if($group_user != $user) $g_users[] = $group_user; - } - $f4 = implode(",", $g_users); - } - } else { - if(!in_array($user, $group_users)){ - if(trim($group_users[0]) == "") unset($group_users); - $group_users[] = $user; - } - $f4 = implode(",", $group_users); - } - $new_group_file[] = $f1.":".$f2.":".$f3.":".$f4; - } - } - $new_group_file = implode("\n", $new_group_file); - $app->file->wf($this->server_conf["group_datei"], $new_group_file); - $app->file->remove_blank_lines($this->server_conf["group_datei"]); - if($this->server_conf["shadow_datei"] != "/etc/shadow"){ - $app->log->caselog("pwd_mkdb ".$this->server_conf["shadow_datei"]." &> /dev/null", $this->FILE, __LINE__); - } - return true; - } else { - return false; - } - } - - /**boot autostart etc - * - */ - function rc_edit($service, $rl, $action){ - // $action = "on|off"; - global $app; - $dist_init_scripts = $app->system->server_conf["dist_init_scripts"]; - $dist_runlevel = $app->system->server_conf["dist_runlevel"]; - $dist = $app->system->server_conf["dist"]; - if(trim($dist_runlevel) == ""){ // falls es keine runlevel gibt (FreeBSD) - if($action == "on"){ - @symlink($dist_init_scripts."/".$service, $dist_init_scripts."/".$service.".sh"); - } - if($action == "off"){ - if(is_link($dist_init_scripts."/".$service.".sh")){ - unlink($dist_init_scripts."/".$service.".sh"); - } else { - exec("mv -f ".$dist_init_scripts."/".$service.".sh ".$dist_init_scripts."/".$service." &> /dev/null"); - } - } - } else { // Linux - if(substr($dist, 0,4) == 'suse'){ - if($action == "on"){ - exec("chkconfig --add $service &> /dev/null"); - } - if($action == "off"){ - exec("chkconfig --del $service &> /dev/null"); - } - } else { - $runlevels = explode(",", $rl); - foreach($runlevels as $runlevel){ - $runlevel = trim($runlevel); - if($runlevel != "" && is_dir($dist_runlevel."/rc".$runlevel.".d")){ - $handle=opendir($dist_runlevel."/rc".$runlevel.".d"); - while($file = readdir($handle)){ - if($file != "." && $file != ".."){ - $target = @readlink($dist_runlevel."/rc".$runlevel.".d/".$file); - if(strstr($file, $service) && strstr($target, $service) && substr($file,0,1) == "S") $ln_arr[$runlevel][] = $dist_runlevel."/rc".$runlevel.".d/".$file; - } - } - closedir($handle); - } - if($action == "on"){ - if(!is_array($ln_arr[$runlevel])) @symlink($dist_init_scripts."/".$service, $dist_runlevel."/rc".$runlevel.".d/S99".$service); - } - if($action == "off"){ - if(is_array($ln_arr[$runlevel])){ - foreach($ln_arr[$runlevel] as $link){ - unlink($link); - } - } - } - } - } - } - } - - /** - * Filter information from the commands - * - */ - function grep($content, $string, $params = ''){ - global $app; - // params: i, v, w - $content = $app->file->unix_nl($content); - $lines = explode("\n", $content); - foreach($lines as $line){ - if(!strstr($params, 'w')){ - if(strstr($params, 'i')){ - if(strstr($params, 'v')){ - if(!stristr($line, $string)) $find[] = $line; - } else { - if(stristr($line, $string)) $find[] = $line; - } - } else { - if(strstr($params, 'v')){ - if(!strstr($line, $string)) $find[] = $line; - } else { - if(strstr($line, $string)) $find[] = $line; - } - } - } else { - if(strstr($params, 'i')){ - if(strstr($params, 'v')){ - if(!$app->string->is_word($string, $line, 'i')) $find[] = $line; - } else { - if($app->string->is_word($string, $line, 'i')) $find[] = $line; - } - } else { - if(strstr($params, 'v')){ - if(!$app->string->is_word($string, $line)) $find[] = $line; - } else { - if($app->string->is_word($string, $line)) $find[] = $line; - } - } - } - } - if(is_array($find)){ - $ret_val = implode("\n", $find); - if(substr($ret_val,-1) != "\n") $ret_val .= "\n"; - $find = NULL; - return $ret_val; - } else { - return false; - } - } - - /** - * Strip content from fields - * - */ - function cut($content, $field, $delimiter = ':'){ - global $app; - $content = $app->file->unix_nl($content); - $lines = explode("\n", $content); - foreach($lines as $line){ - $elms = explode($delimiter, $line); - $find[] = $elms[($field-1)]; - } - if(is_array($find)){ - $ret_val = implode("\n", $find); - if(substr($ret_val,-1) != "\n") $ret_val .= "\n"; - $find = NULL; - return $ret_val; - } else { - return false; - } - } - - /** - * Get the content off a file - * - */ - function cat($file){ - global $app; - return $app->file->rf($file); - } - - /** - * Control services to restart etc - * - */ - function daemon_init($daemon, $action){ - //* $action = start|stop|restart|reload - global $app; - $dist = $this->server_conf["dist"]; - $dist_init_scripts = $this->server_conf["dist_init_scripts"]; - if(!strstr($dist, "freebsd")){ - $app->log->caselog("$dist_init_scripts/$daemon $action &> /dev/null", $this->FILE, __LINE__); - } else { - if(is_file($dist_init_scripts."/".$daemon.".sh") || is_link($dist_init_scripts."/".$daemon.".sh")){ - if($action == "start" || $action == "stop"){ - $app->log->caselog($dist_init_scripts."/".$daemon.".sh ".$action." &> /dev/null", $this->FILE, __LINE__); - } else { - $app->log->caselog($dist_init_scripts."/".$daemon.".sh stop &> /dev/null", $this->FILE, __LINE__); - sleep(3); - $app->log->caselog($dist_init_scripts."/".$daemon.".sh start &> /dev/null", $this->FILE, __LINE__); - } - } else { - if(is_file($dist_init_scripts."/".$daemon) || is_link($dist_init_scripts."/".$daemon)){ - if($action == "start" || $action == "stop"){ - $app->log->caselog($dist_init_scripts."/".$daemon." ".$action." &> /dev/null", $this->FILE, __LINE__); - } else { - $app->log->caselog($dist_init_scripts."/".$daemon." stop &> /dev/null", $this->FILE, __LINE__); - sleep(3); - $app->log->caselog($dist_init_scripts."/".$daemon." start &> /dev/null", $this->FILE, __LINE__); - } - } else { - if(is_file("/etc/rc.d/".$daemon) || is_link("/etc/rc.d/".$daemon)){ - if($action == "start" || $action == "stop"){ - $app->log->caselog("/etc/rc.d/".$daemon." ".$action." &> /dev/null", $this->FILE, __LINE__); - } else { - $app->log->caselog("/etc/rc.d/".$daemon." stop &> /dev/null", $this->FILE, __LINE__); - sleep(3); - $app->log->caselog("/etc/rc.d/".$daemon." start &> /dev/null", $this->FILE, __LINE__); - } - } - } - } - } - } - - function netmask($netmask){ - list($f1,$f2,$f3,$f4) = explode(".", trim($netmask)); - $bin = str_pad(decbin($f1),8,"0",STR_PAD_LEFT).str_pad(decbin($f2),8,"0",STR_PAD_LEFT).str_pad(decbin($f3),8,"0",STR_PAD_LEFT).str_pad(decbin($f4),8,"0",STR_PAD_LEFT); - $parts = explode("0", $bin); - $bin = str_pad($parts[0], 32, "0", STR_PAD_RIGHT); - $bin = wordwrap($bin, 8, ".", 1); - list($f1,$f2,$f3,$f4) = explode(".", trim($bin)); - return bindec($f1).".".bindec($f2).".".bindec($f3).".".bindec($f4); - } - - function binary_netmask($netmask){ - list($f1,$f2,$f3,$f4) = explode(".", trim($netmask)); - $bin = str_pad(decbin($f1),8,"0",STR_PAD_LEFT).str_pad(decbin($f2),8,"0",STR_PAD_LEFT).str_pad(decbin($f3),8,"0",STR_PAD_LEFT).str_pad(decbin($f4),8,"0",STR_PAD_LEFT); - $parts = explode("0", $bin); - return substr_count($parts[0], "1"); - } - - function network($ip, $netmask){ - $netmask = $this->netmask($netmask); - list($f1,$f2,$f3,$f4) = explode(".", $netmask); - $netmask_bin = str_pad(decbin($f1),8,"0",STR_PAD_LEFT).str_pad(decbin($f2),8,"0",STR_PAD_LEFT).str_pad(decbin($f3),8,"0",STR_PAD_LEFT).str_pad(decbin($f4),8,"0",STR_PAD_LEFT); - list($f1,$f2,$f3,$f4) = explode(".", $ip); - $ip_bin = str_pad(decbin($f1),8,"0",STR_PAD_LEFT).str_pad(decbin($f2),8,"0",STR_PAD_LEFT).str_pad(decbin($f3),8,"0",STR_PAD_LEFT).str_pad(decbin($f4),8,"0",STR_PAD_LEFT); - for($i=0;$i<32;$i++){ - $network_bin .= substr($netmask_bin,$i,1) * substr($ip_bin,$i,1); - } - $network_bin = wordwrap($network_bin, 8, ".", 1); - list($f1,$f2,$f3,$f4) = explode(".", trim($network_bin)); - return bindec($f1).".".bindec($f2).".".bindec($f3).".".bindec($f4); - } - - /** - * Make a broadcast address from an IP number in combination with netmask - * - */ - function broadcast($ip, $netmask){ - $netmask = $this->netmask($netmask); - $binary_netmask = $this->binary_netmask($netmask); - list($f1,$f2,$f3,$f4) = explode(".", $ip); - $ip_bin = str_pad(decbin($f1),8,"0",STR_PAD_LEFT).str_pad(decbin($f2),8,"0",STR_PAD_LEFT).str_pad(decbin($f3),8,"0",STR_PAD_LEFT).str_pad(decbin($f4),8,"0",STR_PAD_LEFT); - $broadcast_bin = str_pad(substr($ip_bin, 0, $binary_netmask),32,"1",STR_PAD_RIGHT); - $broadcast_bin = wordwrap($broadcast_bin, 8, ".", 1); - list($f1,$f2,$f3,$f4) = explode(".", trim($broadcast_bin)); - return bindec($f1).".".bindec($f2).".".bindec($f3).".".bindec($f4); - } - - /** - * Get the network address information - * - */ - function network_info(){ - $dist = $this->server_conf["dist"]; - ob_start(); - passthru("ifconfig"); - $output = ob_get_contents(); - ob_end_clean(); - $lines = explode("\n", $output); - foreach($lines as $line){ - $elms = explode(" ", $line); - if(trim($elms[0]) != "" && substr($elms[0],0,1) != "\t"){ - $elms[0] = trim($elms[0]); - if(strstr($dist, "freebsd")) $elms[0] = substr($elms[0],0,-1); - $interfaces[] = $elms[0]; - } - } - if(!empty($interfaces)){ - foreach($interfaces as $interface){ - ob_start(); - if(!strstr($dist, "freebsd")){ - passthru("ifconfig ".$interface." | grep -iw 'inet' | cut -f2 -d: | cut -f1 -d' '"); - } else { - passthru("ifconfig ".$interface." | grep -iw 'inet' | grep -iv 'inet6' | cut -f2 -d' '"); - } - $output = trim(ob_get_contents()); - ob_end_clean(); - if($output != ""){ - $ifconfig["INTERFACE"][$interface] = $output; - $ifconfig["IP"][$output] = $interface; - } - } - if(!empty($ifconfig)){ - return $ifconfig; - } else { - return false; - } - } else { - return false; - } - } - - /** - * Configure the network settings from the system - * - */ - function network_config(){ - $ifconfig = $this->network_info(); - if($ifconfig){ - $main_interface = $ifconfig["IP"][$this->server_conf["server_ip"]]; - if(strstr($main_interface, ":")){ - $parts = explode(":", $main_interface); - $main_interface = trim($parts[0]); - } - if($main_interface != ""){ - $ips = $this->data["isp_server_ip"]; - if(!empty($ips)){ - foreach($ips as $ip){ - if(!isset($ifconfig["IP"][$ip["server_ip"]])){ - $to_set[] = $ip["server_ip"]; - } else { - unset($ifconfig["IP"][$ip["server_ip"]]); - } - } - if(!empty($ifconfig["IP"])){ - foreach($ifconfig["IP"] as $key => $val){ - if(!strstr($val, "lo") && !strstr($val, "lp") && strstr($val, $main_interface)){ - exec("ifconfig ".$val." down &> /dev/null"); - unset($ifconfig["INTERFACE"][$val]); - } - } - } - if(!empty($to_set)){ - foreach($to_set as $to){ - $i = 0; - while($i >= 0){ - if(isset($ifconfig["INTERFACE"][$main_interface.":".$i])){ - $i++; - } else { - $new_interface = $main_interface.":".$i; - $i = -1; - } - } - exec("ifconfig ".$new_interface." ".$to." netmask ".$this->server_conf["server_netzmaske"]." up &> /dev/null"); - $ifconfig["INTERFACE"][$new_interface] = $to; - } - } - } - } - } - } - - function quota_dirs(){ - global $app; - $content = $app->file->unix_nl($app->file->no_comments("/etc/fstab")); - $lines = explode("\n", $content); - foreach($lines as $line){ - $line = trim($line); - if($line != ""){ - $elms = explode("\t", $line); - foreach($elms as $elm){ - if(trim($elm) != "") $f[] = $elm; - } - if(!empty($f) && stristr($f[3], "userquota") && stristr($f[3], "groupquota")){ - $q_dirs[] = trim($f[1]); - } - unset($f); - } - } - if(!empty($q_dirs)){ - return $q_dirs; - } else { - return false; - } - } - - /** - * Scan the trash for virusses infection - * - */ - function make_trashscan(){ - global $app; - //trashscan erstellen - // Template Öffnen - $app->tpl->clear_all(); - $app->tpl->define( array(table => "trashscan.master")); - - if(!isset($this->server_conf["virusadmin"]) || trim($this->server_conf["virusadmin"]) == "") $this->server_conf["virusadmin"] = "admispconfig@localhost"; - if(substr($this->server_conf["virusadmin"],0,1) == "#"){ - $notify = "no"; - } else { - $notify = "yes"; - } - - // Variablen zuweisen - $app->tpl->assign( array(VIRUSADMIN => $this->server_conf["virusadmin"], - NOTIFICATION => $notify)); - - $app->tpl->parse(TABLE, table); - - $trashscan_text = $app->tpl->fetch(); - - $datei = "/home/admispconfig/ispconfig/tools/clamav/bin/trashscan"; - $app->file->wf($datei, $trashscan_text); - - exec("chown admispconfig:admispconfig $datei &> /dev/null"); - exec("chmod 755 $datei"); - } - - /** - * Get the current time - * - */ - function get_time(){ - $addr = "http://www.ispconfig.org/"; - $timeout = 1; - $url_parts = parse_url($addr); - $path = $url_parts["path"]; - $port = 80; - $urlHandle = @fsockopen($url_parts["host"], $port, $errno, $errstr, $timeout); - if ($urlHandle){ - socket_set_timeout($urlHandle, $timeout); - - $urlString = "GET $path HTTP/1.0\r\nHost: ".$url_parts["host"]."\r\nConnection: Keep-Alive\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n"; - if ($user) $urlString .= "Authorization: Basic ".base64_encode("$user:$pass")."\r\n"; - $urlString .= "\r\n"; - fputs($urlHandle, $urlString); - - $month["Jan"] = "01"; - $month["Feb"] = "02"; - $month["Mar"] = "03"; - $month["Apr"] = "04"; - $month["May"] = "05"; - $month["Jun"] = "06"; - $month["Jul"] = "07"; - $month["Aug"] = "08"; - $month["Sep"] = "09"; - $month["Oct"] = "10"; - $month["Nov"] = "11"; - $month["Dec"] = "12"; - $c = 0; - $l = 0; - $startzeit = time(); - while(!feof($urlHandle) && $c < 2 && $l == 0){ - $line = trim(fgets($urlHandle,128)); - $response .= $line; - $c = time() - $startzeit; - if($line == "" || substr($line, 0, 5) == "Date:") $l += 1; // nur den Header auslesen - if(substr($line, 0, 5) == "Date:"){ - $parts = explode(" ", $line); - $tag = $parts[2]; - $monat = $month[$parts[3]]; - $jahr = $parts[4]; - list($stunde, $minute, $sekunde) = explode(":", $parts[5]); - $timestamp = mktime($stunde,$minute,$sekunde,$monat,$tag,$jahr); - } - } - - @fclose($urlHandle); - - return $timestamp; - } else { - @fclose($urlHandle); - return false; - } - } - - function replaceLine($filename,$search_pattern,$new_line,$strict = 0,$append = 1) { - $lines = @file($filename); - $out = ''; - $found = 0; - if(is_array($lines)) { - foreach($lines as $line) { - if($strict == 0) { - if(stristr($line,$search_pattern)) { - $out .= $new_line."\n"; - $found = 1; - } else { - $out .= $line; - } - } else { - if(trim($line) == $search_pattern) { - $out .= $new_line."\n"; - $found = 1; - } else { - $out .= $line; - } - } - } - } - - if($found == 0) { - //* add \n if the last line does not end with \n or \r - if(substr($out,-1) != "\n" && substr($out,-1) != "\r") $out .= "\n"; - //* add the new line at the end of the file - if($append == 1) $out .= $new_line."\n"; - } - file_put_contents($filename,$out); - } - - function removeLine($filename,$search_pattern,$strict = 0) { - if($lines = @file($filename)) { - $out = ''; - foreach($lines as $line) { - if($strict == 0) { - if(!stristr($line,$search_pattern)) { - $out .= $line; - } - } else { - if(!trim($line) == $search_pattern) { - $out .= $line; - } - } - } - file_put_contents($filename,$out); - } - } - - function maildirmake($maildir_path, $user = '', $subfolder = '') { - - global $app; - - if($subfolder != '') { - $dir = escapeshellarg($maildir_path.'/.'.$subfolder); - $dir_cur = escapeshellarg($maildir_path.'/.'.$subfolder.'/cur'); - $dir_new = escapeshellarg($maildir_path.'/.'.$subfolder.'/new'); - $dir_tmp = escapeshellarg($maildir_path.'/.'.$subfolder.'/tmp'); - } else { - $dir = escapeshellarg($maildir_path); - $dir_cur = escapeshellarg($maildir_path.'/cur'); - $dir_new = escapeshellarg($maildir_path.'/new'); - $dir_tmp = escapeshellarg($maildir_path.'/tmp'); - } - - exec("mkdir -p $dir_cur $dir_new $dir_tmp"); - exec("chmod 0700 $dir $dir_cur $dir_new $dir_tmp"); - - if($user != '' && $this->is_user($user) && $user != 'root') { - $user = escapeshellarg($user); - // I assume that the name of the (vmail group) is the same as the name of the mail user in ispconfig 3 - $group = $user; - exec("chown $user:$group $dir $dir_cur $dir_new $dir_tmp"); - } - - //* Add the subfolder to the subscriptions and courierimapsubscribed files - if($subfolder != '') { - // Courier - if(!is_file($maildir_path.'/courierimapsubscribed')) { - $tmp_file = escapeshellarg($maildir_path.'/courierimapsubscribed'); - exec("touch $tmp_file && chown vmail:vmail $tmp_file"); - } - $this->replaceLine($maildir_path.'/courierimapsubscribed','INBOX.'.$subfolder,'INBOX.'.$subfolder,1,1); - - // Dovecot - if(!is_file($maildir_path.'/subscriptions')) { - $tmp_file = escapeshellarg($maildir_path.'/subscriptions'); - exec("touch $tmp_file && chown vmail:vmail $tmp_file"); - } - $this->replaceLine($maildir_path.'/subscriptions',$subfolder,$subfolder,1,1); - } - - $app->log('Created Maildir '.$maildir_path.' with subfolder: '.$subfolder,LOGLEVEL_DEBUG); - - } - -} -?> \ No newline at end of file diff --git a/interface/ispconfig/server/lib/classes/tpl.inc.php b/interface/ispconfig/server/lib/classes/tpl.inc.php deleted file mode 100644 index aaa017ef6..000000000 --- a/interface/ispconfig/server/lib/classes/tpl.inc.php +++ /dev/null @@ -1,1501 +0,0 @@ - | -// +----------------------------------------------------------------------+ -// -// $Id: class.tpl.inc.php,v 1.1 2003/07/08 12:31:10 platinum Exp $ - -// check to avoid multiple including of class -if (!defined('vlibTemplateClassLoaded')) { - define('vlibTemplateClassLoaded', 1); - - include_once ($conf['classpath'].'/tpl_error.inc.php'); - include_once ($conf['classpath'].'/tpl_ini.inc.php'); - - /** - * vlibTemplate is a class used to seperate PHP and HTML. - * For instructions on how to use vlibTemplate, see the - * vlibTemplate.html file, located in the 'docs' directory. - * - * @since 07/03/2002 - * @author Kelvin Jones - * @package vLIB - * @access public - * @see vlibTemplate.html - */ - - class tpl { - - /*-----------------------------------------------------------------------------\ - | ATTENTION | - | Do not touch the following variables. vlibTemplate will not work otherwise. | - \-----------------------------------------------------------------------------*/ - - var $OPTIONS = array( - 'MAX_INCLUDES' => 10, - 'TEMPLATE_DIR' => null, - 'GLOBAL_VARS' => null, - 'GLOBAL_CONTEXT_VARS' => null, - 'LOOP_CONTEXT_VARS' => null, - 'SET_LOOP_VAR' => null, - 'DEFAULT_ESCAPE' => null, - 'STRICT' => null, - 'CASELESS' => null, - 'UNKNOWNS' => null, - 'TIME_PARSE' => null, - 'ENABLE_PHPINCLUDE' => null, - 'INCLUDE_PATHS' => array(), - 'CACHE_DIRECTORY' => null, - 'CACHE_LIFETIME' => null, - 'CACHE_EXTENSION' => null - ); - - /** open and close tags used for escaping */ - var $ESCAPE_TAGS = array( - 'html' => array('open' => 'htmlspecialchars(' - ,'close'=> ', ENT_QUOTES)'), - 'url' => array('open' => 'urlencode(' - ,'close'=> ')'), - 'rawurl'=>array('open' => 'rawurlencode(' - ,'close'=> ')'), - 'sq' => array('open' => 'addcslashes(' - ,'close'=> ", \"'\")"), - 'dq' => array('open' => 'addcslashes(' - ,'close'=> ", '\"')"), - '1' => array('open' => 'htmlspecialchars(' - ,'close'=> ', ENT_QUOTES)'), - '0' => array('open' => '' - ,'close'=> ''), - 'none' => array('open' => '' - ,'close'=> ''), - 'hex' => array('open' => '$this->_escape_hex(', - 'close'=> ', false)'), - 'hexentity' => array('open' => '$this->_escape_hex(', - 'close'=> ', true)') - ); - - /** open and close tags used for formatting */ - var $FORMAT_TAGS = array( - 'strtoupper' => array('open' => 'strtoupper(', - 'close'=> ')'), - 'uc' => array('open' => 'strtoupper(', - 'close'=> ')'), - 'strtolower' => array('open' => 'strtolower(', - 'close'=> ')'), - 'lc' => array('open' => 'strtolower(', - 'close'=> ')'), - 'ucfirst' => array('open' => 'ucfirst(', - 'close'=> ')'), - 'lcucfirst' => array('open' => 'ucfirst(strtolower(', - 'close'=> '))'), - 'ucwords' => array('open' => 'ucwords(', - 'close'=> ')'), - 'lcucwords' => array('open' => 'ucwords(strtolower(', - 'close'=> '))') - ); - - /** operators allowed when using extended TMPL_IF syntax */ - var $allowed_if_ops = array('==','!=','<>','<','>','<=','>='); - - /** dbs allowed by vlibTemplate::setDbLoop(). */ - var $allowed_loop_dbs = array('MYSQL','POSTGRESQL','INFORMIX','INTERBASE','INGRES', - 'MSSQL','MSQL','OCI8','ORACLE','OVRIMOS','SYBASE'); - - /** root directory of vlibTemplate automagically filled in */ - var $VLIBTEMPLATE_ROOT = null; - - /** contains current directory used when doing recursive include */ - var $_currentincludedir = array(); - - /** current depth of includes */ - var $_includedepth = 0; - - /** full path to tmpl file */ - var $_tmplfilename = null; - - /** file data before it's parsed */ - var $_tmplfile = null; - - /** parsed version of file, ready for eval()ing */ - var $_tmplfilep = null; - - /** eval()ed version ready for printing or whatever */ - var $_tmploutput = null; - - /** array for variables to be kept */ - var $_vars = array(); - - /** array where loop variables are kept */ - var $_arrvars = array(); - - /** array which holds the current namespace during parse */ - var $_namespace = array(); - - /** variable is set to true once the template is parsed, to save re-parsing everything */ - var $_parsed = false; - - /** array holds all unknowns vars */ - var $_unknowns = array(); - - /** microtime when template parsing began */ - var $_firstparsetime = null; - - /** total time taken to parse template */ - var $_totalparsetime = null; - - /** name of current loop being passed in */ - var $_currloopname = null; - - /** rows with the above loop */ - var $_currloop = array(); - - /** define vars to avoid warnings */ - var $_debug = null; - var $_cache = null; - - /** array which holds the dynamic Includes */ - var $_dyninclude = array(); - /*-----------------------------------------------------------------------------\ - | public functions | - \-----------------------------------------------------------------------------*/ - - - /** - * FUNCTION: newTemplate - * - * Usually called by the class constructor. - * Stores the filename in $this->_tmplfilename. - * Raises an error if the template file is not found. - * - * @param string $tmplfile full path to template file - * @return boolean true - * @access public - */ - function newTemplate ($tmplfile) { - if (!$tfile = $this->_fileSearch($tmplfile)) vlibTemplateError::raiseError('VT_ERROR_NOFILE',KILL,$tmplfile); - - // make sure that any parsing vars are cleared for the new template - $this->_tmplfile = null; - $this->_tmplfilep = null; - $this->_tmploutput = null; - $this->_parsed = false; - $this->_unknowns = array(); - $this->_firstparsetime = null; - $this->_totalparsetime = null; - - // reset debug module - if ($this->_debug) $this->_debugReset(); - - $this->_tmplfilename = $tfile; - return true; - } - - /** - * FUNCTION: setVar - * - * Sets variables to be used by the template - * If $k is an array, then it will treat it as an associative array - * using the keys as variable names and the values as variable values. - * - * @param mixed $k key to define variable name - * @param mixed $v variable to assign to $k - * @return boolean true/false - * @access public - */ - function setVar ($k,$v=null) { - if (is_array($k)) { - foreach($k as $key => $value){ - $key = ($this->OPTIONS['CASELESS']) ? strtolower(trim($key)) : trim($key); - if (preg_match('/^[A-Za-z_]+[A-Za-z0-9_]*$/', $key) && $value !== null ) { - $this->_vars[$key] = $value; - } - } - } - else { - if (preg_match('/^[A-Za-z_]+[A-Za-z0-9_]*$/', $k) && $v !== null) { - if ($this->OPTIONS['CASELESS']) $k = strtolower($k); - $this->_vars[trim($k)] = $v; - } - else { - return false; - } - } - return true; - } - - /** - * FUNCTION: setInclude - * - * Sets dynamic includes to be used by the template - * If $k is an array, then it will treat it as an associative array - * using the keys as variable names and the values as variable values. - * - * @param mixed $k key to define variable name - * @param mixed $v variable to assign to $k - * @return boolean true/false - * @access public - */ - - function setInclude($k, $v = null) { - if(is_array($k)) { - foreach($k as $key => $val) { - $this->_dyninclude[$key] = $val; - } - } else { - $this->_dyninclude[$k] = $v; - } - - return true; - } - - /** - * FUNCTION: unsetVar - * - * Unsets a variable which has already been set - * Parse in all vars wanted for deletion in seperate parametres - * - * @param string var name to remove use: vlibTemplate::unsetVar(var[, var..]) - * @return boolean true/false returns true unless called with 0 params - * @access public - */ - function unsetVar () { - $num_args = func_num_args(); - if ($num_args < 1) return false; - - for ($i = 0; $i < $num_args; $i++) { - $var = func_get_arg($i); - if ($this->OPTIONS['CASELESS']) $var = strtolower($var); - if (!preg_match('/^[A-Za-z_]+[A-Za-z0-9_]*$/', $var)) continue; - unset($this->_vars[$var]); - } - return true; - } - - /** - * FUNCTION: getVars - * - * Gets all vars currently set in global namespace. - * - * @return array - * @access public - */ - function getVars () { - if (empty($this->_vars)) return false; - return $this->_vars; - } - - /** - * FUNCTION: getVar - * - * Gets a single var from the global namespace - * - * @return var - * @access public - */ - function getVar ($var) { - if ($this->OPTIONS['CASELESS']) $var = strtolower($var); - if (empty($var) || !isset($this->_vars[$var])) return false; - return $this->_vars[$var]; - } - - /** - * FUNCTION: setContextVars - * - * sets the GLOBAL_CONTEXT_VARS - * - * @return true - * @access public - */ - function setContextVars () { - $_phpself = @$GLOBALS['HTTP_SERVER_VARS']['PHP_SELF']; - $_pathinfo = @$GLOBALS['HTTP_SERVER_VARS']['PATH_INFO']; - $_request_uri = @$GLOBALS['HTTP_SERVER_VARS']['REQUEST_URI']; - $_qs = @$GLOBALS['HTTP_SERVER_VARS']['QUERY_STRING']; - - // the following fixes bug of $PHP_SELF on Win32 CGI and IIS. - $_self = (!empty($_pathinfo)) ? $_pathinfo : $_phpself; - $_uri = (!empty($_request_uri)) ? $_request_uri : $_self.'?'.$_qs; - - $this->setvar('__SELF__', $_self); - $this->setvar('__REQUEST_URI__', $_uri); - return true; - } - - /** - * FUNCTION: setLoop - * - * Builds the loop construct for use with . - * - * @param string $k string to define loop name - * @param array $v array to assign to $k - * @return boolean true/false - * @access public - */ - function setLoop ($k,$v) { - if (is_array($v) && preg_match('/^[A-Za-z_]+[A-Za-z0-9_]*$/', $k)) { - $k = ($this->OPTIONS['CASELESS']) ? strtolower(trim($k)) : trim($k); - $this->_arrvars[$k] = array(); - if ($this->OPTIONS['SET_LOOP_VAR'] && !empty($v)) $this->setvar($k, 1); - if (($this->_arrvars[$k] = $this->_arrayBuild($v)) == false) { - vlibTemplateError::raiseError('VT_WARNING_INVALID_ARR',WARNING,$k); - } - } - return true; - } - - /** - * FUNCTION: setDbLoop [** EXPERIMENTAL **] - * - * Function to create a loop from a Db result resource link. - * - * @param string $loopname to commit loop. If not set, will use last loopname set using newLoop() - * @param string $result link to a Db result resource - * @param string $db_type, type of db that the result resource belongs to. - * @return boolean true/false - * @access public - */ - function setDbLoop ($loopname, $result, $db_type='MYSQL') { - - /* - $db_type = strtoupper($db_type); - if (!in_array($db_type, $this->allowed_loop_dbs)) { - vlibTemplateError::raiseError('VT_WARNING_INVALID_LOOP_DB',WARNING, $db_type); - return false; - } - - $loop_arr = array(); - switch ($db_type) { - - case 'MYSQL': - if (get_resource_type($result) != 'mysql result') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type); - return false; - } - while($r = mysql_fetch_assoc($result)) { - $loop_arr[] = $r; - } - break; - - case 'POSTGRESQL': - if (get_resource_type($result) != 'pgsql result') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type); - return false; - } - - $nr = (function_exists('pg_num_rows')) ? pg_num_rows($result) : pg_numrows($result); - - for ($i=0; $i < $nr; $i++) { - $loop_arr[] = pg_fetch_array($result, $i, PGSQL_ASSOC); - } - break; - - case 'INFORMIX': - if (!$result) { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type); - return false; - } - while($r = ifx_fetch_row($result, 'NEXT')) { - $loop_arr[] = $r; - } - break; - - case 'INTERBASE': - if (get_resource_type($result) != 'interbase result') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type); - return false; - } - while($r = ibase_fetch_row($result)) { - $loop_arr[] = $r; - } - break; - - case 'INGRES': - if (!$result) { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type); - return false; - } - while($r = ingres_fetch_array(INGRES_ASSOC, $result)) { - $loop_arr[] = $r; - } - break; - - case 'MSSQL': - if (get_resource_type($result) != 'mssql result') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type); - return false; - } - while($r = mssql_fetch_array($result)) { - $loop_arr[] = $r; - } - break; - - case 'MSQL': - if (get_resource_type($result) != 'msql result') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type); - return false; - } - while($r = msql_fetch_array($result, MSQL_ASSOC)) { - $loop_arr[] = $r; - } - break; - - case 'OCI8': - if (get_resource_type($result) != 'oci8 statement') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type); - return false; - } - while(OCIFetchInto($result, &$r, OCI_ASSOC+OCI_RETURN_LOBS)) { - $loop_arr[] = $r; - } - break; - - case 'ORACLE': - if (get_resource_type($result) != 'oracle Cursor') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type); - return false; - } - while(ora_fetch_into($result, &$r, ORA_FETCHINTO_ASSOC)) { - $loop_arr[] = $r; - } - break; - - case 'OVRIMOS': - if (!$result) { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type); - return false; - } - while(ovrimos_fetch_into($result, &$r, 'NEXT')) { - $loop_arr[] = $r; - } - break; - - case 'SYBASE': - if (get_resource_type($result) != 'sybase-db result') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE',WARNING, $db_type); - return false; - } - - while($r = sybase_fetch_array($result)) { - $loop_arr[] = $r; - } - break; - } - $this->setLoop($loopname, $loop_arr); - return true; - */ - } - - /** - * FUNCTION: newLoop - * - * Sets the name for the curent loop in the 3 step loop process. - * - * @param string $name string to define loop name - * @return boolean true/false - * @access public - */ - function newLoop ($loopname) { - if (preg_match('/^[a-z_]+[a-z0-9_]*$/i', $loopname)) { - $this->_currloopname[$loopname] = $loopname; - $this->_currloop[$loopname] = array(); - return true; - } - else { - return false; - } - } - - /** - * FUNCTION: addRow - * - * Adds a row to the current loop in the 3 step loop process. - * - * @param array $row loop row to add to current loop - * @param string $loopname loop to which you want to add row, if not set will use last loop set using newLoop(). - * @return boolean true/false - * @access public - */ - function addRow ($row, $loopname=null) { - if (!$loopname) $loopname = $this->_currloopname[(count($this->_currloopname)-1)]; - - if (!isset($this->_currloop[$loopname]) || empty($this->_currloopname)) { - vlibTemplateError::raiseError('VT_WARNING_LOOP_NOT_SET',WARNING); - return false; - } - if (is_array($row)) { - $this->_currloop[$loopname][] = $row; - return true; - } - else { - return false; - } - } - - /** - * FUNCTION: addLoop - * - * Completes the 3 step loop process. This assigns the rows and resets - * the variables used. - * - * @param string $loopname to commit loop. If not set, will use last loopname set using newLoop() - * @return boolean true/false - * @access public - */ - function addLoop ($loopname=null) { - if ($loopname == null) { // add last loop used - if (!empty($this->_currloop)) { - foreach ($this->_currloop as $k => $v) { - $this->setLoop($k, $v); - unset($this->_currloop[$k]); - } - $this->_currloopname = array(); - return true; - } - else { - return false; - } - } - elseif (!isset($this->_currloop[$loopname]) || empty($this->_currloopname)) { // newLoop not yet envoked - vlibTemplateError::raiseError('VT_WARNING_LOOP_NOT_SET',WARNING); - return false; - } - else { // add a specific loop - $this->setLoop($loopname, $this->_currloop[$loopname]); - unset($this->_currloopname[$loopname], $this->_currloop[$loopname]); - } - return true; - } - - /** - * FUNCTION: unsetLoop - * - * Unsets a loop which has already been set. - * Can only unset top level loops. - * - * @param string loop to remove use: vlibTemplate::unsetLoop(loop[, loop..]) - * @return boolean true/false returns true unless called with 0 params - * @access public - */ - function unsetLoop () { - $num_args = func_num_args(); - if ($num_args < 1) return false; - - for ($i = 0; $i < $num_args; $i++) { - $var = func_get_arg($i); - if ($this->OPTIONS['CASELESS']) $var = strtolower($var); - if (!preg_match('/^[A-Za-z_]+[A-Za-z0-9_]*$/', $var)) continue; - unset($this->_arrvars[$var]); - } - return true; - } - - - /** - * FUNCTION: reset - * - * Resets the vlibTemplate object. After using vlibTemplate::reset() you must - * use vlibTemplate::newTemplate(tmpl) to reuse, not passing in the options array. - * - * @return boolean true - * @access public - */ - function reset () { - $this->clearVars(); - $this->clearLoops(); - $this->_tmplfilename = null; - $this->_tmplfile = null; - $this->_tmplfilep = null; - $this->_tmploutput = null; - $this->_parsed = false; - $this->_unknowns = array(); - $this->_firstparsetime = null; - $this->_totalparsetime = null; - $this->_currloopname = null; - $this->_currloop = array(); - return true; - } - - /** - * FUNCTION: clearVars - * - * Unsets all variables in the template - * - * @return boolean true - * @access public - */ - function clearVars () { - $this->_vars = array(); - return true; - } - - /** - * FUNCTION: clearLoops - * - * Unsets all loops in the template - * - * @return boolean true - * @access public - */ - function clearLoops () { - $this->_arrvars = array(); - $this->_currloopname = null; - $this->_currloop = array(); - return true; - } - - /** - * FUNCTION: clearAll - * - * Unsets all variables and loops set using setVar/Loop() - * - * @return boolean true - * @access public - */ - function clearAll () { - $this->clearVars(); - $this->clearLoops(); - return true; - } - - /** - * FUNCTION: unknownsExist - * - * Returns true if unknowns were found after parsing. - * Function MUST be called AFTER one of the parsing functions to have any relevance. - * - * @return boolean true/false - * @access public - */ - function unknownsExist () { - return (!empty($this->_unknowns)); - } - - /** - * FUNCTION: unknowns - * - * Alias for unknownsExist. - * - * @access public - */ - function unknowns () { - return $this->unknownsExist(); - } - - /** - * FUNCTION: getUnknowns - * - * Returns an array of all unknown vars found when parsing. - * This function is only relevant after parsing a document. - * - * @return array - * @access public - */ - function getUnknowns () { - return $this->_unknowns; - } - - /** - * FUNCTION: setUnknowns - * - * Sets how you want to handle variables that were found in the - * template but not set in vlibTemplate using vlibTemplate::setVar(). - * - * @param string $arg ignore, remove, print, leave or comment - * @return boolean - * @access public - */ - function setUnknowns ($arg) { - $arg = strtolower(trim($arg)); - if (preg_match('/^ignore|remove|print|leave|comment$/', $arg)) { - $this->OPTIONS['UNKNOWNS'] = $arg; - return true; - } - return false; - } - - /** - * FUNCTION: setPath - * - * function sets the paths to use when including files. - * Use of this function: vlibTemplate::setPath(string path [, string path, ..]); - * i.e. if $tmpl is your template object do: $tmpl->setPath('/web/htdocs/templates','/web/htdocs/www'); - * with as many paths as you like. - * if this function is called without any arguments, it will just delete any previously set paths. - * - * @param string path (mulitple) - * @return bool success - * @access public - */ - function setPath () { - $num_args = func_num_args(); - if ($num_args < 1) { - $this->OPTIONS['INCLUDE_PATHS'] = array(); - return true; - } - for ($i = 0; $i < $num_args; $i++) { - $thispath = func_get_arg($i); - array_push($this->OPTIONS['INCLUDE_PATHS'], realpath($thispath)); - } - return true; - } - - /** - * FUNCTION: getParseTime - * - * After using one of the parse functions, this will allow you - * access the time taken to parse the template. - * see OPTION 'TIME_PARSE'. - * - * @return float time taken to parse template - * @access public - */ - function getParseTime () { - if ($this->OPTIONS['TIME_PARSE'] && $this->_parsed) { - return $this->_totalparsetime; - } - return false; - } - - - /** - * FUNCTION: fastPrint - * - * Identical to pparse() except that it uses output buffering w/ gz compression thus - * printing the output directly and compressed if poss. - * Will possibly if parsing a huge template. - * - * @access public - * @return boolean true/false - */ - function fastPrint () { - $ret = $this->_parse('ob_gzhandler'); - print($this->_tmploutput); - return $ret; - } - - - /** - * FUNCTION: pparse - * - * Calls parse, and then prints out $this->_tmploutput - * - * @access public - * @return boolean true/false - */ - function pparse () { - if (!$this->_parsed) $this->_parse(); - print($this->_tmploutput); - return true; - } - - /** - * FUNCTION: pprint - * - * Alias for pparse() - * - * @access public - */ - function pprint () { - return $this->pparse(); - } - - - /** - * FUNCTION: grab - * - * Returns the parsed output, ready for printing, passing to mail() ...etc. - * Invokes $this->_parse() if template has not yet been parsed. - * - * @access public - * @return boolean true/false - */ - function grab () { - if (!$this->_parsed) $this->_parse(); - return $this->_tmploutput; - } - - /*-----------------------------------------------------------------------------\ - | private functions | - \-----------------------------------------------------------------------------*/ - - /** - * FUNCTION: vlibTemplate - * - * vlibTemplate constructor. - * if $tmplfile has been passed to it, it will send to $this->newTemplate() - * - * @param string $tmplfile full path to template file - * @param array $options see above - * @return boolean true/false - * @access private - */ - function tpl ($tmplfile=null, $options=null) { - if (is_array($tmplfile) && $options == null) { - $options = $tmplfile; - unset($tmplfile); - } - - $this->VLIBTEMPLATE_ROOT = dirname(realpath(__FILE__)); - - if (is_array(vlibIni::vlibTemplate())) { - foreach (vlibIni::vlibTemplate() as $name => $val) { - $this->OPTIONS[$name] = $val; - } - } - - if (is_array($options)) { - foreach($options as $key => $val) { - $key = strtoupper($key); - if ($key == 'PATH') { - $this->setPath($val); - } - else { - $this->_setOption($key, strtolower($val)); - } - } - } - if($tmplfile) $this->newTemplate($tmplfile); - if ($this->OPTIONS['GLOBAL_CONTEXT_VARS']) $this->setContextVars(); - return true; - } - - /** FUNCTION: _getData - * - * function returns the text from the file, or if we're using cache, the text - * from the cache file. MUST RETURN DATA. - * @param string tmplfile contains path to template file - * @param do_eval used for included files. If set then this function must do the eval()'ing. - * @access private - * @return mixed data/string or boolean - */ - function _getData ($tmplfile, $do_eval=false) { - //check the current file depth - if ($this->_includedepth > $this->OPTIONS['MAX_INCLUDES'] || $tmplfile == false) { - return; - } - else { - if ($this->_debug) array_push ($this->_debugIncludedfiles, $tmplfile); - if ($do_eval) { - array_push($this->_currentincludedir, dirname($tmplfile)); - $this->_includedepth++; - } - } - - - if($this->_cache && $this->_checkCache($tmplfile)) { // cache exists so lets use it - $data = fread($fp = fopen($this->_cachefile, 'r'), filesize($this->_cachefile)); - fclose($fp); - } - else { // no cache lets parse the file - $data = fread($fp = fopen($tmplfile, 'r'), filesize($tmplfile)); - fclose($fp); - - $regex = '/(<|<\/|{|{\/|){1}'; - $regex.= '/ie'; - //$regex.= '([\r\n|\n|\r])?/ie'; - $data = preg_replace($regex,"\$this->_parseTag(array('\\0','\\1','\\2','\\3','\\4','\\5','\\6','\\7','\\8','\\9'));",$data); - - if ($this->_cache) { // add cache if need be - $this->_createCache($data); - } - } - - // now we must parse the $data and check for any 's - if ($this->_debug) $this->doDebugWarnings(file($tmplfile), $tmplfile); - - if ($do_eval) { - $success = @eval('?>'.$data.'_includedepth--; - array_pop($this->_currentincludedir); - return $success; - } - else { - return $data; - } - - } - - /** - * FUNCTION: _fileSearch - * - * Searches for all possible instances of file { $file } - * - * @param string $file path of file we're looking for - * @access private - * @return mixed fullpath to file or boolean false - */ - function _fileSearch ($file) { - $filename = basename($file); - $filepath = dirname($file); - - // check fullpath first.. - $fullpath = $filepath.'/'.$filename; - if (is_file($fullpath)) return $fullpath; - - // ..then check for relative path for current directory.. - if (!empty($this->_currentincludedir)) { - $currdir = $this->_currentincludedir[(count($this->_currentincludedir) -1)]; - $relativepath = realpath($currdir.'/'.$filepath.'/'.$filename); - if (is_file($relativepath)) { - array_push ($this->_currentincludedir, dirname($relativepath)); - return $relativepath; - } - } - - // ..then check for relative path for all additional given paths.. - if (!empty($this->OPTIONS['INCLUDE_PATHS'])) { - foreach ($this->OPTIONS['INCLUDE_PATHS'] as $currdir) { - $relativepath = realpath($currdir.'/'.$filepath.'/'.$filename); - if (is_file($relativepath)) { - return $relativepath; - } - } - } - - // ..then check path from TEMPLATE_DIR.. - if (!empty($this->OPTIONS['TEMPLATE_DIR'])) { - $fullpath = realpath($this->OPTIONS['TEMPLATE_DIR'].'/'.$filepath.'/'.$filename); - if (is_file($fullpath)) return $fullpath; - } - - // ..then check relative path from executing php script.. - $fullpath = realpath($filepath.'/'.$filename); - if (is_file($fullpath)) return $fullpath; - - // ..then check path from template file. - if (!empty($this->VLIBTEMPLATE_ROOT)) { - $fullpath = realpath($this->VLIBTEMPLATE_ROOT.'/'.$filepath.'/'.$filename); - if (is_file($fullpath)) return $fullpath; - } - - return false; // uh oh, file not found - } - - /** - * FUNCTION: _arrayBuild - * - * Modifies the array $arr to add Template variables, __FIRST__, __LAST__ ..etc - * if $this->OPTIONS['LOOP_CONTEXT_VARS'] is true. - * Used by $this->setloop(). - * - * @param array $arr - * @return array new look array - * @access private - */ - function _arrayBuild ($arr) { - if (is_array($arr) && !empty($arr)) { - $arr = array_values($arr); // to prevent problems w/ non sequential arrays - for ($i = 0; $i < count($arr); $i++) { - if(!is_array($arr[$i])) return false; - foreach ($arr[$i] as $k => $v) { - unset($arr[$i][$k]); - if ($this->OPTIONS['CASELESS']) $k = strtolower($k); - if (preg_match('/^[0-9]+$/', $k)) $k = '_'.$k; - - if (is_array($v)) { - if (($arr[$i][$k] = $this->_arrayBuild($v)) == false) return false; - } - else { // reinsert the var - $arr[$i][$k] = $v; - } - } - if ($this->OPTIONS['LOOP_CONTEXT_VARS']) { - if ($i == 0) $arr[$i]['__FIRST__'] = true; - if (($i + 1) == count($arr)) $arr[$i]['__LAST__'] = true; - if ($i != 0 && (($i + 1) < count($arr))) $arr[$i]['__INNER__'] = true; - if (is_int(($i+1) / 2)) $arr[$i]['__EVEN__'] = true; - if (!is_int(($i+1) / 2)) $arr[$i]['__ODD__'] = true; - $arr[$i]['__ROWNUM__'] = ($i + 1); - } - } - return $arr; - } - elseif (empty($arr)) { - return true; - } - } - - /** - * FUNCTION: _parseIf - * returns a string used for parsing in tmpl_if statements. - * - * @param string $varname - * @param string $value - * @param string $op - * @param string $namespace current namespace - * @access private - * @return string used for eval'ing - */ - function _parseIf ($varname, $value=null, $op=null, $namespace=null) { - if (isset($namespace)) $namespace = substr($namespace, 0, -1); - $comp_str = ''; // used for extended if statements - - // work out what to put on the end id value="whatever" is used - if (isset($value)) { - - // add the correct operator depending on whether it's been specified or not - if (!empty($op)) { - if (in_array($op, $this->allowed_if_ops)) { - $comp_str .= $op; - } - else { - vlibTemplateError::raiseError('VT_WARNING_INVALID_IF_OP', WARNING, $op); - } - } - else { - $comp_str .= '=='; - } - - // now we add the value, if it's numeric, then we leave the quotes off - if (is_numeric($value)) { - $comp_str .= $value; - } - else { - $comp_str .= '\''.$value.'\''; - } - } - - if (count($this->_namespace) == 0 || $namespace == 'global') return '$this->_vars[\''.$varname.'\']'.$comp_str; - $retstr = '$this->_arrvars'; - $numnamespaces = count($this->_namespace); - for ($i=0; $i < $numnamespaces; $i++) { - if ($this->_namespace[$i] == $namespace || (($i + 1) == $numnamespaces && !empty($namespace))) { - $retstr .= "['".$namespace."'][\$_".$i."]"; - break 1; - } - else { - $retstr .= "['".$this->_namespace[$i]."'][\$_".$i."]"; - } - } - if ($this->OPTIONS['GLOBAL_VARS'] && empty($namespace)) { - return '(('.$retstr.'[\''.$varname.'\'] !== null) ? '.$retstr.'[\''.$varname.'\'] : $this->_vars[\''.$varname.'\'])'.$comp_str; - } - else { - return $retstr."['".$varname."']".$comp_str; - } - } - - - /** - * FUNCTION: _parseLoop - * returns a string used for parsing in tmpl_loop statements. - * - * @param string $varname - * @access private - * @return string used for eval'ing - */ - function _parseLoop ($varname) { - array_push($this->_namespace, $varname); - $tempvar = count($this->_namespace) - 1; - $retstr = "for (\$_".$tempvar."=0 ; \$_".$tempvar." < count(\$this->_arrvars"; - for ($i=0; $i < count($this->_namespace); $i++) { - $retstr .= "['".$this->_namespace[$i]."']"; - if ($this->_namespace[$i] != $varname) $retstr .= "[\$_".$i."]"; - } - return $retstr."); \$_".$tempvar."++) {"; - } - - /** - * FUNCTION: _parseVar - * - * returns a string used for parsing in tmpl_var statements. - * - * @param string $wholetag - * @param string $tag - * @param string $varname - * @param string $escape - * @param string $format - * @param string $namespace - * @access private - * @return string used for eval'ing - */ - function _parseVar ($wholetag, $tag, $varname, $escape, $format, $namespace) { - if (!empty($namespace)) $namespace = substr($namespace, 0, -1); - $wholetag = stripslashes($wholetag); - - if (count($this->_namespace) == 0 || $namespace == 'global') { - $var1 = '$this->_vars[\''.$varname.'\']'; - } - else { - $var1build = "\$this->_arrvars"; - $numnamespaces = count($this->_namespace); - for ($i=0; $i < $numnamespaces; $i++) { - if ($this->_namespace[$i] == $namespace || (($i + 1) == $numnamespaces && !empty($namespace))) { - $var1build .= "['".$namespace."'][\$_".$i."]"; - break 1; - } - else { - $var1build .= "['".$this->_namespace[$i]."'][\$_".$i."]"; - } - } - $var1 = $var1build . "['$varname']"; - if ($this->OPTIONS['GLOBAL_VARS'] && empty($namespace)) { - $var2 = '$this->_vars[\''.$varname.'\']'; - } - } - - $beforevar = ''; - $aftervar = ''; - if (!empty($escape)&& isset($this->ESCAPE_TAGS[$escape])) { - $beforevar .= $this->ESCAPE_TAGS[$escape]['open']; - $aftervar = $this->ESCAPE_TAGS[$escape]['close'] . $aftervar; - } - - if (!empty($format)&& isset($this->FORMAT_TAGS[$format])) { - $beforevar .= $this->FORMAT_TAGS[$format]['open']; - $aftervar = $this->FORMAT_TAGS[$format]['close'] . $aftervar; - } - - // build return values - $retstr = 'if ('.$var1.' !== null) { '; - $retstr .= 'print('.$beforevar.$var1.$aftervar.'); '; - $retstr .= '}'; - - if (@$var2) { - $retstr .= ' elseif ('.$var2.' !== null) { '; - $retstr .= 'print('.$beforevar.$var2.$aftervar.'); '; - $retstr .= '}'; - } - - switch (strtolower($this->OPTIONS['UNKNOWNS'])) { - case 'comment': - $comment = addcslashes('/', '', $wholetag).'//-->', '"'); - $retstr .= ' else { print("'.$comment.'"); $this->_setUnknown("'.$varname.'"); }'; - return $retstr; - break; - case 'leave': - $retstr .= ' else { print("'.addcslashes($wholetag, '"').'"); $this->_setUnknown("'.$varname.'"); }'; - return $retstr; - break; - case 'print': - $retstr .= ' else { print("'.htmlspecialchars($wholetag, ENT_QUOTES).'"); $this->_setUnknown("'.$varname.'"); }'; - return $retstr; - break; - - case 'ignore': - return $retstr; - break; - case 'remove': - default: - $retstr .= ' else { $this->_setUnknown("'.$varname.'"); }'; - return $retstr; - break; - } - } - - /** - * FUNCTION: _parseTag - * takes values from preg_replace in $this->_intparse() and determines - * the replace string. - * - * @param array $args array of all matches found by preg_replace - * @access private - * @return string replace values - */ - function _parseTag ($args) { - $wholetag = $args[0]; - $openclose = $args[1]; - $tag = strtolower($args[2]); - $newline = $args[9]; - //echo "1#$newline#2"; - - if ($tag == 'else') return ''.$newline; - if ($tag == 'tmpl_include') return $wholetag; // ignore tmpl_include tags - - if (preg_match("/^<\/|{\/| MYSQL: "utf-8" --> "utf8", "iso-8859-1" --> "latin1") - -define("DB_TYPE",$conf["db_type"]); -define("DB_HOST",$conf["db_host"]); -define("DB_DATABASE",$conf["db_database"]); -define("DB_USER",$conf["db_user"]); -define("DB_PASSWORD",$conf["db_password"]); -define("DB_CHARSET",$conf["db_charset"]); - - -//** Database settings for the master DB. This setting is only used in multiserver setups -$conf["dbmaster_type"] = 'mysql'; -$conf["dbmaster_host"] = ''; -$conf["dbmaster_database"] = 'dbispconfig'; -$conf["dbmaster_user"] = ''; -$conf["dbmaster_password"] = '1c70c5d027ce02c30afb43fd39f9015a'; - - -//** Paths -define('ISPC_ROOT_PATH', realpath(dirname(__FILE__).'/../')); // The main ROOT is the parent directory to this file, ie Interface/. NO trailing slashes. -define('ISPC_LIB_PATH', ISPC_ROOT_PATH.'/lib'); -define('ISPC_CLASS_PATH', ISPC_ROOT_PATH.'/lib/classes'); -define('ISPC_WEB_PATH', ISPC_ROOT_PATH.'/web'); -define('ISPC_THEMES_PATH', ISPC_ROOT_PATH.'/web/themes'); -define('ISPC_WEB_TEMP_PATH', ISPC_WEB_PATH.'/temp'); // Path for downloads, accessible via browser -define('ISPC_CACHE_PATH', ISPC_ROOT_PATH.'/cache'); - -//** Paths (Do not change!) -$conf["rootpath"] = substr(dirname(__FILE__),0,-4); -$conf["fs_div"] = "/"; // File system divider, "\\" on windows and "/"" on linux and unix -$conf["classpath"] = $conf["rootpath"].$conf["fs_div"]."lib".$conf["fs_div"]."classes"; -$conf["temppath"] = $conf["rootpath"].$conf["fs_div"]."temp"; - -define("FS_DIV",$conf["fs_div"]); -define("SERVER_ROOT",$conf["rootpath"]); -define("INCLUDE_ROOT",SERVER_ROOT.FS_DIV."lib"); -define("CLASSES_ROOT",INCLUDE_ROOT.FS_DIV."classes"); - - -//** Server -$conf['app_title'] = ISPC_APP_TITLE; -$conf['app_version'] = ISPC_APP_VERSION; -$conf['app_link'] = 'http://www.ispconfig.org/'; -$conf['modules_available'] = 'admin,mail,sites,monitor,client,dns,help'; -$conf["server_id"] = "1"; - - -//** Interface -define('ISPC_INTERFACE_MODULES_ENABLED', 'mail,sites,dns,tools'); - - -//** Logging -$conf["log_file"] = '/var/log/ispconfig/ispconfig.log'; -$conf["log_priority"] = 2; // 0 = Debug, 1 = Warning, 2 = Error - - -//** Allow software package installations -$conf['software_updates_enabled'] = false; - - -//** Themes -$conf["theme"] = 'default'; -$conf["html_content_encoding"] = 'utf-8'; // example: utf-8, iso-8859-1, ... -$conf["logo"] = 'themes/default/images/ispc_logo.png'; - - -//** Default Language -$conf["language"] = 'en'; -$conf["debug_language"] = false; - - -//** Misc. -$conf["interface_logout_url"] = ""; // example: http://www.domain.tld/ - - -//** Auto Load Modules -$conf["start_db"] = true; -$conf["start_session"] = true; - - -//** Constants -define("LOGLEVEL_DEBUG",0); -define("LOGLEVEL_WARN",1); -define("LOGLEVEL_ERROR",2); - -?> diff --git a/interface/ispconfig/server/lib/mysql_clientdb.conf b/interface/ispconfig/server/lib/mysql_clientdb.conf deleted file mode 100644 index b89c5079f..000000000 --- a/interface/ispconfig/server/lib/mysql_clientdb.conf +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/interface/ispconfig/server/mods-available/client_module.inc.php b/interface/ispconfig/server/mods-available/client_module.inc.php deleted file mode 100644 index 4d46f114e..000000000 --- a/interface/ispconfig/server/mods-available/client_module.inc.php +++ /dev/null @@ -1,96 +0,0 @@ -plugins->announceEvents($this->module_name,$this->actions_available); - - /* - As we want to get notified of any changes on several database tables, - we register for them. - - The following function registers the function "functionname" - to be executed when a record for the table "dbtable" is - processed in the sys_datalog. "classname" is the name of the - class that contains the function functionname. - */ - - $app->modules->registerTableHook('client',$this->module_name,'process'); - - } - - /* - This function is called when a change in one of the registered tables is detected. - The function then raises the events for the plugins. - */ - - function process($tablename,$action,$data) { - global $app; - - switch ($tablename) { - case 'client': - if($action == 'i') $app->plugins->raiseEvent('client_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('client_update',$data); - if($action == 'd') $app->plugins->raiseEvent('client_delete',$data); - break; - } // end switch - } // end function - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/mods-available/cron_module.inc.php b/interface/ispconfig/server/mods-available/cron_module.inc.php deleted file mode 100644 index 503d7ef7c..000000000 --- a/interface/ispconfig/server/mods-available/cron_module.inc.php +++ /dev/null @@ -1,97 +0,0 @@ -plugins->announceEvents($this->module_name,$this->actions_available); - - /* - As we want to get notified of any changes on several database tables, - we register for them. - - The following function registers the function "functionname" - to be executed when a record for the table "dbtable" is - processed in the sys_datalog. "classname" is the name of the - class that contains the function functionname. - */ - - $app->modules->registerTableHook('cron',$this->module_name,'process'); - - } - - /* - This function is called when a change in one of the registered tables is detected. - The function then raises the events for the plugins. - */ - - function process($tablename,$action,$data) { - global $app; - - switch ($tablename) { - case 'cron': - if($action == 'i') $app->plugins->raiseEvent('cron_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('cron_update',$data); - if($action == 'd') $app->plugins->raiseEvent('cron_delete',$data); - break; - } // end switch - } // end function - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/mods-available/database_module.inc.php b/interface/ispconfig/server/mods-available/database_module.inc.php deleted file mode 100644 index 2dac689ee..000000000 --- a/interface/ispconfig/server/mods-available/database_module.inc.php +++ /dev/null @@ -1,103 +0,0 @@ -plugins->announceEvents($this->module_name,$this->actions_available); - - /* - As we want to get notified of any changes on several database tables, - we register for them. - - The following function registers the function "functionname" - to be executed when a record for the table "dbtable" is - processed in the sys_datalog. "classname" is the name of the - class that contains the function functionname. - */ - - $app->modules->registerTableHook('web_database','database_module','process'); - - // Register service - //$app->services->registerService('httpd','web_module','restartHttpd'); - - } - - /* - This function is called when a change in one of the registered tables is detected. - The function then raises the events for the plugins. - */ - - function process($tablename,$action,$data) { - global $app; - - switch ($tablename) { - case 'web_database': - if($action == 'i') $app->plugins->raiseEvent('database_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('database_update',$data); - if($action == 'd') $app->plugins->raiseEvent('database_delete',$data); - break; - } // end switch - } // end function - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/mods-available/dns_module.inc.php b/interface/ispconfig/server/mods-available/dns_module.inc.php deleted file mode 100644 index 17c36bd26..000000000 --- a/interface/ispconfig/server/mods-available/dns_module.inc.php +++ /dev/null @@ -1,128 +0,0 @@ -plugins->announceEvents($this->module_name,$this->actions_available); - - /* - As we want to get notified of any changes on several database tables, - we register for them. - - The following function registers the function "functionname" - to be executed when a record for the table "dbtable" is - processed in the sys_datalog. "classname" is the name of the - class that contains the function functionname. - */ - - $app->modules->registerTableHook('dns_soa',$this->module_name,'process'); - $app->modules->registerTableHook('dns_rr',$this->module_name,'process'); - - - // Register service - $app->services->registerService('bind','dns_module','restartBind'); - - } - - /* - This function is called when a change in one of the registered tables is detected. - The function then raises the events for the plugins. - */ - - function process($tablename,$action,$data) { - global $app; - - switch ($tablename) { - case 'dns_soa': - if($action == 'i') $app->plugins->raiseEvent('dns_soa_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('dns_soa_update',$data); - if($action == 'd') $app->plugins->raiseEvent('dns_soa_delete',$data); - break; - case 'dns_rr': - if($action == 'i') $app->plugins->raiseEvent('dns_rr_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('dns_rr_update',$data); - if($action == 'd') $app->plugins->raiseEvent('dns_rr_delete',$data); - break; - } // end switch - } // end function - - - function restartBind($action = 'restart') { - global $app; - - $command = ''; - if(is_file('/etc/init.d/bind9')) { - $command = '/etc/init.d/bind9'; - } else { - $command = '/etc/init.d/named'; - } - - if($action == 'restart') { - exec($command.' restart'); - } else { - exec($command.' reload'); - } - - } - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/mods-available/mail_module.inc.php b/interface/ispconfig/server/mods-available/mail_module.inc.php deleted file mode 100644 index d0c33f2ae..000000000 --- a/interface/ispconfig/server/mods-available/mail_module.inc.php +++ /dev/null @@ -1,153 +0,0 @@ -plugins->announceEvents($this->module_name,$this->actions_available); - - /* - As we want to get notified of any changes on several database tables, - we register for them. - - The following function registers the function "functionname" - to be executed when a record for the table "dbtable" is - processed in the sys_datalog. "classname" is the name of the - class that contains the function functionname. - */ - - $app->modules->registerTableHook('mail_access','mail_module','process'); - $app->modules->registerTableHook('mail_domain','mail_module','process'); - $app->modules->registerTableHook('mail_forwarding','mail_module','process'); - $app->modules->registerTableHook('mail_transport','mail_module','process'); - $app->modules->registerTableHook('mail_user','mail_module','process'); - $app->modules->registerTableHook('mail_get','mail_module','process'); - $app->modules->registerTableHook('mail_content_filter','mail_module','process'); - - } - - /* - This function is called when a change in one of the registered tables is detected. - The function then raises the events for the plugins. - */ - - function process($tablename,$action,$data) { - global $app; - - switch ($tablename) { - case 'mail_access': - if($action == 'i') $app->plugins->raiseEvent('mail_access_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('mail_access_update',$data); - if($action == 'd') $app->plugins->raiseEvent('mail_access_delete',$data); - break; - case 'mail_domain': - if($action == 'i') $app->plugins->raiseEvent('mail_domain_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('mail_domain_update',$data); - if($action == 'd') $app->plugins->raiseEvent('mail_domain_delete',$data); - break; - case 'mail_forwarding': - if($action == 'i') $app->plugins->raiseEvent('mail_forwarding_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('mail_forwarding_update',$data); - if($action == 'd') $app->plugins->raiseEvent('mail_forwarding_delete',$data); - break; - case 'mail_transport': - if($action == 'i') $app->plugins->raiseEvent('mail_transport_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('mail_transport_update',$data); - if($action == 'd') $app->plugins->raiseEvent('mail_transport_delete',$data); - break; - case 'mail_user': - if($action == 'i') $app->plugins->raiseEvent('mail_user_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('mail_user_update',$data); - if($action == 'd') $app->plugins->raiseEvent('mail_user_delete',$data); - break; - case 'mail_get': - if($action == 'i') $app->plugins->raiseEvent('mail_get_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('mail_get_update',$data); - if($action == 'd') $app->plugins->raiseEvent('mail_get_delete',$data); - break; - case 'mail_content_filter': - if($action == 'i') $app->plugins->raiseEvent('mail_content_filter_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('mail_content_filter_update',$data); - if($action == 'd') $app->plugins->raiseEvent('mail_content_filter_delete',$data); - break; - } // end switch - } // end function - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/mods-available/monitor_core_module.inc.php b/interface/ispconfig/server/mods-available/monitor_core_module.inc.php deleted file mode 100644 index 8447baee3..000000000 --- a/interface/ispconfig/server/mods-available/monitor_core_module.inc.php +++ /dev/null @@ -1,1465 +0,0 @@ -plugins->announceEvents($this->module_name,$this->actions_available); - - /* - As we want to get notified of any changes on several database tables, - we register for them. - - The following function registers the function "functionname" - to be executed when a record for the table "dbtable" is - processed in the sys_datalog. "classname" is the name of the - class that contains the function functionname. - */ - /* none at them moment */ - //$app->modules->registerTableHook('mail_access','mail_module','process'); - - /* - Do the monitor every n minutes and write the result in the db - */ - $min = date('i'); - if (($min % $this->interval) == 0) - { - $this->doMonitor(); - } - } - - /* - This function is called when a change in one of the registered tables is detected. - The function then raises the events for the plugins. - */ - function process($tablename, $action, $data) { - // global $app; - // - // switch ($tablename) { - // case 'mail_access': - // if($action == 'i') $app->plugins->raiseEvent('mail_access_insert',$data); - // if($action == 'u') $app->plugins->raiseEvent('mail_access_update',$data); - // if($action == 'd') $app->plugins->raiseEvent('mail_access_delete',$data); - // break; - // } // end switch - } // end function - - /* - This method is called every n minutes, when the module ist loaded. - The method then does a system-monitoring - */ - // TODO: what monitoring is done should be a config-var - function doMonitor() - { - /* Calls the single Monitoring steps */ - $this->monitorServer(); - $this->monitorDiskUsage(); - $this->monitorMemUsage(); - $this->monitorCpu(); - $this->monitorServices(); - $this->monitorMailLog(); - $this->monitorMailWarnLog(); - $this->monitorMailErrLog(); - $this->monitorMessagesLog(); - $this->monitorISPCCronLog(); - $this->monitorFreshClamLog(); - $this->monitorClamAvLog(); - $this->monitorIspConfigLog(); - $this->monitorSystemUpdate(); - $this->monitorMailQueue(); - $this->monitorRaid(); - $this->monitorRkHunter(); - $this->monitorFail2ban(); - $this->monitorSysLog(); - } - - function monitorServer(){ - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'server_load'; - - /* - Fetch the data into a array - */ - $procUptime = shell_exec("cat /proc/uptime | cut -f1 -d' '"); - $data['up_days'] = floor($procUptime/86400); - $data['up_hours'] = floor(($procUptime-$data['up_days']*86400)/3600); - $data['up_minutes'] = floor(($procUptime-$data['up_days']*86400-$data['up_hours']*3600)/60); - - $data['uptime'] = shell_exec("uptime"); - - $tmp = explode(",", $data['uptime'], 4); - $tmpUser = explode(" ", trim($tmp[2])); - $data['user_online'] = intval($tmpUser[0]); - - /* Old Load Average Code - $loadTmp = explode(":" , trim($tmp[3])); - $load = explode(",", $loadTmp[1]); - $data['load_1'] = floatval(trim($load[0])); - $data['load_5'] = floatval(trim($load[1])); - $data['load_15'] = floatval(trim($load[2])); */ - - //* New Load Average code to fix "always zero" bug in non-english distros. NEEDS TESTING - $loadTmp = shell_exec("cat /proc/loadavg | cut -f1-3 -d' '"); - $load = explode(" ", $loadTmp); - $data['load_1'] = floatval(str_replace(',', '.', $load[0])); - $data['load_5'] = floatval(str_replace(',', '.', $load[1])); - $data['load_15'] = floatval(str_replace(',', '.', $load[2])); - - /** The state of the server-load. */ - $state = 'ok'; - if ($data['load_1'] > 20 ) $state = 'info'; - if ($data['load_1'] > 50 ) $state = 'warning'; - if ($data['load_1'] > 100 ) $state = 'critical'; - if ($data['load_1'] > 150 ) $state = 'error'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorDiskUsage() { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'disk_usage'; - - /** The state of the disk-usage */ - $state = 'ok'; - - /** Fetch the data of ALL devices into a array (needed for monitoring!)*/ - $dfData = shell_exec("df -hT"); - - // split into array - $df = explode("\n", $dfData); - - /* - * ignore the first line, process the rest - */ - for($i=1; $i <= sizeof($df); $i++){ - if ($df[$i] != '') - { - /* - * Make a array of the data - */ - $s = preg_split ("/[\s]+/", $df[$i]); - $data[$i]['fs'] = $s[0]; - $data[$i]['type'] = $s[1]; - $data[$i]['size'] = $s[2]; - $data[$i]['used'] = $s[3]; - $data[$i]['available'] = $s[4]; - $data[$i]['percent'] = $s[5]; - $data[$i]['mounted'] = $s[6]; - /* - * calculate the state - */ - $usePercent = floatval($data[$i]['percent']); - - //* We dont want to check the cdrom drive as a cd / dvd is always 100% full - if($data[$i]['type'] != 'iso9660' && $data[$i]['type'] != 'cramfs' && $data[$i]['type'] != 'udf') { - if ($usePercent > 75) $state = $this->_setState($state, 'info'); - if ($usePercent > 80) $state = $this->_setState($state, 'warning'); - if ($usePercent > 90) $state = $this->_setState($state, 'critical'); - if ($usePercent > 95) $state = $this->_setState($state, 'error'); - } - } - } - - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - - function monitorMemUsage() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'mem_usage'; - - /* - Fetch the data into a array - */ - $miData = shell_exec("cat /proc/meminfo"); - - $memInfo = explode("\n", $miData); - - foreach($memInfo as $line){ - $part = preg_split("/:/", $line); - $key = trim($part[0]); - $tmp = explode(" ", trim($part[1])); - $value = 0; - if ($tmp[1] == 'kB') $value = $tmp[0] * 1024; - $data[$key] = $value; - } - - /* - * actually this info has no state. - * maybe someone knows better...???... - */ - $state = 'no_state'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - - function monitorCpu() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'cpu_info'; - - /* - Fetch the data into a array - */ - $cpuData = shell_exec("cat /proc/cpuinfo"); - $cpuInfo = explode("\n", $cpuData); - $processor = 0; - - foreach($cpuInfo as $line){ - - $part = preg_split("/:/", $line); - $key = trim($part[0]); - $value = trim($part[1]); - if($key == 'processor') $processor = intval($value); - if($key != '') $data[$key.' '.$processor] = $value; - } - - /* the cpu has no state. It is, what it is */ - $state = 'no_state'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - - function monitorServices() - { - global $app; - global $conf; - - /** the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** get the "active" Services of the server from the DB */ - $services = $app->dbmaster->queryOneRecord("SELECT * FROM server WHERE server_id = " . $server_id); - - /* The type of the Monitor-data */ - $type = 'services'; - - /** the State of the monitoring */ - /* ok, if ALL aktive services are running, - * error, if not - * There is no other state! - */ - $state = 'ok'; - - /* Monitor Webserver */ - $data['webserver'] = -1; // unknown - not needed - if ($services['web_server'] == 1) - { - if($this->_checkTcp('localhost', 80)) { - $data['webserver'] = 1; - } else { - $data['webserver'] = 0; - $state = 'error'; // because service is down - } - } - - /* Monitor FTP-Server */ - $data['ftpserver'] = -1; // unknown - not needed - if ($services['file_server'] == 1) - { - if($this->_checkFtp('localhost', 21)) { - $data['ftpserver'] = 1; - } else { - $data['ftpserver'] = 0; - $state = 'error'; // because service is down - } - } - - /* Monitor SMTP-Server */ - $data['smtpserver'] = -1; // unknown - not needed - if ($services['mail_server'] == 1) - { - if($this->_checkTcp('localhost', 25)) { - $data['smtpserver'] = 1; - } else { - $data['smtpserver'] = 0; - $state = 'error'; // because service is down - } - } - - /* Monitor POP3-Server */ - $data['pop3server'] = -1; // unknown - not needed - if ($services['mail_server'] == 1) - { - if($this->_checkTcp('localhost', 110)) { - $data['pop3server'] = 1; - } else { - $data['pop3server'] = 0; - $state = 'error'; // because service is down - } - } - - /* Monitor IMAP-Server */ - $data['imapserver'] = -1; // unknown - not needed - if ($services['mail_server'] == 1) - { - if($this->_checkTcp('localhost', 143)) { - $data['imapserver'] = 1; - } else { - $data['imapserver'] = 0; - $state = 'error'; // because service is down - } - } - - /* Monitor BIND-Server */ - $data['bindserver'] = -1; // unknown - not needed - if ($services['dns_server'] == 1) - { - if($this->_checkTcp('localhost', 53)) { - $data['bindserver'] = 1; - } else { - $data['bindserver'] = 0; - $state = 'error'; // because service is down - } - } - - /* Monitor MYSQL-Server */ - $data['mysqlserver'] = -1; // unknown - not needed - if ($services['db_server'] == 1) - { - if($this->_checkTcp('localhost', 3306)) { - $data['mysqlserver'] = 1; - } else { - $data['mysqlserver'] = 0; - $state = 'error'; // because service is down - } - } - - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - - function monitorSystemUpdate(){ - /* - * This monitoring is expensive, so do it only once a hour - */ - $min = date('i'); - if ($min != 0) return; - - /* - * OK - here we go... - */ - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'system_update'; - - /* This monitoring is only available at debian or Ubuntu */ - if(file_exists('/etc/debian_version')){ - - /* - * first update the "update-database" - */ - shell_exec('apt-get update'); - - /* - * Then test the upgrade. - * if there is any output, then there is a needed update - */ - $aptData = shell_exec('apt-get -s -qq dist-upgrade'); - if ($aptData == '') - { - /* There is nothing to update! */ - $state = 'ok'; - } - else - { - /* There is something to update! */ - $state = 'warning'; - } - - /* - * Fetch the output - */ - $data['output'] = shell_exec('apt-get -s -q dist-upgrade'); - } - elseif (file_exists("/etc/gentoo-release")) { - - /* - * first update the portage tree - */ - - // In keeping with gentoo's rsync policy, don't update to frequently (every four hours - taken from http://www.gentoo.org/doc/en/source_mirrors.xml) - $do_update = true; - if (file_exists('/usr/portage/metadata/timestamp.chk')) - { - $datetime = file_get_contents('/usr/portage/metadata/timestamp.chk'); - $datetime = trim($datetime); - - $dstamp = strtotime($datetime); - if ($dstamp) - { - $checkat = $dstamp + 14400; // + 4hours - if (mktime() < $checkat) { - $do_update = false; - } - } - } - - if ($do_update) { - shell_exec('emerge --sync --quiet'); - } - - /* - * Then test the upgrade. - * if there is any output, then there is a needed update - */ - $emergeData = shell_exec('emerge -puDNt --color n --nospinner --quiet world'); - if ($emergeData == '') - { - /* There is nothing to update! */ - $state = 'ok'; - } - else - { - /* There is something to update! */ - $state = 'warning'; - } - - /* - * Fetch the output - */ - $data['output'] = shell_exec('emerge -pvuDNt --color n --nospinner world'); - } - else { - /* - * It is not debian/Ubuntu, so there is no data and no state - * - * no_state, NOT unknown, because "unknown" is shown as state - * inside the GUI. no_state is hidden. - * - * We have to write NO DATA inside the DB, because the GUI - * could not know, if there is any dat, or not... - */ - $state = 'no_state'; - $data['output']= ''; - } - - /* - * Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 0, 2); - } - - function monitorMailQueue(){ - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'mailq'; - - /* Get the data from the mailq */ - $data['output'] = shell_exec('mailq'); - - /* - * The last line has more informations - */ - $tmp = explode("\n", $data['output']); - $more = $tmp[sizeof($tmp) - 1]; - $this->_getIntArray($more); - $data['bytes'] = $res[0]; - $data['requests'] = $res[1]; - - /** The state of the mailq. */ - $state = 'ok'; - if ($data['requests'] > 2000 ) $state = 'info'; - if ($data['requests'] > 5000 ) $state = 'warning'; - if ($data['requests'] > 8000 ) $state = 'critical'; - if ($data['requests'] > 10000 ) $state = 'error'; - - /* - * Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - - function monitorRaid(){ - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'raid_state'; - - /* This monitoring is only available if mdadm is installed */ - $location = system('which mdadm', $retval); - if($retval === 0){ - /* - * Fetch the output - */ - $data['output'] = shell_exec('cat /proc/mdstat'); - - /* - * Then calc the state. - */ - $tmp = explode("\n", $data['output']); - $state = 'ok'; - for ($i = 0; $i < sizeof($tmp); $i++){ - /* fetch the next line */ - $line = $tmp[$i]; - - if ((strpos($line, '[U_]') !== false) || (strpos($line, '[_U]') !== false)) - { - /* One Disk is not working. - * if the next line starts with "[>" or "[=" then - * recovery (resync) is in state and the state is - * information instead of critical - */ - $nextLine = $tmp[$i+1]; - if ((strpos($nextLine, '[>') === false) && (strpos($nextLine, '[=') === false)) { - $state = $this->_setState($state, 'critical'); - } - else - { - $state = $this->_setState($state, 'info'); - } - } - if (strpos($line, '[__]') !== false) - { - /* both Disk are not working */ - $state = $this->_setState($state, 'error'); - } - if (strpos($line, '[UU]') !== false) - { - /* The disks are OK. - * if the next line starts with "[>" or "[=" then - * recovery (resync) is in state and the state is - * information instead of ok - */ - $nextLine = $tmp[$i+1]; - if ((strpos($nextLine, '[>') === false) && (strpos($nextLine, '[=') === false)) { - $state = $this->_setState($state, 'ok'); - } - else - { - $state = $this->_setState($state, 'info'); - } - } - } - - } - else { - /* - * mdadm is not installed, so there is no data and no state - * - * no_state, NOT unknown, because "unknown" is shown as state - * inside the GUI. no_state is hidden. - * - * We have to write NO DATA inside the DB, because the GUI - * could not know, if there is any dat, or not... - */ - $state = 'no_state'; - $data['output']= ''; - } - - /* - * Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorRkHunter(){ - /* - * This monitoring is expensive, so do it only once a day - */ - $min = date('i'); - $hour = date('H'); - if (!($min == 0 && $hour == 23)) return; - - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'rkhunter'; - - /* This monitoring is only available if rkhunter is installed */ - $location = system('which rkhunter', $retval); - if($retval === 0){ - /* - * Fetch the output - */ - $data['output'] = shell_exec('rkhunter --update --checkall --nocolors --skip-keypress'); - - /* - * At this moment, there is no state (maybe later) - */ - $state = 'no_state'; - } - else { - /* - * rkhunter is not installed, so there is no data and no state - * - * no_state, NOT unknown, because "unknown" is shown as state - * inside the GUI. no_state is hidden. - * - * We have to write NO DATA inside the DB, because the GUI - * could not know, if there is any dat, or not... - */ - $state = 'no_state'; - $data['output']= ''; - } - - /* - * Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 0, 2); - } - - function monitorFail2ban(){ - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_fail2ban'; - - /* This monitoring is only available if fail2ban is installed */ - $location = system('which fail2ban-client', $retval); // Debian, Ubuntu, Fedora - if($retval !== 0) $location = system('which fail2ban', $retval); // CentOS - if($retval === 0){ - /* Get the data of the log */ - $data = $this->_getLogData($type); - - /* - * At this moment, there is no state (maybe later) - */ - $state = 'no_state'; - } - else { - /* - * fail2ban is not installed, so there is no data and no state - * - * no_state, NOT unknown, because "unknown" is shown as state - * inside the GUI. no_state is hidden. - * - * We have to write NO DATA inside the DB, because the GUI - * could not know, if there is any dat, or not... - */ - $state = 'no_state'; - $data = ''; - } - - /* - * Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorSysLog(){ - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'sys_log'; - - /* - * is there any warning or error for this server? - */ - $state = 'ok'; - $dbData = $app->dbmaster->queryAllRecords("SELECT loglevel FROM sys_log WHERE server_id = " . $server_id . " AND loglevel > 0"); - if (is_array($dbData)) { - foreach($dbData as $item){ - if ($item['loglevel'] == 1) $state = $this->_setState($state, 'warning'); - if ($item['loglevel'] == 2) $state = $this->_setState($state, 'error'); - } - } - - /** There is no monitor-data because the data is in the sys_log table */ - $data['output']= ''; - - /* - * Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorMailLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_mail'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - /* - * actually this info has no state. - * maybe someone knows better...???... - */ - $state = 'no_state'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorMailWarnLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_mail_warn'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - /* - * actually this info has no state. - * maybe someone knows better...???... - */ - $state = 'no_state'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorMailErrLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_mail_err'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - /* - * actually this info has no state. - * maybe someone knows better...???... - */ - $state = 'no_state'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - - function monitorMessagesLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_messages'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - /* - * actually this info has no state. - * maybe someone knows better...???... - */ - $state = 'no_state'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorISPCCronLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_ispc_cron'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - /* - * actually this info has no state. - * maybe someone knows better...???... - */ - $state = 'no_state'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorFreshClamLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_freshclam'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - /* Get the data from the LAST log-Entry. - * if there can be found: - * WARNING: Your ClamAV installation is OUTDATED! - * then the clamav is outdated. This is a warning! - */ - $state = 'ok'; - - $tmp = explode("\n", $data); - $lastLog = array(); - if ($tmp[sizeof($tmp)-1] == "") - { - /* the log ends with an empty line remove this */ - array_pop($tmp); - } - if (strpos($tmp[sizeof($tmp)-1], "-------------") !== false) - { - /* the log ends with "-----..." remove this */ - array_pop($tmp); - } - for ($i = sizeof($tmp) -1; $i > 0; $i--){ - if (strpos($tmp[$i], "---------") === false){ - /* no delimiter found, so add this to the last-log */ - $lastLog[] = $tmp[$i]; - } - else - { - /* delimiter found, so there is no more line left! */ - break; - } - } - - /* - * Now we have the last log in the array. - * Check if the outdated-string is found... - */ - foreach($lastLog as $line){ - if (strpos(strtolower($line), "outdated") !== false) { - $state = $this->_setState($state, 'warning'); - } - } - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorClamAvLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_clamav'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - // Todo: the state should be calculated. - $state = 'ok'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorIspConfigLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_ispconfig'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - // Todo: the state should be calculated. - $state = 'ok'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - - function _getLogData($log){ - - $dist = ''; - $logfile = ''; - - if(@is_file('/etc/debian_version')) $dist = 'debian'; - if(@is_file('/etc/redhat-release')) $dist = 'redhat'; - if(@is_file('/etc/SuSE-release')) $dist = 'suse'; - if(@is_file('/etc/gentoo-release')) $dist = 'gentoo'; - - switch($log) { - case 'log_mail': - if($dist == 'debian') $logfile = '/var/log/mail.log'; - if($dist == 'redhat') $logfile = '/var/log/maillog'; - if($dist == 'suse') $logfile = '/var/log/mail.info'; - if($dist == 'gentoo') $logfile = '/var/log/maillog'; - break; - case 'log_mail_warn': - if($dist == 'debian') $logfile = '/var/log/mail.warn'; - if($dist == 'redhat') $logfile = '/var/log/maillog'; - if($dist == 'suse') $logfile = '/var/log/mail.warn'; - if($dist == 'gentoo') $logfile = '/var/log/maillog'; - break; - case 'log_mail_err': - if($dist == 'debian') $logfile = '/var/log/mail.err'; - if($dist == 'redhat') $logfile = '/var/log/maillog'; - if($dist == 'suse') $logfile = '/var/log/mail.err'; - if($dist == 'gentoo') $logfile = '/var/log/maillog'; - break; - case 'log_messages': - if($dist == 'debian') $logfile = '/var/log/messages'; - if($dist == 'redhat') $logfile = '/var/log/messages'; - if($dist == 'suse') $logfile = '/var/log/messages'; - if($dist == 'gentoo') $logfile = '/var/log/messages'; - break; - case 'log_ispc_cron': - if($dist == 'debian') $logfile = '/var/log/ispconfig/cron.log'; - if($dist == 'redhat') $logfile = '/var/log/ispconfig/cron.log'; - if($dist == 'suse') $logfile = '/var/log/ispconfig/cron.log'; - if($dist == 'gentoo') $logfile = '/var/log/cron'; - break; - case 'log_freshclam': - if($dist == 'debian') $logfile = '/var/log/clamav/freshclam.log'; - if($dist == 'redhat') $logfile = (is_file('/var/log/clamav/freshclam.log') ? '/var/log/clamav/freshclam.log' : '/var/log/freshclam.log'); - if($dist == 'suse') $logfile = ''; - if($dist == 'gentoo') $logfile = '/var/log/clamav/freshclam.log'; - break; - case 'log_clamav': - if($dist == 'debian') $logfile = '/var/log/clamav/clamav.log'; - if($dist == 'redhat') $logfile = (is_file('/var/log/clamav/clamd.log') ? '/var/log/clamav/clamd.log' : '/var/log/maillog'); - if($dist == 'suse') $logfile = ''; - if($dist == 'gentoo') $logfile = '/var/log/clamav/clamd.log'; - break; - case 'log_fail2ban': - if($dist == 'debian') $logfile = '/var/log/fail2ban.log'; - if($dist == 'redhat') $logfile = '/var/log/fail2ban.log'; - if($dist == 'suse') $logfile = '/var/log/fail2ban.log'; - if($dist == 'gentoo') $logfile = '/var/log/fail2ban.log'; - break; - case 'log_ispconfig': - if($dist == 'debian') $logfile = '/var/log/ispconfig/ispconfig.log'; - if($dist == 'redhat') $logfile = '/var/log/ispconfig/ispconfig.log'; - if($dist == 'suse') $logfile = '/var/log/ispconfig/ispconfig.log'; - if($dist == 'gentoo') $logfile = '/var/log/ispconfig/ispconfig.log'; - break; - default: - $logfile = ''; - break; - } - - // Getting the logfile content - if($logfile != '') { - $logfile = escapeshellcmd($logfile); - if(stristr($logfile, ';') or substr($logfile,0,9) != '/var/log/' or stristr($logfile, '..')) { - $log = 'Logfile path error.'; - } - else - { - $log = ''; - if(is_readable($logfile)) { - if($fd = popen("tail -n 100 $logfile", 'r')) { - while (!feof($fd)) { - $log .= fgets($fd, 4096); - $n++; - if($n > 1000) break; - } - fclose($fd); - } - } else { - $log = 'Unable to read '.$logfile; - } - } - } - - return $log; - } - - function _checkTcp ($host,$port) { - - $fp = @fsockopen ($host, $port, $errno, $errstr, 2); - - if ($fp) { - fclose($fp); - return true; - } else { - return false; - } - } - - function _checkUdp ($host,$port) { - - $fp = @fsockopen ('udp://'.$host, $port, $errno, $errstr, 2); - - if ($fp) { - fclose($fp); - return true; - } else { - return false; - } - } - - function _checkFtp ($host,$port){ - - $conn_id = @ftp_connect($host, $port); - - if($conn_id){ - @ftp_close($conn_id); - return true; - } else { - return false; - } - } - - /* - Deletes Records older than n. - */ - function _delOldRecords($type, $min, $hour=0, $days=0) { - global $app; - - $now = time(); - $old = $now - ($min * 60) - ($hour * 60 * 60) - ($days * 24 * 60 * 60); - $sql = "DELETE FROM monitor_data " . - "WHERE " . - "type =" . "'" . $app->dbmaster->quote($type) . "' " . - "AND " . - "created < " . $old; - $app->dbmaster->query($sql); - } - - /* - * Set the state to the given level (or higher, but not lesser). - * * If the actual state is critical and you call the method with ok, - * then the state is critical. - * - * * If the actual state is critical and you call the method with error, - * then the state is error. - */ - function _setState($oldState, $newState) - { - /* - * Calculate the weight of the old state - */ - switch ($oldState) { - case 'no_state': $oldInt = 0; - break; - case 'ok': $oldInt = 1; - break; - case 'unknown': $oldInt = 2; - break; - case 'info': $oldInt = 3; - break; - case 'warning': $oldInt = 4; - break; - case 'critical': $oldInt = 5; - break; - case 'error': $oldInt = 6; - break; - } - /* - * Calculate the weight of the new state - */ - switch ($newState) { - case 'no_state': $newInt = 0 ; - break; - case 'ok': $newInt = 1 ; - break; - case 'unknown': $newInt = 2 ; - break; - case 'info': $newInt = 3 ; - break; - case 'warning': $newInt = 4 ; - break; - case 'critical': $newInt = 5 ; - break; - case 'error': $newInt = 6 ; - break; - } - - /* - * Set to the higher level - */ - if ($newInt > $oldInt){ - return $newState; - } - else - { - return $oldState; - } - } - - function _getIntArray($line){ - /** The array of float found */ - $res = array(); - /* First build a array from the line */ - $data = explode(' ', $line); - /* then check if any item is a float */ - foreach ($data as $item) { - if ($item . '' == (int)$item . ''){ - $res[] = $item; - } - } - return $res; - } - - -} // end class - -?> diff --git a/interface/ispconfig/server/mods-available/server_module.inc.php b/interface/ispconfig/server/mods-available/server_module.inc.php deleted file mode 100644 index 894c97253..000000000 --- a/interface/ispconfig/server/mods-available/server_module.inc.php +++ /dev/null @@ -1,137 +0,0 @@ -plugins->announceEvents($this->module_name,$this->actions_available); - - /* - As we want to get notified of any changes on several database tables, - we register for them. - - The following function registers the function "functionname" - to be executed when a record for the table "dbtable" is - processed in the sys_datalog. "classname" is the name of the - class that contains the function functionname. - */ - - $app->modules->registerTableHook('server','server_module','process'); - $app->modules->registerTableHook('server_ip','server_module','process'); - $app->modules->registerTableHook('firewall','server_module','process'); - $app->modules->registerTableHook('software_update_inst','server_module','process'); - - // Register service - //$app->services->registerService('httpd','web_module','restartHttpd'); - - } - - /* - This function is called when a change in one of the registered tables is detected. - The function then raises the events for the plugins. - */ - - function process($tablename,$action,$data) { - global $app; - - switch ($tablename) { - case 'server': - if($action == 'i') $app->plugins->raiseEvent('server_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('server_update',$data); - if($action == 'd') $app->plugins->raiseEvent('server_delete',$data); - break; - case 'server_ip': - if($action == 'i') $app->plugins->raiseEvent('server_ip_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('server_ip_update',$data); - if($action == 'd') $app->plugins->raiseEvent('server_ip_delete',$data); - break; - case 'firewall': - if($action == 'i') $app->plugins->raiseEvent('firewall_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('firewall_update',$data); - if($action == 'd') $app->plugins->raiseEvent('firewall_delete',$data); - break; - case 'software_update_inst': - if($action == 'i') $app->plugins->raiseEvent('software_update_inst_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('software_update_inst_update',$data); - if($action == 'd') $app->plugins->raiseEvent('software_update_inst_delete',$data); - break; - } // end switch - } // end function - - /* - // This function is used - function restartHttpd($action = 'restart') { - global $app; - if($action == 'restart') { - exec('/etc/init.d/apache2 restart'); - } else { - exec('/etc/init.d/apache2 reload'); - } - } - */ - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/mods-available/web_module.inc.php b/interface/ispconfig/server/mods-available/web_module.inc.php deleted file mode 100644 index 3ddeca5ed..000000000 --- a/interface/ispconfig/server/mods-available/web_module.inc.php +++ /dev/null @@ -1,140 +0,0 @@ -plugins->announceEvents($this->module_name,$this->actions_available); - - /* - As we want to get notified of any changes on several database tables, - we register for them. - - The following function registers the function "functionname" - to be executed when a record for the table "dbtable" is - processed in the sys_datalog. "classname" is the name of the - class that contains the function functionname. - */ - - $app->modules->registerTableHook('web_domain','web_module','process'); - $app->modules->registerTableHook('ftp_user','web_module','process'); - $app->modules->registerTableHook('shell_user','web_module','process'); - - // Register service - $app->services->registerService('httpd','web_module','restartHttpd'); - - } - - /* - This function is called when a change in one of the registered tables is detected. - The function then raises the events for the plugins. - */ - - function process($tablename,$action,$data) { - global $app; - - switch ($tablename) { - case 'web_domain': - if($action == 'i') $app->plugins->raiseEvent('web_domain_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('web_domain_update',$data); - if($action == 'd') $app->plugins->raiseEvent('web_domain_delete',$data); - break; - case 'ftp_user': - if($action == 'i') $app->plugins->raiseEvent('ftp_user_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('ftp_user_update',$data); - if($action == 'd') $app->plugins->raiseEvent('ftp_user_delete',$data); - break; - case 'shell_user': - if($action == 'i') $app->plugins->raiseEvent('shell_user_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('shell_user_update',$data); - if($action == 'd') $app->plugins->raiseEvent('shell_user_delete',$data); - break; - } // end switch - } // end function - - - // This function is used - function restartHttpd($action = 'restart') { - global $app; - - $command = ''; - if(is_file('/etc/init.d/httpd')) { - $command = '/etc/init.d/httpd'; - } else { - $command = '/etc/init.d/apache2'; - } - - if($action == 'restart') { - exec($command.' restart'); - } else { - exec($command.' reload'); - } - - } - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/mods-core/monitor_core_module.inc.php b/interface/ispconfig/server/mods-core/monitor_core_module.inc.php deleted file mode 100644 index 8447baee3..000000000 --- a/interface/ispconfig/server/mods-core/monitor_core_module.inc.php +++ /dev/null @@ -1,1465 +0,0 @@ -plugins->announceEvents($this->module_name,$this->actions_available); - - /* - As we want to get notified of any changes on several database tables, - we register for them. - - The following function registers the function "functionname" - to be executed when a record for the table "dbtable" is - processed in the sys_datalog. "classname" is the name of the - class that contains the function functionname. - */ - /* none at them moment */ - //$app->modules->registerTableHook('mail_access','mail_module','process'); - - /* - Do the monitor every n minutes and write the result in the db - */ - $min = date('i'); - if (($min % $this->interval) == 0) - { - $this->doMonitor(); - } - } - - /* - This function is called when a change in one of the registered tables is detected. - The function then raises the events for the plugins. - */ - function process($tablename, $action, $data) { - // global $app; - // - // switch ($tablename) { - // case 'mail_access': - // if($action == 'i') $app->plugins->raiseEvent('mail_access_insert',$data); - // if($action == 'u') $app->plugins->raiseEvent('mail_access_update',$data); - // if($action == 'd') $app->plugins->raiseEvent('mail_access_delete',$data); - // break; - // } // end switch - } // end function - - /* - This method is called every n minutes, when the module ist loaded. - The method then does a system-monitoring - */ - // TODO: what monitoring is done should be a config-var - function doMonitor() - { - /* Calls the single Monitoring steps */ - $this->monitorServer(); - $this->monitorDiskUsage(); - $this->monitorMemUsage(); - $this->monitorCpu(); - $this->monitorServices(); - $this->monitorMailLog(); - $this->monitorMailWarnLog(); - $this->monitorMailErrLog(); - $this->monitorMessagesLog(); - $this->monitorISPCCronLog(); - $this->monitorFreshClamLog(); - $this->monitorClamAvLog(); - $this->monitorIspConfigLog(); - $this->monitorSystemUpdate(); - $this->monitorMailQueue(); - $this->monitorRaid(); - $this->monitorRkHunter(); - $this->monitorFail2ban(); - $this->monitorSysLog(); - } - - function monitorServer(){ - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'server_load'; - - /* - Fetch the data into a array - */ - $procUptime = shell_exec("cat /proc/uptime | cut -f1 -d' '"); - $data['up_days'] = floor($procUptime/86400); - $data['up_hours'] = floor(($procUptime-$data['up_days']*86400)/3600); - $data['up_minutes'] = floor(($procUptime-$data['up_days']*86400-$data['up_hours']*3600)/60); - - $data['uptime'] = shell_exec("uptime"); - - $tmp = explode(",", $data['uptime'], 4); - $tmpUser = explode(" ", trim($tmp[2])); - $data['user_online'] = intval($tmpUser[0]); - - /* Old Load Average Code - $loadTmp = explode(":" , trim($tmp[3])); - $load = explode(",", $loadTmp[1]); - $data['load_1'] = floatval(trim($load[0])); - $data['load_5'] = floatval(trim($load[1])); - $data['load_15'] = floatval(trim($load[2])); */ - - //* New Load Average code to fix "always zero" bug in non-english distros. NEEDS TESTING - $loadTmp = shell_exec("cat /proc/loadavg | cut -f1-3 -d' '"); - $load = explode(" ", $loadTmp); - $data['load_1'] = floatval(str_replace(',', '.', $load[0])); - $data['load_5'] = floatval(str_replace(',', '.', $load[1])); - $data['load_15'] = floatval(str_replace(',', '.', $load[2])); - - /** The state of the server-load. */ - $state = 'ok'; - if ($data['load_1'] > 20 ) $state = 'info'; - if ($data['load_1'] > 50 ) $state = 'warning'; - if ($data['load_1'] > 100 ) $state = 'critical'; - if ($data['load_1'] > 150 ) $state = 'error'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorDiskUsage() { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'disk_usage'; - - /** The state of the disk-usage */ - $state = 'ok'; - - /** Fetch the data of ALL devices into a array (needed for monitoring!)*/ - $dfData = shell_exec("df -hT"); - - // split into array - $df = explode("\n", $dfData); - - /* - * ignore the first line, process the rest - */ - for($i=1; $i <= sizeof($df); $i++){ - if ($df[$i] != '') - { - /* - * Make a array of the data - */ - $s = preg_split ("/[\s]+/", $df[$i]); - $data[$i]['fs'] = $s[0]; - $data[$i]['type'] = $s[1]; - $data[$i]['size'] = $s[2]; - $data[$i]['used'] = $s[3]; - $data[$i]['available'] = $s[4]; - $data[$i]['percent'] = $s[5]; - $data[$i]['mounted'] = $s[6]; - /* - * calculate the state - */ - $usePercent = floatval($data[$i]['percent']); - - //* We dont want to check the cdrom drive as a cd / dvd is always 100% full - if($data[$i]['type'] != 'iso9660' && $data[$i]['type'] != 'cramfs' && $data[$i]['type'] != 'udf') { - if ($usePercent > 75) $state = $this->_setState($state, 'info'); - if ($usePercent > 80) $state = $this->_setState($state, 'warning'); - if ($usePercent > 90) $state = $this->_setState($state, 'critical'); - if ($usePercent > 95) $state = $this->_setState($state, 'error'); - } - } - } - - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - - function monitorMemUsage() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'mem_usage'; - - /* - Fetch the data into a array - */ - $miData = shell_exec("cat /proc/meminfo"); - - $memInfo = explode("\n", $miData); - - foreach($memInfo as $line){ - $part = preg_split("/:/", $line); - $key = trim($part[0]); - $tmp = explode(" ", trim($part[1])); - $value = 0; - if ($tmp[1] == 'kB') $value = $tmp[0] * 1024; - $data[$key] = $value; - } - - /* - * actually this info has no state. - * maybe someone knows better...???... - */ - $state = 'no_state'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - - function monitorCpu() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'cpu_info'; - - /* - Fetch the data into a array - */ - $cpuData = shell_exec("cat /proc/cpuinfo"); - $cpuInfo = explode("\n", $cpuData); - $processor = 0; - - foreach($cpuInfo as $line){ - - $part = preg_split("/:/", $line); - $key = trim($part[0]); - $value = trim($part[1]); - if($key == 'processor') $processor = intval($value); - if($key != '') $data[$key.' '.$processor] = $value; - } - - /* the cpu has no state. It is, what it is */ - $state = 'no_state'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - - function monitorServices() - { - global $app; - global $conf; - - /** the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** get the "active" Services of the server from the DB */ - $services = $app->dbmaster->queryOneRecord("SELECT * FROM server WHERE server_id = " . $server_id); - - /* The type of the Monitor-data */ - $type = 'services'; - - /** the State of the monitoring */ - /* ok, if ALL aktive services are running, - * error, if not - * There is no other state! - */ - $state = 'ok'; - - /* Monitor Webserver */ - $data['webserver'] = -1; // unknown - not needed - if ($services['web_server'] == 1) - { - if($this->_checkTcp('localhost', 80)) { - $data['webserver'] = 1; - } else { - $data['webserver'] = 0; - $state = 'error'; // because service is down - } - } - - /* Monitor FTP-Server */ - $data['ftpserver'] = -1; // unknown - not needed - if ($services['file_server'] == 1) - { - if($this->_checkFtp('localhost', 21)) { - $data['ftpserver'] = 1; - } else { - $data['ftpserver'] = 0; - $state = 'error'; // because service is down - } - } - - /* Monitor SMTP-Server */ - $data['smtpserver'] = -1; // unknown - not needed - if ($services['mail_server'] == 1) - { - if($this->_checkTcp('localhost', 25)) { - $data['smtpserver'] = 1; - } else { - $data['smtpserver'] = 0; - $state = 'error'; // because service is down - } - } - - /* Monitor POP3-Server */ - $data['pop3server'] = -1; // unknown - not needed - if ($services['mail_server'] == 1) - { - if($this->_checkTcp('localhost', 110)) { - $data['pop3server'] = 1; - } else { - $data['pop3server'] = 0; - $state = 'error'; // because service is down - } - } - - /* Monitor IMAP-Server */ - $data['imapserver'] = -1; // unknown - not needed - if ($services['mail_server'] == 1) - { - if($this->_checkTcp('localhost', 143)) { - $data['imapserver'] = 1; - } else { - $data['imapserver'] = 0; - $state = 'error'; // because service is down - } - } - - /* Monitor BIND-Server */ - $data['bindserver'] = -1; // unknown - not needed - if ($services['dns_server'] == 1) - { - if($this->_checkTcp('localhost', 53)) { - $data['bindserver'] = 1; - } else { - $data['bindserver'] = 0; - $state = 'error'; // because service is down - } - } - - /* Monitor MYSQL-Server */ - $data['mysqlserver'] = -1; // unknown - not needed - if ($services['db_server'] == 1) - { - if($this->_checkTcp('localhost', 3306)) { - $data['mysqlserver'] = 1; - } else { - $data['mysqlserver'] = 0; - $state = 'error'; // because service is down - } - } - - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - - function monitorSystemUpdate(){ - /* - * This monitoring is expensive, so do it only once a hour - */ - $min = date('i'); - if ($min != 0) return; - - /* - * OK - here we go... - */ - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'system_update'; - - /* This monitoring is only available at debian or Ubuntu */ - if(file_exists('/etc/debian_version')){ - - /* - * first update the "update-database" - */ - shell_exec('apt-get update'); - - /* - * Then test the upgrade. - * if there is any output, then there is a needed update - */ - $aptData = shell_exec('apt-get -s -qq dist-upgrade'); - if ($aptData == '') - { - /* There is nothing to update! */ - $state = 'ok'; - } - else - { - /* There is something to update! */ - $state = 'warning'; - } - - /* - * Fetch the output - */ - $data['output'] = shell_exec('apt-get -s -q dist-upgrade'); - } - elseif (file_exists("/etc/gentoo-release")) { - - /* - * first update the portage tree - */ - - // In keeping with gentoo's rsync policy, don't update to frequently (every four hours - taken from http://www.gentoo.org/doc/en/source_mirrors.xml) - $do_update = true; - if (file_exists('/usr/portage/metadata/timestamp.chk')) - { - $datetime = file_get_contents('/usr/portage/metadata/timestamp.chk'); - $datetime = trim($datetime); - - $dstamp = strtotime($datetime); - if ($dstamp) - { - $checkat = $dstamp + 14400; // + 4hours - if (mktime() < $checkat) { - $do_update = false; - } - } - } - - if ($do_update) { - shell_exec('emerge --sync --quiet'); - } - - /* - * Then test the upgrade. - * if there is any output, then there is a needed update - */ - $emergeData = shell_exec('emerge -puDNt --color n --nospinner --quiet world'); - if ($emergeData == '') - { - /* There is nothing to update! */ - $state = 'ok'; - } - else - { - /* There is something to update! */ - $state = 'warning'; - } - - /* - * Fetch the output - */ - $data['output'] = shell_exec('emerge -pvuDNt --color n --nospinner world'); - } - else { - /* - * It is not debian/Ubuntu, so there is no data and no state - * - * no_state, NOT unknown, because "unknown" is shown as state - * inside the GUI. no_state is hidden. - * - * We have to write NO DATA inside the DB, because the GUI - * could not know, if there is any dat, or not... - */ - $state = 'no_state'; - $data['output']= ''; - } - - /* - * Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 0, 2); - } - - function monitorMailQueue(){ - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'mailq'; - - /* Get the data from the mailq */ - $data['output'] = shell_exec('mailq'); - - /* - * The last line has more informations - */ - $tmp = explode("\n", $data['output']); - $more = $tmp[sizeof($tmp) - 1]; - $this->_getIntArray($more); - $data['bytes'] = $res[0]; - $data['requests'] = $res[1]; - - /** The state of the mailq. */ - $state = 'ok'; - if ($data['requests'] > 2000 ) $state = 'info'; - if ($data['requests'] > 5000 ) $state = 'warning'; - if ($data['requests'] > 8000 ) $state = 'critical'; - if ($data['requests'] > 10000 ) $state = 'error'; - - /* - * Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - - function monitorRaid(){ - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'raid_state'; - - /* This monitoring is only available if mdadm is installed */ - $location = system('which mdadm', $retval); - if($retval === 0){ - /* - * Fetch the output - */ - $data['output'] = shell_exec('cat /proc/mdstat'); - - /* - * Then calc the state. - */ - $tmp = explode("\n", $data['output']); - $state = 'ok'; - for ($i = 0; $i < sizeof($tmp); $i++){ - /* fetch the next line */ - $line = $tmp[$i]; - - if ((strpos($line, '[U_]') !== false) || (strpos($line, '[_U]') !== false)) - { - /* One Disk is not working. - * if the next line starts with "[>" or "[=" then - * recovery (resync) is in state and the state is - * information instead of critical - */ - $nextLine = $tmp[$i+1]; - if ((strpos($nextLine, '[>') === false) && (strpos($nextLine, '[=') === false)) { - $state = $this->_setState($state, 'critical'); - } - else - { - $state = $this->_setState($state, 'info'); - } - } - if (strpos($line, '[__]') !== false) - { - /* both Disk are not working */ - $state = $this->_setState($state, 'error'); - } - if (strpos($line, '[UU]') !== false) - { - /* The disks are OK. - * if the next line starts with "[>" or "[=" then - * recovery (resync) is in state and the state is - * information instead of ok - */ - $nextLine = $tmp[$i+1]; - if ((strpos($nextLine, '[>') === false) && (strpos($nextLine, '[=') === false)) { - $state = $this->_setState($state, 'ok'); - } - else - { - $state = $this->_setState($state, 'info'); - } - } - } - - } - else { - /* - * mdadm is not installed, so there is no data and no state - * - * no_state, NOT unknown, because "unknown" is shown as state - * inside the GUI. no_state is hidden. - * - * We have to write NO DATA inside the DB, because the GUI - * could not know, if there is any dat, or not... - */ - $state = 'no_state'; - $data['output']= ''; - } - - /* - * Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorRkHunter(){ - /* - * This monitoring is expensive, so do it only once a day - */ - $min = date('i'); - $hour = date('H'); - if (!($min == 0 && $hour == 23)) return; - - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'rkhunter'; - - /* This monitoring is only available if rkhunter is installed */ - $location = system('which rkhunter', $retval); - if($retval === 0){ - /* - * Fetch the output - */ - $data['output'] = shell_exec('rkhunter --update --checkall --nocolors --skip-keypress'); - - /* - * At this moment, there is no state (maybe later) - */ - $state = 'no_state'; - } - else { - /* - * rkhunter is not installed, so there is no data and no state - * - * no_state, NOT unknown, because "unknown" is shown as state - * inside the GUI. no_state is hidden. - * - * We have to write NO DATA inside the DB, because the GUI - * could not know, if there is any dat, or not... - */ - $state = 'no_state'; - $data['output']= ''; - } - - /* - * Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 0, 2); - } - - function monitorFail2ban(){ - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_fail2ban'; - - /* This monitoring is only available if fail2ban is installed */ - $location = system('which fail2ban-client', $retval); // Debian, Ubuntu, Fedora - if($retval !== 0) $location = system('which fail2ban', $retval); // CentOS - if($retval === 0){ - /* Get the data of the log */ - $data = $this->_getLogData($type); - - /* - * At this moment, there is no state (maybe later) - */ - $state = 'no_state'; - } - else { - /* - * fail2ban is not installed, so there is no data and no state - * - * no_state, NOT unknown, because "unknown" is shown as state - * inside the GUI. no_state is hidden. - * - * We have to write NO DATA inside the DB, because the GUI - * could not know, if there is any dat, or not... - */ - $state = 'no_state'; - $data = ''; - } - - /* - * Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorSysLog(){ - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'sys_log'; - - /* - * is there any warning or error for this server? - */ - $state = 'ok'; - $dbData = $app->dbmaster->queryAllRecords("SELECT loglevel FROM sys_log WHERE server_id = " . $server_id . " AND loglevel > 0"); - if (is_array($dbData)) { - foreach($dbData as $item){ - if ($item['loglevel'] == 1) $state = $this->_setState($state, 'warning'); - if ($item['loglevel'] == 2) $state = $this->_setState($state, 'error'); - } - } - - /** There is no monitor-data because the data is in the sys_log table */ - $data['output']= ''; - - /* - * Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorMailLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_mail'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - /* - * actually this info has no state. - * maybe someone knows better...???... - */ - $state = 'no_state'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorMailWarnLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_mail_warn'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - /* - * actually this info has no state. - * maybe someone knows better...???... - */ - $state = 'no_state'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorMailErrLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_mail_err'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - /* - * actually this info has no state. - * maybe someone knows better...???... - */ - $state = 'no_state'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - - function monitorMessagesLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_messages'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - /* - * actually this info has no state. - * maybe someone knows better...???... - */ - $state = 'no_state'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorISPCCronLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_ispc_cron'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - /* - * actually this info has no state. - * maybe someone knows better...???... - */ - $state = 'no_state'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorFreshClamLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_freshclam'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - /* Get the data from the LAST log-Entry. - * if there can be found: - * WARNING: Your ClamAV installation is OUTDATED! - * then the clamav is outdated. This is a warning! - */ - $state = 'ok'; - - $tmp = explode("\n", $data); - $lastLog = array(); - if ($tmp[sizeof($tmp)-1] == "") - { - /* the log ends with an empty line remove this */ - array_pop($tmp); - } - if (strpos($tmp[sizeof($tmp)-1], "-------------") !== false) - { - /* the log ends with "-----..." remove this */ - array_pop($tmp); - } - for ($i = sizeof($tmp) -1; $i > 0; $i--){ - if (strpos($tmp[$i], "---------") === false){ - /* no delimiter found, so add this to the last-log */ - $lastLog[] = $tmp[$i]; - } - else - { - /* delimiter found, so there is no more line left! */ - break; - } - } - - /* - * Now we have the last log in the array. - * Check if the outdated-string is found... - */ - foreach($lastLog as $line){ - if (strpos(strtolower($line), "outdated") !== false) { - $state = $this->_setState($state, 'warning'); - } - } - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorClamAvLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_clamav'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - // Todo: the state should be calculated. - $state = 'ok'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorIspConfigLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_ispconfig'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - // Todo: the state should be calculated. - $state = 'ok'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - - function _getLogData($log){ - - $dist = ''; - $logfile = ''; - - if(@is_file('/etc/debian_version')) $dist = 'debian'; - if(@is_file('/etc/redhat-release')) $dist = 'redhat'; - if(@is_file('/etc/SuSE-release')) $dist = 'suse'; - if(@is_file('/etc/gentoo-release')) $dist = 'gentoo'; - - switch($log) { - case 'log_mail': - if($dist == 'debian') $logfile = '/var/log/mail.log'; - if($dist == 'redhat') $logfile = '/var/log/maillog'; - if($dist == 'suse') $logfile = '/var/log/mail.info'; - if($dist == 'gentoo') $logfile = '/var/log/maillog'; - break; - case 'log_mail_warn': - if($dist == 'debian') $logfile = '/var/log/mail.warn'; - if($dist == 'redhat') $logfile = '/var/log/maillog'; - if($dist == 'suse') $logfile = '/var/log/mail.warn'; - if($dist == 'gentoo') $logfile = '/var/log/maillog'; - break; - case 'log_mail_err': - if($dist == 'debian') $logfile = '/var/log/mail.err'; - if($dist == 'redhat') $logfile = '/var/log/maillog'; - if($dist == 'suse') $logfile = '/var/log/mail.err'; - if($dist == 'gentoo') $logfile = '/var/log/maillog'; - break; - case 'log_messages': - if($dist == 'debian') $logfile = '/var/log/messages'; - if($dist == 'redhat') $logfile = '/var/log/messages'; - if($dist == 'suse') $logfile = '/var/log/messages'; - if($dist == 'gentoo') $logfile = '/var/log/messages'; - break; - case 'log_ispc_cron': - if($dist == 'debian') $logfile = '/var/log/ispconfig/cron.log'; - if($dist == 'redhat') $logfile = '/var/log/ispconfig/cron.log'; - if($dist == 'suse') $logfile = '/var/log/ispconfig/cron.log'; - if($dist == 'gentoo') $logfile = '/var/log/cron'; - break; - case 'log_freshclam': - if($dist == 'debian') $logfile = '/var/log/clamav/freshclam.log'; - if($dist == 'redhat') $logfile = (is_file('/var/log/clamav/freshclam.log') ? '/var/log/clamav/freshclam.log' : '/var/log/freshclam.log'); - if($dist == 'suse') $logfile = ''; - if($dist == 'gentoo') $logfile = '/var/log/clamav/freshclam.log'; - break; - case 'log_clamav': - if($dist == 'debian') $logfile = '/var/log/clamav/clamav.log'; - if($dist == 'redhat') $logfile = (is_file('/var/log/clamav/clamd.log') ? '/var/log/clamav/clamd.log' : '/var/log/maillog'); - if($dist == 'suse') $logfile = ''; - if($dist == 'gentoo') $logfile = '/var/log/clamav/clamd.log'; - break; - case 'log_fail2ban': - if($dist == 'debian') $logfile = '/var/log/fail2ban.log'; - if($dist == 'redhat') $logfile = '/var/log/fail2ban.log'; - if($dist == 'suse') $logfile = '/var/log/fail2ban.log'; - if($dist == 'gentoo') $logfile = '/var/log/fail2ban.log'; - break; - case 'log_ispconfig': - if($dist == 'debian') $logfile = '/var/log/ispconfig/ispconfig.log'; - if($dist == 'redhat') $logfile = '/var/log/ispconfig/ispconfig.log'; - if($dist == 'suse') $logfile = '/var/log/ispconfig/ispconfig.log'; - if($dist == 'gentoo') $logfile = '/var/log/ispconfig/ispconfig.log'; - break; - default: - $logfile = ''; - break; - } - - // Getting the logfile content - if($logfile != '') { - $logfile = escapeshellcmd($logfile); - if(stristr($logfile, ';') or substr($logfile,0,9) != '/var/log/' or stristr($logfile, '..')) { - $log = 'Logfile path error.'; - } - else - { - $log = ''; - if(is_readable($logfile)) { - if($fd = popen("tail -n 100 $logfile", 'r')) { - while (!feof($fd)) { - $log .= fgets($fd, 4096); - $n++; - if($n > 1000) break; - } - fclose($fd); - } - } else { - $log = 'Unable to read '.$logfile; - } - } - } - - return $log; - } - - function _checkTcp ($host,$port) { - - $fp = @fsockopen ($host, $port, $errno, $errstr, 2); - - if ($fp) { - fclose($fp); - return true; - } else { - return false; - } - } - - function _checkUdp ($host,$port) { - - $fp = @fsockopen ('udp://'.$host, $port, $errno, $errstr, 2); - - if ($fp) { - fclose($fp); - return true; - } else { - return false; - } - } - - function _checkFtp ($host,$port){ - - $conn_id = @ftp_connect($host, $port); - - if($conn_id){ - @ftp_close($conn_id); - return true; - } else { - return false; - } - } - - /* - Deletes Records older than n. - */ - function _delOldRecords($type, $min, $hour=0, $days=0) { - global $app; - - $now = time(); - $old = $now - ($min * 60) - ($hour * 60 * 60) - ($days * 24 * 60 * 60); - $sql = "DELETE FROM monitor_data " . - "WHERE " . - "type =" . "'" . $app->dbmaster->quote($type) . "' " . - "AND " . - "created < " . $old; - $app->dbmaster->query($sql); - } - - /* - * Set the state to the given level (or higher, but not lesser). - * * If the actual state is critical and you call the method with ok, - * then the state is critical. - * - * * If the actual state is critical and you call the method with error, - * then the state is error. - */ - function _setState($oldState, $newState) - { - /* - * Calculate the weight of the old state - */ - switch ($oldState) { - case 'no_state': $oldInt = 0; - break; - case 'ok': $oldInt = 1; - break; - case 'unknown': $oldInt = 2; - break; - case 'info': $oldInt = 3; - break; - case 'warning': $oldInt = 4; - break; - case 'critical': $oldInt = 5; - break; - case 'error': $oldInt = 6; - break; - } - /* - * Calculate the weight of the new state - */ - switch ($newState) { - case 'no_state': $newInt = 0 ; - break; - case 'ok': $newInt = 1 ; - break; - case 'unknown': $newInt = 2 ; - break; - case 'info': $newInt = 3 ; - break; - case 'warning': $newInt = 4 ; - break; - case 'critical': $newInt = 5 ; - break; - case 'error': $newInt = 6 ; - break; - } - - /* - * Set to the higher level - */ - if ($newInt > $oldInt){ - return $newState; - } - else - { - return $oldState; - } - } - - function _getIntArray($line){ - /** The array of float found */ - $res = array(); - /* First build a array from the line */ - $data = explode(' ', $line); - /* then check if any item is a float */ - foreach ($data as $item) { - if ($item . '' == (int)$item . ''){ - $res[] = $item; - } - } - return $res; - } - - -} // end class - -?> diff --git a/interface/ispconfig/server/mods-enabled/client_module.inc.php b/interface/ispconfig/server/mods-enabled/client_module.inc.php deleted file mode 100644 index 4d46f114e..000000000 --- a/interface/ispconfig/server/mods-enabled/client_module.inc.php +++ /dev/null @@ -1,96 +0,0 @@ -plugins->announceEvents($this->module_name,$this->actions_available); - - /* - As we want to get notified of any changes on several database tables, - we register for them. - - The following function registers the function "functionname" - to be executed when a record for the table "dbtable" is - processed in the sys_datalog. "classname" is the name of the - class that contains the function functionname. - */ - - $app->modules->registerTableHook('client',$this->module_name,'process'); - - } - - /* - This function is called when a change in one of the registered tables is detected. - The function then raises the events for the plugins. - */ - - function process($tablename,$action,$data) { - global $app; - - switch ($tablename) { - case 'client': - if($action == 'i') $app->plugins->raiseEvent('client_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('client_update',$data); - if($action == 'd') $app->plugins->raiseEvent('client_delete',$data); - break; - } // end switch - } // end function - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/mods-enabled/cron_module.inc.php b/interface/ispconfig/server/mods-enabled/cron_module.inc.php deleted file mode 100644 index 503d7ef7c..000000000 --- a/interface/ispconfig/server/mods-enabled/cron_module.inc.php +++ /dev/null @@ -1,97 +0,0 @@ -plugins->announceEvents($this->module_name,$this->actions_available); - - /* - As we want to get notified of any changes on several database tables, - we register for them. - - The following function registers the function "functionname" - to be executed when a record for the table "dbtable" is - processed in the sys_datalog. "classname" is the name of the - class that contains the function functionname. - */ - - $app->modules->registerTableHook('cron',$this->module_name,'process'); - - } - - /* - This function is called when a change in one of the registered tables is detected. - The function then raises the events for the plugins. - */ - - function process($tablename,$action,$data) { - global $app; - - switch ($tablename) { - case 'cron': - if($action == 'i') $app->plugins->raiseEvent('cron_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('cron_update',$data); - if($action == 'd') $app->plugins->raiseEvent('cron_delete',$data); - break; - } // end switch - } // end function - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/mods-enabled/database_module.inc.php b/interface/ispconfig/server/mods-enabled/database_module.inc.php deleted file mode 100644 index 2dac689ee..000000000 --- a/interface/ispconfig/server/mods-enabled/database_module.inc.php +++ /dev/null @@ -1,103 +0,0 @@ -plugins->announceEvents($this->module_name,$this->actions_available); - - /* - As we want to get notified of any changes on several database tables, - we register for them. - - The following function registers the function "functionname" - to be executed when a record for the table "dbtable" is - processed in the sys_datalog. "classname" is the name of the - class that contains the function functionname. - */ - - $app->modules->registerTableHook('web_database','database_module','process'); - - // Register service - //$app->services->registerService('httpd','web_module','restartHttpd'); - - } - - /* - This function is called when a change in one of the registered tables is detected. - The function then raises the events for the plugins. - */ - - function process($tablename,$action,$data) { - global $app; - - switch ($tablename) { - case 'web_database': - if($action == 'i') $app->plugins->raiseEvent('database_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('database_update',$data); - if($action == 'd') $app->plugins->raiseEvent('database_delete',$data); - break; - } // end switch - } // end function - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/mods-enabled/dns_module.inc.php b/interface/ispconfig/server/mods-enabled/dns_module.inc.php deleted file mode 100644 index 17c36bd26..000000000 --- a/interface/ispconfig/server/mods-enabled/dns_module.inc.php +++ /dev/null @@ -1,128 +0,0 @@ -plugins->announceEvents($this->module_name,$this->actions_available); - - /* - As we want to get notified of any changes on several database tables, - we register for them. - - The following function registers the function "functionname" - to be executed when a record for the table "dbtable" is - processed in the sys_datalog. "classname" is the name of the - class that contains the function functionname. - */ - - $app->modules->registerTableHook('dns_soa',$this->module_name,'process'); - $app->modules->registerTableHook('dns_rr',$this->module_name,'process'); - - - // Register service - $app->services->registerService('bind','dns_module','restartBind'); - - } - - /* - This function is called when a change in one of the registered tables is detected. - The function then raises the events for the plugins. - */ - - function process($tablename,$action,$data) { - global $app; - - switch ($tablename) { - case 'dns_soa': - if($action == 'i') $app->plugins->raiseEvent('dns_soa_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('dns_soa_update',$data); - if($action == 'd') $app->plugins->raiseEvent('dns_soa_delete',$data); - break; - case 'dns_rr': - if($action == 'i') $app->plugins->raiseEvent('dns_rr_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('dns_rr_update',$data); - if($action == 'd') $app->plugins->raiseEvent('dns_rr_delete',$data); - break; - } // end switch - } // end function - - - function restartBind($action = 'restart') { - global $app; - - $command = ''; - if(is_file('/etc/init.d/bind9')) { - $command = '/etc/init.d/bind9'; - } else { - $command = '/etc/init.d/named'; - } - - if($action == 'restart') { - exec($command.' restart'); - } else { - exec($command.' reload'); - } - - } - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/mods-enabled/mail_module.inc.php b/interface/ispconfig/server/mods-enabled/mail_module.inc.php deleted file mode 100644 index d0c33f2ae..000000000 --- a/interface/ispconfig/server/mods-enabled/mail_module.inc.php +++ /dev/null @@ -1,153 +0,0 @@ -plugins->announceEvents($this->module_name,$this->actions_available); - - /* - As we want to get notified of any changes on several database tables, - we register for them. - - The following function registers the function "functionname" - to be executed when a record for the table "dbtable" is - processed in the sys_datalog. "classname" is the name of the - class that contains the function functionname. - */ - - $app->modules->registerTableHook('mail_access','mail_module','process'); - $app->modules->registerTableHook('mail_domain','mail_module','process'); - $app->modules->registerTableHook('mail_forwarding','mail_module','process'); - $app->modules->registerTableHook('mail_transport','mail_module','process'); - $app->modules->registerTableHook('mail_user','mail_module','process'); - $app->modules->registerTableHook('mail_get','mail_module','process'); - $app->modules->registerTableHook('mail_content_filter','mail_module','process'); - - } - - /* - This function is called when a change in one of the registered tables is detected. - The function then raises the events for the plugins. - */ - - function process($tablename,$action,$data) { - global $app; - - switch ($tablename) { - case 'mail_access': - if($action == 'i') $app->plugins->raiseEvent('mail_access_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('mail_access_update',$data); - if($action == 'd') $app->plugins->raiseEvent('mail_access_delete',$data); - break; - case 'mail_domain': - if($action == 'i') $app->plugins->raiseEvent('mail_domain_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('mail_domain_update',$data); - if($action == 'd') $app->plugins->raiseEvent('mail_domain_delete',$data); - break; - case 'mail_forwarding': - if($action == 'i') $app->plugins->raiseEvent('mail_forwarding_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('mail_forwarding_update',$data); - if($action == 'd') $app->plugins->raiseEvent('mail_forwarding_delete',$data); - break; - case 'mail_transport': - if($action == 'i') $app->plugins->raiseEvent('mail_transport_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('mail_transport_update',$data); - if($action == 'd') $app->plugins->raiseEvent('mail_transport_delete',$data); - break; - case 'mail_user': - if($action == 'i') $app->plugins->raiseEvent('mail_user_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('mail_user_update',$data); - if($action == 'd') $app->plugins->raiseEvent('mail_user_delete',$data); - break; - case 'mail_get': - if($action == 'i') $app->plugins->raiseEvent('mail_get_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('mail_get_update',$data); - if($action == 'd') $app->plugins->raiseEvent('mail_get_delete',$data); - break; - case 'mail_content_filter': - if($action == 'i') $app->plugins->raiseEvent('mail_content_filter_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('mail_content_filter_update',$data); - if($action == 'd') $app->plugins->raiseEvent('mail_content_filter_delete',$data); - break; - } // end switch - } // end function - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/mods-enabled/monitor_core_module.inc.php b/interface/ispconfig/server/mods-enabled/monitor_core_module.inc.php deleted file mode 100644 index 8447baee3..000000000 --- a/interface/ispconfig/server/mods-enabled/monitor_core_module.inc.php +++ /dev/null @@ -1,1465 +0,0 @@ -plugins->announceEvents($this->module_name,$this->actions_available); - - /* - As we want to get notified of any changes on several database tables, - we register for them. - - The following function registers the function "functionname" - to be executed when a record for the table "dbtable" is - processed in the sys_datalog. "classname" is the name of the - class that contains the function functionname. - */ - /* none at them moment */ - //$app->modules->registerTableHook('mail_access','mail_module','process'); - - /* - Do the monitor every n minutes and write the result in the db - */ - $min = date('i'); - if (($min % $this->interval) == 0) - { - $this->doMonitor(); - } - } - - /* - This function is called when a change in one of the registered tables is detected. - The function then raises the events for the plugins. - */ - function process($tablename, $action, $data) { - // global $app; - // - // switch ($tablename) { - // case 'mail_access': - // if($action == 'i') $app->plugins->raiseEvent('mail_access_insert',$data); - // if($action == 'u') $app->plugins->raiseEvent('mail_access_update',$data); - // if($action == 'd') $app->plugins->raiseEvent('mail_access_delete',$data); - // break; - // } // end switch - } // end function - - /* - This method is called every n minutes, when the module ist loaded. - The method then does a system-monitoring - */ - // TODO: what monitoring is done should be a config-var - function doMonitor() - { - /* Calls the single Monitoring steps */ - $this->monitorServer(); - $this->monitorDiskUsage(); - $this->monitorMemUsage(); - $this->monitorCpu(); - $this->monitorServices(); - $this->monitorMailLog(); - $this->monitorMailWarnLog(); - $this->monitorMailErrLog(); - $this->monitorMessagesLog(); - $this->monitorISPCCronLog(); - $this->monitorFreshClamLog(); - $this->monitorClamAvLog(); - $this->monitorIspConfigLog(); - $this->monitorSystemUpdate(); - $this->monitorMailQueue(); - $this->monitorRaid(); - $this->monitorRkHunter(); - $this->monitorFail2ban(); - $this->monitorSysLog(); - } - - function monitorServer(){ - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'server_load'; - - /* - Fetch the data into a array - */ - $procUptime = shell_exec("cat /proc/uptime | cut -f1 -d' '"); - $data['up_days'] = floor($procUptime/86400); - $data['up_hours'] = floor(($procUptime-$data['up_days']*86400)/3600); - $data['up_minutes'] = floor(($procUptime-$data['up_days']*86400-$data['up_hours']*3600)/60); - - $data['uptime'] = shell_exec("uptime"); - - $tmp = explode(",", $data['uptime'], 4); - $tmpUser = explode(" ", trim($tmp[2])); - $data['user_online'] = intval($tmpUser[0]); - - /* Old Load Average Code - $loadTmp = explode(":" , trim($tmp[3])); - $load = explode(",", $loadTmp[1]); - $data['load_1'] = floatval(trim($load[0])); - $data['load_5'] = floatval(trim($load[1])); - $data['load_15'] = floatval(trim($load[2])); */ - - //* New Load Average code to fix "always zero" bug in non-english distros. NEEDS TESTING - $loadTmp = shell_exec("cat /proc/loadavg | cut -f1-3 -d' '"); - $load = explode(" ", $loadTmp); - $data['load_1'] = floatval(str_replace(',', '.', $load[0])); - $data['load_5'] = floatval(str_replace(',', '.', $load[1])); - $data['load_15'] = floatval(str_replace(',', '.', $load[2])); - - /** The state of the server-load. */ - $state = 'ok'; - if ($data['load_1'] > 20 ) $state = 'info'; - if ($data['load_1'] > 50 ) $state = 'warning'; - if ($data['load_1'] > 100 ) $state = 'critical'; - if ($data['load_1'] > 150 ) $state = 'error'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorDiskUsage() { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'disk_usage'; - - /** The state of the disk-usage */ - $state = 'ok'; - - /** Fetch the data of ALL devices into a array (needed for monitoring!)*/ - $dfData = shell_exec("df -hT"); - - // split into array - $df = explode("\n", $dfData); - - /* - * ignore the first line, process the rest - */ - for($i=1; $i <= sizeof($df); $i++){ - if ($df[$i] != '') - { - /* - * Make a array of the data - */ - $s = preg_split ("/[\s]+/", $df[$i]); - $data[$i]['fs'] = $s[0]; - $data[$i]['type'] = $s[1]; - $data[$i]['size'] = $s[2]; - $data[$i]['used'] = $s[3]; - $data[$i]['available'] = $s[4]; - $data[$i]['percent'] = $s[5]; - $data[$i]['mounted'] = $s[6]; - /* - * calculate the state - */ - $usePercent = floatval($data[$i]['percent']); - - //* We dont want to check the cdrom drive as a cd / dvd is always 100% full - if($data[$i]['type'] != 'iso9660' && $data[$i]['type'] != 'cramfs' && $data[$i]['type'] != 'udf') { - if ($usePercent > 75) $state = $this->_setState($state, 'info'); - if ($usePercent > 80) $state = $this->_setState($state, 'warning'); - if ($usePercent > 90) $state = $this->_setState($state, 'critical'); - if ($usePercent > 95) $state = $this->_setState($state, 'error'); - } - } - } - - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - - function monitorMemUsage() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'mem_usage'; - - /* - Fetch the data into a array - */ - $miData = shell_exec("cat /proc/meminfo"); - - $memInfo = explode("\n", $miData); - - foreach($memInfo as $line){ - $part = preg_split("/:/", $line); - $key = trim($part[0]); - $tmp = explode(" ", trim($part[1])); - $value = 0; - if ($tmp[1] == 'kB') $value = $tmp[0] * 1024; - $data[$key] = $value; - } - - /* - * actually this info has no state. - * maybe someone knows better...???... - */ - $state = 'no_state'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - - function monitorCpu() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'cpu_info'; - - /* - Fetch the data into a array - */ - $cpuData = shell_exec("cat /proc/cpuinfo"); - $cpuInfo = explode("\n", $cpuData); - $processor = 0; - - foreach($cpuInfo as $line){ - - $part = preg_split("/:/", $line); - $key = trim($part[0]); - $value = trim($part[1]); - if($key == 'processor') $processor = intval($value); - if($key != '') $data[$key.' '.$processor] = $value; - } - - /* the cpu has no state. It is, what it is */ - $state = 'no_state'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - - function monitorServices() - { - global $app; - global $conf; - - /** the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** get the "active" Services of the server from the DB */ - $services = $app->dbmaster->queryOneRecord("SELECT * FROM server WHERE server_id = " . $server_id); - - /* The type of the Monitor-data */ - $type = 'services'; - - /** the State of the monitoring */ - /* ok, if ALL aktive services are running, - * error, if not - * There is no other state! - */ - $state = 'ok'; - - /* Monitor Webserver */ - $data['webserver'] = -1; // unknown - not needed - if ($services['web_server'] == 1) - { - if($this->_checkTcp('localhost', 80)) { - $data['webserver'] = 1; - } else { - $data['webserver'] = 0; - $state = 'error'; // because service is down - } - } - - /* Monitor FTP-Server */ - $data['ftpserver'] = -1; // unknown - not needed - if ($services['file_server'] == 1) - { - if($this->_checkFtp('localhost', 21)) { - $data['ftpserver'] = 1; - } else { - $data['ftpserver'] = 0; - $state = 'error'; // because service is down - } - } - - /* Monitor SMTP-Server */ - $data['smtpserver'] = -1; // unknown - not needed - if ($services['mail_server'] == 1) - { - if($this->_checkTcp('localhost', 25)) { - $data['smtpserver'] = 1; - } else { - $data['smtpserver'] = 0; - $state = 'error'; // because service is down - } - } - - /* Monitor POP3-Server */ - $data['pop3server'] = -1; // unknown - not needed - if ($services['mail_server'] == 1) - { - if($this->_checkTcp('localhost', 110)) { - $data['pop3server'] = 1; - } else { - $data['pop3server'] = 0; - $state = 'error'; // because service is down - } - } - - /* Monitor IMAP-Server */ - $data['imapserver'] = -1; // unknown - not needed - if ($services['mail_server'] == 1) - { - if($this->_checkTcp('localhost', 143)) { - $data['imapserver'] = 1; - } else { - $data['imapserver'] = 0; - $state = 'error'; // because service is down - } - } - - /* Monitor BIND-Server */ - $data['bindserver'] = -1; // unknown - not needed - if ($services['dns_server'] == 1) - { - if($this->_checkTcp('localhost', 53)) { - $data['bindserver'] = 1; - } else { - $data['bindserver'] = 0; - $state = 'error'; // because service is down - } - } - - /* Monitor MYSQL-Server */ - $data['mysqlserver'] = -1; // unknown - not needed - if ($services['db_server'] == 1) - { - if($this->_checkTcp('localhost', 3306)) { - $data['mysqlserver'] = 1; - } else { - $data['mysqlserver'] = 0; - $state = 'error'; // because service is down - } - } - - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - - function monitorSystemUpdate(){ - /* - * This monitoring is expensive, so do it only once a hour - */ - $min = date('i'); - if ($min != 0) return; - - /* - * OK - here we go... - */ - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'system_update'; - - /* This monitoring is only available at debian or Ubuntu */ - if(file_exists('/etc/debian_version')){ - - /* - * first update the "update-database" - */ - shell_exec('apt-get update'); - - /* - * Then test the upgrade. - * if there is any output, then there is a needed update - */ - $aptData = shell_exec('apt-get -s -qq dist-upgrade'); - if ($aptData == '') - { - /* There is nothing to update! */ - $state = 'ok'; - } - else - { - /* There is something to update! */ - $state = 'warning'; - } - - /* - * Fetch the output - */ - $data['output'] = shell_exec('apt-get -s -q dist-upgrade'); - } - elseif (file_exists("/etc/gentoo-release")) { - - /* - * first update the portage tree - */ - - // In keeping with gentoo's rsync policy, don't update to frequently (every four hours - taken from http://www.gentoo.org/doc/en/source_mirrors.xml) - $do_update = true; - if (file_exists('/usr/portage/metadata/timestamp.chk')) - { - $datetime = file_get_contents('/usr/portage/metadata/timestamp.chk'); - $datetime = trim($datetime); - - $dstamp = strtotime($datetime); - if ($dstamp) - { - $checkat = $dstamp + 14400; // + 4hours - if (mktime() < $checkat) { - $do_update = false; - } - } - } - - if ($do_update) { - shell_exec('emerge --sync --quiet'); - } - - /* - * Then test the upgrade. - * if there is any output, then there is a needed update - */ - $emergeData = shell_exec('emerge -puDNt --color n --nospinner --quiet world'); - if ($emergeData == '') - { - /* There is nothing to update! */ - $state = 'ok'; - } - else - { - /* There is something to update! */ - $state = 'warning'; - } - - /* - * Fetch the output - */ - $data['output'] = shell_exec('emerge -pvuDNt --color n --nospinner world'); - } - else { - /* - * It is not debian/Ubuntu, so there is no data and no state - * - * no_state, NOT unknown, because "unknown" is shown as state - * inside the GUI. no_state is hidden. - * - * We have to write NO DATA inside the DB, because the GUI - * could not know, if there is any dat, or not... - */ - $state = 'no_state'; - $data['output']= ''; - } - - /* - * Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 0, 2); - } - - function monitorMailQueue(){ - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'mailq'; - - /* Get the data from the mailq */ - $data['output'] = shell_exec('mailq'); - - /* - * The last line has more informations - */ - $tmp = explode("\n", $data['output']); - $more = $tmp[sizeof($tmp) - 1]; - $this->_getIntArray($more); - $data['bytes'] = $res[0]; - $data['requests'] = $res[1]; - - /** The state of the mailq. */ - $state = 'ok'; - if ($data['requests'] > 2000 ) $state = 'info'; - if ($data['requests'] > 5000 ) $state = 'warning'; - if ($data['requests'] > 8000 ) $state = 'critical'; - if ($data['requests'] > 10000 ) $state = 'error'; - - /* - * Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - - function monitorRaid(){ - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'raid_state'; - - /* This monitoring is only available if mdadm is installed */ - $location = system('which mdadm', $retval); - if($retval === 0){ - /* - * Fetch the output - */ - $data['output'] = shell_exec('cat /proc/mdstat'); - - /* - * Then calc the state. - */ - $tmp = explode("\n", $data['output']); - $state = 'ok'; - for ($i = 0; $i < sizeof($tmp); $i++){ - /* fetch the next line */ - $line = $tmp[$i]; - - if ((strpos($line, '[U_]') !== false) || (strpos($line, '[_U]') !== false)) - { - /* One Disk is not working. - * if the next line starts with "[>" or "[=" then - * recovery (resync) is in state and the state is - * information instead of critical - */ - $nextLine = $tmp[$i+1]; - if ((strpos($nextLine, '[>') === false) && (strpos($nextLine, '[=') === false)) { - $state = $this->_setState($state, 'critical'); - } - else - { - $state = $this->_setState($state, 'info'); - } - } - if (strpos($line, '[__]') !== false) - { - /* both Disk are not working */ - $state = $this->_setState($state, 'error'); - } - if (strpos($line, '[UU]') !== false) - { - /* The disks are OK. - * if the next line starts with "[>" or "[=" then - * recovery (resync) is in state and the state is - * information instead of ok - */ - $nextLine = $tmp[$i+1]; - if ((strpos($nextLine, '[>') === false) && (strpos($nextLine, '[=') === false)) { - $state = $this->_setState($state, 'ok'); - } - else - { - $state = $this->_setState($state, 'info'); - } - } - } - - } - else { - /* - * mdadm is not installed, so there is no data and no state - * - * no_state, NOT unknown, because "unknown" is shown as state - * inside the GUI. no_state is hidden. - * - * We have to write NO DATA inside the DB, because the GUI - * could not know, if there is any dat, or not... - */ - $state = 'no_state'; - $data['output']= ''; - } - - /* - * Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorRkHunter(){ - /* - * This monitoring is expensive, so do it only once a day - */ - $min = date('i'); - $hour = date('H'); - if (!($min == 0 && $hour == 23)) return; - - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'rkhunter'; - - /* This monitoring is only available if rkhunter is installed */ - $location = system('which rkhunter', $retval); - if($retval === 0){ - /* - * Fetch the output - */ - $data['output'] = shell_exec('rkhunter --update --checkall --nocolors --skip-keypress'); - - /* - * At this moment, there is no state (maybe later) - */ - $state = 'no_state'; - } - else { - /* - * rkhunter is not installed, so there is no data and no state - * - * no_state, NOT unknown, because "unknown" is shown as state - * inside the GUI. no_state is hidden. - * - * We have to write NO DATA inside the DB, because the GUI - * could not know, if there is any dat, or not... - */ - $state = 'no_state'; - $data['output']= ''; - } - - /* - * Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 0, 2); - } - - function monitorFail2ban(){ - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_fail2ban'; - - /* This monitoring is only available if fail2ban is installed */ - $location = system('which fail2ban-client', $retval); // Debian, Ubuntu, Fedora - if($retval !== 0) $location = system('which fail2ban', $retval); // CentOS - if($retval === 0){ - /* Get the data of the log */ - $data = $this->_getLogData($type); - - /* - * At this moment, there is no state (maybe later) - */ - $state = 'no_state'; - } - else { - /* - * fail2ban is not installed, so there is no data and no state - * - * no_state, NOT unknown, because "unknown" is shown as state - * inside the GUI. no_state is hidden. - * - * We have to write NO DATA inside the DB, because the GUI - * could not know, if there is any dat, or not... - */ - $state = 'no_state'; - $data = ''; - } - - /* - * Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorSysLog(){ - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'sys_log'; - - /* - * is there any warning or error for this server? - */ - $state = 'ok'; - $dbData = $app->dbmaster->queryAllRecords("SELECT loglevel FROM sys_log WHERE server_id = " . $server_id . " AND loglevel > 0"); - if (is_array($dbData)) { - foreach($dbData as $item){ - if ($item['loglevel'] == 1) $state = $this->_setState($state, 'warning'); - if ($item['loglevel'] == 2) $state = $this->_setState($state, 'error'); - } - } - - /** There is no monitor-data because the data is in the sys_log table */ - $data['output']= ''; - - /* - * Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorMailLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_mail'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - /* - * actually this info has no state. - * maybe someone knows better...???... - */ - $state = 'no_state'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorMailWarnLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_mail_warn'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - /* - * actually this info has no state. - * maybe someone knows better...???... - */ - $state = 'no_state'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorMailErrLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_mail_err'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - /* - * actually this info has no state. - * maybe someone knows better...???... - */ - $state = 'no_state'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - - function monitorMessagesLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_messages'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - /* - * actually this info has no state. - * maybe someone knows better...???... - */ - $state = 'no_state'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorISPCCronLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_ispc_cron'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - /* - * actually this info has no state. - * maybe someone knows better...???... - */ - $state = 'no_state'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorFreshClamLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_freshclam'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - /* Get the data from the LAST log-Entry. - * if there can be found: - * WARNING: Your ClamAV installation is OUTDATED! - * then the clamav is outdated. This is a warning! - */ - $state = 'ok'; - - $tmp = explode("\n", $data); - $lastLog = array(); - if ($tmp[sizeof($tmp)-1] == "") - { - /* the log ends with an empty line remove this */ - array_pop($tmp); - } - if (strpos($tmp[sizeof($tmp)-1], "-------------") !== false) - { - /* the log ends with "-----..." remove this */ - array_pop($tmp); - } - for ($i = sizeof($tmp) -1; $i > 0; $i--){ - if (strpos($tmp[$i], "---------") === false){ - /* no delimiter found, so add this to the last-log */ - $lastLog[] = $tmp[$i]; - } - else - { - /* delimiter found, so there is no more line left! */ - break; - } - } - - /* - * Now we have the last log in the array. - * Check if the outdated-string is found... - */ - foreach($lastLog as $line){ - if (strpos(strtolower($line), "outdated") !== false) { - $state = $this->_setState($state, 'warning'); - } - } - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorClamAvLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_clamav'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - // Todo: the state should be calculated. - $state = 'ok'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - function monitorIspConfigLog() - { - global $app; - global $conf; - - /* the id of the server as int */ - $server_id = intval($conf["server_id"]); - - /** The type of the data */ - $type = 'log_ispconfig'; - - /* Get the data of the log */ - $data = $this->_getLogData($type); - - // Todo: the state should be calculated. - $state = 'ok'; - - /* - Insert the data into the database - */ - $sql = "INSERT INTO monitor_data (server_id, type, created, data, state) " . - "VALUES (". - $server_id . ", " . - "'" . $app->dbmaster->quote($type) . "', " . - time() . ", " . - "'" . $app->dbmaster->quote(serialize($data)) . "', " . - "'" . $state . "'" . - ")"; - $app->dbmaster->query($sql); - - /* The new data is written, now we can delete the old one */ - $this->_delOldRecords($type, 10); - } - - - function _getLogData($log){ - - $dist = ''; - $logfile = ''; - - if(@is_file('/etc/debian_version')) $dist = 'debian'; - if(@is_file('/etc/redhat-release')) $dist = 'redhat'; - if(@is_file('/etc/SuSE-release')) $dist = 'suse'; - if(@is_file('/etc/gentoo-release')) $dist = 'gentoo'; - - switch($log) { - case 'log_mail': - if($dist == 'debian') $logfile = '/var/log/mail.log'; - if($dist == 'redhat') $logfile = '/var/log/maillog'; - if($dist == 'suse') $logfile = '/var/log/mail.info'; - if($dist == 'gentoo') $logfile = '/var/log/maillog'; - break; - case 'log_mail_warn': - if($dist == 'debian') $logfile = '/var/log/mail.warn'; - if($dist == 'redhat') $logfile = '/var/log/maillog'; - if($dist == 'suse') $logfile = '/var/log/mail.warn'; - if($dist == 'gentoo') $logfile = '/var/log/maillog'; - break; - case 'log_mail_err': - if($dist == 'debian') $logfile = '/var/log/mail.err'; - if($dist == 'redhat') $logfile = '/var/log/maillog'; - if($dist == 'suse') $logfile = '/var/log/mail.err'; - if($dist == 'gentoo') $logfile = '/var/log/maillog'; - break; - case 'log_messages': - if($dist == 'debian') $logfile = '/var/log/messages'; - if($dist == 'redhat') $logfile = '/var/log/messages'; - if($dist == 'suse') $logfile = '/var/log/messages'; - if($dist == 'gentoo') $logfile = '/var/log/messages'; - break; - case 'log_ispc_cron': - if($dist == 'debian') $logfile = '/var/log/ispconfig/cron.log'; - if($dist == 'redhat') $logfile = '/var/log/ispconfig/cron.log'; - if($dist == 'suse') $logfile = '/var/log/ispconfig/cron.log'; - if($dist == 'gentoo') $logfile = '/var/log/cron'; - break; - case 'log_freshclam': - if($dist == 'debian') $logfile = '/var/log/clamav/freshclam.log'; - if($dist == 'redhat') $logfile = (is_file('/var/log/clamav/freshclam.log') ? '/var/log/clamav/freshclam.log' : '/var/log/freshclam.log'); - if($dist == 'suse') $logfile = ''; - if($dist == 'gentoo') $logfile = '/var/log/clamav/freshclam.log'; - break; - case 'log_clamav': - if($dist == 'debian') $logfile = '/var/log/clamav/clamav.log'; - if($dist == 'redhat') $logfile = (is_file('/var/log/clamav/clamd.log') ? '/var/log/clamav/clamd.log' : '/var/log/maillog'); - if($dist == 'suse') $logfile = ''; - if($dist == 'gentoo') $logfile = '/var/log/clamav/clamd.log'; - break; - case 'log_fail2ban': - if($dist == 'debian') $logfile = '/var/log/fail2ban.log'; - if($dist == 'redhat') $logfile = '/var/log/fail2ban.log'; - if($dist == 'suse') $logfile = '/var/log/fail2ban.log'; - if($dist == 'gentoo') $logfile = '/var/log/fail2ban.log'; - break; - case 'log_ispconfig': - if($dist == 'debian') $logfile = '/var/log/ispconfig/ispconfig.log'; - if($dist == 'redhat') $logfile = '/var/log/ispconfig/ispconfig.log'; - if($dist == 'suse') $logfile = '/var/log/ispconfig/ispconfig.log'; - if($dist == 'gentoo') $logfile = '/var/log/ispconfig/ispconfig.log'; - break; - default: - $logfile = ''; - break; - } - - // Getting the logfile content - if($logfile != '') { - $logfile = escapeshellcmd($logfile); - if(stristr($logfile, ';') or substr($logfile,0,9) != '/var/log/' or stristr($logfile, '..')) { - $log = 'Logfile path error.'; - } - else - { - $log = ''; - if(is_readable($logfile)) { - if($fd = popen("tail -n 100 $logfile", 'r')) { - while (!feof($fd)) { - $log .= fgets($fd, 4096); - $n++; - if($n > 1000) break; - } - fclose($fd); - } - } else { - $log = 'Unable to read '.$logfile; - } - } - } - - return $log; - } - - function _checkTcp ($host,$port) { - - $fp = @fsockopen ($host, $port, $errno, $errstr, 2); - - if ($fp) { - fclose($fp); - return true; - } else { - return false; - } - } - - function _checkUdp ($host,$port) { - - $fp = @fsockopen ('udp://'.$host, $port, $errno, $errstr, 2); - - if ($fp) { - fclose($fp); - return true; - } else { - return false; - } - } - - function _checkFtp ($host,$port){ - - $conn_id = @ftp_connect($host, $port); - - if($conn_id){ - @ftp_close($conn_id); - return true; - } else { - return false; - } - } - - /* - Deletes Records older than n. - */ - function _delOldRecords($type, $min, $hour=0, $days=0) { - global $app; - - $now = time(); - $old = $now - ($min * 60) - ($hour * 60 * 60) - ($days * 24 * 60 * 60); - $sql = "DELETE FROM monitor_data " . - "WHERE " . - "type =" . "'" . $app->dbmaster->quote($type) . "' " . - "AND " . - "created < " . $old; - $app->dbmaster->query($sql); - } - - /* - * Set the state to the given level (or higher, but not lesser). - * * If the actual state is critical and you call the method with ok, - * then the state is critical. - * - * * If the actual state is critical and you call the method with error, - * then the state is error. - */ - function _setState($oldState, $newState) - { - /* - * Calculate the weight of the old state - */ - switch ($oldState) { - case 'no_state': $oldInt = 0; - break; - case 'ok': $oldInt = 1; - break; - case 'unknown': $oldInt = 2; - break; - case 'info': $oldInt = 3; - break; - case 'warning': $oldInt = 4; - break; - case 'critical': $oldInt = 5; - break; - case 'error': $oldInt = 6; - break; - } - /* - * Calculate the weight of the new state - */ - switch ($newState) { - case 'no_state': $newInt = 0 ; - break; - case 'ok': $newInt = 1 ; - break; - case 'unknown': $newInt = 2 ; - break; - case 'info': $newInt = 3 ; - break; - case 'warning': $newInt = 4 ; - break; - case 'critical': $newInt = 5 ; - break; - case 'error': $newInt = 6 ; - break; - } - - /* - * Set to the higher level - */ - if ($newInt > $oldInt){ - return $newState; - } - else - { - return $oldState; - } - } - - function _getIntArray($line){ - /** The array of float found */ - $res = array(); - /* First build a array from the line */ - $data = explode(' ', $line); - /* then check if any item is a float */ - foreach ($data as $item) { - if ($item . '' == (int)$item . ''){ - $res[] = $item; - } - } - return $res; - } - - -} // end class - -?> diff --git a/interface/ispconfig/server/mods-enabled/server_module.inc.php b/interface/ispconfig/server/mods-enabled/server_module.inc.php deleted file mode 100644 index 894c97253..000000000 --- a/interface/ispconfig/server/mods-enabled/server_module.inc.php +++ /dev/null @@ -1,137 +0,0 @@ -plugins->announceEvents($this->module_name,$this->actions_available); - - /* - As we want to get notified of any changes on several database tables, - we register for them. - - The following function registers the function "functionname" - to be executed when a record for the table "dbtable" is - processed in the sys_datalog. "classname" is the name of the - class that contains the function functionname. - */ - - $app->modules->registerTableHook('server','server_module','process'); - $app->modules->registerTableHook('server_ip','server_module','process'); - $app->modules->registerTableHook('firewall','server_module','process'); - $app->modules->registerTableHook('software_update_inst','server_module','process'); - - // Register service - //$app->services->registerService('httpd','web_module','restartHttpd'); - - } - - /* - This function is called when a change in one of the registered tables is detected. - The function then raises the events for the plugins. - */ - - function process($tablename,$action,$data) { - global $app; - - switch ($tablename) { - case 'server': - if($action == 'i') $app->plugins->raiseEvent('server_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('server_update',$data); - if($action == 'd') $app->plugins->raiseEvent('server_delete',$data); - break; - case 'server_ip': - if($action == 'i') $app->plugins->raiseEvent('server_ip_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('server_ip_update',$data); - if($action == 'd') $app->plugins->raiseEvent('server_ip_delete',$data); - break; - case 'firewall': - if($action == 'i') $app->plugins->raiseEvent('firewall_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('firewall_update',$data); - if($action == 'd') $app->plugins->raiseEvent('firewall_delete',$data); - break; - case 'software_update_inst': - if($action == 'i') $app->plugins->raiseEvent('software_update_inst_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('software_update_inst_update',$data); - if($action == 'd') $app->plugins->raiseEvent('software_update_inst_delete',$data); - break; - } // end switch - } // end function - - /* - // This function is used - function restartHttpd($action = 'restart') { - global $app; - if($action == 'restart') { - exec('/etc/init.d/apache2 restart'); - } else { - exec('/etc/init.d/apache2 reload'); - } - } - */ - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/mods-enabled/web_module.inc.php b/interface/ispconfig/server/mods-enabled/web_module.inc.php deleted file mode 100644 index 3ddeca5ed..000000000 --- a/interface/ispconfig/server/mods-enabled/web_module.inc.php +++ /dev/null @@ -1,140 +0,0 @@ -plugins->announceEvents($this->module_name,$this->actions_available); - - /* - As we want to get notified of any changes on several database tables, - we register for them. - - The following function registers the function "functionname" - to be executed when a record for the table "dbtable" is - processed in the sys_datalog. "classname" is the name of the - class that contains the function functionname. - */ - - $app->modules->registerTableHook('web_domain','web_module','process'); - $app->modules->registerTableHook('ftp_user','web_module','process'); - $app->modules->registerTableHook('shell_user','web_module','process'); - - // Register service - $app->services->registerService('httpd','web_module','restartHttpd'); - - } - - /* - This function is called when a change in one of the registered tables is detected. - The function then raises the events for the plugins. - */ - - function process($tablename,$action,$data) { - global $app; - - switch ($tablename) { - case 'web_domain': - if($action == 'i') $app->plugins->raiseEvent('web_domain_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('web_domain_update',$data); - if($action == 'd') $app->plugins->raiseEvent('web_domain_delete',$data); - break; - case 'ftp_user': - if($action == 'i') $app->plugins->raiseEvent('ftp_user_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('ftp_user_update',$data); - if($action == 'd') $app->plugins->raiseEvent('ftp_user_delete',$data); - break; - case 'shell_user': - if($action == 'i') $app->plugins->raiseEvent('shell_user_insert',$data); - if($action == 'u') $app->plugins->raiseEvent('shell_user_update',$data); - if($action == 'd') $app->plugins->raiseEvent('shell_user_delete',$data); - break; - } // end switch - } // end function - - - // This function is used - function restartHttpd($action = 'restart') { - global $app; - - $command = ''; - if(is_file('/etc/init.d/httpd')) { - $command = '/etc/init.d/httpd'; - } else { - $command = '/etc/init.d/apache2'; - } - - if($action == 'restart') { - exec($command.' restart'); - } else { - exec($command.' reload'); - } - - } - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-available/apache2_plugin.inc.php b/interface/ispconfig/server/plugins-available/apache2_plugin.inc.php deleted file mode 100644 index 16b405ae4..000000000 --- a/interface/ispconfig/server/plugins-available/apache2_plugin.inc.php +++ /dev/null @@ -1,987 +0,0 @@ -plugins->registerEvent('web_domain_insert',$this->plugin_name,'ssl'); - $app->plugins->registerEvent('web_domain_update',$this->plugin_name,'ssl'); - $app->plugins->registerEvent('web_domain_delete',$this->plugin_name,'ssl'); - - $app->plugins->registerEvent('web_domain_insert',$this->plugin_name,'insert'); - $app->plugins->registerEvent('web_domain_update',$this->plugin_name,'update'); - $app->plugins->registerEvent('web_domain_delete',$this->plugin_name,'delete'); - - $app->plugins->registerEvent('server_ip_insert',$this->plugin_name,'server_ip'); - $app->plugins->registerEvent('server_ip_update',$this->plugin_name,'server_ip'); - $app->plugins->registerEvent('server_ip_delete',$this->plugin_name,'server_ip'); - - } - - // Handle the creation of SSL certificates - function ssl($event_name,$data) { - global $app, $conf; - - if(!is_dir($data["new"]["document_root"]."/ssl")) exec("mkdir -p ".$data["new"]["document_root"]."/ssl"); - $ssl_dir = $data["new"]["document_root"]."/ssl"; - $domain = $data["new"]["ssl_domain"]; - $key_file = $ssl_dir.'/'.$domain.".key.org"; - $key_file2 = $ssl_dir.'/'.$domain.".key"; - $csr_file = $ssl_dir.'/'.$domain.".csr"; - $crt_file = $ssl_dir.'/'.$domain.".crt"; - - //* Create a SSL Certificate - if($data["new"]["ssl_action"] == 'create') { - $rand_file = $ssl_dir."/random_file"; - $rand_data = md5(uniqid(microtime(),1)); - for($i=0; $i<1000; $i++){ - $rand_data .= md5(uniqid(microtime(),1)); - $rand_data .= md5(uniqid(microtime(),1)); - $rand_data .= md5(uniqid(microtime(),1)); - $rand_data .= md5(uniqid(microtime(),1)); - } - file_put_contents($rand_file, $rand_data); - - $ssl_password = substr(md5(uniqid(microtime(),1)), 0, 15); - - $ssl_cnf = " RANDFILE = $rand_file - - [ req ] - default_bits = 2048 - default_keyfile = keyfile.pem - distinguished_name = req_distinguished_name - attributes = req_attributes - prompt = no - output_password = $ssl_password - - [ req_distinguished_name ] - C = ".$data['new']['ssl_country']." - ST = ".$data['new']['ssl_state']." - L = ".$data['new']['ssl_locality']." - O = ".$data['new']['ssl_organisation']." - OU = ".$data['new']['ssl_organisation_unit']." - CN = $domain - emailAddress = webmaster@".$data['new']['domain']." - - [ req_attributes ] - challengePassword = A challenge password"; - - $ssl_cnf_file = $ssl_dir."/openssl.conf"; - file_put_contents($ssl_cnf_file,$ssl_cnf); - - $rand_file = escapeshellcmd($rand_file); - $key_file = escapeshellcmd($key_file); - $key_file2 = escapeshellcmd($key_file2); - $ssl_days = 3650; - $csr_file = escapeshellcmd($csr_file); - $config_file = escapeshellcmd($ssl_cnf_file); - $crt_file = escapeshellcmd($crt_file); - - if(is_file($ssl_cnf_file)){ - exec("openssl genrsa -des3 -rand $rand_file -passout pass:$ssl_password -out $key_file 2048 && openssl req -new -passin pass:$ssl_password -passout pass:$ssl_password -key $key_file -out $csr_file -days $ssl_days -config $config_file && openssl req -x509 -passin pass:$ssl_password -passout pass:$ssl_password -key $key_file -in $csr_file -out $crt_file -days $ssl_days -config $config_file && openssl rsa -passin pass:$ssl_password -in $key_file -out $key_file2"); - $app->log("Creating SSL Cert for: $domain",LOGLEVEL_DEBUG); - } - - exec("chmod 400 $key_file2"); - @unlink($config_file); - @unlink($rand_file); - $ssl_request = $app->db->quote(file_get_contents($csr_file)); - $ssl_cert = $app->db->quote(file_get_contents($crt_file)); - /* Update the DB of the (local) Server */ - $app->db->query("UPDATE web_domain SET ssl_request = '$ssl_request', ssl_cert = '$ssl_cert' WHERE domain = '".$data["new"]["domain"]."'"); - $app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data["new"]["domain"]."'"); - /* Update also the master-DB of the Server-Farm */ - $app->dbmaster->query("UPDATE web_domain SET ssl_request = '$ssl_request', ssl_cert = '$ssl_cert' WHERE domain = '".$data["new"]["domain"]."'"); - $app->dbmaster->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data["new"]["domain"]."'"); - } - - //* Save a SSL certificate to disk - if($data["new"]["ssl_action"] == 'save') { - $ssl_dir = $data["new"]["document_root"]."/ssl"; - $domain = $data["new"]["ssl_domain"]; - $csr_file = $ssl_dir.'/'.$domain.".csr"; - $crt_file = $ssl_dir.'/'.$domain.".crt"; - $bundle_file = $ssl_dir.'/'.$domain.".bundle"; - file_put_contents($csr_file,$data["new"]["ssl_request"]); - file_put_contents($crt_file,$data["new"]["ssl_cert"]); - if(trim($data["new"]["ssl_bundle"]) != '') file_put_contents($bundle_file,$data["new"]["ssl_bundle"]); - /* Update the DB of the (local) Server */ - $app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data["new"]["domain"]."'"); - /* Update also the master-DB of the Server-Farm */ - $app->dbmaster->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data["new"]["domain"]."'"); - $app->log("Saving SSL Cert for: $domain",LOGLEVEL_DEBUG); - } - - //* Delete a SSL certificate - if($data["new"]["ssl_action"] == 'del') { - $ssl_dir = $data["new"]["document_root"]."/ssl"; - $domain = $data["new"]["ssl_domain"]; - $csr_file = $ssl_dir.'/'.$domain.".csr"; - $crt_file = $ssl_dir.'/'.$domain.".crt"; - $bundle_file = $ssl_dir.'/'.$domain.".bundle"; - unlink($csr_file); - unlink($crt_file); - unlink($bundle_file); - /* Update the DB of the (local) Server */ - $app->db->query("UPDATE web_domain SET ssl_request = '', ssl_cert = '' WHERE domain = '".$data["new"]["domain"]."'"); - $app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data["new"]["domain"]."'"); - /* Update also the master-DB of the Server-Farm */ - $app->dbmaster->query("UPDATE web_domain SET ssl_request = '', ssl_cert = '' WHERE domain = '".$data["new"]["domain"]."'"); - $app->dbmaster->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data["new"]["domain"]."'"); - $app->log("Deleting SSL Cert for: $domain",LOGLEVEL_DEBUG); - } - - - } - - - function insert($event_name,$data) { - global $app, $conf; - - $this->action = 'insert'; - // just run the update function - $this->update($event_name,$data); - - - } - - - function update($event_name,$data) { - global $app, $conf; - - if($this->action != 'insert') $this->action = 'update'; - - if($data["new"]["type"] != "vhost" && $data["new"]["parent_domain_id"] > 0) { - - $old_parent_domain_id = intval($data["old"]["parent_domain_id"]); - $new_parent_domain_id = intval($data["new"]["parent_domain_id"]); - - // If the parent_domain_id has been chenged, we will have to update the old site as well. - if($this->action == 'update' && $data["new"]["parent_domain_id"] != $data["old"]["parent_domain_id"]) { - $tmp = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$old_parent_domain_id." AND active = 'y'"); - $data["new"] = $tmp; - $data["old"] = $tmp; - $this->action = 'update'; - $this->update($event_name,$data); - } - - // This is not a vhost, so we need to update the parent record instead. - $tmp = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$new_parent_domain_id." AND active = 'y'"); - $data["new"] = $tmp; - $data["old"] = $tmp; - $this->action = 'update'; - } - - // load the server configuration options - $app->uses("getconf"); - $web_config = $app->getconf->get_server_config($conf["server_id"], 'web'); - - //* Check if this is a chrooted setup - if($web_config['website_basedir'] != '' && @is_file($web_config['website_basedir'].'/etc/passwd')) { - $apache_chrooted = true; - $app->log("Info: Apache is chrooted.",LOGLEVEL_DEBUG); - } else { - $apache_chrooted = false; - } - - if($data["new"]["document_root"] == '') { - $app->log("document_root not set",LOGLEVEL_WARN); - return 0; - } - if($data["new"]["system_user"] == 'root' or $data["new"]["system_group"] == 'root') { - $app->log("Websites can not be owned by the root user or group.",LOGLEVEL_WARN); - return 0; - } - - //* If the client of the site has been changed, we have a change of the document root - if($this->action == 'update' && $data["new"]["document_root"] != $data["old"]["document_root"]) { - - //* Get the old client ID - $old_client = $app->dbmaster->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ".intval($data["old"]["sys_groupid"])); - $old_client_id = intval($old_client["client_id"]); - unset($old_client); - - //* Remove the old symlinks - $tmp_symlinks_array = explode(':',$web_config["website_symlinks"]); - if(is_array($tmp_symlinks_array)) { - foreach($tmp_symlinks_array as $tmp_symlink) { - $tmp_symlink = str_replace("[client_id]",$old_client_id,$tmp_symlink); - $tmp_symlink = str_replace("[website_domain]",$data["old"]["domain"],$tmp_symlink); - // Remove trailing slash - if(substr($tmp_symlink, -1, 1) == '/') $tmp_symlink = substr($tmp_symlink, 0, -1); - // create the symlinks, if not exist - if(is_link($tmp_symlink)) { - exec("rm -f ".escapeshellcmd($tmp_symlink)); - $app->log("Removed Symlink: rm -f ".$tmp_symlink,LOGLEVEL_DEBUG); - } - } - } - - //* Move the site data - $tmp_docroot = explode('/',$data["new"]["document_root"]); - unset($tmp_docroot[count($tmp_docroot)-1]); - $new_dir = implode('/',$tmp_docroot); - - $tmp_docroot = explode('/',$data["old"]["document_root"]); - unset($tmp_docroot[count($tmp_docroot)-1]); - $old_dir = implode('/',$tmp_docroot); - - exec('rm -rf '.$data["new"]["document_root"]); - if(!is_dir($new_dir)) exec('mkdir -p '.$new_dir); - exec('mv '.$data["old"]["document_root"].' '.$new_dir); - $app->log("Moving site to new document root: ".'mv '.$data["old"]["document_root"].' '.$new_dir,LOGLEVEL_DEBUG); - - //* Change the owner of the website files to the new website owner - exec('chown --recursive --from='.escapeshellcmd($data["old"]["system_user"]).':'.escapeshellcmd($data['old']['system_group']).' '.escapeshellcmd($data["new"]["system_user"]).':'.escapeshellcmd($data['new']['system_group']).' '.$new_dir); - - //* Change the home directory and group of the website user - $command = 'usermod'; - $command .= ' --home '.escapeshellcmd($data["new"]["document_root"]); - $command .= ' --gid '.escapeshellcmd($data['new']['system_group']); - $command .= ' '.escapeshellcmd($data["new"]["system_user"]); - exec($command); - - if($apache_chrooted) $this->_exec("chroot ".escapeshellcmd($web_config['website_basedir'])." ".$command); - - - } - - //print_r($data); - - // Check if the directories are there and create them if nescessary. - if(!is_dir($data["new"]["document_root"]."/web")) exec("mkdir -p ".$data["new"]["document_root"]."/web"); - if(!is_dir($data["new"]["document_root"]."/web/error") and $data["new"]["errordocs"]) exec("mkdir -p ".$data["new"]["document_root"]."/web/error"); - //if(!is_dir($data["new"]["document_root"]."/log")) exec("mkdir -p ".$data["new"]["document_root"]."/log"); - if(!is_dir($data["new"]["document_root"]."/ssl")) exec("mkdir -p ".$data["new"]["document_root"]."/ssl"); - if(!is_dir($data["new"]["document_root"]."/cgi-bin")) exec("mkdir -p ".$data["new"]["document_root"]."/cgi-bin"); - if(!is_dir($data["new"]["document_root"]."/tmp")) exec("mkdir -p ".$data["new"]["document_root"]."/tmp"); - - // Remove the symlink for the site, if site is renamed - if($this->action == 'update' && $data["old"]["domain"] != '' && $data["new"]["domain"] != $data["old"]["domain"]) { - if(is_dir('/var/log/ispconfig/httpd/'.$data["old"]["domain"])) exec('rm -rf /var/log/ispconfig/httpd/'.$data["old"]["domain"]); - if(is_link($data["old"]["document_root"]."/log")) unlink($data["old"]["document_root"]."/log"); - } - - // Create the symlink for the logfiles - if(!is_dir('/var/log/ispconfig/httpd/'.$data["new"]["domain"])) exec('mkdir -p /var/log/ispconfig/httpd/'.$data["new"]["domain"]); - if(!is_link($data["new"]["document_root"]."/log")) { - exec("ln -s /var/log/ispconfig/httpd/".$data["new"]["domain"]." ".$data["new"]["document_root"]."/log"); - $app->log("Creating Symlink: ln -s /var/log/ispconfig/httpd/".$data["new"]["domain"]." ".$data["new"]["document_root"]."/log",LOGLEVEL_DEBUG); - } - /* - // Create the symlink for the logfiles - // This does not work as vlogger can not log trogh symlinks. - if($this->action == 'update' && $data["old"]["domain"] != '' && $data["new"]["domain"] != $data["old"]["domain"]) { - if(is_dir($data["old"]["document_root"]."/log")) exec('rm -rf '.$data["old"]["document_root"]."/log"); - if(is_link('/var/log/ispconfig/httpd/'.$data["old"]["domain"])) unlink('/var/log/ispconfig/httpd/'.$data["old"]["domain"]); - } - - // Create the symlink for the logfiles - if(!is_dir($data["new"]["document_root"]."/log")) exec('mkdir -p '.$data["new"]["document_root"]."/log"); - if(!is_link('/var/log/ispconfig/httpd/'.$data["new"]["domain"])) { - exec("ln -s ".$data["new"]["document_root"]."/log /var/log/ispconfig/httpd/".$data["new"]["domain"]); - $app->log("Creating Symlink: ln -s ".$data["new"]["document_root"]."/log /var/log/ispconfig/httpd/".$data["new"]["domain"],LOGLEVEL_DEBUG); - } - */ - - // Get the client ID - $client = $app->dbmaster->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ".intval($data["new"]["sys_groupid"])); - $client_id = intval($client["client_id"]); - unset($client); - - // Remove old symlinks, if site is renamed - if($this->action == 'update' && $data["old"]["domain"] != '' && $data["new"]["domain"] != $data["old"]["domain"]) { - $tmp_symlinks_array = explode(':',$web_config["website_symlinks"]); - if(is_array($tmp_symlinks_array)) { - foreach($tmp_symlinks_array as $tmp_symlink) { - $tmp_symlink = str_replace("[client_id]",$client_id,$tmp_symlink); - $tmp_symlink = str_replace("[website_domain]",$data["old"]["domain"],$tmp_symlink); - // Remove trailing slash - if(substr($tmp_symlink, -1, 1) == '/') $tmp_symlink = substr($tmp_symlink, 0, -1); - // remove the symlinks, if not exist - if(is_link($tmp_symlink)) { - exec("rm -f ".escapeshellcmd($tmp_symlink)); - $app->log("Removed Symlink: rm -f ".$tmp_symlink,LOGLEVEL_DEBUG); - } - } - } - } - - // Create the symlinks for the sites - $tmp_symlinks_array = explode(':',$web_config["website_symlinks"]); - if(is_array($tmp_symlinks_array)) { - foreach($tmp_symlinks_array as $tmp_symlink) { - $tmp_symlink = str_replace("[client_id]",$client_id,$tmp_symlink); - $tmp_symlink = str_replace("[website_domain]",$data["new"]["domain"],$tmp_symlink); - // Remove trailing slash - if(substr($tmp_symlink, -1, 1) == '/') $tmp_symlink = substr($tmp_symlink, 0, -1); - //* Remove symlink if target folder has been changed. - if($data["old"]["document_root"] != '' && $data["old"]["document_root"] != $data["new"]["document_root"] && is_link($tmp_symlink)) { - unlink($tmp_symlink); - } - // create the symlinks, if not exist - if(!is_link($tmp_symlink)) { - exec("ln -s ".escapeshellcmd($data["new"]["document_root"])."/ ".escapeshellcmd($tmp_symlink)); - $app->log("Creating Symlink: ln -s ".$data["new"]["document_root"]."/ ".$tmp_symlink,LOGLEVEL_DEBUG); - } - } - } - - - if($this->action == 'insert' && $data["new"]["type"] == 'vhost') { - // Copy the error pages - if($data["new"]["errordocs"]){ - $error_page_path = escapeshellcmd($data["new"]["document_root"])."/web/error/"; - if (file_exists("/usr/local/ispconfig/server/conf-custom/error/".substr(escapeshellcmd($conf["language"]),0,2))){ - exec("cp /usr/local/ispconfig/server/conf-custom/error/".substr(escapeshellcmd($conf["language"]),0,2)."/* ".$error_page_path); - } - else { - if (file_exists("/usr/local/ispconfig/server/conf-custom/error/400.html")){ - exec("cp /usr/local/ispconfig/server/conf-custom/error/*.html ".$error_page_path); - } - else { - exec("cp /usr/local/ispconfig/server/conf/error/".substr(escapeshellcmd($conf["language"]),0,2)."/* ".$error_page_path); - } - } - exec("chmod -R a+r ".$error_page_path); - } - - // copy the standard index page - if (file_exists("/usr/local/ispconfig/server/conf-custom/index/standard_index.html_".substr(escapeshellcmd($conf["language"]),0,2))){ - exec("cp /usr/local/ispconfig/server/conf-custom/index/standard_index.html_".substr(escapeshellcmd($conf["language"]),0,2)." ".escapeshellcmd($data["new"]["document_root"])."/web/index.html"); - } - else { - if (file_exists("/usr/local/ispconfig/server/conf-custom/index/standard_index.html")){ - exec("cp /usr/local/ispconfig/server/conf-custom/index/standard_index.html ".escapeshellcmd($data["new"]["document_root"])."/web/index.html"); - } - else { - exec("cp /usr/local/ispconfig/server/conf/index/standard_index.html_".substr(escapeshellcmd($conf["language"]),0,2)." ".escapeshellcmd($data["new"]["document_root"])."/web/index.html"); - exec("cp /usr/local/ispconfig/server/conf/index/favicon.ico ".escapeshellcmd($data["new"]["document_root"])."/web/"); - exec("cp /usr/local/ispconfig/server/conf/index/robots.txt ".escapeshellcmd($data["new"]["document_root"])."/web/"); - exec("cp /usr/local/ispconfig/server/conf/index/.htaccess ".escapeshellcmd($data["new"]["document_root"])."/web/"); - } - } - exec("chmod -R a+r ".escapeshellcmd($data["new"]["document_root"])."/web/"); - - //** Copy the error documents on update when the error document checkbox has been activated and was deactivated before - } elseif ($this->action == 'update' && $data["new"]["type"] == 'vhost' && $data["old"]["errordocs"] == 0 && $data["new"]["errordocs"] == 1) { - - $error_page_path = escapeshellcmd($data["new"]["document_root"])."/web/error/"; - if (file_exists("/usr/local/ispconfig/server/conf-custom/error/".substr(escapeshellcmd($conf["language"]),0,2))){ - exec("cp /usr/local/ispconfig/server/conf-custom/error/".substr(escapeshellcmd($conf["language"]),0,2)."/* ".$error_page_path); - } - else { - if (file_exists("/usr/local/ispconfig/server/conf-custom/error/400.html")){ - exec("cp /usr/local/ispconfig/server/conf-custom/error/*.html ".$error_page_path); - } - else { - exec("cp /usr/local/ispconfig/server/conf/error/".substr(escapeshellcmd($conf["language"]),0,2)."/* ".$error_page_path); - } - } - exec("chmod -R a+r ".$error_page_path); - } // end copy error docs - - // Create group and user, if not exist - $app->uses("system"); - - $groupname = escapeshellcmd($data["new"]["system_group"]); - if($data["new"]["system_group"] != '' && !$app->system->is_group($data["new"]["system_group"])) { - exec("groupadd $groupname"); - if($apache_chrooted) $this->_exec("chroot ".escapeshellcmd($web_config['website_basedir'])." groupadd $groupname"); - $app->log("Adding the group: $groupname",LOGLEVEL_DEBUG); - } - - $username = escapeshellcmd($data["new"]["system_user"]); - if($data["new"]["system_user"] != '' && !$app->system->is_user($data["new"]["system_user"])) { - exec("useradd -d ".escapeshellcmd($data["new"]["document_root"])." -g $groupname -G sshusers $username -s /bin/false"); - if($apache_chrooted) $this->_exec("chroot ".escapeshellcmd($web_config['website_basedir'])." "."useradd -d ".escapeshellcmd($data["new"]["document_root"])." -g $groupname -G sshusers $username -s /bin/false"); - $app->log("Adding the user: $username",LOGLEVEL_DEBUG); - } - - // Set the quota for the user - if($username != '' && $app->system->is_user($username)) { - if($data["new"]["hd_quota"] > 0){ - $blocks_soft = $data["new"]["hd_quota"] * 1024; - $blocks_hard = $blocks_soft + 1024; - } else { - $blocks_soft = $blocks_hard = 0; - } - exec("setquota -u $username $blocks_soft $blocks_hard 0 0 -a &> /dev/null"); - exec("setquota -T -u $username 604800 604800 -a &> /dev/null"); - } - - if($this->action == 'insert') { - // Chown and chmod the directories below the document root - $this->_exec("chown -R $username:$groupname ".escapeshellcmd($data["new"]["document_root"])); - // The document root itself has to be owned by root in normal level and by the web owner in security level 20 - if($web_config['security_level'] == 20) { - $this->_exec("chown $username:$groupname ".escapeshellcmd($data["new"]["document_root"])); - } else { - $this->_exec("chown root:root ".escapeshellcmd($data["new"]["document_root"])); - } - } - - - - //* If the security level is set to high - if($web_config['security_level'] == 20) { - - $this->_exec("chmod 751 ".escapeshellcmd($data["new"]["document_root"]."/")); - $this->_exec("chmod 751 ".escapeshellcmd($data["new"]["document_root"])."/*"); - $this->_exec("chmod 710 ".escapeshellcmd($data["new"]["document_root"]."/web")); - - // make temp direcory writable for the apache user and the website user - $this->_exec("chmod 777 ".escapeshellcmd($data["new"]["document_root"]."/tmp")); - - $command = 'usermod'; - $command .= ' --groups sshusers'; - $command .= ' '.escapeshellcmd($data["new"]["system_user"]); - $this->_exec($command); - - //* if we have a chrooted apache enviroment - if($apache_chrooted) { - $this->_exec("chroot ".escapeshellcmd($web_config['website_basedir'])." ".$command); - - //* add the apache user to the client group in the chroot enviroment - $tmp_groupfile = $app->system->server_conf["group_datei"]; - $app->system->server_conf["group_datei"] = $web_config['website_basedir'].'/etc/group'; - $app->system->add_user_to_group($groupname, escapeshellcmd($web_config['user'])); - $app->system->server_conf["group_datei"] = $tmp_groupfile; - unset($tmp_groupfile); - } - - //* add the apache user to the client group - $app->system->add_user_to_group($groupname, escapeshellcmd($web_config['user'])); - - $this->_exec("chown $username:$groupname ".escapeshellcmd($data["new"]["document_root"])); - - /* - * Workaround for jailkit: If jailkit is enabled for the site, the - * website root has to be owned by the root user and we have to chmod it to 755 then - */ - - //* Check if there is a jailkit user for this site - $tmp = $app->db->queryOneRecord("SELECT count(shell_user_id) as number FROM shell_user WHERE parent_domain_id = ".$data["new"]["domain_id"]." AND chroot = 'jailkit'"); - if($tmp['number'] > 0) { - $this->_exec("chmod 755 ".escapeshellcmd($data["new"]["document_root"]."/")); - $this->_exec("chown root:root ".escapeshellcmd($data["new"]["document_root"]."/")); - } - unset($tmp); - - // If the security Level is set to medium - } else { - - $this->_exec("chmod 755 ".escapeshellcmd($data["new"]["document_root"]."/")); - $this->_exec("chmod 755 ".escapeshellcmd($data["new"]["document_root"]."/*")); - $this->_exec("chown root:root ".escapeshellcmd($data["new"]["document_root"]."/")); - - // make temp direcory writable for the apache user and the website user - $this->_exec("chmod 777 ".escapeshellcmd($data["new"]["document_root"]."/tmp")); - } - - // Change the owner of the error log to the owner of the website - if(!@is_file($data["new"]["document_root"]."/log/error.log")) exec('touch '.escapeshellcmd($data["new"]["document_root"])."/log/error.log"); - $this->_exec("chown $username:$groupname ".escapeshellcmd($data["new"]["document_root"])."/log/error.log"); - - - // Create the vhost config file - $app->load('tpl'); - - $tpl = new tpl(); - $tpl->newTemplate("vhost.conf.master"); - - $vhost_data = $data["new"]; - $vhost_data["web_document_root"] = $data["new"]["document_root"]."/web"; - $vhost_data["web_document_root_www"] = $web_config["website_basedir"]."/".$data["new"]["domain"]."/web"; - $vhost_data["web_basedir"] = $web_config["website_basedir"]; - $vhost_data["security_level"] = $web_config["security_level"]; - $vhost_data["allow_override"] = ($data["new"]["allow_override"] == '')?'All':$data["new"]["allow_override"]; - $vhost_data["php_open_basedir"] = ($data["new"]["php_open_basedir"] == '')?$data["new"]["document_root"]:$data["new"]["php_open_basedir"]; - $vhost_data["ssl_domain"] = $data["new"]["ssl_domain"]; - - // Check if a SSL cert exists - $ssl_dir = $data["new"]["document_root"]."/ssl"; - $domain = $data["new"]["ssl_domain"]; - $key_file = $ssl_dir.'/'.$domain.".key"; - $crt_file = $ssl_dir.'/'.$domain.".crt"; - $bundle_file = $ssl_dir.'/'.$domain.".bundle"; - - if($data["new"]["ssl"] == 'y' && @is_file($crt_file) && @is_file($key_file)) { - $vhost_data["ssl_enabled"] = 1; - $app->log("Enable SSL for: $domain",LOGLEVEL_DEBUG); - } else { - $vhost_data["ssl_enabled"] = 0; - $app->log("Disable SSL for: $domain",LOGLEVEL_DEBUG); - } - - if(@is_file($bundle_file)) $vhost_data['has_bundle_cert'] = 1; - - //$vhost_data["document_root"] = $data["new"]["document_root"]."/web"; - $tpl->setVar($vhost_data); - - // Rewrite rules - $rewrite_rules = array(); - if($data["new"]["redirect_type"] != '') { - if(substr($data["new"]["redirect_path"],-1) != '/') $data["new"]["redirect_path"] .= '/'; - /* Disabled path extension - if($data["new"]["redirect_type"] == 'no' && substr($data["new"]["redirect_path"],0,4) != 'http') { - $data["new"]["redirect_path"] = $data["new"]["document_root"]."/web".realpath($data["new"]["redirect_path"]).'/'; - } - */ - - $rewrite_rules[] = array( 'rewrite_domain' => $data["new"]["domain"], - 'rewrite_type' => ($data["new"]["redirect_type"] == 'no')?'':'['.$data["new"]["redirect_type"].']', - 'rewrite_target' => $data["new"]["redirect_path"]); - - switch($data["new"]["subdomain"]) { - case 'www': - $rewrite_rules[] = array( 'rewrite_domain' => 'www.'.$data["new"]["domain"], - 'rewrite_type' => ($data["new"]["redirect_type"] == 'no')?'':'['.$data["new"]["redirect_type"].']', - 'rewrite_target' => $data["new"]["redirect_path"]); - break; - case '*': - // TODO - //$rewrite_rules[] = array( 'rewrite_domain' => '*'.$alias["domain"], - // 'rewrite_type' => $alias["redirect_type"], - // 'rewrite_target' => $alias["redirect_path"]); - break; - } - } - - // get alias domains (co-domains and subdomains) - $aliases = $app->db->queryAllRecords("SELECT * FROM web_domain WHERE parent_domain_id = ".$data["new"]["domain_id"]." AND active = 'y'"); - $server_alias = array(); - switch($data["new"]["subdomain"]) { - case 'www': - $server_alias[] .= 'www.'.$data["new"]["domain"].' '; - break; - case '*': - $server_alias[] .= '*.'.$data["new"]["domain"].' '; - break; - } - if(is_array($aliases)) { - foreach($aliases as $alias) { - switch($alias["subdomain"]) { - case 'www': - $server_alias[] .= 'www.'.$alias["domain"].' '.$alias["domain"].' '; - break; - case '*': - $server_alias[] .= '*.'.$alias["domain"].' '.$alias["domain"].' '; - break; - default: - $server_alias[] .= $alias["domain"].' '; - break; - } - $app->log("Add server alias: $alias[domain]",LOGLEVEL_DEBUG); - // Rewriting - if($alias["redirect_type"] != '') { - if(substr($data["new"]["redirect_path"],-1) != '/') $data["new"]["redirect_path"] .= '/'; - /* Disabled path extension - if($data["new"]["redirect_type"] == 'no' && substr($data["new"]["redirect_path"],0,4) != 'http') { - $data["new"]["redirect_path"] = $data["new"]["document_root"]."/web".realpath($data["new"]["redirect_path"]).'/'; - } - */ - $rewrite_rules[] = array( 'rewrite_domain' => $alias["domain"], - 'rewrite_type' => ($alias["redirect_type"] == 'no')?'':'['.$alias["redirect_type"].']', - 'rewrite_target' => $alias["redirect_path"]); - switch($alias["subdomain"]) { - case 'www': - $rewrite_rules[] = array( 'rewrite_domain' => 'www.'.$alias["domain"], - 'rewrite_type' => ($alias["redirect_type"] == 'no')?'':'['.$alias["redirect_type"].']', - 'rewrite_target' => $alias["redirect_path"]); - break; - case '*': - // TODO - //$rewrite_rules[] = array( 'rewrite_domain' => '*'.$alias["domain"], - // 'rewrite_type' => $alias["redirect_type"], - // 'rewrite_target' => $alias["redirect_path"]); - break; - } - } - } - } - - //* If we have some alias records - if(count($server_alias) > 0) { - $server_alias_str = ''; - $n = 0; - - // begin a new ServerAlias line after 30 alias domains - foreach($server_alias as $tmp_alias) { - if($n % 30 == 0) $server_alias_str .= "\n ServerAlias "; - $server_alias_str .= $tmp_alias; - } - unset($tmp_alias); - - $tpl->setVar('alias',trim($server_alias_str)); - } else { - $tpl->setVar('alias',''); - } - - if(count($rewrite_rules) > 0) { - $tpl->setVar('rewrite_enabled',1); - } else { - $tpl->setVar('rewrite_enabled',0); - } - $tpl->setLoop('redirects',$rewrite_rules); - - /** - * install fast-cgi starter script and add script aliasd config - * first we create the script directory if not already created, then copy over the starter script - * settings are copied over from the server ini config for now - * TODO: Create form for fastcgi configs per site. - */ - - if ($data["new"]["php"] == "fast-cgi") - { - $fastcgi_config = $app->getconf->get_server_config($conf["server_id"], 'fastcgi'); - - $fastcgi_starter_path = str_replace("[system_user]",$data["new"]["system_user"],$fastcgi_config["fastcgi_starter_path"]); - $fastcgi_starter_path = str_replace("[client_id]",$client_id,$fastcgi_starter_path); - - if (!is_dir($fastcgi_starter_path)) - { - exec("mkdir -p ".escapeshellcmd($fastcgi_starter_path)); - //exec("chown ".$data["new"]["system_user"].":".$data["new"]["system_group"]." ".escapeshellcmd($fastcgi_starter_path)); - - - $app->log("Creating fastcgi starter script directory: $fastcgi_starter_path",LOGLEVEL_DEBUG); - } - - exec("chown -R ".$data["new"]["system_user"].":".$data["new"]["system_group"]." ".escapeshellcmd($fastcgi_starter_path)); - - $fcgi_tpl = new tpl(); - $fcgi_tpl->newTemplate("php-fcgi-starter.master"); - - $fcgi_tpl->setVar('php_ini_path',escapeshellcmd($fastcgi_config["fastcgi_phpini_path"])); - $fcgi_tpl->setVar('document_root',escapeshellcmd($data["new"]["document_root"])); - $fcgi_tpl->setVar('php_fcgi_children',escapeshellcmd($fastcgi_config["fastcgi_children"])); - $fcgi_tpl->setVar('php_fcgi_max_requests',escapeshellcmd($fastcgi_config["fastcgi_max_requests"])); - $fcgi_tpl->setVar('php_fcgi_bin',escapeshellcmd($fastcgi_config["fastcgi_bin"])); - $fcgi_tpl->setVar('security_level',intval($web_config["security_level"])); - - $php_open_basedir = ($data["new"]["php_open_basedir"] == '')?$data["new"]["document_root"]:$data["new"]["php_open_basedir"]; - $fcgi_tpl->setVar('open_basedir', escapeshellcmd($php_open_basedir)); - - $fcgi_starter_script = escapeshellcmd($fastcgi_starter_path.$fastcgi_config["fastcgi_starter_script"]); - file_put_contents($fcgi_starter_script,$fcgi_tpl->grab()); - unset($fcgi_tpl); - - $app->log("Creating fastcgi starter script: $fcgi_starter_script",LOGLEVEL_DEBUG); - - - exec("chmod 755 $fcgi_starter_script"); - exec("chown ".$data["new"]["system_user"].":".$data["new"]["system_group"]." $fcgi_starter_script"); - - $tpl->setVar('fastcgi_alias',$fastcgi_config["fastcgi_alias"]); - $tpl->setVar('fastcgi_starter_path',$fastcgi_starter_path); - $tpl->setVar('fastcgi_starter_script',$fastcgi_config["fastcgi_starter_script"]); - - } - - /** - * install cgi starter script and add script alias to config. - * This is needed to allow cgi with suexec (to do so, we need a bin in the document-path!) - * first we create the script directory if not already created, then copy over the starter script. - * TODO: we have to fetch the data from the server-settings. - */ - - if ($data["new"]["php"] == "cgi") - { - //$cgi_config = $app->getconf->get_server_config($conf["server_id"], 'cgi'); - - $cgi_config["cgi_starter_path"] = $web_config["website_basedir"]."/php-cgi-scripts/[system_user]/"; - $cgi_config["cgi_starter_script"] = "php-cgi-starter"; - $cgi_config["cgi_bin"] = "/usr/bin/php-cgi"; - - $cgi_starter_path = str_replace("[system_user]",$data["new"]["system_user"],$cgi_config["cgi_starter_path"]); - $cgi_starter_path = str_replace("[client_id]",$client_id,$cgi_starter_path); - - if (!is_dir($cgi_starter_path)) - { - exec("mkdir -p ".escapeshellcmd($cgi_starter_path)); - exec("chown ".$data["new"]["system_user"].":".$data["new"]["system_group"]." ".escapeshellcmd($cgi_starter_path)); - - $app->log("Creating cgi starter script directory: $cgi_starter_path",LOGLEVEL_DEBUG); - } - - $cgi_tpl = new tpl(); - $cgi_tpl->newTemplate("php-cgi-starter.master"); - - // This works, because php "rewrites" a symlink to the physical path - $php_open_basedir = ($data["new"]["php_open_basedir"] == '')?$data["new"]["document_root"]:$data["new"]["php_open_basedir"]; - $cgi_tpl->setVar('open_basedir', escapeshellcmd($php_open_basedir)); - $cgi_tpl->setVar('document_root', escapeshellcmd($data["new"]["document_root"])); - - // This will NOT work! - //$cgi_tpl->setVar('open_basedir', "/var/www/" . $data["new"]["domain"]); - $cgi_tpl->setVar('php_cgi_bin',$cgi_config["cgi_bin"]); - $cgi_tpl->setVar('security_level',$web_config["security_level"]); - - $cgi_starter_script = escapeshellcmd($cgi_starter_path.$cgi_config["cgi_starter_script"]); - file_put_contents($cgi_starter_script,$cgi_tpl->grab()); - unset($cgi_tpl); - - $app->log("Creating cgi starter script: $cgi_starter_script",LOGLEVEL_DEBUG); - - - exec("chmod 755 $cgi_starter_script"); - exec("chown ".$data["new"]["system_user"].":".$data["new"]["system_group"]." $cgi_starter_script"); - - $tpl->setVar('cgi_starter_path',$cgi_starter_path); - $tpl->setVar('cgi_starter_script',$cgi_config["cgi_starter_script"]); - - } - - $vhost_file = escapeshellcmd($web_config["vhost_conf_dir"].'/'.$data["new"]["domain"].'.vhost'); - file_put_contents($vhost_file,$tpl->grab()); - $app->log("Writing the vhost file: $vhost_file",LOGLEVEL_DEBUG); - unset($tpl); - - // Set the symlink to enable the vhost - $vhost_symlink = escapeshellcmd($web_config["vhost_conf_enabled_dir"].'/'.$data["new"]["domain"].'.vhost'); - if($data["new"]["active"] == 'y' && !is_link($vhost_symlink)) { - symlink($vhost_file,$vhost_symlink); - $app->log("Creating the symlink: $vhost_symlink => $vhost_file",LOGLEVEL_DEBUG); - } - - // Remove the symlink, if site is inactive - if($data["new"]["active"] == 'n' && is_link($vhost_symlink)) { - unlink($vhost_symlink); - $app->log("Removing symlink: $vhost_symlink => $vhost_file",LOGLEVEL_DEBUG); - } - - // remove old symlink and vhost file, if domain name of the site has changed - if($this->action == 'update' && $data["old"]["domain"] != '' && $data["new"]["domain"] != $data["old"]["domain"]) { - $vhost_symlink = escapeshellcmd($web_config["vhost_conf_enabled_dir"].'/'.$data["old"]["domain"].'.vhost'); - unlink($vhost_symlink); - $app->log("Removing symlink: $vhost_symlink => $vhost_file",LOGLEVEL_DEBUG); - $vhost_file = escapeshellcmd($web_config["vhost_conf_dir"].'/'.$data["old"]["domain"].'.vhost'); - unlink($vhost_file); - $app->log("Removing File $vhost_file",LOGLEVEL_DEBUG); - } - - //* Create .htaccess and .htpasswd file for website statistics - if(!is_file($data["new"]["document_root"].'/web/stats/.htaccess') or $data["old"]["document_root"] != $data["new"]["document_root"]) { - if(!is_dir($data["new"]["document_root"].'/web/stats')) mkdir($data["new"]["document_root"].'/web/stats'); - $ht_file = "AuthType Basic\nAuthName \"Members Only\"\nAuthUserFile ".$data["new"]["document_root"]."/.htpasswd_stats\nrequire valid-user"; - file_put_contents($data["new"]["document_root"].'/web/stats/.htaccess',$ht_file); - chmod($data["new"]["document_root"].'/web/stats/.htaccess',0755); - unset($ht_file); - } - - if(!is_file($data["new"]["document_root"].'/.htpasswd_stats') || $data["new"]["stats_password"] != $data["old"]["stats_password"]) { - if(trim($data["new"]["stats_password"]) != '') { - $htp_file = 'admin:'.trim($data["new"]["stats_password"]); - file_put_contents($data["new"]["document_root"].'/.htpasswd_stats',$htp_file); - chmod($data["new"]["document_root"].'/.htpasswd_stats',0755); - unset($htp_file); - } - } - - - if($apache_chrooted) { - $app->services->restartServiceDelayed('httpd','restart'); - } else { - // request a httpd reload when all records have been processed - $app->services->restartServiceDelayed('httpd','reload'); - } - - //* Unset action to clean it for next processed vhost. - $this->action = ''; - - } - - function delete($event_name,$data) { - global $app, $conf; - - // load the server configuration options - $app->uses("getconf"); - $web_config = $app->getconf->get_server_config($conf["server_id"], 'web'); - - //* Check if this is a chrooted setup - if($web_config['website_basedir'] != '' && @is_file($web_config['/var/www'].'/etc/passwd')) { - $apache_chrooted = true; - } else { - $apache_chrooted = false; - } - - if($data["old"]["type"] != "vhost" && $data["old"]["parent_domain_id"] > 0) { - //* This is a alias domain or subdomain, so we have to update the website instead - $parent_domain_id = intval($data["old"]["parent_domain_id"]); - $tmp = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$parent_domain_id." AND active = 'y'"); - $data["new"] = $tmp; - $data["old"] = $tmp; - $this->action = 'update'; - // just run the update function - $this->update($event_name,$data); - - } else { - //* This is a website - // Deleting the vhost file, symlink and the data directory - $vhost_symlink = escapeshellcmd($web_config["vhost_conf_enabled_dir"].'/'.$data["old"]["domain"].'.vhost'); - unlink($vhost_symlink); - $app->log("Removing symlink: $vhost_symlink => $vhost_file",LOGLEVEL_DEBUG); - - $vhost_file = escapeshellcmd($web_config["vhost_conf_dir"].'/'.$data["old"]["domain"].'.vhost'); - unlink($vhost_file); - $app->log("Removing vhost file: $vhost_file",LOGLEVEL_DEBUG); - - $docroot = escapeshellcmd($data["old"]["document_root"]); - if($docroot != '' && !stristr($docroot,'..')) exec("rm -rf $docroot"); - - - //remove the php fastgi starter script if available - if ($data["old"]["php"] == "fast-cgi") - { - $fastcgi_starter_path = str_replace("[system_user]",$data["old"]["system_user"],$web_config["fastcgi_starter_path"]); - if (is_dir($fastcgi_starter_path)) - { - exec("rm -rf $fastcgi_starter_path"); - } - } - - //remove the php cgi starter script if available - if ($data["old"]["php"] == "cgi") - { - // TODO: fetch the date from the server-settings - $web_config["cgi_starter_path"] = $web_config["website_basedir"]."/php-cgi-scripts/[system_user]/"; - - $cgi_starter_path = str_replace("[system_user]",$data["old"]["system_user"],$web_config["cgi_starter_path"]); - if (is_dir($cgi_starter_path)) - { - exec("rm -rf $cgi_starter_path"); - } - } - - $app->log("Removing website: $docroot",LOGLEVEL_DEBUG); - - // Delete the symlinks for the sites - $client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ".intval($data["old"]["sys_groupid"])); - $client_id = intval($client["client_id"]); - unset($client); - $tmp_symlinks_array = explode(':',$web_config["website_symlinks"]); - if(is_array($tmp_symlinks_array)) { - foreach($tmp_symlinks_array as $tmp_symlink) { - $tmp_symlink = str_replace("[client_id]",$client_id,$tmp_symlink); - $tmp_symlink = str_replace("[website_domain]",$data["old"]["domain"],$tmp_symlink); - // Remove trailing slash - if(substr($tmp_symlink, -1, 1) == '/') $tmp_symlink = substr($tmp_symlink, 0, -1); - // create the symlinks, if not exist - if(is_link($tmp_symlink)) { - unlink($tmp_symlink); - $app->log("Removing symlink: ".$tmp_symlink,LOGLEVEL_DEBUG); - } - } - } - // end removing symlinks - - // Delete the log file directory - $vhost_logfile_dir = escapeshellcmd('/var/log/ispconfig/httpd/'.$data["old"]["domain"]); - if($data["old"]["domain"] != '' && !stristr($vhost_logfile_dir,'..')) exec("rm -rf $vhost_logfile_dir"); - $app->log("Removing website logfile directory: $vhost_logfile_dir",LOGLEVEL_DEBUG); - - //delete the web user - $command = 'userdel'; - $command .= ' '.$data["old"]["system_user"]; - exec($command); - if($apache_chrooted) $this->_exec("chroot ".escapeshellcmd($web_config['website_basedir'])." ".$command); - - } - } - - //* This function is called when a IP on the server is inserted, updated or deleted - function server_ip($event_name,$data) { - global $app, $conf; - - // load the server configuration options - $app->uses("getconf"); - $web_config = $app->getconf->get_server_config($conf["server_id"], 'web'); - - $app->load('tpl'); - - $tpl = new tpl(); - $tpl->newTemplate("apache_ispconfig.conf.master"); - $records = $app->db->queryAllRecords("SELECT * FROM server_ip WHERE server_id = ".$conf["server_id"]." AND virtualhost = 'y'"); - - if(count($records) > 0) { - $tpl->setLoop('ip_adresses',$records); - } - - $vhost_file = escapeshellcmd($web_config["vhost_conf_dir"].'/ispconfig.conf'); - file_put_contents($vhost_file,$tpl->grab()); - $app->log("Writing the conf file: ispconfig.conf",LOGLEVEL_DEBUG); - unset($tpl); - - } - - //* Wrapper for exec function for easier debugging - private function _exec($command) { - global $app; - $app->log("exec: ".$command,LOGLEVEL_DEBUG); - exec($command); - } - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-available/apps_vhost_plugin.inc.php b/interface/ispconfig/server/plugins-available/apps_vhost_plugin.inc.php deleted file mode 100644 index e864dbd99..000000000 --- a/interface/ispconfig/server/plugins-available/apps_vhost_plugin.inc.php +++ /dev/null @@ -1,114 +0,0 @@ -plugins->registerEvent('server_insert','apps_vhost_plugin','insert'); - $app->plugins->registerEvent('server_update','apps_vhost_plugin','update'); - - - } - - function insert($event_name,$data) { - global $app, $conf; - - $this->update($event_name,$data); - - } - - // The purpose of this plugin is to rewrite the main.cf file - function update($event_name,$data) { - global $app, $conf; - - // get the config - $app->uses("getconf"); - $web_config = $app->getconf->get_server_config($conf["server_id"], 'web'); - - // Dont just copy over the virtualhost template but add some custom settings - $content = file_get_contents($conf["rootpath"]."/conf/apache_apps.vhost.master"); - - $vhost_conf_dir = $web_config['vhost_conf_dir']; - $vhost_conf_enabled_dir = $web_config['vhost_conf_enabled_dir']; - $apps_vhost_servername = ($web_config['apps_vhost_servername'] == '')?'':'ServerName '.$web_config['apps_vhost_servername']; - - $web_config['apps_vhost_port'] = (empty($web_config['apps_vhost_port']))?8081:$web_config['apps_vhost_port']; - $web_config['apps_vhost_ip'] = (empty($web_config['apps_vhost_ip']))?'_default_':$web_config['apps_vhost_ip']; - - $content = str_replace('{apps_vhost_ip}', $web_config['apps_vhost_ip'], $content); - $content = str_replace('{apps_vhost_port}', $web_config['apps_vhost_port'], $content); - $content = str_replace('{apps_vhost_dir}', $web_config['website_basedir'].'/apps', $content); - $content = str_replace('{apps_vhost_servername}', $apps_vhost_servername, $content); - $content = str_replace('{apps_vhost_basedir}', $web_config['website_basedir'], $content); - - - // comment out the listen directive if port is 80 or 443 - if($web_config['apps_vhost_ip'] == 80 or $web_config['apps_vhost_ip'] == 443) { - $content = str_replace('{vhost_port_listen}', '#', $content); - } else { - $content = str_replace('{vhost_port_listen}', '', $content); - } - - file_put_contents("$vhost_conf_dir/apps.vhost", $content); - - $app->services->restartServiceDelayed('httpd','restart'); - - - } - - -} // end class - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-available/bind_dlz_plugin.inc.php b/interface/ispconfig/server/plugins-available/bind_dlz_plugin.inc.php deleted file mode 100644 index c0f67472f..000000000 --- a/interface/ispconfig/server/plugins-available/bind_dlz_plugin.inc.php +++ /dev/null @@ -1,352 +0,0 @@ -plugins->registerEvent('dns_soa_insert',$this->plugin_name,'soa_insert'); - $app->plugins->registerEvent('dns_soa_update',$this->plugin_name,'soa_update'); - $app->plugins->registerEvent('dns_soa_delete',$this->plugin_name,'soa_delete'); - - //* RR - $app->plugins->registerEvent('dns_rr_insert',$this->plugin_name,'rr_insert'); - $app->plugins->registerEvent('dns_rr_update',$this->plugin_name,'rr_update'); - $app->plugins->registerEvent('dns_rr_delete',$this->plugin_name,'rr_delete'); - } - - - function soa_insert($event_name,$data) - { - global $app, $conf; - - if($data["new"]["active"] != 'Y') return; - - $origin = substr($data["new"]["origin"], 0, -1); - $ispconfig_id = $data["new"]["id"]; - $serial = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ".$ispconfig_id); - - $ttl = $data["new"]["ttl"]; - - $_db = clone $app->db; - $_db->dbName = 'named'; - - $_db->query("INSERT INTO records (zone, ttl, type, primary_ns, resp_contact, serial, refresh, retry, expire, minimum, ispconfig_id) VALUES ". - "('$origin', $ttl, 'SOA', '{$data["new"]["ns"]}', '{$data["new"]["mbox"]}', '{$serial["serial"]}', '{$serial["refresh"]}'," . - "'{$serial["retry"]}', '{$serial["expire"]}', '{$serial["minimum"]}', $ispconfig_id)"); - unset($_db); - } - - function soa_update($event_name,$data) - { - global $app, $conf; - - if($data["new"]["active"] != 'Y') - { - if($data["old"]["active"] != 'Y') return; - $this->soa_delete($event_name,$data); - } - else - { - if($data["old"]["active"] == 'Y') - { - $origin = substr($data["new"]["origin"], 0, -1); - $ispconfig_id = $data["new"]["id"]; - $serial = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ".$ispconfig_id); - - $ttl = $data["new"]["ttl"]; - - $_db = clone $app->db; - $_db->dbName = 'named'; - - $_db->query("UPDATE records SET zone = '$origin', ttl = $ttl, primary_ns = '{$data["new"]["ns"]}', resp_contact = '{$data["new"]["mbox"]}', ". - "serial = '{$serial["serial"]}', refresh = '{$serial["refresh"]}', retry = '{$serial["retry"]}', expire = '{$serial["expire"]}', ". - "minimum = '{$serial["minimum"]}' WHERE ispconfig_id = ".$data["new"]["id"]." AND type = 'SOA'"); - unset($_db); - } - else - { - $this->soa_insert($event_name,$data); - $ispconfig_id = $data["new"]["id"]; - - if ($records = $app->db->queryAllRecords("SELECT * FROM dns_rr WHERE zone = $ispconfig_id AND active = 'Y'")) - { - foreach($records as $record) - { - foreach ($record as $key => $val) { - $data["new"][$key] = $val; - } - $this->rr_insert("dns_rr_insert", $data); - } - } - } - } - - } - - function soa_delete($event_name,$data) - { - global $app, $conf; - - $_db = clone $app->db; - $_db->dbName = 'named'; - - $_db->query("DELETE FROM records WHERE ispconfig_id = {$data["old"]["id"]}"); - unset($_db); - } - - function rr_insert($event_name,$data) - { - global $app, $conf; - if($data["new"]["active"] != 'Y') return; - - $zone = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ".$data["new"]["zone"]); - $origin = substr($zone["origin"], 0, -1); - $ispconfig_id = $data["new"]["id"]; - - $type = $data["new"]["type"]; - - if (substr($data["new"]["name"], -1) == '.') { - $name = substr($data["new"]["name"], 0, -1); - } else { - $name = ($data["new"]["name"] == "") ? $name = '@' : $data["new"]["name"]; - } - - if ($name == $origin || $name == '') { - $name = '@'; - } - - switch ($type) - { - case "CNAME": - case "MX": - case "NS": - case "ALIAS": - case "PTR": - case "SRV": - if(substr($data["new"]["data"], -1) != '.'){ - $content = $data["new"]["data"] . '.'; - } else { - $content = $data["new"]["data"]; - } - break; - case "HINFO": - $content = $data["new"]["data"]; - $quote1 = strpos($content, '"'); - - if($quote1 !== FALSE) { - $quote2 = strpos(substr($content, ($quote1 + 1)), '"'); - } - - if ($quote1 !== FALSE && $quote2 !== FALSE) { - $text_between_quotes = str_replace(' ', '_', substr($content, ($quote1 + 1), (($quote2 - $quote1)))); - $content = $text_between_quotes.substr($content, ($quote2 + 2)); - } - break; - default: - $content = $data["new"]["data"]; - } - - $ttl = $data["new"]["ttl"]; - - $_db = clone $app->db; - $_db->dbName = 'named'; - - if ($type == 'MX') { - $_db->query("INSERT INTO records (zone, ttl, type, host, mx_priority, data, ispconfig_id)". - " VALUES ('$origin', $ttl, '$type', '$name', {$data["new"]["aux"]}, '$content', $ispconfig_id)"); - } else { - $_db->query("INSERT INTO records (zone, ttl, type, host, data, ispconfig_id)". - " VALUES ('$origin', $ttl, '$type', '$name', '$content', $ispconfig_id)"); - } - - unset($_db); - } - - function rr_update($event_name,$data) - { - global $app, $conf; - - if ($data["new"]["active"] != 'Y') - { - if($data["old"]["active"] != 'Y') return; - $this->rr_delete($event_name,$data); - } - else - { - if ($data["old"]["active"] == 'Y') - { - $zone = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ".$data["new"]["zone"]); - $origin = substr($zone["origin"], 0, -1); - $ispconfig_id = $data["new"]["id"]; - - $type = $data["new"]["type"]; - - if (substr($data["new"]["name"], -1) == '.') { - $name = substr($data["new"]["name"], 0, -1); - } else { - $name = ($data["new"]["name"] == "") ? $name = '@' : $data["new"]["name"]; - } - - if ($name == $origin || $name == '') { - $name = '@'; - } - - switch ($type) - { - case "CNAME": - case "MX": - case "NS": - case "ALIAS": - case "PTR": - case "SRV": - if(substr($data["new"]["data"], -1) != '.'){ - $content = $data["new"]["data"] . '.'; - } else { - $content = $data["new"]["data"]; - } - break; - case "HINFO": - $content = $data["new"]["data"]; - $quote1 = strpos($content, '"'); - if($quote1 !== FALSE){ - $quote2 = strpos(substr($content, ($quote1 + 1)), '"'); - } - if($quote1 !== FALSE && $quote2 !== FALSE){ - $text_between_quotes = str_replace(' ', '_', substr($content, ($quote1 + 1), (($quote2 - $quote1)))); - $content = $text_between_quotes.substr($content, ($quote2 + 2)); - } - break; - default: - $content = $data["new"]["data"]; - } - - $ttl = $data["new"]["ttl"]; - $prio = (int)$data["new"]["aux"]; - - $_db = clone $app->db; - $_db->dbName = 'named'; - - if ($type == 'MX') { - $_db->query("UPDATE records SET zone = '$origin', ttl = $ttl, type = '$type', host = '$name', mx_priority = $prio, ". - "data = '$content' WHERE ispconfig_id = $ispconfig_id AND type != 'SOA'"); - } else { - $_db->query("UPDATE records SET zone = '$origin', ttl = $ttl, type = '$type', host = '$name', ". - "data = '$content' WHERE ispconfig_id = $ispconfig_id AND type != 'SOA'"); - } - - unset($_db); - } else { - $this->rr_insert($event_name,$data); - } - } - } - - function rr_delete($event_name,$data) { - global $app, $conf; - - $_db = clone $app->db; - $_db->dbName = 'named'; - - $_db->query("DELETE FROM named.records WHERE ispconfig_id = {$data["old"]["id"]} AND type != 'SOA'"); - unset($_db); - } -} // end class -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-available/bind_plugin.inc.php b/interface/ispconfig/server/plugins-available/bind_plugin.inc.php deleted file mode 100644 index f7de32912..000000000 --- a/interface/ispconfig/server/plugins-available/bind_plugin.inc.php +++ /dev/null @@ -1,224 +0,0 @@ -plugins->registerEvent('dns_soa_insert',$this->plugin_name,'soa_insert'); - $app->plugins->registerEvent('dns_soa_update',$this->plugin_name,'soa_update'); - $app->plugins->registerEvent('dns_soa_delete',$this->plugin_name,'soa_delete'); - - //* RR - $app->plugins->registerEvent('dns_rr_insert',$this->plugin_name,'rr_insert'); - $app->plugins->registerEvent('dns_rr_update',$this->plugin_name,'rr_update'); - $app->plugins->registerEvent('dns_rr_delete',$this->plugin_name,'rr_delete'); - - } - - - function soa_insert($event_name,$data) { - global $app, $conf; - - $this->action = 'insert'; - $this->soa_update($event_name,$data); - - } - - function soa_update($event_name,$data) { - global $app, $conf; - - //* Load libraries - $app->uses("getconf,tpl"); - - //* load the server configuration options - $dns_config = $app->getconf->get_server_config($conf["server_id"], 'dns'); - - //* Write the domain file - if(!empty($data['new']['id'])) { - $tpl = new tpl(); - $tpl->newTemplate("bind_pri.domain.master"); - - $zone = $data['new']; - $tpl->setVar($zone); - - $records = $app->db->queryAllRecords("SELECT * FROM dns_rr WHERE zone = ".$zone['id']." AND active = 'Y'"); - $tpl->setLoop('zones',$records); - - - $filename = escapeshellcmd($dns_config['bind_zonefiles_dir'].'/pri.'.substr($zone['origin'],0,-1)); - $app->log("Writing BIND domain file: ".$filename,LOGLEVEL_DEBUG); - file_put_contents($filename,$tpl->grab()); - exec('chown '.escapeshellcmd($dns_config['bind_user']).':'.escapeshellcmd($dns_config['bind_group']).' '.$filename); - unset($tpl); - unset($records); - unset($records_out); - unset($zone); - } - - //* rebuild the named.conf file if the origin has changed or when the origin is inserted. - //if($this->action == 'insert' || $data['old']['origin'] != $data['new']['origin']) { - $this->write_named_conf($data,$dns_config); - //} - - //* Delete old domain file, if domain name has been changed - if($data['old']['origin'] != $data['new']['origin']) { - $filename = $dns_config['bind_zonefiles_dir'].'/pri.'.substr($data['old']['origin'],0,-1); - if(is_file($filename)) unset($filename); - } - - //* Reload bind nameserver - $app->services->restartServiceDelayed('bind','reload'); - - } - - function soa_delete($event_name,$data) { - global $app, $conf; - - //* load the server configuration options - $app->uses("getconf,tpl"); - $dns_config = $app->getconf->get_server_config($conf["server_id"], 'dns'); - - //* rebuild the named.conf file - $this->write_named_conf($data,$dns_config); - - //* Delete the domain file - $zone_file_name = $dns_config['bind_zonefiles_dir'].'/pri.'.substr($data['old']['origin'],0,-1); - if(is_file($zone_file_name)) unlink($zone_file_name); - $app->log("Deleting BIND domain file: ".$zone_file_name,LOGLEVEL_DEBUG); - - //* Reload bind nameserver - $app->services->restartServiceDelayed('bind','reload'); - - } - - function rr_insert($event_name,$data) { - global $app, $conf; - - //* Get the data of the soa and call soa_update - $tmp = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ".$data['new']['zone']); - $data["new"] = $tmp; - $data["old"] = $tmp; - $this->action = 'update'; - $this->soa_update($event_name,$data); - - } - - function rr_update($event_name,$data) { - global $app, $conf; - - //* Get the data of the soa and call soa_update - $tmp = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ".$data['new']['zone']); - $data["new"] = $tmp; - $data["old"] = $tmp; - $this->action = 'update'; - $this->soa_update($event_name,$data); - - } - - function rr_delete($event_name,$data) { - global $app, $conf; - - //* Get the data of the soa and call soa_update - $tmp = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ".$data['old']['zone']); - $data["new"] = $tmp; - $data["old"] = $tmp; - $this->action = 'update'; - $this->soa_update($event_name,$data); - - } - - ################################################################### - - function write_named_conf($data, $dns_config) { - global $app, $conf; - - $tmps = $app->db->queryAllRecords("SELECT origin, xfer, also_notify FROM dns_soa WHERE active = 'Y'"); - $zones = array(); - - foreach($tmps as $tmp) { - - $options = ''; - if(trim($tmp['xfer']) != '') $options .= ' allow-transfer {'.str_replace(',',';',$tmp['xfer']).";};\n"; - if(trim($tmp['also_notify']) != '') $options .= ' also-notify {'.str_replace(',',';',$tmp['also_notify']).";};\n"; - - $zones[] = array( 'zone' => substr($tmp['origin'],0,-1), - 'zonefile_path' => $dns_config['bind_zonefiles_dir'].'/pri.'.substr($tmp['origin'],0,-1), - 'options' => $options - ); - } - - $tpl = new tpl(); - $tpl->newTemplate("bind_named.conf.local.master"); - $tpl->setLoop('zones',$zones); - - file_put_contents($dns_config['named_conf_local_path'],$tpl->grab()); - $app->log("Writing BIND named.conf.local file: ".$dns_config['named_conf_local_path'],LOGLEVEL_DEBUG); - - unset($tpl); - unset($zones); - unset($tmps); - - } - - - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-available/cron_jailkit_plugin.inc.php b/interface/ispconfig/server/plugins-available/cron_jailkit_plugin.inc.php deleted file mode 100644 index 43adee1c5..000000000 --- a/interface/ispconfig/server/plugins-available/cron_jailkit_plugin.inc.php +++ /dev/null @@ -1,328 +0,0 @@ -plugins->registerEvent('cron_insert', $this->plugin_name, 'insert'); - $app->plugins->registerEvent('cron_update', $this->plugin_name, 'update'); - $app->plugins->registerEvent('cron_delete', $this->plugin_name, 'delete'); - - } - - //* This function is called, when a cron job is inserted in the database - function insert($event_name,$data) { - global $app, $conf; - - if($data["new"]["parent_domain_id"] == '') { - $app->log("Parent domain not set",LOGLEVEL_WARN); - return 0; - } - - //* get data from web - $parent_domain = $app->db->queryOneRecord("SELECT `domain_id`, `system_user`, `system_group`, `document_root`, `domain` FROM `web_domain` WHERE `domain_id` = ".intval($data["new"]["parent_domain_id"])); - if(!$parent_domain["domain_id"]) { - $app->log("Parent domain not found",LOGLEVEL_WARN); - return 0; - } elseif($parent_domain["system_user"] == 'root' or $parent_domain["system_group"] == 'root') { - $app->log("Websites (and Crons) can not be owned by the root user or group.",LOGLEVEL_WARN); - return 0; - } - - $this->parent_domain = $parent_domain; - - $app->uses('system'); - - if($app->system->is_user($parent_domain['system_user'])) { - - /** - * Setup Jailkit Chroot System If Enabled - */ - if ($data['new']['type'] == "chrooted") - { - // load the server configuration options - /* - $app->uses("getconf"); - $this->data = $data; - $this->app = $app; - $this->jailkit_config = $app->getconf->get_server_config($conf["server_id"], 'jailkit'); - $this->parent_domain = $parent_domain; - - $this->_setup_jailkit_chroot(); - - //$command .= 'usermod -U '.escapeshellcmd($parent_domain['system_user']); - //exec($command); - - $this->_add_jailkit_user(); - */ - $app->uses("getconf"); - $this->data = $data; - $this->app = $app; - $this->jailkit_config = $app->getconf->get_server_config($conf["server_id"], 'jailkit'); - - $this->_update_website_security_level(); - - $this->_setup_jailkit_chroot(); - - $this->_add_jailkit_user(); - - $command .= 'usermod -U '.escapeshellcmd($parent_domain["system_user"]); - exec($command); - - $this->_update_website_security_level(); - } - - $app->log("Jailkit Plugin (Cron) -> insert username:".$parent_domain['system_user'],LOGLEVEL_DEBUG); - - } else { - $app->log("Jailkit Plugin (Cron) -> insert username:".$parent_domain['system_user']." skipped, the user does not exist.",LOGLEVEL_WARN); - } - - } - - //* This function is called, when a cron job is updated in the database - function update($event_name,$data) { - global $app, $conf; - - if($data["new"]["parent_domain_id"] == '') { - $app->log("Parent domain not set",LOGLEVEL_WARN); - return 0; - } - //* get data from web - $parent_domain = $app->db->queryOneRecord("SELECT `domain_id`, `system_user`, `system_group`, `document_root`, `domain` FROM `web_domain` WHERE `domain_id` = ".intval($data["new"]["parent_domain_id"])); - if(!$parent_domain["domain_id"]) { - $app->log("Parent domain not found",LOGLEVEL_WARN); - return 0; - } elseif($parent_domain["system_user"] == 'root' or $parent_domain["system_group"] == 'root') { - $app->log("Websites (and Crons) can not be owned by the root user or group.",LOGLEVEL_WARN); - return 0; - } - - $app->uses('system'); - - $this->parent_domain = $parent_domain; - - if($app->system->is_user($parent_domain['system_user'])) { - - /** - * Setup Jailkit Chroot System If Enabled - */ - if ($data['new']['type'] == "chrooted") - { - $app->log("Jailkit Plugin (Cron) -> setting up jail", LOGLEVEL_DEBUG); - // load the server configuration options - /* - $app->uses("getconf"); - $this->data = $data; - $this->app = $app; - $this->jailkit_config = $app->getconf->get_server_config($conf["server_id"], 'jailkit'); - $this->parent_domain = $parent_domain; - - $this->_setup_jailkit_chroot(); - $this->_add_jailkit_user(); - */ - $app->uses("getconf"); - $this->data = $data; - $this->app = $app; - $this->jailkit_config = $app->getconf->get_server_config($conf["server_id"], 'jailkit'); - - $this->_update_website_security_level(); - - $this->_setup_jailkit_chroot(); - $this->_add_jailkit_user(); - - $this->_update_website_security_level(); - } - - $app->log("Jailkit Plugin (Cron) -> update username:".$parent_domain['system_user'],LOGLEVEL_DEBUG); - - } else { - $app->log("Jailkit Plugin (Cron) -> update username:".$parent_domain['system_user']." skipped, the user does not exist.",LOGLEVEL_WARN); - } - - } - - //* This function is called, when a cron job is deleted in the database - function delete($event_name,$data) { - global $app, $conf; - - //* nothing to do here! - - } - - function _setup_jailkit_chroot() - { - //check if the chroot environment is created yet if not create it with a list of program sections from the config - if (!is_dir($this->parent_domain['document_root'].'/etc/jailkit')) - { - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_chroot.sh'; - $command .= ' '.escapeshellcmd($this->parent_domain['document_root']); - $command .= ' \''.$this->jailkit_config['jailkit_chroot_app_sections'].'\''; - exec($command); - - $this->app->log("Added jailkit chroot with command: ".$command,LOGLEVEL_DEBUG); - - //$this->_add_jailkit_programs(); // done later on - - $this->app->load('tpl'); - - $tpl = new tpl(); - $tpl->newTemplate("bash.bashrc.master"); - - $tpl->setVar('jailkit_chroot',true); - $tpl->setVar('domain',$this->parent_domain['domain']); - $tpl->setVar('home_dir',$this->_get_home_dir("")); - - $bashrc = escapeshellcmd($this->parent_domain['document_root']).'/etc/bash.bashrc'; - if(@is_file($bashrc)) exec('rm '.$bashrc); - - file_put_contents($bashrc,$tpl->grab()); - unset($tpl); - - $this->app->log("Added bashrc scrpt : ".$bashrc,LOGLEVEL_DEBUG); - - $tpl = new tpl(); - $tpl->newTemplate("motd.master"); - - $tpl->setVar('domain',$this->parent_domain['domain']); - - $motd = escapeshellcmd($this->parent_domain['document_root']).'/var/run/motd'; - if(@is_file($motd)) exec('rm '.$motd); - - file_put_contents($motd,$tpl->grab()); - - } - $this->_add_jailkit_programs(); - } - - function _add_jailkit_programs() - { - //copy over further programs and its libraries - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_programs.sh'; - $command .= ' '.escapeshellcmd($this->parent_domain['document_root']); - $command .= ' \''.$this->jailkit_config['jailkit_chroot_app_programs'].'\''; - exec($command); - - $this->app->log("Added programs to jailkit chroot with command: ".$command,LOGLEVEL_DEBUG); - - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_programs.sh'; - $command .= ' '.escapeshellcmd($this->parent_domain['document_root']); - $command .= ' \''.$this->jailkit_config['jailkit_chroot_cron_programs'].'\''; - exec($command); - - $this->app->log("Added cron programs to jailkit chroot with command: ".$command,LOGLEVEL_DEBUG); - } - - function _add_jailkit_user() - { - //add the user to the chroot - $jailkit_chroot_userhome = $this->_get_home_dir($this->parent_domain['system_user']); - - if(!is_dir($this->parent_domain['document_root'].'/etc')) mkdir($this->parent_domain['document_root'].'/etc'); - if(!is_file($this->parent_domain['document_root'].'/etc/passwd')) exec('touch '.$this->parent_domain['document_root'].'/etc/passwd'); - - // IMPORTANT! - // ALWAYS create the user. Even if the user was created before - // if we check if the user exists, then a update (no shell -> jailkit) will not work - // and the user has FULL ACCESS to the root of the server! - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_user.sh'; - $command .= ' '.escapeshellcmd($this->parent_domain['system_user']); - $command .= ' '.escapeshellcmd($this->parent_domain['document_root']); - $command .= ' '.$jailkit_chroot_userhome; - $command .= ' '.escapeshellcmd("/bin/bash"); - exec($command); - - $this->app->log("Added jailkit user to chroot with command: ".$command,LOGLEVEL_DEBUG); - - exec("mkdir -p ".escapeshellcmd($this->parent_domain['document_root'].$jailkit_chroot_userhome)); - } - - function _get_home_dir($username) - { - return str_replace("[username]",escapeshellcmd($username),$this->jailkit_config["jailkit_chroot_home"]); - } - - //* Update the website root directory permissions depending on the security level - function _update_website_security_level() { - global $app,$conf; - - // load the server configuration options - $app->uses("getconf"); - $web_config = $app->getconf->get_server_config($conf["server_id"], 'web'); - - //* If the security level is set to high - if($web_config['security_level'] == 20) { - $this->_exec("chmod 755 ".escapeshellcmd($this->parent_domain['document_root'])); - $this->_exec("chown root:root ".escapeshellcmd($this->parent_domain['document_root'])); - } - - } - - //* Wrapper for exec function for easier debugging - private function _exec($command) { - global $app; - $app->log("exec: ".$command,LOGLEVEL_DEBUG); - exec($command); - } - - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-available/cron_plugin.inc.php b/interface/ispconfig/server/plugins-available/cron_plugin.inc.php deleted file mode 100644 index 4ee83137a..000000000 --- a/interface/ispconfig/server/plugins-available/cron_plugin.inc.php +++ /dev/null @@ -1,239 +0,0 @@ -plugins->registerEvent('cron_insert',$this->plugin_name,'insert'); - $app->plugins->registerEvent('cron_update',$this->plugin_name,'update'); - $app->plugins->registerEvent('cron_delete',$this->plugin_name,'delete'); - - } - - function insert($event_name,$data) { - global $app, $conf; - - $this->action = 'insert'; - // just run the update function - $this->update($event_name,$data); - - } - - - function update($event_name,$data) { - global $app, $conf; - - if($this->action != 'insert') $this->action = 'update'; - - // load the server configuration options - $app->uses("getconf"); - - if($data["new"]["parent_domain_id"] == '') { - $app->log("Parent domain not set",LOGLEVEL_WARN); - return 0; - } - - //* get data from web - $parent_domain = $app->db->queryOneRecord("SELECT `domain_id`, `system_user`, `system_group`, `document_root`, `hd_quota` FROM `web_domain` WHERE `domain_id` = ".intval($data["new"]["parent_domain_id"])); - if(!$parent_domain["domain_id"]) { - $app->log("Parent domain not found",LOGLEVEL_WARN); - return 0; - } elseif($parent_domain["system_user"] == 'root' or $parent_domain["system_group"] == 'root') { - $app->log("Websites (and Crons) can not be owned by the root user or group.",LOGLEVEL_WARN); - return 0; - } - - // Get the client ID - $client = $app->dbmaster->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ".intval($data["new"]["sys_groupid"])); - $client_id = intval($client["client_id"]); - unset($client); - - // Create group and user, if not exist - $app->uses("system"); - - $groupname = escapeshellcmd($parent_domain["system_group"]); - if($parent_domain["system_group"] != '' && !$app->system->is_group($parent_domain["system_group"])) { - exec("groupadd $groupname"); - $app->log("Adding the group: $groupname",LOGLEVEL_DEBUG); - } - - $username = escapeshellcmd($parent_domain["system_user"]); - if($parent_domain["system_user"] != '' && !$app->system->is_user($parent_domain["system_user"])) { - exec("useradd -d ".escapeshellcmd($parent_domain["document_root"])." -g $groupname $username -s /bin/false"); - $app->log("Adding the user: $username",LOGLEVEL_DEBUG); - } - - // Set the quota for the user - if($username != '' && $app->system->is_user($username)) { - if($parent_domain["hd_quota"] > 0){ - $blocks_soft = $parent_domain["hd_quota"] * 1024; - $blocks_hard = $blocks_soft + 1024; - } else { - $blocks_soft = $blocks_hard = 0; - } - exec("setquota -u $username $blocks_soft $blocks_hard 0 0 -a &> /dev/null"); - exec("setquota -T -u $username 604800 604800 -a &> /dev/null"); - } - - // make temp direcory writable for the apache user and the website user - exec("chmod 777 ".escapeshellcmd($parent_domain["document_root"]."/tmp")); - - /** TODO READ CRON MASTER **/ - - $this->parent_domain = $parent_domain; - $this->_write_crontab(); - - $this->action = ''; - - } - - function delete($event_name,$data) { - global $app, $conf; - - //* get data from web - $parent_domain = $app->db->queryOneRecord("SELECT `domain_id`, `system_user`, `system_group`, `document_root`, `hd_quota` FROM `web_domain` WHERE `domain_id` = ".intval($data["old"]["parent_domain_id"])); - if(!$parent_domain["domain_id"]) { - $app->log("Parent domain not found",LOGLEVEL_WARN); - return 0; - } - - // Get the client ID - $client = $app->dbmaster->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ".intval($data["old"]["sys_groupid"])); - $client_id = intval($client["client_id"]); - unset($client); - - $this->parent_domain = $parent_domain; - $this->_write_crontab(); - } - - function _write_crontab() { - global $app, $conf; - - //* load the server configuration options - $app->uses("getconf"); - - $cron_config = $app->getconf->get_server_config($conf["server_id"], 'cron'); - - //* try to find customer's mail address - - /** TODO: add possibility for client to choose mail notification! **/ - $cron_content = "MAILTO=''\n\n"; - $chr_cron_content = "MAILTO=''\n\n"; - $chr_cron_content .= "SHELL='/usr/sbin/jk_chrootsh'\n\n"; - - $cmd_count = 0; - $chr_cmd_count = 0; - - //* read all active cron jobs from database and write them to file - $cron_jobs = $app->db->queryAllRecords("SELECT `run_min`, `run_hour`, `run_mday`, `run_month`, `run_wday`, `command`, `type` FROM `cron` WHERE `parent_domain_id` = ".intval($this->parent_domain["domain_id"]) . " AND `active` = 'y'"); - if($cron_jobs && count($cron_jobs) > 0) { - foreach($cron_jobs as $job) { - $command = "{$job['run_min']}\t{$job['run_hour']}\t{$job['run_mday']}\t{$job['run_month']}\t{$job['run_wday']}"; - $command .= "\t{$this->parent_domain['system_user']}"; //* running as user - if($job['type'] == 'url') { - $command .= "\t{$cron_config['wget']} -q -O /dev/null " . escapeshellarg($job['command']) . " >/dev/null 2>&1"; - } else { - if($job['type'] == 'chrooted') { - if(substr($job['command'], 0, strlen($this->parent_domain['document_root'])) == $this->parent_domain['document_root']) { - //* delete the unneeded path part - $job['command'] = substr($job['command'], strlen($this->parent_domain['document_root'])); - } - } - - $command .= "\t"; - if(substr($job['command'], 0, 1) != "/") $command .= $this->parent_domain['document_root'].'/'; - $command .= $job['command']; - } - - if($job['type'] == 'chrooted') { - $chr_cron_content .= $command . "\n"; - $chr_cmd_count++; - } else { - $cron_content .= $command . "\n"; - $cmd_count++; - } - } - } - - $cron_file = escapeshellcmd($cron_config["crontab_dir"].'/ispc_'.$this->parent_domain["system_user"]); - if($cmd_count > 0) { - file_put_contents($cron_file, $cron_content); - $app->log("Wrote Cron file $cron_file with content:\n$cron_content",LOGLEVEL_DEBUG); - } else { - @unlink($cron_file); - $app->log("Deleted Cron file $cron_file",LOGLEVEL_DEBUG); - } - - $cron_file = escapeshellcmd($cron_config["crontab_dir"].'/ispc_chrooted_'.$this->parent_domain["system_user"]); - if($chr_cmd_count > 0) { - file_put_contents($cron_file, $chr_cron_content); - $app->log("Wrote Cron file $cron_file with content:\n$chr_cron_content",LOGLEVEL_DEBUG); - } else { - @unlink($cron_file); - $app->log("Deleted Cron file $cron_file",LOGLEVEL_DEBUG); - } - - return 0; - } - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-available/firewall_plugin.inc.php b/interface/ispconfig/server/plugins-available/firewall_plugin.inc.php deleted file mode 100644 index c3bc470cd..000000000 --- a/interface/ispconfig/server/plugins-available/firewall_plugin.inc.php +++ /dev/null @@ -1,145 +0,0 @@ -plugins->registerEvent('firewall_insert',$this->plugin_name,'insert'); - $app->plugins->registerEvent('firewall_update',$this->plugin_name,'update'); - $app->plugins->registerEvent('firewall_delete',$this->plugin_name,'delete'); - - - } - - - function insert($event_name,$data) { - global $app, $conf; - - $this->update($event_name,$data); - - } - - function update($event_name,$data) { - global $app, $conf; - - $tcp_ports = ''; - $udp_ports = ''; - - $ports = explode(',',$data["new"]["tcp_port"]); - if(is_array($ports)) { - foreach($ports as $p) { - if(strstr($p,':')) { - $p_parts = explode(':',$p); - $p_clean = intval($p_parts[0]).':'.intval($p_parts[1]); - } else { - $p_clean = intval($p); - } - $tcp_ports .= $p_clean . ' '; - } - } - $tcp_ports = trim($tcp_ports); - - $ports = explode(',',$data["new"]["udp_port"]); - if(is_array($ports)) { - foreach($ports as $p) { - if(strstr($p,':')) { - $p_parts = explode(':',$p); - $p_clean = intval($p_parts[0]).':'.intval($p_parts[1]); - } else { - $p_clean = intval($p); - } - $udp_ports .= $p_clean . ' '; - } - } - $udp_ports = trim($udp_ports); - - $app->load('tpl'); - $tpl = new tpl(); - $tpl->newTemplate("bastille-firewall.cfg.master"); - - $tpl->setVar("TCP_PUBLIC_SERVICES",$tcp_ports); - $tpl->setVar("UDP_PUBLIC_SERVICES",$udp_ports); - - file_put_contents('/etc/Bastille/bastille-firewall.cfg',$tpl->grab()); - $app->log('Writing firewall configuration /etc/Bastille/bastille-firewall.cfg',LOGLEVEL_DEBUG); - unset($tpl); - - if($data["new"]["active"] == 'y') { - exec('/etc/init.d/bastille-firewall restart'); - if(@is_file('/etc/debian_version')) exec('update-rc.d bastille-firewall defaults'); - $app->log('Restarting the firewall',LOGLEVEL_DEBUG); - } else { - exec('/etc/init.d/bastille-firewall stop'); - if(@is_file('/etc/debian_version')) exec('update-rc.d -f bastille-firewall remove'); - $app->log('Stopping the firewall',LOGLEVEL_DEBUG); - } - - - } - - function delete($event_name,$data) { - global $app, $conf; - - exec('/etc/init.d/bastille-firewall stop'); - if(@is_file('/etc/debian_version')) exec('update-rc.d -f bastille-firewall remove'); - $app->log('Stopping the firewall',LOGLEVEL_DEBUG); - - } - - - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-available/ftpuser_base_plugin.inc.php b/interface/ispconfig/server/plugins-available/ftpuser_base_plugin.inc.php deleted file mode 100644 index 04bb51b98..000000000 --- a/interface/ispconfig/server/plugins-available/ftpuser_base_plugin.inc.php +++ /dev/null @@ -1,112 +0,0 @@ -plugins->registerEvent('ftp_user_insert',$this->plugin_name,'insert'); - $app->plugins->registerEvent('ftp_user_update',$this->plugin_name,'update'); - $app->plugins->registerEvent('ftp_user_delete',$this->plugin_name,'delete'); - - - } - - - function insert($event_name,$data) { - global $app, $conf; - - if(!is_dir($data['new']['dir'])) { - $app->log("FTP User directory '".$data['new']['dir']."' does not exist. Creating it now.",LOGLEVEL_DEBUG); - - $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".intval($data['new']['parent_domain_id'])); - - exec('mkdir -p '.escapeshellcmd($data['new']['dir'])); - exec('chown '.escapeshellcmd($web["system_user"]).':'.escapeshellcmd($web['system_group']).' '.$data['new']['dir']); - - $app->log("Added ftpuser_dir: ".$data['new']['dir'],LOGLEVEL_DEBUG); - } - - } - - function update($event_name,$data) { - global $app, $conf; - - if(!is_dir($data['new']['dir'])) { - $app->log("FTP User directory '".$data['new']['dir']."' does not exist. Creating it now.",LOGLEVEL_DEBUG); - - $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".intval($data['new']['parent_domain_id'])); - - exec('mkdir -p '.escapeshellcmd($data['new']['dir'])); - exec('chown '.escapeshellcmd($web["system_user"]).':'.escapeshellcmd($web['system_group']).' '.$data['new']['dir']); - - $app->log("Added ftpuser_dir: ".$data['new']['dir'],LOGLEVEL_DEBUG); - } - } - - function delete($event_name,$data) { - global $app, $conf; - - $app->log("Ftpuser:".$data['new']['username']." deleted.",LOGLEVEL_DEBUG); - - } - - - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-available/getmail_plugin.inc.php b/interface/ispconfig/server/plugins-available/getmail_plugin.inc.php deleted file mode 100644 index 032ed437d..000000000 --- a/interface/ispconfig/server/plugins-available/getmail_plugin.inc.php +++ /dev/null @@ -1,163 +0,0 @@ -plugins->registerEvent('mail_get_insert','getmail_plugin','insert'); - $app->plugins->registerEvent('mail_get_update','getmail_plugin','update'); - $app->plugins->registerEvent('mail_get_delete','getmail_plugin','delete'); - - - - } - - function insert($event_name,$data) { - global $app, $conf; - - $this->update($event_name,$data); - - } - - function update($event_name,$data) { - global $app, $conf; - - // load the server specific configuration options for getmail - $app->uses("getconf"); - $getmail_config = $app->getconf->get_server_config($conf["server_id"], 'getmail'); - $this->getmail_config_dir = $getmail_config["getmail_config_dir"]; - - // Check if the config directory exists. - if(!is_dir($this->getmail_config_dir)) { - $app->log("Getmail config directory '".$this->getmail_config_dir."' does not exist.",LOGLEVEL_ERROR); - } else { - - // Delete the config file first, if it exists - $this->delete($event_name,$data); - - // Get the new config file path - $config_file_path = escapeshellcmd($this->getmail_config_dir.'/'.$data["new"]["source_server"].'_'.$data["new"]["source_username"].'.conf'); - if(stristr($config_file_path, "..") or stristr($config_file_path, "|") or stristr($config_file_path,";") or stristr($config_file_path,'$')) { - $app->log("Possibly faked path for getmail config file: '$config_file_path'. File is not written.",LOGLEVEL_ERROR); - return false; - } - - - if($data["new"]["active"] == 'y') { - // Open master template - $tpl = file_get_contents($conf["rootpath"].'/conf/getmail.conf.master'); - - // Shall emails be deleted after retrieval - if($data["new"]["source_delete"] == 'y') { - $tpl = str_replace('{DELETE}','1',$tpl); - } else { - $tpl = str_replace('{DELETE}','0',$tpl); - } - - // Set the data retriever - if($data["new"]["type"] == 'pop3') { - $tpl = str_replace('{TYPE}','SimplePOP3Retriever',$tpl); - } elseif ($data["new"]["type"] == 'imap') { - $tpl = str_replace('{TYPE}','SimpleIMAPRetriever',$tpl); - } elseif ($data["new"]["type"] == 'pop3ssl') { - $tpl = str_replace('{TYPE}','SimplePOP3SSLRetriever',$tpl); - } elseif ($data["new"]["type"] == 'imapssl') { - $tpl = str_replace('{TYPE}','SimpleIMAPSSLRetriever',$tpl); - } - - // Set server, username, password and destination. - $tpl = str_replace('{SERVER}',$data["new"]["source_server"],$tpl); - $tpl = str_replace('{USERNAME}',$data["new"]["source_username"],$tpl); - $tpl = str_replace('{PASSWORD}',$data["new"]["source_password"],$tpl); - $tpl = str_replace('{DESTINATION}',$data["new"]["destination"],$tpl); - - // Write the config file. - file_put_contents($config_file_path,$tpl); - $app->log("Writing Getmail config file: $config_file_path",LOGLEVEL_DEBUG); - exec("chmod 400 $config_file_path"); - exec("chown getmail $config_file_path"); - unset($tpl); - unset($config_file_path); - - } else { - // If record is set to inactive, we will delete the file - if(is_file($config_file_path)) unlink($config_file_path); - } - } - } - - function delete($event_name,$data) { - global $app, $conf; - - // load the server specific configuration options for getmail - $app->uses("getconf"); - $getmail_config = $app->getconf->get_server_config($conf["server_id"], 'getmail'); - $this->getmail_config_dir = $getmail_config["getmail_config_dir"]; - - $config_file_path = escapeshellcmd($this->getmail_config_dir.'/'.$data["old"]["source_server"].'_'.$data["old"]["source_username"].'.conf'); - if(stristr($config_file_path,"..") || stristr($config_file_path,"|") || stristr($config_file_path,";") || stristr($config_file_path,'$')) { - $app->log("Possibly faked path for getmail config file: '$config_file_path'. File is not written.",LOGLEVEL_ERROR); - return false; - } - if(is_file($config_file_path)) unlink($config_file_path); - } - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-available/mail_plugin.inc.php b/interface/ispconfig/server/plugins-available/mail_plugin.inc.php deleted file mode 100644 index bbabe660e..000000000 --- a/interface/ispconfig/server/plugins-available/mail_plugin.inc.php +++ /dev/null @@ -1,311 +0,0 @@ -plugins->registerEvent('mail_user_insert',$this->plugin_name,'user_insert'); - $app->plugins->registerEvent('mail_user_update',$this->plugin_name,'user_update'); - $app->plugins->registerEvent('mail_user_delete',$this->plugin_name,'user_delete'); - - //* Mail Domains - //$app->plugins->registerEvent('mail_domain_insert',$this->plugin_name,'domain_insert'); - //$app->plugins->registerEvent('mail_domain_update',$this->plugin_name,'domain_update'); - $app->plugins->registerEvent('mail_domain_delete',$this->plugin_name,'domain_delete'); - - //* Mail transports - $app->plugins->registerEvent('mail_transport_insert',$this->plugin_name,'transport_update'); - $app->plugins->registerEvent('mail_transport_update',$this->plugin_name,'transport_update'); - $app->plugins->registerEvent('mail_transport_delete',$this->plugin_name,'transport_update'); - - } - - - function user_insert($event_name,$data) { - global $app, $conf; - - //* get the config - $app->uses("getconf,system"); - $mail_config = $app->getconf->get_server_config($conf["server_id"], 'mail'); - - // convert to lower case - it could cause problems if some directory above has upper case name -// $data['new']['maildir'] = strtolower($data['new']['maildir']); - - $maildomain_path = $data['new']['maildir']; - $tmp_basepath = $data['new']['maildir']; - $tmp_basepath_parts = explode('/',$tmp_basepath); - unset($tmp_basepath_parts[count($tmp_basepath_parts)-1]); - $base_path = implode('/',$tmp_basepath_parts); - - - - //* Create the mail domain directory, if it does not exist - if(!empty($base_path) && !is_dir($base_path)) { - exec("su -c 'mkdir -p ".escapeshellcmd($base_path)."' ".$mail_config['mailuser_name']); - $app->log('Created Directory: '.$base_path,LOGLEVEL_DEBUG); - } - - // Dovecot uses a different mail layout with a separate 'Maildir' subdirectory. - if($mail_config['pop3_imap_daemon'] == 'dovecot') { - exec("su -c 'mkdir -p ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - $app->log('Created Directory: '.$maildomain_path,LOGLEVEL_DEBUG); - $maildomain_path .= '/Maildir'; - } - - //* When the mail user dir exists but it is not a valid maildir, remove it - if(!empty($maildomain_path) && is_dir($maildomain_path) && !is_dir($maildomain_path.'/new') && !is_dir($maildomain_path.'/cur')) { - exec("su -c 'rm -rf ".escapeshellcmd($data['new']['maildir'])."' vmail"); - $app->log("Removed invalid maildir and rebuild it: ".escapeshellcmd($data['new']['maildir']),LOGLEVEL_WARN); - } - - //* Create the maildir, if it doesn not exist, set permissions, set quota. - if(!empty($maildomain_path) && !is_dir($maildomain_path)) { - - //exec("su -c 'maildirmake ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - $app->system->maildirmake($maildomain_path,$mail_config['mailuser_name']); - - exec('chown -R '.$mail_config['mailuser_name'].':'.$mail_config['mailuser_group'].' '.escapeshellcmd($data['new']['maildir'])); - $app->log("Set ownership on ".escapeshellcmd($data['new']['maildir']),LOGLEVEL_DEBUG); - - //* This is to fix the maildrop quota not being rebuilt after the quota is changed. - if($mail_config['pop3_imap_daemon'] != 'dovecot') { - exec("su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); // Avoid maildirmake quota bug, see debian bug #214911 - $app->log('Created Maildir: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - } - } - - if(!is_dir($data['new']['maildir'].'/.Sent')) { - //exec("su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Sent: '."su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - $app->system->maildirmake($maildomain_path,$mail_config['mailuser_name'],'Sent'); - } - if(!is_dir($data['new']['maildir'].'/.Drafts')) { - //exec("su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Drafts: '."su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - $app->system->maildirmake($maildomain_path,$mail_config['mailuser_name'],'Drafts'); - } - if(!is_dir($data['new']['maildir'].'/.Trash')) { - //exec("su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Trash: '."su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - $app->system->maildirmake($maildomain_path,$mail_config['mailuser_name'],'Trash'); - } - if(!is_dir($data['new']['maildir'].'/.Junk')) { - //exec("su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Junk: '."su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - $app->system->maildirmake($maildomain_path,$mail_config['mailuser_name'],'Junk'); - } - - //* Set the maildir quota - if(is_dir($data['new']['maildir'].'/new') && $mail_config['pop3_imap_daemon'] != 'dovecot') { - exec("su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($data['new']['maildir'])."' ".$mail_config['mailuser_name']); - $app->log('Set Maildir quota: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($data['new']['maildir'])."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - } - } - - function user_update($event_name,$data) { - global $app, $conf; - - // get the config - $app->uses("getconf,system"); - $mail_config = $app->getconf->get_server_config($conf["server_id"], 'mail'); - - // convert to lower case - it could cause problems if some directory above has upper case name - // $data['new']['maildir'] = strtolower($data['new']['maildir']); - - // Create the maildir, if it does not exist - /* - if(!is_dir($data['new']['maildir'])) { - exec('mkdir -p '.escapeshellcmd($data['new']['maildir'])); - exec('chown '.$mail_config['mailuser_name'].':'.$mail_config['mailuser_group'].' '.escapeshellcmd($data['new']['maildir'])); - $app->log('Created Maildir: '.$data['new']['maildir'],LOGLEVEL_DEBUG); - } - */ - - $maildomain_path = $data['new']['maildir']; - $tmp_basepath = $data['new']['maildir']; - $tmp_basepath_parts = explode('/',$tmp_basepath); - unset($tmp_basepath_parts[count($tmp_basepath_parts)-1]); - $base_path = implode('/',$tmp_basepath_parts); - - //* Create the mail domain directory, if it does not exist - if(!empty($base_path) && !is_dir($base_path)) { - exec("su -c 'mkdir -p ".escapeshellcmd($base_path)."' ".$mail_config['mailuser_name']); - $app->log('Created Directory: '.$base_path,LOGLEVEL_DEBUG); - } - - // Dovecot uses a different mail layout with a separate 'Maildir' subdirectory. - if($mail_config['pop3_imap_daemon'] == 'dovecot') { - exec("su -c 'mkdir -p ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - $app->log('Created Directory: '.$base_path,LOGLEVEL_DEBUG); - $maildomain_path .= '/Maildir'; - } - - //* When the mail user dir exists but it is not a valid maildir, remove it - if(!empty($maildomain_path) && is_dir($maildomain_path) && !is_dir($maildomain_path.'/new') && !is_dir($maildomain_path.'/cur')) { - exec("su -c 'rm -rf ".escapeshellcmd($data['new']['maildir'])."' vmail"); - $app->log("Removed invalid maildir and rebuild it: ".escapeshellcmd($data['new']['maildir']),LOGLEVEL_WARN); - } - - //* Create the maildir, if it doesn not exist, set permissions, set quota. - if(!empty($maildomain_path) && !is_dir($maildomain_path.'/new')) { - //exec("su -c 'maildirmake ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log("Created Maildir "."su -c 'maildirmake ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - $app->system->maildirmake($maildomain_path,$mail_config['mailuser_name']); - - exec('chown -R '.$mail_config['mailuser_name'].':'.$mail_config['mailuser_group'].' '.escapeshellcmd($data['new']['maildir'])); - $app->log("Set ownership on ".escapeshellcmd($data['new']['maildir']),LOGLEVEL_DEBUG); - //* This is to fix the maildrop quota not being rebuilt after the quota is changed. - if($mail_config['pop3_imap_daemon'] != 'dovecot') { - exec("su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); // Avoid maildirmake quota bug, see debian bug #214911 - $app->log('Updated Maildir quota: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - } - } - - if(!is_dir($data['new']['maildir'].'/.Sent')) { - //exec("su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Sent: '."su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - $app->system->maildirmake($maildomain_path,$mail_config['mailuser_name'],'Sent'); - } - if(!is_dir($data['new']['maildir'].'/.Drafts')) { - //exec("su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Drafts: '."su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - $app->system->maildirmake($maildomain_path,$mail_config['mailuser_name'],'Drafts'); - } - if(!is_dir($data['new']['maildir'].'/.Trash')) { - //exec("su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Trash: '."su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - $app->system->maildirmake($maildomain_path,$mail_config['mailuser_name'],'Trash'); - } - if(!is_dir($data['new']['maildir'].'/.Junk')) { - //exec("su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Junk: '."su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - $app->system->maildirmake($maildomain_path,$mail_config['mailuser_name'],'Junk'); - } - - // Move mailbox, if domain has changed and delete old mailbox - if($data['new']['maildir'] != $data['old']['maildir'] && is_dir($data['old']['maildir'])) { - if(is_dir($data['new']['maildir'])) { - exec("rm -fr ".escapeshellcmd($data['new']['maildir'])); - //rmdir($data['new']['maildir']); - } - exec('mv -f '.escapeshellcmd($data['old']['maildir']).' '.escapeshellcmd($data['new']['maildir'])); - // exec('mv -f '.escapeshellcmd($data['old']['maildir']).'/* '.escapeshellcmd($data['new']['maildir'])); - // if(is_file($data['old']['maildir'].'.ispconfig_mailsize'))exec('mv -f '.escapeshellcmd($data['old']['maildir']).'.ispconfig_mailsize '.escapeshellcmd($data['new']['maildir'])); - // rmdir($data['old']['maildir']); - $app->log('Moved Maildir from: '.$data['old']['maildir'].' to '.$data['new']['maildir'],LOGLEVEL_DEBUG); - } - //This is to fix the maildrop quota not being rebuilt after the quota is changed. - // Courier Layout - if(is_dir($data['new']['maildir'].'/new') && $mail_config['pop3_imap_daemon'] != 'dovecot') { - exec("su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($data['new']['maildir'])."' ".$mail_config['mailuser_name']); - $app->log('Updated Maildir quota: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($data['new']['maildir'])."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - } - } - - function user_delete($event_name,$data) { - global $app, $conf; - - $old_maildir_path = escapeshellcmd($data['old']['maildir']); - if(!stristr($old_maildir_path,'..') && !stristr($old_maildir_path,'*') && strlen($old_maildir_path) >= 10) { - exec('rm -rf '.escapeshellcmd($old_maildir_path)); - $app->log('Deleted the Maildir: '.$data['old']['maildir'],LOGLEVEL_DEBUG); - } else { - $app->log('Possible security violation when deleting the maildir: '.$data['old']['maildir'],LOGLEVEL_ERROR); - } - } - - function domain_delete($event_name,$data) { - global $app, $conf; - - // get the config - $app->uses("getconf"); - $mail_config = $app->getconf->get_server_config($conf["server_id"], 'mail'); - - //* Delete maildomain path - $old_maildomain_path = escapeshellcmd($mail_config['homedir_path'].'/'.$data['old']['domain']); - if(!stristr($old_maildomain_path,'//') && !stristr($old_maildomain_path,'..') && !stristr($old_maildomain_path,'*') && !stristr($old_maildomain_path,'&') && strlen($old_maildomain_path) >= 10) { - exec('rm -rf '.escapeshellcmd($old_maildomain_path)); - $app->log('Deleted the mail domain directory: '.$old_maildomain_path,LOGLEVEL_DEBUG); - } else { - $app->log('Possible security violation when deleting the mail domain directory: '.$old_maildomain_path,LOGLEVEL_ERROR); - } - - //* Delete mailfilter path - $old_maildomain_path = escapeshellcmd($mail_config['homedir_path'].'/mailfilters/'.$data['old']['domain']); - if(!stristr($old_maildomain_path,'//') && !stristr($old_maildomain_path,'..') && !stristr($old_maildomain_path,'*') && !stristr($old_maildomain_path,'&') && strlen($old_maildomain_path) >= 10) { - exec('rm -rf '.escapeshellcmd($old_maildomain_path)); - $app->log('Deleted the mail domain mailfilter directory: '.$old_maildomain_path,LOGLEVEL_DEBUG); - } else { - $app->log('Possible security violation when deleting the mail domain mailfilter directory: '.$old_maildomain_path,LOGLEVEL_ERROR); - } - } - - function transport_update($event_name,$data) { - global $app, $conf; - - exec('/etc/init.d/postfix reload &> /dev/null'); - $app->log('Postfix config reloaded ',LOGLEVEL_DEBUG); - - } - - - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-available/maildeliver_plugin.inc.php b/interface/ispconfig/server/plugins-available/maildeliver_plugin.inc.php deleted file mode 100644 index 5e325dbf0..000000000 --- a/interface/ispconfig/server/plugins-available/maildeliver_plugin.inc.php +++ /dev/null @@ -1,131 +0,0 @@ -plugins->registerEvent('mail_user_update','maildeliver_plugin','update'); - $app->plugins->registerEvent('mail_user_delete','maildeliver_plugin','delete'); - - } - - - function update($event_name,$data) { - global $app, $conf; - - // load the server configuration options - $app->uses("getconf"); - $mail_config = $app->getconf->get_server_config($conf["server_id"], 'mail'); - if(substr($mail_config["homedir_path"],-1) == '/') { - $mail_config["homedir_path"] = substr($mail_config["homedir_path"],0,-1); - } - - if(isset($data["new"]["email"])) { - $email_parts = explode("@",$data["new"]["email"]); - } else { - $email_parts = explode("@",$data["old"]["email"]); - } - - // Write the custom mailfilter script, if mailfilter recipe has changed - if($data["old"]["custom_mailfilter"] != $data["new"]["custom_mailfilter"] - or $data["old"]["move_junk"] != $data["new"]["move_junk"] - or $data["old"]["autoresponder_text"] != $data["new"]["autoresponder_text"] - or $data["old"]["autoresponder"] != $data["new"]["autoresponder"] - or (isset($data["new"]["email"]) and $data["old"]["email"] != $data["new"]["email"]) - or $data["old"]["autoresponder_start_date"] != $data["new"]["autoresponder_start_date"] - or $data["old"]["autoresponder_end_date"] != $data["new"]["autoresponder_end_date"]) { - - $app->log("Mailfilter config has been changed",LOGLEVEL_DEBUG); - - $sieve_file = $data["new"]["maildir"].'/.sieve'; - if(is_file($sieve_file)) unlink($sieve_file) or $app->log("Unable to delete file: $sieve_file",LOGLEVEL_WARN); - - $app->load('tpl'); - - $tpl = new tpl(); - $tpl->newTemplate("sieve_filter.master"); - - // Custom filters - $tpl->setVar('custom_mailfilter',$data["new"]["custom_mailfilter"]); - - // Move junk - $tpl->setVar('move_junk',$data["new"]["move_junk"]); - - // Autoresponder - $tpl->setVar('autoresponder',$data["new"]["autoresponder"]); - $tpl->setVar('autoresponder_text',$data["new"]["autoresponder_text"]); - - file_put_contents($sieve_file,$tpl->grab()); - - unset($tpl); - - } - } - - function delete($event_name,$data) { - global $app, $conf; - - $sieve_file = $data["old"]["maildir"].'/.sieve'; - if(is_file($sieve_file)) unlink($sieve_file) or $app->log("Unable to delete file: $sieve_file",LOGLEVEL_WARN); - } - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-available/maildrop_plugin.inc.php b/interface/ispconfig/server/plugins-available/maildrop_plugin.inc.php deleted file mode 100644 index fa60380e1..000000000 --- a/interface/ispconfig/server/plugins-available/maildrop_plugin.inc.php +++ /dev/null @@ -1,240 +0,0 @@ -plugins->registerEvent('mail_user_update','maildrop_plugin','update'); - $app->plugins->registerEvent('mail_user_delete','maildrop_plugin','delete'); - - } - - - function update($event_name,$data) { - global $app, $conf; - - // load the server configuration options - $app->uses("getconf"); - $mail_config = $app->getconf->get_server_config($conf["server_id"], 'mail'); - if(substr($mail_config["homedir_path"],-1) == '/') { - $mail_config["homedir_path"] = substr($mail_config["homedir_path"],0,-1); - } - $this->mailfilter_config_dir = $mail_config["homedir_path"].'/mailfilters'; - - - // Check if the config directory exists. - if(!is_dir($this->mailfilter_config_dir)) { - $app->log("Mailfilter config directory '".$this->mailfilter_config_dir."' does not exist. Creating it now.",LOGLEVEL_WARN); - mkdir($this->mailfilter_config_dir); - exec("chown vmail ".$this->mailfilter_config_dir); - exec("chmod 770 ".$this->mailfilter_config_dir); - } - - if(isset($data["new"]["email"])) { - $email_parts = explode("@",$data["new"]["email"]); - } else { - $email_parts = explode("@",$data["old"]["email"]); - } - - // make sure that the config directories exist - if(!is_dir($this->mailfilter_config_dir.'/'.$email_parts[1])) { - mkdir($this->mailfilter_config_dir.'/'.$email_parts[1]); - exec("chown vmail ".$this->mailfilter_config_dir.'/'.$email_parts[1]); - exec("chmod 770 ".$this->mailfilter_config_dir.'/'.$email_parts[1]); - } - if(!is_dir($this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0])) { - mkdir($this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0]); - exec("chown vmail ".$this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0]); - exec("chmod 770 ".$this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0]); - } - - // Check if something has been changed regarding the autoresponders - if($data["old"]["autoresponder_text"] != $data["new"]["autoresponder_text"] - or $data["old"]["autoresponder"] != $data["new"]["autoresponder"] - or (isset($data["new"]["email"]) and $data["old"]["email"] != $data["new"]["email"]) - or $data["old"]["autoresponder_start_date"] != $data["new"]["autoresponder_start_date"] - or $data["old"]["autoresponder_end_date"] != $data["new"]["autoresponder_end_date"]) { - - // We delete the old autoresponder, if it exists - $email_parts = explode("@",$data["old"]["email"]); - $file = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.vacation.lock'; - if(is_file($file)) unlink($file) or $app->log("Unable to delete file: $file",LOGLEVEL_WARN); - $file = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.vacation.lst'; - if(is_file($file)) unlink($file) or $app->log("Unable to delete file: $file",LOGLEVEL_WARN); - $file = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.vacation.lst.gdbm'; - if(is_file($file)) unlink($file) or $app->log("Unable to delete file: $file",LOGLEVEL_WARN); - $file = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.vacation.lst.lock'; - if(is_file($file)) unlink($file) or $app->log("Unable to delete file: $file",LOGLEVEL_WARN); - $file = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.vacation.msg'; - if(is_file($file)) unlink($file) or $app->log("Unable to delete file: $file",LOGLEVEL_WARN); - $file = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.autoresponder'; - if(is_file($file)) unlink($ar_file) or $app->log("Unable to delete file: $ar_file",LOGLEVEL_WARN); - - - //Now we create the new autoresponder, if it is enabled - if($data["new"]["autoresponder"] == 'y') { - if(isset($data["new"]["email"])) { - $email_parts = explode("@",$data["new"]["email"]); - } else { - $email_parts = explode("@",$data["old"]["email"]); - } - - // Load the master template - $tpl = file_get_contents($conf["rootpath"].'/conf/autoresponder.master'); - $tpl = str_replace('{vmail_mailbox_base}',$mail_config["homedir_path"],$tpl); - - if ($data["new"]["autoresponder_start_date"] != '0000-00-00 00:00:00') { // Dates have been set - $tpl = str_replace('{start_date}',strtotime($data["new"]["autoresponder_start_date"]),$tpl); - $tpl = str_replace('{end_date}',strtotime($data["new"]["autoresponder_end_date"]),$tpl); - } else { - $tpl = str_replace('{start_date}',-7200,$tpl); - $tpl = str_replace('{end_date}',2147464800,$tpl); - } - - // Write the config file. - $config_file_path = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.autoresponder'; - file_put_contents($config_file_path,$tpl); - $app->log("Writing Autoresponder mailfilter file: $config_file_path",LOGLEVEL_DEBUG); - exec("chmod 770 $config_file_path"); - exec("chown vmail $config_file_path"); - unset($tpl); - unset($config_file_path); - - // Write the autoresponder message file - $config_file_path = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.vacation.msg'; - file_put_contents($config_file_path,$data["new"]["autoresponder_text"]); - exec("chmod 770 $config_file_path"); - exec("chown vmail $config_file_path"); - $app->log("Writing Autoresponder message file: $config_file_path",LOGLEVEL_DEBUG); - } - } - - // Write the custom mailfilter script, if mailfilter recipe has changed - if($data["old"]["custom_mailfilter"] != $data["new"]["custom_mailfilter"] or - $data["old"]["move_junk"] != $data["new"]["move_junk"]) { - $app->log("Mailfilter config has been changed",LOGLEVEL_DEBUG); - if(trim($data["new"]["custom_mailfilter"]) != '' or $data["new"]["move_junk"] != 'n') { - // Delete the old filter recipe - $email_parts = explode("@",$data["old"]["email"]); - $file = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.mailfilter'; - if(is_file($file)) unlink($file) or $app->log("Unable to delete file: $file",LOGLEVEL_WARN); - - // write the new recipe - if(isset($data["new"]["email"])) { - $email_parts = explode("@",$data["new"]["email"]); - } else { - $email_parts = explode("@",$data["old"]["email"]); - } - $config_file_path = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.mailfilter'; - - $mailfilter_content = ''; - if($data["new"]["move_junk"] == 'y') { - $mailfilter_content .= file_get_contents($conf["rootpath"].'/conf/mailfilter_move_junk.master')."\n"; - } - $mailfilter_content .= $data["new"]["custom_mailfilter"]; - - file_put_contents($config_file_path,$mailfilter_content); - $app->log("Writing new custom Mailfiter".$config_file_path,LOGLEVEL_DEBUG); - exec("chmod 770 $config_file_path"); - exec("chown vmail $config_file_path"); - unset($config_file_path); - } else { - // Delete the mailfilter recipe - $email_parts = explode("@",$data["old"]["email"]); - $file = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.mailfilter'; - if(is_file($file)) unlink($file) or $app->log("Unable to delete file: $file",LOGLEVEL_WARN); - $app->log("Deleting custom Mailfiter".$file,LOGLEVEL_DEBUG); - } - //} - } - } - - function delete($event_name,$data) { - global $app, $conf; - - // load the server configuration options - $app->uses("getconf"); - $mail_config = $app->getconf->get_server_config($conf["server_id"], 'mail'); - $this->mailfilter_config_dir = $mail_config["homedir_path"].'/mailfilters'; - - $email_parts = explode("@",$data["old"]["email"]); - $dir = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0]; - if(is_dir($dir)) { - $file = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.vacation.lock'; - if(is_file($file)) unlink($file) or $app->log("Unable to delete file: $file",LOGLEVEL_WARN); - $file = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.vacation.lst'; - if(is_file($file)) unlink($file) or $app->log("Unable to delete file: $file",LOGLEVEL_WARN); - $file = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.vacation.msg'; - if(is_file($file)) unlink($file) or $app->log("Unable to delete file: $file",LOGLEVEL_WARN); - $file = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.autoresponder'; - if(is_file($file)) unlink($file) or $app->log("Unable to delete file: $file",LOGLEVEL_WARN); - $file = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.mailfilter'; - if(is_file($file)) unlink($file) or $app->log("Unable to delete file: $file",LOGLEVEL_WARN); - $file = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.vacation.lst.gdbm'; - if(is_file($file)) unlink($file) or $app->log("Unable to delete file: $file",LOGLEVEL_WARN); - $file = $this->mailfilter_config_dir.'/'.$email_parts[1].'/'.$email_parts[0].'/.vacation.lst.lock'; - if(is_file($file)) unlink($file) or $app->log("Unable to delete file: $file",LOGLEVEL_WARN); - rmdir($dir) or $app->log("Unable to delete directory: $dir",LOGLEVEL_WARN); - } - } - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-available/mysql_clientdb_plugin.inc.php b/interface/ispconfig/server/plugins-available/mysql_clientdb_plugin.inc.php deleted file mode 100644 index 6b2651d60..000000000 --- a/interface/ispconfig/server/plugins-available/mysql_clientdb_plugin.inc.php +++ /dev/null @@ -1,305 +0,0 @@ -plugins->registerEvent('database_insert',$this->plugin_name,'db_insert'); - $app->plugins->registerEvent('database_update',$this->plugin_name,'db_update'); - $app->plugins->registerEvent('database_delete',$this->plugin_name,'db_delete'); - - - } - - function process_host_list($action, $database_name, $database_user, $database_password, $host_list, $link, $database_rename_user = "") { - global $app; - - $action = strtoupper($action); - - // set to all hosts if none given - if(trim($host_list) == "") $host_list = "%"; - - // process arrays and comma separated strings - if(!is_array($host_list)) $host_list = split(",", $host_list); - - $success = true; - - // loop through hostlist - foreach($host_list as $db_host) { - $db_host = trim($db_host); - - // check if entry is valid ip address - $valid = true; - if($db_host == "%") { - $valid = true; - } elseif(preg_match("/^[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}$/", $db_host)) { - $groups = explode(".", $db_host); - foreach($groups as $group){ - if($group<0 OR $group>255) - $valid=false; - } - } else { - $valid = false; - } - - if($valid == false) continue; - - if($action == "GRANT") { - if(!mysql_query("GRANT ALL ON ".mysql_real_escape_string($database_name,$link).".* TO '".mysql_real_escape_string($database_user,$link)."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($database_password,$link)."';",$link)) $success = false; - } elseif($action == "REVOKE") { - //mysql_query("REVOKE ALL PRIVILEGES ON ".mysql_real_escape_string($database_name,$link).".* FROM '".mysql_real_escape_string($database_user,$link)."';",$link); - } elseif($action == "DROP") { - if(!mysql_query("DROP USER '".mysql_real_escape_string($database_user,$link)."'@'$db_host';",$link)) $success = false; - } elseif($action == "RENAME") { - if(!mysql_query("RENAME USER '".mysql_real_escape_string($database_user,$link)."'@'$db_host' TO '".mysql_real_escape_string($database_rename_user,$link)."'@'$db_host'",$link)) $success = false; - } elseif($action == "PASSWORD") { - if(!mysql_query("SET PASSWORD FOR '".mysql_real_escape_string($database_user,$link)."'@'$db_host' = PASSWORD('".mysql_real_escape_string($database_password,$link)."');",$link)) $success = false; - } - } - - return $success; - } - - function db_insert($event_name,$data) { - global $app, $conf; - - if($data["new"]["type"] == 'mysql') { - if(!include(ISPC_LIB_PATH.'/mysql_clientdb.conf')) { - $app->log('Unable to open'.ISPC_LIB_PATH.'/mysql_clientdb.conf',LOGLEVEL_ERROR); - return; - } - - //* Connect to the database - $link = mysql_connect($clientdb_host, $clientdb_user, $clientdb_password); - if (!$link) { - $app->log('Unable to connect to the database'.mysql_error($link),LOGLEVEL_ERROR); - return; - } - - // Charset for the new table - if($data["new"]["database_charset"] != '') { - $query_charset_table = ' DEFAULT CHARACTER SET '.$data["new"]["database_charset"]; - } else { - $query_charset_table = ''; - } - - //* Create the new database - if (mysql_query('CREATE DATABASE '.mysql_real_escape_string($data["new"]["database_name"]).$query_charset_table,$link)) { - $app->log('Created MySQL database: '.$data["new"]["database_name"],LOGLEVEL_DEBUG); - } else { - $app->log('Unable to connect to the database'.mysql_error($link),LOGLEVEL_ERROR); - } - - // Create the database user if database is active - if($data["new"]["active"] == 'y') { - - if($data["new"]["remote_access"] == 'y') { - $this->process_host_list("GRANT", $data["new"]["database_name"], $data["new"]["database_user"], $data["new"]["database_password"], $data["new"]["remote_ips"], $link); - } - - $db_host = 'localhost'; - mysql_query("GRANT ALL ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($data["new"]["database_password"],$link)."';",$link); - - - } - - mysql_query("FLUSH PRIVILEGES;",$link); - mysql_close($link); - } - } - - function db_update($event_name,$data) { - global $app, $conf; - - if($data["new"]["type"] == 'mysql') { - if(!include(ISPC_LIB_PATH.'/mysql_clientdb.conf')) { - $app->log('Unable to open'.ISPC_LIB_PATH.'/mysql_clientdb.conf',LOGLEVEL_ERROR); - return; - } - - //* Connect to the database - $link = mysql_connect($clientdb_host, $clientdb_user, $clientdb_password); - if (!$link) { - $app->log('Unable to connect to the database'.mysql_error($link),LOGLEVEL_ERROR); - return; - } - - // Create the database user if database was disabled before - if($data["new"]["active"] == 'y' && $data["old"]["active"] == 'n') { - - if($data["new"]["remote_access"] == 'y') { - $this->process_host_list("GRANT", $data["new"]["database_name"], $data["new"]["database_user"], $data["new"]["database_password"], $data["new"]["remote_ips"], $link); - } - - $db_host = 'localhost'; - mysql_query("GRANT ALL ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($data["new"]["database_password"],$link)."';",$link); - - // mysql_query("GRANT ALL ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($data["new"]["database_password"],$link)."';",$link); - //echo "GRANT ALL ON ".mysql_real_escape_string($data["new"]["database_name"]).".* TO '".mysql_real_escape_string($data["new"]["database_user"])."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($data["new"]["database_password"])."';"; - } - - // Remove database user, if inactive - if($data["new"]["active"] == 'n' && $data["old"]["active"] == 'y') { - - if($data["old"]["remote_access"] == 'y') { - $this->process_host_list("DROP", "", $data["old"]["database_user"], "", $data["old"]["remote_ips"], $link); - } - - $db_host = 'localhost'; - mysql_query("DROP USER '".mysql_real_escape_string($data["old"]["database_user"],$link)."'@'$db_host';",$link); - - - //mysql_query("REVOKE ALL PRIVILEGES ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* FROM '".mysql_real_escape_string($data["new"]["database_user"],$link)."';",$link); - } - - //* Rename User - if($data["new"]["database_user"] != $data["old"]["database_user"]) { - $db_host = 'localhost'; - mysql_query("RENAME USER '".mysql_real_escape_string($data["old"]["database_user"],$link)."'@'$db_host' TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host'",$link); - if($data["old"]["remote_access"] == 'y') { - $this->process_host_list("RENAME", "", $data["new"]["database_user"], "", $data["new"]["remote_ips"], $link, $data["new"]["database_user"]); - } - $app->log('Renaming mysql user: '.$data["old"]["database_user"].' to '.$data["new"]["database_user"],LOGLEVEL_DEBUG); - } - - //* Remote access option has changed. - if($data["new"]["remote_access"] != $data["old"]["remote_access"]) { - - //* revoke old priveliges - //mysql_query("REVOKE ALL PRIVILEGES ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* FROM '".mysql_real_escape_string($data["new"]["database_user"],$link)."';",$link); - - //* set new priveliges - if($data["new"]["remote_access"] == 'y') { - $this->process_host_list("GRANT", $data["new"]["database_name"], $data["new"]["database_user"], $data["new"]["database_password"], $data["new"]["remote_ips"], $link); - } else { - $this->process_host_list("DROP", "", $data["old"]["database_user"], "", $data["old"]["remote_ips"], $link); - } - $app->log('Changing mysql remote access priveliges for database: '.$data["new"]["database_name"],LOGLEVEL_DEBUG); - } elseif($data["new"]["remote_access"] == 'y' && $data["new"]["remote_ips"] != $data["old"]["remote_ips"]) { - //* Change remote access list - $this->process_host_list("DROP", "", $data["old"]["database_user"], "", $data["old"]["remote_ips"], $link); - $this->process_host_list("GRANT", $data["new"]["database_name"], $data["new"]["database_user"], $data["new"]["database_password"], $data["new"]["remote_ips"], $link); - } - - //* Change password - if($data["new"]["database_password"] != $data["old"]["database_password"]) { - $db_host = 'localhost'; - mysql_query("SET PASSWORD FOR '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host' = PASSWORD('".mysql_real_escape_string($data["new"]["database_password"],$link)."');",$link); - - if($data["new"]["remote_access"] == 'y') { - $this->process_host_list("PASSWORD", "", $data["new"]["database_user"], $data["new"]["database_password"], $data["new"]["remote_ips"], $link); - } - $app->log('Changing mysql user password for: '.$data["new"]["database_user"],LOGLEVEL_DEBUG); - } - - mysql_query("FLUSH PRIVILEGES;",$link); - mysql_close($link); - } - - } - - function db_delete($event_name,$data) { - global $app, $conf; - - if($data["old"]["type"] == 'mysql') { - if(!include(ISPC_LIB_PATH.'/mysql_clientdb.conf')) { - $app->log('Unable to open'.ISPC_LIB_PATH.'/mysql_clientdb.conf',LOGLEVEL_ERROR); - return; - } - - //* Connect to the database - $link = mysql_connect($clientdb_host, $clientdb_user, $clientdb_password); - if (!$link) { - $app->log('Unable to connect to the database'.mysql_error($link),LOGLEVEL_ERROR); - return; - } - - //* Get the db host setting for the access priveliges - if($data["old"]["remote_access"] == 'y') { - if($this->process_host_list("DROP", "", $data["old"]["database_user"], "", $data["old"]["remote_ips"], $link)) { - $app->log('Dropping mysql user: '.$data["old"]["database_user"],LOGLEVEL_DEBUG); - } else { - $app->log('Error while dropping mysql user: '.$data["old"]["database_user"].' '.mysql_error($link),LOGLEVEL_ERROR); - } - } - $db_host = 'localhost'; - if(mysql_query("DROP USER '".mysql_real_escape_string($data["old"]["database_user"],$link)."'@'$db_host';",$link)) { - $app->log('Dropping mysql user: '.$data["old"]["database_user"],LOGLEVEL_DEBUG); - } else { - $app->log('Error while dropping mysql user: '.$data["old"]["database_user"].' '.mysql_error($link),LOGLEVEL_ERROR); - } - - if(mysql_query('DROP DATABASE '.mysql_real_escape_string($data["old"]["database_name"],$link),$link)) { - $app->log('Dropping mysql database: '.$data["old"]["database_name"],LOGLEVEL_DEBUG); - } else { - $app->log('Error while dropping mysql database: '.$data["old"]["database_name"].' '.mysql_error($link),LOGLEVEL_ERROR); - } - - mysql_query("FLUSH PRIVILEGES;",$link); - mysql_close($link); - } - - - } - - - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-available/network_settings_plugin.inc.php b/interface/ispconfig/server/plugins-available/network_settings_plugin.inc.php deleted file mode 100644 index cfe33c7a2..000000000 --- a/interface/ispconfig/server/plugins-available/network_settings_plugin.inc.php +++ /dev/null @@ -1,289 +0,0 @@ -plugins->registerEvent('server_insert','network_settings_plugin','insert'); - $app->plugins->registerEvent('server_update','network_settings_plugin','update'); - - $app->plugins->registerEvent('server_ip_insert','network_settings_plugin','insert'); - $app->plugins->registerEvent('server_ip_update','network_settings_plugin','update'); - - - - } - - function insert($event_name,$data) { - global $app, $conf; - - $this->update($event_name,$data); - - } - - // The purpose of this plugin is to rewrite the main.cf file - function update($event_name,$data) { - global $app, $conf; - - // get the config - $app->uses("getconf"); - $server_config = $app->getconf->get_server_config($conf["server_id"], 'server'); - - // Configure the debian network card settings - if($server_config['auto_network_configuration'] == 'y') { - - if (is_file('/etc/debian_version')) - { - copy('/etc/network/interfaces','/etc/network/interfaces~'); - - $app->load('tpl'); - - $network_tpl = new tpl(); - $network_tpl->newTemplate("debian_network_interfaces.master"); - - $network_tpl->setVar('ip_address',$server_config["ip_address"]); - $network_tpl->setVar('netmask',$server_config["netmask"]); - $network_tpl->setVar('gateway',$server_config["gateway"]); - $network_tpl->setVar('broadcast',$this->broadcast($server_config["ip_address"],$server_config["netmask"])); - $network_tpl->setVar('network',$this->network($server_config["ip_address"],$server_config["netmask"])); - - $records = $app->db->queryAllRecords("SELECT ip_address FROM server_ip WHERE server_id = ".intval($conf["server_id"]) . " order by ip_address"); - $ip_records = array(); - $additionl_ip_records = 0; - $n = 0; - if(is_array($records)) { - foreach($records as $rec) { - /* - * don't insert the main-ip again! - */ - if ($rec['ip_address'] != $server_config["ip_address"]) - { - $ip_records[$n] = array( - 'id' => $n, - 'ip_address' => $rec['ip_address'], - 'netmask' => $server_config["netmask"], - 'gateway' => $server_config["gateway"], - 'broadcast' => $this->broadcast($rec['ip_address'],$server_config["netmask"]), - 'network' => $this->network($rec['ip_address'],$server_config["netmask"]) - ); - $additionl_ip_records = 1; - $n++; - } - } - } - - /* - * If we have more than 1 IP we have to add the main-ip at the end - * of the network-ip-list. If we don't do so, there may be problems - * in multi-server-settings (with the acces from other server to the - * main-server) because the LAST IP in the list is the IP mysql uses - * to determine the host, the user is logging in from. - */ - if ($additionl_ip_records != 0) - { - $swap["ip_address"] = $ip_records[$n-1]["ip_address"]; - $swap["netmask"] = $ip_records[$n-1]["netmask"]; - $swap["gateway"] = $ip_records[$n-1]["gateway"]; - - $ip_records[$n-1] = array( - 'id' => $n-1, - 'ip_address' => $server_config['ip_address'], - 'netmask' => $server_config["netmask"], - 'gateway' => $server_config["gateway"], - 'broadcast' => $this->broadcast($server_config['ip_address'],$server_config["netmask"]), - 'network' => $this->network($server_config['ip_address'],$server_config["netmask"]) - ); - $network_tpl->setVar('ip_address',$swap["ip_address"]); - $network_tpl->setVar('netmask',$swap["netmask"]); - $network_tpl->setVar('gateway',$swap["gateway"]); - $network_tpl->setVar('broadcast',$this->broadcast($swap["ip_address"],$swap["netmask"])); - $network_tpl->setVar('network',$this->network($swap["ip_address"],$swap["netmask"])); - } - - $network_tpl->setVar('additionl_ip_records',$additionl_ip_records); - $network_tpl->setLoop('interfaces',$ip_records); - file_put_contents('/etc/network/interfaces',$network_tpl->grab()); - unset($network_tpl); - - $app->log("Changed Network settings",LOGLEVEL_DEBUG); - exec('/etc/init.d/networking force-reload'); - } - elseif (is_file('/etc/gentoo-release')) - { - copy('/etc/conf.d/net','/etc/conf.d/net~'); - - $app->load('tpl'); - - $network_tpl = new tpl(); - $network_tpl->newTemplate("gentoo_network_interfaces.master"); - - $network_tpl->setVar('ip_address',$server_config["ip_address"]); - $network_tpl->setVar('netmask',$server_config["netmask"]); - $network_tpl->setVar('gateway',$server_config["gateway"]); - $network_tpl->setVar('broadcast',$this->broadcast($server_config["ip_address"],$server_config["netmask"])); - - $records = $app->db->queryAllRecords("SELECT ip_address FROM server_ip WHERE server_id = ".intval($conf["server_id"]) . " order by ip_address"); - $ip_records = array(); - $additionl_ip_records = 0; - $n = 0; - if(is_array($records)) { - foreach($records as $rec) { - /* - * don't insert the main-ip again! - */ - if ($rec['ip_address'] != $server_config["ip_address"]) - { - $ip_records[$n] = array( - 'id' => $n, - 'ip_address' => $rec['ip_address'], - 'netmask' => $server_config["netmask"], - 'gateway' => $server_config["gateway"], - 'broadcast' => $this->broadcast($rec['ip_address'],$server_config["netmask"]) - ); - $additionl_ip_records = 1; - $n++; - } - } - } - - /* - * If we have more than 1 IP we have to add the main-ip at the end - * of the network-ip-list. If we don't do so, there may be problems - * in multi-server-settings (with the acces from other server to the - * main-server) because the LAST IP in the list is the IP mysql uses - * to determine the host, the user is logging in from. - */ - if ($additionl_ip_records != 0) - { - $swap["ip_address"] = $ip_records[$n-1]["ip_address"]; - $swap["netmask"] = $ip_records[$n-1]["netmask"]; - $swap["gateway"] = $ip_records[$n-1]["gateway"]; - - $ip_records[$n-1] = array( - 'id' => $n-1, - 'ip_address' => $server_config['ip_address'], - 'netmask' => $server_config["netmask"], - 'gateway' => $server_config["gateway"], - 'broadcast' => $this->broadcast($server_config['ip_address'],$server_config["netmask"]) - ); - $network_tpl->setVar('ip_address',$swap["ip_address"]); - $network_tpl->setVar('netmask',$swap["netmask"]); - $network_tpl->setVar('gateway',$swap["gateway"]); - $network_tpl->setVar('broadcast',$this->broadcast($swap["ip_address"],$swap["netmask"])); - } - - $network_tpl->setVar('additionl_ip_records',$additionl_ip_records); - $network_tpl->setLoop('interfaces',$ip_records); - file_put_contents('/etc/conf.d/net',$network_tpl->grab()); - unset($network_tpl); - - $app->log("Changed Network settings",LOGLEVEL_DEBUG); - exec('/etc/init.d/net.eth0 restart'); - } - else { - $app->log("Network configuration not available for this linux distribution.",LOGLEVEL_DEBUG); - } - - } else { - $app->log("Network configuration disabled in server settings.",LOGLEVEL_WARN); - } - - } - - function network($ip, $netmask){ - $netmask = $this->netmask($netmask); - list($f1,$f2,$f3,$f4) = explode(".", $netmask); - $netmask_bin = str_pad(decbin($f1),8,"0",STR_PAD_LEFT).str_pad(decbin($f2),8,"0",STR_PAD_LEFT).str_pad(decbin($f3),8,"0",STR_PAD_LEFT).str_pad(decbin($f4),8,"0",STR_PAD_LEFT); - list($f1,$f2,$f3,$f4) = explode(".", $ip); - $ip_bin = str_pad(decbin($f1),8,"0",STR_PAD_LEFT).str_pad(decbin($f2),8,"0",STR_PAD_LEFT).str_pad(decbin($f3),8,"0",STR_PAD_LEFT).str_pad(decbin($f4),8,"0",STR_PAD_LEFT); - for($i=0;$i<32;$i++){ - $network_bin .= substr($netmask_bin,$i,1) * substr($ip_bin,$i,1); - } - $network_bin = wordwrap($network_bin, 8, ".", 1); - list($f1,$f2,$f3,$f4) = explode(".", trim($network_bin)); - return bindec($f1).".".bindec($f2).".".bindec($f3).".".bindec($f4); - } - - function broadcast($ip, $netmask){ - $netmask = $this->netmask($netmask); - $binary_netmask = $this->binary_netmask($netmask); - list($f1,$f2,$f3,$f4) = explode(".", $ip); - $ip_bin = str_pad(decbin($f1),8,"0",STR_PAD_LEFT).str_pad(decbin($f2),8,"0",STR_PAD_LEFT).str_pad(decbin($f3),8,"0",STR_PAD_LEFT).str_pad(decbin($f4),8,"0",STR_PAD_LEFT); - $broadcast_bin = str_pad(substr($ip_bin, 0, $binary_netmask),32,"1",STR_PAD_RIGHT); - $broadcast_bin = wordwrap($broadcast_bin, 8, ".", 1); - list($f1,$f2,$f3,$f4) = explode(".", trim($broadcast_bin)); - return bindec($f1).".".bindec($f2).".".bindec($f3).".".bindec($f4); - } - - function netmask($netmask){ - list($f1,$f2,$f3,$f4) = explode(".", trim($netmask)); - $bin = str_pad(decbin($f1),8,"0",STR_PAD_LEFT).str_pad(decbin($f2),8,"0",STR_PAD_LEFT).str_pad(decbin($f3),8,"0",STR_PAD_LEFT).str_pad(decbin($f4),8,"0",STR_PAD_LEFT); - $parts = explode("0", $bin); - $bin = str_pad($parts[0], 32, "0", STR_PAD_RIGHT); - $bin = wordwrap($bin, 8, ".", 1); - list($f1,$f2,$f3,$f4) = explode(".", trim($bin)); - return bindec($f1).".".bindec($f2).".".bindec($f3).".".bindec($f4); - } - - function binary_netmask($netmask){ - list($f1,$f2,$f3,$f4) = explode(".", trim($netmask)); - $bin = str_pad(decbin($f1),8,"0",STR_PAD_LEFT).str_pad(decbin($f2),8,"0",STR_PAD_LEFT).str_pad(decbin($f3),8,"0",STR_PAD_LEFT).str_pad(decbin($f4),8,"0",STR_PAD_LEFT); - $parts = explode("0", $bin); - return substr_count($parts[0], "1"); - } - -} // end class - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-available/pma_symlink_plugin.inc.php b/interface/ispconfig/server/plugins-available/pma_symlink_plugin.inc.php deleted file mode 100644 index bbc32631f..000000000 --- a/interface/ispconfig/server/plugins-available/pma_symlink_plugin.inc.php +++ /dev/null @@ -1,121 +0,0 @@ -plugins->registerEvent('web_domain_insert',$this->plugin_name,'insert'); - $app->plugins->registerEvent('web_domain_update',$this->plugin_name,'update'); - } - - function insert($event_name,$data) { - global $app, $conf; - - $this->action = 'insert'; - // just run the update function - $this->update($event_name,$data); - } - - function update($event_name,$data) { - global $app, $conf; - - if($this->action != 'insert') $this->action = 'update'; - - if($data["new"]["type"] != "vhost" && $data["new"]["parent_domain_id"] > 0) { - - $old_parent_domain_id = intval($data["old"]["parent_domain_id"]); - $new_parent_domain_id = intval($data["new"]["parent_domain_id"]); - - // If the parent_domain_id has been chenged, we will have to update the old site as well. - if($this->action == 'update' && $data["new"]["parent_domain_id"] != $data["old"]["parent_domain_id"]) { - $tmp = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$old_parent_domain_id." AND active = 'y'"); - $data["new"] = $tmp; - $data["old"] = $tmp; - $this->action = 'update'; - $this->update($event_name,$data); - } - - // This is not a vhost, so we need to update the parent record instead. - $tmp = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$new_parent_domain_id." AND active = 'y'"); - $data["new"] = $tmp; - $data["old"] = $tmp; - $this->action = 'update'; - } - - if($data["new"]["document_root"] == '') { - $app->log("document_root not set",LOGLEVEL_WARN); - return 0; - } - - $symlink = true; - if($data["new"]["php"] == "suphp") $symlink = false; - elseif($data["new"]["php"] == "cgi" && $data["new"]["suexec"] == "y") $symlink = false; - elseif($data["new"]["php"] == "fast-cgi" && $data["new"]["suexec"] == "y") $symlink = false; - - - if(!is_dir($data["new"]["document_root"]."/web")) exec("mkdir -p ".$data["new"]["document_root"]."/web"); - if($symlink == false) { - if(is_link($data["new"]["document_root"]."/web/phpmyadmin")) exec("rm -f ".$data["new"]["document_root"]."/web/phpmyadmin"); - } else { - if(!is_link($data["new"]["document_root"]."/web/phpmyadmin")) exec("ln -s /var/www/phpmyadmin ".$data["new"]["document_root"]."/web/phpmyadmin"); - else exec("ln -sf /var/www/phpmyadmin ".$data["new"]["document_root"]."/web/phpmyadmin"); - } - } - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-available/postfix_filter_plugin.inc.php b/interface/ispconfig/server/plugins-available/postfix_filter_plugin.inc.php deleted file mode 100644 index 6b5ed5373..000000000 --- a/interface/ispconfig/server/plugins-available/postfix_filter_plugin.inc.php +++ /dev/null @@ -1,153 +0,0 @@ -plugins->registerEvent('mail_content_filter_insert','postfix_filter_plugin','insert'); - $app->plugins->registerEvent('mail_content_filter_update','postfix_filter_plugin','update'); - $app->plugins->registerEvent('mail_content_filter_delete','postfix_filter_plugin','delete'); - - - - } - - function insert($event_name,$data) { - global $app, $conf; - - $this->update($event_name,$data); - - } - - function update($event_name,$data) { - global $app, $conf; - - $type = $data["new"]["type"]; - if($type != '') { - $sql = "SELECT * FROM mail_content_filter WHERE server_id = ".intval($conf["server_id"])." AND type = '".$app->db->quote($type)."' AND active = 'y'"; - $rules = $app->db->queryAllRecords($sql); - $content = ''; - foreach($rules as $rule) { - $content .= $rule["pattern"]."\n"; - $content .= " ".$rule["action"]." ".$rule["data"]."\n"; - } - - if($type == 'header') { - file_put_contents('/etc/postfix/header_checks',$content); - $app->log("Writing /etc/postfix/header_checks",LOGLEVEL_DEBUG); - } - - if($type == 'mime_header') { - file_put_contents('/etc/postfix/mime_header_checks',$content); - $app->log("Writing /etc/postfix/mime_header_checks",LOGLEVEL_DEBUG); - } - - if($type == 'nested_header') { - file_put_contents('/etc/postfix/nested_header_checks',$content); - $app->log("Writing /etc/postfix/nested_header_checks",LOGLEVEL_DEBUG); - } - - if($type == 'body') { - file_put_contents('/etc/postfix/body_checks',$content); - $app->log("Writing /etc/postfix/body_checks",LOGLEVEL_DEBUG); - } - } - - $type = $data["old"]["type"]; - if($type != '') { - $sql = "SELECT * FROM mail_content_filter WHERE server_id = ".intval($conf["server_id"])." AND type = '".$app->db->quote($type)."' AND active = 'y'"; - $rules = $app->db->queryAllRecords($sql); - $content = ''; - foreach($rules as $rule) { - $content .= $rule["pattern"]."\n"; - $content .= " ".$rule["action"]." ".$rule["data"]."\n"; - } - - if($type == 'header') { - file_put_contents('/etc/postfix/header_checks',$content); - $app->log("Writing /etc/postfix/header_checks",LOGLEVEL_DEBUG); - } - - if($type == 'mime_header') { - file_put_contents('/etc/postfix/mime_header_checks',$content); - $app->log("Writing /etc/postfix/mime_header_checks",LOGLEVEL_DEBUG); - } - - if($type == 'nested_header') { - file_put_contents('/etc/postfix/nested_header_checks',$content); - $app->log("Writing /etc/postfix/nested_header_checks",LOGLEVEL_DEBUG); - } - - if($type == 'body') { - file_put_contents('/etc/postfix/body_checks',$content); - $app->log("Writing /etc/postfix/body_checks",LOGLEVEL_DEBUG); - } - } - } - - function delete($event_name,$data) { - global $app, $conf; - - $this->update($event_name,$data); - } - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-available/postfix_server_plugin.inc.php b/interface/ispconfig/server/plugins-available/postfix_server_plugin.inc.php deleted file mode 100644 index f506ce32a..000000000 --- a/interface/ispconfig/server/plugins-available/postfix_server_plugin.inc.php +++ /dev/null @@ -1,116 +0,0 @@ -plugins->registerEvent('server_insert','postfix_server_plugin','insert'); - $app->plugins->registerEvent('server_update','postfix_server_plugin','update'); - - - - } - - function insert($event_name,$data) { - global $app, $conf; - - $this->update($event_name,$data); - - } - - // The purpose of this plugin is to rewrite the main.cf file - function update($event_name,$data) { - global $app, $conf; - - // get the config - $app->uses("getconf"); - $mail_config = $app->getconf->get_server_config($conf["server_id"], 'mail'); - - copy('/etc/postfix/main.cf','/etc/postfix/main.cf~'); - - if($mail_config["relayhost"] != '') { - exec("postconf -e 'relayhost = ".$mail_config["relayhost"]."'"); - if($mail_config["relayhost_user"] != '' && $mail_config["relayhost_password"] != '') { - exec("postconf -e 'smtp_sasl_auth_enable = yes'"); - } else { - exec("postconf -e 'smtp_sasl_auth_enable = no'"); - } - exec("postconf -e 'smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd'"); - exec("postconf -e 'smtp_sasl_security_options ='"); - - // Store the sasl passwd - $content = $mail_config["relayhost"]." ".$mail_config["relayhost_user"].":".$mail_config["relayhost_password"]; - file_put_contents('/etc/postfix/sasl_passwd',$content); - exec("chown root:root /etc/postfix/sasl_passwd"); - exec("chmod 600 /etc/postfix/sasl_passwd"); - exec("postmap /etc/postfix/sasl_passwd"); - exec("/etc/init.d/postfix restart"); - - } else { - exec("postconf -e 'relayhost ='"); - } - - exec("postconf -e 'mailbox_size_limit = ".intval($mail_config["mailbox_size_limit"]*1024*1024)."'"); - exec("postconf -e 'message_size_limit = ".intval($mail_config["message_size_limit"]*1024*1024)."'"); - - } - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-available/powerdns_plugin.inc.php b/interface/ispconfig/server/plugins-available/powerdns_plugin.inc.php deleted file mode 100644 index ebe88a829..000000000 --- a/interface/ispconfig/server/plugins-available/powerdns_plugin.inc.php +++ /dev/null @@ -1,345 +0,0 @@ -plugins->registerEvent('dns_soa_insert',$this->plugin_name,'soa_insert'); - $app->plugins->registerEvent('dns_soa_update',$this->plugin_name,'soa_update'); - $app->plugins->registerEvent('dns_soa_delete',$this->plugin_name,'soa_delete'); - - //* RR - $app->plugins->registerEvent('dns_rr_insert',$this->plugin_name,'rr_insert'); - $app->plugins->registerEvent('dns_rr_update',$this->plugin_name,'rr_update'); - $app->plugins->registerEvent('dns_rr_delete',$this->plugin_name,'rr_delete'); - - } - - - function soa_insert($event_name,$data) { - global $app, $conf; - - if($data["new"]["active"] != 'Y') return; - - $origin = substr($data["new"]["origin"], 0, -1); - $ispconfig_id = $data["new"]["id"]; - $serial = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ".$ispconfig_id); - $serial_id = $serial["serial"]; - $app->db->query("INSERT INTO powerdns.domains (name, type, notified_serial, ispconfig_id) VALUES ('$origin', 'MASTER', $serial_id, $ispconfig_id)"); - //$app->db->query("INSERT INTO powerdns.domains (name, type, ispconfig_id) VALUES ('$origin', 'NATIVE', $ispconfig_id)"); - $zone_id = mysql_insert_id(); - if(substr($data["new"]["ns"], -1) == '.'){ - $ns = substr($data["new"]["ns"], 0, -1); - } else { - $ns = $data["new"]["ns"].'.'.$origin; - } - if($ns == '') $ns = $origin; - - $hostmaster = substr($data["new"]["mbox"], 0, -1); - $content = $ns.' '.$hostmaster.' 0'; - //$content = $ns.' '.$hostmaster.' '.$serial_id.''; - $ttl = $data["new"]["ttl"]; - - $app->db->query("INSERT INTO powerdns.records (domain_id, name, type, content, ttl, prio, change_date, ispconfig_id) VALUES ($zone_id, '$origin', 'SOA', '$content', $ttl, 0, ".time().", $ispconfig_id)"); - - } - - function soa_update($event_name,$data) { - global $app, $conf; - - if($data["new"]["active"] != 'Y'){ - if($data["old"]["active"] != 'Y') return; - $this->soa_delete($event_name,$data); - } else { - if($data["old"]["active"] == 'Y'){ - $origin = substr($data["new"]["origin"], 0, -1); - $ispconfig_id = $data["new"]["id"]; - $serial = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ".$ispconfig_id); - $serial_id = $serial["serial"]; - //$app->db->query("UPDATE powerdns.domains SET name = '$origin', notified_serial = $serial_id WHERE ispconfig_id = $ispconfig_id"); - //$app->db->query("UPDATE powerdns.domains SET name = '$origin' WHERE ispconfig_id = $ispconfig_id"); - - if(substr($data["new"]["ns"], -1) == '.'){ - $ns = substr($data["new"]["ns"], 0, -1); - } else { - $ns = $data["new"]["ns"].'.'.$origin; - } - if($ns == '') $ns = $origin; - - $hostmaster = substr($data["new"]["mbox"], 0, -1); - //$content = $ns.' '.$hostmaster.' 0'; - $content = $ns.' '.$hostmaster.' '.$serial_id.''; - $ttl = $data["new"]["ttl"]; - $app->db->query("UPDATE powerdns.records SET name = '$origin', content = '$content', ttl = $ttl, change_date = ".time()." WHERE ispconfig_id = ".$data["new"]["id"]." AND type = 'SOA'"); - } else { - $this->soa_insert($event_name,$data); - $ispconfig_id = $data["new"]["id"]; - if($records = $app->db->queryAllRecords("SELECT * FROM dns_rr WHERE zone = $ispconfig_id AND active = 'Y'")){ - foreach($records as $record){ - foreach($record as $key => $val){ - $data["new"][$key] = $val; - } - $this->rr_insert("dns_rr_insert", $data); - } - } - - } - } - - } - - function soa_delete($event_name,$data) { - global $app, $conf; - - $zone = $app->db->queryOneRecord("SELECT * FROM powerdns.domains WHERE ispconfig_id = ".$data["old"]["id"]); - $zone_id = $zone["id"]; - $app->db->query("DELETE FROM powerdns.records WHERE domain_id = $zone_id"); - $app->db->query("DELETE FROM powerdns.domains WHERE id = $zone_id"); - - } - - function rr_insert($event_name,$data) { - global $app, $conf; - if($data["new"]["active"] != 'Y') return; - - $zone = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ".$data["new"]["zone"]); - $origin = substr($zone["origin"], 0, -1); - $powerdns_zone = $app->db->queryOneRecord("SELECT * FROM powerdns.domains WHERE ispconfig_id = ".$data["new"]["zone"]); - $zone_id = $powerdns_zone["id"]; - - $type = $data["new"]["type"]; - - if(substr($data["new"]["name"], -1) == '.'){ - $name = substr($data["new"]["name"], 0, -1); - } else { - if($data["new"]["name"] == ""){ - $name = $origin; - } else { - $name = $data["new"]["name"].'.'.$origin; - } - } - if($name == '') $name = $origin; - - switch ($type) { - case "CNAME": - case "MX": - case "NS": - case "ALIAS": - case "PTR": - case "SRV": - if(substr($data["new"]["data"], -1) == '.'){ - $content = substr($data["new"]["data"], 0, -1); - } else { - $content = $data["new"]["data"].'.'.$origin; - } - break; - case "HINFO": - $content = $data["new"]["data"]; - $quote1 = strpos($content, '"'); - if($quote1 !== FALSE){ - $quote2 = strpos(substr($content, ($quote1 + 1)), '"'); - } - if($quote1 !== FALSE && $quote2 !== FALSE){ - $text_between_quotes = str_replace(' ', '_', substr($content, ($quote1 + 1), (($quote2 - $quote1)))); - $content = $text_between_quotes.substr($content, ($quote2 + 2)); - } - break; - default: - $content = $data["new"]["data"]; - } - - $ttl = $data["new"]["ttl"]; - $prio = $data["new"]["aux"]; - $change_date = time(); - $ispconfig_id = $data["new"]["id"]; - - $app->db->query("INSERT INTO powerdns.records (domain_id, name, type, content, ttl, prio, change_date, ispconfig_id) VALUES ($zone_id, '$name', '$type', '$content', $ttl, $prio, $change_date, $ispconfig_id)"); - - } - - function rr_update($event_name,$data) { - global $app, $conf; - - if($data["new"]["active"] != 'Y'){ - if($data["old"]["active"] != 'Y') return; - $this->rr_delete($event_name,$data); - } else { - if($data["old"]["active"] == 'Y'){ - $zone = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ".$data["new"]["zone"]); - $origin = substr($zone["origin"], 0, -1); - $powerdns_zone = $app->db->queryOneRecord("SELECT * FROM powerdns.domains WHERE ispconfig_id = ".$data["new"]["zone"]); - $zone_id = $powerdns_zone["id"]; - - $type = $data["new"]["type"]; - - if(substr($data["new"]["name"], -1) == '.'){ - $name = substr($data["new"]["name"], 0, -1); - } else { - if($data["new"]["name"] == ""){ - $name = $origin; - } else { - $name = $data["new"]["name"].'.'.$origin; - } - } - if($name == '') $name = $origin; - - switch ($type) { - case "CNAME": - case "MX": - case "NS": - case "ALIAS": - case "PTR": - case "SRV": - if(substr($data["new"]["data"], -1) == '.'){ - $content = substr($data["new"]["data"], 0, -1); - } else { - $content = $data["new"]["data"].'.'.$origin; - } - break; - case "HINFO": - $content = $data["new"]["data"]; - $quote1 = strpos($content, '"'); - if($quote1 !== FALSE){ - $quote2 = strpos(substr($content, ($quote1 + 1)), '"'); - } - if($quote1 !== FALSE && $quote2 !== FALSE){ - $text_between_quotes = str_replace(' ', '_', substr($content, ($quote1 + 1), (($quote2 - $quote1)))); - $content = $text_between_quotes.substr($content, ($quote2 + 2)); - } - break; - default: - $content = $data["new"]["data"]; - } - - $ttl = $data["new"]["ttl"]; - $prio = $data["new"]["aux"]; - $change_date = time(); - $ispconfig_id = $data["new"]["id"]; - //echo "UPDATE powerdns.records SET name = '$name', type = '$type', content = '$content', ttl = $ttl, prio = $prio, change_date = ".time()." WHERE id = $record_id"; - $app->db->query("UPDATE powerdns.records SET name = '$name', type = '$type', content = '$content', ttl = $ttl, prio = $prio, change_date = ".time()." WHERE ispconfig_id = $ispconfig_id AND type != 'SOA'"); - - } else { - $this->rr_insert($event_name,$data); - } - } - - } - - function rr_delete($event_name,$data) { - global $app, $conf; - - $ispconfig_id = $data["old"]["id"]; - $app->db->query("DELETE FROM powerdns.records WHERE ispconfig_id = $ispconfig_id AND type != 'SOA'"); - - } - - - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-available/shelluser_base_plugin.inc.php b/interface/ispconfig/server/plugins-available/shelluser_base_plugin.inc.php deleted file mode 100644 index ed7fdc635..000000000 --- a/interface/ispconfig/server/plugins-available/shelluser_base_plugin.inc.php +++ /dev/null @@ -1,189 +0,0 @@ -plugins->registerEvent('shell_user_insert',$this->plugin_name,'insert'); - $app->plugins->registerEvent('shell_user_update',$this->plugin_name,'update'); - $app->plugins->registerEvent('shell_user_delete',$this->plugin_name,'delete'); - - - } - - - function insert($event_name,$data) { - global $app, $conf; - - $app->uses('system'); - - if($app->system->is_user($data['new']['puser'])) { - // Get the UID of the parent user - $uid = intval($app->system->getuid($data['new']['puser'])); - if($uid > $this->min_uid) { - $command = 'useradd'; - $command .= ' -d '.escapeshellcmd($data['new']['dir']); - $command .= ' -g '.escapeshellcmd($data['new']['pgroup']); - $command .= ' -o '; // non unique - if($data['new']['password'] != '') $command .= ' -p '.escapeshellcmd($data['new']['password']); - $command .= ' -s '.escapeshellcmd($data['new']['shell']); - $command .= ' -u '.escapeshellcmd($uid); - $command .= ' '.escapeshellcmd($data['new']['username']); - - exec($command); - $app->log("Executed command: ".$command,LOGLEVEL_DEBUG); - $app->log("Added shelluser: ".$data['new']['username'],LOGLEVEL_DEBUG); - - //* Create .bash_history file - exec('touch '.escapeshellcmd($data['new']['dir']).'/.bash_history'); - exec('chmod 755 '.escapeshellcmd($data['new']['dir']).'/.bash_history'); - exec('chown '.escapeshellcmd($data['new']['username']).':'.escapeshellcmd($data['new']['pgroup']).' '.escapeshellcmd($data['new']['dir']).'/.bash_history'); - - //* Disable shell user temporarily if we use jailkit - if($data['new']['chroot'] == 'jailkit') { - $command = 'usermod -s /bin/false -L '.escapeshellcmd($data['new']['username']); - exec($command); - $app->log("Disabling shelluser temporarily: ".$command,LOGLEVEL_DEBUG); - } - - } else { - $app->log("UID = $uid for shelluser:".$data['new']['username']." not allowed.",LOGLEVEL_ERROR); - } - } else { - $app->log("Skippung insert of user:".$data['new']['username'].", parent user ".$data['new']['puser']." does not exist.",LOGLEVEL_WARN); - } - } - - function update($event_name,$data) { - global $app, $conf; - - $app->uses('system'); - - if($app->system->is_user($data['new']['puser'])) { - // Get the UID of the parent user - $uid = intval($app->system->getuid($data['new']['puser'])); - if($uid > $this->min_uid) { - // Check if the user that we want to update exists, if not, we insert it - if($app->system->is_user($data['old']['username'])) { - $command = 'usermod'; - $command .= ' --home '.escapeshellcmd($data['new']['dir']); - $command .= ' --gid '.escapeshellcmd($data['new']['pgroup']); - // $command .= ' --non-unique '; - $command .= ' --password '.escapeshellcmd($data['new']['password']); - if($data['new']['chroot'] != 'jailkit') $command .= ' --shell '.escapeshellcmd($data['new']['shell']); - // $command .= ' --uid '.escapeshellcmd($uid); - $command .= ' --login '.escapeshellcmd($data['new']['username']); - $command .= ' '.escapeshellcmd($data['old']['username']); - - exec($command); - $app->log("Executed command: $command ",LOGLEVEL_DEBUG); - $app->log("Updated shelluser: ".$data['old']['username'],LOGLEVEL_DEBUG); - - - //* Create .bash_history file - if(!is_file($data['new']['dir']).'/.bash_history') { - exec('touch '.escapeshellcmd($data['new']['dir']).'/.bash_history'); - exec('chmod 755 '.escapeshellcmd($data['new']['dir']).'/.bash_history'); - exec('chown '.escapeshellcmd($data['new']['username']).':'.escapeshellcmd($data['new']['pgroup']).' '.escapeshellcmd($data['new']['dir']).'/.bash_history'); - } - - } else { - // The user does not exist, so we insert it now - $this->insert($event_name,$data); - } - } else { - $app->log("UID = $uid for shelluser:".$data['new']['username']." not allowed.",LOGLEVEL_ERROR); - } - } else { - $app->log("Skippung update for user:".$data['new']['username'].", parent user ".$data['new']['puser']." does not exist.",LOGLEVEL_WARN); - } - } - - function delete($event_name,$data) { - global $app, $conf; - - $app->uses('system'); - - if($app->system->is_user($data['old']['username'])) { - // Get the UID of the user - $userid = intval($app->system->getuid($data['old']['username'])); - if($userid > $this->min_uid) { - // We delete only non jailkit users, jailkit users will be deleted by the jailkit plugin. - if ($data['old']['chroot'] != "jailkit") { - $command = 'userdel -f'; - $command .= ' '.escapeshellcmd($data['old']['username']); - - exec($command); - $app->log("Deleted shelluser: ".$data['old']['username'],LOGLEVEL_DEBUG); - } - - } else { - $app->log("UID = $userid for shelluser:".$data['old']['username']." not allowed.",LOGLEVEL_ERROR); - } - } else { - $app->log("User:".$data['new']['username']." does not exist in in /etc/passwd, skipping delete.",LOGLEVEL_WARN); - } - - } - - - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-available/shelluser_jailkit_plugin.inc.php b/interface/ispconfig/server/plugins-available/shelluser_jailkit_plugin.inc.php deleted file mode 100644 index e5665fc11..000000000 --- a/interface/ispconfig/server/plugins-available/shelluser_jailkit_plugin.inc.php +++ /dev/null @@ -1,303 +0,0 @@ -plugins->registerEvent('shell_user_insert',$this->plugin_name,'insert'); - $app->plugins->registerEvent('shell_user_update',$this->plugin_name,'update'); - $app->plugins->registerEvent('shell_user_delete',$this->plugin_name,'delete'); - - - } - - //* This function is called, when a shell user is inserted in the database - function insert($event_name,$data) { - global $app, $conf; - - $app->uses('system'); - - if($app->system->is_user($data['new']['username'])) { - - /** - * Setup Jailkit Chroot System If Enabled - */ - if ($data['new']['chroot'] == "jailkit") - { - // load the server configuration options - $app->uses("getconf"); - $this->data = $data; - $this->app = $app; - $this->jailkit_config = $app->getconf->get_server_config($conf["server_id"], 'jailkit'); - - $this->_update_website_security_level(); - - $this->_setup_jailkit_chroot(); - - $this->_add_jailkit_user(); - - $command .= 'usermod -U '.escapeshellcmd($data['new']['username']); - exec($command); - - $this->_update_website_security_level(); - } - - $app->log("Jailkit Plugin -> insert username:".$data['new']['username'],LOGLEVEL_DEBUG); - - } else { - $app->log("Jailkit Plugin -> insert username:".$data['new']['username']." skipped, the user does not exist.",LOGLEVEL_WARN); - } - - } - - //* This function is called, when a shell user is updated in the database - function update($event_name,$data) { - global $app, $conf; - - $app->uses('system'); - - if($app->system->is_user($data['new']['username'])) { - - /** - * Setup Jailkit Chroot System If Enabled - */ - if ($data['new']['chroot'] == "jailkit") - { - // load the server configuration options - $app->uses("getconf"); - $this->data = $data; - $this->app = $app; - $this->jailkit_config = $app->getconf->get_server_config($conf["server_id"], 'jailkit'); - - $this->_update_website_security_level(); - - $this->_setup_jailkit_chroot(); - $this->_add_jailkit_user(); - - $this->_update_website_security_level(); - } - - $app->log("Jailkit Plugin -> update username:".$data['new']['username'],LOGLEVEL_DEBUG); - - } else { - $app->log("Jailkit Plugin -> update username:".$data['new']['username']." skipped, the user does not exist.",LOGLEVEL_WARN); - } - - } - - //* This function is called, when a shell user is deleted in the database - /** - * TODO: Remove chroot user home and from the chroot passwd file - */ - function delete($event_name,$data) { - global $app, $conf; - - $app->uses('system'); - - if ($data['old']['chroot'] == "jailkit") - { - $app->uses("getconf"); - $this->jailkit_config = $app->getconf->get_server_config($conf["server_id"], 'jailkit'); - - $jailkit_chroot_userhome = $this->_get_home_dir($data['old']['username']); - - //commented out proved to be dangerous on config errors - //exec('rm -rf '.$data['old']['dir'].$jailkit_chroot_userhome); - - if(@is_dir($data['old']['dir'].$jailkit_chroot_userhome)) { - $command = 'userdel'; - $command .= ' '.escapeshellcmd($data['old']['username']); - exec($command); - $app->log("Jailkit Plugin -> delete chroot home:".$data['old']['dir'].$jailkit_chroot_userhome,LOGLEVEL_DEBUG); - } - - } - - $app->log("Jailkit Plugin -> delete username:".$data['old']['username'],LOGLEVEL_DEBUG); - - - } - - function _setup_jailkit_chroot() - { - //check if the chroot environment is created yet if not create it with a list of program sections from the config - if (!is_dir($this->data['new']['dir'].'/etc/jailkit')) - { - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_chroot.sh'; - $command .= ' '.escapeshellcmd($this->data['new']['dir']); - $command .= ' \''.$this->jailkit_config['jailkit_chroot_app_sections'].'\''; - exec($command); - - $this->app->log("Added jailkit chroot with command: ".$command,LOGLEVEL_DEBUG); - - $this->_add_jailkit_programs(); - - //add bash.bashrc script - //we need to collect the domain name to be used as the HOSTNAME in the bashrc script - $web = $this->app->db->queryOneRecord("SELECT domain FROM web_domain WHERE domain_id = ".intval($this->data['new']["parent_domain_id"])); - - $this->app->load('tpl'); - - $tpl = new tpl(); - $tpl->newTemplate("bash.bashrc.master"); - - $tpl->setVar('jailkit_chroot',true); - $tpl->setVar('domain',$web['domain']); - $tpl->setVar('home_dir',$this->_get_home_dir("")); - - $bashrc = escapeshellcmd($this->data['new']['dir']).'/etc/bash.bashrc'; - if(@is_file($bashrc)) exec('rm '.$bashrc); - - file_put_contents($bashrc,$tpl->grab()); - unset($tpl); - - $this->app->log("Added bashrc scrpt : ".$bashrc,LOGLEVEL_DEBUG); - - $tpl = new tpl(); - $tpl->newTemplate("motd.master"); - - $tpl->setVar('domain',$web['domain']); - - $motd = escapeshellcmd($this->data['new']['dir']).'/var/run/motd'; - if(@is_file($motd)) exec('rm '.$motd); - - file_put_contents($motd,$tpl->grab()); - - } - } - - function _add_jailkit_programs() - { - //copy over further programs and its libraries - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_programs.sh'; - $command .= ' '.escapeshellcmd($this->data['new']['dir']); - $command .= ' \''.$this->jailkit_config['jailkit_chroot_app_programs'].'\''; - exec($command); - - $this->app->log("Added programs to jailkit chroot with command: ".$command,LOGLEVEL_DEBUG); - } - - function _get_home_dir($username) - { - return str_replace("[username]",escapeshellcmd($username),$this->jailkit_config["jailkit_chroot_home"]); - } - - function _add_jailkit_user() - { - //add the user to the chroot - $jailkit_chroot_userhome = $this->_get_home_dir($this->data['new']['username']); - $jailkit_chroot_puserhome = $this->_get_home_dir($this->data['new']['puser']); - - if(!is_dir($this->data['new']['dir'].'/etc')) mkdir($this->data['new']['dir'].'/etc'); - if(!is_file($this->data['new']['dir'].'/etc/passwd')) exec('touch '.$this->data['new']['dir'].'/etc/passwd'); - - // IMPORTANT! - // ALWAYS create the user. Even if the user was created before - // if we check if the user exists, then a update (no shell -> jailkit) will not work - // and the user has FULL ACCESS to the root of the server! - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_user.sh'; - $command .= ' '.escapeshellcmd($this->data['new']['username']); - $command .= ' '.escapeshellcmd($this->data['new']['dir']); - $command .= ' '.$jailkit_chroot_userhome; - $command .= ' '.escapeshellcmd($this->data['new']['shell']); - $command .= ' '.$this->data['new']['puser']; - $command .= ' '.$jailkit_chroot_puserhome; - exec($command); - - $this->app->log("Added jailkit user to chroot with command: ".$command,LOGLEVEL_DEBUG); - - exec("mkdir -p ".escapeshellcmd($this->data['new']['dir'].$jailkit_chroot_userhome)); - exec("chown ".$this->data['new']['username'].":".$this->data['new']['pgroup']." ".escapeshellcmd($this->data['new']['dir'].$jailkit_chroot_userhome)); - - $this->app->log("Added created jailkit user home in : ".$this->data['new']['dir'].$jailkit_chroot_userhome,LOGLEVEL_DEBUG); - - exec("mkdir -p ".escapeshellcmd($this->data['new']['dir'].$jailkit_chroot_puserhome)); - exec("chown ".$this->data['new']['puser'].":".$this->data['new']['pgroup']." ".escapeshellcmd($this->data['new']['dir'].$jailkit_chroot_puserhome)); - - $this->app->log("Added created jailkit parent user home in : ".$this->data['new']['dir'].$jailkit_chroot_puserhome,LOGLEVEL_DEBUG); - } - - //* Update the website root directory permissions depending on the security level - function _update_website_security_level() { - global $app,$conf; - - // load the server configuration options - $app->uses("getconf"); - $web_config = $app->getconf->get_server_config($conf["server_id"], 'web'); - - // Get the parent website of this shell user - $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$this->data['new']['parent_domain_id']); - - //* If the security level is set to high - if($web_config['security_level'] == 20) { - $this->_exec("chmod 755 ".escapeshellcmd($web["document_root"])); - $this->_exec("chown root:root ".escapeshellcmd($web["document_root"])); - } - - } - - //* Wrapper for exec function for easier debugging - private function _exec($command) { - global $app; - $app->log("exec: ".$command,LOGLEVEL_DEBUG); - exec($command); - } - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-available/software_update_plugin.inc.php b/interface/ispconfig/server/plugins-available/software_update_plugin.inc.php deleted file mode 100644 index 08656c387..000000000 --- a/interface/ispconfig/server/plugins-available/software_update_plugin.inc.php +++ /dev/null @@ -1,178 +0,0 @@ -plugins->registerEvent('software_update_inst_insert',$this->plugin_name,'process'); - //$app->plugins->registerEvent('software_update_inst_update',$this->plugin_name,'process'); - //$app->plugins->registerEvent('software_update_inst_delete',$this->plugin_name,'process'); - - - } - - function set_install_status($inst_id, $status) { - global $app; - - $app->db->query("UPDATE software_update_inst SET status = '{$status}' WHERE software_update_inst_id = '{$inst_id}'"); - $app->dbmaster->query("UPDATE software_update_inst SET status = '{$status}' WHERE software_update_inst_id = '{$inst_id}'"); - } - - function process($event_name,$data) { - global $app, $conf; - - //* Get the info of the package: - $software_update_id = intval($data["new"]["software_update_id"]); - $software_update = $app->db->queryOneRecord("SELECT * FROM software_update WHERE software_update_id = '$software_update_id'"); - $software_package = $app->db->queryOneRecord("SELECT * FROM software_package WHERE package_name = '".$app->db->quote($software_update['package_name'])."'"); - - if($software_package['package_type'] == 'ispconfig' && !$conf['software_updates_enabled'] == true) { - $app->log('Software Updates not enabled on this server. To enable updates, set $conf["software_updates_enabled"] = true; in config.inc.php',LOGLEVEL_WARN); - $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); - return false; - } - - $installuser = ''; - if($software_package['package_type'] == 'ispconfig') { - $installuser = ''; - } elseif ($software_package['package_type'] == 'app') { - $installuser = 'ispapps'; - } else { - $app->log('package_type not supported',LOGLEVEL_WARN); - $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); - return false; - } - - $temp_dir = '/tmp/'.md5 (uniqid (rand())); - $app->log("The temp dir is $temp_dir",LOGLEVEL_DEBUG); - mkdir($temp_dir); - if($installuser != '') exec('chown '.$installuser.' '.$temp_dir); - - if(!is_dir($temp_dir)) { - $app->log("Unable to create temp directory.",LOGLEVEL_WARN); - $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); - return false; - } - - $cmd = "cd $temp_dir && wget ".$software_update["update_url"]; - if($installuser == '') { - exec($cmd); - } else { - exec("su -c ".escapeshellarg($cmd)." $installuser"); - } - $app->log("Downloading the update file from: ".$software_update["update_url"],LOGLEVEL_DEBUG); - - $url_parts = parse_url($software_update["update_url"]); - $update_filename = basename($url_parts["path"]); - $app->log("The update filename is $update_filename",LOGLEVEL_DEBUG); - - if(is_file($temp_dir.'/'.$update_filename)) { - - //* Checking the md5sum - if(md5_file($temp_dir.'/'.$update_filename) != $software_update["update_md5"]) { - $app->log("The md5 sum of the downloaded file is incorrect. Update aborted.",LOGLEVEL_WARN); - exec("rm -rf $temp_dir"); - $app->log("Deleting the temp directory $temp_dir",LOGLEVEL_DEBUG); - $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); - return false; - } else { - $app->log("md5sum of the downloaded file is verified.",LOGLEVEL_DEBUG); - } - - - //* unpacking the update - $cmd = "cd $temp_dir && unzip $update_filename"; - if($installuser == '') { - exec($cmd); - } else { - exec("su -c ".escapeshellarg($cmd)." $installuser"); - } - - if(is_file($temp_dir.'/setup.sh')) { - // Execute the setup script - exec('chmod +x '.$temp_dir.'/setup.sh'); - $app->log("Executing setup.sh file in directory $temp_dir",LOGLEVEL_DEBUG); - $cmd = 'cd '.$temp_dir.' && ./setup.sh > package_install.log'; - if($installuser == '') { - exec($cmd); - } else { - exec("su -c ".escapeshellarg($cmd)." $installuser"); - } - - $log_data = @file_get_contents("{$temp_dir}/package_install.log"); - if(preg_match("'.*\[OK\]\s*$'is", $log_data)) { - $app->log("Installation successful",LOGLEVEL_DEBUG); - $app->log($log_data,LOGLEVEL_DEBUG); - $this->set_install_status($data["new"]["software_update_inst_id"], "installed"); - } else { - $app->log("Installation failed:\n\n" . $log_data,LOGLEVEL_WARN); - $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); - } - } else { - $app->log("setup.sh file not found",LOGLEVEL_ERROR); - $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); - } - } else { - $app->log("Download of the update file failed",LOGLEVEL_WARN); - $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); - } - - exec("rm -rf $temp_dir"); - $app->log("Deleting the temp directory $temp_dir",LOGLEVEL_DEBUG); - } - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-available/webmail_symlink_plugin.inc.php b/interface/ispconfig/server/plugins-available/webmail_symlink_plugin.inc.php deleted file mode 100644 index f20dbbc64..000000000 --- a/interface/ispconfig/server/plugins-available/webmail_symlink_plugin.inc.php +++ /dev/null @@ -1,121 +0,0 @@ -plugins->registerEvent('web_domain_insert',$this->plugin_name,'insert'); - $app->plugins->registerEvent('web_domain_update',$this->plugin_name,'update'); - } - - function insert($event_name,$data) { - global $app, $conf; - - $this->action = 'insert'; - // just run the update function - $this->update($event_name,$data); - } - - function update($event_name,$data) { - global $app, $conf; - - if($this->action != 'insert') $this->action = 'update'; - - if($data["new"]["type"] != "vhost" && $data["new"]["parent_domain_id"] > 0) { - - $old_parent_domain_id = intval($data["old"]["parent_domain_id"]); - $new_parent_domain_id = intval($data["new"]["parent_domain_id"]); - - // If the parent_domain_id has been chenged, we will have to update the old site as well. - if($this->action == 'update' && $data["new"]["parent_domain_id"] != $data["old"]["parent_domain_id"]) { - $tmp = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$old_parent_domain_id." AND active = 'y'"); - $data["new"] = $tmp; - $data["old"] = $tmp; - $this->action = 'update'; - $this->update($event_name,$data); - } - - // This is not a vhost, so we need to update the parent record instead. - $tmp = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$new_parent_domain_id." AND active = 'y'"); - $data["new"] = $tmp; - $data["old"] = $tmp; - $this->action = 'update'; - } - - if($data["new"]["document_root"] == '') { - $app->log("document_root not set",LOGLEVEL_WARN); - return 0; - } - - $symlink = true; - if($data["new"]["php"] == "suphp") $symlink = false; - elseif($data["new"]["php"] == "cgi" && $data["new"]["suexec"] == "y") $symlink = false; - elseif($data["new"]["php"] == "fast-cgi" && $data["new"]["suexec"] == "y") $symlink = false; - - - if(!is_dir($data["new"]["document_root"]."/web")) exec("mkdir -p ".$data["new"]["document_root"]."/web"); - if($symlink == false) { - if(is_link($data["new"]["document_root"]."/web/webmail")) exec("rm -f ".$data["new"]["document_root"]."/web/webmail"); - } else { - if(!is_link($data["new"]["document_root"]."/web/webmail")) exec("ln -s /var/www/webmail ".$data["new"]["document_root"]."/web/webmail"); - else exec("ln -sf /var/www/webmail ".$data["new"]["document_root"]."/web/webmail"); - } - } - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-enabled/apache2_plugin.inc.php b/interface/ispconfig/server/plugins-enabled/apache2_plugin.inc.php deleted file mode 100644 index 16b405ae4..000000000 --- a/interface/ispconfig/server/plugins-enabled/apache2_plugin.inc.php +++ /dev/null @@ -1,987 +0,0 @@ -plugins->registerEvent('web_domain_insert',$this->plugin_name,'ssl'); - $app->plugins->registerEvent('web_domain_update',$this->plugin_name,'ssl'); - $app->plugins->registerEvent('web_domain_delete',$this->plugin_name,'ssl'); - - $app->plugins->registerEvent('web_domain_insert',$this->plugin_name,'insert'); - $app->plugins->registerEvent('web_domain_update',$this->plugin_name,'update'); - $app->plugins->registerEvent('web_domain_delete',$this->plugin_name,'delete'); - - $app->plugins->registerEvent('server_ip_insert',$this->plugin_name,'server_ip'); - $app->plugins->registerEvent('server_ip_update',$this->plugin_name,'server_ip'); - $app->plugins->registerEvent('server_ip_delete',$this->plugin_name,'server_ip'); - - } - - // Handle the creation of SSL certificates - function ssl($event_name,$data) { - global $app, $conf; - - if(!is_dir($data["new"]["document_root"]."/ssl")) exec("mkdir -p ".$data["new"]["document_root"]."/ssl"); - $ssl_dir = $data["new"]["document_root"]."/ssl"; - $domain = $data["new"]["ssl_domain"]; - $key_file = $ssl_dir.'/'.$domain.".key.org"; - $key_file2 = $ssl_dir.'/'.$domain.".key"; - $csr_file = $ssl_dir.'/'.$domain.".csr"; - $crt_file = $ssl_dir.'/'.$domain.".crt"; - - //* Create a SSL Certificate - if($data["new"]["ssl_action"] == 'create') { - $rand_file = $ssl_dir."/random_file"; - $rand_data = md5(uniqid(microtime(),1)); - for($i=0; $i<1000; $i++){ - $rand_data .= md5(uniqid(microtime(),1)); - $rand_data .= md5(uniqid(microtime(),1)); - $rand_data .= md5(uniqid(microtime(),1)); - $rand_data .= md5(uniqid(microtime(),1)); - } - file_put_contents($rand_file, $rand_data); - - $ssl_password = substr(md5(uniqid(microtime(),1)), 0, 15); - - $ssl_cnf = " RANDFILE = $rand_file - - [ req ] - default_bits = 2048 - default_keyfile = keyfile.pem - distinguished_name = req_distinguished_name - attributes = req_attributes - prompt = no - output_password = $ssl_password - - [ req_distinguished_name ] - C = ".$data['new']['ssl_country']." - ST = ".$data['new']['ssl_state']." - L = ".$data['new']['ssl_locality']." - O = ".$data['new']['ssl_organisation']." - OU = ".$data['new']['ssl_organisation_unit']." - CN = $domain - emailAddress = webmaster@".$data['new']['domain']." - - [ req_attributes ] - challengePassword = A challenge password"; - - $ssl_cnf_file = $ssl_dir."/openssl.conf"; - file_put_contents($ssl_cnf_file,$ssl_cnf); - - $rand_file = escapeshellcmd($rand_file); - $key_file = escapeshellcmd($key_file); - $key_file2 = escapeshellcmd($key_file2); - $ssl_days = 3650; - $csr_file = escapeshellcmd($csr_file); - $config_file = escapeshellcmd($ssl_cnf_file); - $crt_file = escapeshellcmd($crt_file); - - if(is_file($ssl_cnf_file)){ - exec("openssl genrsa -des3 -rand $rand_file -passout pass:$ssl_password -out $key_file 2048 && openssl req -new -passin pass:$ssl_password -passout pass:$ssl_password -key $key_file -out $csr_file -days $ssl_days -config $config_file && openssl req -x509 -passin pass:$ssl_password -passout pass:$ssl_password -key $key_file -in $csr_file -out $crt_file -days $ssl_days -config $config_file && openssl rsa -passin pass:$ssl_password -in $key_file -out $key_file2"); - $app->log("Creating SSL Cert for: $domain",LOGLEVEL_DEBUG); - } - - exec("chmod 400 $key_file2"); - @unlink($config_file); - @unlink($rand_file); - $ssl_request = $app->db->quote(file_get_contents($csr_file)); - $ssl_cert = $app->db->quote(file_get_contents($crt_file)); - /* Update the DB of the (local) Server */ - $app->db->query("UPDATE web_domain SET ssl_request = '$ssl_request', ssl_cert = '$ssl_cert' WHERE domain = '".$data["new"]["domain"]."'"); - $app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data["new"]["domain"]."'"); - /* Update also the master-DB of the Server-Farm */ - $app->dbmaster->query("UPDATE web_domain SET ssl_request = '$ssl_request', ssl_cert = '$ssl_cert' WHERE domain = '".$data["new"]["domain"]."'"); - $app->dbmaster->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data["new"]["domain"]."'"); - } - - //* Save a SSL certificate to disk - if($data["new"]["ssl_action"] == 'save') { - $ssl_dir = $data["new"]["document_root"]."/ssl"; - $domain = $data["new"]["ssl_domain"]; - $csr_file = $ssl_dir.'/'.$domain.".csr"; - $crt_file = $ssl_dir.'/'.$domain.".crt"; - $bundle_file = $ssl_dir.'/'.$domain.".bundle"; - file_put_contents($csr_file,$data["new"]["ssl_request"]); - file_put_contents($crt_file,$data["new"]["ssl_cert"]); - if(trim($data["new"]["ssl_bundle"]) != '') file_put_contents($bundle_file,$data["new"]["ssl_bundle"]); - /* Update the DB of the (local) Server */ - $app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data["new"]["domain"]."'"); - /* Update also the master-DB of the Server-Farm */ - $app->dbmaster->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data["new"]["domain"]."'"); - $app->log("Saving SSL Cert for: $domain",LOGLEVEL_DEBUG); - } - - //* Delete a SSL certificate - if($data["new"]["ssl_action"] == 'del') { - $ssl_dir = $data["new"]["document_root"]."/ssl"; - $domain = $data["new"]["ssl_domain"]; - $csr_file = $ssl_dir.'/'.$domain.".csr"; - $crt_file = $ssl_dir.'/'.$domain.".crt"; - $bundle_file = $ssl_dir.'/'.$domain.".bundle"; - unlink($csr_file); - unlink($crt_file); - unlink($bundle_file); - /* Update the DB of the (local) Server */ - $app->db->query("UPDATE web_domain SET ssl_request = '', ssl_cert = '' WHERE domain = '".$data["new"]["domain"]."'"); - $app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data["new"]["domain"]."'"); - /* Update also the master-DB of the Server-Farm */ - $app->dbmaster->query("UPDATE web_domain SET ssl_request = '', ssl_cert = '' WHERE domain = '".$data["new"]["domain"]."'"); - $app->dbmaster->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data["new"]["domain"]."'"); - $app->log("Deleting SSL Cert for: $domain",LOGLEVEL_DEBUG); - } - - - } - - - function insert($event_name,$data) { - global $app, $conf; - - $this->action = 'insert'; - // just run the update function - $this->update($event_name,$data); - - - } - - - function update($event_name,$data) { - global $app, $conf; - - if($this->action != 'insert') $this->action = 'update'; - - if($data["new"]["type"] != "vhost" && $data["new"]["parent_domain_id"] > 0) { - - $old_parent_domain_id = intval($data["old"]["parent_domain_id"]); - $new_parent_domain_id = intval($data["new"]["parent_domain_id"]); - - // If the parent_domain_id has been chenged, we will have to update the old site as well. - if($this->action == 'update' && $data["new"]["parent_domain_id"] != $data["old"]["parent_domain_id"]) { - $tmp = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$old_parent_domain_id." AND active = 'y'"); - $data["new"] = $tmp; - $data["old"] = $tmp; - $this->action = 'update'; - $this->update($event_name,$data); - } - - // This is not a vhost, so we need to update the parent record instead. - $tmp = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$new_parent_domain_id." AND active = 'y'"); - $data["new"] = $tmp; - $data["old"] = $tmp; - $this->action = 'update'; - } - - // load the server configuration options - $app->uses("getconf"); - $web_config = $app->getconf->get_server_config($conf["server_id"], 'web'); - - //* Check if this is a chrooted setup - if($web_config['website_basedir'] != '' && @is_file($web_config['website_basedir'].'/etc/passwd')) { - $apache_chrooted = true; - $app->log("Info: Apache is chrooted.",LOGLEVEL_DEBUG); - } else { - $apache_chrooted = false; - } - - if($data["new"]["document_root"] == '') { - $app->log("document_root not set",LOGLEVEL_WARN); - return 0; - } - if($data["new"]["system_user"] == 'root' or $data["new"]["system_group"] == 'root') { - $app->log("Websites can not be owned by the root user or group.",LOGLEVEL_WARN); - return 0; - } - - //* If the client of the site has been changed, we have a change of the document root - if($this->action == 'update' && $data["new"]["document_root"] != $data["old"]["document_root"]) { - - //* Get the old client ID - $old_client = $app->dbmaster->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ".intval($data["old"]["sys_groupid"])); - $old_client_id = intval($old_client["client_id"]); - unset($old_client); - - //* Remove the old symlinks - $tmp_symlinks_array = explode(':',$web_config["website_symlinks"]); - if(is_array($tmp_symlinks_array)) { - foreach($tmp_symlinks_array as $tmp_symlink) { - $tmp_symlink = str_replace("[client_id]",$old_client_id,$tmp_symlink); - $tmp_symlink = str_replace("[website_domain]",$data["old"]["domain"],$tmp_symlink); - // Remove trailing slash - if(substr($tmp_symlink, -1, 1) == '/') $tmp_symlink = substr($tmp_symlink, 0, -1); - // create the symlinks, if not exist - if(is_link($tmp_symlink)) { - exec("rm -f ".escapeshellcmd($tmp_symlink)); - $app->log("Removed Symlink: rm -f ".$tmp_symlink,LOGLEVEL_DEBUG); - } - } - } - - //* Move the site data - $tmp_docroot = explode('/',$data["new"]["document_root"]); - unset($tmp_docroot[count($tmp_docroot)-1]); - $new_dir = implode('/',$tmp_docroot); - - $tmp_docroot = explode('/',$data["old"]["document_root"]); - unset($tmp_docroot[count($tmp_docroot)-1]); - $old_dir = implode('/',$tmp_docroot); - - exec('rm -rf '.$data["new"]["document_root"]); - if(!is_dir($new_dir)) exec('mkdir -p '.$new_dir); - exec('mv '.$data["old"]["document_root"].' '.$new_dir); - $app->log("Moving site to new document root: ".'mv '.$data["old"]["document_root"].' '.$new_dir,LOGLEVEL_DEBUG); - - //* Change the owner of the website files to the new website owner - exec('chown --recursive --from='.escapeshellcmd($data["old"]["system_user"]).':'.escapeshellcmd($data['old']['system_group']).' '.escapeshellcmd($data["new"]["system_user"]).':'.escapeshellcmd($data['new']['system_group']).' '.$new_dir); - - //* Change the home directory and group of the website user - $command = 'usermod'; - $command .= ' --home '.escapeshellcmd($data["new"]["document_root"]); - $command .= ' --gid '.escapeshellcmd($data['new']['system_group']); - $command .= ' '.escapeshellcmd($data["new"]["system_user"]); - exec($command); - - if($apache_chrooted) $this->_exec("chroot ".escapeshellcmd($web_config['website_basedir'])." ".$command); - - - } - - //print_r($data); - - // Check if the directories are there and create them if nescessary. - if(!is_dir($data["new"]["document_root"]."/web")) exec("mkdir -p ".$data["new"]["document_root"]."/web"); - if(!is_dir($data["new"]["document_root"]."/web/error") and $data["new"]["errordocs"]) exec("mkdir -p ".$data["new"]["document_root"]."/web/error"); - //if(!is_dir($data["new"]["document_root"]."/log")) exec("mkdir -p ".$data["new"]["document_root"]."/log"); - if(!is_dir($data["new"]["document_root"]."/ssl")) exec("mkdir -p ".$data["new"]["document_root"]."/ssl"); - if(!is_dir($data["new"]["document_root"]."/cgi-bin")) exec("mkdir -p ".$data["new"]["document_root"]."/cgi-bin"); - if(!is_dir($data["new"]["document_root"]."/tmp")) exec("mkdir -p ".$data["new"]["document_root"]."/tmp"); - - // Remove the symlink for the site, if site is renamed - if($this->action == 'update' && $data["old"]["domain"] != '' && $data["new"]["domain"] != $data["old"]["domain"]) { - if(is_dir('/var/log/ispconfig/httpd/'.$data["old"]["domain"])) exec('rm -rf /var/log/ispconfig/httpd/'.$data["old"]["domain"]); - if(is_link($data["old"]["document_root"]."/log")) unlink($data["old"]["document_root"]."/log"); - } - - // Create the symlink for the logfiles - if(!is_dir('/var/log/ispconfig/httpd/'.$data["new"]["domain"])) exec('mkdir -p /var/log/ispconfig/httpd/'.$data["new"]["domain"]); - if(!is_link($data["new"]["document_root"]."/log")) { - exec("ln -s /var/log/ispconfig/httpd/".$data["new"]["domain"]." ".$data["new"]["document_root"]."/log"); - $app->log("Creating Symlink: ln -s /var/log/ispconfig/httpd/".$data["new"]["domain"]." ".$data["new"]["document_root"]."/log",LOGLEVEL_DEBUG); - } - /* - // Create the symlink for the logfiles - // This does not work as vlogger can not log trogh symlinks. - if($this->action == 'update' && $data["old"]["domain"] != '' && $data["new"]["domain"] != $data["old"]["domain"]) { - if(is_dir($data["old"]["document_root"]."/log")) exec('rm -rf '.$data["old"]["document_root"]."/log"); - if(is_link('/var/log/ispconfig/httpd/'.$data["old"]["domain"])) unlink('/var/log/ispconfig/httpd/'.$data["old"]["domain"]); - } - - // Create the symlink for the logfiles - if(!is_dir($data["new"]["document_root"]."/log")) exec('mkdir -p '.$data["new"]["document_root"]."/log"); - if(!is_link('/var/log/ispconfig/httpd/'.$data["new"]["domain"])) { - exec("ln -s ".$data["new"]["document_root"]."/log /var/log/ispconfig/httpd/".$data["new"]["domain"]); - $app->log("Creating Symlink: ln -s ".$data["new"]["document_root"]."/log /var/log/ispconfig/httpd/".$data["new"]["domain"],LOGLEVEL_DEBUG); - } - */ - - // Get the client ID - $client = $app->dbmaster->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ".intval($data["new"]["sys_groupid"])); - $client_id = intval($client["client_id"]); - unset($client); - - // Remove old symlinks, if site is renamed - if($this->action == 'update' && $data["old"]["domain"] != '' && $data["new"]["domain"] != $data["old"]["domain"]) { - $tmp_symlinks_array = explode(':',$web_config["website_symlinks"]); - if(is_array($tmp_symlinks_array)) { - foreach($tmp_symlinks_array as $tmp_symlink) { - $tmp_symlink = str_replace("[client_id]",$client_id,$tmp_symlink); - $tmp_symlink = str_replace("[website_domain]",$data["old"]["domain"],$tmp_symlink); - // Remove trailing slash - if(substr($tmp_symlink, -1, 1) == '/') $tmp_symlink = substr($tmp_symlink, 0, -1); - // remove the symlinks, if not exist - if(is_link($tmp_symlink)) { - exec("rm -f ".escapeshellcmd($tmp_symlink)); - $app->log("Removed Symlink: rm -f ".$tmp_symlink,LOGLEVEL_DEBUG); - } - } - } - } - - // Create the symlinks for the sites - $tmp_symlinks_array = explode(':',$web_config["website_symlinks"]); - if(is_array($tmp_symlinks_array)) { - foreach($tmp_symlinks_array as $tmp_symlink) { - $tmp_symlink = str_replace("[client_id]",$client_id,$tmp_symlink); - $tmp_symlink = str_replace("[website_domain]",$data["new"]["domain"],$tmp_symlink); - // Remove trailing slash - if(substr($tmp_symlink, -1, 1) == '/') $tmp_symlink = substr($tmp_symlink, 0, -1); - //* Remove symlink if target folder has been changed. - if($data["old"]["document_root"] != '' && $data["old"]["document_root"] != $data["new"]["document_root"] && is_link($tmp_symlink)) { - unlink($tmp_symlink); - } - // create the symlinks, if not exist - if(!is_link($tmp_symlink)) { - exec("ln -s ".escapeshellcmd($data["new"]["document_root"])."/ ".escapeshellcmd($tmp_symlink)); - $app->log("Creating Symlink: ln -s ".$data["new"]["document_root"]."/ ".$tmp_symlink,LOGLEVEL_DEBUG); - } - } - } - - - if($this->action == 'insert' && $data["new"]["type"] == 'vhost') { - // Copy the error pages - if($data["new"]["errordocs"]){ - $error_page_path = escapeshellcmd($data["new"]["document_root"])."/web/error/"; - if (file_exists("/usr/local/ispconfig/server/conf-custom/error/".substr(escapeshellcmd($conf["language"]),0,2))){ - exec("cp /usr/local/ispconfig/server/conf-custom/error/".substr(escapeshellcmd($conf["language"]),0,2)."/* ".$error_page_path); - } - else { - if (file_exists("/usr/local/ispconfig/server/conf-custom/error/400.html")){ - exec("cp /usr/local/ispconfig/server/conf-custom/error/*.html ".$error_page_path); - } - else { - exec("cp /usr/local/ispconfig/server/conf/error/".substr(escapeshellcmd($conf["language"]),0,2)."/* ".$error_page_path); - } - } - exec("chmod -R a+r ".$error_page_path); - } - - // copy the standard index page - if (file_exists("/usr/local/ispconfig/server/conf-custom/index/standard_index.html_".substr(escapeshellcmd($conf["language"]),0,2))){ - exec("cp /usr/local/ispconfig/server/conf-custom/index/standard_index.html_".substr(escapeshellcmd($conf["language"]),0,2)." ".escapeshellcmd($data["new"]["document_root"])."/web/index.html"); - } - else { - if (file_exists("/usr/local/ispconfig/server/conf-custom/index/standard_index.html")){ - exec("cp /usr/local/ispconfig/server/conf-custom/index/standard_index.html ".escapeshellcmd($data["new"]["document_root"])."/web/index.html"); - } - else { - exec("cp /usr/local/ispconfig/server/conf/index/standard_index.html_".substr(escapeshellcmd($conf["language"]),0,2)." ".escapeshellcmd($data["new"]["document_root"])."/web/index.html"); - exec("cp /usr/local/ispconfig/server/conf/index/favicon.ico ".escapeshellcmd($data["new"]["document_root"])."/web/"); - exec("cp /usr/local/ispconfig/server/conf/index/robots.txt ".escapeshellcmd($data["new"]["document_root"])."/web/"); - exec("cp /usr/local/ispconfig/server/conf/index/.htaccess ".escapeshellcmd($data["new"]["document_root"])."/web/"); - } - } - exec("chmod -R a+r ".escapeshellcmd($data["new"]["document_root"])."/web/"); - - //** Copy the error documents on update when the error document checkbox has been activated and was deactivated before - } elseif ($this->action == 'update' && $data["new"]["type"] == 'vhost' && $data["old"]["errordocs"] == 0 && $data["new"]["errordocs"] == 1) { - - $error_page_path = escapeshellcmd($data["new"]["document_root"])."/web/error/"; - if (file_exists("/usr/local/ispconfig/server/conf-custom/error/".substr(escapeshellcmd($conf["language"]),0,2))){ - exec("cp /usr/local/ispconfig/server/conf-custom/error/".substr(escapeshellcmd($conf["language"]),0,2)."/* ".$error_page_path); - } - else { - if (file_exists("/usr/local/ispconfig/server/conf-custom/error/400.html")){ - exec("cp /usr/local/ispconfig/server/conf-custom/error/*.html ".$error_page_path); - } - else { - exec("cp /usr/local/ispconfig/server/conf/error/".substr(escapeshellcmd($conf["language"]),0,2)."/* ".$error_page_path); - } - } - exec("chmod -R a+r ".$error_page_path); - } // end copy error docs - - // Create group and user, if not exist - $app->uses("system"); - - $groupname = escapeshellcmd($data["new"]["system_group"]); - if($data["new"]["system_group"] != '' && !$app->system->is_group($data["new"]["system_group"])) { - exec("groupadd $groupname"); - if($apache_chrooted) $this->_exec("chroot ".escapeshellcmd($web_config['website_basedir'])." groupadd $groupname"); - $app->log("Adding the group: $groupname",LOGLEVEL_DEBUG); - } - - $username = escapeshellcmd($data["new"]["system_user"]); - if($data["new"]["system_user"] != '' && !$app->system->is_user($data["new"]["system_user"])) { - exec("useradd -d ".escapeshellcmd($data["new"]["document_root"])." -g $groupname -G sshusers $username -s /bin/false"); - if($apache_chrooted) $this->_exec("chroot ".escapeshellcmd($web_config['website_basedir'])." "."useradd -d ".escapeshellcmd($data["new"]["document_root"])." -g $groupname -G sshusers $username -s /bin/false"); - $app->log("Adding the user: $username",LOGLEVEL_DEBUG); - } - - // Set the quota for the user - if($username != '' && $app->system->is_user($username)) { - if($data["new"]["hd_quota"] > 0){ - $blocks_soft = $data["new"]["hd_quota"] * 1024; - $blocks_hard = $blocks_soft + 1024; - } else { - $blocks_soft = $blocks_hard = 0; - } - exec("setquota -u $username $blocks_soft $blocks_hard 0 0 -a &> /dev/null"); - exec("setquota -T -u $username 604800 604800 -a &> /dev/null"); - } - - if($this->action == 'insert') { - // Chown and chmod the directories below the document root - $this->_exec("chown -R $username:$groupname ".escapeshellcmd($data["new"]["document_root"])); - // The document root itself has to be owned by root in normal level and by the web owner in security level 20 - if($web_config['security_level'] == 20) { - $this->_exec("chown $username:$groupname ".escapeshellcmd($data["new"]["document_root"])); - } else { - $this->_exec("chown root:root ".escapeshellcmd($data["new"]["document_root"])); - } - } - - - - //* If the security level is set to high - if($web_config['security_level'] == 20) { - - $this->_exec("chmod 751 ".escapeshellcmd($data["new"]["document_root"]."/")); - $this->_exec("chmod 751 ".escapeshellcmd($data["new"]["document_root"])."/*"); - $this->_exec("chmod 710 ".escapeshellcmd($data["new"]["document_root"]."/web")); - - // make temp direcory writable for the apache user and the website user - $this->_exec("chmod 777 ".escapeshellcmd($data["new"]["document_root"]."/tmp")); - - $command = 'usermod'; - $command .= ' --groups sshusers'; - $command .= ' '.escapeshellcmd($data["new"]["system_user"]); - $this->_exec($command); - - //* if we have a chrooted apache enviroment - if($apache_chrooted) { - $this->_exec("chroot ".escapeshellcmd($web_config['website_basedir'])." ".$command); - - //* add the apache user to the client group in the chroot enviroment - $tmp_groupfile = $app->system->server_conf["group_datei"]; - $app->system->server_conf["group_datei"] = $web_config['website_basedir'].'/etc/group'; - $app->system->add_user_to_group($groupname, escapeshellcmd($web_config['user'])); - $app->system->server_conf["group_datei"] = $tmp_groupfile; - unset($tmp_groupfile); - } - - //* add the apache user to the client group - $app->system->add_user_to_group($groupname, escapeshellcmd($web_config['user'])); - - $this->_exec("chown $username:$groupname ".escapeshellcmd($data["new"]["document_root"])); - - /* - * Workaround for jailkit: If jailkit is enabled for the site, the - * website root has to be owned by the root user and we have to chmod it to 755 then - */ - - //* Check if there is a jailkit user for this site - $tmp = $app->db->queryOneRecord("SELECT count(shell_user_id) as number FROM shell_user WHERE parent_domain_id = ".$data["new"]["domain_id"]." AND chroot = 'jailkit'"); - if($tmp['number'] > 0) { - $this->_exec("chmod 755 ".escapeshellcmd($data["new"]["document_root"]."/")); - $this->_exec("chown root:root ".escapeshellcmd($data["new"]["document_root"]."/")); - } - unset($tmp); - - // If the security Level is set to medium - } else { - - $this->_exec("chmod 755 ".escapeshellcmd($data["new"]["document_root"]."/")); - $this->_exec("chmod 755 ".escapeshellcmd($data["new"]["document_root"]."/*")); - $this->_exec("chown root:root ".escapeshellcmd($data["new"]["document_root"]."/")); - - // make temp direcory writable for the apache user and the website user - $this->_exec("chmod 777 ".escapeshellcmd($data["new"]["document_root"]."/tmp")); - } - - // Change the owner of the error log to the owner of the website - if(!@is_file($data["new"]["document_root"]."/log/error.log")) exec('touch '.escapeshellcmd($data["new"]["document_root"])."/log/error.log"); - $this->_exec("chown $username:$groupname ".escapeshellcmd($data["new"]["document_root"])."/log/error.log"); - - - // Create the vhost config file - $app->load('tpl'); - - $tpl = new tpl(); - $tpl->newTemplate("vhost.conf.master"); - - $vhost_data = $data["new"]; - $vhost_data["web_document_root"] = $data["new"]["document_root"]."/web"; - $vhost_data["web_document_root_www"] = $web_config["website_basedir"]."/".$data["new"]["domain"]."/web"; - $vhost_data["web_basedir"] = $web_config["website_basedir"]; - $vhost_data["security_level"] = $web_config["security_level"]; - $vhost_data["allow_override"] = ($data["new"]["allow_override"] == '')?'All':$data["new"]["allow_override"]; - $vhost_data["php_open_basedir"] = ($data["new"]["php_open_basedir"] == '')?$data["new"]["document_root"]:$data["new"]["php_open_basedir"]; - $vhost_data["ssl_domain"] = $data["new"]["ssl_domain"]; - - // Check if a SSL cert exists - $ssl_dir = $data["new"]["document_root"]."/ssl"; - $domain = $data["new"]["ssl_domain"]; - $key_file = $ssl_dir.'/'.$domain.".key"; - $crt_file = $ssl_dir.'/'.$domain.".crt"; - $bundle_file = $ssl_dir.'/'.$domain.".bundle"; - - if($data["new"]["ssl"] == 'y' && @is_file($crt_file) && @is_file($key_file)) { - $vhost_data["ssl_enabled"] = 1; - $app->log("Enable SSL for: $domain",LOGLEVEL_DEBUG); - } else { - $vhost_data["ssl_enabled"] = 0; - $app->log("Disable SSL for: $domain",LOGLEVEL_DEBUG); - } - - if(@is_file($bundle_file)) $vhost_data['has_bundle_cert'] = 1; - - //$vhost_data["document_root"] = $data["new"]["document_root"]."/web"; - $tpl->setVar($vhost_data); - - // Rewrite rules - $rewrite_rules = array(); - if($data["new"]["redirect_type"] != '') { - if(substr($data["new"]["redirect_path"],-1) != '/') $data["new"]["redirect_path"] .= '/'; - /* Disabled path extension - if($data["new"]["redirect_type"] == 'no' && substr($data["new"]["redirect_path"],0,4) != 'http') { - $data["new"]["redirect_path"] = $data["new"]["document_root"]."/web".realpath($data["new"]["redirect_path"]).'/'; - } - */ - - $rewrite_rules[] = array( 'rewrite_domain' => $data["new"]["domain"], - 'rewrite_type' => ($data["new"]["redirect_type"] == 'no')?'':'['.$data["new"]["redirect_type"].']', - 'rewrite_target' => $data["new"]["redirect_path"]); - - switch($data["new"]["subdomain"]) { - case 'www': - $rewrite_rules[] = array( 'rewrite_domain' => 'www.'.$data["new"]["domain"], - 'rewrite_type' => ($data["new"]["redirect_type"] == 'no')?'':'['.$data["new"]["redirect_type"].']', - 'rewrite_target' => $data["new"]["redirect_path"]); - break; - case '*': - // TODO - //$rewrite_rules[] = array( 'rewrite_domain' => '*'.$alias["domain"], - // 'rewrite_type' => $alias["redirect_type"], - // 'rewrite_target' => $alias["redirect_path"]); - break; - } - } - - // get alias domains (co-domains and subdomains) - $aliases = $app->db->queryAllRecords("SELECT * FROM web_domain WHERE parent_domain_id = ".$data["new"]["domain_id"]." AND active = 'y'"); - $server_alias = array(); - switch($data["new"]["subdomain"]) { - case 'www': - $server_alias[] .= 'www.'.$data["new"]["domain"].' '; - break; - case '*': - $server_alias[] .= '*.'.$data["new"]["domain"].' '; - break; - } - if(is_array($aliases)) { - foreach($aliases as $alias) { - switch($alias["subdomain"]) { - case 'www': - $server_alias[] .= 'www.'.$alias["domain"].' '.$alias["domain"].' '; - break; - case '*': - $server_alias[] .= '*.'.$alias["domain"].' '.$alias["domain"].' '; - break; - default: - $server_alias[] .= $alias["domain"].' '; - break; - } - $app->log("Add server alias: $alias[domain]",LOGLEVEL_DEBUG); - // Rewriting - if($alias["redirect_type"] != '') { - if(substr($data["new"]["redirect_path"],-1) != '/') $data["new"]["redirect_path"] .= '/'; - /* Disabled path extension - if($data["new"]["redirect_type"] == 'no' && substr($data["new"]["redirect_path"],0,4) != 'http') { - $data["new"]["redirect_path"] = $data["new"]["document_root"]."/web".realpath($data["new"]["redirect_path"]).'/'; - } - */ - $rewrite_rules[] = array( 'rewrite_domain' => $alias["domain"], - 'rewrite_type' => ($alias["redirect_type"] == 'no')?'':'['.$alias["redirect_type"].']', - 'rewrite_target' => $alias["redirect_path"]); - switch($alias["subdomain"]) { - case 'www': - $rewrite_rules[] = array( 'rewrite_domain' => 'www.'.$alias["domain"], - 'rewrite_type' => ($alias["redirect_type"] == 'no')?'':'['.$alias["redirect_type"].']', - 'rewrite_target' => $alias["redirect_path"]); - break; - case '*': - // TODO - //$rewrite_rules[] = array( 'rewrite_domain' => '*'.$alias["domain"], - // 'rewrite_type' => $alias["redirect_type"], - // 'rewrite_target' => $alias["redirect_path"]); - break; - } - } - } - } - - //* If we have some alias records - if(count($server_alias) > 0) { - $server_alias_str = ''; - $n = 0; - - // begin a new ServerAlias line after 30 alias domains - foreach($server_alias as $tmp_alias) { - if($n % 30 == 0) $server_alias_str .= "\n ServerAlias "; - $server_alias_str .= $tmp_alias; - } - unset($tmp_alias); - - $tpl->setVar('alias',trim($server_alias_str)); - } else { - $tpl->setVar('alias',''); - } - - if(count($rewrite_rules) > 0) { - $tpl->setVar('rewrite_enabled',1); - } else { - $tpl->setVar('rewrite_enabled',0); - } - $tpl->setLoop('redirects',$rewrite_rules); - - /** - * install fast-cgi starter script and add script aliasd config - * first we create the script directory if not already created, then copy over the starter script - * settings are copied over from the server ini config for now - * TODO: Create form for fastcgi configs per site. - */ - - if ($data["new"]["php"] == "fast-cgi") - { - $fastcgi_config = $app->getconf->get_server_config($conf["server_id"], 'fastcgi'); - - $fastcgi_starter_path = str_replace("[system_user]",$data["new"]["system_user"],$fastcgi_config["fastcgi_starter_path"]); - $fastcgi_starter_path = str_replace("[client_id]",$client_id,$fastcgi_starter_path); - - if (!is_dir($fastcgi_starter_path)) - { - exec("mkdir -p ".escapeshellcmd($fastcgi_starter_path)); - //exec("chown ".$data["new"]["system_user"].":".$data["new"]["system_group"]." ".escapeshellcmd($fastcgi_starter_path)); - - - $app->log("Creating fastcgi starter script directory: $fastcgi_starter_path",LOGLEVEL_DEBUG); - } - - exec("chown -R ".$data["new"]["system_user"].":".$data["new"]["system_group"]." ".escapeshellcmd($fastcgi_starter_path)); - - $fcgi_tpl = new tpl(); - $fcgi_tpl->newTemplate("php-fcgi-starter.master"); - - $fcgi_tpl->setVar('php_ini_path',escapeshellcmd($fastcgi_config["fastcgi_phpini_path"])); - $fcgi_tpl->setVar('document_root',escapeshellcmd($data["new"]["document_root"])); - $fcgi_tpl->setVar('php_fcgi_children',escapeshellcmd($fastcgi_config["fastcgi_children"])); - $fcgi_tpl->setVar('php_fcgi_max_requests',escapeshellcmd($fastcgi_config["fastcgi_max_requests"])); - $fcgi_tpl->setVar('php_fcgi_bin',escapeshellcmd($fastcgi_config["fastcgi_bin"])); - $fcgi_tpl->setVar('security_level',intval($web_config["security_level"])); - - $php_open_basedir = ($data["new"]["php_open_basedir"] == '')?$data["new"]["document_root"]:$data["new"]["php_open_basedir"]; - $fcgi_tpl->setVar('open_basedir', escapeshellcmd($php_open_basedir)); - - $fcgi_starter_script = escapeshellcmd($fastcgi_starter_path.$fastcgi_config["fastcgi_starter_script"]); - file_put_contents($fcgi_starter_script,$fcgi_tpl->grab()); - unset($fcgi_tpl); - - $app->log("Creating fastcgi starter script: $fcgi_starter_script",LOGLEVEL_DEBUG); - - - exec("chmod 755 $fcgi_starter_script"); - exec("chown ".$data["new"]["system_user"].":".$data["new"]["system_group"]." $fcgi_starter_script"); - - $tpl->setVar('fastcgi_alias',$fastcgi_config["fastcgi_alias"]); - $tpl->setVar('fastcgi_starter_path',$fastcgi_starter_path); - $tpl->setVar('fastcgi_starter_script',$fastcgi_config["fastcgi_starter_script"]); - - } - - /** - * install cgi starter script and add script alias to config. - * This is needed to allow cgi with suexec (to do so, we need a bin in the document-path!) - * first we create the script directory if not already created, then copy over the starter script. - * TODO: we have to fetch the data from the server-settings. - */ - - if ($data["new"]["php"] == "cgi") - { - //$cgi_config = $app->getconf->get_server_config($conf["server_id"], 'cgi'); - - $cgi_config["cgi_starter_path"] = $web_config["website_basedir"]."/php-cgi-scripts/[system_user]/"; - $cgi_config["cgi_starter_script"] = "php-cgi-starter"; - $cgi_config["cgi_bin"] = "/usr/bin/php-cgi"; - - $cgi_starter_path = str_replace("[system_user]",$data["new"]["system_user"],$cgi_config["cgi_starter_path"]); - $cgi_starter_path = str_replace("[client_id]",$client_id,$cgi_starter_path); - - if (!is_dir($cgi_starter_path)) - { - exec("mkdir -p ".escapeshellcmd($cgi_starter_path)); - exec("chown ".$data["new"]["system_user"].":".$data["new"]["system_group"]." ".escapeshellcmd($cgi_starter_path)); - - $app->log("Creating cgi starter script directory: $cgi_starter_path",LOGLEVEL_DEBUG); - } - - $cgi_tpl = new tpl(); - $cgi_tpl->newTemplate("php-cgi-starter.master"); - - // This works, because php "rewrites" a symlink to the physical path - $php_open_basedir = ($data["new"]["php_open_basedir"] == '')?$data["new"]["document_root"]:$data["new"]["php_open_basedir"]; - $cgi_tpl->setVar('open_basedir', escapeshellcmd($php_open_basedir)); - $cgi_tpl->setVar('document_root', escapeshellcmd($data["new"]["document_root"])); - - // This will NOT work! - //$cgi_tpl->setVar('open_basedir', "/var/www/" . $data["new"]["domain"]); - $cgi_tpl->setVar('php_cgi_bin',$cgi_config["cgi_bin"]); - $cgi_tpl->setVar('security_level',$web_config["security_level"]); - - $cgi_starter_script = escapeshellcmd($cgi_starter_path.$cgi_config["cgi_starter_script"]); - file_put_contents($cgi_starter_script,$cgi_tpl->grab()); - unset($cgi_tpl); - - $app->log("Creating cgi starter script: $cgi_starter_script",LOGLEVEL_DEBUG); - - - exec("chmod 755 $cgi_starter_script"); - exec("chown ".$data["new"]["system_user"].":".$data["new"]["system_group"]." $cgi_starter_script"); - - $tpl->setVar('cgi_starter_path',$cgi_starter_path); - $tpl->setVar('cgi_starter_script',$cgi_config["cgi_starter_script"]); - - } - - $vhost_file = escapeshellcmd($web_config["vhost_conf_dir"].'/'.$data["new"]["domain"].'.vhost'); - file_put_contents($vhost_file,$tpl->grab()); - $app->log("Writing the vhost file: $vhost_file",LOGLEVEL_DEBUG); - unset($tpl); - - // Set the symlink to enable the vhost - $vhost_symlink = escapeshellcmd($web_config["vhost_conf_enabled_dir"].'/'.$data["new"]["domain"].'.vhost'); - if($data["new"]["active"] == 'y' && !is_link($vhost_symlink)) { - symlink($vhost_file,$vhost_symlink); - $app->log("Creating the symlink: $vhost_symlink => $vhost_file",LOGLEVEL_DEBUG); - } - - // Remove the symlink, if site is inactive - if($data["new"]["active"] == 'n' && is_link($vhost_symlink)) { - unlink($vhost_symlink); - $app->log("Removing symlink: $vhost_symlink => $vhost_file",LOGLEVEL_DEBUG); - } - - // remove old symlink and vhost file, if domain name of the site has changed - if($this->action == 'update' && $data["old"]["domain"] != '' && $data["new"]["domain"] != $data["old"]["domain"]) { - $vhost_symlink = escapeshellcmd($web_config["vhost_conf_enabled_dir"].'/'.$data["old"]["domain"].'.vhost'); - unlink($vhost_symlink); - $app->log("Removing symlink: $vhost_symlink => $vhost_file",LOGLEVEL_DEBUG); - $vhost_file = escapeshellcmd($web_config["vhost_conf_dir"].'/'.$data["old"]["domain"].'.vhost'); - unlink($vhost_file); - $app->log("Removing File $vhost_file",LOGLEVEL_DEBUG); - } - - //* Create .htaccess and .htpasswd file for website statistics - if(!is_file($data["new"]["document_root"].'/web/stats/.htaccess') or $data["old"]["document_root"] != $data["new"]["document_root"]) { - if(!is_dir($data["new"]["document_root"].'/web/stats')) mkdir($data["new"]["document_root"].'/web/stats'); - $ht_file = "AuthType Basic\nAuthName \"Members Only\"\nAuthUserFile ".$data["new"]["document_root"]."/.htpasswd_stats\nrequire valid-user"; - file_put_contents($data["new"]["document_root"].'/web/stats/.htaccess',$ht_file); - chmod($data["new"]["document_root"].'/web/stats/.htaccess',0755); - unset($ht_file); - } - - if(!is_file($data["new"]["document_root"].'/.htpasswd_stats') || $data["new"]["stats_password"] != $data["old"]["stats_password"]) { - if(trim($data["new"]["stats_password"]) != '') { - $htp_file = 'admin:'.trim($data["new"]["stats_password"]); - file_put_contents($data["new"]["document_root"].'/.htpasswd_stats',$htp_file); - chmod($data["new"]["document_root"].'/.htpasswd_stats',0755); - unset($htp_file); - } - } - - - if($apache_chrooted) { - $app->services->restartServiceDelayed('httpd','restart'); - } else { - // request a httpd reload when all records have been processed - $app->services->restartServiceDelayed('httpd','reload'); - } - - //* Unset action to clean it for next processed vhost. - $this->action = ''; - - } - - function delete($event_name,$data) { - global $app, $conf; - - // load the server configuration options - $app->uses("getconf"); - $web_config = $app->getconf->get_server_config($conf["server_id"], 'web'); - - //* Check if this is a chrooted setup - if($web_config['website_basedir'] != '' && @is_file($web_config['/var/www'].'/etc/passwd')) { - $apache_chrooted = true; - } else { - $apache_chrooted = false; - } - - if($data["old"]["type"] != "vhost" && $data["old"]["parent_domain_id"] > 0) { - //* This is a alias domain or subdomain, so we have to update the website instead - $parent_domain_id = intval($data["old"]["parent_domain_id"]); - $tmp = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$parent_domain_id." AND active = 'y'"); - $data["new"] = $tmp; - $data["old"] = $tmp; - $this->action = 'update'; - // just run the update function - $this->update($event_name,$data); - - } else { - //* This is a website - // Deleting the vhost file, symlink and the data directory - $vhost_symlink = escapeshellcmd($web_config["vhost_conf_enabled_dir"].'/'.$data["old"]["domain"].'.vhost'); - unlink($vhost_symlink); - $app->log("Removing symlink: $vhost_symlink => $vhost_file",LOGLEVEL_DEBUG); - - $vhost_file = escapeshellcmd($web_config["vhost_conf_dir"].'/'.$data["old"]["domain"].'.vhost'); - unlink($vhost_file); - $app->log("Removing vhost file: $vhost_file",LOGLEVEL_DEBUG); - - $docroot = escapeshellcmd($data["old"]["document_root"]); - if($docroot != '' && !stristr($docroot,'..')) exec("rm -rf $docroot"); - - - //remove the php fastgi starter script if available - if ($data["old"]["php"] == "fast-cgi") - { - $fastcgi_starter_path = str_replace("[system_user]",$data["old"]["system_user"],$web_config["fastcgi_starter_path"]); - if (is_dir($fastcgi_starter_path)) - { - exec("rm -rf $fastcgi_starter_path"); - } - } - - //remove the php cgi starter script if available - if ($data["old"]["php"] == "cgi") - { - // TODO: fetch the date from the server-settings - $web_config["cgi_starter_path"] = $web_config["website_basedir"]."/php-cgi-scripts/[system_user]/"; - - $cgi_starter_path = str_replace("[system_user]",$data["old"]["system_user"],$web_config["cgi_starter_path"]); - if (is_dir($cgi_starter_path)) - { - exec("rm -rf $cgi_starter_path"); - } - } - - $app->log("Removing website: $docroot",LOGLEVEL_DEBUG); - - // Delete the symlinks for the sites - $client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ".intval($data["old"]["sys_groupid"])); - $client_id = intval($client["client_id"]); - unset($client); - $tmp_symlinks_array = explode(':',$web_config["website_symlinks"]); - if(is_array($tmp_symlinks_array)) { - foreach($tmp_symlinks_array as $tmp_symlink) { - $tmp_symlink = str_replace("[client_id]",$client_id,$tmp_symlink); - $tmp_symlink = str_replace("[website_domain]",$data["old"]["domain"],$tmp_symlink); - // Remove trailing slash - if(substr($tmp_symlink, -1, 1) == '/') $tmp_symlink = substr($tmp_symlink, 0, -1); - // create the symlinks, if not exist - if(is_link($tmp_symlink)) { - unlink($tmp_symlink); - $app->log("Removing symlink: ".$tmp_symlink,LOGLEVEL_DEBUG); - } - } - } - // end removing symlinks - - // Delete the log file directory - $vhost_logfile_dir = escapeshellcmd('/var/log/ispconfig/httpd/'.$data["old"]["domain"]); - if($data["old"]["domain"] != '' && !stristr($vhost_logfile_dir,'..')) exec("rm -rf $vhost_logfile_dir"); - $app->log("Removing website logfile directory: $vhost_logfile_dir",LOGLEVEL_DEBUG); - - //delete the web user - $command = 'userdel'; - $command .= ' '.$data["old"]["system_user"]; - exec($command); - if($apache_chrooted) $this->_exec("chroot ".escapeshellcmd($web_config['website_basedir'])." ".$command); - - } - } - - //* This function is called when a IP on the server is inserted, updated or deleted - function server_ip($event_name,$data) { - global $app, $conf; - - // load the server configuration options - $app->uses("getconf"); - $web_config = $app->getconf->get_server_config($conf["server_id"], 'web'); - - $app->load('tpl'); - - $tpl = new tpl(); - $tpl->newTemplate("apache_ispconfig.conf.master"); - $records = $app->db->queryAllRecords("SELECT * FROM server_ip WHERE server_id = ".$conf["server_id"]." AND virtualhost = 'y'"); - - if(count($records) > 0) { - $tpl->setLoop('ip_adresses',$records); - } - - $vhost_file = escapeshellcmd($web_config["vhost_conf_dir"].'/ispconfig.conf'); - file_put_contents($vhost_file,$tpl->grab()); - $app->log("Writing the conf file: ispconfig.conf",LOGLEVEL_DEBUG); - unset($tpl); - - } - - //* Wrapper for exec function for easier debugging - private function _exec($command) { - global $app; - $app->log("exec: ".$command,LOGLEVEL_DEBUG); - exec($command); - } - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-enabled/apps_vhost_plugin.inc.php b/interface/ispconfig/server/plugins-enabled/apps_vhost_plugin.inc.php deleted file mode 100644 index e864dbd99..000000000 --- a/interface/ispconfig/server/plugins-enabled/apps_vhost_plugin.inc.php +++ /dev/null @@ -1,114 +0,0 @@ -plugins->registerEvent('server_insert','apps_vhost_plugin','insert'); - $app->plugins->registerEvent('server_update','apps_vhost_plugin','update'); - - - } - - function insert($event_name,$data) { - global $app, $conf; - - $this->update($event_name,$data); - - } - - // The purpose of this plugin is to rewrite the main.cf file - function update($event_name,$data) { - global $app, $conf; - - // get the config - $app->uses("getconf"); - $web_config = $app->getconf->get_server_config($conf["server_id"], 'web'); - - // Dont just copy over the virtualhost template but add some custom settings - $content = file_get_contents($conf["rootpath"]."/conf/apache_apps.vhost.master"); - - $vhost_conf_dir = $web_config['vhost_conf_dir']; - $vhost_conf_enabled_dir = $web_config['vhost_conf_enabled_dir']; - $apps_vhost_servername = ($web_config['apps_vhost_servername'] == '')?'':'ServerName '.$web_config['apps_vhost_servername']; - - $web_config['apps_vhost_port'] = (empty($web_config['apps_vhost_port']))?8081:$web_config['apps_vhost_port']; - $web_config['apps_vhost_ip'] = (empty($web_config['apps_vhost_ip']))?'_default_':$web_config['apps_vhost_ip']; - - $content = str_replace('{apps_vhost_ip}', $web_config['apps_vhost_ip'], $content); - $content = str_replace('{apps_vhost_port}', $web_config['apps_vhost_port'], $content); - $content = str_replace('{apps_vhost_dir}', $web_config['website_basedir'].'/apps', $content); - $content = str_replace('{apps_vhost_servername}', $apps_vhost_servername, $content); - $content = str_replace('{apps_vhost_basedir}', $web_config['website_basedir'], $content); - - - // comment out the listen directive if port is 80 or 443 - if($web_config['apps_vhost_ip'] == 80 or $web_config['apps_vhost_ip'] == 443) { - $content = str_replace('{vhost_port_listen}', '#', $content); - } else { - $content = str_replace('{vhost_port_listen}', '', $content); - } - - file_put_contents("$vhost_conf_dir/apps.vhost", $content); - - $app->services->restartServiceDelayed('httpd','restart'); - - - } - - -} // end class - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-enabled/cron_jailkit_plugin.inc.php b/interface/ispconfig/server/plugins-enabled/cron_jailkit_plugin.inc.php deleted file mode 100644 index 43adee1c5..000000000 --- a/interface/ispconfig/server/plugins-enabled/cron_jailkit_plugin.inc.php +++ /dev/null @@ -1,328 +0,0 @@ -plugins->registerEvent('cron_insert', $this->plugin_name, 'insert'); - $app->plugins->registerEvent('cron_update', $this->plugin_name, 'update'); - $app->plugins->registerEvent('cron_delete', $this->plugin_name, 'delete'); - - } - - //* This function is called, when a cron job is inserted in the database - function insert($event_name,$data) { - global $app, $conf; - - if($data["new"]["parent_domain_id"] == '') { - $app->log("Parent domain not set",LOGLEVEL_WARN); - return 0; - } - - //* get data from web - $parent_domain = $app->db->queryOneRecord("SELECT `domain_id`, `system_user`, `system_group`, `document_root`, `domain` FROM `web_domain` WHERE `domain_id` = ".intval($data["new"]["parent_domain_id"])); - if(!$parent_domain["domain_id"]) { - $app->log("Parent domain not found",LOGLEVEL_WARN); - return 0; - } elseif($parent_domain["system_user"] == 'root' or $parent_domain["system_group"] == 'root') { - $app->log("Websites (and Crons) can not be owned by the root user or group.",LOGLEVEL_WARN); - return 0; - } - - $this->parent_domain = $parent_domain; - - $app->uses('system'); - - if($app->system->is_user($parent_domain['system_user'])) { - - /** - * Setup Jailkit Chroot System If Enabled - */ - if ($data['new']['type'] == "chrooted") - { - // load the server configuration options - /* - $app->uses("getconf"); - $this->data = $data; - $this->app = $app; - $this->jailkit_config = $app->getconf->get_server_config($conf["server_id"], 'jailkit'); - $this->parent_domain = $parent_domain; - - $this->_setup_jailkit_chroot(); - - //$command .= 'usermod -U '.escapeshellcmd($parent_domain['system_user']); - //exec($command); - - $this->_add_jailkit_user(); - */ - $app->uses("getconf"); - $this->data = $data; - $this->app = $app; - $this->jailkit_config = $app->getconf->get_server_config($conf["server_id"], 'jailkit'); - - $this->_update_website_security_level(); - - $this->_setup_jailkit_chroot(); - - $this->_add_jailkit_user(); - - $command .= 'usermod -U '.escapeshellcmd($parent_domain["system_user"]); - exec($command); - - $this->_update_website_security_level(); - } - - $app->log("Jailkit Plugin (Cron) -> insert username:".$parent_domain['system_user'],LOGLEVEL_DEBUG); - - } else { - $app->log("Jailkit Plugin (Cron) -> insert username:".$parent_domain['system_user']." skipped, the user does not exist.",LOGLEVEL_WARN); - } - - } - - //* This function is called, when a cron job is updated in the database - function update($event_name,$data) { - global $app, $conf; - - if($data["new"]["parent_domain_id"] == '') { - $app->log("Parent domain not set",LOGLEVEL_WARN); - return 0; - } - //* get data from web - $parent_domain = $app->db->queryOneRecord("SELECT `domain_id`, `system_user`, `system_group`, `document_root`, `domain` FROM `web_domain` WHERE `domain_id` = ".intval($data["new"]["parent_domain_id"])); - if(!$parent_domain["domain_id"]) { - $app->log("Parent domain not found",LOGLEVEL_WARN); - return 0; - } elseif($parent_domain["system_user"] == 'root' or $parent_domain["system_group"] == 'root') { - $app->log("Websites (and Crons) can not be owned by the root user or group.",LOGLEVEL_WARN); - return 0; - } - - $app->uses('system'); - - $this->parent_domain = $parent_domain; - - if($app->system->is_user($parent_domain['system_user'])) { - - /** - * Setup Jailkit Chroot System If Enabled - */ - if ($data['new']['type'] == "chrooted") - { - $app->log("Jailkit Plugin (Cron) -> setting up jail", LOGLEVEL_DEBUG); - // load the server configuration options - /* - $app->uses("getconf"); - $this->data = $data; - $this->app = $app; - $this->jailkit_config = $app->getconf->get_server_config($conf["server_id"], 'jailkit'); - $this->parent_domain = $parent_domain; - - $this->_setup_jailkit_chroot(); - $this->_add_jailkit_user(); - */ - $app->uses("getconf"); - $this->data = $data; - $this->app = $app; - $this->jailkit_config = $app->getconf->get_server_config($conf["server_id"], 'jailkit'); - - $this->_update_website_security_level(); - - $this->_setup_jailkit_chroot(); - $this->_add_jailkit_user(); - - $this->_update_website_security_level(); - } - - $app->log("Jailkit Plugin (Cron) -> update username:".$parent_domain['system_user'],LOGLEVEL_DEBUG); - - } else { - $app->log("Jailkit Plugin (Cron) -> update username:".$parent_domain['system_user']." skipped, the user does not exist.",LOGLEVEL_WARN); - } - - } - - //* This function is called, when a cron job is deleted in the database - function delete($event_name,$data) { - global $app, $conf; - - //* nothing to do here! - - } - - function _setup_jailkit_chroot() - { - //check if the chroot environment is created yet if not create it with a list of program sections from the config - if (!is_dir($this->parent_domain['document_root'].'/etc/jailkit')) - { - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_chroot.sh'; - $command .= ' '.escapeshellcmd($this->parent_domain['document_root']); - $command .= ' \''.$this->jailkit_config['jailkit_chroot_app_sections'].'\''; - exec($command); - - $this->app->log("Added jailkit chroot with command: ".$command,LOGLEVEL_DEBUG); - - //$this->_add_jailkit_programs(); // done later on - - $this->app->load('tpl'); - - $tpl = new tpl(); - $tpl->newTemplate("bash.bashrc.master"); - - $tpl->setVar('jailkit_chroot',true); - $tpl->setVar('domain',$this->parent_domain['domain']); - $tpl->setVar('home_dir',$this->_get_home_dir("")); - - $bashrc = escapeshellcmd($this->parent_domain['document_root']).'/etc/bash.bashrc'; - if(@is_file($bashrc)) exec('rm '.$bashrc); - - file_put_contents($bashrc,$tpl->grab()); - unset($tpl); - - $this->app->log("Added bashrc scrpt : ".$bashrc,LOGLEVEL_DEBUG); - - $tpl = new tpl(); - $tpl->newTemplate("motd.master"); - - $tpl->setVar('domain',$this->parent_domain['domain']); - - $motd = escapeshellcmd($this->parent_domain['document_root']).'/var/run/motd'; - if(@is_file($motd)) exec('rm '.$motd); - - file_put_contents($motd,$tpl->grab()); - - } - $this->_add_jailkit_programs(); - } - - function _add_jailkit_programs() - { - //copy over further programs and its libraries - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_programs.sh'; - $command .= ' '.escapeshellcmd($this->parent_domain['document_root']); - $command .= ' \''.$this->jailkit_config['jailkit_chroot_app_programs'].'\''; - exec($command); - - $this->app->log("Added programs to jailkit chroot with command: ".$command,LOGLEVEL_DEBUG); - - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_programs.sh'; - $command .= ' '.escapeshellcmd($this->parent_domain['document_root']); - $command .= ' \''.$this->jailkit_config['jailkit_chroot_cron_programs'].'\''; - exec($command); - - $this->app->log("Added cron programs to jailkit chroot with command: ".$command,LOGLEVEL_DEBUG); - } - - function _add_jailkit_user() - { - //add the user to the chroot - $jailkit_chroot_userhome = $this->_get_home_dir($this->parent_domain['system_user']); - - if(!is_dir($this->parent_domain['document_root'].'/etc')) mkdir($this->parent_domain['document_root'].'/etc'); - if(!is_file($this->parent_domain['document_root'].'/etc/passwd')) exec('touch '.$this->parent_domain['document_root'].'/etc/passwd'); - - // IMPORTANT! - // ALWAYS create the user. Even if the user was created before - // if we check if the user exists, then a update (no shell -> jailkit) will not work - // and the user has FULL ACCESS to the root of the server! - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_user.sh'; - $command .= ' '.escapeshellcmd($this->parent_domain['system_user']); - $command .= ' '.escapeshellcmd($this->parent_domain['document_root']); - $command .= ' '.$jailkit_chroot_userhome; - $command .= ' '.escapeshellcmd("/bin/bash"); - exec($command); - - $this->app->log("Added jailkit user to chroot with command: ".$command,LOGLEVEL_DEBUG); - - exec("mkdir -p ".escapeshellcmd($this->parent_domain['document_root'].$jailkit_chroot_userhome)); - } - - function _get_home_dir($username) - { - return str_replace("[username]",escapeshellcmd($username),$this->jailkit_config["jailkit_chroot_home"]); - } - - //* Update the website root directory permissions depending on the security level - function _update_website_security_level() { - global $app,$conf; - - // load the server configuration options - $app->uses("getconf"); - $web_config = $app->getconf->get_server_config($conf["server_id"], 'web'); - - //* If the security level is set to high - if($web_config['security_level'] == 20) { - $this->_exec("chmod 755 ".escapeshellcmd($this->parent_domain['document_root'])); - $this->_exec("chown root:root ".escapeshellcmd($this->parent_domain['document_root'])); - } - - } - - //* Wrapper for exec function for easier debugging - private function _exec($command) { - global $app; - $app->log("exec: ".$command,LOGLEVEL_DEBUG); - exec($command); - } - - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-enabled/cron_plugin.inc.php b/interface/ispconfig/server/plugins-enabled/cron_plugin.inc.php deleted file mode 100644 index 4ee83137a..000000000 --- a/interface/ispconfig/server/plugins-enabled/cron_plugin.inc.php +++ /dev/null @@ -1,239 +0,0 @@ -plugins->registerEvent('cron_insert',$this->plugin_name,'insert'); - $app->plugins->registerEvent('cron_update',$this->plugin_name,'update'); - $app->plugins->registerEvent('cron_delete',$this->plugin_name,'delete'); - - } - - function insert($event_name,$data) { - global $app, $conf; - - $this->action = 'insert'; - // just run the update function - $this->update($event_name,$data); - - } - - - function update($event_name,$data) { - global $app, $conf; - - if($this->action != 'insert') $this->action = 'update'; - - // load the server configuration options - $app->uses("getconf"); - - if($data["new"]["parent_domain_id"] == '') { - $app->log("Parent domain not set",LOGLEVEL_WARN); - return 0; - } - - //* get data from web - $parent_domain = $app->db->queryOneRecord("SELECT `domain_id`, `system_user`, `system_group`, `document_root`, `hd_quota` FROM `web_domain` WHERE `domain_id` = ".intval($data["new"]["parent_domain_id"])); - if(!$parent_domain["domain_id"]) { - $app->log("Parent domain not found",LOGLEVEL_WARN); - return 0; - } elseif($parent_domain["system_user"] == 'root' or $parent_domain["system_group"] == 'root') { - $app->log("Websites (and Crons) can not be owned by the root user or group.",LOGLEVEL_WARN); - return 0; - } - - // Get the client ID - $client = $app->dbmaster->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ".intval($data["new"]["sys_groupid"])); - $client_id = intval($client["client_id"]); - unset($client); - - // Create group and user, if not exist - $app->uses("system"); - - $groupname = escapeshellcmd($parent_domain["system_group"]); - if($parent_domain["system_group"] != '' && !$app->system->is_group($parent_domain["system_group"])) { - exec("groupadd $groupname"); - $app->log("Adding the group: $groupname",LOGLEVEL_DEBUG); - } - - $username = escapeshellcmd($parent_domain["system_user"]); - if($parent_domain["system_user"] != '' && !$app->system->is_user($parent_domain["system_user"])) { - exec("useradd -d ".escapeshellcmd($parent_domain["document_root"])." -g $groupname $username -s /bin/false"); - $app->log("Adding the user: $username",LOGLEVEL_DEBUG); - } - - // Set the quota for the user - if($username != '' && $app->system->is_user($username)) { - if($parent_domain["hd_quota"] > 0){ - $blocks_soft = $parent_domain["hd_quota"] * 1024; - $blocks_hard = $blocks_soft + 1024; - } else { - $blocks_soft = $blocks_hard = 0; - } - exec("setquota -u $username $blocks_soft $blocks_hard 0 0 -a &> /dev/null"); - exec("setquota -T -u $username 604800 604800 -a &> /dev/null"); - } - - // make temp direcory writable for the apache user and the website user - exec("chmod 777 ".escapeshellcmd($parent_domain["document_root"]."/tmp")); - - /** TODO READ CRON MASTER **/ - - $this->parent_domain = $parent_domain; - $this->_write_crontab(); - - $this->action = ''; - - } - - function delete($event_name,$data) { - global $app, $conf; - - //* get data from web - $parent_domain = $app->db->queryOneRecord("SELECT `domain_id`, `system_user`, `system_group`, `document_root`, `hd_quota` FROM `web_domain` WHERE `domain_id` = ".intval($data["old"]["parent_domain_id"])); - if(!$parent_domain["domain_id"]) { - $app->log("Parent domain not found",LOGLEVEL_WARN); - return 0; - } - - // Get the client ID - $client = $app->dbmaster->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ".intval($data["old"]["sys_groupid"])); - $client_id = intval($client["client_id"]); - unset($client); - - $this->parent_domain = $parent_domain; - $this->_write_crontab(); - } - - function _write_crontab() { - global $app, $conf; - - //* load the server configuration options - $app->uses("getconf"); - - $cron_config = $app->getconf->get_server_config($conf["server_id"], 'cron'); - - //* try to find customer's mail address - - /** TODO: add possibility for client to choose mail notification! **/ - $cron_content = "MAILTO=''\n\n"; - $chr_cron_content = "MAILTO=''\n\n"; - $chr_cron_content .= "SHELL='/usr/sbin/jk_chrootsh'\n\n"; - - $cmd_count = 0; - $chr_cmd_count = 0; - - //* read all active cron jobs from database and write them to file - $cron_jobs = $app->db->queryAllRecords("SELECT `run_min`, `run_hour`, `run_mday`, `run_month`, `run_wday`, `command`, `type` FROM `cron` WHERE `parent_domain_id` = ".intval($this->parent_domain["domain_id"]) . " AND `active` = 'y'"); - if($cron_jobs && count($cron_jobs) > 0) { - foreach($cron_jobs as $job) { - $command = "{$job['run_min']}\t{$job['run_hour']}\t{$job['run_mday']}\t{$job['run_month']}\t{$job['run_wday']}"; - $command .= "\t{$this->parent_domain['system_user']}"; //* running as user - if($job['type'] == 'url') { - $command .= "\t{$cron_config['wget']} -q -O /dev/null " . escapeshellarg($job['command']) . " >/dev/null 2>&1"; - } else { - if($job['type'] == 'chrooted') { - if(substr($job['command'], 0, strlen($this->parent_domain['document_root'])) == $this->parent_domain['document_root']) { - //* delete the unneeded path part - $job['command'] = substr($job['command'], strlen($this->parent_domain['document_root'])); - } - } - - $command .= "\t"; - if(substr($job['command'], 0, 1) != "/") $command .= $this->parent_domain['document_root'].'/'; - $command .= $job['command']; - } - - if($job['type'] == 'chrooted') { - $chr_cron_content .= $command . "\n"; - $chr_cmd_count++; - } else { - $cron_content .= $command . "\n"; - $cmd_count++; - } - } - } - - $cron_file = escapeshellcmd($cron_config["crontab_dir"].'/ispc_'.$this->parent_domain["system_user"]); - if($cmd_count > 0) { - file_put_contents($cron_file, $cron_content); - $app->log("Wrote Cron file $cron_file with content:\n$cron_content",LOGLEVEL_DEBUG); - } else { - @unlink($cron_file); - $app->log("Deleted Cron file $cron_file",LOGLEVEL_DEBUG); - } - - $cron_file = escapeshellcmd($cron_config["crontab_dir"].'/ispc_chrooted_'.$this->parent_domain["system_user"]); - if($chr_cmd_count > 0) { - file_put_contents($cron_file, $chr_cron_content); - $app->log("Wrote Cron file $cron_file with content:\n$chr_cron_content",LOGLEVEL_DEBUG); - } else { - @unlink($cron_file); - $app->log("Deleted Cron file $cron_file",LOGLEVEL_DEBUG); - } - - return 0; - } - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-enabled/firewall_plugin.inc.php b/interface/ispconfig/server/plugins-enabled/firewall_plugin.inc.php deleted file mode 100644 index c3bc470cd..000000000 --- a/interface/ispconfig/server/plugins-enabled/firewall_plugin.inc.php +++ /dev/null @@ -1,145 +0,0 @@ -plugins->registerEvent('firewall_insert',$this->plugin_name,'insert'); - $app->plugins->registerEvent('firewall_update',$this->plugin_name,'update'); - $app->plugins->registerEvent('firewall_delete',$this->plugin_name,'delete'); - - - } - - - function insert($event_name,$data) { - global $app, $conf; - - $this->update($event_name,$data); - - } - - function update($event_name,$data) { - global $app, $conf; - - $tcp_ports = ''; - $udp_ports = ''; - - $ports = explode(',',$data["new"]["tcp_port"]); - if(is_array($ports)) { - foreach($ports as $p) { - if(strstr($p,':')) { - $p_parts = explode(':',$p); - $p_clean = intval($p_parts[0]).':'.intval($p_parts[1]); - } else { - $p_clean = intval($p); - } - $tcp_ports .= $p_clean . ' '; - } - } - $tcp_ports = trim($tcp_ports); - - $ports = explode(',',$data["new"]["udp_port"]); - if(is_array($ports)) { - foreach($ports as $p) { - if(strstr($p,':')) { - $p_parts = explode(':',$p); - $p_clean = intval($p_parts[0]).':'.intval($p_parts[1]); - } else { - $p_clean = intval($p); - } - $udp_ports .= $p_clean . ' '; - } - } - $udp_ports = trim($udp_ports); - - $app->load('tpl'); - $tpl = new tpl(); - $tpl->newTemplate("bastille-firewall.cfg.master"); - - $tpl->setVar("TCP_PUBLIC_SERVICES",$tcp_ports); - $tpl->setVar("UDP_PUBLIC_SERVICES",$udp_ports); - - file_put_contents('/etc/Bastille/bastille-firewall.cfg',$tpl->grab()); - $app->log('Writing firewall configuration /etc/Bastille/bastille-firewall.cfg',LOGLEVEL_DEBUG); - unset($tpl); - - if($data["new"]["active"] == 'y') { - exec('/etc/init.d/bastille-firewall restart'); - if(@is_file('/etc/debian_version')) exec('update-rc.d bastille-firewall defaults'); - $app->log('Restarting the firewall',LOGLEVEL_DEBUG); - } else { - exec('/etc/init.d/bastille-firewall stop'); - if(@is_file('/etc/debian_version')) exec('update-rc.d -f bastille-firewall remove'); - $app->log('Stopping the firewall',LOGLEVEL_DEBUG); - } - - - } - - function delete($event_name,$data) { - global $app, $conf; - - exec('/etc/init.d/bastille-firewall stop'); - if(@is_file('/etc/debian_version')) exec('update-rc.d -f bastille-firewall remove'); - $app->log('Stopping the firewall',LOGLEVEL_DEBUG); - - } - - - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-enabled/ftpuser_base_plugin.inc.php b/interface/ispconfig/server/plugins-enabled/ftpuser_base_plugin.inc.php deleted file mode 100644 index 04bb51b98..000000000 --- a/interface/ispconfig/server/plugins-enabled/ftpuser_base_plugin.inc.php +++ /dev/null @@ -1,112 +0,0 @@ -plugins->registerEvent('ftp_user_insert',$this->plugin_name,'insert'); - $app->plugins->registerEvent('ftp_user_update',$this->plugin_name,'update'); - $app->plugins->registerEvent('ftp_user_delete',$this->plugin_name,'delete'); - - - } - - - function insert($event_name,$data) { - global $app, $conf; - - if(!is_dir($data['new']['dir'])) { - $app->log("FTP User directory '".$data['new']['dir']."' does not exist. Creating it now.",LOGLEVEL_DEBUG); - - $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".intval($data['new']['parent_domain_id'])); - - exec('mkdir -p '.escapeshellcmd($data['new']['dir'])); - exec('chown '.escapeshellcmd($web["system_user"]).':'.escapeshellcmd($web['system_group']).' '.$data['new']['dir']); - - $app->log("Added ftpuser_dir: ".$data['new']['dir'],LOGLEVEL_DEBUG); - } - - } - - function update($event_name,$data) { - global $app, $conf; - - if(!is_dir($data['new']['dir'])) { - $app->log("FTP User directory '".$data['new']['dir']."' does not exist. Creating it now.",LOGLEVEL_DEBUG); - - $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".intval($data['new']['parent_domain_id'])); - - exec('mkdir -p '.escapeshellcmd($data['new']['dir'])); - exec('chown '.escapeshellcmd($web["system_user"]).':'.escapeshellcmd($web['system_group']).' '.$data['new']['dir']); - - $app->log("Added ftpuser_dir: ".$data['new']['dir'],LOGLEVEL_DEBUG); - } - } - - function delete($event_name,$data) { - global $app, $conf; - - $app->log("Ftpuser:".$data['new']['username']." deleted.",LOGLEVEL_DEBUG); - - } - - - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-enabled/getmail_plugin.inc.php b/interface/ispconfig/server/plugins-enabled/getmail_plugin.inc.php deleted file mode 100644 index 032ed437d..000000000 --- a/interface/ispconfig/server/plugins-enabled/getmail_plugin.inc.php +++ /dev/null @@ -1,163 +0,0 @@ -plugins->registerEvent('mail_get_insert','getmail_plugin','insert'); - $app->plugins->registerEvent('mail_get_update','getmail_plugin','update'); - $app->plugins->registerEvent('mail_get_delete','getmail_plugin','delete'); - - - - } - - function insert($event_name,$data) { - global $app, $conf; - - $this->update($event_name,$data); - - } - - function update($event_name,$data) { - global $app, $conf; - - // load the server specific configuration options for getmail - $app->uses("getconf"); - $getmail_config = $app->getconf->get_server_config($conf["server_id"], 'getmail'); - $this->getmail_config_dir = $getmail_config["getmail_config_dir"]; - - // Check if the config directory exists. - if(!is_dir($this->getmail_config_dir)) { - $app->log("Getmail config directory '".$this->getmail_config_dir."' does not exist.",LOGLEVEL_ERROR); - } else { - - // Delete the config file first, if it exists - $this->delete($event_name,$data); - - // Get the new config file path - $config_file_path = escapeshellcmd($this->getmail_config_dir.'/'.$data["new"]["source_server"].'_'.$data["new"]["source_username"].'.conf'); - if(stristr($config_file_path, "..") or stristr($config_file_path, "|") or stristr($config_file_path,";") or stristr($config_file_path,'$')) { - $app->log("Possibly faked path for getmail config file: '$config_file_path'. File is not written.",LOGLEVEL_ERROR); - return false; - } - - - if($data["new"]["active"] == 'y') { - // Open master template - $tpl = file_get_contents($conf["rootpath"].'/conf/getmail.conf.master'); - - // Shall emails be deleted after retrieval - if($data["new"]["source_delete"] == 'y') { - $tpl = str_replace('{DELETE}','1',$tpl); - } else { - $tpl = str_replace('{DELETE}','0',$tpl); - } - - // Set the data retriever - if($data["new"]["type"] == 'pop3') { - $tpl = str_replace('{TYPE}','SimplePOP3Retriever',$tpl); - } elseif ($data["new"]["type"] == 'imap') { - $tpl = str_replace('{TYPE}','SimpleIMAPRetriever',$tpl); - } elseif ($data["new"]["type"] == 'pop3ssl') { - $tpl = str_replace('{TYPE}','SimplePOP3SSLRetriever',$tpl); - } elseif ($data["new"]["type"] == 'imapssl') { - $tpl = str_replace('{TYPE}','SimpleIMAPSSLRetriever',$tpl); - } - - // Set server, username, password and destination. - $tpl = str_replace('{SERVER}',$data["new"]["source_server"],$tpl); - $tpl = str_replace('{USERNAME}',$data["new"]["source_username"],$tpl); - $tpl = str_replace('{PASSWORD}',$data["new"]["source_password"],$tpl); - $tpl = str_replace('{DESTINATION}',$data["new"]["destination"],$tpl); - - // Write the config file. - file_put_contents($config_file_path,$tpl); - $app->log("Writing Getmail config file: $config_file_path",LOGLEVEL_DEBUG); - exec("chmod 400 $config_file_path"); - exec("chown getmail $config_file_path"); - unset($tpl); - unset($config_file_path); - - } else { - // If record is set to inactive, we will delete the file - if(is_file($config_file_path)) unlink($config_file_path); - } - } - } - - function delete($event_name,$data) { - global $app, $conf; - - // load the server specific configuration options for getmail - $app->uses("getconf"); - $getmail_config = $app->getconf->get_server_config($conf["server_id"], 'getmail'); - $this->getmail_config_dir = $getmail_config["getmail_config_dir"]; - - $config_file_path = escapeshellcmd($this->getmail_config_dir.'/'.$data["old"]["source_server"].'_'.$data["old"]["source_username"].'.conf'); - if(stristr($config_file_path,"..") || stristr($config_file_path,"|") || stristr($config_file_path,";") || stristr($config_file_path,'$')) { - $app->log("Possibly faked path for getmail config file: '$config_file_path'. File is not written.",LOGLEVEL_ERROR); - return false; - } - if(is_file($config_file_path)) unlink($config_file_path); - } - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-enabled/mail_plugin.inc.php b/interface/ispconfig/server/plugins-enabled/mail_plugin.inc.php deleted file mode 100644 index bbabe660e..000000000 --- a/interface/ispconfig/server/plugins-enabled/mail_plugin.inc.php +++ /dev/null @@ -1,311 +0,0 @@ -plugins->registerEvent('mail_user_insert',$this->plugin_name,'user_insert'); - $app->plugins->registerEvent('mail_user_update',$this->plugin_name,'user_update'); - $app->plugins->registerEvent('mail_user_delete',$this->plugin_name,'user_delete'); - - //* Mail Domains - //$app->plugins->registerEvent('mail_domain_insert',$this->plugin_name,'domain_insert'); - //$app->plugins->registerEvent('mail_domain_update',$this->plugin_name,'domain_update'); - $app->plugins->registerEvent('mail_domain_delete',$this->plugin_name,'domain_delete'); - - //* Mail transports - $app->plugins->registerEvent('mail_transport_insert',$this->plugin_name,'transport_update'); - $app->plugins->registerEvent('mail_transport_update',$this->plugin_name,'transport_update'); - $app->plugins->registerEvent('mail_transport_delete',$this->plugin_name,'transport_update'); - - } - - - function user_insert($event_name,$data) { - global $app, $conf; - - //* get the config - $app->uses("getconf,system"); - $mail_config = $app->getconf->get_server_config($conf["server_id"], 'mail'); - - // convert to lower case - it could cause problems if some directory above has upper case name -// $data['new']['maildir'] = strtolower($data['new']['maildir']); - - $maildomain_path = $data['new']['maildir']; - $tmp_basepath = $data['new']['maildir']; - $tmp_basepath_parts = explode('/',$tmp_basepath); - unset($tmp_basepath_parts[count($tmp_basepath_parts)-1]); - $base_path = implode('/',$tmp_basepath_parts); - - - - //* Create the mail domain directory, if it does not exist - if(!empty($base_path) && !is_dir($base_path)) { - exec("su -c 'mkdir -p ".escapeshellcmd($base_path)."' ".$mail_config['mailuser_name']); - $app->log('Created Directory: '.$base_path,LOGLEVEL_DEBUG); - } - - // Dovecot uses a different mail layout with a separate 'Maildir' subdirectory. - if($mail_config['pop3_imap_daemon'] == 'dovecot') { - exec("su -c 'mkdir -p ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - $app->log('Created Directory: '.$maildomain_path,LOGLEVEL_DEBUG); - $maildomain_path .= '/Maildir'; - } - - //* When the mail user dir exists but it is not a valid maildir, remove it - if(!empty($maildomain_path) && is_dir($maildomain_path) && !is_dir($maildomain_path.'/new') && !is_dir($maildomain_path.'/cur')) { - exec("su -c 'rm -rf ".escapeshellcmd($data['new']['maildir'])."' vmail"); - $app->log("Removed invalid maildir and rebuild it: ".escapeshellcmd($data['new']['maildir']),LOGLEVEL_WARN); - } - - //* Create the maildir, if it doesn not exist, set permissions, set quota. - if(!empty($maildomain_path) && !is_dir($maildomain_path)) { - - //exec("su -c 'maildirmake ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - $app->system->maildirmake($maildomain_path,$mail_config['mailuser_name']); - - exec('chown -R '.$mail_config['mailuser_name'].':'.$mail_config['mailuser_group'].' '.escapeshellcmd($data['new']['maildir'])); - $app->log("Set ownership on ".escapeshellcmd($data['new']['maildir']),LOGLEVEL_DEBUG); - - //* This is to fix the maildrop quota not being rebuilt after the quota is changed. - if($mail_config['pop3_imap_daemon'] != 'dovecot') { - exec("su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); // Avoid maildirmake quota bug, see debian bug #214911 - $app->log('Created Maildir: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - } - } - - if(!is_dir($data['new']['maildir'].'/.Sent')) { - //exec("su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Sent: '."su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - $app->system->maildirmake($maildomain_path,$mail_config['mailuser_name'],'Sent'); - } - if(!is_dir($data['new']['maildir'].'/.Drafts')) { - //exec("su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Drafts: '."su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - $app->system->maildirmake($maildomain_path,$mail_config['mailuser_name'],'Drafts'); - } - if(!is_dir($data['new']['maildir'].'/.Trash')) { - //exec("su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Trash: '."su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - $app->system->maildirmake($maildomain_path,$mail_config['mailuser_name'],'Trash'); - } - if(!is_dir($data['new']['maildir'].'/.Junk')) { - //exec("su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Junk: '."su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - $app->system->maildirmake($maildomain_path,$mail_config['mailuser_name'],'Junk'); - } - - //* Set the maildir quota - if(is_dir($data['new']['maildir'].'/new') && $mail_config['pop3_imap_daemon'] != 'dovecot') { - exec("su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($data['new']['maildir'])."' ".$mail_config['mailuser_name']); - $app->log('Set Maildir quota: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($data['new']['maildir'])."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - } - } - - function user_update($event_name,$data) { - global $app, $conf; - - // get the config - $app->uses("getconf,system"); - $mail_config = $app->getconf->get_server_config($conf["server_id"], 'mail'); - - // convert to lower case - it could cause problems if some directory above has upper case name - // $data['new']['maildir'] = strtolower($data['new']['maildir']); - - // Create the maildir, if it does not exist - /* - if(!is_dir($data['new']['maildir'])) { - exec('mkdir -p '.escapeshellcmd($data['new']['maildir'])); - exec('chown '.$mail_config['mailuser_name'].':'.$mail_config['mailuser_group'].' '.escapeshellcmd($data['new']['maildir'])); - $app->log('Created Maildir: '.$data['new']['maildir'],LOGLEVEL_DEBUG); - } - */ - - $maildomain_path = $data['new']['maildir']; - $tmp_basepath = $data['new']['maildir']; - $tmp_basepath_parts = explode('/',$tmp_basepath); - unset($tmp_basepath_parts[count($tmp_basepath_parts)-1]); - $base_path = implode('/',$tmp_basepath_parts); - - //* Create the mail domain directory, if it does not exist - if(!empty($base_path) && !is_dir($base_path)) { - exec("su -c 'mkdir -p ".escapeshellcmd($base_path)."' ".$mail_config['mailuser_name']); - $app->log('Created Directory: '.$base_path,LOGLEVEL_DEBUG); - } - - // Dovecot uses a different mail layout with a separate 'Maildir' subdirectory. - if($mail_config['pop3_imap_daemon'] == 'dovecot') { - exec("su -c 'mkdir -p ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - $app->log('Created Directory: '.$base_path,LOGLEVEL_DEBUG); - $maildomain_path .= '/Maildir'; - } - - //* When the mail user dir exists but it is not a valid maildir, remove it - if(!empty($maildomain_path) && is_dir($maildomain_path) && !is_dir($maildomain_path.'/new') && !is_dir($maildomain_path.'/cur')) { - exec("su -c 'rm -rf ".escapeshellcmd($data['new']['maildir'])."' vmail"); - $app->log("Removed invalid maildir and rebuild it: ".escapeshellcmd($data['new']['maildir']),LOGLEVEL_WARN); - } - - //* Create the maildir, if it doesn not exist, set permissions, set quota. - if(!empty($maildomain_path) && !is_dir($maildomain_path.'/new')) { - //exec("su -c 'maildirmake ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log("Created Maildir "."su -c 'maildirmake ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - $app->system->maildirmake($maildomain_path,$mail_config['mailuser_name']); - - exec('chown -R '.$mail_config['mailuser_name'].':'.$mail_config['mailuser_group'].' '.escapeshellcmd($data['new']['maildir'])); - $app->log("Set ownership on ".escapeshellcmd($data['new']['maildir']),LOGLEVEL_DEBUG); - //* This is to fix the maildrop quota not being rebuilt after the quota is changed. - if($mail_config['pop3_imap_daemon'] != 'dovecot') { - exec("su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); // Avoid maildirmake quota bug, see debian bug #214911 - $app->log('Updated Maildir quota: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - } - } - - if(!is_dir($data['new']['maildir'].'/.Sent')) { - //exec("su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Sent: '."su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - $app->system->maildirmake($maildomain_path,$mail_config['mailuser_name'],'Sent'); - } - if(!is_dir($data['new']['maildir'].'/.Drafts')) { - //exec("su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Drafts: '."su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - $app->system->maildirmake($maildomain_path,$mail_config['mailuser_name'],'Drafts'); - } - if(!is_dir($data['new']['maildir'].'/.Trash')) { - //exec("su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Trash: '."su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - $app->system->maildirmake($maildomain_path,$mail_config['mailuser_name'],'Trash'); - } - if(!is_dir($data['new']['maildir'].'/.Junk')) { - //exec("su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Junk: '."su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - $app->system->maildirmake($maildomain_path,$mail_config['mailuser_name'],'Junk'); - } - - // Move mailbox, if domain has changed and delete old mailbox - if($data['new']['maildir'] != $data['old']['maildir'] && is_dir($data['old']['maildir'])) { - if(is_dir($data['new']['maildir'])) { - exec("rm -fr ".escapeshellcmd($data['new']['maildir'])); - //rmdir($data['new']['maildir']); - } - exec('mv -f '.escapeshellcmd($data['old']['maildir']).' '.escapeshellcmd($data['new']['maildir'])); - // exec('mv -f '.escapeshellcmd($data['old']['maildir']).'/* '.escapeshellcmd($data['new']['maildir'])); - // if(is_file($data['old']['maildir'].'.ispconfig_mailsize'))exec('mv -f '.escapeshellcmd($data['old']['maildir']).'.ispconfig_mailsize '.escapeshellcmd($data['new']['maildir'])); - // rmdir($data['old']['maildir']); - $app->log('Moved Maildir from: '.$data['old']['maildir'].' to '.$data['new']['maildir'],LOGLEVEL_DEBUG); - } - //This is to fix the maildrop quota not being rebuilt after the quota is changed. - // Courier Layout - if(is_dir($data['new']['maildir'].'/new') && $mail_config['pop3_imap_daemon'] != 'dovecot') { - exec("su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($data['new']['maildir'])."' ".$mail_config['mailuser_name']); - $app->log('Updated Maildir quota: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($data['new']['maildir'])."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); - } - } - - function user_delete($event_name,$data) { - global $app, $conf; - - $old_maildir_path = escapeshellcmd($data['old']['maildir']); - if(!stristr($old_maildir_path,'..') && !stristr($old_maildir_path,'*') && strlen($old_maildir_path) >= 10) { - exec('rm -rf '.escapeshellcmd($old_maildir_path)); - $app->log('Deleted the Maildir: '.$data['old']['maildir'],LOGLEVEL_DEBUG); - } else { - $app->log('Possible security violation when deleting the maildir: '.$data['old']['maildir'],LOGLEVEL_ERROR); - } - } - - function domain_delete($event_name,$data) { - global $app, $conf; - - // get the config - $app->uses("getconf"); - $mail_config = $app->getconf->get_server_config($conf["server_id"], 'mail'); - - //* Delete maildomain path - $old_maildomain_path = escapeshellcmd($mail_config['homedir_path'].'/'.$data['old']['domain']); - if(!stristr($old_maildomain_path,'//') && !stristr($old_maildomain_path,'..') && !stristr($old_maildomain_path,'*') && !stristr($old_maildomain_path,'&') && strlen($old_maildomain_path) >= 10) { - exec('rm -rf '.escapeshellcmd($old_maildomain_path)); - $app->log('Deleted the mail domain directory: '.$old_maildomain_path,LOGLEVEL_DEBUG); - } else { - $app->log('Possible security violation when deleting the mail domain directory: '.$old_maildomain_path,LOGLEVEL_ERROR); - } - - //* Delete mailfilter path - $old_maildomain_path = escapeshellcmd($mail_config['homedir_path'].'/mailfilters/'.$data['old']['domain']); - if(!stristr($old_maildomain_path,'//') && !stristr($old_maildomain_path,'..') && !stristr($old_maildomain_path,'*') && !stristr($old_maildomain_path,'&') && strlen($old_maildomain_path) >= 10) { - exec('rm -rf '.escapeshellcmd($old_maildomain_path)); - $app->log('Deleted the mail domain mailfilter directory: '.$old_maildomain_path,LOGLEVEL_DEBUG); - } else { - $app->log('Possible security violation when deleting the mail domain mailfilter directory: '.$old_maildomain_path,LOGLEVEL_ERROR); - } - } - - function transport_update($event_name,$data) { - global $app, $conf; - - exec('/etc/init.d/postfix reload &> /dev/null'); - $app->log('Postfix config reloaded ',LOGLEVEL_DEBUG); - - } - - - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-enabled/maildeliver_plugin.inc.php b/interface/ispconfig/server/plugins-enabled/maildeliver_plugin.inc.php deleted file mode 100644 index 5e325dbf0..000000000 --- a/interface/ispconfig/server/plugins-enabled/maildeliver_plugin.inc.php +++ /dev/null @@ -1,131 +0,0 @@ -plugins->registerEvent('mail_user_update','maildeliver_plugin','update'); - $app->plugins->registerEvent('mail_user_delete','maildeliver_plugin','delete'); - - } - - - function update($event_name,$data) { - global $app, $conf; - - // load the server configuration options - $app->uses("getconf"); - $mail_config = $app->getconf->get_server_config($conf["server_id"], 'mail'); - if(substr($mail_config["homedir_path"],-1) == '/') { - $mail_config["homedir_path"] = substr($mail_config["homedir_path"],0,-1); - } - - if(isset($data["new"]["email"])) { - $email_parts = explode("@",$data["new"]["email"]); - } else { - $email_parts = explode("@",$data["old"]["email"]); - } - - // Write the custom mailfilter script, if mailfilter recipe has changed - if($data["old"]["custom_mailfilter"] != $data["new"]["custom_mailfilter"] - or $data["old"]["move_junk"] != $data["new"]["move_junk"] - or $data["old"]["autoresponder_text"] != $data["new"]["autoresponder_text"] - or $data["old"]["autoresponder"] != $data["new"]["autoresponder"] - or (isset($data["new"]["email"]) and $data["old"]["email"] != $data["new"]["email"]) - or $data["old"]["autoresponder_start_date"] != $data["new"]["autoresponder_start_date"] - or $data["old"]["autoresponder_end_date"] != $data["new"]["autoresponder_end_date"]) { - - $app->log("Mailfilter config has been changed",LOGLEVEL_DEBUG); - - $sieve_file = $data["new"]["maildir"].'/.sieve'; - if(is_file($sieve_file)) unlink($sieve_file) or $app->log("Unable to delete file: $sieve_file",LOGLEVEL_WARN); - - $app->load('tpl'); - - $tpl = new tpl(); - $tpl->newTemplate("sieve_filter.master"); - - // Custom filters - $tpl->setVar('custom_mailfilter',$data["new"]["custom_mailfilter"]); - - // Move junk - $tpl->setVar('move_junk',$data["new"]["move_junk"]); - - // Autoresponder - $tpl->setVar('autoresponder',$data["new"]["autoresponder"]); - $tpl->setVar('autoresponder_text',$data["new"]["autoresponder_text"]); - - file_put_contents($sieve_file,$tpl->grab()); - - unset($tpl); - - } - } - - function delete($event_name,$data) { - global $app, $conf; - - $sieve_file = $data["old"]["maildir"].'/.sieve'; - if(is_file($sieve_file)) unlink($sieve_file) or $app->log("Unable to delete file: $sieve_file",LOGLEVEL_WARN); - } - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-enabled/mysql_clientdb_plugin.inc.php b/interface/ispconfig/server/plugins-enabled/mysql_clientdb_plugin.inc.php deleted file mode 100644 index 6b2651d60..000000000 --- a/interface/ispconfig/server/plugins-enabled/mysql_clientdb_plugin.inc.php +++ /dev/null @@ -1,305 +0,0 @@ -plugins->registerEvent('database_insert',$this->plugin_name,'db_insert'); - $app->plugins->registerEvent('database_update',$this->plugin_name,'db_update'); - $app->plugins->registerEvent('database_delete',$this->plugin_name,'db_delete'); - - - } - - function process_host_list($action, $database_name, $database_user, $database_password, $host_list, $link, $database_rename_user = "") { - global $app; - - $action = strtoupper($action); - - // set to all hosts if none given - if(trim($host_list) == "") $host_list = "%"; - - // process arrays and comma separated strings - if(!is_array($host_list)) $host_list = split(",", $host_list); - - $success = true; - - // loop through hostlist - foreach($host_list as $db_host) { - $db_host = trim($db_host); - - // check if entry is valid ip address - $valid = true; - if($db_host == "%") { - $valid = true; - } elseif(preg_match("/^[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}$/", $db_host)) { - $groups = explode(".", $db_host); - foreach($groups as $group){ - if($group<0 OR $group>255) - $valid=false; - } - } else { - $valid = false; - } - - if($valid == false) continue; - - if($action == "GRANT") { - if(!mysql_query("GRANT ALL ON ".mysql_real_escape_string($database_name,$link).".* TO '".mysql_real_escape_string($database_user,$link)."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($database_password,$link)."';",$link)) $success = false; - } elseif($action == "REVOKE") { - //mysql_query("REVOKE ALL PRIVILEGES ON ".mysql_real_escape_string($database_name,$link).".* FROM '".mysql_real_escape_string($database_user,$link)."';",$link); - } elseif($action == "DROP") { - if(!mysql_query("DROP USER '".mysql_real_escape_string($database_user,$link)."'@'$db_host';",$link)) $success = false; - } elseif($action == "RENAME") { - if(!mysql_query("RENAME USER '".mysql_real_escape_string($database_user,$link)."'@'$db_host' TO '".mysql_real_escape_string($database_rename_user,$link)."'@'$db_host'",$link)) $success = false; - } elseif($action == "PASSWORD") { - if(!mysql_query("SET PASSWORD FOR '".mysql_real_escape_string($database_user,$link)."'@'$db_host' = PASSWORD('".mysql_real_escape_string($database_password,$link)."');",$link)) $success = false; - } - } - - return $success; - } - - function db_insert($event_name,$data) { - global $app, $conf; - - if($data["new"]["type"] == 'mysql') { - if(!include(ISPC_LIB_PATH.'/mysql_clientdb.conf')) { - $app->log('Unable to open'.ISPC_LIB_PATH.'/mysql_clientdb.conf',LOGLEVEL_ERROR); - return; - } - - //* Connect to the database - $link = mysql_connect($clientdb_host, $clientdb_user, $clientdb_password); - if (!$link) { - $app->log('Unable to connect to the database'.mysql_error($link),LOGLEVEL_ERROR); - return; - } - - // Charset for the new table - if($data["new"]["database_charset"] != '') { - $query_charset_table = ' DEFAULT CHARACTER SET '.$data["new"]["database_charset"]; - } else { - $query_charset_table = ''; - } - - //* Create the new database - if (mysql_query('CREATE DATABASE '.mysql_real_escape_string($data["new"]["database_name"]).$query_charset_table,$link)) { - $app->log('Created MySQL database: '.$data["new"]["database_name"],LOGLEVEL_DEBUG); - } else { - $app->log('Unable to connect to the database'.mysql_error($link),LOGLEVEL_ERROR); - } - - // Create the database user if database is active - if($data["new"]["active"] == 'y') { - - if($data["new"]["remote_access"] == 'y') { - $this->process_host_list("GRANT", $data["new"]["database_name"], $data["new"]["database_user"], $data["new"]["database_password"], $data["new"]["remote_ips"], $link); - } - - $db_host = 'localhost'; - mysql_query("GRANT ALL ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($data["new"]["database_password"],$link)."';",$link); - - - } - - mysql_query("FLUSH PRIVILEGES;",$link); - mysql_close($link); - } - } - - function db_update($event_name,$data) { - global $app, $conf; - - if($data["new"]["type"] == 'mysql') { - if(!include(ISPC_LIB_PATH.'/mysql_clientdb.conf')) { - $app->log('Unable to open'.ISPC_LIB_PATH.'/mysql_clientdb.conf',LOGLEVEL_ERROR); - return; - } - - //* Connect to the database - $link = mysql_connect($clientdb_host, $clientdb_user, $clientdb_password); - if (!$link) { - $app->log('Unable to connect to the database'.mysql_error($link),LOGLEVEL_ERROR); - return; - } - - // Create the database user if database was disabled before - if($data["new"]["active"] == 'y' && $data["old"]["active"] == 'n') { - - if($data["new"]["remote_access"] == 'y') { - $this->process_host_list("GRANT", $data["new"]["database_name"], $data["new"]["database_user"], $data["new"]["database_password"], $data["new"]["remote_ips"], $link); - } - - $db_host = 'localhost'; - mysql_query("GRANT ALL ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($data["new"]["database_password"],$link)."';",$link); - - // mysql_query("GRANT ALL ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($data["new"]["database_password"],$link)."';",$link); - //echo "GRANT ALL ON ".mysql_real_escape_string($data["new"]["database_name"]).".* TO '".mysql_real_escape_string($data["new"]["database_user"])."'@'$db_host' IDENTIFIED BY '".mysql_real_escape_string($data["new"]["database_password"])."';"; - } - - // Remove database user, if inactive - if($data["new"]["active"] == 'n' && $data["old"]["active"] == 'y') { - - if($data["old"]["remote_access"] == 'y') { - $this->process_host_list("DROP", "", $data["old"]["database_user"], "", $data["old"]["remote_ips"], $link); - } - - $db_host = 'localhost'; - mysql_query("DROP USER '".mysql_real_escape_string($data["old"]["database_user"],$link)."'@'$db_host';",$link); - - - //mysql_query("REVOKE ALL PRIVILEGES ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* FROM '".mysql_real_escape_string($data["new"]["database_user"],$link)."';",$link); - } - - //* Rename User - if($data["new"]["database_user"] != $data["old"]["database_user"]) { - $db_host = 'localhost'; - mysql_query("RENAME USER '".mysql_real_escape_string($data["old"]["database_user"],$link)."'@'$db_host' TO '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host'",$link); - if($data["old"]["remote_access"] == 'y') { - $this->process_host_list("RENAME", "", $data["new"]["database_user"], "", $data["new"]["remote_ips"], $link, $data["new"]["database_user"]); - } - $app->log('Renaming mysql user: '.$data["old"]["database_user"].' to '.$data["new"]["database_user"],LOGLEVEL_DEBUG); - } - - //* Remote access option has changed. - if($data["new"]["remote_access"] != $data["old"]["remote_access"]) { - - //* revoke old priveliges - //mysql_query("REVOKE ALL PRIVILEGES ON ".mysql_real_escape_string($data["new"]["database_name"],$link).".* FROM '".mysql_real_escape_string($data["new"]["database_user"],$link)."';",$link); - - //* set new priveliges - if($data["new"]["remote_access"] == 'y') { - $this->process_host_list("GRANT", $data["new"]["database_name"], $data["new"]["database_user"], $data["new"]["database_password"], $data["new"]["remote_ips"], $link); - } else { - $this->process_host_list("DROP", "", $data["old"]["database_user"], "", $data["old"]["remote_ips"], $link); - } - $app->log('Changing mysql remote access priveliges for database: '.$data["new"]["database_name"],LOGLEVEL_DEBUG); - } elseif($data["new"]["remote_access"] == 'y' && $data["new"]["remote_ips"] != $data["old"]["remote_ips"]) { - //* Change remote access list - $this->process_host_list("DROP", "", $data["old"]["database_user"], "", $data["old"]["remote_ips"], $link); - $this->process_host_list("GRANT", $data["new"]["database_name"], $data["new"]["database_user"], $data["new"]["database_password"], $data["new"]["remote_ips"], $link); - } - - //* Change password - if($data["new"]["database_password"] != $data["old"]["database_password"]) { - $db_host = 'localhost'; - mysql_query("SET PASSWORD FOR '".mysql_real_escape_string($data["new"]["database_user"],$link)."'@'$db_host' = PASSWORD('".mysql_real_escape_string($data["new"]["database_password"],$link)."');",$link); - - if($data["new"]["remote_access"] == 'y') { - $this->process_host_list("PASSWORD", "", $data["new"]["database_user"], $data["new"]["database_password"], $data["new"]["remote_ips"], $link); - } - $app->log('Changing mysql user password for: '.$data["new"]["database_user"],LOGLEVEL_DEBUG); - } - - mysql_query("FLUSH PRIVILEGES;",$link); - mysql_close($link); - } - - } - - function db_delete($event_name,$data) { - global $app, $conf; - - if($data["old"]["type"] == 'mysql') { - if(!include(ISPC_LIB_PATH.'/mysql_clientdb.conf')) { - $app->log('Unable to open'.ISPC_LIB_PATH.'/mysql_clientdb.conf',LOGLEVEL_ERROR); - return; - } - - //* Connect to the database - $link = mysql_connect($clientdb_host, $clientdb_user, $clientdb_password); - if (!$link) { - $app->log('Unable to connect to the database'.mysql_error($link),LOGLEVEL_ERROR); - return; - } - - //* Get the db host setting for the access priveliges - if($data["old"]["remote_access"] == 'y') { - if($this->process_host_list("DROP", "", $data["old"]["database_user"], "", $data["old"]["remote_ips"], $link)) { - $app->log('Dropping mysql user: '.$data["old"]["database_user"],LOGLEVEL_DEBUG); - } else { - $app->log('Error while dropping mysql user: '.$data["old"]["database_user"].' '.mysql_error($link),LOGLEVEL_ERROR); - } - } - $db_host = 'localhost'; - if(mysql_query("DROP USER '".mysql_real_escape_string($data["old"]["database_user"],$link)."'@'$db_host';",$link)) { - $app->log('Dropping mysql user: '.$data["old"]["database_user"],LOGLEVEL_DEBUG); - } else { - $app->log('Error while dropping mysql user: '.$data["old"]["database_user"].' '.mysql_error($link),LOGLEVEL_ERROR); - } - - if(mysql_query('DROP DATABASE '.mysql_real_escape_string($data["old"]["database_name"],$link),$link)) { - $app->log('Dropping mysql database: '.$data["old"]["database_name"],LOGLEVEL_DEBUG); - } else { - $app->log('Error while dropping mysql database: '.$data["old"]["database_name"].' '.mysql_error($link),LOGLEVEL_ERROR); - } - - mysql_query("FLUSH PRIVILEGES;",$link); - mysql_close($link); - } - - - } - - - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-enabled/network_settings_plugin.inc.php b/interface/ispconfig/server/plugins-enabled/network_settings_plugin.inc.php deleted file mode 100644 index cfe33c7a2..000000000 --- a/interface/ispconfig/server/plugins-enabled/network_settings_plugin.inc.php +++ /dev/null @@ -1,289 +0,0 @@ -plugins->registerEvent('server_insert','network_settings_plugin','insert'); - $app->plugins->registerEvent('server_update','network_settings_plugin','update'); - - $app->plugins->registerEvent('server_ip_insert','network_settings_plugin','insert'); - $app->plugins->registerEvent('server_ip_update','network_settings_plugin','update'); - - - - } - - function insert($event_name,$data) { - global $app, $conf; - - $this->update($event_name,$data); - - } - - // The purpose of this plugin is to rewrite the main.cf file - function update($event_name,$data) { - global $app, $conf; - - // get the config - $app->uses("getconf"); - $server_config = $app->getconf->get_server_config($conf["server_id"], 'server'); - - // Configure the debian network card settings - if($server_config['auto_network_configuration'] == 'y') { - - if (is_file('/etc/debian_version')) - { - copy('/etc/network/interfaces','/etc/network/interfaces~'); - - $app->load('tpl'); - - $network_tpl = new tpl(); - $network_tpl->newTemplate("debian_network_interfaces.master"); - - $network_tpl->setVar('ip_address',$server_config["ip_address"]); - $network_tpl->setVar('netmask',$server_config["netmask"]); - $network_tpl->setVar('gateway',$server_config["gateway"]); - $network_tpl->setVar('broadcast',$this->broadcast($server_config["ip_address"],$server_config["netmask"])); - $network_tpl->setVar('network',$this->network($server_config["ip_address"],$server_config["netmask"])); - - $records = $app->db->queryAllRecords("SELECT ip_address FROM server_ip WHERE server_id = ".intval($conf["server_id"]) . " order by ip_address"); - $ip_records = array(); - $additionl_ip_records = 0; - $n = 0; - if(is_array($records)) { - foreach($records as $rec) { - /* - * don't insert the main-ip again! - */ - if ($rec['ip_address'] != $server_config["ip_address"]) - { - $ip_records[$n] = array( - 'id' => $n, - 'ip_address' => $rec['ip_address'], - 'netmask' => $server_config["netmask"], - 'gateway' => $server_config["gateway"], - 'broadcast' => $this->broadcast($rec['ip_address'],$server_config["netmask"]), - 'network' => $this->network($rec['ip_address'],$server_config["netmask"]) - ); - $additionl_ip_records = 1; - $n++; - } - } - } - - /* - * If we have more than 1 IP we have to add the main-ip at the end - * of the network-ip-list. If we don't do so, there may be problems - * in multi-server-settings (with the acces from other server to the - * main-server) because the LAST IP in the list is the IP mysql uses - * to determine the host, the user is logging in from. - */ - if ($additionl_ip_records != 0) - { - $swap["ip_address"] = $ip_records[$n-1]["ip_address"]; - $swap["netmask"] = $ip_records[$n-1]["netmask"]; - $swap["gateway"] = $ip_records[$n-1]["gateway"]; - - $ip_records[$n-1] = array( - 'id' => $n-1, - 'ip_address' => $server_config['ip_address'], - 'netmask' => $server_config["netmask"], - 'gateway' => $server_config["gateway"], - 'broadcast' => $this->broadcast($server_config['ip_address'],$server_config["netmask"]), - 'network' => $this->network($server_config['ip_address'],$server_config["netmask"]) - ); - $network_tpl->setVar('ip_address',$swap["ip_address"]); - $network_tpl->setVar('netmask',$swap["netmask"]); - $network_tpl->setVar('gateway',$swap["gateway"]); - $network_tpl->setVar('broadcast',$this->broadcast($swap["ip_address"],$swap["netmask"])); - $network_tpl->setVar('network',$this->network($swap["ip_address"],$swap["netmask"])); - } - - $network_tpl->setVar('additionl_ip_records',$additionl_ip_records); - $network_tpl->setLoop('interfaces',$ip_records); - file_put_contents('/etc/network/interfaces',$network_tpl->grab()); - unset($network_tpl); - - $app->log("Changed Network settings",LOGLEVEL_DEBUG); - exec('/etc/init.d/networking force-reload'); - } - elseif (is_file('/etc/gentoo-release')) - { - copy('/etc/conf.d/net','/etc/conf.d/net~'); - - $app->load('tpl'); - - $network_tpl = new tpl(); - $network_tpl->newTemplate("gentoo_network_interfaces.master"); - - $network_tpl->setVar('ip_address',$server_config["ip_address"]); - $network_tpl->setVar('netmask',$server_config["netmask"]); - $network_tpl->setVar('gateway',$server_config["gateway"]); - $network_tpl->setVar('broadcast',$this->broadcast($server_config["ip_address"],$server_config["netmask"])); - - $records = $app->db->queryAllRecords("SELECT ip_address FROM server_ip WHERE server_id = ".intval($conf["server_id"]) . " order by ip_address"); - $ip_records = array(); - $additionl_ip_records = 0; - $n = 0; - if(is_array($records)) { - foreach($records as $rec) { - /* - * don't insert the main-ip again! - */ - if ($rec['ip_address'] != $server_config["ip_address"]) - { - $ip_records[$n] = array( - 'id' => $n, - 'ip_address' => $rec['ip_address'], - 'netmask' => $server_config["netmask"], - 'gateway' => $server_config["gateway"], - 'broadcast' => $this->broadcast($rec['ip_address'],$server_config["netmask"]) - ); - $additionl_ip_records = 1; - $n++; - } - } - } - - /* - * If we have more than 1 IP we have to add the main-ip at the end - * of the network-ip-list. If we don't do so, there may be problems - * in multi-server-settings (with the acces from other server to the - * main-server) because the LAST IP in the list is the IP mysql uses - * to determine the host, the user is logging in from. - */ - if ($additionl_ip_records != 0) - { - $swap["ip_address"] = $ip_records[$n-1]["ip_address"]; - $swap["netmask"] = $ip_records[$n-1]["netmask"]; - $swap["gateway"] = $ip_records[$n-1]["gateway"]; - - $ip_records[$n-1] = array( - 'id' => $n-1, - 'ip_address' => $server_config['ip_address'], - 'netmask' => $server_config["netmask"], - 'gateway' => $server_config["gateway"], - 'broadcast' => $this->broadcast($server_config['ip_address'],$server_config["netmask"]) - ); - $network_tpl->setVar('ip_address',$swap["ip_address"]); - $network_tpl->setVar('netmask',$swap["netmask"]); - $network_tpl->setVar('gateway',$swap["gateway"]); - $network_tpl->setVar('broadcast',$this->broadcast($swap["ip_address"],$swap["netmask"])); - } - - $network_tpl->setVar('additionl_ip_records',$additionl_ip_records); - $network_tpl->setLoop('interfaces',$ip_records); - file_put_contents('/etc/conf.d/net',$network_tpl->grab()); - unset($network_tpl); - - $app->log("Changed Network settings",LOGLEVEL_DEBUG); - exec('/etc/init.d/net.eth0 restart'); - } - else { - $app->log("Network configuration not available for this linux distribution.",LOGLEVEL_DEBUG); - } - - } else { - $app->log("Network configuration disabled in server settings.",LOGLEVEL_WARN); - } - - } - - function network($ip, $netmask){ - $netmask = $this->netmask($netmask); - list($f1,$f2,$f3,$f4) = explode(".", $netmask); - $netmask_bin = str_pad(decbin($f1),8,"0",STR_PAD_LEFT).str_pad(decbin($f2),8,"0",STR_PAD_LEFT).str_pad(decbin($f3),8,"0",STR_PAD_LEFT).str_pad(decbin($f4),8,"0",STR_PAD_LEFT); - list($f1,$f2,$f3,$f4) = explode(".", $ip); - $ip_bin = str_pad(decbin($f1),8,"0",STR_PAD_LEFT).str_pad(decbin($f2),8,"0",STR_PAD_LEFT).str_pad(decbin($f3),8,"0",STR_PAD_LEFT).str_pad(decbin($f4),8,"0",STR_PAD_LEFT); - for($i=0;$i<32;$i++){ - $network_bin .= substr($netmask_bin,$i,1) * substr($ip_bin,$i,1); - } - $network_bin = wordwrap($network_bin, 8, ".", 1); - list($f1,$f2,$f3,$f4) = explode(".", trim($network_bin)); - return bindec($f1).".".bindec($f2).".".bindec($f3).".".bindec($f4); - } - - function broadcast($ip, $netmask){ - $netmask = $this->netmask($netmask); - $binary_netmask = $this->binary_netmask($netmask); - list($f1,$f2,$f3,$f4) = explode(".", $ip); - $ip_bin = str_pad(decbin($f1),8,"0",STR_PAD_LEFT).str_pad(decbin($f2),8,"0",STR_PAD_LEFT).str_pad(decbin($f3),8,"0",STR_PAD_LEFT).str_pad(decbin($f4),8,"0",STR_PAD_LEFT); - $broadcast_bin = str_pad(substr($ip_bin, 0, $binary_netmask),32,"1",STR_PAD_RIGHT); - $broadcast_bin = wordwrap($broadcast_bin, 8, ".", 1); - list($f1,$f2,$f3,$f4) = explode(".", trim($broadcast_bin)); - return bindec($f1).".".bindec($f2).".".bindec($f3).".".bindec($f4); - } - - function netmask($netmask){ - list($f1,$f2,$f3,$f4) = explode(".", trim($netmask)); - $bin = str_pad(decbin($f1),8,"0",STR_PAD_LEFT).str_pad(decbin($f2),8,"0",STR_PAD_LEFT).str_pad(decbin($f3),8,"0",STR_PAD_LEFT).str_pad(decbin($f4),8,"0",STR_PAD_LEFT); - $parts = explode("0", $bin); - $bin = str_pad($parts[0], 32, "0", STR_PAD_RIGHT); - $bin = wordwrap($bin, 8, ".", 1); - list($f1,$f2,$f3,$f4) = explode(".", trim($bin)); - return bindec($f1).".".bindec($f2).".".bindec($f3).".".bindec($f4); - } - - function binary_netmask($netmask){ - list($f1,$f2,$f3,$f4) = explode(".", trim($netmask)); - $bin = str_pad(decbin($f1),8,"0",STR_PAD_LEFT).str_pad(decbin($f2),8,"0",STR_PAD_LEFT).str_pad(decbin($f3),8,"0",STR_PAD_LEFT).str_pad(decbin($f4),8,"0",STR_PAD_LEFT); - $parts = explode("0", $bin); - return substr_count($parts[0], "1"); - } - -} // end class - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-enabled/postfix_filter_plugin.inc.php b/interface/ispconfig/server/plugins-enabled/postfix_filter_plugin.inc.php deleted file mode 100644 index 6b5ed5373..000000000 --- a/interface/ispconfig/server/plugins-enabled/postfix_filter_plugin.inc.php +++ /dev/null @@ -1,153 +0,0 @@ -plugins->registerEvent('mail_content_filter_insert','postfix_filter_plugin','insert'); - $app->plugins->registerEvent('mail_content_filter_update','postfix_filter_plugin','update'); - $app->plugins->registerEvent('mail_content_filter_delete','postfix_filter_plugin','delete'); - - - - } - - function insert($event_name,$data) { - global $app, $conf; - - $this->update($event_name,$data); - - } - - function update($event_name,$data) { - global $app, $conf; - - $type = $data["new"]["type"]; - if($type != '') { - $sql = "SELECT * FROM mail_content_filter WHERE server_id = ".intval($conf["server_id"])." AND type = '".$app->db->quote($type)."' AND active = 'y'"; - $rules = $app->db->queryAllRecords($sql); - $content = ''; - foreach($rules as $rule) { - $content .= $rule["pattern"]."\n"; - $content .= " ".$rule["action"]." ".$rule["data"]."\n"; - } - - if($type == 'header') { - file_put_contents('/etc/postfix/header_checks',$content); - $app->log("Writing /etc/postfix/header_checks",LOGLEVEL_DEBUG); - } - - if($type == 'mime_header') { - file_put_contents('/etc/postfix/mime_header_checks',$content); - $app->log("Writing /etc/postfix/mime_header_checks",LOGLEVEL_DEBUG); - } - - if($type == 'nested_header') { - file_put_contents('/etc/postfix/nested_header_checks',$content); - $app->log("Writing /etc/postfix/nested_header_checks",LOGLEVEL_DEBUG); - } - - if($type == 'body') { - file_put_contents('/etc/postfix/body_checks',$content); - $app->log("Writing /etc/postfix/body_checks",LOGLEVEL_DEBUG); - } - } - - $type = $data["old"]["type"]; - if($type != '') { - $sql = "SELECT * FROM mail_content_filter WHERE server_id = ".intval($conf["server_id"])." AND type = '".$app->db->quote($type)."' AND active = 'y'"; - $rules = $app->db->queryAllRecords($sql); - $content = ''; - foreach($rules as $rule) { - $content .= $rule["pattern"]."\n"; - $content .= " ".$rule["action"]." ".$rule["data"]."\n"; - } - - if($type == 'header') { - file_put_contents('/etc/postfix/header_checks',$content); - $app->log("Writing /etc/postfix/header_checks",LOGLEVEL_DEBUG); - } - - if($type == 'mime_header') { - file_put_contents('/etc/postfix/mime_header_checks',$content); - $app->log("Writing /etc/postfix/mime_header_checks",LOGLEVEL_DEBUG); - } - - if($type == 'nested_header') { - file_put_contents('/etc/postfix/nested_header_checks',$content); - $app->log("Writing /etc/postfix/nested_header_checks",LOGLEVEL_DEBUG); - } - - if($type == 'body') { - file_put_contents('/etc/postfix/body_checks',$content); - $app->log("Writing /etc/postfix/body_checks",LOGLEVEL_DEBUG); - } - } - } - - function delete($event_name,$data) { - global $app, $conf; - - $this->update($event_name,$data); - } - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-enabled/postfix_server_plugin.inc.php b/interface/ispconfig/server/plugins-enabled/postfix_server_plugin.inc.php deleted file mode 100644 index f506ce32a..000000000 --- a/interface/ispconfig/server/plugins-enabled/postfix_server_plugin.inc.php +++ /dev/null @@ -1,116 +0,0 @@ -plugins->registerEvent('server_insert','postfix_server_plugin','insert'); - $app->plugins->registerEvent('server_update','postfix_server_plugin','update'); - - - - } - - function insert($event_name,$data) { - global $app, $conf; - - $this->update($event_name,$data); - - } - - // The purpose of this plugin is to rewrite the main.cf file - function update($event_name,$data) { - global $app, $conf; - - // get the config - $app->uses("getconf"); - $mail_config = $app->getconf->get_server_config($conf["server_id"], 'mail'); - - copy('/etc/postfix/main.cf','/etc/postfix/main.cf~'); - - if($mail_config["relayhost"] != '') { - exec("postconf -e 'relayhost = ".$mail_config["relayhost"]."'"); - if($mail_config["relayhost_user"] != '' && $mail_config["relayhost_password"] != '') { - exec("postconf -e 'smtp_sasl_auth_enable = yes'"); - } else { - exec("postconf -e 'smtp_sasl_auth_enable = no'"); - } - exec("postconf -e 'smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd'"); - exec("postconf -e 'smtp_sasl_security_options ='"); - - // Store the sasl passwd - $content = $mail_config["relayhost"]." ".$mail_config["relayhost_user"].":".$mail_config["relayhost_password"]; - file_put_contents('/etc/postfix/sasl_passwd',$content); - exec("chown root:root /etc/postfix/sasl_passwd"); - exec("chmod 600 /etc/postfix/sasl_passwd"); - exec("postmap /etc/postfix/sasl_passwd"); - exec("/etc/init.d/postfix restart"); - - } else { - exec("postconf -e 'relayhost ='"); - } - - exec("postconf -e 'mailbox_size_limit = ".intval($mail_config["mailbox_size_limit"]*1024*1024)."'"); - exec("postconf -e 'message_size_limit = ".intval($mail_config["message_size_limit"]*1024*1024)."'"); - - } - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-enabled/shelluser_base_plugin.inc.php b/interface/ispconfig/server/plugins-enabled/shelluser_base_plugin.inc.php deleted file mode 100644 index ed7fdc635..000000000 --- a/interface/ispconfig/server/plugins-enabled/shelluser_base_plugin.inc.php +++ /dev/null @@ -1,189 +0,0 @@ -plugins->registerEvent('shell_user_insert',$this->plugin_name,'insert'); - $app->plugins->registerEvent('shell_user_update',$this->plugin_name,'update'); - $app->plugins->registerEvent('shell_user_delete',$this->plugin_name,'delete'); - - - } - - - function insert($event_name,$data) { - global $app, $conf; - - $app->uses('system'); - - if($app->system->is_user($data['new']['puser'])) { - // Get the UID of the parent user - $uid = intval($app->system->getuid($data['new']['puser'])); - if($uid > $this->min_uid) { - $command = 'useradd'; - $command .= ' -d '.escapeshellcmd($data['new']['dir']); - $command .= ' -g '.escapeshellcmd($data['new']['pgroup']); - $command .= ' -o '; // non unique - if($data['new']['password'] != '') $command .= ' -p '.escapeshellcmd($data['new']['password']); - $command .= ' -s '.escapeshellcmd($data['new']['shell']); - $command .= ' -u '.escapeshellcmd($uid); - $command .= ' '.escapeshellcmd($data['new']['username']); - - exec($command); - $app->log("Executed command: ".$command,LOGLEVEL_DEBUG); - $app->log("Added shelluser: ".$data['new']['username'],LOGLEVEL_DEBUG); - - //* Create .bash_history file - exec('touch '.escapeshellcmd($data['new']['dir']).'/.bash_history'); - exec('chmod 755 '.escapeshellcmd($data['new']['dir']).'/.bash_history'); - exec('chown '.escapeshellcmd($data['new']['username']).':'.escapeshellcmd($data['new']['pgroup']).' '.escapeshellcmd($data['new']['dir']).'/.bash_history'); - - //* Disable shell user temporarily if we use jailkit - if($data['new']['chroot'] == 'jailkit') { - $command = 'usermod -s /bin/false -L '.escapeshellcmd($data['new']['username']); - exec($command); - $app->log("Disabling shelluser temporarily: ".$command,LOGLEVEL_DEBUG); - } - - } else { - $app->log("UID = $uid for shelluser:".$data['new']['username']." not allowed.",LOGLEVEL_ERROR); - } - } else { - $app->log("Skippung insert of user:".$data['new']['username'].", parent user ".$data['new']['puser']." does not exist.",LOGLEVEL_WARN); - } - } - - function update($event_name,$data) { - global $app, $conf; - - $app->uses('system'); - - if($app->system->is_user($data['new']['puser'])) { - // Get the UID of the parent user - $uid = intval($app->system->getuid($data['new']['puser'])); - if($uid > $this->min_uid) { - // Check if the user that we want to update exists, if not, we insert it - if($app->system->is_user($data['old']['username'])) { - $command = 'usermod'; - $command .= ' --home '.escapeshellcmd($data['new']['dir']); - $command .= ' --gid '.escapeshellcmd($data['new']['pgroup']); - // $command .= ' --non-unique '; - $command .= ' --password '.escapeshellcmd($data['new']['password']); - if($data['new']['chroot'] != 'jailkit') $command .= ' --shell '.escapeshellcmd($data['new']['shell']); - // $command .= ' --uid '.escapeshellcmd($uid); - $command .= ' --login '.escapeshellcmd($data['new']['username']); - $command .= ' '.escapeshellcmd($data['old']['username']); - - exec($command); - $app->log("Executed command: $command ",LOGLEVEL_DEBUG); - $app->log("Updated shelluser: ".$data['old']['username'],LOGLEVEL_DEBUG); - - - //* Create .bash_history file - if(!is_file($data['new']['dir']).'/.bash_history') { - exec('touch '.escapeshellcmd($data['new']['dir']).'/.bash_history'); - exec('chmod 755 '.escapeshellcmd($data['new']['dir']).'/.bash_history'); - exec('chown '.escapeshellcmd($data['new']['username']).':'.escapeshellcmd($data['new']['pgroup']).' '.escapeshellcmd($data['new']['dir']).'/.bash_history'); - } - - } else { - // The user does not exist, so we insert it now - $this->insert($event_name,$data); - } - } else { - $app->log("UID = $uid for shelluser:".$data['new']['username']." not allowed.",LOGLEVEL_ERROR); - } - } else { - $app->log("Skippung update for user:".$data['new']['username'].", parent user ".$data['new']['puser']." does not exist.",LOGLEVEL_WARN); - } - } - - function delete($event_name,$data) { - global $app, $conf; - - $app->uses('system'); - - if($app->system->is_user($data['old']['username'])) { - // Get the UID of the user - $userid = intval($app->system->getuid($data['old']['username'])); - if($userid > $this->min_uid) { - // We delete only non jailkit users, jailkit users will be deleted by the jailkit plugin. - if ($data['old']['chroot'] != "jailkit") { - $command = 'userdel -f'; - $command .= ' '.escapeshellcmd($data['old']['username']); - - exec($command); - $app->log("Deleted shelluser: ".$data['old']['username'],LOGLEVEL_DEBUG); - } - - } else { - $app->log("UID = $userid for shelluser:".$data['old']['username']." not allowed.",LOGLEVEL_ERROR); - } - } else { - $app->log("User:".$data['new']['username']." does not exist in in /etc/passwd, skipping delete.",LOGLEVEL_WARN); - } - - } - - - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-enabled/shelluser_jailkit_plugin.inc.php b/interface/ispconfig/server/plugins-enabled/shelluser_jailkit_plugin.inc.php deleted file mode 100644 index e5665fc11..000000000 --- a/interface/ispconfig/server/plugins-enabled/shelluser_jailkit_plugin.inc.php +++ /dev/null @@ -1,303 +0,0 @@ -plugins->registerEvent('shell_user_insert',$this->plugin_name,'insert'); - $app->plugins->registerEvent('shell_user_update',$this->plugin_name,'update'); - $app->plugins->registerEvent('shell_user_delete',$this->plugin_name,'delete'); - - - } - - //* This function is called, when a shell user is inserted in the database - function insert($event_name,$data) { - global $app, $conf; - - $app->uses('system'); - - if($app->system->is_user($data['new']['username'])) { - - /** - * Setup Jailkit Chroot System If Enabled - */ - if ($data['new']['chroot'] == "jailkit") - { - // load the server configuration options - $app->uses("getconf"); - $this->data = $data; - $this->app = $app; - $this->jailkit_config = $app->getconf->get_server_config($conf["server_id"], 'jailkit'); - - $this->_update_website_security_level(); - - $this->_setup_jailkit_chroot(); - - $this->_add_jailkit_user(); - - $command .= 'usermod -U '.escapeshellcmd($data['new']['username']); - exec($command); - - $this->_update_website_security_level(); - } - - $app->log("Jailkit Plugin -> insert username:".$data['new']['username'],LOGLEVEL_DEBUG); - - } else { - $app->log("Jailkit Plugin -> insert username:".$data['new']['username']." skipped, the user does not exist.",LOGLEVEL_WARN); - } - - } - - //* This function is called, when a shell user is updated in the database - function update($event_name,$data) { - global $app, $conf; - - $app->uses('system'); - - if($app->system->is_user($data['new']['username'])) { - - /** - * Setup Jailkit Chroot System If Enabled - */ - if ($data['new']['chroot'] == "jailkit") - { - // load the server configuration options - $app->uses("getconf"); - $this->data = $data; - $this->app = $app; - $this->jailkit_config = $app->getconf->get_server_config($conf["server_id"], 'jailkit'); - - $this->_update_website_security_level(); - - $this->_setup_jailkit_chroot(); - $this->_add_jailkit_user(); - - $this->_update_website_security_level(); - } - - $app->log("Jailkit Plugin -> update username:".$data['new']['username'],LOGLEVEL_DEBUG); - - } else { - $app->log("Jailkit Plugin -> update username:".$data['new']['username']." skipped, the user does not exist.",LOGLEVEL_WARN); - } - - } - - //* This function is called, when a shell user is deleted in the database - /** - * TODO: Remove chroot user home and from the chroot passwd file - */ - function delete($event_name,$data) { - global $app, $conf; - - $app->uses('system'); - - if ($data['old']['chroot'] == "jailkit") - { - $app->uses("getconf"); - $this->jailkit_config = $app->getconf->get_server_config($conf["server_id"], 'jailkit'); - - $jailkit_chroot_userhome = $this->_get_home_dir($data['old']['username']); - - //commented out proved to be dangerous on config errors - //exec('rm -rf '.$data['old']['dir'].$jailkit_chroot_userhome); - - if(@is_dir($data['old']['dir'].$jailkit_chroot_userhome)) { - $command = 'userdel'; - $command .= ' '.escapeshellcmd($data['old']['username']); - exec($command); - $app->log("Jailkit Plugin -> delete chroot home:".$data['old']['dir'].$jailkit_chroot_userhome,LOGLEVEL_DEBUG); - } - - } - - $app->log("Jailkit Plugin -> delete username:".$data['old']['username'],LOGLEVEL_DEBUG); - - - } - - function _setup_jailkit_chroot() - { - //check if the chroot environment is created yet if not create it with a list of program sections from the config - if (!is_dir($this->data['new']['dir'].'/etc/jailkit')) - { - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_chroot.sh'; - $command .= ' '.escapeshellcmd($this->data['new']['dir']); - $command .= ' \''.$this->jailkit_config['jailkit_chroot_app_sections'].'\''; - exec($command); - - $this->app->log("Added jailkit chroot with command: ".$command,LOGLEVEL_DEBUG); - - $this->_add_jailkit_programs(); - - //add bash.bashrc script - //we need to collect the domain name to be used as the HOSTNAME in the bashrc script - $web = $this->app->db->queryOneRecord("SELECT domain FROM web_domain WHERE domain_id = ".intval($this->data['new']["parent_domain_id"])); - - $this->app->load('tpl'); - - $tpl = new tpl(); - $tpl->newTemplate("bash.bashrc.master"); - - $tpl->setVar('jailkit_chroot',true); - $tpl->setVar('domain',$web['domain']); - $tpl->setVar('home_dir',$this->_get_home_dir("")); - - $bashrc = escapeshellcmd($this->data['new']['dir']).'/etc/bash.bashrc'; - if(@is_file($bashrc)) exec('rm '.$bashrc); - - file_put_contents($bashrc,$tpl->grab()); - unset($tpl); - - $this->app->log("Added bashrc scrpt : ".$bashrc,LOGLEVEL_DEBUG); - - $tpl = new tpl(); - $tpl->newTemplate("motd.master"); - - $tpl->setVar('domain',$web['domain']); - - $motd = escapeshellcmd($this->data['new']['dir']).'/var/run/motd'; - if(@is_file($motd)) exec('rm '.$motd); - - file_put_contents($motd,$tpl->grab()); - - } - } - - function _add_jailkit_programs() - { - //copy over further programs and its libraries - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_programs.sh'; - $command .= ' '.escapeshellcmd($this->data['new']['dir']); - $command .= ' \''.$this->jailkit_config['jailkit_chroot_app_programs'].'\''; - exec($command); - - $this->app->log("Added programs to jailkit chroot with command: ".$command,LOGLEVEL_DEBUG); - } - - function _get_home_dir($username) - { - return str_replace("[username]",escapeshellcmd($username),$this->jailkit_config["jailkit_chroot_home"]); - } - - function _add_jailkit_user() - { - //add the user to the chroot - $jailkit_chroot_userhome = $this->_get_home_dir($this->data['new']['username']); - $jailkit_chroot_puserhome = $this->_get_home_dir($this->data['new']['puser']); - - if(!is_dir($this->data['new']['dir'].'/etc')) mkdir($this->data['new']['dir'].'/etc'); - if(!is_file($this->data['new']['dir'].'/etc/passwd')) exec('touch '.$this->data['new']['dir'].'/etc/passwd'); - - // IMPORTANT! - // ALWAYS create the user. Even if the user was created before - // if we check if the user exists, then a update (no shell -> jailkit) will not work - // and the user has FULL ACCESS to the root of the server! - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_user.sh'; - $command .= ' '.escapeshellcmd($this->data['new']['username']); - $command .= ' '.escapeshellcmd($this->data['new']['dir']); - $command .= ' '.$jailkit_chroot_userhome; - $command .= ' '.escapeshellcmd($this->data['new']['shell']); - $command .= ' '.$this->data['new']['puser']; - $command .= ' '.$jailkit_chroot_puserhome; - exec($command); - - $this->app->log("Added jailkit user to chroot with command: ".$command,LOGLEVEL_DEBUG); - - exec("mkdir -p ".escapeshellcmd($this->data['new']['dir'].$jailkit_chroot_userhome)); - exec("chown ".$this->data['new']['username'].":".$this->data['new']['pgroup']." ".escapeshellcmd($this->data['new']['dir'].$jailkit_chroot_userhome)); - - $this->app->log("Added created jailkit user home in : ".$this->data['new']['dir'].$jailkit_chroot_userhome,LOGLEVEL_DEBUG); - - exec("mkdir -p ".escapeshellcmd($this->data['new']['dir'].$jailkit_chroot_puserhome)); - exec("chown ".$this->data['new']['puser'].":".$this->data['new']['pgroup']." ".escapeshellcmd($this->data['new']['dir'].$jailkit_chroot_puserhome)); - - $this->app->log("Added created jailkit parent user home in : ".$this->data['new']['dir'].$jailkit_chroot_puserhome,LOGLEVEL_DEBUG); - } - - //* Update the website root directory permissions depending on the security level - function _update_website_security_level() { - global $app,$conf; - - // load the server configuration options - $app->uses("getconf"); - $web_config = $app->getconf->get_server_config($conf["server_id"], 'web'); - - // Get the parent website of this shell user - $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$this->data['new']['parent_domain_id']); - - //* If the security level is set to high - if($web_config['security_level'] == 20) { - $this->_exec("chmod 755 ".escapeshellcmd($web["document_root"])); - $this->_exec("chown root:root ".escapeshellcmd($web["document_root"])); - } - - } - - //* Wrapper for exec function for easier debugging - private function _exec($command) { - global $app; - $app->log("exec: ".$command,LOGLEVEL_DEBUG); - exec($command); - } - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/plugins-enabled/software_update_plugin.inc.php b/interface/ispconfig/server/plugins-enabled/software_update_plugin.inc.php deleted file mode 100644 index 08656c387..000000000 --- a/interface/ispconfig/server/plugins-enabled/software_update_plugin.inc.php +++ /dev/null @@ -1,178 +0,0 @@ -plugins->registerEvent('software_update_inst_insert',$this->plugin_name,'process'); - //$app->plugins->registerEvent('software_update_inst_update',$this->plugin_name,'process'); - //$app->plugins->registerEvent('software_update_inst_delete',$this->plugin_name,'process'); - - - } - - function set_install_status($inst_id, $status) { - global $app; - - $app->db->query("UPDATE software_update_inst SET status = '{$status}' WHERE software_update_inst_id = '{$inst_id}'"); - $app->dbmaster->query("UPDATE software_update_inst SET status = '{$status}' WHERE software_update_inst_id = '{$inst_id}'"); - } - - function process($event_name,$data) { - global $app, $conf; - - //* Get the info of the package: - $software_update_id = intval($data["new"]["software_update_id"]); - $software_update = $app->db->queryOneRecord("SELECT * FROM software_update WHERE software_update_id = '$software_update_id'"); - $software_package = $app->db->queryOneRecord("SELECT * FROM software_package WHERE package_name = '".$app->db->quote($software_update['package_name'])."'"); - - if($software_package['package_type'] == 'ispconfig' && !$conf['software_updates_enabled'] == true) { - $app->log('Software Updates not enabled on this server. To enable updates, set $conf["software_updates_enabled"] = true; in config.inc.php',LOGLEVEL_WARN); - $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); - return false; - } - - $installuser = ''; - if($software_package['package_type'] == 'ispconfig') { - $installuser = ''; - } elseif ($software_package['package_type'] == 'app') { - $installuser = 'ispapps'; - } else { - $app->log('package_type not supported',LOGLEVEL_WARN); - $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); - return false; - } - - $temp_dir = '/tmp/'.md5 (uniqid (rand())); - $app->log("The temp dir is $temp_dir",LOGLEVEL_DEBUG); - mkdir($temp_dir); - if($installuser != '') exec('chown '.$installuser.' '.$temp_dir); - - if(!is_dir($temp_dir)) { - $app->log("Unable to create temp directory.",LOGLEVEL_WARN); - $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); - return false; - } - - $cmd = "cd $temp_dir && wget ".$software_update["update_url"]; - if($installuser == '') { - exec($cmd); - } else { - exec("su -c ".escapeshellarg($cmd)." $installuser"); - } - $app->log("Downloading the update file from: ".$software_update["update_url"],LOGLEVEL_DEBUG); - - $url_parts = parse_url($software_update["update_url"]); - $update_filename = basename($url_parts["path"]); - $app->log("The update filename is $update_filename",LOGLEVEL_DEBUG); - - if(is_file($temp_dir.'/'.$update_filename)) { - - //* Checking the md5sum - if(md5_file($temp_dir.'/'.$update_filename) != $software_update["update_md5"]) { - $app->log("The md5 sum of the downloaded file is incorrect. Update aborted.",LOGLEVEL_WARN); - exec("rm -rf $temp_dir"); - $app->log("Deleting the temp directory $temp_dir",LOGLEVEL_DEBUG); - $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); - return false; - } else { - $app->log("md5sum of the downloaded file is verified.",LOGLEVEL_DEBUG); - } - - - //* unpacking the update - $cmd = "cd $temp_dir && unzip $update_filename"; - if($installuser == '') { - exec($cmd); - } else { - exec("su -c ".escapeshellarg($cmd)." $installuser"); - } - - if(is_file($temp_dir.'/setup.sh')) { - // Execute the setup script - exec('chmod +x '.$temp_dir.'/setup.sh'); - $app->log("Executing setup.sh file in directory $temp_dir",LOGLEVEL_DEBUG); - $cmd = 'cd '.$temp_dir.' && ./setup.sh > package_install.log'; - if($installuser == '') { - exec($cmd); - } else { - exec("su -c ".escapeshellarg($cmd)." $installuser"); - } - - $log_data = @file_get_contents("{$temp_dir}/package_install.log"); - if(preg_match("'.*\[OK\]\s*$'is", $log_data)) { - $app->log("Installation successful",LOGLEVEL_DEBUG); - $app->log($log_data,LOGLEVEL_DEBUG); - $this->set_install_status($data["new"]["software_update_inst_id"], "installed"); - } else { - $app->log("Installation failed:\n\n" . $log_data,LOGLEVEL_WARN); - $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); - } - } else { - $app->log("setup.sh file not found",LOGLEVEL_ERROR); - $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); - } - } else { - $app->log("Download of the update file failed",LOGLEVEL_WARN); - $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); - } - - exec("rm -rf $temp_dir"); - $app->log("Deleting the temp directory $temp_dir",LOGLEVEL_DEBUG); - } - - -} // end class - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/scripts/create_jailkit_chroot.sh b/interface/ispconfig/server/scripts/create_jailkit_chroot.sh deleted file mode 100644 index 7a7dcc8a6..000000000 --- a/interface/ispconfig/server/scripts/create_jailkit_chroot.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash - -# Create the jailkit chroot - -# -# Usage: ./create_jailkit_chroot username 'basicshell editors' -# - - -# Sanity check - -if [ "$1" = "" ]; then - echo " Usage: ./create_jailkit_chroot username 'basicshell editors'" - exit -fi - -CHROOT_HOMEDIR=$1 -CHROOT_APP_SECTIONS=$2 - -## Change ownership of the chroot directory to root -chown root:root $CHROOT_HOMEDIR - -## Initialize the chroot into the specified directory with the specified applications -jk_init -f -k -j $CHROOT_HOMEDIR $CHROOT_APP_SECTIONS - -## Create the temp directory -if [ ! -d "$CHROOT_HOMEDIR/tmp" ] -then - mkdir $CHROOT_HOMEDIR/tmp -fi -chmod a+rwx $CHROOT_HOMEDIR/tmp - - -# mysql needs the socket in the chrooted environment -mkdir $CHROOT_HOMEDIR/var -mkdir $CHROOT_HOMEDIR/var/run -mkdir $CHROOT_HOMEDIR/var/run/mysqld - -# ln /var/run/mysqld/mysqld.sock $CHROOT_HOMEDIR/var/run/mysqld/mysqld.sock -if [ -e "/var/run/mysqld/mysqld.sock" ] -then - ln /var/run/mysqld/mysqld.sock $CHROOT_HOMEDIR/var/run/mysqld/mysqld.sock -fi diff --git a/interface/ispconfig/server/scripts/create_jailkit_programs.sh b/interface/ispconfig/server/scripts/create_jailkit_programs.sh deleted file mode 100644 index 887e0e27d..000000000 --- a/interface/ispconfig/server/scripts/create_jailkit_programs.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -# Add specified programs and their libraries to the jailkit chroot - -# -# Usage: ./create_jailkit_programs /path/to/chroot '/usr/bin/program' -# - -# Sanity check - -if [ "$1" = "" ]; then - echo " Usage: ./create_jailkit_programs /path/to/chroot '/usr/bin/program'" - exit -fi - - -CHROOT_HOMEDIR=$1 -CHROOT_APP_PROGRAMS=$2 - -jk_cp -k $CHROOT_HOMEDIR $CHROOT_APP_PROGRAMS diff --git a/interface/ispconfig/server/scripts/create_jailkit_user.sh b/interface/ispconfig/server/scripts/create_jailkit_user.sh deleted file mode 100644 index 59416c02c..000000000 --- a/interface/ispconfig/server/scripts/create_jailkit_user.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -# Add user to the jailkit chroot - -# -# Usage: ./create_jailkit_user username /path/to/chroot/ /home/webuser /bin/bash web2 /home/web2 -# - -# Sanity check - -if [ "$1" = "" ]; then - echo " Usage: ./create_jailkit_user username /path/to/chroot/ /home/webuser /bin/bash" - exit -fi - - -CHROOT_USERNAME=$1 -CHROOT_HOMEDIR=$2 -CHROOT_USERHOMEDIR=$3 -CHROOT_SHELL=$4 -CHROOT_P_USER=$5 -CHROOT_P_USER_HOMEDIR=$6 - -### Add the chroot user ### -jk_jailuser -n -s $CHROOT_SHELL -j $CHROOT_HOMEDIR $CHROOT_USERNAME - -### Reconfigure the chroot home directory for the user ### -usermod --home=$CHROOT_HOMEDIR/.$CHROOT_USERHOMEDIR $CHROOT_USERNAME - -### We have to reconfigure the chroot home directory for the parent user ### -if [ "$CHROOT_P_USER" != "" ]; then - usermod --home=$CHROOT_HOMEDIR/.$CHROOT_P_USER_HOMEDIR $CHROOT_P_USER -fi \ No newline at end of file diff --git a/interface/ispconfig/server/scripts/ispconfig_update.php b/interface/ispconfig/server/scripts/ispconfig_update.php deleted file mode 100644 index 6357c7d5e..000000000 --- a/interface/ispconfig/server/scripts/ispconfig_update.php +++ /dev/null @@ -1,109 +0,0 @@ -> Update \n\n"; -echo "Please choose the update method. For production systems select 'stable'. \nThe update from svn is only for development systems and may break your current setup.\n\n"; - -$method = simple_query('Select update method', array('stable','svn'), 'stable'); - -if($method == 'stable') { - $new_version = @file_get_contents('http://www.ispconfig.org/downloads/ispconfig3_version.txt') or die('Unable to retrieve version file.'); - $new_version = trim($new_version); - if($new_version != ISPC_APP_VERSION) { - passthru('/usr/local/ispconfig/server/scripts/update_from_tgz.sh'); - exit; - } else { - echo "There are no updates available for ISPConfig ".ISPC_APP_VERSION."\n"; - } -} else { - passthru('/usr/local/ispconfig/server/scripts/update_from_svn.sh'); - exit; -} - - - -?> \ No newline at end of file diff --git a/interface/ispconfig/server/scripts/ispconfig_update.sh b/interface/ispconfig/server/scripts/ispconfig_update.sh deleted file mode 100644 index eeadcfd46..000000000 --- a/interface/ispconfig/server/scripts/ispconfig_update.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -php -q /usr/local/ispconfig/server/scripts/ispconfig_update.php \ No newline at end of file diff --git a/interface/ispconfig/server/scripts/update_from_svn.sh b/interface/ispconfig/server/scripts/update_from_svn.sh deleted file mode 100644 index 9c55a4168..000000000 --- a/interface/ispconfig/server/scripts/update_from_svn.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -cd /tmp -svn export svn://svn.ispconfig.org/ispconfig3/trunk/ -cd trunk/install -php -q update.php -cd /tmp -rm -rf /tmp/trunk - -exit 0 \ No newline at end of file diff --git a/interface/ispconfig/server/scripts/update_from_tgz.sh b/interface/ispconfig/server/scripts/update_from_tgz.sh deleted file mode 100644 index 2424f011c..000000000 --- a/interface/ispconfig/server/scripts/update_from_tgz.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -cd /tmp - -if [ -f ISPConfig-3-stable.tar.gz ] -then -rm -f ISPConfig-3-stable.tar.gz -fi - -wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz -if [ -f ISPConfig-3-stable.tar.gz ] -then - tar xvfz ISPConfig-3-stable.tar.gz - cd ispconfig3_install/install/ - php -q update.php - rm -rf /tmp/ispconfig3_install/install - rm -f ISPConfig-3-stable.tar.gz -else - echo "Unable to download the update." -fi - -exit 0 \ No newline at end of file diff --git a/interface/ispconfig/server/scripts/vlogger b/interface/ispconfig/server/scripts/vlogger deleted file mode 100644 index ce0ce027b..000000000 --- a/interface/ispconfig/server/scripts/vlogger +++ /dev/null @@ -1,574 +0,0 @@ -#!/usr/bin/perl -T -# -# vlogger - smarter logging for apache -# steve j. kondik -# -# this script will take piped logs in STDIN, break off the first component -# and log the line into the proper directory under $LOGDIR. it will roll the -# logs over at midnight on-the-fly and maintain a symlink to the most recent log. -# -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Library General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Library General Public License for more details. -# -# -# CHANGELOG: -# 0.1 initial release -# 0.2 cleanups, added -e option for errorlogs, added strict stuff -# 0.3 cleanups, bugfixes, docs, added -r size rotation option -# 0.4 added dbi usage tracking option, code cleanups from cz@digitalfreaks.org -# 1.0 small bugfixes, first production release -# 1.1 bugfix release -# 1.2 support for mod_logio -# 1.3 various contributed bugfixes -# -# -# TODO: -# configurable file compression using Compress::Zlib, maybe. -# - -package vlogger; - -$ENV{PATH} = "/bin:/usr/bin"; - -my $VERSION = "1.3"; - -=head1 NAME - -vlogger - flexible log rotation and usage tracking in perl - -=head1 SYNOPSIS - -vlogger [OPTIONS]... [LOGDIR] - -=head1 DESCRIPTION - -Vlogger is designed to make webserver log rotation simple and easy to manage. -It deals with VirtualHost logs automatically, so only one directive is required -to manage all hosts on a webserver. Vlogger takes piped output from Apache or -another webserver, splits off the first field, and writes the logs to logfiles -in subdirectories. It uses a filehandle cache to avoid resource limitations. -It will start a new logfile at the beginning of a new day, and optionally start -new files when a certain filesize is reached. It can maintain a symlink to -the most recent log for easy access. Optionally, host parsing can be disabled -for use in ErrorLog directives. - -To use vlogger, you need to add a "%v" to the first part of your LogFormat: - -LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined - -Then call it from a customlog: - -CustomLog "| /usr/local/sbin/vlogger -s access.log -u www-logs -g www-logs /var/log/apache" combined - -=head1 OPTIONS - -Options are given in short format on the command line. - --a - Do not autoflush files. This may improve performance but may break logfile -analyzers that depend on full entries in the logs. - --e - ErrorLog mode. In this mode, the host parsing is disabled, and the file is -written out using the template under the specified LOGDIR. - --n - Disables rotation. This option disables rotation altogether. - --f MAXFILES - Maximum number of filehandles to keep open. Defaults to 100. Setting this -value too high may result in the system running out of file descriptors. -Setting it too low may affect performance. - --u UID - Change user to UID when running as root. - --g GID - Change group to GID when running as root. - --t TEMPLATE - Filename template using Date::Format codes. Default is "%m%d%Y-access.log", -or "%m%d%Y-error.log". When using the -r option, the default becomes -"%m%d%Y-%T-access.log" or "%m%d%Y-%T-error.log". - --s SYMLINK - Specifies the name of a symlink to the current file. - --r SIZE - Rotate files when they reach SIZE. SIZE is given in bytes. - --d CONFIG - Use the DBI usage tracker. - --h - Displays help. - --v - Prints version information. - -=head1 DBI USAGE TRACKER - - Vlogger can automatically keep track of per-virtualhost usage statistics in a -database. DBI and the relevant drivers (eg. DBD::mysql) needs to be installed for -this to work. Create a table in your database to hold the data. A "mysql_create.sql" -script is provided for using this feature with MySQL. Configure the dsn, user, pass -and dump values in the vlogger-dbi.conf file. The "dump" parameter controls how often -vlogger will dump its stats into the database (the default is 30 seconds). Copy this -file to somewhere convienient on your filesystem (like /etc/apache/vlogger-dbi.conf) and -start vlogger with "-d /etc/apache/vlogger-dbi.conf". You might want to use this feature -to easily bill customers on a daily/weekly/monthly basis for bandwidth usage. - -=head1 SEE ALSO -cronolog(1), httplog(1) - -=head1 BUGS -None, yet. - -=head1 AUTHORS -Steve J. Kondik - -WWW: http://n0rp.chemlab.org/vlogger - -=cut - -# a couple modules we need -use strict; -no strict "refs"; -use warnings; -use sigtrap qw(handler exitall HUP USR1 TERM INT PIPE); -use Date::Format; -use Getopt::Std; -use IO::Handle; - -# get command line options -our %OPTS; -getopts( 'f:t:s:hu:g:aeivr:d:', \%OPTS ); - -# print out version -if ( $OPTS{'v'} ) { - print "VLogger $VERSION (apache logfile parser)\n"; - print "Written by Steve J. Kondik \n\n"; - print "This is free software; see the source for copying conditions. There is NO\n"; - print "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"; - exit; -} - -# print help -if ( $OPTS{'h'} || !$ARGV[0] ) { - usage(); - exit; -} - -# log directory -my $LOGDIR; -if ( $ARGV[0] ) { - if ( !-d $ARGV[0] ) { - print STDERR - "[vlogger] target directory $ARGV[0] does not exist - exiting.\n\n"; - exit; - } - $LOGDIR = $ARGV[0]; -} -$LOGDIR =~ /(.*)/; -$LOGDIR = $1; - -# change uid/gid if requested (and running as root) -if ( $> == "0" ) { - if ( $OPTS{'g'} ) { - my $guid = getgrnam( $OPTS{'g'} ); - if ( !defined $guid || $guid == 0 ) { - print STDERR - "[vlogger] cannot run as root or nonexistant group.\n\n"; - exit; - } - - $) = $guid; - $( = $guid; - if ( $) != $guid and $) != ( $guid - 2**32 ) ) { - die "fatal: setgid to gid $guid failed\n"; - } - } - - if ( $OPTS{'u'} ) { - my $uuid = getpwnam( $OPTS{'u'} ); - if ( !defined $uuid || $uuid == 0 ) { - print STDERR - "[vlogger] cannot run as root or nonexistant user.\n\n"; - exit; - } - - $> = $uuid; - $< = $uuid; - if ( $> != $uuid and $> != ( $uuid - 2**32 ) ) { - die "fatal: setuid to uid $uuid failed\n"; - } - } -} - -# set up dbi stuffs - -my $DBI_DSN; -my $DBI_USER; -my $DBI_PASS; -my $DBI_DUMP; -if ( $OPTS{'d'} ) { - if ( $OPTS{'e'} ) { - print "-d not valid with -e. exiting.\n"; - exit; - } - - eval "use DBI"; - - open CONF, $OPTS{'d'}; - while () { - chomp; - my @conf = split (/\s/); - if ( $conf[0] eq "dsn" ) { - $DBI_DSN = $conf[1]; - } - elsif ( $conf[0] eq "user" ) { - $DBI_USER = $conf[1]; - } - elsif ( $conf[0] eq "pass" ) { - $DBI_PASS = $conf[1]; - } - elsif ( $conf[0] eq "dump" ) { - $DBI_DUMP = $conf[1]; - } - } - close CONF; - - unless ( $DBI_DSN && $DBI_USER && $DBI_PASS && $DBI_DUMP ) { - print "All values for DBI configuration are not properly defined.\n\n"; - exit; - } - - # test the connection - eval { - my $dbh = DBI->connect( $DBI_DSN, $DBI_USER, $DBI_PASS ) - or die "DBI Error: $!"; - $dbh->disconnect; - }; - if ($@) { - print "MySQL Connection problem\n"; - } - - # SIGALRM dumps the tracker hash - $SIG{ALRM} = \&dump_tracker; - - alarm $DBI_DUMP; - -} - -# max files to keep open -my $MAXFILES; -if ( $OPTS{'f'} ) { - $MAXFILES = $OPTS{'f'}; -} -else { - $MAXFILES = "100"; -} - -# filesize rotation -my $MAXSIZE; -if ( $OPTS{'r'} ) { - $MAXSIZE = $OPTS{'r'}; -} - -# filename template -my $TEMPLATE; -if ( $OPTS{'t'} ) { - $TEMPLATE = $OPTS{'t'}; - $TEMPLATE =~ /(.*)/; - $TEMPLATE = $1; - -} -elsif ( $OPTS{'e'} ) { - if ( $OPTS{'r'} ) { - $TEMPLATE = "%m%d%Y-%T-error.log"; - } - else { - $TEMPLATE = "%m%d%Y-error.log"; - } -} -else { - if ( $OPTS{'r'} ) { - $TEMPLATE = "%m%d%Y-%T-access.log"; - } - else { - $TEMPLATE = "%m%d%Y-access.log"; - } -} - -# symlink -if ( $OPTS{'s'} ) { - $OPTS{'s'} =~ /(.*)/; - $OPTS{'s'} = $1; -} - -# chroot to the logdir -chdir($LOGDIR); -#chroot("."); we better do not chroot as DBI requires to load a module on the fly -> error! - -my %logs = (); -my %tracker = (); -my $LASTDUMP = time(); - -# pick a mode -if ( $OPTS{'e'} ) { - - $0 = "vlogger (error log)"; - # errorlog mode - open ELOG, ">>" . time2str( $TEMPLATE, time() ) - or die ( "can't open $LOGDIR/" . time2str( $TEMPLATE, time() ) ); - - unless ( $OPTS{'a'} ) { - ELOG->autoflush(1); - } - if ( $OPTS{'s'} ) { - if ( -l $OPTS{'s'} ) { - unlink( $OPTS{'s'} ); - } - symlink( time2str( $TEMPLATE, time() ), $OPTS{'s'} ); - } - - my $LASTWRITE = time(); - - while ( my $log_line = ) { - unless ( $OPTS{'n'} ) { - if ( time2str( "%Y%m%d", time() ) > - time2str( "%Y%m%d", $LASTWRITE ) ) - { - - # open a new file - close ELOG; - open_errorlog(); - } - elsif ( $OPTS{'r'} ) { - - # check the size - my @filesize = ELOG->stat; - print $filesize[7] . "\n"; - if ( $filesize[7] > $MAXSIZE ) { - close ELOG; - open_errorlog(); - } - } - - $LASTWRITE = time(); - } - - # we dont need to do any other parsing at all, so write the line. - print ELOG $log_line; - } - -} -else { - - # accesslog mode - $0 = "vlogger (access log)"; - while ( my $log_line = ) { - - # parse out the first word (the vhost) - my @this_line = split ( /\s/, $log_line ); - my ($vhost) = $this_line[0]; - my $reqsize = $this_line[10]; - $vhost = lc($vhost) || "default"; - if ( $vhost =~ m#[/\\]# ) { $vhost = "default" } - $vhost =~ /(.*)/o; - $vhost = $1; - $vhost = 'default' unless $vhost; - - if ( $OPTS{'i'} ) { - $reqsize = $this_line[1] + $this_line[2]; - } - - # if we're writing to a log, and it rolls to a new day, close all files. - unless ( $OPTS{'n'} ) { - if ( $logs{$vhost} - && ( time2str( "%Y%m%d", time() ) > - time2str( "%Y%m%d", $logs{$vhost} ) ) ) - { - foreach my $key ( keys %logs ) { - close $key; - } - %logs = (); - } - elsif ( $OPTS{'r'} && $logs{$vhost} ) { - - # check the size - my @filesize = $vhost->stat; - if ( $filesize[7] > $MAXSIZE ) { - close $vhost; - delete( $logs{$vhost} ); - } - } - } - - # open a new log - if ( !$logs{$vhost} ) { - - # check how many files we have open, close the oldest one - if ( keys(%logs) > $MAXFILES ) { - my ( $key, $value ) = - sort { $logs{$a} <=> $logs{$b} } ( keys(%logs) ); - close $key; - delete( $logs{$key} ); - } - - # check if directory is there - unless ( -d "${vhost}" ) { - mkdir("${vhost}"); - } - - # open the file using the template - open $vhost, ">>${vhost}/" . time2str( $TEMPLATE, time() ) - or die ( "can't open $LOGDIR/${vhost}/" - . time2str( $TEMPLATE, time() ) ); - - # autoflush the handle unless -a - if ( !$OPTS{'a'} ) { - $vhost->autoflush(1); - } - - # make a symlink if -s - if ( $OPTS{'s'} ) { - chdir("${vhost}"); - if ( -l $OPTS{'s'} ) { - unlink( $OPTS{'s'} ); - } - symlink( time2str( $TEMPLATE, time() ), $OPTS{'s'} ); - chdir(".."); - } - } - - # update the timestamp and write the line - $logs{$vhost} = time(); - if ($OPTS{'i'}) { - $log_line =~ s/^\S*\s+\S*\s+\S*\s+//o; - } - else { - $log_line =~ s/^\S*\s+//o; - } - - if ( $reqsize =~ m/^\d*$/ && $reqsize > 0 ) { - $tracker{$vhost} += $reqsize; - } - - print $vhost $log_line; - - } -} - -# sub to close all files -sub closeall { - if ( $OPTS{'e'} ) { - close ELOG; - } - else { - foreach my $key ( keys %logs ) { - close $key; - } - %logs = (); - if ( $OPTS{'d'} ) { - vlogger::dump_tracker(); - } - } -} - -sub exitall { - vlogger::closeall; - exit; -} - -# sub to open new errorlog -sub open_errorlog { - open ELOG, ">>" . time2str( $TEMPLATE, time() ) - or die ( "can't open $LOGDIR/" . time2str( $TEMPLATE, time() ) ); - if ( $OPTS{'s'} ) { - if ( -l $OPTS{'s'} ) { - unlink( $OPTS{'s'} ); - } - symlink( time2str( $TEMPLATE, time() ), $OPTS{'s'} ); - } - - # autoflush it unless -a - unless ( $OPTS{'a'} ) { - ELOG->autoflush(1); - } -} - -# sub to update the database with the tracker data -sub dump_tracker { - eval { - if ( keys(%tracker) > 0 ) { - my $dbh = DBI->connect( $DBI_DSN, $DBI_USER, $DBI_PASS ) - or warn "DBI Error: $!"; - foreach my $key ( keys(%tracker) ) { - my $ts = time2str( "%Y-%m-%d", time() ); - my $sth = - $dbh->prepare( "select * from web_traffic where hostname='" . $key - . "' and traffic_date='" . $ts . "'" ); - $sth->execute; - if ( $sth->rows ) { - my $query = - "update web_traffic set traffic_bytes=traffic_bytes+" - . $tracker{$key} - . " where hostname='" . $key - . "' and traffic_date='" . $ts . "'"; - $dbh->do($query); - } - else { - my $query = "insert into web_traffic (hostname, traffic_date, traffic_bytes) values ('$key', '$ts', '$tracker{$key}')"; - $dbh->do($query); - } - } - $dbh->disconnect; - %tracker = (); - } - alarm $DBI_DUMP; - }; - if ($@) { - print "Unable to store vlogger data in database\n"; - } -} - -# print usage info -sub usage { - print "Usage: vlogger [OPTIONS]... [LOGDIR]\n"; - print "Handles a piped logfile from a webserver, splitting it into it's\n"; - print "host components, and rotates the files daily.\n\n"; - print " -a do not autoflush files\n"; - print " -e errorlog mode\n"; - print " -n don't rotate files\n"; - print " -f MAXFILES max number of files to keep open\n"; - print " -u UID uid to switch to when running as root\n"; - print " -g GID gid to switch to when running as root\n"; - print " -t TEMPLATE filename template (see perldoc Date::Format)\n"; - print " -s SYMLINK maintain a symlink to most recent file\n"; - print " -r SIZE rotate when file reaches SIZE\n"; - print " -d CONFIG use DBI usage tracker (see perldoc vlogger)\n"; - print " -i extract mod_logio instead of filesize\n"; - print " -h display this help\n"; - print " -v output version information\n\n"; - print "TEMPLATE may be a filename with Date::Format codes. The default template\n"; - print "is %m%d%Y-access.log. SYMLINK is the name of a file that will be linked to\n"; - print "the most recent file inside the log directory. The default is access.log.\n"; - print "MAXFILES is the maximum number of filehandles to cache. This defaults to 100.\n"; - print "When running with -a, performance may improve, but this might confuse some\n"; - print "log analysis software that expects complete log entries at all times.\n"; - print "Errorlog mode is used when running with an Apache errorlog. In this mode,\n"; - print "virtualhost parsing is disabled, and a single file is written in LOGDIR\n"; - print "using the TEMPLATE (%m%d%Y-error.log is default for -e). When running with\n"; - print "-r, the template becomes %m%d%Y-%T-xxx.log. SIZE is given in bytes.\n\n"; - print "Report bugs to .\n"; -} - diff --git a/interface/ispconfig/server/server.php b/interface/ispconfig/server/server.php deleted file mode 100644 index 80a6b9f89..000000000 --- a/interface/ispconfig/server/server.php +++ /dev/null @@ -1,148 +0,0 @@ -db->queryOneRecord("SELECT * FROM server WHERE update = 1 AND server_id = ".$conf["server_id"]); -if($server_db_record == false) { - $app->log("Nothing to update for server_id ".$conf["server_id"]); - die(); -} else { - // Set update status to 0, so we dont start the update process twice - $app->db->query("UPDATE server SET update = 0 WHERE server_id = ".$conf["server_id"]); - $app->log("Begin update."); -} -*/ - -//* Load the server configuration -if($app->dbmaster->connect()) { - // get the dalaog_id of the last performed record - $server_db_record = $app->dbmaster->queryOneRecord("SELECT * FROM server WHERE server_id = ".$conf["server_id"]); - $conf['last_datalog_id'] = (int)$server_db_record['updated']; - $conf["mirror_server_id"] = (int)$server_db_record['mirror_server_id']; - // Load the ini_parser - $app->uses('ini_parser'); - // Get server configuration - $conf["serverconfig"] = $app->ini_parser->parse_ini_string(stripslashes($server_db_record["config"])); - // Set the loglevel - $conf["log_priority"] = intval($conf["serverconfig"]["server"]["loglevel"]); - - unset($server_db_record); -} - - -// Check if another process is running -if(is_file($conf["temppath"].$conf["fs_div"].".ispconfig_lock")){ - clearstatcache(); - for($i=0;$i<120;$i++){ // Wait max. 1200 sec, then proceed - if(is_file($conf["temppath"].$conf["fs_div"].".ispconfig_lock")){ - exec("ps aux | grep '/usr/local/ispconfig/server/server.php' | grep -v 'grep' | wc -l", $check); - if(intval($check[0]) > 1) { // 1 because this is 2nd instance! - $app->log("There is already an instance of server.php running. Exiting.", LOGLEVEL_DEBUG); - exit; - } - $app->log("There is already a lockfile set. Waiting another 10 seconds...", LOGLEVEL_DEBUG); - sleep(10); - clearstatcache(); - } - } -} - -// Set Lockfile -@touch($conf["temppath"].$conf["fs_div"].".ispconfig_lock"); -$app->log("Set Lock: ".$conf["temppath"].$conf["fs_div"].".ispconfig_lock", LOGLEVEL_DEBUG); - - -if($app->db->connect() && $app->dbmaster->connect()) { - - // Check if there is anything to update - if($conf["mirror_server_id"] > 0) { - $tmp_rec = $app->dbmaster->queryOneRecord("SELECT count(server_id) as number from sys_datalog WHERE datalog_id > ".$conf['last_datalog_id']." AND (server_id = ".$conf["server_id"]." OR server_id = ".$conf["mirror_server_id"]." OR server_id = 0)"); - } else { - $tmp_rec = $app->dbmaster->queryOneRecord("SELECT count(server_id) as number from sys_datalog WHERE datalog_id > ".$conf['last_datalog_id']." AND (server_id = ".$conf["server_id"]." OR server_id = 0)"); - } - - $tmp_num_records = $tmp_rec["number"]; - unset($tmp_rec); - - if($tmp_num_records > 0) { - /* - There is something to do, triggert by the database -> do it! - */ - // Write the Log - $app->log("Found $tmp_num_records changes, starting update process.", LOGLEVEL_DEBUG); - // Load required base-classes - $app->uses('modules,plugins,file,services'); - // Load the modules that are im the mods-enabled folder - $app->modules->loadModules('all'); - // Load the plugins that are in the plugins-enabled folder - $app->plugins->loadPlugins('all'); - // Go trough the sys_datalog table and call the processing functions - // in the modules that are hooked on to the table actions - $app->modules->processDatalog(); - // Restart services that need to be restarted after configuration - $app->services->processDelayedActions(); - } else { - /* - There is no trigger inside the database -> load only the core, maybe they have to do something - */ - // Write the log - $app->log('No Updated records found, starting only the core.', LOGLEVEL_DEBUG); - // Load required base-classes - $app->uses('modules,plugins,file,services'); - // Load the modules that are im the mods-core folder - $app->modules->loadModules('core'); - // Load the plugins that are in the plugins-core folder - $app->plugins->loadPlugins('core'); - } -} else { - if(!$app->db->connect()) { - $app->log("Unable to connect to local server.".$app->db->errorMessage,LOGLEVEL_WARN); - } else { - $app->log("Unable to connect to master server.".$app->dbmaster->errorMessage,LOGLEVEL_WARN); - } -} - -// Remove lock -@unlink($conf["temppath"].$conf["fs_div"].".ispconfig_lock"); -$app->log("Remove Lock: ".$conf["temppath"].$conf["fs_div"].".ispconfig_lock",LOGLEVEL_DEBUG); - - -die("finished.\n"); -?> diff --git a/interface/ispconfig/server/server.sh b/interface/ispconfig/server/server.sh deleted file mode 100644 index cabfd6968..000000000 --- a/interface/ispconfig/server/server.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin - -. /etc/profile - -/usr/bin/php -q /usr/local/ispconfig/server/server.php \ No newline at end of file diff --git a/interface/ispconfig/vpproject/ispconfig.vpppath b/interface/ispconfig/vpproject/ispconfig.vpppath deleted file mode 100644 index 674693ddb..000000000 --- a/interface/ispconfig/vpproject/ispconfig.vpppath +++ /dev/null @@ -1 +0,0 @@ -C:\Users\ajaouni\Desktop\uml\vpproject.vpp \ No newline at end of file -- GitLab