Compare commits

...

28 Commits
v4.12 ... v4.14

Author SHA1 Message Date
Peter Knut
2993ee4ea7 Release 4.14 2025-02-02 23:37:23 +01:00
Peter Knut
27ae5e7895 Switch JsShrink library to a custom fork (issue #17) 2025-02-02 00:52:54 +01:00
Peter Knut
c54e6fb589 Fix link to language files in README.md (issue #18) 2025-02-02 00:24:26 +01:00
Peter Knut
f8bff19898 PostgreSQL: Fix renaming database 2025-01-31 17:05:58 +01:00
Peter Knut
3195023248 PostgreSQL: Fix starting value of exported autoincrement
Thanks to @OmlineEditor (https://github.com/adminerevo/adminerevo/issues/113)
2025-01-30 20:50:57 +01:00
Peter Knut
4a65703334 MariaDB: Fix missing uca1400 collations
Since MariaDB 10.10, one collation can be compatible with more character sets, so collations no longer have unique IDs.

Thanks to @shionryuu (https://github.com/adminerevo/adminerevo/issues/50)
2025-01-30 20:50:57 +01:00
Peter Knut
5c9e0f6d5a Modify naming of new foreign rows
Regexp is used to unify implementation with other similar situations. This also prevents false detection in CodeQL security scanning.
2025-01-29 12:21:56 +01:00
Peter Knut
8e2745ab4f Reconfigure CodeQL analysis 2025-01-29 10:12:20 +01:00
Adrian Jones
f4d06b50fc A few changes from pematon/adminer to adminerneo/adminerneo as well as from master to main 2025-01-29 09:22:38 +01:00
Lucas Sandery
1abaa642ae Update lucas-sandery theme
::file-selector-button got standardised.
2025-01-29 00:09:15 +01:00
Peter Knut
cad67e2c68 Add support for page scrolling while dragging sortable rows (issue #11) 2025-01-29 00:09:15 +01:00
Peter Knut
d53c966ef7 Add a screenshot to readme file 2025-01-29 00:09:15 +01:00
Peter Knut
5490c1654c Change project's name to AdminerNeo 2025-01-29 00:09:15 +01:00
Peter Knut
e69f0afc2a Remove unused git modules 2025-01-27 23:26:39 +01:00
Peter Knut
3380f3aaea Bump version to 4.14-dev 2025-01-27 19:57:38 +01:00
Peter Knut
ddb7dedfa4 Fix warnings in language detection 2025-01-25 23:02:29 +01:00
Peter Knut
0590d7d3ef Compile adminer to "export" directory 2025-01-25 00:21:46 +01:00
Peter Knut
44e59cd698 Referencing contributors in changelog file 2025-01-23 11:18:05 +01:00
Peter Knut
c6bb5b80a8 Release 4.13 2025-01-23 10:57:54 +01:00
Peter Knut
c50cdef293 Fix main visual glitches in designs, remove broken designs 2025-01-23 09:51:01 +01:00
Peter Knut
69dbf1b83f SQLite: Fix exporting and recreating tables with UNIQUE column constraint
- Fix using 'false' query result as array

Note that conflict clause (https://www.sqlite.org/syntax/conflict-clause.html) is not supported at all.

Thanks to @everslick (https://github.com/adminerevo/adminerevo/issues/227)
2025-01-22 10:45:48 +01:00
Peter Knut
4c68b268a6 Declare compatibility with PHP 8.4 2025-01-14 00:08:06 +01:00
Peter Knut
ae327d9a15 Ignore folders with compiled files from version 5 2025-01-13 22:44:28 +01:00
Peter Knut
edd6d6c117 Bump version to 4.12.1-dev 2025-01-13 22:42:30 +01:00
Peter Knut
c24af3087c Update German translation
Thanks to @odysseuscm (8de7d61da8 (commitcomment-151238844))
2025-01-13 22:37:43 +01:00
Kian-Meng Ang
7fc071c716 Fix some typos
https://github.com/adminerevo/adminerevo/pull/210
2025-01-11 22:53:16 +01:00
Peter Knut
3cbf8a8eb2 Remove donation link from logout message 2025-01-10 22:14:32 +01:00
Peter Knut
8de7d61da8 Update German translation
Thanks to wintstar (https://github.com/adminerevo/adminerevo/issues/219)
2024-12-03 14:39:43 +01:00
96 changed files with 669 additions and 1527 deletions

View File

@@ -1,67 +0,0 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
schedule:
- cron: '20 16 * * 0'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
steps:
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

3
.gitignore vendored
View File

@@ -1,6 +1,7 @@
/adminer/adminer.css /adminer/adminer.css
/adminer*.php /adminer*.php
/editor*.php /editor*.php
/**/compiled
/vendor/ /vendor/
/composer.lock /composer.lock
/temp /export/

6
.gitmodules vendored
View File

@@ -1,6 +0,0 @@
[submodule "designs/hydra"]
path = designs/hydra
url = https://github.com/Niyko/Hydra-Dark-Theme-for-Adminer
[submodule "designs/pepa-linha-dark"]
path = designs/pepa-linha-dark
url = https://github.com/pepa-linha/Adminer-Design-Dark/

View File

@@ -1,13 +1,50 @@
Changelog Changelog
========= =========
Adminer 4.12 (2024-11-21) AdminerNeo 4.14 (2025-02-02)
------------------------- ----------------------------
### Changes
- Change project's name to AdminerNeo
- Add support for page scrolling while dragging sortable rows (issue #11)
- Update lucas-sandery theme (by @lucas-sandery)
- Switch JsShrink library to a custom fork (issue #17)
- Compile adminer into the "export" directory
- Small JS tuning for better CodeQL analysis
### Bugfixes
- MariaDB: Fix missing uca1400 collations
- PostgreSQL: Fix initial value of exported autoincrement
- PostgreSQL: Fix renaming a database
- Fix warnings in language detection
- Fix link to language files in README.md (issue #18)
Thanks for help with invalid links: @adrianbj.
AdminerNeo 4.13 (2025-01-23)
----------------------------
### Changes
- Remove donation link from logout message
- Update German translation (by @wintstar, @odysseuscm)
- Declare compatibility with PHP 8.4
- Remove too broken designs
### Bugfixes
- SQLite: Fix exporting and recreating tables with UNIQUE column constraint
- Fix main visual glitches in designs
AdminerNeo 4.12 (2024-11-21)
----------------------------
### New features ### New features
- MySQL: Print comments of stored procedures and functions - MySQL: Print comments of stored procedures and functions
- MariaDB: Add support for UUID data type (by vukbgit) - MariaDB: Add support for UUID data type (by @vukbgit)
- MS SQL: Allow to set Encrypt and TrustServerCertificate with AdminerLoginSsl plugin (issue #5) - MS SQL: Allow to set Encrypt and TrustServerCertificate with AdminerLoginSsl plugin (issue #5)
- MS SQL, MongoDB: Connect to localhost with default port if server is not specified - MS SQL, MongoDB: Connect to localhost with default port if server is not specified
- Compiler: Allow to compile only selected drivers and languages - Compiler: Allow to compile only selected drivers and languages
@@ -19,7 +56,7 @@ Adminer 4.12 (2024-11-21)
- Update project URL and info - Update project URL and info
- Rename 'server' driver to 'mysql' - Rename 'server' driver to 'mysql'
- Compiler: MySQL driver is no longer the required default - Compiler: MySQL driver is no longer the required default
- Update Spanish translations (by isaacpolaino) - Update Spanish translations (by @isaacpolaino)
### Bugfixes ### Bugfixes
@@ -31,8 +68,8 @@ Adminer 4.12 (2024-11-21)
- Compiler: Fix translations in plugins - Compiler: Fix translations in plugins
- Compiler: Fix compiled SQLite single-driver Adminer - Compiler: Fix compiled SQLite single-driver Adminer
Adminer 4.11 (2024-10-30) AdminerNeo 4.11 (2024-10-30)
------------------------- ----------------------------
### New features ### New features
@@ -54,24 +91,24 @@ Adminer 4.11 (2024-10-30)
- MS SQL: Prefix Unicode strings with 'N' so they are treated correctly - MS SQL: Prefix Unicode strings with 'N' so they are treated correctly
- Fix printing error message while validating server URL - Fix printing error message while validating server URL
Adminer 4.10 (2024-10-22) AdminerNeo 4.10 (2024-10-22)
------------------------- ----------------------------
### New features ### New features
- Add drag-n-drop moving of rows in table selection filter - Add drag-n-drop moving of rows in table selection filter
- Add drag-n-drop moving of rows in table editing - Add drag-n-drop moving of rows in table editing
- Add removal buttons to table selection filter (by Roy Orbitson) - Add removal buttons to table selection filter (by @Roy-Orbison)
- Enable regular expressions when searching data in all tables (by Roy Orbitson) - Enable regular expressions when searching data in all tables (by @Roy-Orbison)
- Integrate tables-filter plugin into the base code - Integrate tables-filter plugin into the base code
- Plugin to auto-include adminer.js when present (by Roy Orbitson) - Plugin to auto-include adminer.js when present (by @Roy-Orbison)
- Print username next to the logout button - Print username next to the logout button
- Show partitioning info in table structure page - Show partitioning info in table structure page
- Show second link for editing a table under the table view - Show second link for editing a table under the table view
### Changes ### Changes
- Check new version against GitHub pages (by Adrian Jones) - Check new version against GitHub pages (by @adrianbj)
- Add 'Home' to breadcrumb navigation - Add 'Home' to breadcrumb navigation
- Full width design for database select box - Full width design for database select box
- Add table head to the list of indexes - Add table head to the list of indexes
@@ -87,8 +124,8 @@ Adminer 4.10 (2024-10-22)
- Fix missing SQL statement if warnings are printed (regression from 4.9) - Fix missing SQL statement if warnings are printed (regression from 4.9)
Adminer 4.9.4 (2024-10-09) AdminerNeo 4.9.4 (2024-10-09)
-------------------------- -----------------------------
- Fix the width of inline edit field - Fix the width of inline edit field
- Unify displaying of 'New item' action based on privileges - Unify displaying of 'New item' action based on privileges
@@ -100,56 +137,56 @@ Adminer 4.9.4 (2024-10-09)
- Editor: Fix building links with array parameters - Editor: Fix building links with array parameters
- Clean up the code for PHP < 5.6 - Clean up the code for PHP < 5.6
Adminer 4.9.3 (2024-10-02) AdminerNeo 4.9.3 (2024-10-02)
-------------------------- -----------------------------
- MySQL, PostgreSQL: Fix queries splitting and string constants - MySQL, PostgreSQL: Fix queries splitting and string constants
- MySQL: Fix where clause for `JSON` column (by SeaEagle) - MySQL: Fix where clause for `JSON` column (by @SeaEagle)
- MySQL: Fix editing user's proxy privilege, refactoring - MySQL: Fix editing user's proxy privilege, refactoring
- MariaDB: Fix comparing `CURRENT_TIMESTAMP` definition while altering a table - MariaDB: Fix comparing `CURRENT_TIMESTAMP` definition while altering a table
- PostgreSQL: Fix editing record that contains a field with `GENERATED ALWAYS` default value - PostgreSQL: Fix editing record that contains a field with `GENERATED ALWAYS` default value
- Fix using undefined Min_DB::info property - Fix using undefined Min_DB::info property
- Do not include unchanged `PARTITION BY` definition into `ALTER TABLE` query - Do not include unchanged `PARTITION BY` definition into `ALTER TABLE` query
- Do not limit unlimited memory while executing queries (by Michael Graß) - Do not limit unlimited memory while executing queries (by @oksiquatzel)
- Fix number conversion warning while reading INI settings - Fix number conversion warning while reading INI settings
- Hide invalid edit form if table record is not found - Hide invalid edit form if table record is not found
- CSS: Fix background color of `<pre>` used as edit field - CSS: Fix background color of `<pre>` used as edit field
- CSS: Bigger font size for code blocks - CSS: Bigger font size for code blocks
Adminer 4.9.2 (2024-09-18) AdminerNeo 4.9.2 (2024-09-18)
-------------------------- -----------------------------
- Fix textarea height for single-line inputs (used typically for SQLite text field) - Fix textarea height for single-line inputs (used typically for SQLite text field)
- Fix undefined property in error message if driver does not support error number (e.g. PostgreSQL) - Fix undefined property in error message if driver does not support error number (e.g. PostgreSQL)
- PostgreSQL: Fix search fields configuration (regression from 4.9) - PostgreSQL: Fix search fields configuration (regression from 4.9)
- PostgreSQL: Fix search condition for network address types, add macaddr8 type - PostgreSQL: Fix search condition for network address types, add macaddr8 type
- PostgreSQL: Fix exporting `CREATE TABLE` query with `GENERATED` default values - PostgreSQL: Fix exporting `CREATE TABLE` query with `GENERATED` default values
- PostgreSQL: Fix exporting `CREATE TABLE` query with sequence default value (by khoazero123) - PostgreSQL: Fix exporting `CREATE TABLE` query with sequence default value (by @khoazero123)
- PostgreSQL: Allow to set connection's sslmode with AdminerLoginSsl plugin - PostgreSQL: Allow to set connection's sslmode with AdminerLoginSsl plugin
- MySQL: Do not show `empty` enum value in strict mode - MySQL: Do not show `empty` enum value in strict mode
- Editor: Fix searching in tables - Editor: Fix searching in tables
- Add function to retrieve driver name that can be used in plugins (by Roy Orbison) - Add function to retrieve driver name that can be used in plugins (by @Roy-Orbison)
Adminer 4.9.1 (2024-09-09) AdminerNeo 4.9.1 (2024-09-09)
-------------------------- -----------------------------
- Compatibility with PHP 8.3 (by Sneda8) - Compatibility with PHP 8.3 (by @Sneda8)
- Fix compiling jush external files - Fix compiling jush external files
- Improved displaying of long table names in menu - Improved displaying of long table names in menu
- Replace deprecated `<acronym>` with `<abbr>` - Replace deprecated `<acronym>` with `<abbr>`
- Add support for translations in plugins - Add support for translations in plugins
- Add .editorconfig file - Add .editorconfig file
- MySQL: Add `unix_timestamp` to functions (by Michal Paulovic) - MySQL: Add `unix_timestamp` to functions (by @bbaronSVK)
- PostgreSQL: Show only accessible databases (by Thomas Daniels) - PostgreSQL: Show only accessible databases (by @thomas-daniels)
- PostgreSQL: Make data length calculation more accurate (by caltong) - PostgreSQL: Make data length calculation more accurate (by @caltong)
- PostgreSQL: Fix documentation link for `SERIAL` type - PostgreSQL: Fix documentation link for `SERIAL` type
- PostgreSQL: Fix undefined properties on PHP 8 - PostgreSQL: Fix undefined properties on PHP 8
- Elasticsearch: Fix field selection - Elasticsearch: Fix field selection
- AdminerEditForeign: Refactor and fix the plugin - AdminerEditForeign: Refactor and fix the plugin
- AdminerLoginOtp: Autocomplete hints for OTP input field, code refactoring - AdminerLoginOtp: Autocomplete hints for OTP input field, code refactoring
Adminer 4.9 (2024-08-19) AdminerNeo 4.9 (2024-08-19)
------------------------ ---------------------------
- Validate server input in login form - Validate server input in login form
- Validate connection to server in HTTP based drivers - Validate connection to server in HTTP based drivers
@@ -159,22 +196,22 @@ Adminer 4.9 (2024-08-19)
- Add new Elasticsearch 7 driver - Add new Elasticsearch 7 driver
- Set saving to file as a default export option - Set saving to file as a default export option
- Improve URL and email detection - Improve URL and email detection
- Fix AdminerVersionNoverify plugin blocking other plugins to modify HTML head (by Roy Orbitson) - Fix AdminerVersionNoverify plugin blocking other plugins to modify HTML head (by @Roy-Orbison)
- Fix several bugs and security issues in AdminerFileUpload plugin - Fix several bugs and security issues in AdminerFileUpload plugin
- Skip dump of generated columns (by Denitz) - Skip dump of generated columns (by @Denitz)
- Fix uninitialized string offset (by Adrian Jones) - Fix uninitialized string offset (by @adrianbj)
- Update composer.json - Update composer.json
- Add script for exporting compiled adminer variants - Add script for exporting compiled adminer variants
Adminer 4.8.2 (2024-03-16) AdminerNeo 4.8.2 (2024-03-16)
-------------------------- -----------------------------
- Support multi-line table comments - Support multi-line table comments
- MySQL: Use `ST_SRID()` instead of `SRID()` for MySQL 8 (PR #418) - MySQL: Use `ST_SRID()` instead of `SRID()` for MySQL 8 (PR #418)
- PostgreSQL: Don't reset table comments (regression from 4.2.0) - PostgreSQL: Don't reset table comments (regression from 4.2.0)
- PostgreSQL PDO: Allow editing rows identified by boolean column (PR #380) - PostgreSQL PDO: Allow editing rows identified by boolean column (PR #380)
- Update several translations: lv, bn, fr, it, nl, ru, cs, sk - Update several translations: lv, bn, fr, it, nl, ru, cs, sk
- Allow responsive styles on larger devices - Allow responsive styles on larger devices (by @lucas-sandery)
Adminer 4.8.1 (2021-05-14) Adminer 4.8.1 (2021-05-14)
-------------------------- --------------------------
@@ -454,7 +491,7 @@ Adminer 4.4.0 (2018-01-17)
- PostgreSQL: Sort table names (regression from 4.3.1) - PostgreSQL: Sort table names (regression from 4.3.1)
- Editor: Don't set time zone from PHP, fixes DST - Editor: Don't set time zone from PHP, fixes DST
- Editor: Display field comment's text inside [] only in edit form - Editor: Display field comment's text inside [] only in edit form
- Editor: Fix doubleclick on database page - Editor: Fix double-click on database page
- Editor: Fix Search data in tables - Editor: Fix Search data in tables
- Customization: Always send security headers - Customization: Always send security headers
- Hebrew translation - Hebrew translation
@@ -665,7 +702,7 @@ Adminer 3.7.0 (2013-05-19)
- Fix resetting search (bug #318) - Fix resetting search (bug #318)
- Don't use LIMIT 1 if updating unique row (bug #320) - Don't use LIMIT 1 if updating unique row (bug #320)
- Restrict editing rows without unique identifier to search results - Restrict editing rows without unique identifier to search results
- Display navigation bellow main content on mobile browsers - Display navigation below main content on mobile browsers
- Get number of rows on export page asynchronously - Get number of rows on export page asynchronously
- Respect 'whole result' even if some rows are checked (bug #339 since Adminer 3.7.0) - Respect 'whole result' even if some rows are checked (bug #339 since Adminer 3.7.0)
- MySQL: Optimize create table page and Editor navigation - MySQL: Optimize create table page and Editor navigation

View File

@@ -1,7 +1,7 @@
Licenses Licenses
======== ========
You may use Adminer under the terms of either the Apache License Version 2.0 You may use AdminerNeo under the terms of either the Apache License Version 2.0
or the GNU General Public License (GPL) version 2. or the GNU General Public License (GPL) version 2.
- [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) - [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)

View File

@@ -1,20 +1,24 @@
Adminer AdminerNeo
======= ==========
**Adminer** is a full-featured database management tool written in PHP. It consists of a single file ready to deploy to **AdminerNeo** is a full-featured database management tool written in PHP. It consists of a single file ready to deploy
the target server. As a companion, **Adminer Editor** offers data manipulation for end-users. to the target server. As a companion, **AdminerNeo Editor** offers data manipulation for end-users.
Supported database drivers: Supported database drivers:
- MySQL, MariaDB, PostgreSQL, SQLite, MS SQL, Oracle, MongoDB - MySQL, MariaDB, PostgreSQL, SQLite, MS SQL, Oracle, MongoDB
- With plugin: SimpleDB, Elasticsearch (beta), Firebird (alpha), ClickHouse (alpha) - With plugin: SimpleDB, Elasticsearch (beta), Firebird (alpha), ClickHouse (alpha)
AdminerNeo is based on the [Adminer](https://www.adminer.org/) project by Jakub Vrána.
<img src="docs/images/screenshot.webp" width="830px" alt="Screenshot"/>
Requirements Requirements
------------ ------------
- PHP 5.6+ with enabled sessions. - PHP 5.6+ with enabled sessions.
Migration from original Adminer Migration from Adminer
------------------------------- ----------------------
- Remove plugin AdminerTablesFilter (plugins/tables-filter.php). - Remove plugin AdminerTablesFilter (plugins/tables-filter.php).
- If you use complex custom theme, you will probably need to adjust a thing or two. - If you use complex custom theme, you will probably need to adjust a thing or two.
@@ -26,19 +30,19 @@ Please, read also 👉 **[What to expect](#what-to-expect)** section before you
Usage Usage
----- -----
Download one for the latest [release files](https://github.com/pematon/adminer/releases), upload to the HTTP server Download one for the latest [release files](https://github.com/adminerneo/adminerneo/releases), upload to the HTTP server
with PHP and enjoy 😉 If you are not satisfied with any combination of the database driver and language, you can with PHP and enjoy 😉 If you are not satisfied with any combination of the database driver and language, you can
download the source code and compile your own Adminer: download the source code and compile your own AdminerNeo:
- Download the source code. - Download the source code.
- Run `composer install` to install dependencies. - Run `composer install` to install dependencies.
- Run compile.php: - Run compile.php:
```shell ```shell
# Adminer # AdminerNeo
php compile.php <drivers> <languages> php compile.php <drivers> <languages>
# Editor # AdminerNeo Editor
php compile.php editor <drivers> <languages> php compile.php editor <drivers> <languages>
``` ```
@@ -48,14 +52,14 @@ php compile.php pgsql cs
php compile.php mysql,pgsql en,de,cs,sk php compile.php mysql,pgsql en,de,cs,sk
``` ```
[Available drivers](https://github.com/pematon/adminer/tree/master/adminer/drivers), [Available drivers](https://github.com/adminerneo/adminerneo/tree/main/adminer/drivers),
[languages](https://github.com/pematon/adminer/tree/master/adminer/lang). [languages](https://github.com/adminerneo/adminerneo/tree/main/adminer/lang).
Security Security
-------- --------
Adminer does not allow connecting to databases without a password and it rate-limits the connection attempts to protect AdminerNeo does not allow connecting to databases without a password and it rate-limits the connection attempts to protect
against brute-force attacks. Still, it is highly recommended to 🔒 **restrict access to Adminer** 🔒 by whitelisting IP against brute-force attacks. Still, it is highly recommended to 🔒 **restrict access to AdminerNeo** 🔒 by whitelisting IP
addresses allowed to connect to it, by password-protecting the access in your web server or by enabling security plugins addresses allowed to connect to it, by password-protecting the access in your web server or by enabling security plugins
(e.g. to require an OTP). (e.g. to require an OTP).
@@ -114,19 +118,19 @@ function adminer_object() {
include "./adminer.php"; include "./adminer.php";
``` ```
[Available plugins](https://github.com/pematon/adminer/tree/master/plugins). [Available plugins](https://github.com/adminerneo/adminerneo/tree/main/plugins).
Main project files Main project files
------------------ ------------------
- adminer/index.php - Run development version of Adminer. - adminer/index.php - Run development version of AdminerNeo.
- editor/index.php - Run development version of Adminer Editor. - editor/index.php - Run development version of AdminerNeo Editor.
- editor/example.php - Example customization. - editor/example.php - Example customization.
- plugins/readme.txt - Plugins for Adminer and Adminer Editor. - plugins/readme.txt - Plugins for AdminerNeo and AdminerNeo Editor.
- adminer/plugin.php - Plugin demo. - adminer/plugin.php - Plugin demo.
- adminer/sqlite.php - Development version of Adminer with SQLite allowed. - adminer/sqlite.php - Development version of AdminerNeo with SQLite allowed.
- editor/sqlite.php - Development version of Editor with SQLite allowed. - editor/sqlite.php - Development version of Editor with SQLite allowed.
- adminer/designs.php - Development version of Adminer with adminer.css switcher. - adminer/designs.php - Development version of AdminerNeo with adminer.css switcher.
- compile.php - Create a single file version. - compile.php - Create a single file version.
- lang.php - Update translations. - lang.php - Update translations.
- tests/katalon.html - Katalon Automation Recorder test suite. - tests/katalon.html - Katalon Automation Recorder test suite.
@@ -134,7 +138,7 @@ Main project files
Project history Project history
--------------- ---------------
Adminer was originally developed by Jakub Vrana, and it can be still found on [official pages](https://www.adminer.org/). Adminer was originally developed by Jakub Vrána, and it can be still found on [official pages](https://www.adminer.org/).
Unfortunately, it is not maintained for several years. In the meantime, I (@peterpp) created for my company a set of Unfortunately, it is not maintained for several years. In the meantime, I (@peterpp) created for my company a set of
custom plugins, modern theme, fixed some bugs and practically rewrote the Elasticsearch driver. I also looked closely custom plugins, modern theme, fixed some bugs and practically rewrote the Elasticsearch driver. I also looked closely
and contributed to the [AdminerEvo](https://www.adminerevo.org/) project that looked promising. However, I finally and contributed to the [AdminerEvo](https://www.adminerevo.org/) project that looked promising. However, I finally
@@ -144,7 +148,7 @@ What to expect
-------------- --------------
Our top priority is fixing the security issues and reported bugs. But we really want to move forward and transform Our top priority is fixing the security issues and reported bugs. But we really want to move forward and transform
Adminer to a tool that will keep its simplicity, yet looks much better, is even easier to use and can be configured AdminerNeo to a tool that will keep its simplicity, yet looks much better, is even easier to use and can be configured
without requirement of additional plugins. without requirement of additional plugins.
### Version 4.x ### Version 4.x
@@ -154,7 +158,7 @@ UI improvements.
### Version 5 ### Version 5
Bridges will be burned 🔥🔥🔥. It's in development already, so you [can check](https://github.com/pematon/adminer/tree/version-5) Bridges will be burned 🔥🔥🔥. It's in development already, so you [can check](https://github.com/adminerneo/adminerneo/tree/version-5)
what's going on. Or you can become the early adopter and help us with testing 😉 what's going on. Or you can become the early adopter and help us with testing 😉
Our goals are: Our goals are:
@@ -165,6 +169,3 @@ support dark mode, configurable color variants for production/devel environment.
- **Plugins** - Integrate several basic plugins, enable them by optional configuration. - **Plugins** - Integrate several basic plugins, enable them by optional configuration.
- **Codebase** - Prefer code readability before minimalism, use PER coding style, add namespaces. - **Codebase** - Prefer code readability before minimalism, use PER coding style, add namespaces.
- **Compilation** - Allow to export selected drivers, themes, languages and plugins into a single adminer.php file. - **Compilation** - Allow to export selected drivers, themes, languages and plugins into a single adminer.php file.
We are also thinking to change the project's name, so people will clearly distinguish between original Adminer and
other forks. Any suggestions are welcome.

View File

@@ -1,7 +1,7 @@
Reporting security issues Reporting security issues
========================= =========================
To report a security issue, please [open a draft security advisory](https://github.com/pematon/adminer/security/advisories). To report a security issue, please [open a draft security advisory](https://github.com/adminerneo/adminerneo/security/advisories).
Security issues are handled with top priority. Once acknowledged, a fix should be available and new version released Security issues are handled with top priority. Once acknowledged, a fix should be available and new version released
as soon as possible. Security advisories will be made public after a fix and new version have been released, as soon as possible. Security advisories will be made public after a fix and new version have been released,

View File

@@ -33,7 +33,7 @@ if (!$error && $_POST) {
$query = (isset($_GET["callf"]) ? "SELECT" : "CALL") . " " . table($PROCEDURE) . "(" . implode(", ", $call) . ")"; $query = (isset($_GET["callf"]) ? "SELECT" : "CALL") . " " . table($PROCEDURE) . "(" . implode(", ", $call) . ")";
$start = microtime(true); $start = microtime(true);
$result = $connection->multi_query($query); $result = $connection->multi_query($query);
$affected = $connection->affected_rows; // getting warnigns overwrites this $affected = $connection->affected_rows; // getting warnings overwrites this
echo $adminer->selectQuery($query, $start, !$result); echo $adminer->selectQuery($query, $start, !$result);
if (!$result) { if (!$result) {

View File

@@ -642,8 +642,17 @@ if (isset($_GET["mysql"])) {
* @return array * @return array
*/ */
function collations() { function collations() {
global $connection;
$return = array(); $return = array();
foreach (get_rows("SHOW COLLATION") as $row) {
// Since MariaDB 10.10, one collation can be compatible with more character sets, so collations no longer have unique IDs.
// All combinations can be selected from information_schema.COLLATION_CHARACTER_SET_APPLICABILITY table.
$query = min_version('', '10.10', $connection) ?
"SELECT CHARACTER_SET_NAME AS Charset, FULL_COLLATION_NAME AS Collation, IS_DEFAULT AS `Default` FROM information_schema.COLLATION_CHARACTER_SET_APPLICABILITY" :
"SHOW COLLATION";
foreach (get_rows($query) as $row) {
if ($row["Default"]) { if ($row["Default"]) {
$return[$row["Charset"]][-1] = $row["Collation"]; $return[$row["Charset"]][-1] = $row["Collation"];
} else { } else {
@@ -651,9 +660,11 @@ if (isset($_GET["mysql"])) {
} }
} }
ksort($return); ksort($return);
foreach ($return as $key => $val) { foreach ($return as $key => $val) {
asort($return[$key]); asort($return[$key]);
} }
return $return; return $return;
} }

View File

@@ -71,6 +71,11 @@ if (isset($_GET["pgsql"])) {
} }
function query($query, $unbuffered = false) { function query($query, $unbuffered = false) {
if (!$this->_link) {
$this->error = "Invalid connection";
return false;
}
$result = @pg_query($this->_link, $query); $result = @pg_query($this->_link, $query);
$this->error = ""; $this->error = "";
if (!$result) { if (!$result) {
@@ -497,12 +502,17 @@ ORDER BY connamespace, conname") as $row) {
function drop_databases($databases) { function drop_databases($databases) {
global $connection; global $connection;
$connection->close(); $connection->close();
return apply_queries("DROP DATABASE", $databases, 'idf_escape'); return apply_queries("DROP DATABASE", $databases, 'idf_escape');
} }
function rename_database($name, $collation) { function rename_database($name, $collation) {
//! current database cannot be renamed global $connection;
$connection->close();
return queries("ALTER DATABASE " . idf_escape(DB) . " RENAME TO " . idf_escape($name)); return queries("ALTER DATABASE " . idf_escape(DB) . " RENAME TO " . idf_escape($name));
} }
@@ -776,8 +786,6 @@ AND typelem = 0"
} }
function create_sql($table, $auto_increment, $style) { function create_sql($table, $auto_increment, $style) {
global $connection;
$return = '';
$return_parts = array(); $return_parts = array();
$sequences = array(); $sequences = array();
@@ -812,8 +820,11 @@ AND typelem = 0"
: "SELECT * FROM $sequence_name" : "SELECT * FROM $sequence_name"
); );
$sq = reset($rows); $sq = reset($rows);
$sequences[] = ($style == "DROP+CREATE" ? "DROP SEQUENCE IF EXISTS $sequence_name;\n" : "")
. "CREATE SEQUENCE $sequence_name INCREMENT $sq[increment_by] MINVALUE $sq[min_value] MAXVALUE $sq[max_value]" . ($auto_increment && $sq['last_value'] ? " START $sq[last_value]" : "") . " CACHE $sq[cache_value];"; $sequences[] = ($style == "DROP+CREATE" ? "DROP SEQUENCE IF EXISTS $sequence_name;\n" : "") .
"CREATE SEQUENCE $sequence_name INCREMENT $sq[increment_by] MINVALUE $sq[min_value] MAXVALUE $sq[max_value]" .
($auto_increment && $sq['last_value'] ? " START " . ($sq["last_value"] + 1) : "") .
" CACHE $sq[cache_value];";
} }
} }
@@ -847,7 +858,7 @@ AND typelem = 0"
} }
} }
// coments for table & fields // comments for table & fields
if ($status['Comment']) { if ($status['Comment']) {
$return .= "\n\nCOMMENT ON TABLE " . idf_escape($status['nspname']) . "." . idf_escape($status['Name']) . " IS " . q($status['Comment']) . ";"; $return .= "\n\nCOMMENT ON TABLE " . idf_escape($status['nspname']) . "." . idf_escape($status['Name']) . " IS " . q($status['Comment']) . ";";
} }

View File

@@ -47,7 +47,7 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) {
return false; return false;
} }
$row = $result->_result->fetchArray(); $row = $result->_result->fetchArray();
return $row[$field]; return $row ? $row[$field] : false;
} }
} }
@@ -483,6 +483,7 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) {
function alter_table($table, $name, $fields, $foreign, $comment, $engine, $collation, $auto_increment, $partitioning) { function alter_table($table, $name, $fields, $foreign, $comment, $engine, $collation, $auto_increment, $partitioning) {
global $connection; global $connection;
$use_all_fields = ($table == "" || $foreign); $use_all_fields = ($table == "" || $foreign);
foreach ($fields as $field) { foreach ($fields as $field) {
if ($field[0] != "" || !$field[1] || $field[2]) { if ($field[0] != "" || !$field[1] || $field[2]) {
@@ -490,84 +491,105 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) {
break; break;
} }
} }
$alter = array();
$originals = array(); $alter_fields = [];
$originals = [];
foreach ($fields as $field) { foreach ($fields as $field) {
if ($field[1]) { if (!$field[1]) continue;
$alter[] = ($use_all_fields ? $field[1] : "ADD " . implode($field[1]));
if ($field[0] != "") { if ($field[0] != "") {
$originals[$field[0]] = $field[1][0]; $originals[$field[0]] = $field[1][0];
}
} }
$alter_fields[] = ($use_all_fields ? $field[1] : "ADD " . implode($field[1]));
} }
if (!$use_all_fields) { if (!$use_all_fields) {
foreach ($alter as $val) { foreach ($alter_fields as $val) {
if (!queries("ALTER TABLE " . table($table) . " $val")) { if (!queries("ALTER TABLE " . table($table) . " $val")) {
return false; return false;
} }
} }
if ($table != $name && !queries("ALTER TABLE " . table($table) . " RENAME TO " . table($name))) { if ($table != $name && !queries("ALTER TABLE " . table($table) . " RENAME TO " . table($name))) {
return false; return false;
} }
} elseif (!recreate_table($table, $name, $alter, $originals, $foreign, $auto_increment)) { } elseif (!recreate_table($table, $name, $alter_fields, $originals, $foreign, $auto_increment)) {
return false; return false;
} }
if ($auto_increment) { if ($auto_increment) {
queries("BEGIN"); queries("BEGIN");
queries("UPDATE sqlite_sequence SET seq = $auto_increment WHERE name = " . q($name)); // ignores error queries("UPDATE sqlite_sequence SET seq = $auto_increment WHERE name = " . q($name)); // ignores error
if (!$connection->affected_rows) { if (!$connection->affected_rows) {
queries("INSERT INTO sqlite_sequence (name, seq) VALUES (" . q($name) . ", $auto_increment)"); queries("INSERT INTO sqlite_sequence (name, seq) VALUES (" . q($name) . ", $auto_increment)");
} }
queries("COMMIT"); queries("COMMIT");
} }
return true; return true;
} }
function recreate_table($table, $name, $fields, $originals, $foreign, $auto_increment, $indexes = array()) { function recreate_table($table, $name, $fields, $originals, $foreign, $auto_increment, $indexes = []) {
global $connection; global $connection;
if ($table != "") { if ($table != "") {
if (!$fields) { if (!$fields) {
foreach (fields($table) as $key => $field) { foreach (fields($table) as $key => $field) {
if ($indexes) { if ($indexes) {
$field["auto_increment"] = 0; $field["auto_increment"] = 0;
} }
$fields[] = process_field($field, $field); $fields[] = process_field($field, $field);
$originals[$key] = idf_escape($key); $originals[$key] = idf_escape($key);
} }
} }
$primary_key = false; $primary_key = false;
foreach ($fields as $field) { foreach ($fields as $field) {
if ($field[6]) { if ($field[6]) {
$primary_key = true; $primary_key = true;
} }
} }
$drop_indexes = array();
$drop_indexes = [];
foreach ($indexes as $key => $val) { foreach ($indexes as $key => $val) {
if ($val[2] == "DROP") { if ($val[2] == "DROP") {
$drop_indexes[$val[1]] = true; $drop_indexes[$val[1]] = true;
unset($indexes[$key]); unset($indexes[$key]);
} }
} }
foreach (indexes($table) as $key_name => $index) { foreach (indexes($table) as $key_name => $index) {
$columns = array(); $columns = [];
foreach ($index["columns"] as $key => $column) { foreach ($index["columns"] as $key => $column) {
if (!$originals[$column]) { if (!isset($originals[$column])) {
continue 2; continue 2;
} }
$columns[] = $originals[$column] . ($index["descs"][$key] ? " DESC" : ""); $columns[] = $originals[$column] . ($index["descs"][$key] ? " DESC" : "");
} }
if (!$drop_indexes[$key_name]) { if (!$drop_indexes[$key_name]) {
if ($index["type"] != "PRIMARY" || !$primary_key) { if ($index["type"] != "PRIMARY" || !$primary_key) {
// Remove sqlite_ prefix from internal index created by UNIQUE column constraint.
// This will transform column constrain to basic index.
$key_name = preg_replace('~^sqlite_~', "", $key_name);
$indexes[] = array($index["type"], $key_name, $columns); $indexes[] = array($index["type"], $key_name, $columns);
} }
} }
} }
foreach ($indexes as $key => $val) { foreach ($indexes as $key => $val) {
if ($val[0] == "PRIMARY") { if ($val[0] == "PRIMARY") {
unset($indexes[$key]); unset($indexes[$key]);
$foreign[] = " PRIMARY KEY (" . implode(", ", $val[2]) . ")"; $foreign[] = " PRIMARY KEY (" . implode(", ", $val[2]) . ")";
} }
} }
foreach (foreign_keys($table) as $key_name => $foreign_key) { foreach (foreign_keys($table) as $key_name => $foreign_key) {
foreach ($foreign_key["source"] as $key => $column) { foreach ($foreign_key["source"] as $key => $column) {
if (!$originals[$column]) { if (!$originals[$column]) {
@@ -575,30 +597,37 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) {
} }
$foreign_key["source"][$key] = idf_unescape($originals[$column]); $foreign_key["source"][$key] = idf_unescape($originals[$column]);
} }
if (!isset($foreign[" $key_name"])) { if (!isset($foreign[" $key_name"])) {
$foreign[] = " " . format_foreign_key($foreign_key); $foreign[] = " " . format_foreign_key($foreign_key);
} }
} }
queries("BEGIN"); queries("BEGIN");
} }
foreach ($fields as $key => $field) { foreach ($fields as $key => $field) {
$fields[$key] = " " . implode($field); $fields[$key] = " " . implode($field);
} }
$fields = array_merge($fields, array_filter($foreign)); $fields = array_merge($fields, array_filter($foreign));
$temp_name = ($table == $name ? "adminer_$name" : $name); $temp_name = ($table == $name ? "adminer_$name" : $name);
if (!queries("CREATE TABLE " . table($temp_name) . " (\n" . implode(",\n", $fields) . "\n)")) { if (!queries("CREATE TABLE " . table($temp_name) . " (\n" . implode(",\n", $fields) . "\n)")) {
// implicit ROLLBACK to not overwrite $connection->error // implicit ROLLBACK to not overwrite $connection->error
return false; return false;
} }
if ($table != "") { if ($table != "") {
if ($originals && !queries("INSERT INTO " . table($temp_name) . " (" . implode(", ", $originals) . ") SELECT " . implode(", ", array_map('idf_escape', array_keys($originals))) . " FROM " . table($table))) { if ($originals && !queries("INSERT INTO " . table($temp_name) . " (" . implode(", ", $originals) . ") SELECT " . implode(", ", array_map('idf_escape', array_keys($originals))) . " FROM " . table($table))) {
return false; return false;
} }
$triggers = array();
$triggers = [];
foreach (triggers($table) as $trigger_name => $timing_event) { foreach (triggers($table) as $trigger_name => $timing_event) {
$trigger = trigger($trigger_name); $trigger = trigger($trigger_name);
$triggers[] = "CREATE TRIGGER " . idf_escape($trigger_name) . " " . implode(" ", $timing_event) . " ON " . table($name) . "\n$trigger[Statement]"; $triggers[] = "CREATE TRIGGER " . idf_escape($trigger_name) . " " . implode(" ", $timing_event) . " ON " . table($name) . "\n$trigger[Statement]";
} }
$auto_increment = $auto_increment ? 0 : $connection->result("SELECT seq FROM sqlite_sequence WHERE name = " . q($table)); // if $auto_increment is set then it will be updated later $auto_increment = $auto_increment ? 0 : $connection->result("SELECT seq FROM sqlite_sequence WHERE name = " . q($table)); // if $auto_increment is set then it will be updated later
if (!queries("DROP TABLE " . table($table)) // drop before creating indexes and triggers to allow using old names if (!queries("DROP TABLE " . table($table)) // drop before creating indexes and triggers to allow using old names
|| ($table == $name && !queries("ALTER TABLE " . table($temp_name) . " RENAME TO " . table($name))) || ($table == $name && !queries("ALTER TABLE " . table($temp_name) . " RENAME TO " . table($name)))
@@ -606,16 +635,20 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) {
) { ) {
return false; return false;
} }
if ($auto_increment) { if ($auto_increment) {
queries("UPDATE sqlite_sequence SET seq = $auto_increment WHERE name = " . q($name)); // ignores error queries("UPDATE sqlite_sequence SET seq = $auto_increment WHERE name = " . q($name)); // ignores error
} }
foreach ($triggers as $trigger) { foreach ($triggers as $trigger) {
if (!queries($trigger)) { if (!queries($trigger)) {
return false; return false;
} }
} }
queries("COMMIT"); queries("COMMIT");
} }
return true; return true;
} }
@@ -628,11 +661,12 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) {
} }
function alter_indexes($table, $alter) { function alter_indexes($table, $alter) {
foreach ($alter as $primary) { foreach ($alter as $index) {
if ($primary[0] == "PRIMARY") { if ($index[0] == "PRIMARY" || (preg_match('~^sqlite_~', $index[1]))) {
return recreate_table($table, $table, array(), array(), array(), 0, $alter); return recreate_table($table, $table, [], [], [], 0, $alter);
} }
} }
foreach (array_reverse($alter) as $val) { foreach (array_reverse($alter) as $val) {
if (!queries($val[2] == "DROP" if (!queries($val[2] == "DROP"
? "DROP INDEX " . idf_escape($val[1]) ? "DROP INDEX " . idf_escape($val[1])
@@ -641,6 +675,7 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) {
return false; return false;
} }
} }
return true; return true;
} }
@@ -734,13 +769,17 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) {
function create_sql($table, $auto_increment, $style) { function create_sql($table, $auto_increment, $style) {
global $connection; global $connection;
$return = $connection->result("SELECT sql FROM sqlite_master WHERE type IN ('table', 'view') AND name = " . q($table)); $return = $connection->result("SELECT sql FROM sqlite_master WHERE type IN ('table', 'view') AND name = " . q($table));
foreach (indexes($table) as $name => $index) { foreach (indexes($table) as $name => $index) {
if ($name == '') { // Skip primary key and internal indexes.
if ($name == '' || strpos($name, "sqlite_") === 0) {
continue; continue;
} }
$return .= ";\n\n" . index_sql($table, $index['type'], $name, "(" . implode(", ", array_map('idf_escape', $index['columns'])) . ")"); $return .= ";\n\n" . index_sql($table, $index['type'], $name, "(" . implode(", ", array_map('idf_escape', $index['columns'])) . ")");
} }
return $return; return $return;
} }

View File

@@ -13,7 +13,7 @@ class Adminer {
* @return string HTML code * @return string HTML code
*/ */
function name() { function name() {
return "<a id='h1' href='" . h(HOME_URL) . "'>Adminer</a>"; return "<a id='h1' href='" . h(HOME_URL) . "'>AdminerNeo</a>";
} }
/** Connection parameters /** Connection parameters
@@ -1046,7 +1046,7 @@ class Adminer {
<?php if ($missing != "auth"): ?> <?php if ($missing != "auth"): ?>
<span class="version"> <span class="version">
<?php echo $VERSION; ?> <?php echo $VERSION; ?>
<a href="https://github.com/pematon/adminer/releases"<?php echo target_blank(); ?> id="version"> <a href="https://github.com/adminerneo/adminerneo/releases"<?php echo target_blank(); ?> id="version">
<?php echo (version_compare($VERSION, $_COOKIE["adminer_version"]) < 0 ? h($_COOKIE["adminer_version"]) : ""); ?> <?php echo (version_compare($VERSION, $_COOKIE["adminer_version"]) < 0 ? h($_COOKIE["adminer_version"]) : ""); ?>
</a> </a>
</span> </span>

View File

@@ -147,7 +147,7 @@ if ($auth) {
set_session($key, null); set_session($key, null);
} }
unset_permanent(); unset_permanent();
redirect(HOME_URL, lang('Logout successful.') . ' ' . lang('Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.')); redirect(HOME_URL, lang('Logout successful.'));
} elseif ($permanent && !$_SESSION["pwds"]) { } elseif ($permanent && !$_SESSION["pwds"]) {
session_regenerate_id(); session_regenerate_id();

View File

@@ -143,7 +143,7 @@ function csp() {
[ [
// 'self' is a fallback for browsers not supporting 'strict-dynamic', 'unsafe-inline' is a fallback for browsers not supporting 'nonce-' // 'self' is a fallback for browsers not supporting 'strict-dynamic', 'unsafe-inline' is a fallback for browsers not supporting 'nonce-'
"script-src" => "'self' 'unsafe-inline' 'nonce-" . get_nonce() . "' 'strict-dynamic'", "script-src" => "'self' 'unsafe-inline' 'nonce-" . get_nonce() . "' 'strict-dynamic'",
"connect-src" => "'self' https://api.github.com/repos/pematon/adminer/releases/latest", "connect-src" => "'self' https://api.github.com/repos/adminerneo/adminerneo/releases/latest",
"frame-src" => "'self'", "frame-src" => "'self'",
"object-src" => "'none'", "object-src" => "'none'",
"base-uri" => "'none'", "base-uri" => "'none'",

View File

@@ -637,7 +637,7 @@ function doc_link(array $paths, $text = "<sup>?</sup>") {
* @return string * @return string
*/ */
function ob_gzencode($string) { function ob_gzencode($string) {
// ob_start() callback recieves an optional parameter $phase but gzencode() accepts optional parameter $level // ob_start() callback receives an optional parameter $phase but gzencode() accepts optional parameter $level
return gzencode($string); return gzencode($string);
} }

View File

@@ -323,7 +323,7 @@ function ini_bool($ini) {
return (preg_match('~^(on|true|yes)$~i', $val) || (int) $val); // boolean values set by php_value are strings return (preg_match('~^(on|true|yes)$~i', $val) || (int) $val); // boolean values set by php_value are strings
} }
/** Check if SID is neccessary /** Check if SID is necessary
* @return bool * @return bool
*/ */
function sid() { function sid() {

View File

@@ -156,14 +156,14 @@ if (isset($_POST["lang"]) && verify_token()) { // $error not yet available
} }
$available_languages = get_available_languages(); $available_languages = get_available_languages();
$LANG = $available_languages[0]; $LANG = array_keys($available_languages)[0];
if (isset($available_languages[$_COOKIE["adminer_lang"]])) { if (isset($_COOKIE["adminer_lang"]) && isset($available_languages[$_COOKIE["adminer_lang"]])) {
cookie("adminer_lang", $_COOKIE["adminer_lang"]); cookie("adminer_lang", $_COOKIE["adminer_lang"]);
$LANG = $_COOKIE["adminer_lang"]; $LANG = $_COOKIE["adminer_lang"];
} elseif (isset($available_languages[$_SESSION["lang"]])) { } elseif (isset($available_languages[$_SESSION["lang"]])) {
$LANG = $_SESSION["lang"]; $LANG = $_SESSION["lang"];
} else { } elseif (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"])) {
$accept_language = []; $accept_language = [];
preg_match_all('~([-a-z]+)(;q=([0-9.]+))?~', str_replace("_", "-", strtolower($_SERVER["HTTP_ACCEPT_LANGUAGE"])), $matches, PREG_SET_ORDER); preg_match_all('~([-a-z]+)(;q=([0-9.]+))?~', str_replace("_", "-", strtolower($_SERVER["HTTP_ACCEPT_LANGUAGE"])), $matches, PREG_SET_ORDER);
foreach ($matches as $match) { foreach ($matches as $match) {

View File

@@ -1,2 +1,2 @@
<?php <?php
$VERSION = "4.12"; $VERSION = "4.14";

View File

@@ -1,8 +1,8 @@
<?php <?php
/** /**
* Adminer - Database management in a single PHP file * AdminerNeo - Database management in a single PHP file
* *
* @link https://github.com/pematon/adminer * @link https://github.com/adminerneo/adminerneo
* @author Jakub Vrana (https://www.vrana.cz/) * @author Jakub Vrana (https://www.vrana.cz/)
* @author Peter Knut * @author Peter Knut
* @copyright 2007-2021 Jakub Vrana, 2024 Peter Knut * @copyright 2007-2021 Jakub Vrana, 2024 Peter Knut

View File

@@ -286,7 +286,6 @@ $translations = array(
'Default value' => null, 'Default value' => null,
'Full table scan' => null, 'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(), 'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null, 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,

View File

@@ -346,7 +346,6 @@ $translations = array(
'ATTACH queries are not supported.' => null, 'ATTACH queries are not supported.' => null,
'Warnings' => null, 'Warnings' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null, 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null, 'There is a space in the input password which might be the cause.' => null,

View File

@@ -286,7 +286,6 @@ $translations = array(
'Default value' => null, 'Default value' => null,
'Full table scan' => null, 'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(), 'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null, 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,

View File

@@ -333,7 +333,6 @@ $translations = array(
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null, 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null, 'Default value' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(), 'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null, 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,

View File

@@ -286,7 +286,6 @@ $translations = array(
'Default value' => null, 'Default value' => null,
'Full table scan' => null, 'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(), 'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null, 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,

View File

@@ -11,7 +11,6 @@ $translations = array(
'Logout' => 'Odhlásit', 'Logout' => 'Odhlásit',
'Logged as: %s' => 'Přihlášen jako: %s', 'Logged as: %s' => 'Přihlášen jako: %s',
'Logout successful.' => 'Odhlášení proběhlo v pořádku.', 'Logout successful.' => 'Odhlášení proběhlo v pořádku.',
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'Díky za použití Admineru, <a href="https://www.adminer.org/cs/donation/">přispějte</a> na vývoj.',
'Invalid server or credentials.' => 'Neplatný server nebo přihlašovací údaje.', 'Invalid server or credentials.' => 'Neplatný server nebo přihlašovací údaje.',
'There is a space in the input password which might be the cause.' => 'Problém může být, že je v zadaném hesle mezera.', 'There is a space in the input password which might be the cause.' => 'Problém může být, že je v zadaném hesle mezera.',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer nepodporuje přístup k databázi bez hesla, <a href="https://www.adminer.org/cs/password/"%s>více informací</a>.', 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer nepodporuje přístup k databázi bez hesla, <a href="https://www.adminer.org/cs/password/"%s>více informací</a>.',

View File

@@ -292,7 +292,6 @@ $translations = array(
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null, 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null, 'Default value' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(), 'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null, 'There is a space in the input password which might be the cause.' => null,

View File

@@ -1,9 +1,8 @@
<?php <?php
$translations = array( $translations = array(
'Home' => null, 'Home' => 'Startseite',
'Login' => 'Login', 'Login' => 'Login',
'Logout successful.' => 'Abmeldung erfolgreich.', 'Logout successful.' => 'Abmeldung erfolgreich.',
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'Danke, dass Sie Adminer genutzt haben. <a href="https://www.adminer.org/de/donation/">Spenden willkommen!</a>',
'Invalid server or credentials.' => 'Ungültige Server oder Anmelde-Informationen.', 'Invalid server or credentials.' => 'Ungültige Server oder Anmelde-Informationen.',
'Server' => 'Server', 'Server' => 'Server',
'Username' => 'Benutzer', 'Username' => 'Benutzer',
@@ -33,7 +32,7 @@ $translations = array(
'Create database' => 'Datenbank erstellen', 'Create database' => 'Datenbank erstellen',
'SQL command' => 'SQL-Kommando', 'SQL command' => 'SQL-Kommando',
'Logout' => 'Abmelden', 'Logout' => 'Abmelden',
'Use' => 'Benutzung', 'Use' => 'Auswählen',
'No tables.' => 'Keine Tabellen.', 'No tables.' => 'Keine Tabellen.',
'select' => 'zeigen', 'select' => 'zeigen',
'Item has been deleted.' => 'Datensatz wurde gelöscht.', 'Item has been deleted.' => 'Datensatz wurde gelöscht.',
@@ -225,7 +224,7 @@ $translations = array(
'Permanent login' => 'Passwort speichern', 'Permanent login' => 'Passwort speichern',
'Databases have been dropped.' => 'Datenbanken wurden entfernt.', 'Databases have been dropped.' => 'Datenbanken wurden entfernt.',
'Search data in tables' => 'Suche in Tabellen', 'Search data in tables' => 'Suche in Tabellen',
'as a regular expression' => null, 'as a regular expression' => 'als regulärer Ausdruck',
'Schema' => 'Schema', 'Schema' => 'Schema',
'Alter schema' => 'Schema ändern', 'Alter schema' => 'Schema ändern',
'Create schema' => 'Schema erstellen', 'Create schema' => 'Schema erstellen',
@@ -288,33 +287,33 @@ $translations = array(
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Das Master-Passwort ist abgelaufen. <a href="https://www.adminer.org/de/extension/"%s>Implementieren</a> Sie die %s Methode, um es permanent zu machen.', 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Das Master-Passwort ist abgelaufen. <a href="https://www.adminer.org/de/extension/"%s>Implementieren</a> Sie die %s Methode, um es permanent zu machen.',
'%d / ' => '%d / ', '%d / ' => '%d / ',
'Drop %s?' => null, 'Drop %s?' => '%s entfernen?',
'Materialized view' => null, 'Materialized view' => 'Strukturierte Ansicht',
'Vacuum' => null, 'Vacuum' => 'Vacuum',
'overwrite' => null, 'overwrite' => 'überschreiben',
'DB' => null, 'DB' => 'DB',
'ATTACH queries are not supported.' => null, 'ATTACH queries are not supported.' => 'ATTACH Abfragen werden nicht unterstützt.',
'Warnings' => null, 'Warnings' => 'Warnungen',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null, 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer unterstützt den Zugriff auf eine Datenbank ohne Passwort nicht, <a href="https://www.adminer.org/en/password/"%s>mehr Informationen</a>.',
'Full table scan' => null, 'Full table scan' => 'Vollständige Überprüfung der Tabelle',
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => 'Die Aktion wird nach erfolgreicher Anmeldung mit denselben Anmeldedaten ausgeführt.',
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => 'Die Verbindung zu privilegierten Ports ist nicht erlaubt.',
'There is a space in the input password which might be the cause.' => null, 'There is a space in the input password which might be the cause.' => 'Es gibt ein Leerzeichen im Eingabepasswort, das die Ursache sein könnte.',
'Unknown error.' => null, 'Unknown error.' => 'Unbekannter Fehler.',
'Database does not support password.' => null, 'Database does not support password.' => 'Die Datenbank unterstützt kein Passwort.',
'Disable %s or enable %s or %s extensions.' => null, 'Disable %s or enable %s or %s extensions.' => 'Deaktivieren Sie %s oder aktivieren Sie die Erweiterungen %s oder %s.',
'Columns' => null, 'Columns' => 'Spalten',
'Nullable' => null, 'Nullable' => 'Nullbar',
'Default' => null, 'Default' => 'Standard',
'Yes' => 'Ja', 'Yes' => 'Ja',
'No' => 'Nein', 'No' => 'Nein',
'One Time Password' => null, 'One Time Password' => 'Einmal-Passwort',
'Invalid OTP code.' => null, 'Invalid OTP code.' => 'Ungültiger OTP-Code.',
'Schemas' => null, 'Schemas' => 'Schemata',
'No schemas.' => null, 'No schemas.' => 'Keine Schemata.',
'Show schema' => null, 'Show schema' => 'Zeige Schemata',
'No driver' => null, 'No driver' => 'Kein Treiber',
'Database driver not found.' => null, 'Database driver not found.' => 'Datenbanktreiber nicht gefunden.',
); );

View File

@@ -341,7 +341,6 @@ $translations = array(
'ATTACH queries are not supported.' => null, 'ATTACH queries are not supported.' => null,
'Warnings' => null, 'Warnings' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null, 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null, 'There is a space in the input password which might be the cause.' => null,

View File

@@ -286,7 +286,6 @@ $translations = array(
'Default value' => 'Valor por defecto', 'Default value' => 'Valor por defecto',
'Full table scan' => null, 'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array('Demasiados intentos erroneos, pruebe de nuevo en %d minuto.', 'Demasiados intentos erroneos, pruebe de nuevo en %d minutos.'), 'Too many unsuccessful logins, try again in %d minute(s).' => array('Demasiados intentos erroneos, pruebe de nuevo en %d minuto.', 'Demasiados intentos erroneos, pruebe de nuevo en %d minutos.'),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'La contraseña Maestra ha expirado. <a href="https://www.adminer.org/en/extension/"%s>Implementar</a> %s un metodo para hacerla permanente.', 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'La contraseña Maestra ha expirado. <a href="https://www.adminer.org/en/extension/"%s>Implementar</a> %s un metodo para hacerla permanente.',
'The action will be performed after successful login with the same credentials.' => 'La acción se realizará tras iniciar sesión de nuevo con las mismas credenciales.', 'The action will be performed after successful login with the same credentials.' => 'La acción se realizará tras iniciar sesión de nuevo con las mismas credenciales.',
'Connecting to privileged ports is not allowed.' => 'La conexion a puertos especiales no está permitida.', 'Connecting to privileged ports is not allowed.' => 'La conexion a puertos especiales no está permitida.',

View File

@@ -286,7 +286,6 @@ $translations = array(
'Default value' => null, 'Default value' => null,
'Full table scan' => null, 'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(), 'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null, 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,

View File

@@ -339,7 +339,6 @@ $translations = array(
'ATTACH queries are not supported.' => null, 'ATTACH queries are not supported.' => null,
'Warnings' => null, 'Warnings' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null, 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null, 'There is a space in the input password which might be the cause.' => null,

View File

@@ -335,7 +335,6 @@ $translations = array(
'Type has been created.' => 'Tyyppi luotiin.', 'Type has been created.' => 'Tyyppi luotiin.',
'Alter type' => 'Muuta tyyppiä', 'Alter type' => 'Muuta tyyppiä',
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'Kiitos, kun käytät Admineriä, voit <a href="https://www.adminer.org/en/donation/">tehdä lahjoituksen tästä</a>.',
'Drop %s?' => 'Poistetaanko %s?', 'Drop %s?' => 'Poistetaanko %s?',
'overwrite' => 'kirjoittaen päälle', 'overwrite' => 'kirjoittaen päälle',
'DB' => 'TK', 'DB' => 'TK',

View File

@@ -296,7 +296,6 @@ $translations = array(
'ATTACH queries are not supported.' => 'Requêtes ATTACH ne sont pas supportées.', 'ATTACH queries are not supported.' => 'Requêtes ATTACH ne sont pas supportées.',
'Warnings' => 'Avertissements', 'Warnings' => 'Avertissements',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer ne supporte pas l\'accès aux bases de données sans mot de passe, <a href="https://www.adminer.org/en/password/"%s>plus d\'information</a>.', 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer ne supporte pas l\'accès aux bases de données sans mot de passe, <a href="https://www.adminer.org/en/password/"%s>plus d\'information</a>.',
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'The action will be performed after successful login with the same credentials.' => 'Cette action sera exécutée après s\'être connecté avec les mêmes données de connexion.', 'The action will be performed after successful login with the same credentials.' => 'Cette action sera exécutée après s\'être connecté avec les mêmes données de connexion.',
'Connecting to privileged ports is not allowed.' => 'La connexion aux ports privilégiés n\'est pas autorisée.', 'Connecting to privileged ports is not allowed.' => 'La connexion aux ports privilégiés n\'est pas autorisée.',
'There is a space in the input password which might be the cause.' => 'Il y a un espace dans le mot de passe entré qui pourrait en être la cause.', 'There is a space in the input password which might be the cause.' => 'Il y a un espace dans le mot de passe entré qui pourrait en être la cause.',

View File

@@ -296,7 +296,6 @@ $translations = array(
'ATTACH queries are not supported.' => null, 'ATTACH queries are not supported.' => null,
'Warnings' => null, 'Warnings' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null, 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null, 'There is a space in the input password which might be the cause.' => null,

View File

@@ -280,7 +280,6 @@ $translations = array(
'Default value' => 'ערך ברירת מחדל', 'Default value' => 'ערך ברירת מחדל',
'Full table scan' => 'סריקה טבלה מלאה', 'Full table scan' => 'סריקה טבלה מלאה',
'Too many unsuccessful logins, try again in %d minute(s).' => 'יותר מידי נסיונות כניסה נכשלו, אנא נסה עוד %d דקות', 'Too many unsuccessful logins, try again in %d minute(s).' => 'יותר מידי נסיונות כניסה נכשלו, אנא נסה עוד %d דקות',
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'תודה שהשתמש ב-adminer אנא שקול <a href="https://www.adminer.org/en/donation/">לתרום</a>.',
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'סיסמת המאסטר פגה <a href="https://www.adminer.org/en/extension/"%s>התקן תוסף</a> על מנת להפוך את זה לתמידי', 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'סיסמת המאסטר פגה <a href="https://www.adminer.org/en/extension/"%s>התקן תוסף</a> על מנת להפוך את זה לתמידי',
'If you did not send this request from Adminer then close this page.' => 'אם לא אתה שלחת בקשה ל-Adminer הינך יכול לסגור חלון זה', 'If you did not send this request from Adminer then close this page.' => 'אם לא אתה שלחת בקשה ל-Adminer הינך יכול לסגור חלון זה',
'You can upload a big SQL file via FTP and import it from server.' => 'ניתן לעלות קבצים ב-FTP ואז למשוך אותם מהשרת', 'You can upload a big SQL file via FTP and import it from server.' => 'ניתן לעלות קבצים ב-FTP ואז למשוך אותם מהשרת',

View File

@@ -286,7 +286,6 @@ $translations = array(
'Default value' => null, 'Default value' => null,
'Full table scan' => null, 'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(), 'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null, 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,

View File

@@ -333,7 +333,6 @@ $translations = array(
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null, 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null, 'Default value' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(), 'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null, 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,

View File

@@ -286,7 +286,6 @@ $translations = array(
'Default value' => 'Valore predefinito', 'Default value' => 'Valore predefinito',
'Full table scan' => 'Analizza intera tabella', 'Full table scan' => 'Analizza intera tabella',
'Too many unsuccessful logins, try again in %d minute(s).' => array('Troppi tentativi infruttuosi di login, si prega di riprovare in %d minuto.', 'Troppi tentativi infruttuosi di login, si prega di riprovare in %d minuti.'), 'Too many unsuccessful logins, try again in %d minute(s).' => array('Troppi tentativi infruttuosi di login, si prega di riprovare in %d minuto.', 'Troppi tentativi infruttuosi di login, si prega di riprovare in %d minuti.'),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'La password principale é scaduta. <a href="https://www.adminer.org/it/extension/"%s>Implementare</a> %s come metodo per renderla permanente.', 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'La password principale é scaduta. <a href="https://www.adminer.org/it/extension/"%s>Implementare</a> %s come metodo per renderla permanente.',
'The action will be performed after successful login with the same credentials.' => 'La azione verrá eseguita dopo un login valido con le stesse credenziali.', 'The action will be performed after successful login with the same credentials.' => 'La azione verrá eseguita dopo un login valido con le stesse credenziali.',
'Connecting to privileged ports is not allowed.' => 'LA connessione a porte privilegiate non é permessa.', 'Connecting to privileged ports is not allowed.' => 'LA connessione a porte privilegiate non é permessa.',

View File

@@ -291,7 +291,6 @@ $translations = array(
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null, 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Full table scan' => null, 'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(), 'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null, 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,

View File

@@ -294,7 +294,6 @@ $translations = array(
'Warnings' => 'გაფრთხილება', 'Warnings' => 'გაფრთხილება',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'უპაროლო წვდომა ბაზასთან არაა დაშვებული Adminer-ში, მეტი ინფორმაციისთვის ეწვიეთ <a href="https://www.adminer.org/en/password/"%s>ბმულს</a>.', 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'უპაროლო წვდომა ბაზასთან არაა დაშვებული Adminer-ში, მეტი ინფორმაციისთვის ეწვიეთ <a href="https://www.adminer.org/en/password/"%s>ბმულს</a>.',
'DB' => 'ბაზა', 'DB' => 'ბაზა',
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'მადლობას გიხდით Adminer-ით სარგებლობისთვის, გადახედეთ ბმულს <a href="https://www.adminer.org/en/donation/">შემოწირულობა</a>.',
'The action will be performed after successful login with the same credentials.' => 'მოქმედება შესრულდება იგივე მომხმარებლით წარმატებული ავტორიზაციის შემდეგ.', 'The action will be performed after successful login with the same credentials.' => 'მოქმედება შესრულდება იგივე მომხმარებლით წარმატებული ავტორიზაციის შემდეგ.',
'Connecting to privileged ports is not allowed.' => 'პრივილეგირებულ პორტთან წვდომა დაუშვებელია.', 'Connecting to privileged ports is not allowed.' => 'პრივილეგირებულ პორტთან წვდომა დაუშვებელია.',
'There is a space in the input password which might be the cause.' => 'პაროლში არის გამოტოვება, შეიძლება ეს ქმნის პრობლემას.', 'There is a space in the input password which might be the cause.' => 'პაროლში არის გამოტოვება, შეიძლება ეს ქმნის პრობლემას.',

View File

@@ -292,7 +292,6 @@ $translations = array(
'Default value' => null, 'Default value' => null,
'Full table scan' => null, 'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(), 'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null, 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,

View File

@@ -331,7 +331,6 @@ $translations = array(
'Default value' => null, 'Default value' => null,
'Full table scan' => null, 'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(), 'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null, 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,

View File

@@ -295,7 +295,6 @@ $translations = array(
'DB' => 'DB', 'DB' => 'DB',
'Warnings' => 'Brīdinājumi', 'Warnings' => 'Brīdinājumi',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer neatbalsta pieeju bez paroles, <a href="https://www.adminer.org/en/password/"%s>vairāk informācijas šeit</a>.', 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer neatbalsta pieeju bez paroles, <a href="https://www.adminer.org/en/password/"%s>vairāk informācijas šeit</a>.',
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'Paldies, ka izmantoji Adminer, vai vēlies veikt <a href="https://www.adminer.org/en/donation/">ziedojumu</a>.',
'The action will be performed after successful login with the same credentials.' => 'Darbība tiks pabeigta pēc derīgas pieteikšanās sistēmā.', 'The action will be performed after successful login with the same credentials.' => 'Darbība tiks pabeigta pēc derīgas pieteikšanās sistēmā.',
'Connecting to privileged ports is not allowed.' => 'Pieeja priviliģētiem portiem nav atļauta.', 'Connecting to privileged ports is not allowed.' => 'Pieeja priviliģētiem portiem nav atļauta.',
'There is a space in the input password which might be the cause.' => 'Parole satur atstarpi, kas varētu būt lieka.', 'There is a space in the input password which might be the cause.' => 'Parole satur atstarpi, kas varētu būt lieka.',

View File

@@ -11,7 +11,6 @@ $translations = array(
'Logout' => 'Log keluar', 'Logout' => 'Log keluar',
'Logged as: %s' => 'Log masuk sebagai: %s', 'Logged as: %s' => 'Log masuk sebagai: %s',
'Logout successful.' => 'Log keluar berjaya.', 'Logout successful.' => 'Log keluar berjaya.',
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'Terima kasih kerana menggunakan Adminer, pertimbangkan untuk <a href="https://www.adminer.org/en/donation/">menderma</a>.',
'Invalid server or credentials.' => null, 'Invalid server or credentials.' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => 'Terlalu banyak percubaan log masuk yang gagal, sila cuba lagi dalam masa %d minit.', 'Too many unsuccessful logins, try again in %d minute(s).' => 'Terlalu banyak percubaan log masuk yang gagal, sila cuba lagi dalam masa %d minit.',
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Kata laluan utama telah luput. <a href="https://www.adminer.org/en/extension/"%s>Gunakan</a> cara %s untuk mengekalkannya.', 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Kata laluan utama telah luput. <a href="https://www.adminer.org/en/extension/"%s>Gunakan</a> cara %s untuk mengekalkannya.',

View File

@@ -286,7 +286,6 @@ $translations = array(
'Default value' => 'Standaardwaarde', 'Default value' => 'Standaardwaarde',
'Full table scan' => 'Full table scan', 'Full table scan' => 'Full table scan',
'Too many unsuccessful logins, try again in %d minute(s).' => array('Teveel foutieve aanmeldpogingen, probeer opnieuw binnen %d minuut.', 'Teveel foutieve aanmeldpogingen, probeer opnieuw binnen %d minuten.'), 'Too many unsuccessful logins, try again in %d minute(s).' => array('Teveel foutieve aanmeldpogingen, probeer opnieuw binnen %d minuut.', 'Teveel foutieve aanmeldpogingen, probeer opnieuw binnen %d minuten.'),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Master wachtwoord verlopen. <a href="https://www.adminer.org/en/extension/"%s>Implementeer</a> de %s methode om het permanent te maken.', 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Master wachtwoord verlopen. <a href="https://www.adminer.org/en/extension/"%s>Implementeer</a> de %s methode om het permanent te maken.',
'The action will be performed after successful login with the same credentials.' => 'Deze actie zal uitgevoerd worden na het succesvol aanmelden met dezelfde gebruikersgegevens', 'The action will be performed after successful login with the same credentials.' => 'Deze actie zal uitgevoerd worden na het succesvol aanmelden met dezelfde gebruikersgegevens',
'Connecting to privileged ports is not allowed.' => 'Verbindingen naar geprivilegieerde poorten is niet toegestaan.', 'Connecting to privileged ports is not allowed.' => 'Verbindingen naar geprivilegieerde poorten is niet toegestaan.',

View File

@@ -292,7 +292,6 @@ $translations = array(
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null, 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null, 'Default value' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(), 'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null, 'There is a space in the input password which might be the cause.' => null,

View File

@@ -11,7 +11,6 @@ $translations = array(
'Logout' => 'Wyloguj', 'Logout' => 'Wyloguj',
'Logged as: %s' => 'Zalogowany jako: %s', 'Logged as: %s' => 'Zalogowany jako: %s',
'Logout successful.' => 'Wylogowano pomyślnie.', 'Logout successful.' => 'Wylogowano pomyślnie.',
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'Dziękujemy za używanie Adminera, rozważ proszę <a href="https://www.adminer.org/pl/donation/">dotację</a>.',
'Invalid server or credentials.' => 'Nieprawidłowy serwer lub dane logowania.', 'Invalid server or credentials.' => 'Nieprawidłowy serwer lub dane logowania.',
'Too many unsuccessful logins, try again in %d minute(s).' => array('Za dużo nieudanych prób logowania, spróbuj ponownie za %d minutę.', 'Za dużo nieudanych prób logowania, spróbuj ponownie za %d minuty.', 'Za dużo nieudanych prób logowania, spróbuj ponownie za %d minut.'), 'Too many unsuccessful logins, try again in %d minute(s).' => array('Za dużo nieudanych prób logowania, spróbuj ponownie za %d minutę.', 'Za dużo nieudanych prób logowania, spróbuj ponownie za %d minuty.', 'Za dużo nieudanych prób logowania, spróbuj ponownie za %d minut.'),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Ważność hasła głównego wygasła. <a href="https://www.adminer.org/pl/extension/"%s>Zaimplementuj</a> własną metodę %s, aby ustawić je na stałe.', 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Ważność hasła głównego wygasła. <a href="https://www.adminer.org/pl/extension/"%s>Zaimplementuj</a> własną metodę %s, aby ustawić je na stałe.',

View File

@@ -285,7 +285,6 @@ $translations = array(
'Default value' => null, 'Default value' => null,
'Full table scan' => null, 'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(), 'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null, 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,

View File

@@ -285,7 +285,6 @@ $translations = array(
'Default value' => null, 'Default value' => null,
'Full table scan' => null, 'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(), 'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null, 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,

View File

@@ -286,7 +286,6 @@ $translations = array(
'Default value' => null, 'Default value' => null,
'Full table scan' => null, 'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(), 'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null, 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,

View File

@@ -295,7 +295,6 @@ $translations = array(
'DB' => 'DB', 'DB' => 'DB',
'Warnings' => 'Предупреждения', 'Warnings' => 'Предупреждения',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer не поддерживает доступ к базе данных без пароля, <a href="https://www.adminer.org/en/password/"%s>больше информации</a>.', 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer не поддерживает доступ к базе данных без пароля, <a href="https://www.adminer.org/en/password/"%s>больше информации</a>.',
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'Спасибо за использование Adminer, рассмотрите возможность <a href="https://www.adminer.org/en/donation/">пожертвования</a>.',
'The action will be performed after successful login with the same credentials.' => 'Действие будет выполнено после успешного входа в систему с теми же учетными данными.', 'The action will be performed after successful login with the same credentials.' => 'Действие будет выполнено после успешного входа в систему с теми же учетными данными.',
'Connecting to privileged ports is not allowed.' => 'Подключение к привилегированным портам не допускается.', 'Connecting to privileged ports is not allowed.' => 'Подключение к привилегированным портам не допускается.',
'There is a space in the input password which might be the cause.' => 'В введеном пароле есть пробел, это может быть причиною.', 'There is a space in the input password which might be the cause.' => 'В введеном пароле есть пробел, это может быть причиною.',

View File

@@ -287,7 +287,6 @@ $translations = array(
'Default value' => 'Predvolená hodnota', 'Default value' => 'Predvolená hodnota',
'Full table scan' => 'Prechod celej tabuľky', 'Full table scan' => 'Prechod celej tabuľky',
'Too many unsuccessful logins, try again in %d minute(s).' => array('Príliš veľa pokusov o prihlásenie, skúste to znova za %d minutu.', 'Príliš veľa pokusov o prihlásenie, skúste to znova za %d minuty.', 'Príliš veľa pokusov o prihlásenie, skúste to znova za %d minút.'), 'Too many unsuccessful logins, try again in %d minute(s).' => array('Príliš veľa pokusov o prihlásenie, skúste to znova za %d minutu.', 'Príliš veľa pokusov o prihlásenie, skúste to znova za %d minuty.', 'Príliš veľa pokusov o prihlásenie, skúste to znova za %d minút.'),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'Vďaka za používanie Admineru, <a href="https://www.adminer.org/cs/donation/">prispejte</a> na vývoj.',
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Platnosť hlavného hesla vypršala. <a href="https://www.adminer.org/cs/extension/"%s>Implementujte</a> metodu %s, aby platilo natrvalo.', 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Platnosť hlavného hesla vypršala. <a href="https://www.adminer.org/cs/extension/"%s>Implementujte</a> metodu %s, aby platilo natrvalo.',
'The action will be performed after successful login with the same credentials.' => 'Akcia sa vykoná po úspešnom prihlásení s rovnakými prihlasovacími údajmi.', 'The action will be performed after successful login with the same credentials.' => 'Akcia sa vykoná po úspešnom prihlásení s rovnakými prihlasovacími údajmi.',
'Connecting to privileged ports is not allowed.' => 'Pripojenie k privilegovaným portom nie je povolené.', 'Connecting to privileged ports is not allowed.' => 'Pripojenie k privilegovaným portom nie je povolené.',

View File

@@ -327,7 +327,6 @@ $translations = array(
'Default value' => null, 'Default value' => null,
'Full table scan' => null, 'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(), 'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null, 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,

View File

@@ -333,7 +333,6 @@ $translations = array(
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null, 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null, 'Default value' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(), 'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null, 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,

View File

@@ -11,7 +11,6 @@ $translations = array(
'Logout' => 'Logga ut', 'Logout' => 'Logga ut',
'Logged as: %s' => 'Inloggad som: %s', 'Logged as: %s' => 'Inloggad som: %s',
'Logout successful.' => 'Du är nu utloggad.', 'Logout successful.' => 'Du är nu utloggad.',
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'Tack för att du använder Adminer, vänligen fundera över att <a href="https://www.adminer.org/en/donation/">donera</a>.',
'Invalid server or credentials.' => null, 'Invalid server or credentials.' => null,
'There is a space in the input password which might be the cause.' => 'Det finns ett mellanslag i lösenordet, vilket kan vara anledningen.', 'There is a space in the input password which might be the cause.' => 'Det finns ett mellanslag i lösenordet, vilket kan vara anledningen.',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer tillåter inte att ansluta till en databas utan lösenord. <a href="https://www.adminer.org/en/password/"%s>Mer information</a>.', 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer tillåter inte att ansluta till en databas utan lösenord. <a href="https://www.adminer.org/en/password/"%s>Mer information</a>.',

View File

@@ -286,7 +286,6 @@ $translations = array(
'Default value' => null, 'Default value' => null,
'Full table scan' => null, 'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(), 'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null, 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,

View File

@@ -286,7 +286,6 @@ $translations = array(
'Default value' => null, 'Default value' => null,
'Full table scan' => null, 'Full table scan' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array(), 'Too many unsuccessful logins, try again in %d minute(s).' => array(),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null, 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,

View File

@@ -11,7 +11,6 @@ $translations = array(
'Logout' => ıkış', 'Logout' => ıkış',
'Logged as: %s' => '%s olarak giriş yapıldı.', 'Logged as: %s' => '%s olarak giriş yapıldı.',
'Logout successful.' => 'Oturum başarıyla sonlandı.', 'Logout successful.' => 'Oturum başarıyla sonlandı.',
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'Adminer kullandığınız için teşekkür ederiz <a href="https://www.adminer.org/en/donation/">bağış yapmayı düşünün</a>.',
'Invalid server or credentials.' => null, 'Invalid server or credentials.' => null,
'Too many unsuccessful logins, try again in %d minute(s).' => array('Çok fazla oturum açma denemesi yapıldı.', '%d Dakika sonra tekrar deneyiniz.'), 'Too many unsuccessful logins, try again in %d minute(s).' => array('Çok fazla oturum açma denemesi yapıldı.', '%d Dakika sonra tekrar deneyiniz.'),
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Ana şifrenin süresi doldu. Kalıcı olması için <a href="https://www.adminer.org/en/extension/"%s>%s medodunu</a> kullanın.', 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Ana şifrenin süresi doldu. Kalıcı olması için <a href="https://www.adminer.org/en/extension/"%s>%s medodunu</a> kullanın.',

View File

@@ -330,7 +330,6 @@ $translations = array(
'Default value' => 'Значення за замовчуванням', 'Default value' => 'Значення за замовчуванням',
'Full table scan' => 'Повне сканування таблиці', 'Full table scan' => 'Повне сканування таблиці',
'Too many unsuccessful logins, try again in %d minute(s).' => array('Занадто багато невдалих спроб входу. Спробуйте знову через %d хвилину.', 'Занадто багато невдалих спроб входу. Спробуйте знову через %d хвилини.', 'Занадто багато невдалих спроб входу. Спробуйте знову через %d хвилин.'), 'Too many unsuccessful logins, try again in %d minute(s).' => array('Занадто багато невдалих спроб входу. Спробуйте знову через %d хвилину.', 'Занадто багато невдалих спроб входу. Спробуйте знову через %d хвилини.', 'Занадто багато невдалих спроб входу. Спробуйте знову через %d хвилин.'),
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'Дякуємо, що користуєтесь Adminer, подумайте про <a href="https://www.adminer.org/en/donation/">внесок</a>.',
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Термін дії майстер пароля минув. <a href="https://www.adminer.org/en/extension/"%s>Реалізуйте</a> метод %s, щоб зробити його постійним.', 'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Термін дії майстер пароля минув. <a href="https://www.adminer.org/en/extension/"%s>Реалізуйте</a> метод %s, щоб зробити його постійним.',
'The action will be performed after successful login with the same credentials.' => 'Дія буде виконуватися після успішного входу в систему з тими ж обліковими даними.', 'The action will be performed after successful login with the same credentials.' => 'Дія буде виконуватися після успішного входу в систему з тими ж обліковими даними.',
'Connecting to privileged ports is not allowed.' => 'Підключення до привілейованих портів заборонено.', 'Connecting to privileged ports is not allowed.' => 'Підключення до привілейованих портів заборонено.',

View File

@@ -337,7 +337,6 @@ $translations = array(
'Limit rows' => null, 'Limit rows' => null,
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null, 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
'Default value' => null, 'Default value' => null,
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
'The action will be performed after successful login with the same credentials.' => null, 'The action will be performed after successful login with the same credentials.' => null,
'Connecting to privileged ports is not allowed.' => null, 'Connecting to privileged ports is not allowed.' => null,
'There is a space in the input password which might be the cause.' => null, 'There is a space in the input password which might be the cause.' => null,

View File

@@ -11,7 +11,6 @@ $translations = array(
'Logout' => 'Xx', 'Logout' => 'Xx',
'Logged as: %s' => 'Xx: %s', 'Logged as: %s' => 'Xx: %s',
'Logout successful.' => 'Xx.', 'Logout successful.' => 'Xx.',
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'Xx <a href="https://www.adminer.org/en/donation/">xx</a>.',
'Invalid server or credentials.' => 'Xx.', 'Invalid server or credentials.' => 'Xx.',
'There is a space in the input password which might be the cause.' => 'Xx.', 'There is a space in the input password which might be the cause.' => 'Xx.',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Xx, <a href="https://www.adminer.org/en/password/"%s>xx</a>.', 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Xx, <a href="https://www.adminer.org/en/password/"%s>xx</a>.',

View File

@@ -11,7 +11,6 @@ $translations = array(
'Logout' => '登出', 'Logout' => '登出',
'Logged as: %s' => '登錄為: %s', 'Logged as: %s' => '登錄為: %s',
'Logout successful.' => '成功登出。', 'Logout successful.' => '成功登出。',
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => '感謝使用Adminer請考慮為我們<a href="https://www.adminer.org/en/donation/">捐款(英文網頁)</a>.',
'Invalid server or credentials.' => null, 'Invalid server or credentials.' => null,
'There is a space in the input password which might be the cause.' => '您輸入的密碼中有一個空格,這可能是導致問題的原因。', 'There is a space in the input password which might be the cause.' => '您輸入的密碼中有一個空格,這可能是導致問題的原因。',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer預設不支援訪問沒有密碼的資料庫<a href="https://www.adminer.org/en/password/"%s>詳情見這裡</a>.', 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer預設不支援訪問沒有密碼的資料庫<a href="https://www.adminer.org/en/password/"%s>詳情見這裡</a>.',

View File

@@ -11,7 +11,6 @@ $translations = array(
'Logout' => '登出', 'Logout' => '登出',
'Logged as: %s' => '登录用户:%s', 'Logged as: %s' => '登录用户:%s',
'Logout successful.' => '成功登出。', 'Logout successful.' => '成功登出。',
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => '感谢使用Adminer请考虑为我们<a href="https://www.adminer.org/en/donation/">捐款(英文页面)</a>.',
'Invalid server or credentials.' => null, 'Invalid server or credentials.' => null,
'There is a space in the input password which might be the cause.' => '您输入的密码中有一个空格,这可能是导致问题的原因。', 'There is a space in the input password which might be the cause.' => '您输入的密码中有一个空格,这可能是导致问题的原因。',
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer默认不支持访问没有密码的数据库<a href="https://www.adminer.org/en/password/"%s>详情见这里</a>.', 'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer默认不支持访问没有密码的数据库<a href="https://www.adminer.org/en/password/"%s>详情见这里</a>.',

View File

@@ -153,7 +153,7 @@ if (!$error && $_POST) {
$time = " <span class='time'>(" . format_time($start) . ")</span>" $time = " <span class='time'>(" . format_time($start) . ")</span>"
. (strlen($q) < 1000 ? " <a href='" . h(ME) . "sql=" . urlencode(trim($q)) . "'>" . lang('Edit') . "</a>" : "") // 1000 - maximum length of encoded URL in IE is 2083 characters . (strlen($q) < 1000 ? " <a href='" . h(ME) . "sql=" . urlencode(trim($q)) . "'>" . lang('Edit') . "</a>" : "") // 1000 - maximum length of encoded URL in IE is 2083 characters
; ;
$affected = $connection->affected_rows; // getting warnigns overwrites this $affected = $connection->affected_rows; // getting warnings overwrites this
$warnings = ($_POST["only_errors"] ? "" : $driver->warnings()); $warnings = ($_POST["only_errors"] ? "" : $driver->warnings());
$warnings_id = "warnings-$commands"; $warnings_id = "warnings-$commands";
if ($warnings) { if ($warnings) {

View File

@@ -548,7 +548,7 @@ function foreignAddRow() {
this.onchange = function () { }; this.onchange = function () { };
var selects = qsa('select', row); var selects = qsa('select', row);
for (var i=0; i < selects.length; i++) { for (var i=0; i < selects.length; i++) {
selects[i].name = selects[i].name.replace(']', '1]'); selects[i].name = selects[i].name.replace(/\d+]/, '1$&');
selects[i].selectedIndex = 0; selects[i].selectedIndex = 0;
} }
parentTag(this, 'table').appendChild(row); parentTag(this, 'table').appendChild(row);

View File

@@ -106,7 +106,7 @@ function verifyVersion(baseUrl, token) {
// Dummy value to prevent repeated verifications after AJAX failure. // Dummy value to prevent repeated verifications after AJAX failure.
cookie('adminer_version=0', 1); cookie('adminer_version=0', 1);
ajax('https://api.github.com/repos/pematon/adminer/releases/latest', (request) => { ajax('https://api.github.com/repos/adminerneo/adminerneo/releases/latest', (request) => {
const response = JSON.parse(request.responseText); const response = JSON.parse(request.responseText);
const version = response.tag_name.replace(/^\D*/, ''); const version = response.tag_name.replace(/^\D*/, '');
@@ -528,7 +528,7 @@ function selectSearchSearch() {
// Sorting. // Sorting.
(function() { (function() {
let placeholderRow = null, nextRow = null, dragHelper = null; let placeholderRow = null, nextRow = null, dragHelper = null;
let startY, minY, maxY; let startScrollY, startY, minY, maxY, lastPointerY;
/** /**
* Initializes sortable list of DIV elements. * Initializes sortable list of DIV elements.
@@ -569,6 +569,7 @@ function selectSearchSearch() {
const pointerY = getPointerY(event); const pointerY = getPointerY(event);
const parent = row.parentNode; const parent = row.parentNode;
startScrollY = window.scrollY;
startY = pointerY - getOffsetTop(row); startY = pointerY - getOffsetTop(row);
minY = getOffsetTop(parent); minY = getOffsetTop(parent);
maxY = minY + parent.offsetHeight - row.offsetHeight; maxY = minY + parent.offsetHeight - row.offsetHeight;
@@ -612,6 +613,7 @@ function selectSearchSearch() {
window.addEventListener("mousemove", updateSorting); window.addEventListener("mousemove", updateSorting);
window.addEventListener("touchmove", updateSorting); window.addEventListener("touchmove", updateSorting);
window.addEventListener("scroll", updateSorting);
window.addEventListener("mouseup", finishSorting); window.addEventListener("mouseup", finishSorting);
window.addEventListener("touchend", finishSorting); window.addEventListener("touchend", finishSorting);
@@ -620,27 +622,51 @@ function selectSearchSearch() {
function updateSorting(event) { function updateSorting(event) {
const pointerY = getPointerY(event); const pointerY = getPointerY(event);
const scrollingBoundary = 30;
const speedCoefficient = 8;
let top = Math.min(Math.max(pointerY - startY, minY), maxY); // If mouse pointer is over the top boundary, scroll page down.
dragHelper.style.top = `${top}px`; let distance = pointerY - scrollingBoundary;
if (distance < 0 && window.scrollY > 0) {
const parent = placeholderRow.parentNode; window.scrollBy(0, distance / speedCoefficient);
top = top - minY + parent.offsetTop; return;
let sibling;
if (top > placeholderRow.offsetTop + placeholderRow.offsetHeight / 2) {
sibling = !nextRow.classList.contains("no-sort") ? nextRow.nextElementSibling : nextRow;
} else if (top + placeholderRow.offsetHeight < placeholderRow.offsetTop + placeholderRow.offsetHeight / 2) {
sibling = placeholderRow.previousElementSibling;
} else {
sibling = nextRow;
} }
if (sibling !== nextRow) { // If mouse pointer is under the bottom boundary, scroll page up.
const parent = placeholderRow.parentNode; distance = pointerY - window.innerHeight + scrollingBoundary;
if (distance > 0 && window.scrollY + window.innerHeight < document.documentElement.scrollHeight) {
window.scrollBy(0, distance / speedCoefficient);
return;
}
nextRow = sibling; // Move helper row to the pointer position.
if (sibling) { let top = Math.min(Math.max(pointerY - startY + window.scrollY - startScrollY, minY), maxY);
dragHelper.style.top = `${top}px`;
// Find a new position for the placeholder.
const parent = placeholderRow.parentNode;
let oldNextRow = nextRow;
top = top - minY + parent.offsetTop;
let testingRow = placeholderRow;
do {
if (top > testingRow.offsetTop + testingRow.offsetHeight / 2 + 1) {
if (!nextRow.classList.contains("no-sort")) {
testingRow = nextRow;
nextRow = nextRow.nextElementSibling;
} else {
break;
}
} else if (top + testingRow.offsetHeight < testingRow.offsetTop + testingRow.offsetHeight / 2 - 1) {
nextRow = testingRow = testingRow.previousElementSibling;
} else {
break;
}
} while (nextRow);
// Move the placeholder to a new position.
if (nextRow !== oldNextRow) {
if (nextRow) {
parent.insertBefore(placeholderRow, nextRow); parent.insertBefore(placeholderRow, nextRow);
} else { } else {
parent.appendChild(placeholderRow); parent.appendChild(placeholderRow);
@@ -661,6 +687,7 @@ function selectSearchSearch() {
window.removeEventListener("mousemove", updateSorting); window.removeEventListener("mousemove", updateSorting);
window.removeEventListener("touchmove", updateSorting); window.removeEventListener("touchmove", updateSorting);
window.removeEventListener("scroll", updateSorting);
window.removeEventListener("mouseup", finishSorting); window.removeEventListener("mouseup", finishSorting);
window.removeEventListener("touchend", finishSorting); window.removeEventListener("touchend", finishSorting);
@@ -670,10 +697,12 @@ function selectSearchSearch() {
function getPointerY(event) { function getPointerY(event) {
if (event.type.includes("touch")) { if (event.type.includes("touch")) {
const touch = event.touches[0] || event.changedTouches[0]; const touch = event.touches[0] || event.changedTouches[0];
return touch.clientY; lastPointerY = touch.clientY;
} else { } else if (event.clientY !== undefined) {
return event.clientY; lastPointerY = event.clientY;
} }
return lastPointerY;
} }
})(); })();

View File

@@ -520,8 +520,8 @@ $file = preg_replace('~"\.\./vendor/vrana/jush/modules/(jush\.js)"~', $replace,
$file = preg_replace("~<\\?php\\s*\\?>\n?|\\?>\n?<\\?php~", '', $file); $file = preg_replace("~<\\?php\\s*\\?>\n?|\\?>\n?<\\?php~", '', $file);
$file = php_shrink($file); $file = php_shrink($file);
@mkdir("temp", 0777, true); @mkdir("export", 0777, true);
$filename = "temp/$project" $filename = "export/$project"
. (is_dev_version() ? "" : "-$VERSION") . (is_dev_version() ? "" : "-$VERSION")
. ($single_driver ? "-$single_driver" : "") . ($single_driver ? "-$single_driver" : "")
. ($single_language ? "-$single_language" : "") . ($single_language ? "-$single_language" : "")

View File

@@ -1,22 +1,22 @@
{ {
"name": "pematon/adminer", "name": "adminerneo/adminerneo",
"description": "Database management in a single PHP file.", "description": "Database management in a single PHP file.",
"homepage": "https://github.com/pematon/adminer", "homepage": "https://github.com/adminerneo/adminerneo",
"keywords": [ "keywords": [
"database" "database"
], ],
"support": { "support": {
"issues": "https://github.com/pematon/adminer/issues", "issues": "https://github.com/adminerneo/adminerneo/issues",
"forum": "https://github.com/pematon/adminer/discussions", "forum": "https://github.com/adminerneo/adminerneo/discussions",
"source": "https://github.com/pematon/adminer" "source": "https://github.com/adminerneo/adminerneo"
}, },
"authors": [ "authors": [
{ {
"name": "Jakub Vrána", "name": "Peter Knut"
"homepage": "https://www.vrana.cz/"
}, },
{ {
"name": "Peter Knut" "name": "Jakub Vrána",
"homepage": "https://www.vrana.cz/"
} }
], ],
"autoload": { "autoload": {
@@ -29,7 +29,7 @@
"GPL-2.0-only" "GPL-2.0-only"
], ],
"require": { "require": {
"php": "5.6 - 8.3", "php": "5.6 - 8.4",
"ext-pdo": "*", "ext-pdo": "*",
"ext-json": "*", "ext-json": "*",
"vrana/jush": "2.0.*", "vrana/jush": "2.0.*",
@@ -61,11 +61,11 @@
"repositories": [ "repositories": [
{ {
"type": "vcs", "type": "vcs",
"url": "https://github.com/pematon/jush.git" "url": "https://github.com/peterpp/jush.git"
}, },
{ {
"type": "vcs", "type": "vcs",
"url": "https://github.com/vrana/jsshrink.git" "url": "https://github.com/peterpp/js-shrink.git"
} }
] ]
} }

View File

@@ -2,8 +2,8 @@
*{margin:0;padding:0} *{margin:0;padding:0}
body{font:13px/18px Helvetica,Arial,sans-serif;background:#fff;color:#333} body{font:13px/18px Helvetica,Arial,sans-serif;background:#fff;color:#333}
/* generic */ /* generic */
a,a:visited{color:#06c;text-decoration:none;border-bottom:1px dotted} a{color:#06c;text-decoration:none;border-bottom:1px dotted}
a:hover{border-bottom:1px solid #06c;background:#06c;color:#fff} a:hover,a:link:hover{border-bottom:1px solid #06c;background:#06c;color:#fff}
p{padding-bottom:4px;margin-bottom:4px} p{padding-bottom:4px;margin-bottom:4px}
h1{font-size:18px;font-weight:bold;padding-bottom:0px;height:40px;padding:0 0 8px 0;color:#666;border:0} h1{font-size:18px;font-weight:bold;padding-bottom:0px;height:40px;padding:0 0 8px 0;color:#666;border:0}
h2{font:32px Georgia,serif;padding:10px 0 8px;margin:0;background:transparent;border:0;color:#333} h2{font:32px Georgia,serif;padding:10px 0 8px;margin:0;background:transparent;border:0;color:#333}
@@ -31,6 +31,7 @@ thead th,thead td{white-space:nowrap;font-weight:bold;background:#ddd;border-col
th:first-child,td:first-child{border-color:transparent;white-space:nowrap} th:first-child,td:first-child{border-color:transparent;white-space:nowrap}
td[align=right]{text-align:right} td[align=right]{text-align:right}
table code{font-size:13px;line-height:18px} table code{font-size:13px;line-height:18px}
.footer fieldset{float:none;}
.hidden{display:none} .hidden{display:none}
.error,.message{padding:0;background:transparent;font-weight:bold} .error,.message{padding:0;background:transparent;font-weight:bold}
.error{color:#c00} .error{color:#c00}
@@ -46,11 +47,12 @@ border:5px solid #ccc;margin:0}
#menu a:hover{background:#333;color:#fff;border-color:#333} #menu a:hover{background:#333;color:#fff;border-color:#333}
#menu a.h1,#menu a.h1:hover{display:block;height:0;width:175px;padding:40px 0 0 0;overflow:hidden;float:left;border:0;margin:0; #menu a.h1,#menu a.h1:hover{display:block;height:0;width:175px;padding:40px 0 0 0;overflow:hidden;float:left;border:0;margin:0;
outline:0;background:url(//www.bradezone.com/random/adminer_logo.gif) no-repeat;line-height:32px} outline:0;background:url(//www.bradezone.com/random/adminer_logo.gif) no-repeat;line-height:32px}
#menu p,#logins,#tables{white-space:nowrap;border:0;padding:0 0 4px 0;margin:0 0 4px 0} #menu p,#logins,#tables{border:0;padding:0 0 4px 0;margin:0 0 4px 0}
#breadcrumb{background:#333;color:#fff;position:fixed;top:0;left:320px;line-height:40px;padding:0;z-index:1;margin:0} #breadcrumb{background:#333;color:#fff;position:fixed;top:0;left:320px;line-height:40px;padding:0;z-index:1;margin:0}
#breadcrumb a{color:#ff9} #breadcrumb a{color:#ff9}
#breadcrumb a:hover{background:transparent;color:#ff9;border-color:#ff9} #breadcrumb a:hover{background:transparent;color:#ff9;border-color:#ff9}
#schema .table{padding:4px 8px;background:#f3f3f3} #schema .table{padding:4px 8px;background:#f3f3f3}
.tables-filter{padding:0;margin:10px 0;}
/* IE hacks */ /* IE hacks */
*+html th:first-child,*+html td:first-child{border-color:inherit;white-space:inherit} *+html th:first-child,*+html td:first-child{border-color:inherit;white-space:inherit}
* html #lang,* html #menu,* html #breadcrumb{position:absolute} * html #lang,* html #menu,* html #breadcrumb{position:absolute}

View File

@@ -1,6 +1,6 @@
/** /**
* Alternative style for Adminer by Frank Bültge * Alternative style for Adminer by Frank Bültge
* *
* @link http://bueltge.de/ * @link http://bueltge.de/
* @version 02/18/2014 * @version 02/18/2014
*/ */
@@ -31,14 +31,14 @@ p {
margin: 0.8em 20px 0 5px margin: 0.8em 20px 0 5px
} }
a { a {
color: #21759B; color: #21759B;
background: none !important; background: none !important;
} }
a:visited { a:visited {
color: #21759B; color: #21759B;
} }
a:hover, a:hover { a:hover, a:hover {
text-decoration: none; text-decoration: none;
color: #d54e21; color: #d54e21;
} }
@@ -55,7 +55,9 @@ a.active, a.active + a {
text-decoration: none; text-decoration: none;
font-weight: 700; font-weight: 700;
} }
.icon {
background-color: #21759B;
}
form { form {
margin: 0; margin: 0;
padding: 0 0 0 5px; padding: 0 0 0 5px;
@@ -102,7 +104,7 @@ display: table-header-group;
vertical-align: middle; vertical-align: middle;
border-color: inherit; border-color: inherit;
} }
thead td, thead th { thead td, thead th {
background-color: #DFDFDF; background-color: #DFDFDF;
border: none; border: none;
border-bottom: 1px #BBB solid; border-bottom: 1px #BBB solid;
@@ -117,12 +119,18 @@ tr:hover td, tr:hover th {
background-color: #BCD; background-color: #BCD;
} }
.footer {
border-image:linear-gradient(rgba(249, 249, 249, .2), #F9F9F9) 100% 0;
}
.footer > div {
background-color: #F9F9F9;
}
fieldset { fieldset {
display: inline; display: inline;
vertical-align: top; vertical-align: top;
padding: 2px 12px; padding: 2px 12px;
margin: 25px 12px 12px 0; margin: 25px 12px 12px 0;
border: none; border: none;
background-color: #F1F1F1; background-color: #F1F1F1;
border: 1px solid #E3E3E3; border: 1px solid #E3E3E3;
@@ -136,7 +144,7 @@ fieldset {
padding-top: 14px; padding-top: 14px;
} }
legend { legend {
font-weight: 900; font-weight: 900;
color: #000; color: #000;
top: -1.666em; top: -1.666em;
left: -1em; left: -1em;
@@ -146,7 +154,7 @@ input {
padding: 2px 5px 1px 5px; padding: 2px 5px 1px 5px;
} }
input[name='limit'], input[name='length'] { input[name='limit'], input[name='length'] {
width: 3em; width: 3em;
text-align: right; text-align: right;
} }
input[name='text_length'] { input[name='text_length'] {
@@ -203,7 +211,7 @@ input[type=button], input[type=submit] {
background-image: -o-linear-gradient(top, #fff, #eee); background-image: -o-linear-gradient(top, #fff, #eee);
background-image: linear-gradient(to bottom, #fff, #eee); background-image: linear-gradient(to bottom, #fff, #eee);
border-color: #ccc; border-color: #ccc;
-webkit-box-shadow: inset 0 0 1px 1px rgba(255,255,255, 0.9); -webkit-box-shadow: inset 0 0 1px 1px rgba(255,255,255, 0.9);
box-shadow: inset 0 0 1px 1px rgba(255,255,255, 0.9); box-shadow: inset 0 0 1px 1px rgba(255,255,255, 0.9);
color: #464646; color: #464646;
text-shadow: 1px 1px 0 #fff; text-shadow: 1px 1px 0 #fff;
@@ -217,7 +225,7 @@ input[type=button]:focus, input[type=submit]:focus {
background-image: -o-linear-gradient(top, #fff, #eee); background-image: -o-linear-gradient(top, #fff, #eee);
background-image: linear-gradient(to bottom, #fff, #eee); background-image: linear-gradient(to bottom, #fff, #eee);
border-color: #bbb; border-color: #bbb;
-webkit-box-shadow: 0px 1px 1px rgba(0,0,0,.1); -webkit-box-shadow: 0px 1px 1px rgba(0,0,0,.1);
box-shadow: 0px 1px 1px rgba(0,0,0,.1); box-shadow: 0px 1px 1px rgba(0,0,0,.1);
color: #000; color: #000;
} }
@@ -230,7 +238,7 @@ input[type=button]:active, input[type=submit]:active {
background-image: linear-gradient(to bottom, #eee, #f9f9f9); background-image: linear-gradient(to bottom, #eee, #f9f9f9);
border-color: #999 #ddd #ddd #999; border-color: #999 #ddd #ddd #999;
color: #555; color: #555;
-webkit-box-shadow: inset 1px 1px 0 rgba(50,50,50,0.1); -webkit-box-shadow: inset 1px 1px 0 rgba(50,50,50,0.1);
box-shadow: inset 1px 1px 0 rgba(50,50,50,0.1); box-shadow: inset 1px 1px 0 rgba(50,50,50,0.1);
} }
input[type=button]:focus, input[type=submit]:focus { input[type=button]:focus, input[type=submit]:focus {
@@ -255,9 +263,9 @@ input[name='Auto_increment'] { /* !!! */
width: 6em; width: 6em;
} }
img { img {
vertical-align: middle; vertical-align: middle;
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
.js .column { .js .column {
@@ -265,25 +273,25 @@ position: relative;
background: none; background: none;
padding: 0; padding: 0;
} }
.error { .error {
padding: 8px; padding: 8px;
color: red; color: red;
background-color: #FEE; background-color: #FEE;
} }
.message { .message {
padding: 8px; padding: 8px;
background-color: #DDD; background-color: #DDD;
} }
.char { .char {
color: #070; color: #070;
} }
.date { .date {
color: #707; color: #707;
} }
.enum { .enum {
color: #077; color: #077;
} }
.binary { .binary {
color: red; color: red;
} }
.jush-sql { .jush-sql {
@@ -295,20 +303,20 @@ font-size: 11px;
color: #333; color: #333;
} }
#content { #content {
margin: 2px 0 0 270px; margin: 2px 0 0 270px;
padding: 10px 20px 20px 0; padding: 10px 20px 20px 0;
} }
#lang { #lang {
font-size:10px; font-size:10px;
height: 23px; height: 23px;
width: 255px; width: 255px;
display: block; display: block;
padding: 1px 0; padding: 1px 0;
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
text-align: center; text-align: center;
background-color: #f1f1f1; background-color: #f1f1f1;
border: 1px solid #E3E3E3; border: 1px solid #E3E3E3;
line-height: 1.25em; line-height: 1.25em;
@@ -316,43 +324,43 @@ line-height: 1.25em;
#lang select { #lang select {
font-size: 10px; font-size: 10px;
} }
#breadcrumb { #breadcrumb {
margin: 0; margin: 0;
height: 21px; height: 21px;
display: block; display: block;
position: absolute; position: absolute;
top: 0; top: 0;
left: 270px; left: 270px;
background-color: #f1f1f1; background-color: #f1f1f1;
border: 1px solid #E3E3E3; border: 1px solid #E3E3E3;
padding: 2px 12px; padding: 2px 12px;
line-height: 1.25em } line-height: 1.25em }
#menu { #menu {
position: absolute; position: absolute;
margin: 0; margin: 0;
top: 28px; top: 28px;
left: 0; left: 0;
width: 255px; width: 255px;
background-color: #f1f1f1; background-color: #f1f1f1;
border: 1px solid #E3E3E3; border: 1px solid #E3E3E3;
} }
#menu form { #menu form {
margin: 0; margin: 0;
} }
#menu p, #logins, #tables { #menu p, #logins, #tables, .tables-filter {
padding-left: 8px; padding-left: 8px;
border-bottom: none;
}
#dbs {
padding: 0 !important;
} }
#menu form p { #menu form p {
padding-left: 0; padding-left: 0;
text-align: left; text-align: left;
} }
#dbs {
border-bottom: none !important;
padding-left: 3px !important;
}
h1 .h1:hover { h1 .h1:hover {
text-decoration: underline; text-decoration: underline;
} }
h1, h2 { h1, h2 {
font: italic normal normal 24px/29px Georgia, "Times New Roman", "Bitstream Charter", Times, serif; font: italic normal normal 24px/29px Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
margin: 0; margin: 0;
@@ -371,18 +379,18 @@ h3 {
font: normal normal normal 18px/22px Georgia, "Times New Roman", "Bitstream Charter", Times, serif; font: normal normal normal 18px/22px Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
margin: 20px 0 0 5px; margin: 20px 0 0 5px;
} }
#schema { #schema {
margin: 1.5em 0 0 220px; margin: 1.5em 0 0 220px;
position: relative; position: relative;
} }
#schema .table { #schema .table {
border: 1px solid #E3E3E3; border: 1px solid #E3E3E3;
background-color: #F1F1F1; background-color: #F1F1F1;
padding: 0 2px; padding: 0 2px;
cursor: move; cursor: move;
position: absolute; position: absolute;
} }
#schema .references { #schema .references {
position: absolute; position: absolute;
} }
.js .hidden { .js .hidden {
@@ -425,4 +433,4 @@ border-bottom-left-radius: 3px;
-khtml-border-top-right-radius: 3px; -khtml-border-top-right-radius: 3px;
-webkit-border-top-right-radius: 3px; -webkit-border-top-right-radius: 3px;
border-top-right-radius: 3px; border-top-right-radius: 3px;
} }

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,4 @@
/* /*
* Theme by Douglas Damasio [http://github.com/douglasdamasio] * Theme by Douglas Damasio [http://github.com/douglasdamasio]
* Based on Pepa Linha * Based on Pepa Linha
* Color syntax inspired by Dracula Theme [https://draculatheme.com/] * Color syntax inspired by Dracula Theme [https://draculatheme.com/]
@@ -28,7 +28,7 @@
height: 100%; height: 100%;
background: var(--color-darkBackground); background: var(--color-darkBackground);
} }
body { body {
font-family: 'Source Sans Pro', sans-serif; font-family: 'Source Sans Pro', sans-serif;
} }
@@ -36,14 +36,14 @@
div { div {
color: var(--color-darkForeground); color: var(--color-darkForeground);
} }
h1 { h1 {
margin: 0; margin: 0;
padding: 0; padding: 0;
background: none; background: none;
border: 0; border: 0;
} }
h2 { h2 {
margin: 0; margin: 0;
padding: 0; padding: 0;
@@ -57,12 +57,12 @@
padding-bottom: 6px; padding-bottom: 6px;
margin-bottom: 40px; margin-bottom: 40px;
} }
.rtl h2 { .rtl h2 {
margin: 0; margin: 0;
margin-bottom: 40px; margin-bottom: 40px;
} }
h3 { h3 {
font-size: 22px; font-size: 22px;
margin: 0 0 10px; margin: 0 0 10px;
@@ -72,66 +72,70 @@
color: var(--color-darkGreen); color: var(--color-darkGreen);
} }
p { p {
margin: 0; margin: 0;
margin-bottom: 15px; margin-bottom: 15px;
align-items: center; align-items: center;
color: var(--color-darkForeground); color: var(--color-darkForeground);
} }
a { a {
color:var(--color-darkPink); color:var(--color-darkPink);
text-decoration:none; text-decoration:none;
} }
a:visited { a:visited {
color: var(--color-darkPurple); color: var(--color-darkPurple);
} }
a:link:hover, a:link:hover,
a:visited:hover { a:visited:hover {
color: var(--color-darkPink); color: var(--color-darkPink);
text-decoration:underline; text-decoration:underline;
} }
a[href*=charsets] { a[href*=charsets] {
display: none; display: none;
} }
table { table {
border: 0; border: 0;
margin: 0; margin: 0;
margin-top: 15px; margin-top: 15px;
} }
th, td { th, td {
border: 0; border: 0;
padding: 6px; padding: 6px;
color: var(--color-darkOrange); color: var(--color-darkOrange);
} }
th { th {
background: none; background: none;
color: var(--color-darkCyan); color: var(--color-darkCyan);
font-weight: normal; font-weight: normal;
} }
tbody tr:hover td, tbody tr:hover td,
tbody tr:hover th { tbody tr:hover th {
background: var(--color-darkCurrentLine); background: var(--color-darkCurrentLine);
} }
table:not(.checkable) th { table:not(.checkable) th {
min-width: 120px; min-width: 120px;
} }
#edit-fields th {
min-width: 0;
}
thead td, thead td,
thead th { thead th {
background: var(--color-darkComment); background: var(--color-darkComment);
} }
thead td, thead td,
thead td a, thead td a,
thead td a:link:hover, thead td a:link:hover,
@@ -144,37 +148,38 @@
thead th a:visited:hover { thead th a:visited:hover {
color: var(--color-darkForeground); color: var(--color-darkForeground);
} }
table.checkable, table.checkable,
p.links + table, p.links + table,
pre + table, pre + table,
#edit-fields, #edit-fields,
p + table, p + table,
h3 + table { h3 + table,
.scrollable table{
border: 1px solid var(--color-darkCurrentLine); border: 1px solid var(--color-darkCurrentLine);
margin-bottom: 15px; margin-bottom: 15px;
} }
table.checkable tbody tr:hover td, table.checkable tbody tr:hover td,
table.checkable tbody tr:hover th { table.checkable tbody tr:hover th {
background: var(--color-darkCurrentLine); background: var(--color-darkCurrentLine);
} }
.js .checkable .checked td, .js .checkable .checked td,
.js .checkable .checked th { .js .checkable .checked th {
background: var(--color-darkDraculaSite); background: var(--color-darkDraculaSite);
} }
.js .checkable thead .checked td, .js .checkable thead .checked td,
.js .checkable thead .checked th { .js .checkable thead .checked th {
background: var(--color-darkPurple); background: var(--color-darkPurple);
} }
.odd th, .odd th,
.odd td { .odd td {
background: var(--color-darkDraculaVSCode); background: var(--color-darkDraculaVSCode);
} }
fieldset { fieldset {
display: inline-block; display: inline-block;
padding: 15px; padding: 15px;
@@ -183,21 +188,21 @@
border: 0; border: 0;
background: var(--color-darkBackground); background: var(--color-darkBackground);
} }
fieldset select { fieldset select {
margin-right: 5px; margin-right: 5px;
} }
fieldset input[type=button], fieldset input[type=button],
fieldset input[type=submit], fieldset input[type=submit],
fieldset p { fieldset p {
margin-bottom: 0; margin-bottom: 0;
} }
fieldset div p { fieldset div p {
margin-top: 10px; margin-top: 10px;
} }
legend { legend {
display: inline-block; display: inline-block;
padding: 6px 15px; padding: 6px 15px;
@@ -206,17 +211,17 @@
font-family: 'Source Sans Pro', sans-serif; font-family: 'Source Sans Pro', sans-serif;
color: var(--color-darkOrange); color: var(--color-darkOrange);
} }
legend a, legend a,
legend a:link:hover { legend a:link:hover {
color: var(--color-darkOrange); color: var(--color-darkOrange);
text-decoration: underline; text-decoration: underline;
} }
code { code {
background: none; background: none;
} }
p code, p code,
pre code, pre code,
pre[contenteditable=true] { pre[contenteditable=true] {
@@ -225,7 +230,7 @@
font-size: 17px; font-size: 17px;
margin-bottom: 15px; margin-bottom: 15px;
} }
p code + a, p code + a,
p code + a:link:hover, p code + a:link:hover,
p code + a:visited:hover { p code + a:visited:hover {
@@ -237,7 +242,7 @@
text-decoration: underline; text-decoration: underline;
text-transform: lowercase; text-transform: lowercase;
} }
#content { #content {
margin: 0; margin: 0;
margin-left: 400px; margin-left: 400px;
@@ -245,12 +250,12 @@
padding: 0; padding: 0;
padding-top: 50px; padding-top: 50px;
} }
#content > p { #content > p {
margin-bottom: 15px; margin-bottom: 15px;
color: var(--color-darkForeground); color: var(--color-darkForeground);
} }
.rtl #content { .rtl #content {
margin: 0; margin: 0;
margin-left: 54px; margin-left: 54px;
@@ -258,7 +263,7 @@
padding: 0; padding: 0;
padding-top: 50px; padding-top: 50px;
} }
#menu { #menu {
width: 347px; width: 347px;
border-right: 1px solid var(--color-darkBackground); border-right: 1px solid var(--color-darkBackground);
@@ -272,51 +277,44 @@
padding: 0 15px; padding: 0 15px;
box-sizing: border-box; box-sizing: border-box;
} }
#menu h1 { #menu h1 {
background: none left top no-repeat;
/* background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD0AAAAyCAIAAABgVkRrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTA0RDI5NkM5QkRGMTFFMzg4ODNEQjEzNjY5NzJEMEEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTA0RDI5NkQ5QkRGMTFFMzg4ODNEQjEzNjY5NzJEMEEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1MDREMjk2QTlCREYxMUUzODg4M0RCMTM2Njk3MkQwQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1MDREMjk2QjlCREYxMUUzODg4M0RCMTM2Njk3MkQwQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnG4emkAAASXSURBVHja7Fk9aNtAFL6EDKKUoqGDySRKB1FC8dDBdCgeOmQoIUMG0yGE0EFT8dDBUwidPJQQQgcNpYROGjKI0sFDB9GhaMhgSgcPpWgqHjqYYsINJfQ7PfV0tmX9JI4Sgx+HI8f26bt3733fe6elIf/LbqwdHbJWS1wYBrMstrXJVg36ZJnNhQWBWMB9k+215gq3tDeHBH3pRseJtC8ee2ezEzd62+ncDH/DhS+ttC88qbMPDntaj952uyvXD3q7ETvyyE77pq5HFz9614r7V8C2GnBezBgp9tGNl3ffzIjvwZ9B//dA7Mz3YPLTyl29UhE+MI0KW9YKh2yjwQZichEAjsNu6WlUqNqkvwHUO+0BJeD2gn4hJFXTwAIw6jUzYxlwHkCTvWqy1+0Ct7FtsPh/3Ofc9brOJ5+8ezHr9gKMcGpWf2SK8bhKk48sA1kIOiODmzc2c8U0DLrzwhI5ypjA3fsZtNrOgPP4y5pmGJXamqHd1kQMTIkENYpwEfQHEW7GsGkYZse393ewb+Y9IwE0PJcOejQ2pFgK3Li3BI14hZM269XKaiXPVPodHUOs6l48o/+t5wO038OcQGztHzd31uPfUEgQdCQi3JkfumLLHa9LoK2tunPQtJ6v5wQ9zWoPzebupms34QKxmZNJAugIDzJE+V4rbTrDSMYtr3AD+H5WFIfZ0lIFPu50otiF7zfW2dlgquKccTFWRxYQ8wlFJOVTdc2gAChq/V99vxdgD7O5CIBO/Yi/P3vsUY2dOOxBdSrzIBm2dxJwq+hlaiId9dua5OlEv/IhH0vKvAYXfvUjvUTFB2STeinJu91Oxo3Eh58onwRXcB7zWkGj/Maa9203+9soPIyWEKBEkQdc8veo+sS4wQkYzV1Bi+A1Ee5DnhO33BxsSw1/wszGPHkXmqI7yIQzPvnvhPqEFjAWtSq7j7n2YplwSctVV8F/FXazbN76nQXu68btfe3Odmqwahl5Ca6tel0UVdnVc6pRBX/JkrgYn0RCY0cdAMhYvGYxHbEklbJ++FoqD8LTUiwTlZLEha55WKOmSybWTCXD1eJG8dnc4XAYqmdgmoRFyp/ZqqHbgMiD8qGXZeAOs1RD9YyhBgBVTgL3cMTHwKd2xyUL50qmTI5p/oK/F7jnEjeycLZTFz02SrKlaSPGbe0fOx+9mbTGcMHhe/fwuFMGn4Dy7BMPA3oBGkZrbIDgcp9JgK37YYtZjmSuqApH9yPRcTp+TM939THOpkaYroMguRuSE14tbuegif11vS58poYm7i1vn6fdxF6hMoNk4leIvTJ0B1FhPQ/PxM45eZ2HGjkY8jHXqptghGJJqqmKVHn1oCr4k93xgr8XuOcZ9zmf7dQym68Et6QFcFaBk7EsQ5fdfuteHW7xPM3asyVh05EkxFJITMHuGDUCukxwvOz3YI31mtWoX7TRXkrDjQhBLeFOHBtQQ6n/f8TDlAd/6mNBP7xO7Ecbz2qNjfrl6qoU3Mr5Qa4j9yyLHqZd7jwjL241QQFdPiJTdT7RsBuapslzi5mqVSHcKXYetcZlSelU3P8EGADW25uhkIE0mQAAAABJRU5ErkJggg==); */
background-image: url();
line-height: 50px; line-height: 50px;
padding-left: 50px; margin: 10px 0;
padding-top: 9px;
/* text-transform: lowercase; */
margin: 25px 0 10px 16px;
} }
#menu h1 a { #menu h1 a {
font-style: normal; font-style: normal;
} }
#menu h1 .version { #menu h1 .version {
color: var(--color-darkPurple); color: var(--color-darkPurple);
} }
#menu a { #menu a {
color: var(--color-darkForeground); color: var(--color-darkForeground);
} }
#menu p, #tables { #menu p, #tables {
border: 0; border: 0;
padding: 0; padding: 0;
} }
#menu #dbs { #menu #dbs {
background: var(--color-darkDraculaVSCode); background: var(--color-darkDraculaVSCode);
padding: 0 15px 15px; padding: 10px 15px 15px;
border: 1px solid var(--color-darkForeground); border: 1px solid var(--color-darkForeground);
border-bottom: 0; border-bottom: 0;
box-sizing: border-box; box-sizing: border-box;
color: var(--color-darkCyan); color: var(--color-darkCyan);
} }
#menu #dbs select { #menu #dbs select {
outline: 0; outline: 0;
border-color: var(--color-darkComment); border-color: var(--color-darkComment);
width: 100%; width: 100%;
} }
#menu p.links { #menu p.links {
margin: 0 0 15px; margin: 0 0 15px;
border: 1px solid var(--color-darkForeground); border: 1px solid var(--color-darkForeground);
@@ -326,50 +324,55 @@
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
} }
#menu p.links a { #menu p.links a {
padding: 8px; padding: 8px;
margin: 0; margin: 0;
display: table-cell; display: table-cell;
font-size: 12px; font-size: 12px;
} }
#menu p.links a:hover { #menu p.links a:hover {
color: var(--color-darkPink); color: var(--color-darkPink);
} }
#menu p.links a.active { #menu p.links a.active {
font-weight: normal; font-weight: normal;
background: var(--color-darkCurrentLine); background: var(--color-darkCurrentLine);
color: var(--color-darkYellow); color: var(--color-darkYellow);
} }
.tables-filter {
margin-top: 32px;
padding: 0;
}
#content p.links { #content p.links {
margin: -10px 0 15px; margin: -10px 0 15px;
} }
#content p.links a { #content p.links a {
padding: 8px; padding: 8px;
margin: 0; margin: 0;
display: table-cell; display: table-cell;
border: 1px solid var(--color-darkBackground); border: 1px solid var(--color-darkBackground);
} }
#content p.links a, #content p.links a,
#content p.links a:visited, #content p.links a:visited,
#content p.links a:hover { #content p.links a:hover {
color: var(--color-darkCyan); color: var(--color-darkCyan);
} }
#content p.links a.active { #content p.links a.active {
font-weight: normal; font-weight: normal;
border: 1px solid var(--color-darkTitleSite); border: 1px solid var(--color-darkTitleSite);
background: var(--color-darkCurrentLine); background: var(--color-darkCurrentLine);
} }
#tables { #tables {
max-height: 100%; max-height: 100%;
margin: 32px -15px !important; margin: 15px -15px 32px !important;
position: absolute; position: absolute;
left: 15px; left: 15px;
right: 15px; right: 15px;
@@ -378,33 +381,33 @@
overflow: hidden !important; overflow: hidden !important;
overflow-y: auto !important; overflow-y: auto !important;
} }
.rtl #tables { .rtl #tables {
overflow: hidden !important; overflow: hidden !important;
overflow-y: auto !important; overflow-y: auto !important;
} }
#tables a { #tables a {
float: right; float: right;
padding: 6px 15px; padding: 6px 15px;
} }
.rtl #tables a { .rtl #tables a {
float: none; float: none;
} }
#tables .structure, #tables .view { #tables .structure, #tables .view {
float: none; float: none;
display: block; display: block;
} }
.rtl #tables a:first-child, .rtl #tables a:first-child,
.rtl #tables br + a { .rtl #tables br + a {
float: left; float: left;
display: block; display: block;
margin-left: 15px; margin-left: 15px;
} }
#tables a:hover, #tables a:hover,
#tables a:hover + a, #tables a:hover + a,
#tables a.active, #tables a.active,
@@ -416,15 +419,15 @@
#tables br { #tables br {
display: none; display: none;
} }
.js .column { .js .column {
background: var(--color-darkDraculaVSCode); background: var(--color-darkDraculaVSCode);
} }
.js .checked .column { .js .checked .column {
background: var(--color-darkDraculaVSCode); background: var(--color-darkDraculaVSCode);
} }
.pages { .pages {
left: 400px; left: 400px;
background: var(--color-darkCyan); background: var(--color-darkCyan);
@@ -434,7 +437,7 @@
display: inline-block; display: inline-block;
position: static; position: static;
} }
.pages a, .pages a,
.pages a:link, .pages a:link,
.pages a:link:hover, .pages a:link:hover,
@@ -443,7 +446,7 @@
color: var(--color-darkBackground); color: var(--color-darkBackground);
font-weight: normal; font-weight: normal;
} }
#breadcrumb { #breadcrumb {
margin: 0; margin: 0;
left: 400px; left: 400px;
@@ -452,36 +455,40 @@
padding-top: 25px; padding-top: 25px;
font-size: 12px; font-size: 12px;
} }
#breadcrumb a { #breadcrumb a {
color: var(--color-darkForeground); color: var(--color-darkForeground);
text-decoration: underline; text-decoration: underline;
} }
#breadcrumb, #breadcrumb,
#breadcrumb a:hover { #breadcrumb a:hover {
color: var(--color-darkTitleSite); color: var(--color-darkTitleSite);
} }
.rtl #breadcrumb { .rtl #breadcrumb {
margin: 0; margin: 0;
padding: 0; padding: 0;
padding-top: 25px; padding-top: 25px;
right: 400px; right: 400px;
} }
.logout, .logout,
.rtl .logout { .rtl .logout {
top: 30px; top: 20px;
right: 54px; right: 54px;
margin: 0; margin: 0;
} }
.rtl .logout { .rtl .logout {
right: auto; right: auto;
left: 54px; left: 54px;
} }
#logout {
margin-top: 0;
}
input:not([type]), input:not([type]),
input[type="color"], input[type="color"],
input[type="email"], input[type="email"],
@@ -498,7 +505,11 @@
box-sizing: border-box; box-sizing: border-box;
color: var(--color-darkForeground); color: var(--color-darkForeground);
} }
input::placeholder {
color: var(--color-darkForeground);
}
table:not(#table) input:not([type]), table:not(#table) input:not([type]),
table:not(#table) input[type="color"], table:not(#table) input[type="color"],
table:not(#table) input[type="email"], table:not(#table) input[type="email"],
@@ -510,7 +521,7 @@
table:not(#table) input[type="search"] { table:not(#table) input[type="search"] {
min-width: 280px; min-width: 280px;
} }
input[type=submit], input[type=submit],
input[type=button] { input[type=button] {
border: 0; border: 0;
@@ -526,14 +537,14 @@
border-radius: 5px; border-radius: 5px;
margin-top: 20px; margin-top: 20px;
} }
input[type=submit][disabled], input[type=submit][disabled],
input[type=button][disabled] { input[type=button][disabled] {
background: var(--color-darkTitleSite) !important; background: var(--color-darkTitleSite) !important;
color: var(--color-darkBackground); color: var(--color-darkBackground);
cursor: not-allowed; cursor: not-allowed;
} }
input[type=submit]:hover, input[type=submit]:hover,
input[type=button]:hover, input[type=button]:hover,
input[type=submit]:focus, input[type=submit]:focus,
@@ -541,17 +552,17 @@
background: var(--color-darkGreen); background: var(--color-darkGreen);
opacity: 0.8; opacity: 0.8;
} }
.logout input[type=submit] { .logout input[type=submit] {
background: var(--color-darkRed); background: var(--color-darkRed);
color: var(--color-darkForeground); color: var(--color-darkForeground);
} }
.logout input[type=submit]:hover { .logout input[type=submit]:hover {
background: var(--color-darkRed); background: var(--color-darkRed);
opacity: 0.8; opacity: 0.8;
} }
input.default, input.default,
input.default { input.default {
box-shadow: none; box-shadow: none;
@@ -559,22 +570,22 @@
color: var(--color-darkDraculaVSCode); color: var(--color-darkDraculaVSCode);
font-weight: bold; font-weight: bold;
} }
select { select {
box-sizing: border-box; box-sizing: border-box;
margin: 0; margin: 0;
padding: 6px 0; padding: 6px;
border: 1px solid var(--color-darkCurrentLine); border: 1px solid var(--color-darkCurrentLine);
background-color: var(--color-darkBackground); background-color: var(--color-darkBackground);
color: var(--color-darkForeground); color: var(--color-darkForeground);
} }
label { label {
cursor: pointer; cursor: pointer;
margin: 18px; margin: 18px;
color: var(--color-darkOrange); color: var(--color-darkOrange);
} }
.error, .error,
.message { .message {
margin: 0; margin: 0;
@@ -582,23 +593,23 @@
background: var(--color-darkCurrentLine); background: var(--color-darkCurrentLine);
color: var(--color-darkRed); color: var(--color-darkRed);
} }
#logins a, #logins a,
#tables a, #tables a,
#tables span { #tables span {
background: none; background: none;
} }
#form > p { #form > p {
margin-bottom: 15px; margin-bottom: 15px;
color: var(--color-darkForeground); color: var(--color-darkForeground);
} }
#schema .table { #schema .table {
padding: 6px; padding: 6px;
} }
#schema .table a { #schema .table a {
display: block; display: block;
margin: -6px; margin: -6px;
@@ -607,20 +618,20 @@
color: var(--color-darkBackground); color: var(--color-darkBackground);
background: var(--color-darkPurple); background: var(--color-darkPurple);
} }
#schema .table br { #schema .table br {
display: none; display: none;
} }
#schema .table span { #schema .table span {
display: block; display: block;
margin-bottom: 1px solid var(--color-darkDraculaVSCode); margin-bottom: 1px solid var(--color-darkDraculaVSCode);
} }
#lang { #lang {
position: fixed; position: fixed;
top: 55px; top: 30px;
right: 100%; right: calc(100% + 8px);
z-index: 10; z-index: 10;
margin-right: -340px; margin-right: -340px;
line-height: normal; line-height: normal;
@@ -628,7 +639,7 @@
left: auto; left: auto;
font-size: 0; font-size: 0;
} }
#lang select { #lang select {
font-size: 12px; font-size: 12px;
padding: 0; padding: 0;
@@ -641,26 +652,26 @@
cursor: pointer; cursor: pointer;
outline: 0; outline: 0;
} }
#lang select option { #lang select option {
text-align: right; text-align: right;
} }
.rtl #lang { .rtl #lang {
margin-right: 0; margin-right: 0;
left: 100%; left: 100%;
margin-left: -261px; margin-left: -261px;
right: auto; right: auto;
} }
.jush { .jush {
color: var(--color-darkForeground); color: var(--color-darkForeground);
} }
.jush a { .jush a {
color: var(--color-darkPurple); color: var(--color-darkPurple);
} }
.jush-sql a, .jush-sql a,
.jush-sql_code a, .jush-sql_code a,
.jush-sqlite a, .jush-sqlite a,
@@ -670,7 +681,7 @@
.jush-simpledb a { .jush-simpledb a {
font-weight: normal; font-weight: normal;
} }
.jush-bac, .jush-bac,
.jush-php_bac, .jush-php_bac,
.jush-bra, .jush-bra,
@@ -678,7 +689,7 @@
.jush-sqlite_quo { .jush-sqlite_quo {
color: var(--color-darkYellow); color: var(--color-darkYellow);
} }
.jush-php_quo, .jush-php_quo,
.jush-quo, .jush-quo,
.jush-quo_one, .jush-quo_one,
@@ -690,21 +701,21 @@
.jush-sql_eot { .jush-sql_eot {
color: var(--color-darkOrange); color: var(--color-darkOrange);
} }
.jush-num, .jush-num,
.jush-clr { .jush-clr {
color: var(--color-darkPurple); color: var(--color-darkPurple);
} }
@media print { @media print {
.logout { .logout {
display: none; display: none;
} }
#breadcrumb { #breadcrumb {
position: static; position: static;
} }
#content { #content {
margin: 0; margin: 0;
} }

