index.twig 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  1. <h2>
  2. {{ get_image('s_db') }}
  3. {% if has_statistics %}
  4. {% trans 'Databases statistics' %}
  5. {% else %}
  6. {% trans 'Databases' %}
  7. {% endif %}
  8. </h2>
  9. {% if is_create_database_shown %}
  10. <ul>
  11. <li id="li_create_database" class="no_bullets">
  12. {% if has_create_database_privileges %}
  13. <form method="post" action="server_databases.php" id="create_database_form" class="ajax">
  14. <p>
  15. <strong>
  16. <label for="text_create_db">
  17. {{ get_image('b_newdb') }}
  18. {% trans 'Create database' %}
  19. </label>
  20. {{ show_mysql_docu('CREATE_DATABASE') }}
  21. </strong>
  22. </p>
  23. {{ get_hidden_inputs('', '', 5) }}
  24. <input type="hidden" name="reload" value="1">
  25. {% if has_statistics %}
  26. <input type="hidden" name="statistics" value="1">
  27. {% endif %}
  28. <input type="text" name="new_db" maxlength="64" class="textfield" value="
  29. {{- database_to_create }}" id="text_create_db" placeholder="
  30. {%- trans 'Database name' %}" required>
  31. {% if charsets is not empty %}
  32. <select lang="en" dir="ltr" name="db_collation">
  33. <option value="">{% trans 'Collation' %}</option>
  34. <option value=""></option>
  35. {% for charset in charsets %}
  36. <optgroup label="{{ charset.name }}" title="{{ charset.description }}">
  37. {% for collation in charset.collations %}
  38. <option value="{{ collation.name }}" title="{{ collation.description }}"{{ collation.is_selected ? ' selected' }}>
  39. {{- collation.name -}}
  40. </option>
  41. {% endfor %}
  42. </optgroup>
  43. {% endfor %}
  44. </select>
  45. {% endif %}
  46. <input id="buttonGo" class="btn btn-primary" type="submit" value="{% trans 'Create' %}">
  47. </form>
  48. {% else %}
  49. <p>
  50. <strong>
  51. {{ get_image('b_newdb') }}
  52. {% trans 'Create database' %}
  53. {{ show_mysql_docu('CREATE_DATABASE') }}
  54. </strong>
  55. </p>
  56. <span class="noPrivileges">
  57. {{ get_image('s_error', '', {
  58. 'hspace': 2,
  59. 'border': 0,
  60. 'align': 'middle'
  61. }) }}
  62. {% trans 'No privileges to create databases' %}
  63. </span>
  64. {% endif %}
  65. </li>
  66. </ul>
  67. {% endif %}
  68. {% if database_count > 0 %}
  69. {% include 'filter.twig' with {'filter_value': ''} only %}
  70. <div id="tableslistcontainer">
  71. {{ get_list_navigator(
  72. database_count,
  73. pos,
  74. url_params,
  75. 'server_databases.php',
  76. 'frame_content',
  77. max_db_list
  78. ) }}
  79. <form class="ajax" action="server_databases.php" method="post" name="dbStatsForm" id="dbStatsForm">
  80. {{ get_hidden_inputs(url_params) }}
  81. <div class="responsivetable">
  82. <table id="tabledatabases" class="data">
  83. <thead>
  84. <tr>
  85. {% if is_drop_allowed %}
  86. <th></th>
  87. {% endif %}
  88. <th>
  89. <a href="server_databases.php{{ get_common(url_params|merge({
  90. 'sort_by': 'SCHEMA_NAME',
  91. 'sort_order': url_params.sort_by == 'SCHEMA_NAME'
  92. and url_params.sort_order == 'asc' ? 'desc' : 'asc'
  93. })) }}">
  94. {% trans 'Database' %}
  95. {% if url_params.sort_by == 'SCHEMA_NAME' %}
  96. {% if url_params.sort_order == 'asc' %}
  97. {{ get_image('s_asc', 'Ascending'|trans) }}
  98. {% else %}
  99. {{ get_image('s_desc', 'Descending'|trans) }}
  100. {% endif %}
  101. {% endif %}
  102. </a>
  103. </th>
  104. <th>
  105. <a href="server_databases.php{{ get_common(url_params|merge({
  106. 'sort_by': 'DEFAULT_COLLATION_NAME',
  107. 'sort_order': url_params.sort_by == 'DEFAULT_COLLATION_NAME'
  108. and url_params.sort_order == 'asc' ? 'desc' : 'asc'
  109. })) }}">
  110. {% trans 'Collation' %}
  111. {% if url_params.sort_by == 'DEFAULT_COLLATION_NAME' %}
  112. {% if url_params.sort_order == 'asc' %}
  113. {{ get_image('s_asc', 'Ascending'|trans) }}
  114. {% else %}
  115. {{ get_image('s_desc', 'Descending'|trans) }}
  116. {% endif %}
  117. {% endif %}
  118. </a>
  119. </th>
  120. {% if has_statistics %}
  121. {% for name, statistic in header_statistics %}
  122. <th{{ statistic.format == 'byte' ? ' colspan="2"' }}>
  123. <a href="server_databases.php{{ get_common(url_params|merge({
  124. 'sort_by': name,
  125. 'sort_order': url_params.sort_by == name
  126. and url_params.sort_order == 'asc' ? 'desc' : 'asc'
  127. })) }}">
  128. {{ statistic.title }}
  129. {% if url_params.sort_by == name %}
  130. {% if url_params.sort_order == 'asc' %}
  131. {{ get_image('s_asc', 'Ascending'|trans) }}
  132. {% else %}
  133. {{ get_image('s_desc', 'Descending'|trans) }}
  134. {% endif %}
  135. {% endif %}
  136. </a>
  137. </th>
  138. {% endfor %}
  139. {% endif %}
  140. {% if has_master_replication %}
  141. <th>{% trans 'Master replication' %}</th>
  142. {% endif %}
  143. {% if has_slave_replication %}
  144. <th>{% trans 'Slave replication' %}</th>
  145. {% endif %}
  146. <th>{% trans 'Action' %}</th>
  147. </tr>
  148. </thead>
  149. <tbody>
  150. {% for database in databases %}
  151. <tr class="db-row{{ database.is_system_schema ? ' noclick' }}" data-filter-row="{{ database.name|upper }}">
  152. {% if is_drop_allowed %}
  153. <td class="tool">
  154. <input type="checkbox" name="selected_dbs[]" class="checkall" title="
  155. {{- database.name }}" value="
  156. {{- database.name }}"
  157. {{- database.is_system_schema ? ' disabled' }}>
  158. </td>
  159. {% endif %}
  160. <td class="name">
  161. <a href="{{ get_script_name_for_option(default_tab_database, 'database') }}
  162. {{- get_common({'db': database.name}) }}" title="
  163. {{- "Jump to database '%s'"|trans|format(database.name) }}">
  164. {{ database.name }}
  165. </a>
  166. </td>
  167. <td class="value">
  168. <dfn title="{{ database.collation.description }}">
  169. {{ database.collation.name }}
  170. </dfn>
  171. </td>
  172. {% if has_statistics %}
  173. {% for statistic in database.statistics %}
  174. {% if statistic.format is same as('byte') %}
  175. {% set value = format_byte_down(statistic.raw, 3, 1) %}
  176. <td class="value">
  177. <data value="{{ statistic.raw }}" title="{{ statistic.raw }}">
  178. {{ value[0] }}
  179. </data>
  180. </td>
  181. <td class="unit">{{ value[1] }}</td>
  182. {% else %}
  183. <td class="value">
  184. <data value="{{ statistic.raw }}" title="{{ statistic.raw }}">
  185. {{ format_number(statistic.raw, 0) }}
  186. </data>
  187. </td>
  188. {% endif %}
  189. {% endfor %}
  190. {% endif %}
  191. {% if database.replication.master.status %}
  192. {% if database.replication.master.is_replicated %}
  193. <td class="tool center">
  194. {{ get_icon('s_success', 'Replicated'|trans) }}
  195. </td>
  196. {% else %}
  197. <td class="tool center">
  198. {{ get_icon('s_cancel', 'Not replicated'|trans) }}
  199. </td>
  200. {% endif %}
  201. {% endif %}
  202. {% if database.replication.slave.status %}
  203. {% if database.replication.slave.is_replicated %}
  204. <td class="tool center">
  205. {{ get_icon('s_success', 'Replicated'|trans) }}
  206. </td>
  207. {% else %}
  208. <td class="tool center">
  209. {{ get_icon('s_cancel', 'Not replicated'|trans) }}
  210. </td>
  211. {% endif %}
  212. {% endif %}
  213. <td class="tool">
  214. <a class="server_databases" data="
  215. {{- database.name|js_format }}" href="server_privileges.php
  216. {{- get_common({
  217. 'db': database.name,
  218. 'checkprivsdb': database.name
  219. }) }}" title="
  220. {{- 'Check privileges for database "%s".'|trans|format(database.name) }}">
  221. {{ get_icon('s_rights', 'Check privileges'|trans) }}
  222. </a>
  223. </td>
  224. </tr>
  225. {% endfor %}
  226. </tbody>
  227. <tfoot>
  228. <tr>
  229. <th colspan="{{ is_drop_allowed ? '3' : '2' }}">
  230. {% trans 'Total:' %}
  231. <span id="filter-rows-count">
  232. {{- database_count -}}
  233. </span>
  234. </th>
  235. {% if has_statistics %}
  236. {% for statistic in total_statistics %}
  237. {% if statistic.format is same as('byte') %}
  238. {% set value = format_byte_down(statistic.raw, 3, 1) %}
  239. <th class="value">
  240. <data value="{{ statistic.raw }}" title="{{ statistic.raw }}">
  241. {{ value[0] }}
  242. </data>
  243. </th>
  244. <th class="unit">{{ value[1] }}</th>
  245. {% else %}
  246. <th class="value">
  247. <data value="{{ statistic.raw }}" title="{{ statistic.raw }}">
  248. {{ format_number(statistic.raw, 0) }}
  249. </data>
  250. </th>
  251. {% endif %}
  252. {% endfor %}
  253. {% endif %}
  254. {% if has_master_replication %}
  255. <th></th>
  256. {% endif %}
  257. {% if has_slave_replication %}
  258. <th></th>
  259. {% endif %}
  260. <th></th>
  261. </tr>
  262. </tfoot>
  263. </table>
  264. </div>
  265. {# Footer buttons #}
  266. {% if is_drop_allowed %}
  267. {% include 'select_all.twig' with {
  268. 'pma_theme_image': pma_theme_image,
  269. 'text_dir': text_dir,
  270. 'form_name': 'dbStatsForm'
  271. } only %}
  272. {{ get_button_or_image(
  273. '',
  274. 'mult_submit ajax',
  275. 'Drop'|trans,
  276. 'b_deltbl'
  277. ) }}
  278. {% endif %}
  279. {# Enable statistics #}
  280. {% if not has_statistics %}
  281. {{ 'Note: Enabling the database statistics here might cause heavy traffic between the web server and the MySQL server.'|trans|notice }}
  282. <ul>
  283. <li class="li_switch_dbstats">
  284. <a href="server_databases.php" data-post="{{ get_common({'statistics': '1'}, '') }}" title="{% trans 'Enable statistics' %}">
  285. <strong>{% trans 'Enable statistics' %}</strong>
  286. </a>
  287. </li>
  288. </ul>
  289. {% endif %}
  290. </form>
  291. </div>
  292. {% else %}
  293. <p>{{ 'No databases'|trans|notice }}</p>
  294. {% endif %}