├── .editorconfig ├── .gitignore ├── Dockerfile ├── README.md ├── compile.php ├── composer.json ├── docker-compose.yml ├── php-server.ini ├── plugins └── .gitkeep ├── public ├── assets │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 │ ├── scripts.js │ ├── scripts.min.js │ ├── styles.css │ └── styles.min.css └── index.php └── src └── AdminerBootstrapLike.php /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | indent_size = 4 7 | indent_style = space 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.{md,rst}] 12 | trim_trailing_whitespace = false 13 | 14 | [*.yml] 15 | indent_size = 2 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | plugins 3 | !plugins/.gitkeep 4 | vendor 5 | adminer.php 6 | composer.lock 7 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM natanfelles/php-base 2 | COPY . /var/www 3 | WORKDIR /var/www 4 | RUN composer install --no-dev 5 | CMD ["php", "-S", "[::]:8080", "-t", "/var/www/public"] 6 | EXPOSE 8080 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Adminer Bootstrap-Like Design 2 | 3 | [Adminer](https://www.adminer.org) interface inspired by the [Bootstrap Framework](https://getbootstrap.com/docs/3.3) with [Font-Awesome icons](http://fontawesome.io). 4 | 5 | ## Installation 6 | 7 | ``` 8 | composer create-project natanfelles/adminer-bootstrap-like 9 | ``` 10 | 11 | or: 12 | 13 | ``` 14 | git clone git@github.com:natanfelles/adminer-bootstrap-like.git 15 | cd adminer-bootstrap-like 16 | composer install 17 | ``` 18 | 19 | Optionally, it is possible to configure [plugins](https://www.adminer.org/plugins) in the _index.php_ file. 20 | 21 | ## Update Adminer 22 | 23 | Go to the installation directory and run: 24 | 25 | ``` 26 | composer update 27 | ``` 28 | 29 | ## Minify Assets 30 | 31 | ``` 32 | cd public/assets/ 33 | yui-compressor scripts.js -o scripts.min.js 34 | yui-compressor styles.css -o styles.min.css 35 | ``` 36 | 37 | ## Print Screen and Video 38 | 39 | [![Adminer Bootstrap-Like Design](https://i.imgur.com/Hu9ANYR.png)](https://www.youtube.com/watch?v=fMFCuaJphVk "Adminer Sidebar Toggle") 40 | -------------------------------------------------------------------------------- /compile.php: -------------------------------------------------------------------------------- 1 | =5.6", 27 | "vrana/adminer": "^5.1", 28 | "vrana/jush": "^2" 29 | }, 30 | "require-dev": { 31 | "ergebnis/composer-normalize": "^2.45" 32 | }, 33 | "minimum-stability": "dev", 34 | "prefer-stable": true, 35 | "autoload": { 36 | "classmap": [ 37 | "src/AdminerBootstrapLike.php", 38 | "plugins/" 39 | ] 40 | }, 41 | "config": { 42 | "allow-plugins": { 43 | "ergebnis/composer-normalize": true 44 | } 45 | }, 46 | "scripts": { 47 | "post-install-cmd": [ 48 | "php compile.php", 49 | "composer dump-autoload --optimize" 50 | ], 51 | "post-update-cmd": [ 52 | "php compile.php", 53 | "composer dump-autoload --optimize" 54 | ] 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | services: 3 | adminer: 4 | image: natanfelles/adminer 5 | ports: 6 | - 8080:8080 7 | depends_on: 8 | - mariadb 9 | mariadb: 10 | image: mariadb 11 | restart: always 12 | environment: 13 | MYSQL_ROOT_PASSWORD: password 14 | MYSQL_DATABASE: tests 15 | MYSQL_USER: root 16 | MYSQL_PASSWORD: password 17 | -------------------------------------------------------------------------------- /php-server.ini: -------------------------------------------------------------------------------- 1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2 | ; php-server configuration file - https://github.com/natanfelles/php-server ; 3 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 4 | php = PHP_BINARY 5 | host = localhost 6 | port = 8080 7 | root = ./public 8 | autoindex = true 9 | index = index.html index.php 10 | error_reporting = E_ALL 11 | 12 | [ini] 13 | display_errors = 1 14 | display_startup_errors = 1 15 | max_execution_time = 30 16 | post_max_size = 8M 17 | upload_max_filesize = 2M 18 | ;opcache.preload = preload.php 19 | 20 | xdebug.mode=develop 21 | xdebug.var_display_max_depth = 10 22 | xdebug.var_display_max_children = 256 23 | xdebug.var_display_max_data = 1024 24 | 25 | [server] 26 | ENVIRONMENT = development 27 | -------------------------------------------------------------------------------- /plugins/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/adminer-bootstrap-like/b895435f87bb903e97f57ee81aca4cb015e6e3db/plugins/.gitkeep -------------------------------------------------------------------------------- /public/assets/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/adminer-bootstrap-like/b895435f87bb903e97f57ee81aca4cb015e6e3db/public/assets/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /public/assets/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/adminer-bootstrap-like/b895435f87bb903e97f57ee81aca4cb015e6e3db/public/assets/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /public/assets/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/adminer-bootstrap-like/b895435f87bb903e97f57ee81aca4cb015e6e3db/public/assets/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /public/assets/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/adminer-bootstrap-like/b895435f87bb903e97f57ee81aca4cb015e6e3db/public/assets/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /public/assets/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/natanfelles/adminer-bootstrap-like/b895435f87bb903e97f57ee81aca4cb015e6e3db/public/assets/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /public/assets/scripts.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Adminer Bootstrap-Like Design 3 | * 4 | * @author Natan Felles, https://natanfelles.github.io 5 | * @link https://github.com/natanfelles/adminer-bootstrap-like 6 | * @link https://www.adminer.org/plugins/#use 7 | * @license https://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0 8 | * @license https://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other) 9 | */ 10 | (function (window) { 11 | window.addEventListener('load', function () { 12 | adminerDesign.init(); 13 | }, false); 14 | var adminerDesign = { 15 | init: function () { 16 | adminerDesign.h1 = document.querySelector('#menu h1'); 17 | adminerDesign.logins = document.getElementById('logins'); 18 | adminerDesign.dbs = document.getElementById('dbs'); 19 | adminerDesign.links = document.querySelector('#menu .links'); 20 | adminerDesign.tables = document.getElementById('tables'); 21 | adminerDesign.menuMessage = document.querySelector('#menu .message'); 22 | adminerDesign.breadcrumb = document.getElementById('breadcrumb'); 23 | adminerDesign.lang = document.getElementById('lang'); 24 | adminerDesign.logout = document.getElementById('logout'); 25 | adminerDesign.content = document.getElementById('content'); 26 | adminerDesign.pages = document.getElementsByClassName('pages')[0]; 27 | adminerDesign.menu = document.getElementById('menu'); 28 | adminerDesign.breadcrumb.innerHTML = '' 29 | + adminerDesign.breadcrumb.innerHTML; 30 | adminerDesign.setPositions(); 31 | adminerDesign.setTables(); 32 | adminerDesign.setToggle(); 33 | adminerDesign.setScroller(); 34 | }, 35 | setScroller: function () { 36 | var scroller = document.getElementById('scroller'); 37 | var links = scroller.querySelectorAll('a'); 38 | 39 | function display() { 40 | if (window.innerHeight < window.innerHeight + document.documentElement.scrollTop) { 41 | scroller.style.display = 'block'; 42 | } else { 43 | scroller.style.display = 'none'; 44 | } 45 | } 46 | 47 | display(); 48 | // react on scroll event to toggle scroller visibilty 49 | window.addEventListener('scroll', display); 50 | links[0].addEventListener('click', function (e) { 51 | e.preventDefault(); 52 | window.scroll(0, 0); 53 | document.body.scrollTop = 0; 54 | }); 55 | links[1].addEventListener('click', function (e) { 56 | e.preventDefault(); 57 | window.scroll(0, document.body.scrollHeight); 58 | }); 59 | }, 60 | setPositions: function () { 61 | var is_rtl = false; 62 | if (document.body.classList.contains('rtl')) { 63 | //console.log('rtl'); 64 | is_rtl = true; 65 | } 66 | if (adminerDesign.logins) { 67 | adminerDesign.logins.style.top = adminerDesign.h1.offsetHeight - 1 + 'px'; 68 | } 69 | if (adminerDesign.dbs) { 70 | adminerDesign.dbs.style.top = adminerDesign.h1.offsetHeight + 'px'; 71 | } 72 | if (adminerDesign.links) { 73 | adminerDesign.links.style.top = adminerDesign.h1.offsetHeight + adminerDesign.dbs.offsetHeight + 'px'; 74 | } 75 | if (adminerDesign.tables) { 76 | adminerDesign.tables.style.top = adminerDesign.h1.offsetHeight + adminerDesign.dbs.offsetHeight + adminerDesign.links.offsetHeight - 1 + 'px'; 77 | } 78 | if (adminerDesign.menuMessage) { 79 | adminerDesign.menuMessage.style.top = adminerDesign.h1.offsetHeight + adminerDesign.dbs.offsetHeight + adminerDesign.links.offsetHeight + 'px'; 80 | } 81 | if (adminerDesign.lang && adminerDesign.logout) { 82 | var width = document.querySelector('.logout').clientWidth + 20; 83 | if (is_rtl) { 84 | adminerDesign.lang.style.left = width + 'px'; 85 | } else { 86 | adminerDesign.lang.style.right = width + 'px'; 87 | } 88 | } 89 | // console.log(this.content); 90 | // console.log(window.getComputedStyle(this.content, null).getPropertyValue('padding-top')); 91 | adminerDesign.content.style.minHeight = window.innerHeight - 92 | window.getComputedStyle(adminerDesign.content, null).getPropertyValue('padding-top').replace('px', '') - 93 | window.getComputedStyle(adminerDesign.content, null).getPropertyValue('padding-bottom').replace('px', '') - 94 | window.getComputedStyle(adminerDesign.content, null).getPropertyValue('margin-top').replace('px', '') - 95 | window.getComputedStyle(adminerDesign.content, null).getPropertyValue('margin-bottom').replace('px', '') + 96 | 'px'; 97 | }, 98 | setTables: function () { 99 | if (!adminerDesign.tables) { 100 | return; 101 | } 102 | adminerDesign.tables.style.height = window.innerHeight - adminerDesign.tables.offsetTop + 'px'; 103 | var a = document.querySelectorAll('#tables li a'); 104 | for (var i = 0; i < a.length; i++) { 105 | if (a[i].classList.contains('structure')) { 106 | a[i].title = a[i].title + ' - ' + a[i].innerHTML; 107 | a[i].parentNode.addEventListener('click', function () { 108 | window.location = this.children[1].href; 109 | }); 110 | if (a[i].offsetWidth > 200) { 111 | a[i].innerHTML = a[i].innerHTML.substring(0, 28) + '...'; 112 | } 113 | } 114 | if (a[i].classList.contains('active')) { 115 | // console.log('active'); 116 | a[i].parentNode.classList += 'active'; 117 | } 118 | } 119 | var active = document.querySelector('#tables .active'); 120 | if (active) { 121 | adminerDesign.tables.scrollTop = active.offsetTop; 122 | } 123 | }, 124 | setToggle: function () { 125 | var toggle = document.getElementById('toggle'); 126 | var is_rtl = false; 127 | if (document.body.classList.contains('rtl')) { 128 | //console.log('rtl'); 129 | is_rtl = true; 130 | } 131 | 132 | function toggleMenu(state) { 133 | var menu = document.getElementById('menu'); 134 | var content = document.getElementById('content'); 135 | var breadcrumb = document.getElementById('breadcrumb'); 136 | var pages = document.querySelector('.footer p'); 137 | if (state === 'closed') { 138 | menu.style.display = 'none'; 139 | if (is_rtl) { 140 | content.style.marginRight = 0; 141 | } else { 142 | content.style.marginLeft = 0; 143 | } 144 | if (breadcrumb) { 145 | if (is_rtl) { 146 | breadcrumb.style.paddingRight = '40px'; 147 | } else { 148 | breadcrumb.style.paddingLeft = '40px'; 149 | } 150 | } 151 | if (pages) { 152 | if (is_rtl) { 153 | pages.style.right = 0; 154 | } else { 155 | pages.style.left = 0; 156 | } 157 | } 158 | localStorage.setItem('menu', 'closed'); 159 | } else { 160 | menu.style.display = 'block'; 161 | if (is_rtl) { 162 | content.style.marginRight = '266px'; 163 | } else { 164 | content.style.marginLeft = '266px'; 165 | } 166 | if (breadcrumb) { 167 | if (is_rtl) { 168 | breadcrumb.style.paddingRight = '306px'; 169 | } else { 170 | breadcrumb.style.paddingLeft = '306px'; 171 | } 172 | } 173 | if (pages) { 174 | if (is_rtl) { 175 | pages.style.right = '266px'; 176 | } else { 177 | pages.style.left = '266px'; 178 | } 179 | } 180 | localStorage.setItem('menu', 'open'); 181 | } 182 | } 183 | 184 | toggleMenu(localStorage.getItem('menu')); 185 | toggle.addEventListener('click', function () { 186 | var state = localStorage.getItem('menu') === 'open' ? 'closed' : 'open'; 187 | toggleMenu(state); 188 | }); 189 | }, 190 | }; 191 | })(window); 192 | -------------------------------------------------------------------------------- /public/assets/scripts.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Adminer Bootstrap-Like Design 3 | * 4 | * @author Natan Felles, https://natanfelles.github.io 5 | * @link https://github.com/natanfelles/adminer-bootstrap-like 6 | * @link https://www.adminer.org/plugins/#use 7 | * @license https://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0 8 | * @license https://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other) 9 | */ 10 | (function(a){a.addEventListener("load",function(){b.init()},false);var b={init:function(){b.h1=document.querySelector("#menu h1");b.logins=document.getElementById("logins");b.dbs=document.getElementById("dbs");b.links=document.querySelector("#menu .links");b.tables=document.getElementById("tables");b.menuMessage=document.querySelector("#menu .message");b.breadcrumb=document.getElementById("breadcrumb");b.lang=document.getElementById("lang");b.logout=document.getElementById("logout");b.content=document.getElementById("content");b.pages=document.getElementsByClassName("pages")[0];b.menu=document.getElementById("menu");b.breadcrumb.innerHTML=''+b.breadcrumb.innerHTML;b.setPositions();b.setTables();b.setToggle();b.setScroller()},setScroller:function(){var c=document.getElementById("scroller");var d=c.querySelectorAll("a");function e(){if(a.innerHeight200){c[d].innerHTML=c[d].innerHTML.substring(0,28)+"..."}}if(c[d].classList.contains("active")){c[d].parentNode.classList+="active"}}var e=document.querySelector("#tables .active");if(e){b.tables.scrollTop=e.offsetTop}},setToggle:function(){var c=document.getElementById("toggle");var d=false;if(document.body.classList.contains("rtl")){d=true}function e(h){var i=document.getElementById("menu");var g=document.getElementById("content");var j=document.getElementById("breadcrumb");var f=document.querySelector(".footer p");if(h==="closed"){i.style.display="none";if(d){g.style.marginRight=0}else{g.style.marginLeft=0}if(j){if(d){j.style.paddingRight="40px"}else{j.style.paddingLeft="40px"}}if(f){if(d){f.style.right=0}else{f.style.left=0}}localStorage.setItem("menu","closed")}else{i.style.display="block";if(d){g.style.marginRight="266px"}else{g.style.marginLeft="266px"}if(j){if(d){j.style.paddingRight="306px"}else{j.style.paddingLeft="306px"}}if(f){if(d){f.style.right="266px"}else{f.style.left="266px"}}localStorage.setItem("menu","open")}}e(localStorage.getItem("menu"));c.addEventListener("click",function(){var f=localStorage.getItem("menu")==="open"?"closed":"open";e(f)})}}})(window); -------------------------------------------------------------------------------- /public/assets/styles.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Adminer Bootstrap-Like Design 3 | * 4 | * @author Natan Felles, https://natanfelles.github.io 5 | * @link https://github.com/natanfelles/adminer-bootstrap-like 6 | * @link https://www.adminer.org/plugins/#use 7 | * @license https://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0 8 | * @license https://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other) 9 | */ 10 | body { 11 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 12 | font-size: 14px; 13 | line-height: 1.42857143; 14 | color: #333; 15 | background: #fff; 16 | margin: 0; 17 | } 18 | 19 | a, 20 | a:visited { 21 | color: #337ab7; 22 | text-decoration: none; 23 | } 24 | 25 | a:link:hover, 26 | a:visited:hover { 27 | color: #23527c; 28 | text-decoration: underline; 29 | } 30 | 31 | a.text:hover { 32 | text-decoration: none; 33 | } 34 | 35 | a.jush-help:hover { 36 | color: inherit; 37 | } 38 | 39 | h1, 40 | h2, 41 | h3, 42 | h4, 43 | h5, 44 | h6 { 45 | font-family: inherit; 46 | font-weight: 500; 47 | line-height: 1.1; 48 | color: #333; 49 | margin-top: 10px; 50 | margin-bottom: 10px; 51 | padding: 0; 52 | } 53 | 54 | h1, 55 | h2, .rtl h2, 56 | h3 { 57 | margin-top: 20px; 58 | background: #fff; 59 | border: 0; 60 | } 61 | 62 | h1 { 63 | font-size: 36px; 64 | } 65 | 66 | h2 { 67 | font-size: 30px; 68 | padding-left: 20px; 69 | margin-bottom: 14px; 70 | } 71 | 72 | .rtl h2 { 73 | margin: 20px 0 14px 0; 74 | padding-left: 0; 75 | padding-right: 20px; 76 | } 77 | 78 | h3 { 79 | font-size: 24px; 80 | } 81 | 82 | h4 { 83 | font-size: 18px; 84 | } 85 | 86 | h5 { 87 | font-size: 14px; 88 | } 89 | 90 | h6 { 91 | font-size: 12px; 92 | } 93 | 94 | form { 95 | margin: 0; 96 | } 97 | 98 | td table { 99 | width: 100%; 100 | margin: 0; 101 | } 102 | 103 | table { 104 | margin: 1em 20px 0 0; 105 | border-collapse: collapse; 106 | font-size: inherit; 107 | border-top-width: 2px; 108 | } 109 | 110 | table, td, th { 111 | border-color: #ddd; 112 | } 113 | 114 | .rtl table { 115 | margin: 1em 0 0 20px; 116 | } 117 | 118 | td, 119 | th { 120 | padding: 8px; 121 | line-height: 1.42857143; 122 | border: 1px solid #ddd; 123 | } 124 | 125 | th { 126 | background: transparent; 127 | text-align: left; 128 | font-weight: bold; 129 | } 130 | 131 | thead th { 132 | text-align: left; 133 | padding: 8px; 134 | } 135 | 136 | thead td, 137 | thead th { 138 | background: #fff; 139 | border-bottom: 4px solid #ddd; 140 | border-right: 1px solid #ddd; 141 | font-weight: bold; 142 | color: #333; 143 | } 144 | 145 | thead th a { 146 | color: #337ab7; 147 | } 148 | 149 | table select { 150 | /*width: 100%;*/ 151 | } 152 | 153 | #login-form { 154 | padding: 15px; 155 | margin: 10px 5px 10px 0; 156 | background: #fff; 157 | border: 1px solid #ddd; 158 | border-radius: 4px; 159 | box-shadow: 0 1px 1px rgba(0, 0, 0, .05); 160 | max-width: 400px; 161 | } 162 | 163 | #login-form table { 164 | width: 100% 165 | } 166 | 167 | #login-form table, 168 | #login-form th, 169 | #login-form td { 170 | border: 0; 171 | background: #fff; 172 | } 173 | 174 | /*#form table input, 175 | #form table select,*/ 176 | #login-form input, 177 | #login-form select { 178 | box-sizing: border-box; 179 | width: 100%; 180 | } 181 | 182 | #login-form input[type=checkbox] { 183 | box-sizing: unset; 184 | width: auto; 185 | } 186 | 187 | #login-form label { 188 | display: inline-block; 189 | margin-top: 20px; 190 | } 191 | 192 | fieldset { 193 | display: inline; 194 | vertical-align: top; 195 | padding: 15px; 196 | margin: 10px 5px 10px 0; 197 | background: #fff; 198 | border: 1px solid #ddd; 199 | border-radius: 4px; 200 | box-shadow: 0 1px 1px rgba(0, 0, 0, .05); 201 | min-height: 80px; 202 | } 203 | 204 | legend { 205 | padding: 10px 15px; 206 | background: #f5f5f5; 207 | border: 1px solid #ddd; 208 | border-radius: 3px 3px 0 0; 209 | width: 100%; 210 | margin: 0 -16px; 211 | } 212 | 213 | fieldset input, 214 | fieldset select { 215 | margin-right: 5px; 216 | } 217 | 218 | fieldset div input:last-child { 219 | margin-right: 0; 220 | } 221 | 222 | p, .rtl p { 223 | margin: 10px 0; 224 | } 225 | 226 | img { 227 | vertical-align: middle; 228 | border: 0; 229 | } 230 | 231 | td img { 232 | max-width: 200px; 233 | max-height: 200px; 234 | } 235 | 236 | code, 237 | pre { 238 | font-family: Menlo, Monaco, Consolas, "Courier New", monospace; 239 | font-size: 1em; 240 | } 241 | 242 | code { 243 | padding: 2px 4px; 244 | font-size: 90%; 245 | color: #333; 246 | background: transparent; 247 | border-radius: 4px; 248 | } 249 | 250 | code.jush-sql { 251 | display: block; 252 | padding: 9.5px; 253 | margin: 0 0 10px; 254 | font-size: 13px; 255 | line-height: 1.42857143; 256 | color: #333; 257 | word-break: break-all; 258 | word-wrap: break-word; 259 | background-color: #f5f5f5; 260 | border: 1px solid #ccc; 261 | border-radius: 4px; 262 | } 263 | 264 | tbody tr:hover td, 265 | tbody tr:hover th, 266 | .odds tbody tr:nth-child(2n) { 267 | background: #f5f5f5; 268 | } 269 | 270 | pre { 271 | margin: 1em 0 0; 272 | overflow: auto; 273 | } 274 | 275 | pre, 276 | textarea { 277 | font: 100%/1.25 monospace; 278 | } 279 | 280 | input, 281 | select, 282 | textarea, 283 | pre.sqlarea, 284 | .links a { 285 | background: #fff; 286 | border: 1px solid #ccc; 287 | border-radius: 4px; 288 | color: #555; 289 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); 290 | transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; 291 | resize: none; 292 | padding: 6px 12px; 293 | } 294 | 295 | pre.sqlarea { 296 | border: 1px solid #ccc !important; 297 | padding: 6px 12px !important; 298 | resize: vertical !important; 299 | box-sizing: border-box; 300 | width: 100%; 301 | } 302 | 303 | input:focus, 304 | select:focus, 305 | textarea:focus, 306 | pre.sqlarea:focus { 307 | border-color: #66afe9; 308 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); 309 | } 310 | 311 | pre.sqlarea:focus { 312 | border-color: #66afe9 !important; 313 | } 314 | 315 | input[type=submit], 316 | .links a { 317 | cursor: pointer; 318 | box-shadow: none; 319 | } 320 | 321 | input[type=submit]:hover, 322 | .links a:hover, 323 | .links a.active { 324 | background: #e6e6e6; 325 | border-color: #adadad; 326 | } 327 | 328 | input[type=submit]:focus, 329 | .links a:focus, 330 | .links a.active { 331 | border-color: #8c8c8c; 332 | } 333 | 334 | input[type=submit]:active, 335 | .links a:active, 336 | .links a.active { 337 | background-image: none; 338 | outline: 0; 339 | box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); 340 | } 341 | 342 | #login-form input[type=submit], 343 | input[value=Save] { 344 | color: #fff; 345 | background-color: #337ab7; 346 | border-color: #2e6da4; 347 | } 348 | 349 | #login-form input[type=submit]:hover, 350 | input[value=Save]:hover { 351 | background-color: #286090; 352 | border-color: #204d74; 353 | } 354 | 355 | #login-form input[type=submit]:focus, 356 | input[value=Save]:focus { 357 | border-color: #122b40; 358 | } 359 | 360 | input[name=delete], 361 | input[name=drop] { 362 | color: #fff; 363 | background-color: #d9534f; 364 | border-color: #d43f3a; 365 | } 366 | 367 | input[name=delete]:hover, 368 | input[name=drop]:hover { 369 | background-color: #c9302c; 370 | border-color: #761c19; 371 | } 372 | 373 | input[name=delete]:focus, 374 | input[name=drop]:focus { 375 | border-color: #ac2925; 376 | } 377 | 378 | input[type=file] { 379 | border: 0; 380 | padding: 0; 381 | box-shadow: none; 382 | } 383 | 384 | input[type=image] { 385 | vertical-align: middle; 386 | } 387 | 388 | input.default { 389 | box-shadow: none; 390 | } 391 | 392 | input.required, 393 | input.maxlength { 394 | border-color: #843534; 395 | box-shadow: inset 0 1px 1px #0000001a, 0 0 6px #ce8483; 396 | } 397 | 398 | input.wayoff { 399 | left: -1000px; 400 | position: absolute; 401 | } 402 | 403 | .block { 404 | display: block; 405 | } 406 | 407 | #version, 408 | .version { 409 | color: silver; 410 | font-size: 14px; 411 | } 412 | 413 | #version { 414 | color: #c9302c; 415 | } 416 | 417 | .js .hidden, 418 | .nojs .jsonly { 419 | display: none; 420 | } 421 | 422 | .js .column { 423 | background: #fff; 424 | padding: 0; 425 | margin: -36px 0 0 -62px; 426 | border: 1px solid #66afe9; 427 | border-radius: 2px; 428 | z-index: 10 429 | } 430 | 431 | .js .column a { 432 | display: inline-block; 433 | padding: 0; 434 | width: 30px; 435 | height: 30px; 436 | overflow: hidden; 437 | vertical-align: middle 438 | } 439 | 440 | .js .column a:before { 441 | position: relative; 442 | display: inline-block; 443 | font-family: FontAwesome; 444 | font-style: normal; 445 | font-weight: normal; 446 | -webkit-font-smoothing: antialiased; 447 | -moz-osx-font-smoothing: grayscale; 448 | width: 30px; 449 | height: 30px; 450 | line-height: 30px; 451 | font-size: 14px; 452 | text-align: center; 453 | vertical-align: -3px 454 | } 455 | 456 | .js .column a:hover:before { 457 | background: #d9edf7 458 | } 459 | 460 | .js .column a[href*='&select=']:before { 461 | content: "\f063"; 462 | } 463 | 464 | .js .column a[href='#fieldset-search']:before { 465 | content: "\f002"; 466 | } 467 | 468 | .nowrap td, 469 | .nowrap th, 470 | td.nowrap, 471 | p.nowrap { 472 | white-space: pre; 473 | } 474 | 475 | .wrap td { 476 | white-space: normal; 477 | } 478 | 479 | .error, .rtl .error, 480 | .message, .rtl .message { 481 | margin: 0 20px 0 0; 482 | padding: 15px; 483 | border: 1px solid; 484 | border-radius: 4px; 485 | } 486 | 487 | .error { 488 | color: #a94442; 489 | background: #f2dede; 490 | border-color: #ebccd1; 491 | } 492 | 493 | .error a, 494 | .error a:hover { 495 | font-weight: bold; 496 | color: #843534; 497 | } 498 | 499 | .error b { 500 | background: transparent; 501 | font-weight: normal; 502 | } 503 | 504 | .message { 505 | color: #3c763d; 506 | background: #dff0d8; 507 | border-color: #d6e9c6; 508 | } 509 | 510 | .message a, 511 | .message a:hover { 512 | font-weight: bold; 513 | color: #2b542c; 514 | } 515 | 516 | .error code a:hover, 517 | .message code a:hover { 518 | color: #23527c; 519 | } 520 | 521 | .char { 522 | color: #007f00; 523 | } 524 | 525 | .date { 526 | color: #7f007f; 527 | } 528 | 529 | .enum { 530 | color: #007f7f; 531 | } 532 | 533 | .binary { 534 | color: red; 535 | } 536 | 537 | /* #content table { 538 | background: #f9f9f9; 539 | } */ 540 | .odd td, 541 | .odd th { 542 | background: #f9f9f9; 543 | } 544 | 545 | .js .checkable .checked td, 546 | .js .checkable .checked th { 547 | background: #d9edf7; 548 | color: #333; 549 | } 550 | 551 | .js .checkable .checked:hover td, 552 | .js .checkable .checked:hover th { 553 | background: #d9edf7; 554 | } 555 | 556 | .js .checkable .checked a { 557 | color: #337ab7; 558 | } 559 | 560 | .time { 561 | color: silver; 562 | font-size: 70%; 563 | float: right; 564 | } 565 | 566 | .function { 567 | text-align: right; 568 | } 569 | 570 | .number { 571 | text-align: right; 572 | } 573 | 574 | .datetime { 575 | text-align: right; 576 | } 577 | 578 | .type { 579 | width: 15ex; 580 | width: auto \9; 581 | } 582 | 583 | .options select { 584 | width: 20ex; 585 | width: auto \9; 586 | } 587 | 588 | .view { 589 | font-style: italic; 590 | } 591 | 592 | .active { 593 | font-weight: bold; 594 | } 595 | 596 | .sqlarea { 597 | width: 98%; 598 | } 599 | 600 | .icon { 601 | width: 18px; 602 | height: 18px; 603 | background-color: #337ab7; 604 | border: 1px solid #2e6da4; 605 | } 606 | 607 | .icon:hover { 608 | background-color: #286090; 609 | border-color: #204d74; 610 | } 611 | 612 | .size { 613 | width: 6ex; 614 | } 615 | 616 | .help { 617 | cursor: help; 618 | } 619 | 620 | .footer p:first-child { 621 | position: fixed; 622 | bottom: 0; 623 | left: 266px; 624 | padding: 8px; 625 | background: #f5f5f5; 626 | border: 1px solid #ddd; 627 | width: 100%; 628 | margin: 0; 629 | } 630 | 631 | .footer { 632 | border-image: none; 633 | border-top-color: transparent; 634 | position: relative; 635 | bottom: 0; 636 | background: #fff; 637 | padding: 1px 0 .5em; 638 | } 639 | 640 | .footer > div { 641 | background: #fff; 642 | } 643 | 644 | .links a { 645 | white-space: nowrap; 646 | margin-right: 5px; 647 | color: inherit; 648 | vertical-align: middle; 649 | display: inline-block; 650 | } 651 | 652 | .rtl .links a { 653 | margin-right: 0; 654 | margin-left: 5px; 655 | } 656 | 657 | .links a:hover { 658 | text-decoration: none; 659 | color: inherit; 660 | } 661 | 662 | .links a.active { 663 | font-weight: inherit; 664 | } 665 | 666 | .logout { 667 | margin: 0; 668 | position: fixed; 669 | top: 4px; 670 | right: 4px; 671 | z-index: 710; 672 | } 673 | 674 | .rtl .logout { 675 | left: 4px; 676 | right: auto; 677 | margin-top: 0; 678 | } 679 | 680 | .loadmore { 681 | margin-left: 1ex; 682 | } 683 | 684 | #sensor { 685 | width: 1px; 686 | background: #ddd; 687 | position: fixed; 688 | top: 0; 689 | left: 0; 690 | height: 100%; 691 | z-index: 720; 692 | } 693 | 694 | .rtl #sensor { 695 | left: auto; 696 | right: 0; 697 | } 698 | 699 | #menu { 700 | position: absolute; 701 | margin: 10px 0 0; 702 | padding: 0 0 30px 0; 703 | top: 210px; 704 | left: 0; 705 | width: 266px; 706 | /*background: red;*/ 707 | /*position: fixed;*/ 708 | /*overflow: scroll;*/ 709 | /*border-right: 1px solid #ddd;*/ 710 | } 711 | 712 | #menu h1 { 713 | background: #fff; 714 | position: fixed; 715 | top: 0; 716 | left: 0; 717 | z-index: 710; 718 | margin: 0; 719 | width: 246px; 720 | border-right: 1px solid #ddd; 721 | border-bottom: 1px solid #ddd; 722 | padding: 2px 10px 14px; 723 | height: 28px; 724 | text-align: center; 725 | } 726 | 727 | .rtl #menu h1 { 728 | left: auto; 729 | right: 0; 730 | border-left: 1px solid #ddd; 731 | border-right: 0; 732 | } 733 | 734 | #menu p, 735 | #logins, 736 | #tables { 737 | padding: 0; 738 | margin: 0; 739 | border-bottom: 0; 740 | border-color: #ddd; 741 | } 742 | 743 | #menu .active { 744 | color: #333; 745 | } 746 | 747 | #menu .message { 748 | background: transparent; 749 | border: 0; 750 | padding: 5px; 751 | color: #31708f; 752 | position: fixed; 753 | top: 210px; 754 | left: 0; 755 | } 756 | 757 | #logins, 758 | #tables { 759 | position: fixed; 760 | /*top: 210px;*/ 761 | top: 40px; 762 | left: 0; 763 | /*background: orange;*/ 764 | height: 100px; 765 | width: 266px; 766 | overflow: hidden !important; 767 | border-right: 1px solid #ddd; 768 | background: #fff; 769 | } 770 | 771 | #logins { 772 | height: 100%; 773 | } 774 | 775 | .rtl #logins, 776 | .rtl #tables { 777 | /*top: 210px;*/ 778 | top: 40px; 779 | left: auto; 780 | right: 0; 781 | border-right: 0; 782 | border-left: 1px solid #ddd; 783 | } 784 | 785 | #tables:hover { 786 | overflow-y: auto !important; 787 | } 788 | 789 | #logins a, 790 | /* #logins li, */ 791 | #tables li { 792 | list-style: none; 793 | padding: 10px 15px; 794 | margin-bottom: -1px; 795 | /*background-color: #fff;*/ 796 | border-bottom: 1px solid #ddd; 797 | display: block; 798 | cursor: pointer; 799 | border-top: 1px solid #ddd; 800 | text-decoration: none; 801 | } 802 | 803 | #logins a:hover, 804 | #tables li:hover { 805 | background: #f5f5f5; 806 | border-top: 1px solid #ddd 807 | } 808 | 809 | #logins a, 810 | #tables li a { 811 | overflow: hidden !important; 812 | text-decoration: none; 813 | color: #333; 814 | } 815 | 816 | #tables li.active { 817 | background-color: #337ab7; 818 | } 819 | 820 | #tables li.active a:before, 821 | #tables li.active a { 822 | color: #fff; 823 | font-weight: normal; 824 | } 825 | 826 | /*#tables li:last-child { 827 | border-bottom: 10px solid #fff; 828 | }*/ 829 | /* #tables li a { 830 | height: 100%; 831 | background: green; 832 | display: inline-block; 833 | padding: 10px 15px; 834 | } 835 | #tables li a.select { 836 | background: red; 837 | width: 100%; 838 | } 839 | */ 840 | #tables li a.structure { 841 | /*background: blue;*/ 842 | /*width: 100%;*/ 843 | /*left: 0;*/ 844 | box-sizing: border-box; 845 | /*width: 100%;*/ 846 | /*max-width: 20px !important;*/ 847 | text-overflow: ellipsis; 848 | } 849 | 850 | #tables li a.active { 851 | } 852 | 853 | #edit-fields tbody tr:hover td, 854 | #edit-fields tbody tr:hover th { 855 | background: #f5f5f5; 856 | } 857 | 858 | #dbs { 859 | overflow: hidden; 860 | background: #f5f5f5; 861 | /*background: transparent; 862 | background: yellow;*/ 863 | position: fixed; 864 | top: 45px; 865 | left: 0; 866 | height: 40px; 867 | width: 246px; 868 | border-right: 1px solid #ddd; 869 | padding: 10px !important; 870 | font-size: 0; 871 | } 872 | 873 | .rtl #dbs { 874 | left: auto; 875 | right: 0; 876 | border-left: 1px solid #ddd; 877 | border-right: 0; 878 | } 879 | 880 | #dbs span { 881 | display: none; 882 | } 883 | 884 | #dbs select { 885 | width: 100%; 886 | } 887 | 888 | #dbs input[name=db] { 889 | width: 150px; 890 | margin-right: 10px; 891 | } 892 | 893 | #menu .links { 894 | width: 246px; 895 | border-right: 1px solid #ddd; 896 | border-bottom: 1px solid #ddd; 897 | background: #f5f5f5; 898 | /*background: transparent; 899 | background: blue;*/ 900 | position: fixed; 901 | top: 105px; 902 | left: 0; 903 | padding: 0 10px 10px !important; 904 | /*height: 60px;*/ 905 | z-index: 700; 906 | } 907 | 908 | .rtl #menu .links { 909 | left: auto; 910 | right: 0; 911 | border-left: 1px solid #ddd; 912 | border-right: 0; 913 | } 914 | 915 | #menu .links a { 916 | padding: 1px 0; 917 | font-size: 12px; 918 | width: 100%; 919 | margin-bottom: 5px; 920 | font-weight: normal; 921 | line-height: 1.42857143; 922 | text-align: center; 923 | white-space: nowrap; 924 | vertical-align: middle; 925 | display: inline-block; 926 | } 927 | 928 | #logins, 929 | #tables { 930 | white-space: nowrap; 931 | overflow: hidden; 932 | } 933 | 934 | #logins a, 935 | #tables a, 936 | #tables span { 937 | background: transparent; 938 | } 939 | 940 | #content { 941 | /* margin: 28px 0 0 294px; 942 | padding: 10px 20px 20px 0; */ 943 | margin: 28px 0 0 266px; 944 | padding: 10px 20px 40px 20px; 945 | /*background: #00f;*/ 946 | border-left: 1px solid #ddd; 947 | } 948 | 949 | .rtl #content { 950 | margin: 28px 266px 0 0; 951 | padding: 10px 20px 40px 20px; 952 | border-left: 0; 953 | border-right: 1px solid #ddd; 954 | } 955 | 956 | #lang { 957 | position: fixed; 958 | top: 4px; 959 | left: auto; 960 | right: 4px; 961 | line-height: 1.8em; 962 | padding: .3em 1em; 963 | z-index: 710; 964 | font-size: 0; 965 | } 966 | 967 | .rtl #lang { 968 | right: auto; 969 | left: 4px; 970 | } 971 | 972 | #breadcrumb { 973 | white-space: nowrap; 974 | position: fixed; 975 | top: 0; 976 | left: 0; 977 | background: #f5f5f5; 978 | border-bottom: 1px solid #ddd; 979 | height: 28px; 980 | line-height: 1.8em; 981 | margin: 0 0 0 -18px; 982 | padding: 8px 15px 8px 306px; 983 | width: 100%; 984 | z-index: 700; 985 | } 986 | 987 | .rtl #breadcrumb { 988 | left: auto; 989 | right: 0; 990 | margin: 0 -18px 0 0; 991 | } 992 | 993 | /* .rtl #breadcrumb { 994 | left: auto; 995 | right: 21em; 996 | margin: 0 -18px 0 0; 997 | } */ 998 | #h1 { 999 | color: #7894c4; 1000 | text-decoration: none; 1001 | font-style: italic; 1002 | } 1003 | 1004 | #schema { 1005 | margin-left: 60px; 1006 | position: relative; 1007 | -moz-user-select: none; 1008 | -webkit-user-select: none; 1009 | } 1010 | 1011 | #schema .table { 1012 | border: 1px solid #ddd; 1013 | padding: 0 2px; 1014 | cursor: move; 1015 | position: absolute; 1016 | box-shadow: 0 1px 1px #0000001a; 1017 | background: #f5f5f566; 1018 | line-height: 1.26; 1019 | font-size: 14px; 1020 | } 1021 | 1022 | #schema .table a { 1023 | background: #f5f5f5; 1024 | font-weight: bold; 1025 | border: 1px solid #ddd; 1026 | width: 100%; 1027 | display: block; 1028 | margin: -14px -3px; 1029 | padding: 2px; 1030 | } 1031 | 1032 | #schema .references { 1033 | position: absolute; 1034 | } 1035 | 1036 | #help { 1037 | position: absolute; 1038 | border: 1px solid #999; 1039 | background: #eee; 1040 | padding: 5px; 1041 | font-family: monospace; 1042 | z-index: 1; 1043 | } 1044 | 1045 | /* .rtl p, 1046 | .rtl table, 1047 | .rtl .error, 1048 | .rtl .message { 1049 | margin: 1em 20px 0 0; 1050 | } */ 1051 | .rtl .pages { 1052 | left: auto; 1053 | right: 21em; 1054 | } 1055 | 1056 | .rtl input.wayoff { 1057 | left: auto; 1058 | right: -1000px; 1059 | } 1060 | 1061 | /* .rtl #lang, 1062 | .rtl #menu { 1063 | left: auto; 1064 | right: 0; 1065 | } */ 1066 | @media all and (max-device-width: 880px) { 1067 | .pages { 1068 | left: auto; 1069 | } 1070 | 1071 | #menu { 1072 | position: static; 1073 | width: auto; 1074 | } 1075 | 1076 | #content { 1077 | margin-left: 10px; 1078 | } 1079 | 1080 | #lang { 1081 | position: static; 1082 | border-top: 1px solid #999; 1083 | } 1084 | 1085 | #breadcrumb { 1086 | left: auto; 1087 | } 1088 | 1089 | .rtl .pages { 1090 | right: auto; 1091 | } 1092 | 1093 | .rtl #content { 1094 | margin-right: 10px; 1095 | } 1096 | 1097 | .rtl #breadcrumb { 1098 | right: auto; 1099 | } 1100 | } 1101 | 1102 | @media print { 1103 | #lang, 1104 | #menu { 1105 | display: none; 1106 | } 1107 | 1108 | #content { 1109 | margin-left: 1em; 1110 | } 1111 | 1112 | #breadcrumb { 1113 | left: 1em; 1114 | } 1115 | 1116 | .nowrap td, 1117 | .nowrap th, 1118 | td.nowrap { 1119 | white-space: normal; 1120 | } 1121 | } 1122 | 1123 | .jush { 1124 | color: black; 1125 | } 1126 | 1127 | .jush-htm_com, 1128 | .jush-com, 1129 | .jush-com_code, 1130 | .jush-one, 1131 | .jush-php_doc, 1132 | .jush-php_com, 1133 | .jush-php_one, 1134 | .jush-js_one, 1135 | .jush-js_doc { 1136 | color: gray; 1137 | } 1138 | 1139 | .jush-php, 1140 | .jush-php_new, 1141 | .jush-php_fun { 1142 | color: #003; 1143 | background-color: #fff0f0; 1144 | } 1145 | 1146 | .jush-php_quo, 1147 | .jush-quo, 1148 | .jush-quo_one, 1149 | .jush-php_eot, 1150 | .jush-apo, 1151 | .jush-sql_apo, 1152 | .jush-sqlite_apo, 1153 | .jush-sql_quo, 1154 | .jush-sql_eot { 1155 | color: green; 1156 | } 1157 | 1158 | .jush-php_apo { 1159 | color: #009f00; 1160 | } 1161 | 1162 | .jush-php_quo_var, 1163 | .jush-php_var, 1164 | .jush-sql_var { 1165 | font-style: italic; 1166 | } 1167 | 1168 | .jush-php_apo .jush-php_quo_var, 1169 | .jush-php_apo .jush-php_var { 1170 | font-style: normal; 1171 | } 1172 | 1173 | .jush-php_halt2 { 1174 | background-color: white; 1175 | color: black; 1176 | } 1177 | 1178 | .jush-tag_css, 1179 | .jush-att_css .jush-att_quo, 1180 | .jush-att_css .jush-att_apo, 1181 | .jush-att_css .jush-att_val { 1182 | color: black; 1183 | background-color: #ffffe0; 1184 | } 1185 | 1186 | .jush-tag_js, 1187 | .jush-att_js .jush-att_quo, 1188 | .jush-att_js .jush-att_apo, 1189 | .jush-att_js .jush-att_val, 1190 | .jush-css_js { 1191 | color: black; 1192 | background-color: #f0f0ff; 1193 | } 1194 | 1195 | .jush-tag, 1196 | .jush-xml_tag { 1197 | color: navy; 1198 | } 1199 | 1200 | .jush-att, 1201 | .jush-xml_att, 1202 | .jush-att_js, 1203 | .jush-att_css, 1204 | .jush-att_http { 1205 | color: teal; 1206 | } 1207 | 1208 | .jush-att_quo, 1209 | .jush-att_apo, 1210 | .jush-att_val { 1211 | color: purple; 1212 | } 1213 | 1214 | .jush-ent { 1215 | color: purple; 1216 | } 1217 | 1218 | .jush-js_key, 1219 | .jush-js_key .jush-quo, 1220 | .jush-js_key .jush-apo { 1221 | color: purple; 1222 | } 1223 | 1224 | .jush-js_reg { 1225 | color: navy; 1226 | } 1227 | 1228 | .jush-php_sql .jush-php_quo, 1229 | .jush-php_sql .jush-php_apo, 1230 | .jush-php_sqlite .jush-php_quo, 1231 | .jush-php_sqlite .jush-php_apo, 1232 | .jush-php_pgsql .jush-php_quo, 1233 | .jush-php_pgsql .jush-php_apo, 1234 | .jush-php_mssql .jush-php_quo, 1235 | .jush-php_mssql .jush-php_apo, 1236 | .jush-php_oracle .jush-php_quo, 1237 | .jush-php_oracle .jush-php_apo { 1238 | background-color: #ffbbb0; 1239 | } 1240 | 1241 | .jush-bac, 1242 | .jush-php_bac, 1243 | .jush-bra, 1244 | .jush-mssql_bra, 1245 | .jush-sqlite_quo { 1246 | color: red; 1247 | } 1248 | 1249 | .jush-num, 1250 | .jush-clr { 1251 | color: #007f7f; 1252 | } 1253 | 1254 | .jush a { 1255 | color: navy; 1256 | } 1257 | 1258 | .jush a.jush-help { 1259 | cursor: help; 1260 | } 1261 | 1262 | .jush-sql a, 1263 | .jush-sql_code a, 1264 | .jush-sqlite a, 1265 | .jush-pgsql a, 1266 | .jush-mssql a, 1267 | .jush-oracle a, 1268 | .jush-simpledb a { 1269 | font-weight: bold; 1270 | } 1271 | 1272 | .jush-php_sql .jush-php_quo a, 1273 | .jush-php_sql .jush-php_apo a { 1274 | font-weight: normal; 1275 | } 1276 | 1277 | .jush-tag a, 1278 | .jush-att a, 1279 | .jush-apo a, 1280 | .jush-quo a, 1281 | .jush-php_apo a, 1282 | .jush-php_quo a, 1283 | .jush-php_eot2 a { 1284 | color: inherit; 1285 | color: expression(parentNode.currentStyle.color); 1286 | } 1287 | 1288 | a.jush-custom:link, 1289 | a.jush-custom:visited { 1290 | font-weight: normal; 1291 | color: inherit; 1292 | color: expression(parentNode.currentStyle.color); 1293 | } 1294 | 1295 | .jush p { 1296 | margin: 0; 1297 | } 1298 | 1299 | /* 1300 | ICONS 1301 | */ 1302 | @font-face { 1303 | font-family: 'FontAwesome'; 1304 | src: url('fonts/fontawesome-webfont.eot?#iefix&v=4.6.3') format('embedded-opentype'), url('fonts/fontawesome-webfont.woff2?v=4.6.3') format('woff2'), url('fonts/fontawesome-webfont.woff?v=4.6.3') format('woff'), url('fonts/fontawesome-webfont.ttf?v=4.6.3') format('truetype'), url('fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular') format('svg'); 1305 | font-weight: normal; 1306 | font-style: normal; 1307 | } 1308 | 1309 | #tables a:before, 1310 | .links a:before, 1311 | #scroller a:before { 1312 | position: relative; 1313 | top: 1px; 1314 | margin-right: 2px; 1315 | display: inline-block; 1316 | font-family: FontAwesome; 1317 | font-style: normal; 1318 | font-weight: normal; 1319 | line-height: 1; 1320 | font-size: 14px; 1321 | -webkit-font-smoothing: antialiased; 1322 | -moz-osx-font-smoothing: grayscale; 1323 | color: #333; 1324 | } 1325 | 1326 | .rtl #tables a:before, 1327 | .rtl .links a:before { 1328 | display: none; 1329 | } 1330 | 1331 | .rtl #tables a:after, 1332 | .rtl .links a:after { 1333 | position: relative; 1334 | top: 1px; 1335 | margin-right: 2px; 1336 | display: inline-block; 1337 | font-family: FontAwesome; 1338 | font-style: normal; 1339 | font-weight: normal; 1340 | line-height: 1; 1341 | font-size: 14px; 1342 | -webkit-font-smoothing: antialiased; 1343 | -moz-osx-font-smoothing: grayscale; 1344 | color: #333; 1345 | } 1346 | 1347 | #tables a[href*="&select="] { 1348 | font-size: 0 1349 | } 1350 | 1351 | #tables a[href*="&select="]:before, 1352 | .rtl #tables a[href*="&select="]:after { 1353 | /*content: "\f03a";*/ 1354 | content: "\f0ce"; 1355 | color: #337ab7; 1356 | } 1357 | 1358 | #tables a[href*="&table="]:before, 1359 | .rtl #tables a[href*="&table="]:after { 1360 | /*content: "\f0ce";*/ 1361 | } 1362 | 1363 | .links a[href*="&sql="]:before { 1364 | content: "\f120"; 1365 | } 1366 | 1367 | .links a[href*="&import="]:before { 1368 | content: "\f01a"; 1369 | } 1370 | 1371 | .links a[href*="&dump="]:before { 1372 | content: "\f01b"; 1373 | } 1374 | 1375 | .links a[href*="&create="]:before, 1376 | .links a[href*="&db="][href*="&database="]:before, 1377 | .links a[href*="&indexes="]:before { 1378 | content: "\f044"; 1379 | } 1380 | 1381 | .links a[href$="&create="]:before, 1382 | .links a[href$="&database="]:before, 1383 | .links a[href$="&indexes="]:before { 1384 | content: "\f067"; 1385 | } 1386 | 1387 | .links a[href*="&schema="]:before { 1388 | content: "\f00a"; 1389 | } 1390 | 1391 | .links a#schema-link:before { 1392 | content: "\f0c1"; 1393 | } 1394 | 1395 | .links a[href*="&privileges="]:before { 1396 | content: "\f0c0"; 1397 | } 1398 | 1399 | .links a[href*="&view="]:before { 1400 | content: "\f06e"; 1401 | } 1402 | 1403 | .links a[href*="&procedure="]:before, 1404 | .links a[href*="&function="]:before { 1405 | content: "\f0ad"; 1406 | } 1407 | 1408 | .links a[href*="&event="]:before { 1409 | content: "\f01e"; 1410 | } 1411 | 1412 | .links a[href*="&edit="]:before { 1413 | content: "\f055"; 1414 | } 1415 | 1416 | .links a[href*="&table="]:before { 1417 | content: "\f085"; 1418 | } 1419 | 1420 | .links a[href*="&select="]:before { 1421 | content: "\f03a"; 1422 | } 1423 | 1424 | .links a[href*="&processlist="]:before { 1425 | content: "\f022"; 1426 | } 1427 | 1428 | .links a[href*="&status="]:before { 1429 | content: "\f0ae"; 1430 | } 1431 | 1432 | .links a[href*="&variables="]:before { 1433 | content: "\f155"; 1434 | } 1435 | 1436 | .links a[href*="&user="]:before { 1437 | content: "\f007"; 1438 | } 1439 | 1440 | .links a[href*="&replication="]:before { 1441 | content: "\f0c5"; 1442 | } 1443 | 1444 | .links a[href*="&check="]:before, 1445 | .links a[href*="&foreign="]:before, 1446 | .links a[href*="&trigger="]:before { 1447 | content: "\f067"; 1448 | } 1449 | 1450 | .js fieldset > .hidden { 1451 | display: block; 1452 | margin: 5px; 1453 | text-align: center; 1454 | } 1455 | 1456 | .js fieldset > .hidden:before { 1457 | position: relative; 1458 | top: 1px; 1459 | display: inline-block; 1460 | font-family: FontAwesome; 1461 | font-style: normal; 1462 | font-weight: normal; 1463 | line-height: 1; 1464 | -webkit-font-smoothing: antialiased; 1465 | -moz-osx-font-smoothing: grayscale; 1466 | color: #e2e2e2; 1467 | font-size: 24px; 1468 | margin-top: 1px; 1469 | } 1470 | 1471 | .js fieldset > .hidden * { 1472 | display: none !important; 1473 | } 1474 | 1475 | #fieldset-select.hidden:before { 1476 | content: "\f009"; 1477 | } 1478 | 1479 | #fieldset-search.hidden:before { 1480 | content: "\f002"; 1481 | } 1482 | 1483 | #fieldset-sort.hidden:before { 1484 | content: "\f160"; 1485 | } 1486 | 1487 | #fieldset-export.hidden:before { 1488 | content: "\f01b"; 1489 | } 1490 | 1491 | #fieldset-import.hidden:before { 1492 | content: "\f01a"; 1493 | } 1494 | 1495 | #fieldset-history.hidden:before { 1496 | content: "\f1da"; 1497 | } 1498 | 1499 | #fieldset-history br { 1500 | display: block; 1501 | margin-bottom: 20px 1502 | } 1503 | 1504 | #fieldset-history.hidden br { 1505 | display: none 1506 | } 1507 | 1508 | #fieldset-partition.hidden:before { 1509 | content: "\f065"; 1510 | } 1511 | 1512 | /*a.json-icon::before { 1513 | display: inline-block; 1514 | width: 20px; 1515 | height: 18px; 1516 | line-height: 18px; 1517 | font-family: FontAwesome; 1518 | font-size: 14px; 1519 | vertical-align: -3px; 1520 | content: "\f120"; 1521 | }*/ 1522 | .json-icon { 1523 | margin: 5px 0; 1524 | } 1525 | 1526 | .json { 1527 | border-color: #cde; 1528 | border-left: 7px solid #cde; 1529 | background: #e8f0fa; 1530 | margin: 5px 0; 1531 | } 1532 | 1533 | .json th { 1534 | border-right-color: #cde; 1535 | } 1536 | 1537 | #scroller { 1538 | display: none; 1539 | background: #fff; 1540 | bottom: 20px; 1541 | right: 20px; 1542 | position: fixed; 1543 | z-index: 999; 1544 | border: 1px solid #ddd; 1545 | transition: all linear .2s; 1546 | opacity: .8; 1547 | border-radius: 4px; 1548 | } 1549 | 1550 | .rtl #scroller { 1551 | right: auto; 1552 | left: 20px; 1553 | } 1554 | 1555 | #scroller a { 1556 | display: block; 1557 | color: #333; 1558 | font-size: 20px; 1559 | padding: 6px 12px; 1560 | opacity: .8; 1561 | } 1562 | 1563 | #scroller a:hover { 1564 | background-color: #f5f5f5; 1565 | opacity: 1; 1566 | } 1567 | 1568 | #scroller a:first-child { 1569 | border-bottom: 1px solid #ddd; 1570 | } 1571 | 1572 | #scroller a:first-child:before { 1573 | content: "\f077"; 1574 | } 1575 | 1576 | #scroller a:last-child:before { 1577 | content: "\f078"; 1578 | } 1579 | 1580 | #toggle { 1581 | background: #fff; 1582 | border: 1px solid #ddd; 1583 | width: 20px; 1584 | display: inline-block; 1585 | margin-right: 20px; 1586 | text-align: center; 1587 | } 1588 | 1589 | .rtl #toggle { 1590 | margin-left: 20px; 1591 | margin-right: 0; 1592 | } 1593 | 1594 | #toggle:hover { 1595 | background: #e6e6e6; 1596 | border-color: #adadad; 1597 | } 1598 | 1599 | #toggle:before { 1600 | content: "\f0c9"; 1601 | position: relative; 1602 | top: 1px; 1603 | display: inline-block; 1604 | font-family: FontAwesome; 1605 | font-style: normal; 1606 | font-weight: normal; 1607 | line-height: 1; 1608 | -webkit-font-smoothing: antialiased; 1609 | -moz-osx-font-smoothing: grayscale; 1610 | color: #333; 1611 | font-size: 14px; 1612 | margin-top: 1px; 1613 | padding: 2px; 1614 | } 1615 | -------------------------------------------------------------------------------- /public/assets/styles.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Adminer Bootstrap-Like Design 3 | * 4 | * @author Natan Felles, https://natanfelles.github.io 5 | * @link https://github.com/natanfelles/adminer-bootstrap-like 6 | * @link https://www.adminer.org/plugins/#use 7 | * @license https://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0 8 | * @license https://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other) 9 | */body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background:#fff;margin:0}a,a:visited{color:#337ab7;text-decoration:none}a:link:hover,a:visited:hover{color:#23527c;text-decoration:underline}a.text:hover{text-decoration:none}a.jush-help:hover{color:inherit}h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:#333;margin-top:10px;margin-bottom:10px;padding:0}h1,h2,.rtl h2,h3{margin-top:20px;background:#fff;border:0}h1{font-size:36px}h2{font-size:30px;padding-left:20px;margin-bottom:14px}.rtl h2{margin:20px 0 14px 0;padding-left:0;padding-right:20px}h3{font-size:24px}h4{font-size:18px}h5{font-size:14px}h6{font-size:12px}form{margin:0}td table{width:100%;margin:0}table{margin:1em 20px 0 0;border-collapse:collapse;font-size:inherit;border-top-width:2px}table,td,th{border-color:#ddd}.rtl table{margin:1em 0 0 20px}td,th{padding:8px;line-height:1.42857143;border:1px solid #ddd}th{background:transparent;text-align:left;font-weight:bold}thead th{text-align:left;padding:8px}thead td,thead th{background:#fff;border-bottom:4px solid #ddd;border-right:1px solid #ddd;font-weight:bold;color:#333}thead th a{color:#337ab7}#login-form{padding:15px;margin:10px 5px 10px 0;background:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.05);max-width:400px}#login-form table{width:100%}#login-form table,#login-form th,#login-form td{border:0;background:#fff}#login-form input,#login-form select{box-sizing:border-box;width:100%}#login-form input[type=checkbox]{box-sizing:unset;width:auto}#login-form label{display:inline-block;margin-top:20px}fieldset{display:inline;vertical-align:top;padding:15px;margin:10px 5px 10px 0;background:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.05);min-height:80px}legend{padding:10px 15px;background:#f5f5f5;border:1px solid #ddd;border-radius:3px 3px 0 0;width:100%;margin:0 -16px}fieldset input,fieldset select{margin-right:5px}fieldset div input:last-child{margin-right:0}p,.rtl p{margin:10px 0}img{vertical-align:middle;border:0}td img{max-width:200px;max-height:200px}code,pre{font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:1em}code{padding:2px 4px;font-size:90%;color:#333;background:transparent;border-radius:4px}code.jush-sql{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}tbody tr:hover td,tbody tr:hover th,.odds tbody tr:nth-child(2n){background:#f5f5f5}pre{margin:1em 0 0;overflow:auto}pre,textarea{font:100%/1.25 monospace}input,select,textarea,pre.sqlarea,.links a{background:#fff;border:1px solid #ccc;border-radius:4px;color:#555;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;resize:none;padding:6px 12px}pre.sqlarea{border:1px solid #ccc !important;padding:6px 12px !important;resize:vertical !important;box-sizing:border-box;width:100%}input:focus,select:focus,textarea:focus,pre.sqlarea:focus{border-color:#66afe9;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}pre.sqlarea:focus{border-color:#66afe9 !important}input[type=submit],.links a{cursor:pointer;box-shadow:none}input[type=submit]:hover,.links a:hover,.links a.active{background:#e6e6e6;border-color:#adadad}input[type=submit]:focus,.links a:focus,.links a.active{border-color:#8c8c8c}input[type=submit]:active,.links a:active,.links a.active{background-image:none;outline:0;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}#login-form input[type=submit],input[value=Save]{color:#fff;background-color:#337ab7;border-color:#2e6da4}#login-form input[type=submit]:hover,input[value=Save]:hover{background-color:#286090;border-color:#204d74}#login-form input[type=submit]:focus,input[value=Save]:focus{border-color:#122b40}input[name=delete],input[name=drop]{color:#fff;background-color:#d9534f;border-color:#d43f3a}input[name=delete]:hover,input[name=drop]:hover{background-color:#c9302c;border-color:#761c19}input[name=delete]:focus,input[name=drop]:focus{border-color:#ac2925}input[type=file]{border:0;padding:0;box-shadow:none}input[type=image]{vertical-align:middle}input.default{box-shadow:none}input.required,input.maxlength{border-color:#843534;box-shadow:inset 0 1px 1px #0000001a,0 0 6px #ce8483}input.wayoff{left:-1000px;position:absolute}.block{display:block}#version,.version{color:silver;font-size:14px}#version{color:#c9302c}.js .hidden,.nojs .jsonly{display:none}.js .column{background:#fff;padding:0;margin:-36px 0 0 -62px;border:1px solid #66afe9;border-radius:2px;z-index:10}.js .column a{display:inline-block;padding:0;width:30px;height:30px;overflow:hidden;vertical-align:middle}.js .column a:before{position:relative;display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:30px;height:30px;line-height:30px;font-size:14px;text-align:center;vertical-align:-3px}.js .column a:hover:before{background:#d9edf7}.js .column a[href*='&select=']:before{content:"\f063"}.js .column a[href='#fieldset-search']:before{content:"\f002"}.nowrap td,.nowrap th,td.nowrap,p.nowrap{white-space:pre}.wrap td{white-space:normal}.error,.rtl .error,.message,.rtl .message{margin:0 20px 0 0;padding:15px;border:1px solid;border-radius:4px}.error{color:#a94442;background:#f2dede;border-color:#ebccd1}.error a,.error a:hover{font-weight:bold;color:#843534}.error b{background:transparent;font-weight:normal}.message{color:#3c763d;background:#dff0d8;border-color:#d6e9c6}.message a,.message a:hover{font-weight:bold;color:#2b542c}.error code a:hover,.message code a:hover{color:#23527c}.char{color:#007f00}.date{color:#7f007f}.enum{color:#007f7f}.binary{color:red}.odd td,.odd th{background:#f9f9f9}.js .checkable .checked td,.js .checkable .checked th{background:#d9edf7;color:#333}.js .checkable .checked:hover td,.js .checkable .checked:hover th{background:#d9edf7}.js .checkable .checked a{color:#337ab7}.time{color:silver;font-size:70%;float:right}.function{text-align:right}.number{text-align:right}.datetime{text-align:right}.type{width:15ex;width:auto \9}.options select{width:20ex;width:auto \9}.view{font-style:italic}.active{font-weight:bold}.sqlarea{width:98%}.icon{width:18px;height:18px;background-color:#337ab7;border:1px solid #2e6da4}.icon:hover{background-color:#286090;border-color:#204d74}.size{width:6ex}.help{cursor:help}.footer p:first-child{position:fixed;bottom:0;left:266px;padding:8px;background:#f5f5f5;border:1px solid #ddd;width:100%;margin:0}.footer{border-image:none;border-top-color:transparent;position:relative;bottom:0;background:#fff;padding:1px 0 .5em}.footer>div{background:#fff}.links a{white-space:nowrap;margin-right:5px;color:inherit;vertical-align:middle;display:inline-block}.rtl .links a{margin-right:0;margin-left:5px}.links a:hover{text-decoration:none;color:inherit}.links a.active{font-weight:inherit}.logout{margin:0;position:fixed;top:4px;right:4px;z-index:710}.rtl .logout{left:4px;right:auto;margin-top:0}.loadmore{margin-left:1ex}#sensor{width:1px;background:#ddd;position:fixed;top:0;left:0;height:100%;z-index:720}.rtl #sensor{left:auto;right:0}#menu{position:absolute;margin:10px 0 0;padding:0 0 30px 0;top:210px;left:0;width:266px}#menu h1{background:#fff;position:fixed;top:0;left:0;z-index:710;margin:0;width:246px;border-right:1px solid #ddd;border-bottom:1px solid #ddd;padding:2px 10px 14px;height:28px;text-align:center}.rtl #menu h1{left:auto;right:0;border-left:1px solid #ddd;border-right:0}#menu p,#logins,#tables{padding:0;margin:0;border-bottom:0;border-color:#ddd}#menu .active{color:#333}#menu .message{background:transparent;border:0;padding:5px;color:#31708f;position:fixed;top:210px;left:0}#logins,#tables{position:fixed;top:40px;left:0;height:100px;width:266px;overflow:hidden !important;border-right:1px solid #ddd;background:#fff}#logins{height:100%}.rtl #logins,.rtl #tables{top:40px;left:auto;right:0;border-right:0;border-left:1px solid #ddd}#tables:hover{overflow-y:auto !important}#logins a,#tables li{list-style:none;padding:10px 15px;margin-bottom:-1px;border-bottom:1px solid #ddd;display:block;cursor:pointer;border-top:1px solid #ddd;text-decoration:none}#logins a:hover,#tables li:hover{background:#f5f5f5;border-top:1px solid #ddd}#logins a,#tables li a{overflow:hidden !important;text-decoration:none;color:#333}#tables li.active{background-color:#337ab7}#tables li.active a:before,#tables li.active a{color:#fff;font-weight:normal}#tables li a.structure{box-sizing:border-box;text-overflow:ellipsis}#edit-fields tbody tr:hover td,#edit-fields tbody tr:hover th{background:#f5f5f5}#dbs{overflow:hidden;background:#f5f5f5;position:fixed;top:45px;left:0;height:40px;width:246px;border-right:1px solid #ddd;padding:10px !important;font-size:0}.rtl #dbs{left:auto;right:0;border-left:1px solid #ddd;border-right:0}#dbs span{display:none}#dbs select{width:100%}#dbs input[name=db]{width:150px;margin-right:10px}#menu .links{width:246px;border-right:1px solid #ddd;border-bottom:1px solid #ddd;background:#f5f5f5;position:fixed;top:105px;left:0;padding:0 10px 10px !important;z-index:700}.rtl #menu .links{left:auto;right:0;border-left:1px solid #ddd;border-right:0}#menu .links a{padding:1px 0;font-size:12px;width:100%;margin-bottom:5px;font-weight:normal;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;display:inline-block}#logins,#tables{white-space:nowrap;overflow:hidden}#logins a,#tables a,#tables span{background:transparent}#content{margin:28px 0 0 266px;padding:10px 20px 40px 20px;border-left:1px solid #ddd}.rtl #content{margin:28px 266px 0 0;padding:10px 20px 40px 20px;border-left:0;border-right:1px solid #ddd}#lang{position:fixed;top:4px;left:auto;right:4px;line-height:1.8em;padding:.3em 1em;z-index:710;font-size:0}.rtl #lang{right:auto;left:4px}#breadcrumb{white-space:nowrap;position:fixed;top:0;left:0;background:#f5f5f5;border-bottom:1px solid #ddd;height:28px;line-height:1.8em;margin:0 0 0 -18px;padding:8px 15px 8px 306px;width:100%;z-index:700}.rtl #breadcrumb{left:auto;right:0;margin:0 -18px 0 0}#h1{color:#7894c4;text-decoration:none;font-style:italic}#schema{margin-left:60px;position:relative;-moz-user-select:none;-webkit-user-select:none}#schema .table{border:1px solid #ddd;padding:0 2px;cursor:move;position:absolute;box-shadow:0 1px 1px #0000001a;background:#f5f5f566;line-height:1.26;font-size:14px}#schema .table a{background:#f5f5f5;font-weight:bold;border:1px solid #ddd;width:100%;display:block;margin:-14px -3px;padding:2px}#schema .references{position:absolute}#help{position:absolute;border:1px solid #999;background:#eee;padding:5px;font-family:monospace;z-index:1}.rtl .pages{left:auto;right:21em}.rtl input.wayoff{left:auto;right:-1000px}@media all and (max-device-width:880px){.pages{left:auto}#menu{position:static;width:auto}#content{margin-left:10px}#lang{position:static;border-top:1px solid #999}#breadcrumb{left:auto}.rtl .pages{right:auto}.rtl #content{margin-right:10px}.rtl #breadcrumb{right:auto}}@media print{#lang,#menu{display:none}#content{margin-left:1em}#breadcrumb{left:1em}.nowrap td,.nowrap th,td.nowrap{white-space:normal}}.jush{color:black}.jush-htm_com,.jush-com,.jush-com_code,.jush-one,.jush-php_doc,.jush-php_com,.jush-php_one,.jush-js_one,.jush-js_doc{color:gray}.jush-php,.jush-php_new,.jush-php_fun{color:#003;background-color:#fff0f0}.jush-php_quo,.jush-quo,.jush-quo_one,.jush-php_eot,.jush-apo,.jush-sql_apo,.jush-sqlite_apo,.jush-sql_quo,.jush-sql_eot{color:green}.jush-php_apo{color:#009f00}.jush-php_quo_var,.jush-php_var,.jush-sql_var{font-style:italic}.jush-php_apo .jush-php_quo_var,.jush-php_apo .jush-php_var{font-style:normal}.jush-php_halt2{background-color:white;color:black}.jush-tag_css,.jush-att_css .jush-att_quo,.jush-att_css .jush-att_apo,.jush-att_css .jush-att_val{color:black;background-color:#ffffe0}.jush-tag_js,.jush-att_js .jush-att_quo,.jush-att_js .jush-att_apo,.jush-att_js .jush-att_val,.jush-css_js{color:black;background-color:#f0f0ff}.jush-tag,.jush-xml_tag{color:navy}.jush-att,.jush-xml_att,.jush-att_js,.jush-att_css,.jush-att_http{color:teal}.jush-att_quo,.jush-att_apo,.jush-att_val{color:purple}.jush-ent{color:purple}.jush-js_key,.jush-js_key .jush-quo,.jush-js_key .jush-apo{color:purple}.jush-js_reg{color:navy}.jush-php_sql .jush-php_quo,.jush-php_sql .jush-php_apo,.jush-php_sqlite .jush-php_quo,.jush-php_sqlite .jush-php_apo,.jush-php_pgsql .jush-php_quo,.jush-php_pgsql .jush-php_apo,.jush-php_mssql .jush-php_quo,.jush-php_mssql .jush-php_apo,.jush-php_oracle .jush-php_quo,.jush-php_oracle .jush-php_apo{background-color:#ffbbb0}.jush-bac,.jush-php_bac,.jush-bra,.jush-mssql_bra,.jush-sqlite_quo{color:red}.jush-num,.jush-clr{color:#007f7f}.jush a{color:navy}.jush a.jush-help{cursor:help}.jush-sql a,.jush-sql_code a,.jush-sqlite a,.jush-pgsql a,.jush-mssql a,.jush-oracle a,.jush-simpledb a{font-weight:bold}.jush-php_sql .jush-php_quo a,.jush-php_sql .jush-php_apo a{font-weight:normal}.jush-tag a,.jush-att a,.jush-apo a,.jush-quo a,.jush-php_apo a,.jush-php_quo a,.jush-php_eot2 a{color:inherit;color:expression(parentNode.currentStyle.color)}a.jush-custom:link,a.jush-custom:visited{font-weight:normal;color:inherit;color:expression(parentNode.currentStyle.color)}.jush p{margin:0}@font-face{font-family:'FontAwesome';src:url('fonts/fontawesome-webfont.eot?#iefix&v=4.6.3') format('embedded-opentype'),url('fonts/fontawesome-webfont.woff2?v=4.6.3') format('woff2'),url('fonts/fontawesome-webfont.woff?v=4.6.3') format('woff'),url('fonts/fontawesome-webfont.ttf?v=4.6.3') format('truetype'),url('fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}#tables a:before,.links a:before,#scroller a:before{position:relative;top:1px;margin-right:2px;display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#333}.rtl #tables a:before,.rtl .links a:before{display:none}.rtl #tables a:after,.rtl .links a:after{position:relative;top:1px;margin-right:2px;display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#333}#tables a[href*="&select="]{font-size:0}#tables a[href*="&select="]:before,.rtl #tables a[href*="&select="]:after{content:"\f0ce";color:#337ab7}.links a[href*="&sql="]:before{content:"\f120"}.links a[href*="&import="]:before{content:"\f01a"}.links a[href*="&dump="]:before{content:"\f01b"}.links a[href*="&create="]:before,.links a[href*="&db="][href*="&database="]:before,.links a[href*="&indexes="]:before{content:"\f044"}.links a[href$="&create="]:before,.links a[href$="&database="]:before,.links a[href$="&indexes="]:before{content:"\f067"}.links a[href*="&schema="]:before{content:"\f00a"}.links a#schema-link:before{content:"\f0c1"}.links a[href*="&privileges="]:before{content:"\f0c0"}.links a[href*="&view="]:before{content:"\f06e"}.links a[href*="&procedure="]:before,.links a[href*="&function="]:before{content:"\f0ad"}.links a[href*="&event="]:before{content:"\f01e"}.links a[href*="&edit="]:before{content:"\f055"}.links a[href*="&table="]:before{content:"\f085"}.links a[href*="&select="]:before{content:"\f03a"}.links a[href*="&processlist="]:before{content:"\f022"}.links a[href*="&status="]:before{content:"\f0ae"}.links a[href*="&variables="]:before{content:"\f155"}.links a[href*="&user="]:before{content:"\f007"}.links a[href*="&replication="]:before{content:"\f0c5"}.links a[href*="&check="]:before,.links a[href*="&foreign="]:before,.links a[href*="&trigger="]:before{content:"\f067"}.js fieldset>.hidden{display:block;margin:5px;text-align:center}.js fieldset>.hidden:before{position:relative;top:1px;display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#e2e2e2;font-size:24px;margin-top:1px}.js fieldset>.hidden *{display:none !important}#fieldset-select.hidden:before{content:"\f009"}#fieldset-search.hidden:before{content:"\f002"}#fieldset-sort.hidden:before{content:"\f160"}#fieldset-export.hidden:before{content:"\f01b"}#fieldset-import.hidden:before{content:"\f01a"}#fieldset-history.hidden:before{content:"\f1da"}#fieldset-history br{display:block;margin-bottom:20px}#fieldset-history.hidden br{display:none}#fieldset-partition.hidden:before{content:"\f065"}.json-icon{margin:5px 0}.json{border-color:#cde;border-left:7px solid #cde;background:#e8f0fa;margin:5px 0}.json th{border-right-color:#cde}#scroller{display:none;background:#fff;bottom:20px;right:20px;position:fixed;z-index:999;border:1px solid #ddd;transition:all linear .2s;opacity:.8;border-radius:4px}.rtl #scroller{right:auto;left:20px}#scroller a{display:block;color:#333;font-size:20px;padding:6px 12px;opacity:.8}#scroller a:hover{background-color:#f5f5f5;opacity:1}#scroller a:first-child{border-bottom:1px solid #ddd}#scroller a:first-child:before{content:"\f077"}#scroller a:last-child:before{content:"\f078"}#toggle{background:#fff;border:1px solid #ddd;width:20px;display:inline-block;margin-right:20px;text-align:center}.rtl #toggle{margin-left:20px;margin-right:0}#toggle:hover{background:#e6e6e6;border-color:#adadad}#toggle:before{content:"\f0c9";position:relative;top:1px;display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#333;font-size:14px;margin-top:1px;padding:2px} -------------------------------------------------------------------------------- /public/index.php: -------------------------------------------------------------------------------- 1 | 6 | * @link https://github.com/natanfelles/adminer-bootstrap-like 7 | * @link https://www.adminer.org/plugins/#use 8 | * @license https://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0 9 | * @license https://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or 10 | * other) 11 | */ 12 | // ini_set('display_errors', 1); 13 | // ini_set('display_statup_errors', 1); 14 | 15 | require __DIR__ . '/../vendor/autoload.php'; 16 | 17 | function adminer_object() 18 | { 19 | return new AdminerBootstrapLike([ 20 | new AdminerDatabaseHide([ 21 | 'mysql', 22 | 'information_schema', 23 | 'performance_schema', 24 | 'sys', 25 | ]), 26 | // new AdminerEditForeign, 27 | new AdminerEnumOption, 28 | new AdminerTableStructure, 29 | new AdminerTableIndexesStructure, 30 | new AdminerDumpJson, 31 | new AdminerDumpZip, 32 | new AdminerLoginIp(['127.0.0.1']), 33 | ], false); 34 | } 35 | 36 | require __DIR__ . '/../adminer.php'; 37 | -------------------------------------------------------------------------------- /src/AdminerBootstrapLike.php: -------------------------------------------------------------------------------- 1 | 6 | * @link https://github.com/natanfelles/adminer-bootstrap-like 7 | * @link https://www.adminer.org/plugins/#use 8 | * @license https://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0 9 | * @license https://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or 10 | * other) 11 | */ 12 | 13 | /** 14 | * Class AdminerBootstrapLike 15 | */ 16 | class AdminerBootstrapLike extends AdminerPlugin 17 | { 18 | protected $dev = false; 19 | 20 | /** 21 | * Class constructor 22 | * 23 | * @param array $plugins 24 | * @param boolean $dev Set TRUE to development mode 25 | */ 26 | public function __construct($plugins, $dev = false) 27 | { 28 | $this->dev = $dev; 29 | parent::__construct($plugins); 30 | } 31 | 32 | public function head($dark = null) 33 | { 34 | ?> 35 | 36 | 38 | 40 | 41 | 47 | 48 |
49 | 50 |
51 | 52 | Adminer' 58 | . '
'; 59 | } 60 | } 61 | --------------------------------------------------------------------------------