View File

@@ -225,8 +225,8 @@ h1{
} }
h2{ h2{
font-size: 24px; font-size: 24px;
margin: 0; margin: 0;
padding: 0; padding: 0;
padding-left: 50px; padding-left: 50px;
border-bottom: 1px solid #333; border-bottom: 1px solid #333;
@@ -442,6 +442,13 @@ td textarea
border-radius: 0; border-radius: 0;
} }
th input::placeholder,
td input::placeholder
{
color: #fff;
}
th input:hover, th input:hover,
th select:hover, th select:hover,
td input:hover, td input:hover,
@@ -502,7 +509,7 @@ input[type='radio']{
height: 18px; height: 18px;
vertical-align: middle; vertical-align: middle;
margin-left: 8px; margin-left: 8px;
margin-right: 0; margin-right: 0;
} }
/* checkbox */ /* checkbox */
@@ -657,6 +664,14 @@ legend{
color: #999; color: #999;
} }
.footer {
border-image: linear-gradient(rgba(0, 0, 0, .2), #000) 100% 0;
}
.footer > div{
background: #000;
}
/* menu /* menu
----------------------------------------------------------------------- */ ----------------------------------------------------------------------- */
@@ -692,12 +707,6 @@ legend{
font-size: inherit; font-size: inherit;
} }
/* db select */
#dbs select{
width: 228px;
margin-left: 8px;
}
/* links */ /* links */
#menu .links{ #menu .links{
padding-top: 0; padding-top: 0;
@@ -985,6 +994,11 @@ code.jush-sql ~ a:first-of-type::before{
/* logout form /* logout form
----------------------------------------------------------------------- */ ----------------------------------------------------------------------- */
body > form{ .logout {
position: absolute; z-index: 10;
}
#logout {
margin-right: 0;
margin-left: 10px;
} }

View File

@@ -196,7 +196,7 @@ html>/**/body #content table a[id|="Rows"] { /* Select data (Rows) */
margin-right: 5px; margin-right: 5px;
} }
/* Edit,modify row (pen icon) */ /* Edit,modify row (pen icon) */
html>/**/body #content form table thead>tr>td a[href$="&modify=1"], html>/**/body #content form table thead>tr>td a[href$="&modify=1"],
html>/**/body #content form table a[href*="&edit="][href*="&where"] { html>/**/body #content form table a[href*="&edit="][href*="&where"] {
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2lpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wUmlnaHRzPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvcmlnaHRzLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcFJpZ2h0czpNYXJrZWQ9IkZhbHNlIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcwNEVCNDY0MDM4NzExRTFBREUyQ0JDMzAwQUI1NjI2IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcwNEVCNDYzMDM4NzExRTFBREUyQ0JDMzAwQUI1NjI2IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzMgV2luZG93cyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ1dWlkOkFDMUYyRTgzMzI0QURGMTFBQUI4QzUzOTBEODVCNUIzIiBzdFJlZjpkb2N1bWVudElEPSJ1dWlkOkM5RDM0OTY2NEEzQ0REMTFCMDhBQkJCQ0ZGMTcyMTU2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+MT7FiQAAAiZJREFUeNqMk1FIU1EYx/9nO3e+NranKIw2ErM9SQQXxCKMRdFDCWEaNIuIetseQiIKG/jQQ4H0kkQxdLRaYiijtdWwljjKjQlNRQPHEhWUjca9eb3bPd2tFTdrrgMf53x8/98533e+cwhqDFsDQccpILHYXvbv+f1NBcD5DfB8BcZpLfDAvp9+YrE81c+azc6jLlf3RE/PLgWgtBaoGVZZltv4dLpbcjph6+w8Fhgc3CD/AQIMhzOr5osOV7orlUrBaDTC29gY2L25eZPurwfOtAIHW6rUosKyjOtXr7ns4bEW7G1+Bp7n3Tv1eq+V42bojfMAIdvDpzv67MWiDIvFguFHTS8FgfrnCJmZ4zhUvUQtLEkiVlYWEJ98MW7dg35F0SV/yWgtWBByyGaXEH379L16oFtPyRutlG4H53KrEIQsXo0ORQ0c7qg9C2+V02rw2loakvQdwz7PhMGAXkYR0krVlpaN/gteXp6HohQw9MQzqcK3GSO/Yd8YgyiKf2bAGBrEPC6fdfTZM5nPqq/g8YA3pqZ9S42V4ZEww0iI/VUxFSUYCkW0nbsSOT415YbJZMbDB76PtARTvA5GgWBUqdosmhdJs413tBOdbofR1CXev+uI19Ux94ckCb77xGr9NdD1PE4eOnKhdfR5/3Qk5I99WUIgkkBcLcykxhWNFbf4pd2V0htkl06QgdkMYskFTOdFtlERF0qXXZm1a7kSL9sPAQYA2Q4Ie25SbgYAAAAASUVORK5CYII=") no-repeat 3px 3px; background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2lpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wUmlnaHRzPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvcmlnaHRzLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcFJpZ2h0czpNYXJrZWQ9IkZhbHNlIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcwNEVCNDY0MDM4NzExRTFBREUyQ0JDMzAwQUI1NjI2IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcwNEVCNDYzMDM4NzExRTFBREUyQ0JDMzAwQUI1NjI2IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzMgV2luZG93cyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ1dWlkOkFDMUYyRTgzMzI0QURGMTFBQUI4QzUzOTBEODVCNUIzIiBzdFJlZjpkb2N1bWVudElEPSJ1dWlkOkM5RDM0OTY2NEEzQ0REMTFCMDhBQkJCQ0ZGMTcyMTU2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+MT7FiQAAAiZJREFUeNqMk1FIU1EYx/9nO3e+NranKIw2ErM9SQQXxCKMRdFDCWEaNIuIetseQiIKG/jQQ4H0kkQxdLRaYiijtdWwljjKjQlNRQPHEhWUjca9eb3bPd2tFTdrrgMf53x8/98533e+cwhqDFsDQccpILHYXvbv+f1NBcD5DfB8BcZpLfDAvp9+YrE81c+azc6jLlf3RE/PLgWgtBaoGVZZltv4dLpbcjph6+w8Fhgc3CD/AQIMhzOr5osOV7orlUrBaDTC29gY2L25eZPurwfOtAIHW6rUosKyjOtXr7ns4bEW7G1+Bp7n3Tv1eq+V42bojfMAIdvDpzv67MWiDIvFguFHTS8FgfrnCJmZ4zhUvUQtLEkiVlYWEJ98MW7dg35F0SV/yWgtWBByyGaXEH379L16oFtPyRutlG4H53KrEIQsXo0ORQ0c7qg9C2+V02rw2loakvQdwz7PhMGAXkYR0krVlpaN/gteXp6HohQw9MQzqcK3GSO/Yd8YgyiKf2bAGBrEPC6fdfTZM5nPqq/g8YA3pqZ9S42V4ZEww0iI/VUxFSUYCkW0nbsSOT415YbJZMbDB76PtARTvA5GgWBUqdosmhdJs413tBOdbofR1CXev+uI19Ux94ckCb77xGr9NdD1PE4eOnKhdfR5/3Qk5I99WUIgkkBcLcykxhWNFbf4pd2V0htkl06QgdkMYskFTOdFtlERF0qXXZm1a7kSL9sPAQYA2Q4Ie25SbgYAAAAASUVORK5CYII=") no-repeat 3px 3px;
} }
@@ -485,9 +485,10 @@ fieldset {
/*** Others ***/ /*** Others ***/
#lang { #lang {
background: transparent; background: transparent;
font-size: .9em; font-size: .9em;
left: auto; left: auto;
right: 120px; right: 120px;
top: 3px;
position:fixed; position:fixed;
z-index: 10; z-index: 10;
padding-top: 2px; padding-top: 2px;

Submodule designs/hydra deleted from f8aa49777e

View File

@@ -1,29 +0,0 @@
/* Redesigned by Janamou - September 2008 */
body { color: #000; background-color: #fff; line-height: 1.25em; font-family: Verdana, Arial, Helvetica, sans-serif; margin: 0; font-size: 90%; }
a { color: black; }
a:visited { color: black; }
a:hover { color: #626262; text-decoration: none; }
h1 { margin: 0; padding: 5px; }
h2 { margin: 0; padding: 7px 0px 7px 10px; border: 1px solid #a3a3a3; font-weight: normal; background: #FCE28E url('data:image/gif;base64,R0lGODlhEAAiAIMAAP/nnf/nn//nof/kk//llP/ab//Zav/aa/7aagAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAEAAiAAMERBDISSsIOOvNu/9gKI5k6VnoJKxs6wpmmsayZQ54jhN8zxfAoHBYMBiPyKTyeGg6m4iodEpFLK/YrHbL7Xq/4LB4LI4AADs=') top left repeat-x; margin-bottom: 20px; }
h3 { font-weight: normal; font-size: 130%; margin: .8em 0; }
table { margin: 0 20px .8em 0; border: 0; border-top: 1px solid #999; border-left: 1px solid #999; font-size: 90%; }
td, th { margin-bottom: 1em; border: 0; border-right: 1px solid #999; border-bottom: 1px solid #999; padding: .2em .3em; }
th { background: black; color: white; }
th a, th a:visited { color: white; text-decoration: none; }
th a:hover { color: #626262; }
fieldset { display: inline; vertical-align: top; padding: .5em .8em; margin: 0 .5em .5em 0; border: 1px solid #999; }
img { vertical-align: middle; margin: 0; padding: 0; }
.error { color: red; background: #fee; padding: .5em .8em; border: 1px solid red; }
.message { color: black; background: #dedede; padding: .5em .8em; border: 1px solid black; }
#menu { overflow: scroll; position: absolute; top: 0; left: 0; width: 270px; white-space: nowrap; background: #FFE594 url('data:image/gif;base64,R0lGODlhXgEBAIIAAPzabPzijvzihPzefvzmnPzedPzmlPzadCwAAAAAXgEBAAIDYEi63P5wGTXJvNZew7sJBNiBwWeWaPoFbNq+cCzPs8DaeJDvuGAPOh9wIBgWAwMjMblsOpnQqHRKrRaY1+sguz1sB4esN0wulM+HtNqMZqsBafgBTp/PAfQ8fs/v+/8ACQA7') top left repeat-y; height: 100%; _height: 650px; border: 1px solid #a3a3a3; }
#menu form { margin: 0; }
#menu p, #logins li, #tables li { text-align: center; font-size: 11px; }
#menu p a, #logins li a, #tables li a { color: black; }
#menu p a:hover, #logins li a:hover, #tables li a:hover { color: #626262; text-decoration: none; }
#logins a, #tables a, #tables span { background: #FFE594; }
#content { margin: 1.5em 0 0 293px; padding: 10px 20px 20px 0; }
#lang { margin: 0; padding: 0; text-align: center; font-size: 10px; width: 270px; background-color: #d9dadb; border-bottom: 1px solid black; }
#lang a { color: black; font-weight: bold; }
#breadcrumb { position: absolute; top: 0; left: 293px; background: #d9dadb; font-size: 10px; margin: 0; padding: 2px 5px 2px 5px; }
#breadcrumb a { color: black; }

View File

@@ -1,290 +0,0 @@
/*
Ok, it's a mess. You don't have to read it!
*/
body {
font-family: "Segoe UI", Tahoma, sans-serif;
}
body a[href^="#"] {
color:#000; text-decoration: none; border-bottom: 1px dotted #999;
}
h3 {
margin-top: 2em;
}
.jush-bac {
color:#22c !important;
}
a:hover {
color:#000; text-decoration: none;
}
/*
@group Headers (visually)
*/
#menu .logout {
border-bottom:0; height:auto; padding: 0;
}
/*
@end
*/
/*
@group Sidebar (visually)
*/
#menu {
margin:0; padding:0;
position:static; float:left; margin-left:-100%;
width:25%; padding-top:80px;
line-height:1.4;
}
/* header "adminer 2.3.2" */
h1 {
margin:0; padding:0;
position: fixed; left:0; top:0;
width:25%; height:60px;
border-bottom: 1px solid #bbb;
background-color:#efefef; background-color:rgba(240,240,240,0.9);
line-height:60px; text-indent:20px;
}
#h1 {
font-weight:bold; color:#666; font-style:normal;
}
#menu a {
padding:1px; margin-right:4px;
color:#000; font-size:small; text-decoration: none;
}
#menu a:hover {
font-weight:bold;
}
#menu #tables + p a {
color:green;
}
/*
#menu form+form, #menu #tables {
position: fixed; left:0; top:100px; width:25%;
}
#menu #tables {
max-height:100%; padding-top:130px; overflow-y:auto;
}
*/
/* @todo ev. position fixed for whole sidebar (not simple) */
/*
@end
*/
/*
@group Sidebar (based on HTML position, not visual)
*/
/* languages */
#lang {
position: absolute; left:auto; left:120px; top:0px; z-index:3;
font-size:11px; line-height:60px; text-decoration: underline; text-transform:lowercase;
opacity:0.5;
}
#lang:hover {
opacity:1;
}
#lang select {
display:none;
}
#lang:hover select {
display: inline-block;
}
/* logout */
input[name="logout"] {
position:fixed; right:15px; top:22px;
}
/*
@end
*/
/*
@group Content: main
*/
#content {
margin:0; padding:155px 0 50px 0;
position: static; float:left; margin-left:25%;
width:75%;
}
#content > * {
margin-left:20px; margin-right:20px;
}
#content h2 {
margin:0; padding:0;
position:fixed; left:25%; top:0; margin-left:-1px;
width:75%;
border-bottom: 1px solid #bbb;
background-color:#efefef; background-color:rgba(240,240,240,0.9);
font-weight:bold; line-height:60px; text-indent:20px;
}
/* breadcrumbs */
#breadcrumb {
margin:0; padding:0;
position:absolute; top:75px; left:25%;
background:url() no-repeat;
text-indent: 20px;
}
/* Dump link */
#menu .logout a {
margin:0; padding:2px 4px;
position:absolute; left:25%; top:110px;
border-radius:3px;
background-color:#053AC0; color:#fff; margin-left:120px; text-transform: uppercase; font-size:11px; text-decoration: none;
}
/* SQL command link */
body #menu .logout a[href$="sql="] {
margin-left: 20px;
background-color:green;
}
/*
@end
*/
/*
@group Content: details
*/
#content p > a {
margin-right:1ex;
color: #333;
}
#content p > a[href$="&database="],
#content p > a[href*="&edit="] {
color:green !important;
}
/*
@group Messages
*/
.message {
background-color:#D0EE76;
color:#000;
}
.error {
background-color:#fbb;
color: #000;
}
.message a,
.error a {
margin-left:1em;
color:#000; opacity:0.5; font-size:smaller;
}
/*
@end
*/
#menu p {
padding:20px; /* wtf? */
}
#menu form + form p:before {
content:'DB:'; font-size:11px;
}
/*
@group Tables
*/
table {
border:1px solid #ccc;
}
table thead tr > * {
padding:5px;
border-color:#ccc;
border-bottom:2px solid #ccc;
background-color:#f2f2f2;
text-align: left; font-weight:bold;
}
thead a {
color:#333; text-decoration: none;
}
body thead tr:hover > * {
background-color:#f2f2f2;
}
body tbody tr:hover > * {
background-color:#f2f7ff;
}
/*
@end
*/
/*
@group Pagination
*/
#content .pages {
margin:1em 0 2em;
}
#content .pages a {
padding:3px 5px; margin:0 1px;
border:1px solid #eee;
text-decoration:none; color: #000;
}
#content .pages a:hover {
background-color:#eee;
border-color: #fff;
}
/*
@end
*/
/*
@end
*/

View File

@@ -2,11 +2,11 @@
/* So I merged them into one file, fixed a couple of problems, added some paddings here and there, voila! /* So I merged them into one file, fixed a couple of problems, added some paddings here and there, voila!
/* Redesigned (iconized) by Hever [hev.cz] - June 2009, ver 0.1.3 */ /* Redesigned (iconized) by Hever [hev.cz] - June 2009, ver 0.1.3 */
/** /**
* Alternative style for Adminer by Frank Bueltge * Alternative style for Adminer by Frank Bueltge
* @link http://bueltge.de/ * @link http://bueltge.de/
*/ */
/* Added icons */ /* Added icons */
/* IE doesn't support inline images - using some hack that eliminate IE*/ /* IE doesn't support inline images - using some hack that eliminate IE*/
html/*\*/>/*/*/body .error {background:#FFEEEE url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIsSURBVDjLpVNLSJQBEP7+h6uu62vLVAJDW1KQTMrINQ1vPQzq1GOpa9EppGOHLh0kCEKL7JBEhVCHihAsESyJiE4FWShGRmauu7KYiv6Pma+DGoFrBQ7MzGFmPr5vmDFIYj1mr1WYfrHPovA9VVOqbC7e/1rS9ZlrAVDYHig5WB0oPtBI0TNrUiC5yhP9jeF4X8NPcWfopoY48XT39PjjXeF0vWkZqOjd7LJYrmGasHPCCJbHwhS9/F8M4s8baid764Xi0Ilfp5voorpJfn2wwx/r3l77TwZUvR+qajXVn8PnvocYfXYH6k2ioOaCpaIdf11ivDcayyiMVudsOYqFb60gARJYHG9DbqQFmSVNjaO3K2NpAeK90ZCqtgcrjkP9aUCXp0moetDFEeRXnYCKXhm+uTW0CkBFu4JlxzZkFlbASz4CQGQVBFeEwZm8geyiMuRVntzsL3oXV+YMkvjRsydC1U+lhwZsWXgHb+oWVAEzIwvzyVlk5igsi7DymmHlHsFQR50rjl+981Jy1Fw6Gu0ObTtnU+cgs28AKgDiy+Awpj5OACBAhZ/qh2HOo6i+NeA73jUAML4/qWux8mt6NjW1w599CS9xb0mSEqQBEDAtwqALUmBaG5FV3oYPnTHMjAwetlWksyByaukxQg2wQ9FlccaK/OXA3/uAEUDp3rNIDQ1ctSk6kHh1/jRFoaL4M4snEMeD73gQx4M4PsT1IZ5AfYH68tZY7zv/ApRMY9mnuVMvAAAAAElFTkSuQmCC") no-repeat scroll 0.8em center; padding-left:38px;} html/*\*/>/*/*/body .error {background:#FFEEEE url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIsSURBVDjLpVNLSJQBEP7+h6uu62vLVAJDW1KQTMrINQ1vPQzq1GOpa9EppGOHLh0kCEKL7JBEhVCHihAsESyJiE4FWShGRmauu7KYiv6Pma+DGoFrBQ7MzGFmPr5vmDFIYj1mr1WYfrHPovA9VVOqbC7e/1rS9ZlrAVDYHig5WB0oPtBI0TNrUiC5yhP9jeF4X8NPcWfopoY48XT39PjjXeF0vWkZqOjd7LJYrmGasHPCCJbHwhS9/F8M4s8baid764Xi0Ilfp5voorpJfn2wwx/r3l77TwZUvR+qajXVn8PnvocYfXYH6k2ioOaCpaIdf11ivDcayyiMVudsOYqFb60gARJYHG9DbqQFmSVNjaO3K2NpAeK90ZCqtgcrjkP9aUCXp0moetDFEeRXnYCKXhm+uTW0CkBFu4JlxzZkFlbASz4CQGQVBFeEwZm8geyiMuRVntzsL3oXV+YMkvjRsydC1U+lhwZsWXgHb+oWVAEzIwvzyVlk5igsi7DymmHlHsFQR50rjl+981Jy1Fw6Gu0ObTtnU+cgs28AKgDiy+Awpj5OACBAhZ/qh2HOo6i+NeA73jUAML4/qWux8mt6NjW1w599CS9xb0mSEqQBEDAtwqALUmBaG5FV3oYPnTHMjAwetlWksyByaukxQg2wQ9FlccaK/OXA3/uAEUDp3rNIDQ1ctSk6kHh1/jRFoaL4M4snEMeD73gQx4M4PsT1IZ5AfYH68tZY7zv/ApRMY9mnuVMvAAAAAElFTkSuQmCC") no-repeat scroll 0.8em center; padding-left:38px;}
@@ -74,10 +74,9 @@ thead td, thead th {background-color: #DFDFDF; border: none; border-bottom: 1px
thead tr:hover td, thead tr:hover th {background-color: #DDD !important;} thead tr:hover td, thead tr:hover th {background-color: #DDD !important;}
tr:nth-child(2n) td, tr:nth-child(2n) th, .odd td, .odd th, tr.odd {background-color: #F1F1F1;} tr:nth-child(2n) td, tr:nth-child(2n) th, .odd td, .odd th, tr.odd {background-color: #F1F1F1;}
tr:hover td, tr:hover th {background-color: #BCD;} tr:hover td, tr:hover th {background-color: #BCD;}
fieldset {display: inline; vertical-align: top; padding: 2px 12px; margin: 25px 12px 12px 0; border: none; background-color: #F1F1F1; border: 1px solid #E3E3E3; position: relative; padding-top: 14px;} fieldset {display: inline; vertical-align: top; padding: 2px 12px; margin: 25px 12px 12px 0; border: none; background-color: #F1F1F1; border: 1px solid #E3E3E3; position: relative;}
fieldset, x:-moz-any-link {padding-top: 4px;} fieldset, x:-moz-any-link {padding-top: 4px;}
fieldset {%padding-top: 14px;} legend {font-weight: 900; color: #000; position: relative; top: -0.8em; left: -1em; padding: 0 4px;}
legend {font-weight: 900; color: #000; position: absolute; top: -1.666em; left: -1em; padding: 0 4px;}
input[name='limit'], input[name*='length'] {width: 3em; xtext-align: right;} input[name='limit'], input[name*='length'] {width: 3em; xtext-align: right;}
input[name='text_length'] {width: 5em;} input[name='text_length'] {width: 5em;}
select + input, select + select {margin-left: 2px;} select + input, select + select {margin-left: 2px;}
@@ -93,6 +92,8 @@ fieldset div {margin-bottom: 2px;}
input[name='Comment'] { /* !!! */ width: 24em;} input[name='Comment'] { /* !!! */ width: 24em;}
input[name='Auto_increment'] { /* !!! */width: 6em;} input[name='Auto_increment'] { /* !!! */width: 6em;}
img {vertical-align: middle; margin: 0; padding: 0;} img {vertical-align: middle; margin: 0; padding: 0;}
.footer{border-image: linear-gradient(rgba(249, 249, 249, .2), #F9F9F9) 100% 0}
.footer > div {background-color: #F9F9F9;}
.error {padding: 8px; color: red; background-color: #FEE;} .error {padding: 8px; color: red; background-color: #FEE;}
.message {padding: 8px; background-color: #DDD;} .message {padding: 8px; background-color: #DDD;}
.char {color: #070;} .char {color: #070;}
@@ -108,7 +109,8 @@ img {vertical-align: middle; margin: 0; padding: 0;}
#menu form {margin: 0;} #menu form {margin: 0;}
#menu p, #logins, #tables {padding-left: 8px; font-size: 10pt; border-bottom: none;} #menu p, #logins, #tables {padding-left: 8px; font-size: 10pt; border-bottom: none;}
#menu form p {padding-left: 0; text-align: left;} #menu form p {padding-left: 0; text-align: left;}
h1 .h1:hover {text-decoration: underline;} #dbs, .tables-filter {padding-left:8px !important;}
h1 .h1:hover {text-decoration: underline;}
h1, h2 {font: italic normal normal 24px/29px Georgia, "Times New Roman", "Bitstream Charter", Times, serif; margin: 0; padding: 14px 15px 3px 10px; line-height: 35px; text-shadow: rgba(255,255,255,1) 0 1px 0px; background: none;} h1, h2 {font: italic normal normal 24px/29px Georgia, "Times New Roman", "Bitstream Charter", Times, serif; margin: 0; padding: 14px 15px 3px 10px; line-height: 35px; text-shadow: rgba(255,255,255,1) 0 1px 0px; background: none;}
h1 {font-size: 12px;} h1 {font-size: 12px;}
h1 .h1 {font-size: 12px;} h1 .h1 {font-size: 12px;}
@@ -117,8 +119,6 @@ h3 {margin: 40px 0 0; font-weight: 400; font-size: 130%;}
#schema {margin: 1.5em 0 0 220px; position: relative;} #schema {margin: 1.5em 0 0 220px; position: relative;}
#schema .table {border: 1px solid #E3E3E3; background-color: #F1F1F1; padding: 0 2px; cursor: move; position: absolute;} #schema .table {border: 1px solid #E3E3E3; background-color: #F1F1F1; padding: 0 2px; cursor: move; position: absolute;}
#schema .references {position: absolute;} #schema .references {position: absolute;}
.js .hidden {display: inline;}
.js td.hidden, .js input.hidden {display: none;}
legend a {color: #333; text-decoration: none; cursor: default;} legend a {color: #333; text-decoration: none; cursor: default;}
legend a:hover {color: #333;} legend a:hover {color: #333;}
code {background: transparent;} code {background: transparent;}
@@ -126,4 +126,4 @@ fieldset, legend, h2, table, .error, .message {-moz-border-radius: 5px; -khtml-b
#breadcrumb, #lang, #menu {-moz-border-radius-bottomright: 5px; -khtml-border-bottom-right-radius: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px;} #breadcrumb, #lang, #menu {-moz-border-radius-bottomright: 5px; -khtml-border-bottom-right-radius: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px;}
#breadcrumb {-moz-border-radius-bottomleft: 5px; -khtml-border-bottom-left-radius: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px;} #breadcrumb {-moz-border-radius-bottomleft: 5px; -khtml-border-bottom-left-radius: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px;}
#menu {-moz-border-radius-topright: 5px; -khtml-border-top-right-radius: 5px; -webkit-border-top-right-radius: 5px; border-bottom-top-radius: 5px;} #menu {-moz-border-radius-topright: 5px; -khtml-border-top-right-radius: 5px; -webkit-border-top-right-radius: 5px; border-bottom-top-radius: 5px;}
#loader {margin-left: 35px;} #loader {margin-left: 35px;}

View File

@@ -473,26 +473,6 @@ h1 {
#h1 { #h1 {
font-style: normal; font-style: normal;
} }
#dbs {
color: transparent;
}
#dbs:before {
content: " ";
display: inline-block;
vertical-align: middle;
height: 1em;
width: 1em;
margin-right: -0.5em;
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' viewBox='0 0 58.201 58.201' enable-background='new 0 0 58.201 58.201' xml:space='preserve' width='512px' height='512px'%3E%3Cg%3E%3Cpath d='M31.707,33.07c-0.87,0.027-1.74,0.042-2.606,0.042c-0.869,0-1.742-0.014-2.614-0.042 c-7.341-0.201-13.191-1.238-17.403-2.717C7.104,29.685,5.409,28.899,4.1,28v7.111v0.5v0.5V37.4c2.846,2.971,12.394,5.711,25,5.711 s22.154-2.74,25-5.711v-1.289v-0.5v-0.5V28c-1.318,0.905-3.028,1.697-5.025,2.367C44.865,31.839,39.027,32.87,31.707,33.07z' fill='%23FFFFFF'/%3E%3Cpath d='M4.1,14.889V22v0.5V23v1.289c2.638,2.754,11.033,5.31,22.286,5.668c0.115,0.004,0.233,0.005,0.349,0.008 c0.326,0.009,0.651,0.018,0.982,0.023C28.174,29.996,28.635,30,29.1,30s0.926-0.004,1.383-0.011 c0.33-0.005,0.656-0.014,0.982-0.023c0.116-0.003,0.234-0.005,0.349-0.008c11.253-0.359,19.648-2.915,22.286-5.668V23v-0.5V22 v-7.111C49.233,18.232,38.944,20,29.1,20S8.968,18.232,4.1,14.889z' fill='%23FFFFFF'/%3E%3Cpath d='M53.965,8.542C52.843,4.241,44.215,0,29.1,0C14.023,0,5.404,4.22,4.247,8.51C4.162,8.657,4.1,8.818,4.1,9v0.5v1.806 C6.937,14.267,16.417,17,29.1,17s22.164-2.733,25-5.694V9.5V9C54.1,8.832,54.044,8.681,53.965,8.542z' fill='%23FFFFFF'/%3E%3Cpath d='M4.1,41v8.201c0,0.162,0.043,0.315,0.117,0.451c1.181,4.895,11.747,8.549,24.883,8.549c13.106,0,23.655-3.639,24.875-8.516 c0.08-0.144,0.125-0.309,0.125-0.484v-8.199c-4.135,2.911-12.655,5.199-25,5.199C16.754,46.201,8.234,43.911,4.1,41z' fill='%23FFFFFF'/%3E%3C/g%3E%3C/svg%3E") center no-repeat;
background-size: auto 100%;
}
.rtl #dbs:before {
margin-right: 0;
margin-left: -0.5em;
}
#dbs span {
display: none;
}
#menu p { #menu p {
margin: 1.5em 0 0; margin: 1.5em 0 0;
} }
@@ -506,6 +486,10 @@ h1 {
#menu .error { #menu .error {
padding: 0.2em 0.4em; padding: 0.2em 0.4em;
} }
.tables-filter {
padding: 0;
margin-top: 1.2em;
}
input[type="submit"], input[type="submit"],
input[type="reset"], input[type="reset"],
input[type="button"], input[type="button"],
@@ -551,7 +535,7 @@ input[type="file"]::-ms-browse {
background: #4c3957; background: #4c3957;
color: #fff; color: #fff;
padding: 0.5em 0.8em 0.6em; padding: 0.5em 0.8em 0.6em;
margin: 0; margin: 0 0.5em;
border-style: none; border-style: none;
cursor: pointer; cursor: pointer;
} }
@@ -573,7 +557,7 @@ input[type="file"]::-webkit-file-upload-button {
background: #4c3957; background: #4c3957;
color: #fff; color: #fff;
padding: 0.5em 0.8em 0.6em; padding: 0.5em 0.8em 0.6em;
margin: 0; margin: 0 0.5em;
border-style: none; border-style: none;
cursor: pointer; cursor: pointer;
} }
@@ -587,24 +571,24 @@ input[type="file"]:disabled::-webkit-file-upload-button {
background-color: rgba(76, 57, 87, 0.35); background-color: rgba(76, 57, 87, 0.35);
cursor: not-allowed; cursor: not-allowed;
} }
input[type="file"]::-moz-file-upload-button { input[type="file"]::file-selector-button {
display: inline-block; display: inline-block;
font-size: 85%; font-size: 85%;
text-align: center; text-align: center;
background: #4c3957; background: #4c3957;
color: #fff; color: #fff;
padding: 0.5em 0.8em 0.6em; padding: 0.5em 0.8em 0.6em;
margin: 0; margin: 0 0.5em;
border-style: none; border-style: none;
cursor: pointer; cursor: pointer;
} }
input[type="file"]:hover::-moz-file-upload-button, input[type="file"]:hover::file-selector-button,
input[type="file"]:focus::-moz-file-upload-button { input[type="file"]:focus::file-selector-button {
color: #fff; color: #fff;
background: #ec5f12; background: #ec5f12;
text-decoration: none; text-decoration: none;
} }
input[type="file"]:disabled::-moz-file-upload-button { input[type="file"]:disabled::file-selector-button {
background-color: rgba(76, 57, 87, 0.35); background-color: rgba(76, 57, 87, 0.35);
cursor: not-allowed; cursor: not-allowed;
} }

View File

@@ -1,202 +0,0 @@
/*
VERSION: mancave-hever1-27.1.alpha
*/
/* Merged and fixed version of Hever's and Frank Bueltge's skins by Oguz KONYA. I liked Bueltge's skin but I wanted the icons, too.
So I merged them into one file, fixed a couple of problems, added some paddings here and there, voila! */
/* Redesigned (iconized) by Hever [hev.cz] - June 2009, ver 0.1.3 */
/**
* * Alternative style for Adminer by Frank Bueltge
* * @link http://bueltge.de/
* */
/* Added icons */
/* IE doesn't support inline images - using some hack that eliminate IE*/
html/*\*/>/*/*/body .error {background:#FFEEEE url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIsSURBVDjLpVNLSJQBEP7+h6uu62vLVAJDW1KQTMrINQ1vPQzq1GOpa9EppGOHLh0kCEKL7JBEhVCHihAsESyJiE4FWShGRmauu7KYiv6Pma+DGoFrBQ7MzGFmPr5vmDFIYj1mr1WYfrHPovA9VVOqbC7e/1rS9ZlrAVDYHig5WB0oPtBI0TNrUiC5yhP9jeF4X8NPcWfopoY48XT39PjjXeF0vWkZqOjd7LJYrmGasHPCCJbHwhS9/F8M4s8baid764Xi0Ilfp5voorpJfn2wwx/r3l77TwZUvR+qajXVn8PnvocYfXYH6k2ioOaCpaIdf11ivDcayyiMVudsOYqFb60gARJYHG9DbqQFmSVNjaO3K2NpAeK90ZCqtgcrjkP9aUCXp0moetDFEeRXnYCKXhm+uTW0CkBFu4JlxzZkFlbASz4CQGQVBFeEwZm8geyiMuRVntzsL3oXV+YMkvjRsydC1U+lhwZsWXgHb+oWVAEzIwvzyVlk5igsi7DymmHlHsFQR50rjl+981Jy1Fw6Gu0ObTtnU+cgs28AKgDiy+Awpj5OACBAhZ/qh2HOo6i+NeA73jUAML4/qWux8mt6NjW1w599CS9xb0mSEqQBEDAtwqALUmBaG5FV3oYPnTHMjAwetlWksyByaukxQg2wQ9FlccaK/OXA3/uAEUDp3rNIDQ1ctSk6kHh1/jRFoaL4M4snEMeD73gQx4M4PsT1IZ5AfYH68tZY7zv/ApRMY9mnuVMvAAAAAElFTkSuQmCC") no-repeat scroll 0.8em center; padding-left:38px;}
html/*\*/>/*/*/body .message, #menu p.message {background:#49526D url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKfSURBVDjLpZPrS1NhHMf9O3bOdmwDCWREIYKEUHsVJBI7mg3FvCxL09290jZj2EyLMnJexkgpLbPUanNOberU5taUMnHZUULMvelCtWF0sW/n7MVMEiN64AsPD8/n83uucQDi/id/DBT4Dolypw/qsz0pTMbj/WHpiDgsdSUyUmeiPt2+V7SrIM+bSss8ySGdR4abQQv6lrui6VxsRonrGCS9VEjSQ9E7CtiqdOZ4UuTqnBHO1X7YXl6Daa4yGq7vWO1D40wVDtj4kWQbn94myPGkCDPdSesczE2sCZShwl8CzcwZ6NiUs6n2nYX99T1cnKqA2EKui6+TwphA5k4yqMayopU5mANV3lNQTBdCMVUA9VQh3GuDMHiVcLCS3J4jSLhCGmKCjBEx0xlshjXYhApfMZRP5CyYD+UkG08+xt+4wLVQZA1tzxthm2tEfD3JxARH7QkbD1ZuozaggdZbxK5kAIsf5qGaKMTY2lAU/rH5HW3PLsEwUYy+YCcERmIjJpDcpzb6l7th9KtQ69fi09ePUej9l7cx2DJbD7UrG3r3afQHOyCo+V3QQzE35pvQvnAZukk5zL5qRL59jsKbPzdheXoBZc4saFhBS6AO7V4zqCpiawuptwQG+UAa7Ct3UT0hh9p9EnXT5Vh6t4C22QaUDh6HwnECOmcO7K+6kW49DKqS2DrEZCtfuI+9GrNHg4fMHVSO5kE7nAPVkAxKBxcOzsajpS4Yh4ohUPPWKTUh3PaQEptIOr6BiJjcZXCwktaAGfrRIpwblqOV3YKdhfXOIvBLeREWpnd8ynsaSJoyESFphwTtfjN6X1jRO2+FxWtCWksqBApeiFIR9K6fiTpPiigDoadqCEag5YUFKl6Yrciw0VOlhOivv/Ff8wtn0KzlebrUYwAAAABJRU5ErkJggg==") no-repeat scroll 0.8em center; padding-left:38px;}
html/*\*/>/*/*/body a[href$="sql="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHGSURBVHjaxFPNLkNREP5aB6WhaKLSVtKFiIUqK1sLT2DhTXgDL2FlxSOw8FOLRiyQWhDRiKSEhKQJou49P9fMnFsLsevCJCcz594z3/m+mTmJKIrQjSXRpXUNoGqbm39qcMbAkbyIvbVwYQhD3tIeWsOQ1+QVH86Xyz+JXJPIOb9iAI4ZpOMd/yN/vb/vAdiC93cP0El2dNA6z4RjYyW2MaPU0BB0u+0BOGGsVML49LSA3J+cYDCblb0l6jeHBwg/26isrOB0a8uzYBlBgKShgD8M53J4aTTQqFaRSCYl+WxnG83zcxTmKpKg+vtFu9W8NDQDMCXW+VivYyAzjKmlJahUSpiYUKPVbCKTz0sCGzOyOpBLzdcXlCMdDDIxO4vboyoyhQIKlYocLi0uIjczIyBcA98dYqx9NywxUEyDi/P29IyF1VU5dFeroS+dRnF+Xvajk5N0ayjx8tq6+FuSyiwUF4LRHi/reLg4o9ijs6xG9RjWGowUi/h4fcXexoa0L4oc0mNZuVgFzID09VKBnFXoUb7Pnb5zQrvVovpkZC4QzwfiN6QM1eBqdxcmnq6IAA395Mlz8eTxTZwg/pcl/v01fgswAESqYZbsIsnLAAAAAElFTkSuQmCC") no-repeat scroll left bottom; padding-left:22px;}
html/*\*/>/*/*/body a[href*="dump="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJrSURBVHjajFPPaxNREP72V8ymTbGQbRB/IT0otdV6CcWTgqCoUFQQEXoSEQ/+AypK755E1KsULIpGgw1F9KC22lgstFgQLdoWhSab2PRHTNrs7nvObGhSsRa/ZXjv7c6b+eabWUVKiX9AJQuRRci2k+260N91VwgJIQSEV1mVnjf5axTjvCfFFn7hCcBlBzJNVRA0gAZTQ1ODgXC4gDtjV9AW2QNFUTA0/Q66kPLSqVg4shYF8vEdKQ7mln+i+/VVRM0oFpbmETLq/SS6J4R/OfHtHmV24XouHFo94REDAyE9hMZgBMkvT2GZFqxQE6by0/g4P74SoKLB2ZZzWA8ffqRQLBcxNTuFjRTwxpmbfad7Oo/rHhdN6B20/6JvaKyBCnODhqNbL+PRxHXUGXWINV5kl9TDrkQct/pnZKHkyPsDGcl4MJiWq5Ecsf84LxTL8nbyK2+Pke3XHWJAQkLXgMdDNjRNRTxlQ6UmakRD0vN8NEd7EBsFO6Impu1fzGCCrOSXwCro5HEiZiExnEVnrKlaypNhG4fba02aTC8ik1/ibZrM9RlIkkGnjH0jWWJQWRn8TpLI8fcZ6MSA1WrZFERx2eHPTEPqjksBqASDLh7ZZ+HlWA6H9tYyvhjNomNnI8Km7p8/f5+HGdB46/lJeOoYPHV8mbGy8gA59HngU74asNkKYKVzlQCuW9GA6B5si+DVeA4HWmsM4qksTnZY1TMz0NRauysaUAmt2+oxM1tCM6k8mS74WXjIdm8O+JdWg36oKgXqgnzb3TvRXvZEneN6YPNIFw7MY70W5haXnlUHbp3f+b/wW4ABAAtWTLcKdqLcAAAAAElFTkSuQmCC") no-repeat scroll 2px bottom; padding-left:22px;}
html/*\*/>/*/*/body a[href$="dump="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHzSURBVHjajJPPS+NQEMcnaaxpdWsp6Q8vtWtdkIo9+B948SjIgruCUg8F/wGP/glePe5JcBehwl4qePGm0J6KQj30UBHEzaFLUromTfPizJMnrxhhB4bJvDfzme97SZQgCOB/be98J2AsAMYYMP81KjKg0WhMYljHtS30RSz4gjkGdot559F7OLt8vvi1bJRBURS4vr8CTTQ3m80SFv1MpVJlwzBA13XuNGUwGKyY1p+Vk9aPzWw8C7ZjQXximu+9ATA5KhQK5Uwmw+nCIpEIJBIJOLjah3Q8w7379x5urFsOUEUhTl/C6R+ef35mARzPhW6vC+q/iHvyvaYwXwIQje6j1+tBv98H13VhNBpxxyPA5tw2TI50MPQsrMbXbOo53fmtaJIC7iSZAMPhkOe+73MA5Ruz3yCfz9NlvykLBUSjUR41TQPP8zhE7JNSyj8E0CbJpkiXKRoIRFABeQcQd0DFwlVV5evUTFBZRSiATEwnp4lCAa0LI2AoQC4WimRl4qgyYOw12rYNyWSSX6L4mKiBnukDK5VKYJrmmBpZwW6r1TotFotTuVyOQwQgnU7zV9npdKDdbj+hgnXRN/Yz1ev1zwg6QP+KU2disRiXblkWOI7zhJOPce+wWq2aoQDZarXaJ2xYQGfod5VKxQ2rexFgAI4OiAKxKkWeAAAAAElFTkSuQmCC") no-repeat scroll 2px bottom; padding-left:22px;}
html/*\*/>/*/*/body select[name="db"] {background:white url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEYSURBVBgZBcHPio5hGAfg6/2+R980k6wmJgsJ5U/ZOAqbSc2GnXOwUg7BESgLUeIQ1GSjLFnMwsKGGg1qxJRmPM97/1zXFAAAAEADdlfZzr26miup2svnelq7d2aYgt3rebl585wN6+K3I1/9fJe7O/uIePP2SypJkiRJ0vMhr55FLCA3zgIAOK9uQ4MS361ZOSX+OrTvkgINSjS/HIvhjxNNFGgQsbSmabohKDNoUGLohsls6BaiQIMSs2FYmnXdUsygQYmumy3Nhi6igwalDEOJEjPKP7CA2aFNK8Bkyy3fdNCg7r9/fW3jgpVJbDmy5+PB2IYp4MXFelQ7izPrhkPHB+P5/PjhD5gCgCenx+VR/dODEwD+A3T7nqbxwf1HAAAAAElFTkSuQmCC") no-repeat scroll left bottom; padding-left:16px; background: #49526D;}
html/*\*/>/*/*/body select[name="db"] option {padding-left:18px;}
html/*\*/>/*/*/body #menu li a[href*="&select="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHISURBVDjLpVPNK0RRFP+9D98syMwUspHkm9I0YkFZWBFKkZ0s7a3Ewh+ilChK7FgoZCJFKYlYKB8zk2+Z5t0P577He29kQU7dd+6575zf+d1zztWklPiPmOozt/U4SThjXIoyIQS4AJjSXO0lGGlvcXAm6Vzsz4xUhm0AIeX4QLig+C+ZpxbOG1wGhGYHr1zMUmZGWRgs0ha3PE1nX/8mWmdgWTzLB+DUYbhm9FfZ35IEyrhXA3VXJfPbsV8B9LQUIeUHYJ8ASobag1jcucNgW8g9W4reYSDi2YnnZDoDiwCokDANct6NwTB0LEdj0HRA/wxa2SN25JNBEdWluUhZ366gqmAaGvrCAXKOozccTGPgt8+vn8GYSGcgyTYp3dpBnBg42nbQPRBTo5bTvqYkmxL6AQhNTWQGBXY3B7BxlEBXozcW64dxRKoKUZBju+P06gl5WaaviMJBM3TNDlbypemIZgHYOnlwASsCmW7nHADGnBoQ3c76YmweJ9BR5zFYjsbRHwm4tmJg6PhWA7pCXXk+bu7fURHKweXtq/sWaksz7SC/CCGFrwtyZ3r+rCnFRZ7qr1qc6mLZj4f9OEyPL8lVpbX/PucPv5QPKHB1TdEAAAAASUVORK5CYII=") no-repeat scroll left bottom; clear:left; display:block; float:left; height:16px; margin-right:8px; padding-top:1px; overflow:hidden; padding-left:16px; width:0; text-decoration:none;}
html/*\*/>/*/*/body #menu li a[href*="&table="], html/*\*/>/*/*/body #menu li a[href*="&view="] {clear:right; margin-left:24px; display:block; height:17px; padding-bottom:1px; text-decoration:none;}
html/*\*/>/*/*/body #menu p#tables br {display:none;}
html/*\*/>/*/*/body a[href*="&create="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJ6SURBVDjLpZNZSNRRGMV//2XGsjFrMg2z0so2K21xIFpepYUiAsGIICLffI8eWiBBeg3qQV+KwBYKLB8qpHUmrahcKLc0QsxldNSxdPz/79LD1ChBUXTh8sG93POdc75zDa01/7NsgGvPR09rzQmpVZZSCqlAKIWUCqk0QqoZWyKFRir1uvxIbsAGUFqXHQqkpP1L57M3Pm5MMJBKpQHUdF9BKIGQAlcJXOlOVykSdye3leO6MmkGQNyHw+uO/1X3bzGBK+S0B1IqAKqDg3986HeCZPffwvJtoNT7lOZLvUdtAPEDAKBkRzo3QwMUb89InN1uGGD3spdE214xe8MRUnM2MfppNW0Pqy7YAK5UKK2xLbhdP4hlmdxpGMQwwQT8ziNiI534c7cT6WrFazikzF2Eb8HS1IQEDdiWwcHAQmpehTkQSAcgNvSMiYFW5uUUMdV3HW+ywefGNqITJsbUUL75k4FWYJtQ+yaMZcXrk1ANk/33mbdiD7EvlRieETy+FJLkMFcjRRSW3emIAwiF1hqPBfu2LGSWbbA1uZ41SfWkrtxPrPcypsfFiWYzFGzGKTjFV28WEJeIUHETLdOgrmkI1VdHpCdEet5enP4qLK9mKrqMgedv6cyrAP+qxOTiUxAi7oEJi8frELoFoTLpa7nI/HQvscgSRt+0kV1SSW7qYtp7xrBMphm4Mi5h/VIfTcEq1u0oJaknSEdNiMYHET7UvcMpPEN31Ed7zxgASmk1I0g6dK66s8CRak5mVxjnfS05+TsZCw/T9baTx1nnGb47DrQksjE6HrsHYPz6nYt3+Sc3L8+wA2tz0J6pF5OD4WP7Kpq7f5fO79DfSxjdtCtDAAAAAElFTkSuQmCC") no-repeat scroll 2px bottom; padding-left:22px;}
html/*\*/>/*/*/body a[href$="&create="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIpSURBVDjLpZNPSFRRFMZ/749/Kt3IqFTSRoSMmrGIYTTbpEJtjBCCok1Em9JVG1dRC8FFEES5aGFEgRRZWq1iLKKxBiNqLDcltQgmHR9hY6LOu+feFm+YGVsZXbh8nHO53/nud8+xjDH8z3IB7r5avGgMZ8XoBq01okFpjYhGtEGJLtmCKINo/XbgVFPUBdDG9PVEq0P/UvnSvdlwQYFoHQIY/3obpRVKFL5W+OIXUVThrL91AN+XihKCwIeTu85sqPryqsJXUvRARAMwkshsiKB7fw25UgKVJwA40V7H/cl5jh+oL+RGk/P0xIqxl11dr8AXjTYG14HRNxkcx+ZhMoNlg52/ND6VAWMoc6F5+2Zy/l9PMIDrWByL1jI+tcDRaN06BaXxbDqLUnq9AqPBteHpuwUcJ0AIcgBXH93h+/wEyyuLrPk5cmv7gNY8gdIYYyhz4PDeWuIpj85IsS2ujQ2zJAk6DkZpqGnixcwYyU+PifUOX7Eh6DoAx7aIpzwA4imPeMrj+bTH+88PaNkZQWwhsrULsXxie9oAzgcESgUe2NAZCeE6AXZGQhwKh/Cyc5RZVXQ39wFwoeMmjXVhgMqiB8awe0cVP36u0Fi/iW9zvwuzkF3+xUz6Nal0gv6uWww+O02lUwGwmv8FM3l55EtLTvQWXwm+EkRpfNEoUZRXHCE5PUFbuJ0nH4cot1wSH14C3LA2Os6x3m2DwDmgGlgChpLX0/1/AIu8MA7WsWBMAAAAAElFTkSuQmCC") no-repeat scroll left bottom; padding-left:22px;}
html/*\*/>/*/*/body #content p a {padding-left:2px;}
html/*\*/>/*/*/body #content p a[href*="&create="] {padding-left:22px;}
html/*\*/>/*/*/body #content p a[href*="&select="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHISURBVDjLpVPNK0RRFP+9D98syMwUspHkm9I0YkFZWBFKkZ0s7a3Ewh+ilChK7FgoZCJFKYlYKB8zk2+Z5t0P577He29kQU7dd+6575zf+d1zztWklPiPmOozt/U4SThjXIoyIQS4AJjSXO0lGGlvcXAm6Vzsz4xUhm0AIeX4QLig+C+ZpxbOG1wGhGYHr1zMUmZGWRgs0ha3PE1nX/8mWmdgWTzLB+DUYbhm9FfZ35IEyrhXA3VXJfPbsV8B9LQUIeUHYJ8ASobag1jcucNgW8g9W4reYSDi2YnnZDoDiwCokDANct6NwTB0LEdj0HRA/wxa2SN25JNBEdWluUhZ366gqmAaGvrCAXKOozccTGPgt8+vn8GYSGcgyTYp3dpBnBg42nbQPRBTo5bTvqYkmxL6AQhNTWQGBXY3B7BxlEBXozcW64dxRKoKUZBju+P06gl5WaaviMJBM3TNDlbypemIZgHYOnlwASsCmW7nHADGnBoQ3c76YmweJ9BR5zFYjsbRHwm4tmJg6PhWA7pCXXk+bu7fURHKweXtq/sWaksz7SC/CCGFrwtyZ3r+rCnFRZ7qr1qc6mLZj4f9OEyPL8lVpbX/PucPv5QPKHB1TdEAAAAASUVORK5CYII=") no-repeat scroll 2px bottom; padding-left:22px;}
html/*\*/>/*/*/body #content p a[href*="&page="] {background-image:none; padding-left:0;}
html/*\*/>/*/*/body #content p a[href$="?database="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIkSURBVDjLpVNNiFJRFP7eU1E0KSLTMpAwYSxyaidDtChm0WYQ3NSutv2s2kwwm2igNgMtooUQEQhhA9GqhSDTQsZZFDbNDBgVg5bSw9J8rzFF33udc+HGg0ladOHj3nPe+b7zc99VbNvG/yy30yiVSl4SnCNcsixrivYEgY7WJu0faX9EKGUyGVNyFFkBkY/T+WkoFEpFIhEEAgH4/X7w916vB8Mw0Gg00G63y+S7mM1mm4LIAYxisbhSr9c5nT1pjUYju1qt2oVC4YnkqbIUMk6Ew+F/9hyNRkFJLuyaATmFoqZp8Pl88Hq98Hg8wtfv99HpdNBsNhGPx0XsRAG3241ut4vBYCDs8XgMXdcxHA7FN/b9VUD25HK5RAUczKC+hYgcNpNN05xcAQdLkqIoIlj6VFWdXIEUkAQGV8M2k2vaG3z6sYGfVR39XzsHlm/dX3h5d31xlwAHM5goBd5+LuO75z3OnU3jyP4EVrZeKGub2p309cP7VKcAQ2Znoiz3deMVTk1Nw1RNTB+ahamMkD45w7RrfwSYwFdFf6K4Quf6pmvwKHswl7wh7Jvnc4gfTPHR52zhcqVSeZZMJgOxWEyI8BC5CmOnh63WKtZbZczPPsa94hX4XCLJQHG+xnw+f5SEFghZmvhefgvcTqn2HN3gBmZSZ5CInMaHr1Wsvivjy3ZvSZn0nHO5XJDIxwgWDbW2vL10m9xXCUGCQXi49qA1/xvyq6BCh7yZeQAAAABJRU5ErkJggg==") no-repeat scroll 2px bottom; padding-left:22px;}
html/*\*/>/*/*/body #content p a[href*="&edit="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJvSURBVDjLpZPrS5NhGIf9W7YvBYOkhlkoqCklWChv2WyKik7blnNris72bi6dus0DLZ0TDxW1odtopDs4D8MDZuLU0kXq61CijSIIasOvv94VTUfLiB74fXngup7nvrnvJABJ/5PfLnTTdcwOj4RsdYmo5glBWP6iOtzwvIKSWstI0Wgx80SBblpKtE9KQs/We7EaWoT/8wbWP61gMmCH0lMDvokT4j25TiQU/ITFkek9Ow6+7WH2gwsmahCPdwyw75uw9HEO2gUZSkfyI9zBPCJOoJ2SMmg46N61YO/rNoa39Xi41oFuXysMfh36/Fp0b7bAfWAH6RGi0HglWNCbzYgJaFjRv6zGuy+b9It96N3SQvNKiV9HvSaDfFEIxXItnPs23BzJQd6DDEVM0OKsoVwBG/1VMzpXVWhbkUM2K4oJBDYuGmbKIJ0qxsAbHfRLzbjcnUbFBIpx/qH3vQv9b3U03IQ/HfFkERTzfFj8w8jSpR7GBE123uFEYAzaDRIqX/2JAtJbDat/COkd7CNBva2cMvq0MGxp0PRSCPF8BXjWG3FgNHc9XPT71Ojy3sMFdfJRCeKxEsVtKwFHwALZfCUk3tIfNR8XiJwc1LmL4dg141JPKtj3WUdNFJqLGFVPC4OkR4BxajTWsChY64wmCnMxsWPCHcutKBxMVp5mxA1S+aMComToaqTRUQknLTH62kHOVEE+VQnjahscNCy0cMBWsSI0TCQcZc5ALkEYckL5A5noWSBhfm2AecMAjbcRWV0pUTh0HE64TNf0mczcnnQyu/MilaFJCae1nw2fbz1DnVOxyGTlKeZft/Ff8x1BRssfACjTwQAAAABJRU5ErkJggg==") no-repeat scroll 2px bottom; padding-left:22px;}
html/*\*/>/*/*/body #content p a[href*="&table="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJcSURBVDjLpZPtT5JhFMafrW997I9rscA+FFu2QRurtlw5cQ4InLpwBogIPNFSiNJ4C+JVkj0QTBHQKFPQlJfwlanY1tXz3ARkn2jd27Wz++yc33XOvd0UAOp/RNGR/X5zeH9rOlTDVKAK3fsqJrxlqN27GHPuYHh+G4rXRQzZNjEws47Hli/oo/PxNsAU3qvWT3/gX3TPuHrWBhiC30nSktXDtKLB1NI4NKkxqBMqjDByPFkcxNBCPwbCfXgUeEBq705m0AZM+qsk2e3hau88W+4ANOy+XPLFQrkrcbW31KkOYJx9rBaAOzPR0gVHW6x593q9cDgcqB6e4sZoogMYdXzD0ck5ZhfLsHGKVfAqVoadKcMdzcLr82PuwwZCoRACgQCWVzdhoK2gaVpDAMNzWzhkAXamQpze/I4t13w+j2AwiFwuh7W1NXg8HmQyGSgUCshkssuU3F7AQf0c84kK3n68KFc4hXQ6DavVCqlUCqVSSdaIx+NQq9UGMsHg7Ab2jxtwp5rOvqUqia3CUqnEObWn0mp1KBaLcLlckMvloPpfrhOAl230/SGLxQK3241CoQC9Xg9nskKk1emQzWZZkBZCoRBU3/NP2GMBgXTTObjSjI1GA8lkEgzDwO/3E4iObXY6nYhEIhCJRHoWcIW6b1pF7egMlYNT7NROUKzU8XX3GJ+3D2E0GgmAm4Zbh2s0mUyIRqMcAGKx+BIlMeSiYu1K/fbEMm4+TaFnJIHrSgZX5TFIZNPo7e1Fj9QOs9kMlUqFaw9pCASCnzwe7x15xG6/rUQiAZ/Px9/5XyhZOMVGKlOdAAAAAElFTkSuQmCC") no-repeat scroll 2px bottom; padding-left:22px;}
html/*\*/>/*/*/body #content a[href*="&database="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKRSURBVDjLhVNLTBNRFD3TTju1FCcBaxuaQEr94ydiZIHGpcFISBOi0YREZWHCVoyRxKUxxq0LXcACQyLsjO6KjSEiDfHDz0S0CLSxlFKd2g7MTDudGd+bMAQCxJucuXfuu+fcO/PeYwzDALVoNMqRuI3guq7rR4g/SEBC/Svxc8T3EUTD4bCGTcZQAUI+RvxLr9d70u/3o6KiAm63G3Qtn89DFEUkk0lks9lRkrvW3t6e2lCgRZFI5F0ikaDtjN1MVVVjYmLCGBoa6qccC7Z1kQafz4f/WSAQAGlyaXOOpQ+SNNUymQxcLhc4joPD4TBzkiRBEASkUimEQiGzdlcBlmWRy+WgKIr5Xi6XUSgUUCwWzTVN+IAzeOOde71orP0eAaOkbrDWf6Cw2+3mBLSYgny3KULXPOUY2BUB/hMd4IOn8XfhMGYjvU+2TECLLRLDMNA0zYw5JYa6Ghke/hyEn9/gZEqo3OuHp7qW3yJgESjoNPSdlb8gWCOCr29BMT0Ip5tBYnIWqlL6o8irzVsEaHcKSqQCen4cweok+FAblNRz2JxlODx1cEkzGWmVbTl7Z/jHhgCF1Z3GYjIKf+U8+ANhQn4Gm6OMUiGI9MhHg5Gl1sbu8UnKNc8B7Ui3ipxEcwvlpVFw6hz2N1xGabkXdqeBYqEOmfefEZWac4e6xz9Z22hbn+BmLBZbi8fjEBdG4NF/QdUDSM88hQ4FawKJR6cxLDZl86qzZdtdoDYwMBAkQg/2LL/ovNLVh++Dd7G0OAau9hTkrKgnnE39GW3f/Z6enpUdBSx7ePu4eq+zi4VNw+TbV0gsxFd5b9X5i4+mpnY63tsErl6okhvrfWzT0SAMR3FMXsnean08Pb/b/fgHqpjCspi90kkAAAAASUVORK5CYII=") no-repeat scroll 2px bottom; padding-left:22px;}
html/*\*/>/*/*/body #content p a[href*="&schema="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFOSURBVDjLtVK7SgNRED0b9iuM2lr4QK1DQIyk0FZsJAj+gH+ilRZb2NjaRHTLmA9QFKz9huzm7t37Hu+u7IJgQjR6YLjDzOXMmcMERIR5EE5qXA4z4sqACYWEC5wfLQXf/WtMIuDSoL0A7DZDjBj/uYI0l8jzEEJYJMkvCEZM4PqZIxlzpGk+kSCY18TGtGYcx9Tv96dOqBUMBgNyzsFaC621312Ac+59yJFlGRhj5VvVoigKvniglEK32w1mkd3r9ejPPAjOhqdknYX18p1/rzo3pYqTh0OSRkJI5UMgPn4s61sX66SkhtEGcISGsQad5gH2FvehfV5BaIF2cwet5RZyKeu68pe5ubKG7dUNP5AQGltMN57Mosgr5EIiVQmYGvtc1PVicqHY+dXpk8Dg7v22XKFo1ARe9v1bDOlXKKKCs4Sn1xdU1v3vIc2CD3bN4xJjfJWvAAAAAElFTkSuQmCC") no-repeat scroll 2px bottom; padding-left:22px;}
html/*\*/>/*/*/body #content p a[href*="&sql="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJ5SURBVHjapFNLaxNRFP4mnZmQZtKYpJ2I8ZE0NSbSWKpgBYNUhIJQUDddCaILwb34C0RcCi60vpa14sZFoSjxUWxTFEubFkxf9kFS+7Jp0yQmM5mH905SF9pSwQt3vnPnnvPNd86cA13Xsds+23XKsdMdQx//s0z/6hi54he3e8/0d3ZuK0FTFGhUJkVVhSbLUAiq5IxSCQrBEkGWOu8Lh38HGrlpWnlXCKhNSbZQo3cEE9FomYAuKZstE2wFa8RR1cpKqK2o4JhxmLVJVAlh5Df6IFj5MgENcHq9EAMBg2RucBDVLpdxVon0iXdvIf8sQHRIsNReht3XjI3ZI8iuPAOrkDyorBq3G6vT08ikUuAsFiN46HkXXL56eI41QV1/BMF+GulvCfCMDFvNXtSIHrC0KDTPhXgc7lAQdQ2thk2XIpewnkzCJvTA4T8PabEbfDWD+ZFxyEUdX94sw6QVCkZlxWAQU+8/YGZgALV+v0HgbWmBNzQMR0M7it8fg+HWwQk2cLkkcvJh5NNFsCVJMgq1ubiE5o4OI5CS8FYrya8b9saLKC48gIlTIG/6sBaLw3PpHrTEMrSXr4kPIaAKFkbjSA0PEVuFlB+DO8Ah2HoB8tITVPE6iplDWOn7jLn0CSQevoDV6TI+zEpUASkkZzaTYrLIrH3C/qMCFEbE4th9OEQexfQBrPYP44d+DuY91eBp+1dGgFVIDb729kKpdJfQtIy2yFNMdN/E5McYzAebUEhOYjZuQXaj5+9W/nOYbl9vLN26doOFScVI9BXmZ6dy9jpnpO1O5dfsRtBxxlk4Xu9mT4Z80DkpVlhZvdp+d3RmpyH7JcAAnHiAVYWMsdkAAAAASUVORK5CYII=") no-repeat scroll 2px bottom; padding-left:24px;}
html/*\*/>/*/*/body table tbody input[name*="check"] {display:block; float:left;}
html/*\*/>/*/*/body table a[href*="&edit="][href*="&where"] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFUSURBVDjLrZM/SAJxGIZdWwuDlnCplkAEm1zkaIiGFFpyMIwGK5KGoK2lphDKkMDg3LLUSIJsSKhIi+684CokOtTiMizCGuzEU5K3vOEgKvtBDe/2Pc8H3x8NAM1fQlx4H9M3pcOWp6TXWmM8A7j0629v1nraiAVC0IrrwATKIgs5xyG5QiE+Z4iQdoeU2oAsnqCSO1NSTu+D9VhqRLD8nIB8F0Q2MgmJDyipCzjvYJkIfpN2UBLG8MpP4dxvQ3ZzGuyyBQ2H+AnOOCBd9aL6soh81A5hyYSGWyCFvxUcerqI4S+CvYVOFPMHxLAq8I3qdHVY5LbBhJzEsCrwutpRFBlUHy6wO2tEYtWAzLELPN2P03kjfj3luqDycV2F8AgefWbEnVqEHa2IznSD6BdsVDNStB0lfh0FPoQjdx8RrAqGzC0YprSgxzsUMOY2bf37N/6Ud1Vc9yYcH50CAAAAAElFTkSuQmCC") no-repeat scroll right bottom; padding-right:18px;}
html/*\*/>/*/*/body table input + a[href*="&edit="][href*="&where"] {width:0; float:left; display:block; height:16px; overflow:hidden; text-decoration:none; padding:0 0 0 18px; background-position:2px bottom; margin-left:5px;}
html/*\*/>/*/*/body table tbody td:first-child {white-space:normal;}
html/*\*/>/*/*/body table thead input {margin-right: 5px;}
html/*\*/>/*/*/body input[name="delete"], html/*\*/>/*/*/body input[name="drop"] {background:transparent url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHSSURBVHjapFM5bsJQEB2zSIDFJrHYpEtyAyoKJAp6CrqIkBPkNDlBAKXjBEgUpKOBCyQNijFiEZvZl8z7wsjESYpkpNFfPO/Nmz9j6Xg80n/M9fWi3W7fMOnd4XAo8qogAbvO5xKvL6lU6s0aL1kVMDjP5ye/36+Gw2FyOp3EQFqtVtTr9WixWHT5/JhOp6s2ghP4ORaLyaFQiGazGa3Xa0HgdrvJ6/WSpmk0Go0MjnvIZDLVM0Gr1brm/WskEkkA3O/3abvdQjq5XC6xgoiVka7rNB6PNT6ns9nsu+OkpODxeBLBYJAGgwHt9/uzQ8Vms6Hdbie+KYqC+ASTFrARBMx2HwgEaDKZiHqn0yktl0uxtzrMMAyKx+MCc+4Cs13hwQCC1GQy+W3Lms2mUIUygbEqEBLNun8z8zswVgUfLO0WD4Z6kekn8/l8okNM8GFVUMYDoVWQ6HA4bEAzoyzL1O12kbRsJajwhYZhiUajJEnShWSAQaqqKnU6HahEGysXg9RoNPJ8+cwZZLSKp47m8/k5Kxzg4XBocNxDLper2ka5Xq+LUeatilahJLN1mEJ+ZDHKJthGAKvVauJnYi9ysHIqQee1xOsLg3/+mf5inwIMAJMhb74NwG5wAAAAAElFTkSuQmCC") no-repeat scroll left center; padding:1px 5px 1px 18px; border:0; cursor:pointer; font-size:.9em;}
html/*\*/>/*/*/body input[name="delete"]:hover, html/*\*/>/*/*/body input[name="drop"]:hover {color:red; background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJdSURBVDjLpZP7S1NhGMf9W7YfogSJboSEUVCY8zJ31trcps6zTI9bLGJpjp1hmkGNxVz4Q6ildtXKXzJNbJRaRmrXoeWx8tJOTWptnrNryre5YCYuI3rh+8vL+/m8PA/PkwIg5X+y5mJWrxfOUBXm91QZM6UluUmthntHqplxUml2lciF6wrmdHriI0Wx3xw2hAediLwZRWRkCPzdDswaSvGqkGCfq8VEUsEyPF1O8Qu3O7A09RbRvjuIttsRbT6HHzebsDjcB4/JgFFlNv9MnkmsEszodIIY7Oaut2OJcSF68Qx8dgv8tmqEL1gQaaARtp5A+N4NzB0lMXxon/uxbI8gIYjB9HytGYuusfiPIQcN71kjgnW6VeFOkgh3XcHLvAwMSDPohOADdYQJdF1FtLMZPmslvhZJk2ahkgRvq4HHUoWHRDqTEDDl2mDkfheiDgt8pw340/EocuClCuFvboQzb0cwIZgki4KhzlaE6w0InipbVzBfqoK/qRH94i0rgokSFeO11iBkp8EdV8cfJo0yD75aE2ZNRvSJ0lZKcBXLaUYmQrCzDT6tDN5SyRqYlWeDLZAg0H4JQ+Jt6M3atNLE10VSwQsN4Z6r0CBwqzXesHmV+BeoyAUri8EyMfi2FowXS5dhd7doo2DVII0V5BAjigP89GEVAtda8b2ehodU4rNaAW+dGfzlFkyo89GTlcrHYCLpKD+V7yeeHNzLjkp24Uu1Ed6G8/F8qjqGRzlbl2H2dzjpMg1KdwsHxOlmJ7GTeZC/nesXbeZ6c9OYnuxUc3fmBuFft/Ff8xMd0s65SXIb/gAAAABJRU5ErkJggg==")}
.logout {font-size: 8pt !important;}
#logout{ height:17px; border: none; background: transparent url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJHSURBVDjLlZPNi81hFMc/z7137p1mTCFvNZfGSzLIWNjZKRvFRoqNhRCSYm8xS3+AxRRZ2JAFJWJHSQqTQkbEzYwIM+6Yid/znJfH4prLXShOnb6r8/nWOd8Tcs78bz0/f+KMu50y05nK/wy+uHDylbutqS5extvGcxaWqtoGDA8PZ3dnrs2srQc2Zko41UXLmLdyDW5OfvsUkUgbYGbU63UAQggdmvMzFmzZCgTi7CQmkZwdEaX0JwDgTnGbTCaE0G4zw80omhPI92lcEtkNkdgJCCHwJX7mZvNaB0A14SaYJlwTrpHsTkoFlV1nt2c3x5YYo1/vM9A/gKpxdfwyu/v3teCayKq4JEwT5EB2R6WgYmrs2bYbcUNNUVfEhIfFYy69uci+1fuRX84mkawFSxd/4nVWUopUVIykwlQxRTJBTIDA4Pp1jBZPuNW4wUAPmCqWIn29X1k4f5Ku8g9mpKCkakRLVEs1auVuauVuyqHMo8ejNCe+sWPVTkQKXCMmkeZUmUZjETF1tc6ooly+fgUVw9So1/tRN6YnZji46QghBFKKuAouERNhMlbAHZFE6e7pB+He8MMw+GGI4xtOMf1+lsl3TQ4NHf19BSlaO1DB9BfMHdX0O0iqSgiBbJkjm491hClJbA1LxCURgpPzXwAHhg63necAIi3XngXLcRU0fof8ETMljIyM5LGxMcbHxzvy/6fuXdWgt6+PWncv1e4euqo1ZmabvHs5+jn8yzufO7hiiZmuNpNBM13rbvVSpbrXJE7/BMkHtU9jFIC/AAAAAElFTkSuQmCC") no-repeat center left; overflow: hidden; text-indent: 18px; line-height: 0px; cursor:pointer; margin-left:6px; color: #21759B; text-decoration: underline;}
#logout:hover {text-decoration: none; color: #D54E21;}
#logins a, #tables a {background: none repeat scroll 0 0 transparent;}
/*body {margin: 0; line-height: 1.25em; font-size: 13px; background: #F9F9F9;}*/
body {margin: 0; line-height: 1.25em; font-size: 13px; background: #110236; color: #fff;}
body, select, option, optgroup, button {font-family: "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif;} /* IE6 */
input[type='submit'], input[type='reset'], input[type='button'], input[type='file'] {font-family: "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif;}
input, textarea, pre, code, samp, kbd, var {font-family: "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; font-size: 12px;}
/*a {color: #21759B;}
a:visited {color: #21759B;}
a:hover {text-decoration: none; color: #D54E21;}*/
a {color: #F1E5B3;}
a:visited {color: #F1E5B3;}
a:hover {text-decoration: none; color: #D68D20;}
form {margin: 0;}
table {margin: 10px 12px 12px 0; border: 1px #BBB solid; font-size: 90%;}
th {text-align: left;}
/*td, th {background-color: #fff; padding: 4px 6px; border: 1px #DfDfDf solid; border-width: 1px 0 0 1px;}*/
td, th {background-color: #1D294D; padding: 4px 6px; border: 1px #DfDfDf solid; border-width: 1px 0 0 1px;}
tr:first-child td, tr:first-child th {border-top-width: 0;}
tr:first-child th {padding-right: 30px;}
td:first-child, th:first-child {border-left-width: 0;}
/*thead td, thead th {background-color: #DFDFDF; border: none; border-bottom: 1px #BBB solid;}*/
thead td, thead th {background-color: #110236; border: none; border-bottom: 1px #BBB solid;}
thead tr:hover td, thead tr:hover th {background-color: #110236 !important;}
/*tr:nth-child(2n) td, tr:nth-child(2n) th, .odd td, .odd th, tr.odd {background-color: #F1F1F1;}*/
tr:nth-child(2n) td, tr:nth-child(2n) th, .odd td, .odd th, tr.odd {background-color: #49526D;}
/*tr:hover td, tr:hover th {background-color: #BCD;}*/
tr:hover td, tr:hover th {background-color: red; /* #3D4E80;*/}
/*fieldset {display: inline; vertical-align: top; padding: 2px 12px; margin: 25px 12px 12px 0; border: none; background-color: #F1F1F1; border: 1px solid #E3E3E3; position: relative; padding-top: 14px;}*/
fieldset {display: inline; vertical-align: top; padding: 2px 12px; margin: 25px 12px 12px 0; border: none; background-color: #1D294D; border: 1px solid #E3E3E3; position: relative; padding-top: 14px;}
fieldset, x:-moz-any-link {padding-top: 4px;}
fieldset {%padding-top: 14px;}
legend {font-weight: 900; color: #fff; position: absolute; top: -1.666em; left: -1em; padding: 0 4px;}
input[name='limit'], input[name*='length'] {width: 3em; xtext-align: right;}
input[name='text_length'] {width: 5em;}
select + input, select + select {margin-left: 2px;}
/*textarea, input, select {border-width: 1px; border-style: solid; -moz-border-radius: 4px; -khtml-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; border-color: #DFDFDF;}*/
textarea, input, select {border-width: 1px; border-style: solid; -moz-border-radius: 4px; -khtml-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; border-color: #5C5C5C; background-color: #49526D; color: #ccc}
input[type="checkbox"], input[type="radio"], input[type="image"] {border: 0 none;}
/*input[type=button], input[type=submit] {border-color: #bbb; color: #464646;}*/
input[type=button], input[type=submit] {border-color: #999; color: #fff;}
/*input[type=button]:hover, input[type=submit]:hover {color: #fff; border-color: #666;}*/
input[type=button]:hover, input[type=submit]:hover {color: #fff; border-color: #fff; background-color:#49526D;}
input[type=button], input[type=submit] {text-decoration: none; font-size: 11px !important; line-height: 14px; padding: 2px 8px; cursor: pointer; border-width: 1px; border-style: solid; -moz-border-radius: 11px; -khtml-border-radius: 11px; -webkit-border-radius: 11px; border-radius: 11px; -moz-box-sizing: content-box; -webkit-box-sizing: content-box; -khtml-box-sizing: content-box; box-sizing: content-box;background-color:#49526D;}
input + label input, select + label input {margin-left: 4px;}
td input[type='checkbox']:first-child, td input[type='radio']:first-child {margin-left: 2px;}
label:hover {text-decoration: underline;}
fieldset div {margin-bottom: 2px;}
input[name='Comment'] { /* !!! */ width: 24em;}
input[name='Auto_increment'] { /* !!! */width: 6em;}
img {vertical-align: middle; margin: 0; padding: 0;}
.error {padding: 8px; color: red; background-color: #FEE;}
/*.message {padding: 8px; background-color: #DDD;}*/
.message {padding: 8px; background-color: #49526D;}
.char {color: #070;}
.date {color: #707;}
.enum {color: #077;}
.binary {color: red;}
/*.jush-sql {padding: 2px 4px; margin-right: 4px; outline: 1px #BBB dashed; font-size: 9pt;}*/
.jush-sql {padding: 2px 4px; margin-right: 4px; font-size: 9pt;background-color:#49526D;}
.jush a {
color: #B4D5FF !important;
}
.jush, .jush-bac {
color: #fff;
}
#content {margin: 2px 0 0 300px; padding: 10px 20px 20px 0;}
#lang {height: 23px; width: 250px; display: block; padding: 1px 10px; position: absolute; top: 0; left: 0; text-align: center; background-color: #f1f1f1; border: 1px solid #E3E3E3; line-height: 1.25em;}
#lang select {font-size: 8pt;}
/*#breadcrumb {margin: 0; height: 21px; display: block; position: absolute; top: 0; left: 300px; background-color: #f1f1f1; border: 1px solid #E3E3E3; padding: 2px 12px; line-height: 1.25em }
#menu {position: absolute; padding: 10px; margin: 0; top: 28px; left: 0; width: 250px; background-color: #f1f1f1; border: 1px solid #E3E3E3;}*/
#breadcrumb {margin: 0; height: 21px; display: block; position: absolute; top: 0; left: 300px; background-color: #000; border: 1px solid #E3E3E3; padding: 2px 12px; line-height: 1.25em; color:#ccc; }
#breadcrumb a {
color:red;
}
#menu {position: absolute; padding: 10px; margin: 0; top: 28px; left: 0; width: 250px; background-color: #110236; border: 1px solid #E3E3E3;}
#menu form {margin: 0;}
#menu p {padding-left: 8px; font-size: 10pt; border-bottom: none;}
#menu form p {padding-left: 0; text-align: left;}
h1 .h1:hover {text-decoration: underline;}
/*h1, h2 {font: italic normal normal 24px/29px Georgia, "Times New Roman", "Bitstream Charter", Times, serif; margin: 0; padding: 14px 15px 3px 10px; line-height: 35px; text-shadow: rgba(255,255,255,1) 0 1px 0px; background: none;}*/
h1, h2 {font: italic normal normal 24px/29px Georgia, "Times New Roman", "Bitstream Charter", Times, serif; margin: 0; padding: 14px 15px 3px 10px; line-height: 35px; /*text-shadow: rgba(185,185,185,1) 0 1px 0px;*/ background: none;color:#A3A3A3}
h1 {font-size: 12px;}
h1 .h1 {font-size: 12px;}
h2 {padding: 22px 0 0 10px;}
h3 {margin: 40px 0 0; font-weight: 400; font-size: 130%;}
#schema {margin: 1.5em 0 0 220px; position: relative;}
/*#schema .table {border: 1px solid #E3E3E3; background-color: #F1F1F1; padding: 0 2px; cursor: move; position: absolute;}*/
#schema .table {border: 1px solid #E3E3E3; background-color: #110236; padding: 0 2px; cursor: move; position: absolute;}
#schema .references {position: absolute;}
.js .hidden {display: inline;}
.js td.hidden, .js input.hidden {display: none;}
legend a {color: #F1E5B3; text-decoration: none; cursor: default;}
legend a:hover {color: #333;}
code {background: transparent;}
fieldset, legend, h2, table, .error, .message {-moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px;border-radius: 5px;}
#breadcrumb, #lang, #menu {-moz-border-radius-bottomright: 5px; -khtml-border-bottom-right-radius: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px;}
#breadcrumb {-moz-border-radius-bottomleft: 5px; -khtml-border-bottom-left-radius: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px;}
#menu {-moz-border-radius-topright: 5px; -khtml-border-top-right-radius: 5px; -webkit-border-top-right-radius: 5px; border-bottom-top-radius: 5px;}
#loader {margin-left: 35px;}
/*custom*/
.js .checked td,.js .checked th, .js .checkable .checked td, .js .checkable .checked th{
background:#5A3901;
}
tbody tr:hover td,tbody tr:hover th{
background:#333333;
}
.js .column {
background: none repeat scroll 0 0 #110236;
margin-top: -0.3em;
padding: 0.3em 1ex 0.3em 0;
position: absolute;
}
.js:hover .column:hover {
background: none repeat scroll 0 0 #110236;
}
#content pre {background-color:#49526D}
#lang{background:#110236;}
.pages {background:#43486F;}
.pages {background:#999671;}
.pages {background:#817F5A;}
#logins a:hover, #tables a[title]:hover, #tables a.active, #tables a.select:hover + a, #tables a.select.active + a {
color: red;
}
.footer, .footer>div {
background-color: #49526D;
opacity: .9;
}
.footer {
border-image: none;
padding: 30px 12px 0px;
border: 1px #BBB solid;
margin: 12px -20px 12px -1px;
margin-right: none;
}

View File

@@ -1,14 +1,14 @@
/* /*
VERSION: adminer-theme-mancave2-2.1.alpha VERSION: adminer-theme-mancave2-2.1.alpha
AUTHORS: panreach@gmail.com, dev@monolithforge.com //NOTE: CREDITS below that we stole from ;-) AUTHORS: panreach@gmail.com, dev@monolithforge.com //NOTE: CREDITS below that we stole from ;-)
LICENSE: www.adminer.org LICENSE: www.adminer.org
NOTES: NOTES:
This (mancave-2.0-alpha) theme still needs some debugging! ;/ This (mancave-2.0-alpha) theme still needs some debugging! ;/
*/ */
@@ -240,17 +240,13 @@ h1{
padding: 0 18px; padding: 0 18px;
border-bottom: 1px solid #444; border-bottom: 1px solid #444;
font-weight: bold; font-weight: bold;
height: 70px;
line-height: 70px;
color: #555; color: #555;
background: none; background: none;
position: relative;
top: 12px;
} }
h2{ h2{
font-size: 24px; font-size: 24px;
margin: 0; margin: 0;
padding: 0; padding: 0;
padding-left: 50px; padding-left: 50px;
border-bottom: 1px solid #333; border-bottom: 1px solid #333;
@@ -261,7 +257,7 @@ h2{
line-height: 77px; line-height: 77px;
} }
h1, h2 {font: italic normal normal 24px/29px Georgia, "Times New Roman", "Bitstream Charter", Times, serif; margin: 0; padding: 32px 15px 3px 10px; line-height: 35px; /*text-shadow: rgba(185,185,185,1) 0 1px 0px;*/ background: none;color:#A3A3A3} h1, h2 {font: italic normal normal 24px/29px Georgia, "Times New Roman", "Bitstream Charter", Times, serif; margin: 0; padding: 40px 15px 3px 10px; line-height: 35px; /*text-shadow: rgba(185,185,185,1) 0 1px 0px;*/ background: none;color:#A3A3A3}
h3{ h3{
font-weight: bold; font-weight: bold;
@@ -362,7 +358,6 @@ th{
position: relative; position: relative;
background: #110236; background: #110236;
font-weight: normal; font-weight: normal;
width: 17%;
border-left: 5px solid #777; border-left: 5px solid #777;
border-bottom: 1px solid #777; border-bottom: 1px solid #777;
color: #eee; color: #eee;
@@ -456,13 +451,13 @@ textarea
} }
textarea, input, select { textarea, input, select {
border-width: 1px; border-width: 1px;
-moz-border-radius: 4px; -moz-border-radius: 4px;
-khtml-border-radius: 4px; -khtml-border-radius: 4px;
-webkit-border-radius: 4px; -webkit-border-radius: 4px;
border-radius: 4px; border-radius: 4px;
border-color: #5C5C5C; border-color: #5C5C5C;
background-color: #49526D; background-color: #49526D;
color: #ccc; color: #ccc;
} }
@@ -547,7 +542,7 @@ input[type='radio']{
height: 18px; height: 18px;
vertical-align: middle; vertical-align: middle;
margin-left: 8px; margin-left: 8px;
margin-right: 0; margin-right: 0;
} }
/* checkbox */ /* checkbox */
@@ -634,7 +629,7 @@ label input {
/* submit */ /* submit */
input[type='submit']{ input[type='submit']{
color: #999; color: #999;
background-color: #110236; background-color: #110236;
padding: 0 25px; padding: 0 25px;
margin-right: 20px; margin-right: 20px;
@@ -761,9 +756,8 @@ legend{
} }
/* db select */ /* db select */
#dbs select{ #dbs {
width: 228px; padding-left: 18px !important;
margin-left: 8px;
} }
/* links */ /* links */
@@ -869,17 +863,17 @@ legend{
} }
#breadcrumb { #breadcrumb {
margin: 0; margin: 0;
height: 21px; height: 21px;
display: block; display: block;
position: absolute; position: absolute;
top: 0; top: 0;
left: 300px; left: 300px;
background-color: #000; background-color: #000;
border: 1px dashed #ccc; border: 1px dashed #ccc;
border-top:0; border-top:0;
padding: 2px 12px 24px 12px; padding: 2px 12px 24px 12px;
line-height: 1.5em; line-height: 1.5em;
color:#800000; color:#800000;
z-index:5000; z-index:5000;
} }
@@ -1079,14 +1073,14 @@ body > form{
top: 0; top: 0;
left: 0; left: 0;
margin: 0; margin: 0;
height: 21px; height: 21px;
display: block; display: block;
background-color: #110236; background-color: #110236;
border: 1px dashed #ccc; border: 1px dashed #ccc;
border-top:0; border-top:0;
padding: 2px 12px 36px 12px; padding: 2px 12px 36px 12px;
line-height: 1.5em; line-height: 1.5em;
color:#ccc; color:#ccc;
z-index:5000; z-index:5000;
} }
@@ -1096,14 +1090,14 @@ body > form{
position: absolute; position: absolute;
top: 0; top: 0;
right: 140px; right: 140px;
margin: 0; margin: 0;
height: 21px; height: 21px;
display: block; display: block;
background-color: #110236; background-color: #110236;
border: 1px dashed #ccc; border: 1px dashed #ccc;
border-top:0; border-top:0;
padding: 2px 12px 36px 12px; padding: 2px 12px 36px 12px;
line-height: 1.5em; line-height: 1.5em;
color:#ccc; color:#ccc;
z-index:5000; z-index:5000;
@@ -1179,7 +1173,7 @@ p#tables a.select::before {
/* edit row */ /* edit row */
html/*\*/>/*/*/body table input + a[href*="&edit="][href*="&where"] { html/*\*/>/*/*/body table input + a[href*="&edit="][href*="&where"] {
content: ''; content: '';
width:18px; width:18px;
vertical-align:middle; vertical-align:middle;
display:inline-block; display:inline-block;
overflow:hidden; overflow:hidden;

View File

@@ -403,14 +403,6 @@ tr.odd td {
color: #090; color: #090;
} }
.js .hidden {
display: initial;
}
.js input.hidden, .js td.hidden {
display: none
}
.logout { .logout {
top: 28px; top: 28px;
} }
@@ -534,13 +526,13 @@ table tbody input ~ a[href*="&edit="][href*="&where"] {
} }
#lang { #lang {
position: absolute; position: fixed;
top: 0;
right: 0;
width: auto;
line-height: 1; line-height: 1;
left: initial; font-size: 11px;
font-size: 11px left: auto;
top: 0;
right: calc(100% - 20rem + 3px);
color: #fff;
} }
#lang select { #lang select {
@@ -597,7 +589,6 @@ table tbody input ~ a[href*="&edit="][href*="&where"] {
background: inherit; background: inherit;
color: #fff; color: #fff;
padding: 3px; padding: 3px;
width: 15rem;
} }
#menu select option { #menu select option {
@@ -614,10 +605,32 @@ table tbody input ~ a[href*="&edit="][href*="&where"] {
color: #fff; color: #fff;
} }
.tables-filter {
padding: .8em .5em;
}
.tables-filter input {
color: #fff;
background: transparent;
}
.tables-filter input::placeholder {
color: #fff;
}
#logins a, #tables a { #logins a, #tables a {
background: 0 0 background: 0 0
} }
.logout {
position: fixed;
top: 0;
right: 0;
z-index: 5;
color: #fff;
margin: 2px 8px;
}
#logout { #logout {
color: #fff; color: #fff;
text-decoration: none text-decoration: none

View File

@@ -22,7 +22,7 @@ a, a:visited {
text-decoration: none; text-decoration: none;
} }
a:hover { a:hover, a:link:hover {
background-color: #006AEB !important; background-color: #006AEB !important;
border-bottom: 1px solid #006AEB; border-bottom: 1px solid #006AEB;
color: #FFF; color: #FFF;
@@ -294,7 +294,6 @@ table code {
border: none; border: none;
margin: 0 0 4px; margin: 0 0 4px;
padding: 0 0 4px; padding: 0 0 4px;
white-space: nowrap;
} }
#breadcrumb { #breadcrumb {
@@ -383,7 +382,7 @@ a[href$="dump="] {
} }
select[name="db"] { select[name="db"] {
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEYSURBVBgZBcHPio5hGAfg6/2+R980k6wmJgsJ5U/ZOAqbSc2GnXOwUg7BESgLUeIQ1GSjLFnMwsKGGg1qxJRmPM97/1zXFAAAAEADdlfZzr26miup2svnelq7d2aYgt3rebl585wN6+K3I1/9fJe7O/uIePP2SypJkiRJ0vMhr55FLCA3zgIAOK9uQ4MS361ZOSX+OrTvkgINSjS/HIvhjxNNFGgQsbSmabohKDNoUGLohsls6BaiQIMSs2FYmnXdUsygQYmumy3Nhi6igwalDEOJEjPKP7CA2aFNK8Bkyy3fdNCg7r9/fW3jgpVJbDmy5+PB2IYp4MXFelQ7izPrhkPHB+P5/PjhD5gCgCenx+VR/dODEwD+A3T7nqbxwf1HAAAAAElFTkSuQmCC") no-repeat scroll 90% center white; background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEYSURBVBgZBcHPio5hGAfg6/2+R980k6wmJgsJ5U/ZOAqbSc2GnXOwUg7BESgLUeIQ1GSjLFnMwsKGGg1qxJRmPM97/1zXFAAAAEADdlfZzr26miup2svnelq7d2aYgt3rebl585wN6+K3I1/9fJe7O/uIePP2SypJkiRJ0vMhr55FLCA3zgIAOK9uQ4MS361ZOSX+OrTvkgINSjS/HIvhjxNNFGgQsbSmabohKDNoUGLohsls6BaiQIMSs2FYmnXdUsygQYmumy3Nhi6igwalDEOJEjPKP7CA2aFNK8Bkyy3fdNCg7r9/fW3jgpVJbDmy5+PB2IYp4MXFelQ7izPrhkPHB+P5/PjhD5gCgCenx+VR/dODEwD+A3T7nqbxwf1HAAAAAElFTkSuQmCC") no-repeat scroll left center white;
padding-left: 16px; padding-left: 16px;
} }
@@ -413,6 +412,11 @@ select[name="db"] option {
text-decoration: none; text-decoration: none;
} }
.tables-filter {
padding: 0;
margin: 8px 0;
}
a[href*="&create="] { a[href*="&create="] {
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJ6SURBVDjLpZNZSNRRGMV//2XGsjFrMg2z0so2K21xIFpepYUiAsGIICLffI8eWiBBeg3qQV+KwBYKLB8qpHUmrahcKLc0QsxldNSxdPz/79LD1ChBUXTh8sG93POdc75zDa01/7NsgGvPR09rzQmpVZZSCqlAKIWUCqk0QqoZWyKFRir1uvxIbsAGUFqXHQqkpP1L57M3Pm5MMJBKpQHUdF9BKIGQAlcJXOlOVykSdye3leO6MmkGQNyHw+uO/1X3bzGBK+S0B1IqAKqDg3986HeCZPffwvJtoNT7lOZLvUdtAPEDAKBkRzo3QwMUb89InN1uGGD3spdE214xe8MRUnM2MfppNW0Pqy7YAK5UKK2xLbhdP4hlmdxpGMQwwQT8ziNiI534c7cT6WrFazikzF2Eb8HS1IQEDdiWwcHAQmpehTkQSAcgNvSMiYFW5uUUMdV3HW+ywefGNqITJsbUUL75k4FWYJtQ+yaMZcXrk1ANk/33mbdiD7EvlRieETy+FJLkMFcjRRSW3emIAwiF1hqPBfu2LGSWbbA1uZ41SfWkrtxPrPcypsfFiWYzFGzGKTjFV28WEJeIUHETLdOgrmkI1VdHpCdEet5enP4qLK9mKrqMgedv6cyrAP+qxOTiUxAi7oEJi8frELoFoTLpa7nI/HQvscgSRt+0kV1SSW7qYtp7xrBMphm4Mi5h/VIfTcEq1u0oJaknSEdNiMYHET7UvcMpPEN31Ed7zxgASmk1I0g6dK66s8CRak5mVxjnfS05+TsZCw/T9baTx1nnGb47DrQksjE6HrsHYPz6nYt3+Sc3L8+wA2tz0J6pF5OD4WP7Kpq7f5fO79DfSxjdtCtDAAAAAElFTkSuQmCC") no-repeat scroll 2px center; background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJ6SURBVDjLpZNZSNRRGMV//2XGsjFrMg2z0so2K21xIFpepYUiAsGIICLffI8eWiBBeg3qQV+KwBYKLB8qpHUmrahcKLc0QsxldNSxdPz/79LD1ChBUXTh8sG93POdc75zDa01/7NsgGvPR09rzQmpVZZSCqlAKIWUCqk0QqoZWyKFRir1uvxIbsAGUFqXHQqkpP1L57M3Pm5MMJBKpQHUdF9BKIGQAlcJXOlOVykSdye3leO6MmkGQNyHw+uO/1X3bzGBK+S0B1IqAKqDg3986HeCZPffwvJtoNT7lOZLvUdtAPEDAKBkRzo3QwMUb89InN1uGGD3spdE214xe8MRUnM2MfppNW0Pqy7YAK5UKK2xLbhdP4hlmdxpGMQwwQT8ziNiI534c7cT6WrFazikzF2Eb8HS1IQEDdiWwcHAQmpehTkQSAcgNvSMiYFW5uUUMdV3HW+ywefGNqITJsbUUL75k4FWYJtQ+yaMZcXrk1ANk/33mbdiD7EvlRieETy+FJLkMFcjRRSW3emIAwiF1hqPBfu2LGSWbbA1uZ41SfWkrtxPrPcypsfFiWYzFGzGKTjFV28WEJeIUHETLdOgrmkI1VdHpCdEet5enP4qLK9mKrqMgedv6cyrAP+qxOTiUxAi7oEJi8frELoFoTLpa7nI/HQvscgSRt+0kV1SSW7qYtp7xrBMphm4Mi5h/VIfTcEq1u0oJaknSEdNiMYHET7UvcMpPEN31Ed7zxgASmk1I0g6dK66s8CRak5mVxjnfS05+TsZCw/T9baTx1nnGb47DrQksjE6HrsHYPz6nYt3+Sc3L8+wA2tz0J6pF5OD4WP7Kpq7f5fO79DfSxjdtCtDAAAAAElFTkSuQmCC") no-repeat scroll 2px center;
padding-left: 22px; padding-left: 22px;
@@ -545,6 +549,11 @@ input[name="delete"]:hover, input[name="drop"]:hover {
color: red; color: red;
} }
.logout {
color: #fff;
margin-top: 0.7em;
}
#logout { #logout {
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJHSURBVDjLlZPNi81hFMc/z7137p1mTCFvNZfGSzLIWNjZKRvFRoqNhRCSYm8xS3+AxRRZ2JAFJWJHSQqTQkbEzYwIM+6Yid/znJfH4prLXShOnb6r8/nWOd8Tcs78bz0/f+KMu50y05nK/wy+uHDylbutqS5extvGcxaWqtoGDA8PZ3dnrs2srQc2Zko41UXLmLdyDW5OfvsUkUgbYGbU63UAQggdmvMzFmzZCgTi7CQmkZwdEaX0JwDgTnGbTCaE0G4zw80omhPI92lcEtkNkdgJCCHwJX7mZvNaB0A14SaYJlwTrpHsTkoFlV1nt2c3x5YYo1/vM9A/gKpxdfwyu/v3teCayKq4JEwT5EB2R6WgYmrs2bYbcUNNUVfEhIfFYy69uci+1fuRX84mkawFSxd/4nVWUopUVIykwlQxRTJBTIDA4Pp1jBZPuNW4wUAPmCqWIn29X1k4f5Ku8g9mpKCkakRLVEs1auVuauVuyqHMo8ejNCe+sWPVTkQKXCMmkeZUmUZjETF1tc6ooly+fgUVw9So1/tRN6YnZji46QghBFKKuAouERNhMlbAHZFE6e7pB+He8MMw+GGI4xtOMf1+lsl3TQ4NHf19BSlaO1DB9BfMHdX0O0iqSgiBbJkjm491hClJbA1LxCURgpPzXwAHhg63necAIi3XngXLcRU0fof8ETMljIyM5LGxMcbHxzvy/6fuXdWgt6+PWncv1e4euqo1ZmabvHs5+jn8yzufO7hiiZmuNpNBM13rbvVSpbrXJE7/BMkHtU9jFIC/AAAAAElFTkSuQmCC") no-repeat scroll left center; background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJHSURBVDjLlZPNi81hFMc/z7137p1mTCFvNZfGSzLIWNjZKRvFRoqNhRCSYm8xS3+AxRRZ2JAFJWJHSQqTQkbEzYwIM+6Yid/znJfH4prLXShOnb6r8/nWOd8Tcs78bz0/f+KMu50y05nK/wy+uHDylbutqS5extvGcxaWqtoGDA8PZ3dnrs2srQc2Zko41UXLmLdyDW5OfvsUkUgbYGbU63UAQggdmvMzFmzZCgTi7CQmkZwdEaX0JwDgTnGbTCaE0G4zw80omhPI92lcEtkNkdgJCCHwJX7mZvNaB0A14SaYJlwTrpHsTkoFlV1nt2c3x5YYo1/vM9A/gKpxdfwyu/v3teCayKq4JEwT5EB2R6WgYmrs2bYbcUNNUVfEhIfFYy69uci+1fuRX84mkawFSxd/4nVWUopUVIykwlQxRTJBTIDA4Pp1jBZPuNW4wUAPmCqWIn29X1k4f5Ku8g9mpKCkakRLVEs1auVuauVuyqHMo8ejNCe+sWPVTkQKXCMmkeZUmUZjETF1tc6ooly+fgUVw9So1/tRN6YnZji46QghBFKKuAouERNhMlbAHZFE6e7pB+He8MMw+GGI4xtOMf1+lsl3TQ4NHf19BSlaO1DB9BfMHdX0O0iqSgiBbJkjm491hClJbA1LxCURgpPzXwAHhg63necAIi3XngXLcRU0fof8ETMljIyM5LGxMcbHxzvy/6fuXdWgt6+PWncv1e4euqo1ZmabvHs5+jn8yzufO7hiiZmuNpNBM13rbvVSpbrXJE7/BMkHtU9jFIC/AAAAAElFTkSuQmCC") no-repeat scroll left center;
border: none; border: none;

View File

@@ -22,7 +22,7 @@ a,a:visited {
color:black; color:black;
} }
a:hover { a:hover, a:link:hover {
color:white; color:white;
background:#006aeb; background:#006aeb;
} }
@@ -224,14 +224,18 @@ input[name=logout]:hover {
background:#ea0202; background:#ea0202;
} }
#logins a, #tables a { #logins a, #tables a {
background:none; background:none;
} }
#logins a:hover, #tables a:hover { #logins a:hover, #tables a:hover {
background:#006aeb; background:#006aeb;
} }
.logout {
z-index: 5;
}
#logout { #logout {
color:#006aeb; color:#006aeb;
text-decoration:none; text-decoration:none;

View File

@@ -160,6 +160,14 @@ tr.odd td {
background:#fcfaf5; background:#fcfaf5;
} }
.footer {
border-image: linear-gradient(rgba(242, 242, 242, 0), #f2f2f2) 100% 0;
}
.footer div {
background: #f2f2f2;
}
#content tbody tr.checked td, tr.checked.odd td { #content tbody tr.checked td, tr.checked.odd td {
background:#fbe2e2; background:#fbe2e2;
color:red; color:red;
@@ -221,7 +229,7 @@ tr.odd td {
#menu { #menu {
background:#34495e; background:#34495e;
position:fixed; position:fixed;
top:-10px; top:5px;
color:#FFF; color:#FFF;
padding:20px; padding:20px;
padding-top:40px; padding-top:40px;
@@ -287,9 +295,14 @@ input[name=logout]:hover {
} }
.logout { .logout {
position: fixed;
z-index:3; z-index:3;
} }
.logout form {
color: #fff;
}
.js .column { .js .column {
background:#ecf0f1; background:#ecf0f1;
} }

View File

@@ -8,7 +8,7 @@ body {
font-size: 11pt; } font-size: 11pt; }
body, select, option, optgroup, button { body, select, option, optgroup, button {
font-family: Calibri, Arial, Helvetica, sans-serif; } /* IE6 */ font-family: Calibri, Arial, Helvetica, sans-serif; } /* IE6 */
input[type='submit'], input[type='reset'], input[type='button'], input[type='file'], input[type='submit'], input[type='reset'], input[type='button'], input[type='file'],
input[name$='[comment]'], input[name='Comment'] { input[name$='[comment]'], input[name='Comment'] {
font-family: Calibri, Arial, Helvetica, sans-serif; } font-family: Calibri, Arial, Helvetica, sans-serif; }
input, textarea, pre, code, samp, kbd, var { input, textarea, pre, code, samp, kbd, var {
@@ -185,6 +185,10 @@ h3 {
background: #DEF; background: #DEF;
} }
.tables-filter {
padding-left: 8px;
}
h1 { h1 {
margin-top: 8px; margin-top: 8px;
color: #000; color: #000;
@@ -221,10 +225,6 @@ h2 {
/* -- GUI adjustments ------------------------------------------------------- */ /* -- GUI adjustments ------------------------------------------------------- */
.js .hidden {
display: inline; }
.js td.hidden, .js input.hidden {
display: none; }
legend a { legend a {
color: #000; color: #000;
text-decoration: none; text-decoration: none;
@@ -287,4 +287,3 @@ fieldset table {
p.tabs { p.tabs {
display: none; } display: none; }
} }

View File

@@ -93,10 +93,6 @@ tbody tr:hover th {
background: none; background: none;
} }
table:not(.checkable) th {
min-width: 120px;
}
thead td, thead td,
thead th { thead th {
background: #34567c; background: #34567c;
@@ -270,7 +266,7 @@ p code + a:visited:hover {
#menu #dbs { #menu #dbs {
background: #fff; background: #fff;
padding: 0 15px 15px; padding: 0;
border: 1px solid #dae8fa; border: 1px solid #dae8fa;
border-bottom: 0; border-bottom: 0;
box-sizing: border-box; box-sizing: border-box;
@@ -280,7 +276,6 @@ p code + a:visited:hover {
#menu #dbs select { #menu #dbs select {
outline: 0; outline: 0;
border-color: rgba(0, 0, 0, 0.1); border-color: rgba(0, 0, 0, 0.1);
width: 100%;
} }
#menu p.links { #menu p.links {
@@ -310,6 +305,11 @@ p code + a:visited:hover {
color: #000; color: #000;
} }
.tables-filter {
padding: 0;
margin-top: 32px;
}
#content p.links { #content p.links {
margin: -10px 0 15px; margin: -10px 0 15px;
} }
@@ -522,7 +522,7 @@ input.default {
select { select {
box-sizing: border-box; box-sizing: border-box;
margin: 0; margin: 0;
padding: 6px 0; padding: 6px;
border: 1px solid #bbbbbb; border: 1px solid #bbbbbb;
} }
@@ -652,11 +652,11 @@ label {
.logout { .logout {
display: none; display: none;
} }
#breadcrumb { #breadcrumb {
position: static; position: static;
} }
#content { #content {
margin: 0; margin: 0;
} }

View File

@@ -1,127 +0,0 @@
#menu {
margin: 0;
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 270px;
padding: 0;
border-right: 1px #ccc solid;
}
#menu p {
margin: 0;
padding: 4px 10px;
}
#menu p select {
width: 100%;
}
#menu h1 {
height: 25px;
padding: 0 10px;
margin: 0;
line-height: 20px;
display: block;
}
#menu h1 a {
font-size: 13px;
}
#menu h1 .version {
font-size: 9px;
}
#menu * {
margin: 0;
padding: 0;
}
#tables {
margin: 0;
position: absolute;
top: 118px;
bottom: 0;
left: 0;
padding: 0;
overflow-x: hidden;
overflow-y: auto;
width: 270px;
}
#logins li, #tables li {
position: relative;
height: 23px;
}
#logins a {
display: block;
margin-top: 5px;
padding: 0 10px;
}
#tables a {
display: block;
margin: 0;
padding: 0;
text-decoration: none;
margin-top: 5px;
}
#tables a[href*="select"] {
position: absolute;
left: 10px;
width: 50px;
}
#tables a[href*="table"] {
position: absolute;
left: 65px;
width: 200px;
}
#lang {
top: -1px;
right: 2px;
left: auto;
margin: 0;
padding: 0;
z-index: 10;
}
#content {
margin: 0;
padding: 0 10px 10px 10px;
position: absolute;
left: 270px;
right: 0;
top: 82px;
bottom: 0;
overflow: auto;
}
#content h2 {
display: block;
margin: 0;
padding: 0;
height: 55px;
position: fixed;
left: 270px;
right: 0;
top: 26px;
line-height: 55px;
padding-left: 10px;
border-bottom: 1px solid #ccc;
}
#breadcrumb {
position: fixed;
left: 270px;
right: 0;
top: 0;
height: 25px;
margin: 0;
border-bottom: 1px solid #999;
}

BIN
docs/images/screenshot.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

@@ -608,7 +608,7 @@ qsl('div').onclick = whisperClick;", "")
<?php if ($missing != "auth"): ?> <?php if ($missing != "auth"): ?>
<span class="version"> <span class="version">
<?php echo $VERSION; ?> <?php echo $VERSION; ?>
<a href="https://github.com/pematon/adminer/releases"<?php echo target_blank(); ?> id="version"> <a href="https://github.com/adminerneo/adminerneo/releases"<?php echo target_blank(); ?> id="version">
<?php echo (version_compare($VERSION, $_COOKIE["adminer_version"]) < 0 ? h($_COOKIE["adminer_version"]) : ""); ?> <?php echo (version_compare($VERSION, $_COOKIE["adminer_version"]) < 0 ? h($_COOKIE["adminer_version"]) : ""); ?>
</a> </a>
</span> </span>

View File

@@ -1,8 +1,8 @@
<?php <?php
/** /**
* Adminer Editor - Compact database editor for end-users * AdminerNeo Editor - Compact database editor for end-users
* *
* @link https://github.com/pematon/adminer * @link https://github.com/adminerneo/adminerneo
* @author Jakub Vrana (https://www.vrana.cz/) * @author Jakub Vrana (https://www.vrana.cz/)
* @author Peter Knut * @author Peter Knut
* @copyright 2009-2021 Jakub Vrana, 2024 Peter Knut * @copyright 2009-2021 Jakub Vrana, 2024 Peter Knut

BIN
logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -1555,7 +1555,7 @@ END</td>
</tr> </tr>
<tr> <tr>
<td>verifyTextPresent</td> <td>verifyTextPresent</td>
<td>Thanks for using Adminer, consider donating.<datalist><option>Thanks for using Adminer, consider donating.</option></datalist></td> <td>Logout successful.<datalist><option>Logout successful.</option></datalist></td>
<td></td> <td></td>
</tr> </tr>
</tbody></table> </tbody></table>
@@ -1596,4 +1596,4 @@ END</td>
</tr> </tr>
</tbody></table> </tbody></table>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@ Draggable columns in alter table (thanks to Michal Manak)
Define foreign keys name - http://forum.zdrojak.root.cz/index.php?topic=185.msg1255#msg1255 Define foreign keys name - http://forum.zdrojak.root.cz/index.php?topic=185.msg1255#msg1255
Skinnable plus.gif and other images - http://typo3.org/extensions/repository/view/t3adminer/current/ Skinnable plus.gif and other images - http://typo3.org/extensions/repository/view/t3adminer/current/
? Filter by value in row under <thead> in select ? Filter by value in row under <thead> in select
? Column and table names auto-completition in SQL textarea - http://blog.quplo.com/2010/06/css-code-completion-in-your-browser/ ? Column and table names auto-completion in SQL textarea - http://blog.quplo.com/2010/06/css-code-completion-in-your-browser/
? Aliasing of built-in functions can save 7 KB, function minification can save 7 KB, substitution of repetitive $a["a"] can save 4 KB, substitution of $_GET and friends can save 2 KB, aliasing of $connection->query can save 24 B, JS Closure compiler can save 2 KB, not enclosing HTML attribute values can save 1.2 KB, replacing \\n by \n can save .3 KB ? Aliasing of built-in functions can save 7 KB, function minification can save 7 KB, substitution of repetitive $a["a"] can save 4 KB, substitution of $_GET and friends can save 2 KB, aliasing of $connection->query can save 24 B, JS Closure compiler can save 2 KB, not enclosing HTML attribute values can save 1.2 KB, replacing \\n by \n can save .3 KB
? Branch binary_compile: LZW compression of all texts can save 11 KB, using chars 127-255 in minification can save 1 KB ? Branch binary_compile: LZW compression of all texts can save 11 KB, using chars 127-255 in minification can save 1 KB