Merge branch 'colresize' into aris

This commit is contained in:
Aris Feryanto 2011-06-03 09:59:56 +07:00
commit 0e73a2e1b3
85 changed files with 24389 additions and 21344 deletions

14
.gitignore vendored
View File

@ -1,14 +1,14 @@
# Directory for creating releases
release
/release/
# Configuration files
config.inc.php
config.header.inc.php
config.footer.inc.php
# Upload/save dirs
upload
save
/upload/
/save/
# For setup script
config
/config/
# ctags
tags
# Editor files
@ -22,12 +22,12 @@ phpmyadmin.wpj
.idea
*.sw[op]
# Locales
locale
/locale/
# Backups
*~
# Javascript sources
sources
/sources/
# API documentation
apidoc
/apidoc/
# Demo server
revision-info.php

View File

@ -11,6 +11,9 @@
+ rfe #2098927 Remember recent tables
+ rfe #3078542 Remember the last sort order for each table
+ AJAX for Create table in navigation panel
+ rfe #3310562 Wording about Column
3.4.3.0 (not yet released)
3.4.2.0 (not yet released)
- bug #3301249 [interface] Iconic table operations does not remove inline edit label
@ -24,6 +27,7 @@
- bug #3306958 [interface] Unnecessary Details slider
- bug #3308476 [interface] "Show all" not persistent after a sort
- bug #3308072 [auth] Version disclosure to anonymous visitors
- bug #3306981 [interface] pmahomme and table statistics
3.4.1.0 (2011-05-20)
- bug #3301108 [interface] Synchronize and already configured host

View File

@ -1934,14 +1934,12 @@ $cfg['TrustedProxies'] =
<dd>Maximum number of characters shown in any non-numeric field on browse view.
Can be turned off by a toggle button on the browse page.</dd>
<dt><span id="cfg_ModifyDeleteAtLeft">$cfg['ModifyDeleteAtLeft'] </span>boolean
<span id="cfg_ModifyDeleteAtRight">$cfg['ModifyDeleteAtRight'] </span>boolean
<dt><span id="cfg_RowActionLinks">$cfg['RowActionLinks'] </span>string
</dt>
<dd>Defines the place where table row links (Edit, Inline edit, Copy,
Delete) would be put when
tables contents are displayed (you may have them displayed both at the
left and at the right).
&quot;Left&quot; and &quot;right&quot; are parsed as &quot;top&quot;
Delete) would be put when tables contents are displayed (you may
have them displayed at the left side, right side, both sides or nowhere).
&quot;left&quot; and &quot;right&quot; are parsed as &quot;top&quot;
and &quot;bottom&quot; with vertical display mode.</dd>
<dt id="cfg_DefaultDisplay">$cfg['DefaultDisplay'] string</dt>

19
js/codemirror/LICENSE Normal file
View File

@ -0,0 +1,19 @@
Copyright (C) 2011 by Marijn Haverbeke <marijnh@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

2035
js/codemirror/lib/codemirror.js vendored Normal file

File diff suppressed because it is too large Load Diff

145
js/codemirror/mode/mysql/mysql.js vendored Normal file
View File

@ -0,0 +1,145 @@
CodeMirror.defineMode("mysql", function(config, parserConfig) {
var indentUnit = config.indentUnit,
keywords = parserConfig.keywords,
functions = parserConfig.functions,
types = parserConfig.types,
attributes = parserConfig.attributes,
multiLineStrings = parserConfig.multiLineStrings;
var isOperatorChar = /[+\-*&%=<>!?:\/|]/;
function chain(stream, state, f) {
state.tokenize = f;
return f(stream, state);
}
var type;
function ret(tp, style) {
type = tp;
return style;
}
function tokenBase(stream, state) {
var ch = stream.next();
// start of string?
if (ch == '"' || ch == "'" || ch == '`')
return chain(stream, state, tokenString(ch));
// is it one of the special signs []{}().,;? Seperator?
else if (/[\[\]{}\(\),;\.]/.test(ch))
return ret(ch);
// start of a number value?
else if (/\d/.test(ch)) {
stream.eatWhile(/[\w\.]/)
return ret("number", "mysql-number");
}
// multi line comment or simple operator?
else if (ch == "/") {
if (stream.eat("*")) {
return chain(stream, state, tokenComment);
}
else {
stream.eatWhile(isOperatorChar);
return ret("operator", "mysql-operator");
}
}
// single line comment or simple operator?
else if (ch == "-") {
if (stream.eat("-")) {
stream.skipToEnd();
return ret("comment", "mysql-comment");
}
else {
stream.eatWhile(isOperatorChar);
return ret("operator", "mysql-operator");
}
}
// pl/sql variable?
else if (ch == "@" || ch == "$") {
stream.eatWhile(/[\w\d\$_]/);
return ret("word", "mysql-var");
}
// is it a operator?
else if (isOperatorChar.test(ch)) {
stream.eatWhile(isOperatorChar);
return ret("operator", "mysql-operator");
}
else {
// get the whole word
stream.eatWhile(/[\w\$_]/);
// is it one of the listed keywords?
if (keywords && keywords.propertyIsEnumerable(stream.current().toLowerCase())) return ret("keyword", "mysql-keyword");
// is it one of the listed functions?
if (functions && functions.propertyIsEnumerable(stream.current().toLowerCase())) return ret("keyword", "mysql-function");
// is it one of the listed types?
if (types && types.propertyIsEnumerable(stream.current().toLowerCase())) return ret("keyword", "mysql-type");
// is it one of the listed attributes?
if (attributes && attributes.propertyIsEnumerable(stream.current().toLowerCase())) return ret("keyword", "mysql-attribute");
// default: just a "word"
return ret("word", "mysql-word");
}
}
function tokenString(quote) {
return function(stream, state) {
var escaped = false, next, end = false;
while ((next = stream.next()) != null) {
if (next == quote && !escaped) {end = true; break;}
escaped = !escaped && next == "\\";
}
if (end || !(escaped || multiLineStrings))
state.tokenize = tokenBase;
return ret("string", "mysql-string");
};
}
function tokenComment(stream, state) {
var maybeEnd = false, ch;
while (ch = stream.next()) {
if (ch == "/" && maybeEnd) {
state.tokenize = tokenBase;
break;
}
maybeEnd = (ch == "*");
}
return ret("comment", "mysql-comment");
}
// Interface
return {
startState: function(basecolumn) {
return {
tokenize: tokenBase,
indented: 0,
startOfLine: true
};
},
token: function(stream, state) {
if (stream.eatSpace()) return null;
var style = state.tokenize(stream, state);
return style;
}
};
});
(function() {
function keywords(str) {
var obj = {}, words = str.split(" ");
for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
return obj;
}
var cKeywords = "accessible action add after against aggregate algorithm all alter analyse analyze and as asc autocommit auto_increment avg_row_length backup begin between binlog both by cascade case change changed charset check checksum collate collation column columns comment commit committed compressed concurrent constraint contains convert create cross current_timestamp database databases day day_hour day_minute day_second definer delayed delay_key_write delete desc describe deterministic distinct distinctrow div do drop dumpfile duplicate dynamic else enclosed end engine engines escape escaped events execute exists explain extended fast fields file first fixed flush for force foreign from full fulltext function gemini gemini_spin_retries global grant grants group having heap high_priority hosts hour hour_minute hour_second identified if ignore in index indexes infile inner insert insert_id insert_method interval into invoker is isolation join key keys kill last_insert_id leading left like limit linear lines load local lock locks logs low_priority maria master master_connect_retry master_host master_log_file master_log_pos master_password master_port master_user match max_connections_per_hour max_queries_per_hour max_rows max_updates_per_hour max_user_connections medium merge minute minute_second min_rows mode modify month mrg_myisam myisam names natural no not null offset on open optimize option optionally or order outer outfile pack_keys page page_checksum partial partition partitions password primary privileges procedure process processlist purge quick raid0 raid_chunks raid_chunksize raid_type range read read_only read_write references regexp reload rename repair repeatable replace replication reset restore restrict return returns revoke right rlike rollback row rows row_format second security select separator serializable session share show shutdown slave soname sounds sql sql_auto_is_null sql_big_result sql_big_selects sql_big_tables sql_buffer_result sql_cache sql_calc_found_rows sql_log_bin sql_log_off sql_log_update sql_low_priority_updates sql_max_join_size sql_no_cache sql_quote_show_create sql_safe_updates sql_select_limit sql_slave_skip_counter sql_small_result sql_warnings start starting status stop storage straight_join string striped super table tables temporary terminated then to trailing transactional truncate type types uncommitted union unique unlock update usage use using values variables view when where with work write xor year_month";
var cFunctions = "abs acos adddate addtime aes_decrypt aes_encrypt area asbinary ascii asin astext atan atan2 avg bdmpolyfromtext bdmpolyfromwkb bdpolyfromtext bdpolyfromwkb benchmark bin bit_and bit_count bit_length bit_or bit_xor boundary buffer cast ceil ceiling centroid char character_length charset char_length coalesce coercibility collation compress concat concat_ws connection_id contains conv convert convert_tz convexhull cos cot count crc32 crosses curdate current_date current_time current_timestamp current_user curtime database date datediff date_add date_diff date_format date_sub day dayname dayofmonth dayofweek dayofyear decode default degrees des_decrypt des_encrypt difference dimension disjoint distance elt encode encrypt endpoint envelope equals exp export_set exteriorring extract extractvalue field find_in_set floor format found_rows from_days from_unixtime geomcollfromtext geomcollfromwkb geometrycollection geometrycollectionfromtext geometrycollectionfromwkb geometryfromtext geometryfromwkb geometryn geometrytype geomfromtext geomfromwkb get_format get_lock glength greatest group_concat group_unique_users hex hour if ifnull inet_aton inet_ntoa insert instr interiorringn intersection intersects interval isclosed isempty isnull isring issimple is_free_lock is_used_lock last_day last_insert_id lcase least left length linefromtext linefromwkb linestring linestringfromtext linestringfromwkb ln load_file localtime localtimestamp locate log log10 log2 lower lpad ltrim makedate maketime make_set master_pos_wait max mbrcontains mbrdisjoint mbrequal mbrintersects mbroverlaps mbrtouches mbrwithin md5 microsecond mid min minute mlinefromtext mlinefromwkb mod month monthname mpointfromtext mpointfromwkb mpolyfromtext mpolyfromwkb multilinestring multilinestringfromtext multilinestringfromwkb multipoint multipointfromtext multipointfromwkb multipolygon multipolygonfromtext multipolygonfromwkb name_const now nullif numgeometries numinteriorrings numpoints oct octet_length old_password ord overlaps password period_add period_diff pi point pointfromtext pointfromwkb pointn pointonsurface polyfromtext polyfromwkb polygon polygonfromtext polygonfromwkb position pow power quarter quote radians rand related release_lock repeat replace reverse right round row_count rpad rtrim schema second sec_to_time session_user sha sha1 sign sin sleep soundex space sqrt srid startpoint std stddev stddev_pop stddev_samp strcmp str_to_date subdate substr substring substring_index subtime sum symdifference sysdate system_user tan time timediff timestamp timestampadd timestampdiff time_format time_to_sec touches to_days trim truncate ucase uncompress uncompressed_length unhex unique_users unix_timestamp updatexml upper user utc_date utc_time utc_timestamp uuid variance var_pop var_samp version week weekday weekofyear within x y year yearweek";
var cTypes = "bigint binary bit blob bool boolean char character date datetime dec decimal double enum float float4 float8 geometry geometrycollection int int1 int2 int3 int4 int8 integer linestring long longblob longtext mediumblob mediumint mediumtext middleint multilinestring multipoint multipolygon nchar numeric point polygon real serial set smallint text time timestamp tinyblob tinyint tinytext varbinary varchar year";
var cAttributes = "archive ascii auto_increment bdb berkeleydb binary blackhole csv default example federated heap innobase innodb isam maria memory merge mrg_isam mrg_myisam myisam national ndb ndbcluster precision undefined unicode unsigned varying zerofill";
CodeMirror.defineMIME("text/x-mysql", {
name: "mysql",
keywords: keywords(cKeywords),
functions: keywords(cFunctions),
types: keywords(cTypes),
attributes: keywords(cAttributes)
});
}());

View File

@ -20,6 +20,11 @@ var only_once_elements = new Array();
*/
var ajax_message_init = false;
/**
* @var codemirror_editor object containing CodeMirror editor
*/
var codemirror_editor = false;
/**
* Add a hidden field to the form to indicate that this will be an
* Ajax request (only if this hidden field does not exist)
@ -719,15 +724,31 @@ function setSelectOptions(the_form, the_select, do_check)
return true;
} // end of the 'setSelectOptions()' function
/**
* Sets current value for query box.
*/
function setQuery(query) {
if (codemirror_editor) {
codemirror_editor.setValue(query);
} else {
document.sqlform.sql_query.value = query;
}
}
/**
* Create quick sql statements.
*
*/
function insertQuery(queryType) {
if (queryType == "clear") {
setQuery('');
return;
}
var myQuery = document.sqlform.sql_query;
var myListBox = document.sqlform.dummy;
var query = "";
var myListBox = document.sqlform.dummy;
var table = document.sqlform.table.value;
if (myListBox.options.length > 0) {
@ -758,7 +779,7 @@ function insertQuery(queryType) {
} else if(queryType == "delete") {
query = "DELETE FROM `" + table + "` WHERE 1";
}
document.sqlform.sql_query.value = query;
setQuery(query);
sql_box_locked = false;
}
}
@ -785,8 +806,11 @@ function insertValueQuery() {
}
}
/* CodeMirror support */
if (codemirror_editor) {
codemirror_editor.replaceSelection(chaineAj);
//IE support
if (document.selection) {
} else if (document.selection) {
myQuery.focus();
sel = document.selection.createRange();
sel.text = chaineAj;
@ -1147,11 +1171,7 @@ $(document).ready(function(){
});
$('.sqlbutton').click(function(evt){
if (evt.target.id == 'clear') {
$('#sqlquery').val('');
} else {
insertQuery(evt.target.id);
}
insertQuery(evt.target.id);
return false;
});
@ -2370,3 +2390,13 @@ $(document).ready(function() {
}); // end $.PMA_confirm()
}); //end of Drop Table Ajax action
}) // end of $(document).ready() for Drop Table
/**
* Attach CodeMirror2 editor to SQL edit area.
*/
$(document).ready(function() {
var elm = $('#sqlquery');
if (elm.length > 0) {
codemirror_editor = CodeMirror.fromTextArea(elm[0], {lineNumbers: true, matchBrackets: true, indentUnit: 4, mode: "text/x-mysql"});
}
})

View File

@ -63,6 +63,7 @@
objTop: parseInt(objPos.top),
objLeft: parseInt(objPos.left)
};
$('body').css('cursor', 'move');
$('body').noSelect();
},
@ -162,6 +163,7 @@
this.colMov = false;
}
$('body').css('cursor', 'default');
$('body').noSelect(false);
},
@ -169,6 +171,7 @@
* Reposition column resize bars.
*/
reposRsz: function() {
$(this.cRsz).find('div').hide();
$firstRowCols = this.alignment == 'horizontal' ?
$(this.t).find('tr:first th:gt(0)') :
$(this.t).find('tr:first td');
@ -176,7 +179,9 @@
$this = $(this);
var n = $this.index();
$cb = $(g.cRsz).find('div:eq(' + (n - 1) + ')'); // column border
$cb.css('left', $this.position().left + $this.outerWidth());
var pad = parseInt($this.css('padding-right'));
$cb.css('left', Math.floor($this.position().left + $this.width() + pad) + 'px')
.show();
});
},
@ -282,7 +287,8 @@
$firstRowCols.each(function() {
$this = $(this);
var cb = document.createElement('div'); // column border
cb.style.left = $this.position().left + $this.outerWidth() + 'px';
var pad = parseInt($this.css('padding-right'));
cb.style.left = Math.floor($this.position().left + $this.width() + pad) + 'px';
cb.className = 'colborder';
$(cb).mousedown(function(e) {
g.dragStartRsz(e, this);

View File

@ -66,7 +66,7 @@ function appendInlineAnchor() {
if (disp_mode == 'vertical') {
// there can be one or two tr containing this class, depending
// on the ModifyDeleteAtLeft and ModifyDeleteAtRight cfg parameters
// on the RowActionLinks cfg parameter
$('#table_results tr')
.find('.edit_row_anchor')
.removeClass('edit_row_anchor')
@ -385,7 +385,7 @@ $(document).ready(function() {
$("#sqlqueryresults").trigger('appendAnchor');
$("#sqlqueryresults").trigger('makegrid');
PMA_init_slider();
PMA_ajaxRemoveMessage($msgbox);
}) // end $.post()
})// end Paginate results table
@ -409,7 +409,7 @@ $(document).ready(function() {
$("#sqlqueryresults").trigger('appendAnchor');
$("#sqlqueryresults").trigger('makegrid');
PMA_init_slider();
PMA_ajaxRemoveMessage($msgbox);
PMA_ajaxRemoveMessage($msgbox);
}) // end $.post()
} else {
$the_form.submit();
@ -479,7 +479,7 @@ $(document).ready(function() {
$edit_td.removeClass('inline_edit_anchor').addClass('inline_edit_active').parent('tr').addClass('noclick');
// Adding submit and hide buttons to inline edit <td>.
// For "hide" button the original data to be restored is
// For "hide" button the original data to be restored is
// kept in the jQuery data element 'original_data' inside the <td>.
// Looping through all columns or rows, to find the required data and then storing it in an array.
@ -883,7 +883,7 @@ $(document).ready(function() {
*/
var relation_fields = {};
/**
* @var relational_display string 'K' if relational key, 'D' if relational display column
* @var relational_display string 'K' if relational key, 'D' if relational display column
*/
var relational_display = $("#relational_display_K").attr('checked') ? 'K' : 'D';
/**
@ -901,7 +901,7 @@ $(document).ready(function() {
var sql_query = 'UPDATE `' + window.parent.table + '` SET ';
var need_to_post = false;
var new_clause = '';
var prev_index = -1;
@ -973,7 +973,7 @@ $(document).ready(function() {
}
})
/*
/*
* update the where_clause, remove the last appended ' AND '
* */
@ -1047,10 +1047,10 @@ $(document).ready(function() {
/**
* Visually put back the row in the state it was before entering Inline edit
* Visually put back the row in the state it was before entering Inline edit
*
* (when called in the situation where no posting was done, the data
* parameter is empty)
* parameter is empty)
*/
function PMA_unInlineEditRow($del_hide, $chg_submit, $this_td, $input_siblings, data, disp_mode) {

View File

@ -2249,20 +2249,14 @@ $cfg['CharTextareaRows'] = 2;
$cfg['LimitChars'] = 50;
/**
* show edit/delete links on left side of browse
* (or at the top with vertical browse)
* Where to show the edit/inline_edit/delete links in browse mode
* Possible values are 'left', 'right', 'both' and 'none';
* which will be interpreted as 'top', 'bottom', 'both' and 'none'
* respectively for vertical display mode
*
* @global boolean $cfg['ModifyDeleteAtLeft']
* @global string $cfg['RowActionLinks']
*/
$cfg['ModifyDeleteAtLeft'] = true;
/**
* show edit/delete links on right side of browse
* (or at the bottom with vertical browse)
*
* @global boolean $cfg['ModifyDeleteAtRight']
*/
$cfg['ModifyDeleteAtRight'] = false;
$cfg['RowActionLinks'] = 'left';
/**
* default display direction (horizontal|vertical|horizontalflipped)

View File

@ -44,6 +44,7 @@ $cfg_db['LeftFrameDBSeparator'] = 'short_string';
$cfg_db['LeftFrameTableSeparator'] = 'short_string';
$cfg_db['NavigationBarIconic'] = array(true => __('Yes'), false => __('No'), 'both' => __('Both'));
$cfg_db['Order'] = array('ASC', 'DESC', 'SMART');
$cfg_db['RowActionLinks'] = array('none' => __('Nowhere'), 'left' => __('Left'), 'right' => __('Right'), 'both' => __('Both'));
$cfg_db['ProtectBinary'] = array(false, 'blob', 'all');
$cfg_db['DefaultDisplay'] = array('horizontal', 'vertical', 'horizontalflipped');
$cfg_db['CharEditing'] = array('input', 'textarea');

View File

@ -314,9 +314,8 @@ $strConfigMcryptDisableWarning_desc = __('Disable the default warning that is di
$strConfigMcryptDisableWarning_name = __('mcrypt warning');
$strConfigMemoryLimit_desc = __('The number of bytes a script is allowed to allocate, eg. [kbd]32M[/kbd] ([kbd]0[/kbd] for no limit)');
$strConfigMemoryLimit_name = __('Memory limit');
$strConfigModifyDeleteAtLeft_desc = __('These are Edit, Inline edit, Copy and Delete links');
$strConfigModifyDeleteAtLeft_name = __('Show table row links on left side');
$strConfigModifyDeleteAtRight_name = __('Show table row links on right side');
$strConfigRowActionLinks_desc = __('These are Edit, Inline edit, Copy and Delete links');
$strConfigRowActionLinks_name = __('Where to show the table row links');
$strConfigNaturalOrder_desc = __('Use natural order for sorting table and database names');
$strConfigNaturalOrder_name = __('Natural order');
$strConfigNavigationBarIconic_desc = __('Use only icons, only text or both');

View File

@ -199,8 +199,7 @@ $forms['Main_frame']['Browse'] = array(
'BrowseMarkerEnable',
'RepeatCells',
'LimitChars',
'ModifyDeleteAtLeft',
'ModifyDeleteAtRight',
'RowActionLinks',
'DefaultDisplay',
'RememberSorting');
$forms['Main_frame']['Edit'] = array(

View File

@ -109,8 +109,7 @@ $forms['Main_frame']['Browse'] = array(
'BrowseMarkerEnable',
'RepeatCells',
'LimitChars',
'ModifyDeleteAtLeft',
'ModifyDeleteAtRight',
'RowActionLinks',
'DefaultDisplay',
'RememberSorting');
$forms['Main_frame']['Edit'] = array(

View File

@ -661,7 +661,8 @@ function PMA_displayTableHeaders(&$is_display, &$fields_meta, $fields_cnt = 0, $
// ... at the left column of the result table header if possible
// and required
elseif ($GLOBALS['cfg']['ModifyDeleteAtLeft'] && $is_display['text_btn'] == '1') {
elseif (($GLOBALS['cfg']['RowActionLinks'] == 'left' || $GLOBALS['cfg']['RowActionLinks'] == 'both')
&& $is_display['text_btn'] == '1') {
$vertical_display['emptypre'] = ($is_display['edit_lnk'] != 'nn' && $is_display['del_lnk'] != 'nn') ? 4 : 0;
if ($_SESSION['tmp_user_values']['disp_direction'] == 'horizontal'
|| $_SESSION['tmp_user_values']['disp_direction'] == 'horizontalflipped') {
@ -677,7 +678,7 @@ function PMA_displayTableHeaders(&$is_display, &$fields_meta, $fields_cnt = 0, $
}
// ... elseif no button, displays empty(ies) col(s) if required
elseif ($GLOBALS['cfg']['ModifyDeleteAtLeft']
elseif (($GLOBALS['cfg']['RowActionLinks'] == 'left' || $GLOBALS['cfg']['RowActionLinks'] == 'both')
&& ($is_display['edit_lnk'] != 'nn' || $is_display['del_lnk'] != 'nn')) {
$vertical_display['emptypre'] = ($is_display['edit_lnk'] != 'nn' && $is_display['del_lnk'] != 'nn') ? 4 : 0;
if ($_SESSION['tmp_user_values']['disp_direction'] == 'horizontal'
@ -691,6 +692,12 @@ function PMA_displayTableHeaders(&$is_display, &$fields_meta, $fields_cnt = 0, $
} // end vertical mode
}
// ... elseif display an empty column if the actions links are disabled to match the rest of the table
elseif ($GLOBALS['cfg']['RowActionLinks'] == 'none' && ($_SESSION['tmp_user_values']['disp_direction'] == 'horizontal'
|| $_SESSION['tmp_user_values']['disp_direction'] == 'horizontalflipped')) {
echo '<td></td>';
}
// 2. Displays the fields' name
// 2.0 If sorting links should be used, checks if the query is a "JOIN"
// statement (see 2.1.3)
@ -912,9 +919,9 @@ function PMA_displayTableHeaders(&$is_display, &$fields_meta, $fields_cnt = 0, $
// 3. Displays the needed checkboxes at the right
// column of the result table header if possible and required...
if ($GLOBALS['cfg']['ModifyDeleteAtRight']
&& ($is_display['edit_lnk'] != 'nn' || $is_display['del_lnk'] != 'nn')
&& $is_display['text_btn'] == '1') {
if (($GLOBALS['cfg']['RowActionLinks'] == 'right' || $GLOBALS['cfg']['RowActionLinks'] == 'both')
&& ($is_display['edit_lnk'] != 'nn' || $is_display['del_lnk'] != 'nn')
&& $is_display['text_btn'] == '1') {
$vertical_display['emptyafter'] = ($is_display['edit_lnk'] != 'nn' && $is_display['del_lnk'] != 'nn') ? 4 : 1;
if ($_SESSION['tmp_user_values']['disp_direction'] == 'horizontal'
|| $_SESSION['tmp_user_values']['disp_direction'] == 'horizontalflipped') {
@ -933,7 +940,7 @@ function PMA_displayTableHeaders(&$is_display, &$fields_meta, $fields_cnt = 0, $
// ... elseif no button, displays empty columns if required
// (unless coming from Browse mode print view)
elseif ($GLOBALS['cfg']['ModifyDeleteAtRight']
elseif (($GLOBALS['cfg']['RowActionLinks'] == 'left' || $GLOBALS['cfg']['RowActionLinks'] == 'both')
&& ($is_display['edit_lnk'] == 'nn' && $is_display['del_lnk'] == 'nn')
&& (!$GLOBALS['is_header_sent'])) {
$vertical_display['emptyafter'] = ($is_display['edit_lnk'] != 'nn' && $is_display['del_lnk'] != 'nn') ? 4 : 1;
@ -1249,13 +1256,20 @@ function PMA_displayTableBody(&$dt_result, &$is_display, $map, $analyzed_sql) {
} // end if (1.2.2)
// 1.3 Displays the links at left if required
if ($GLOBALS['cfg']['ModifyDeleteAtLeft']
&& ($_SESSION['tmp_user_values']['disp_direction'] == 'horizontal'
|| $_SESSION['tmp_user_values']['disp_direction'] == 'horizontalflipped')) {
if (($GLOBALS['cfg']['RowActionLinks'] == 'left' || $GLOBALS['cfg']['RowActionLinks'] == 'both')
&& ($_SESSION['tmp_user_values']['disp_direction'] == 'horizontal'
|| $_SESSION['tmp_user_values']['disp_direction'] == 'horizontalflipped')) {
if (! isset($js_conf)) {
$js_conf = '';
}
echo PMA_generateCheckboxAndLinks('left', $del_url, $is_display, $row_no, $where_clause, $where_clause_html, $del_query, 'l', $edit_url, $copy_url, $edit_anchor_class, $edit_str, $copy_str, $del_str, $js_conf);
} else if (($GLOBALS['cfg']['RowActionLinks'] == 'none')
&& ($_SESSION['tmp_user_values']['disp_direction'] == 'horizontal'
|| $_SESSION['tmp_user_values']['disp_direction'] == 'horizontalflipped')) {
if (! isset($js_conf)) {
$js_conf = '';
}
echo PMA_generateCheckboxAndLinks('none', $del_url, $is_display, $row_no, $where_clause, $where_clause_html, $del_query, 'l', $edit_url, $copy_url, $edit_anchor_class, $edit_str, $copy_str, $del_str, $js_conf);
} // end if (1.3)
} // end if (1)
@ -1465,13 +1479,13 @@ function PMA_displayTableBody(&$dt_result, &$is_display, $map, $analyzed_sql) {
} // end for (2)
// 3. Displays the modify/delete links on the right if required
if ($GLOBALS['cfg']['ModifyDeleteAtRight']
&& ($_SESSION['tmp_user_values']['disp_direction'] == 'horizontal'
|| $_SESSION['tmp_user_values']['disp_direction'] == 'horizontalflipped')) {
if (! isset($js_conf)) {
$js_conf = '';
}
echo PMA_generateCheckboxAndLinks('right', $del_url, $is_display, $row_no, $where_clause, $where_clause_html, $del_query, 'r', $edit_url, $copy_url, $edit_anchor_class, $edit_str, $copy_str, $del_str, $js_conf);
if (($GLOBALS['cfg']['RowActionLinks'] == 'right' || $GLOBALS['cfg']['RowActionLinks'] == 'both')
&& ($_SESSION['tmp_user_values']['disp_direction'] == 'horizontal'
|| $_SESSION['tmp_user_values']['disp_direction'] == 'horizontalflipped')) {
if (! isset($js_conf)) {
$js_conf = '';
}
echo PMA_generateCheckboxAndLinks('right', $del_url, $is_display, $row_no, $where_clause, $where_clause_html, $del_query, 'r', $edit_url, $copy_url, $edit_anchor_class, $edit_str, $copy_str, $del_str, $js_conf);
} // end if (3)
if ($_SESSION['tmp_user_values']['disp_direction'] == 'horizontal'
@ -1551,15 +1565,19 @@ function PMA_displayVerticalTable()
global $vertical_display;
// Displays "multi row delete" link at top if required
if ($GLOBALS['cfg']['ModifyDeleteAtLeft'] && is_array($vertical_display['row_delete']) && (count($vertical_display['row_delete']) > 0 || !empty($vertical_display['textbtn']))) {
if (($GLOBALS['cfg']['RowActionLinks'] != 'right')
&& is_array($vertical_display['row_delete']) && (count($vertical_display['row_delete']) > 0 || !empty($vertical_display['textbtn']))) {
echo '<tr>' . "\n";
if ($GLOBALS['cfg']['RowActionLinks'] == 'none') {
// if we are not showing the RowActionLinks, then we need to show the Multi-Row-Action checkboxes
echo '<th></th>' . "\n";
}
echo $vertical_display['textbtn'];
$foo_counter = 0;
foreach ($vertical_display['row_delete'] as $val) {
if (($foo_counter != 0) && ($_SESSION['tmp_user_values']['repeat_cells'] != 0) && !($foo_counter % $_SESSION['tmp_user_values']['repeat_cells'])) {
echo '<th></th>' . "\n";
}
echo str_replace('[%_PMA_CHECKBOX_DIR_%]', '_left', $val);
$foo_counter++;
} // end while
@ -1567,7 +1585,8 @@ function PMA_displayVerticalTable()
} // end if
// Displays "edit" link at top if required
if ($GLOBALS['cfg']['ModifyDeleteAtLeft'] && is_array($vertical_display['edit']) && (count($vertical_display['edit']) > 0 || !empty($vertical_display['textbtn']))) {
if (($GLOBALS['cfg']['RowActionLinks'] == 'left' || $GLOBALS['cfg']['RowActionLinks'] == 'both')
&& is_array($vertical_display['edit']) && (count($vertical_display['edit']) > 0 || !empty($vertical_display['textbtn']))) {
echo '<tr>' . "\n";
if (! is_array($vertical_display['row_delete'])) {
echo $vertical_display['textbtn'];
@ -1585,7 +1604,8 @@ function PMA_displayVerticalTable()
} // end if
// Displays "copy" link at top if required
if ($GLOBALS['cfg']['ModifyDeleteAtLeft'] && is_array($vertical_display['copy']) && (count($vertical_display['copy']) > 0 || !empty($vertical_display['textbtn']))) {
if (($GLOBALS['cfg']['RowActionLinks'] == 'left' || $GLOBALS['cfg']['RowActionLinks'] == 'both')
&& is_array($vertical_display['copy']) && (count($vertical_display['copy']) > 0 || !empty($vertical_display['textbtn']))) {
echo '<tr>' . "\n";
if (! is_array($vertical_display['row_delete'])) {
echo $vertical_display['textbtn'];
@ -1603,7 +1623,8 @@ function PMA_displayVerticalTable()
} // end if
// Displays "delete" link at top if required
if ($GLOBALS['cfg']['ModifyDeleteAtLeft'] && is_array($vertical_display['delete']) && (count($vertical_display['delete']) > 0 || !empty($vertical_display['textbtn']))) {
if (($GLOBALS['cfg']['RowActionLinks'] == 'left' || $GLOBALS['cfg']['RowActionLinks'] == 'both')
&& is_array($vertical_display['delete']) && (count($vertical_display['delete']) > 0 || !empty($vertical_display['textbtn']))) {
echo '<tr>' . "\n";
if (! is_array($vertical_display['edit']) && ! is_array($vertical_display['row_delete'])) {
echo $vertical_display['textbtn'];
@ -1640,7 +1661,8 @@ function PMA_displayVerticalTable()
} // end while
// Displays "multi row delete" link at bottom if required
if ($GLOBALS['cfg']['ModifyDeleteAtRight'] && is_array($vertical_display['row_delete']) && (count($vertical_display['row_delete']) > 0 || !empty($vertical_display['textbtn']))) {
if (($GLOBALS['cfg']['RowActionLinks'] == 'right' || $GLOBALS['cfg']['RowActionLinks'] == 'both')
&& is_array($vertical_display['row_delete']) && (count($vertical_display['row_delete']) > 0 || !empty($vertical_display['textbtn']))) {
echo '<tr>' . "\n";
echo $vertical_display['textbtn'];
$foo_counter = 0;
@ -1656,7 +1678,8 @@ function PMA_displayVerticalTable()
} // end if
// Displays "edit" link at bottom if required
if ($GLOBALS['cfg']['ModifyDeleteAtRight'] && is_array($vertical_display['edit']) && (count($vertical_display['edit']) > 0 || !empty($vertical_display['textbtn']))) {
if (($GLOBALS['cfg']['RowActionLinks'] == 'right' || $GLOBALS['cfg']['RowActionLinks'] == 'both')
&& is_array($vertical_display['edit']) && (count($vertical_display['edit']) > 0 || !empty($vertical_display['textbtn']))) {
echo '<tr>' . "\n";
if (! is_array($vertical_display['row_delete'])) {
echo $vertical_display['textbtn'];
@ -1674,7 +1697,8 @@ function PMA_displayVerticalTable()
} // end if
// Displays "copy" link at bottom if required
if ($GLOBALS['cfg']['ModifyDeleteAtRight'] && is_array($vertical_display['copy']) && (count($vertical_display['copy']) > 0 || !empty($vertical_display['textbtn']))) {
if (($GLOBALS['cfg']['RowActionLinks'] == 'right' || $GLOBALS['cfg']['RowActionLinks'] == 'both')
&& is_array($vertical_display['copy']) && (count($vertical_display['copy']) > 0 || !empty($vertical_display['textbtn']))) {
echo '<tr>' . "\n";
if (! is_array($vertical_display['row_delete'])) {
echo $vertical_display['textbtn'];
@ -1692,7 +1716,8 @@ function PMA_displayVerticalTable()
} // end if
// Displays "delete" link at bottom if required
if ($GLOBALS['cfg']['ModifyDeleteAtRight'] && is_array($vertical_display['delete']) && (count($vertical_display['delete']) > 0 || !empty($vertical_display['textbtn']))) {
if (($GLOBALS['cfg']['RowActionLinks'] == 'right' || $GLOBALS['cfg']['RowActionLinks'] == 'both')
&& is_array($vertical_display['delete']) && (count($vertical_display['delete']) > 0 || !empty($vertical_display['textbtn']))) {
echo '<tr>' . "\n";
if (! is_array($vertical_display['edit']) && ! is_array($vertical_display['row_delete'])) {
echo $vertical_display['textbtn'];
@ -2680,6 +2705,8 @@ function PMA_generateCheckboxAndLinks($position, $del_url, $is_display, $row_no,
$ret .= PMA_generateEditLink($edit_url, $class, $edit_str, $where_clause, $where_clause_html, '');
$ret .= PMA_generateCheckboxForMulti($del_url, $is_display, $row_no, $where_clause_html, $del_query, $id_suffix='_right', '', '', '');
} else { // $position == 'none'
$ret .= PMA_generateCheckboxForMulti($del_url, $is_display, $row_no, $where_clause_html, $del_query, $id_suffix='_left', '', '', '');
}
return $ret;
}

View File

@ -39,6 +39,8 @@ if (isset($GLOBALS['db'])) {
$params['db'] = $GLOBALS['db'];
}
$GLOBALS['js_include'][] = 'messages.php' . PMA_generate_common_url($params);
$GLOBALS['js_include'][] = 'codemirror/lib/codemirror.js';
$GLOBALS['js_include'][] = 'codemirror/mode/mysql/mysql.js';
/**
* Here we add a timestamp when loading the file, so that users who

View File

@ -95,7 +95,7 @@ $is_backup = ($action != 'tbl_create.php' && $action != 'tbl_addfield.php');
$header_cells = array();
$content_cells = array();
$header_cells[] = __('Column');
$header_cells[] = __('Name');
$header_cells[] = __('Type')
. ($GLOBALS['cfg']['ReplaceHelpImg']
? PMA_showMySQLDocu('SQL-Syntax', 'data-types')

599
po/af.po

File diff suppressed because it is too large Load Diff

611
po/ar.po

File diff suppressed because it is too large Load Diff

599
po/az.po

File diff suppressed because it is too large Load Diff

607
po/be.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

609
po/bg.po

File diff suppressed because it is too large Load Diff

611
po/bn.po

File diff suppressed because it is too large Load Diff

599
po/bs.po

File diff suppressed because it is too large Load Diff

629
po/ca.po

File diff suppressed because it is too large Load Diff

673
po/cs.po

File diff suppressed because it is too large Load Diff

603
po/cy.po

File diff suppressed because it is too large Load Diff

607
po/da.po

File diff suppressed because it is too large Load Diff

629
po/de.po

File diff suppressed because it is too large Load Diff

633
po/el.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

619
po/es.po

File diff suppressed because it is too large Load Diff

599
po/et.po

File diff suppressed because it is too large Load Diff

599
po/eu.po

File diff suppressed because it is too large Load Diff

615
po/fa.po

File diff suppressed because it is too large Load Diff

622
po/fi.po

File diff suppressed because it is too large Load Diff

636
po/fr.po

File diff suppressed because it is too large Load Diff

626
po/gl.po

File diff suppressed because it is too large Load Diff

599
po/he.po

File diff suppressed because it is too large Load Diff

617
po/hi.po

File diff suppressed because it is too large Load Diff

611
po/hr.po

File diff suppressed because it is too large Load Diff

635
po/hu.po

File diff suppressed because it is too large Load Diff

607
po/id.po

File diff suppressed because it is too large Load Diff

625
po/it.po

File diff suppressed because it is too large Load Diff

622
po/ja.po

File diff suppressed because it is too large Load Diff

634
po/ka.po

File diff suppressed because it is too large Load Diff

607
po/ko.po

File diff suppressed because it is too large Load Diff

627
po/lt.po

File diff suppressed because it is too large Load Diff

603
po/lv.po

File diff suppressed because it is too large Load Diff

599
po/mk.po

File diff suppressed because it is too large Load Diff

599
po/ml.po

File diff suppressed because it is too large Load Diff

611
po/mn.po

File diff suppressed because it is too large Load Diff

599
po/ms.po

File diff suppressed because it is too large Load Diff

622
po/nb.po

File diff suppressed because it is too large Load Diff

621
po/nl.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

634
po/pl.po

File diff suppressed because it is too large Load Diff

607
po/pt.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

607
po/ro.po

File diff suppressed because it is too large Load Diff

782
po/ru.po

File diff suppressed because it is too large Load Diff

613
po/si.po

File diff suppressed because it is too large Load Diff

619
po/sk.po

File diff suppressed because it is too large Load Diff

639
po/sl.po

File diff suppressed because it is too large Load Diff

599
po/sq.po

File diff suppressed because it is too large Load Diff

607
po/sr.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

625
po/sv.po

File diff suppressed because it is too large Load Diff

599
po/ta.po

File diff suppressed because it is too large Load Diff

601
po/te.po

File diff suppressed because it is too large Load Diff

603
po/th.po

File diff suppressed because it is too large Load Diff

623
po/tr.po

File diff suppressed because it is too large Load Diff

603
po/tt.po

File diff suppressed because it is too large Load Diff

611
po/ug.po

File diff suppressed because it is too large Load Diff

607
po/uk.po

File diff suppressed because it is too large Load Diff

619
po/ur.po

File diff suppressed because it is too large Load Diff

634
po/uz.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -44,7 +44,8 @@ CREATE TABLE IF NOT EXISTS `pma_bookmark` (
`query` text NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM COMMENT='Bookmarks';
ENGINE=MyISAM COMMENT='Bookmarks'
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
-- --------------------------------------------------------
@ -64,7 +65,8 @@ CREATE TABLE IF NOT EXISTS `pma_column_info` (
PRIMARY KEY (`id`),
UNIQUE KEY `db_name` (`db_name`,`table_name`,`column_name`)
)
ENGINE=MyISAM COMMENT='Column information for phpMyAdmin';
ENGINE=MyISAM COMMENT='Column information for phpMyAdmin'
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
-- --------------------------------------------------------
@ -82,7 +84,8 @@ CREATE TABLE IF NOT EXISTS `pma_history` (
PRIMARY KEY (`id`),
KEY `username` (`username`,`db`,`table`,`timevalue`)
)
ENGINE=MyISAM COMMENT='SQL history for phpMyAdmin';
ENGINE=MyISAM COMMENT='SQL history for phpMyAdmin'
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
-- --------------------------------------------------------
@ -97,7 +100,8 @@ CREATE TABLE IF NOT EXISTS `pma_pdf_pages` (
PRIMARY KEY (`page_nr`),
KEY `db_name` (`db_name`)
)
ENGINE=MyISAM COMMENT='PDF relation pages for phpMyAdmin';
ENGINE=MyISAM COMMENT='PDF relation pages for phpMyAdmin'
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
-- --------------------------------------------------------
@ -110,7 +114,8 @@ CREATE TABLE IF NOT EXISTS `pma_recent` (
`tables` text NOT NULL,
PRIMARY KEY (`username`)
)
ENGINE=MyISAM COMMENT='Recently accessed tables';
ENGINE=MyISAM COMMENT='Recently accessed tables'
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
-- --------------------------------------------------------
@ -125,7 +130,8 @@ CREATE TABLE IF NOT EXISTS `pma_table_uiprefs` (
`prefs` text NOT NULL,
PRIMARY KEY (`username`,`db_name`,`table_name`)
)
ENGINE=MyISAM COMMENT='Tables'' UI preferences';
ENGINE=MyISAM COMMENT='Tables'' UI preferences'
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
-- --------------------------------------------------------
@ -143,7 +149,8 @@ CREATE TABLE IF NOT EXISTS `pma_relation` (
PRIMARY KEY (`master_db`,`master_table`,`master_field`),
KEY `foreign_field` (`foreign_db`,`foreign_table`)
)
ENGINE=MyISAM COMMENT='Relation table';
ENGINE=MyISAM COMMENT='Relation table'
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
-- --------------------------------------------------------
@ -159,7 +166,8 @@ CREATE TABLE IF NOT EXISTS `pma_table_coords` (
`y` float unsigned NOT NULL default '0',
PRIMARY KEY (`db_name`,`table_name`,`pdf_page_number`)
)
ENGINE=MyISAM COMMENT='Table coordinates for phpMyAdmin PDF output';
ENGINE=MyISAM COMMENT='Table coordinates for phpMyAdmin PDF output'
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
-- --------------------------------------------------------
@ -173,7 +181,8 @@ CREATE TABLE IF NOT EXISTS `pma_table_info` (
`display_field` varchar(64) NOT NULL default '',
PRIMARY KEY (`db_name`,`table_name`)
)
ENGINE=MyISAM COMMENT='Table information for phpMyAdmin';
ENGINE=MyISAM COMMENT='Table information for phpMyAdmin'
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
-- --------------------------------------------------------
@ -190,7 +199,8 @@ CREATE TABLE IF NOT EXISTS `pma_designer_coords` (
`h` TINYINT,
PRIMARY KEY (`db_name`,`table_name`)
)
ENGINE=MyISAM COMMENT='Table coordinates for Designer';
ENGINE=MyISAM COMMENT='Table coordinates for Designer'
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
-- --------------------------------------------------------
@ -211,7 +221,8 @@ CREATE TABLE IF NOT EXISTS `pma_tracking` (
`tracking_active` int(1) unsigned NOT NULL default '1',
PRIMARY KEY (`db_name`,`table_name`,`version`)
)
ENGINE=MyISAM ROW_FORMAT=COMPACT COMMENT='Database changes tracking for phpMyAdmin';
ENGINE=MyISAM ROW_FORMAT=COMPACT COMMENT='Database changes tracking for phpMyAdmin'
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
-- --------------------------------------------------------
@ -225,4 +236,5 @@ CREATE TABLE IF NOT EXISTS `pma_userconfig` (
`config_data` text NOT NULL,
PRIMARY KEY (`username`)
)
ENGINE=MyISAM COMMENT='User preferences storage for phpMyAdmin';
ENGINE=MyISAM COMMENT='User preferences storage for phpMyAdmin'
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

View File

@ -195,7 +195,7 @@ $i = 0;
<tr>
<th id="th<?php echo ++$i; ?>"></th>
<th id="th<?php echo ++$i; ?>">#</th>
<th id="th<?php echo ++$i; ?>" class="column"><?php echo __('Column'); ?></th>
<th id="th<?php echo ++$i; ?>" class="column"><?php echo __('Name'); ?></th>
<th id="th<?php echo ++$i; ?>" class="type"><?php echo __('Type'); ?></th>
<th id="th<?php echo ++$i; ?>" class="collation"><?php echo __('Collation'); ?></th>
<th id="th<?php echo ++$i; ?>" class="attributes"><?php echo __('Attributes'); ?></th>

View File

@ -833,6 +833,7 @@ div#tablestatistics {
div#tablestatistics table {
float: <?php echo $left; ?>;
margin-top: 0.5em;
margin-bottom: 0.5em;
margin-<?php echo $right; ?>: 0.5em;
}
@ -1771,15 +1772,113 @@ fieldset .disabled-field td {
-webkit-box-sizing: border-box;
}
.CodeMirror {
line-height: 1em;
font-family: monospace;
background: white;
border: 1px solid black;
}
.CodeMirror-scroll {
height: <?php echo ceil($GLOBALS['cfg']['TextareaRows'] * 1.2); ?>em;
overflow: auto;
}
.CodeMirror-gutter {
position: absolute; left: 0; top: 0;
background-color: #f7f7f7;
border-right: 1px solid #eee;
min-width: 2em;
height: 100%;
}
.CodeMirror-gutter-text {
color: #aaa;
text-align: right;
padding: .4em .2em .4em .4em;
}
.CodeMirror-lines {
padding: .4em;
}
.CodeMirror pre {
-moz-border-radius: 0;
-webkit-border-radius: 0;
-o-border-radius: 0;
border-radius: 0;
border-width: 0; margin: 0; padding: 0; background: transparent;
font-family: inherit;
font-size: inherit;
padding: 0; margin: 0;
}
.CodeMirror textarea {
font-family: inherit !important;
font-size: inherit !important;
}
.CodeMirror-cursor {
z-index: 10;
position: absolute;
visibility: hidden;
border-left: 1px solid black !important;
}
.CodeMirror-focused .CodeMirror-cursor {
visibility: visible;
}
span.CodeMirror-selected {
background: #ccc !important;
color: HighlightText !important;
}
.CodeMirror-focused span.CodeMirror-selected {
background: Highlight !important;
}
.CodeMirror-matchingbracket {color: #0f0 !important;}
.CodeMirror-nonmatchingbracket {color: #f22 !important;}
span.mysql-keyword {
color: <?php echo $GLOBALS['cfg']['SQP']['fmtColor']['alpha_reservedWord']; ?>;
}
span.mysql-var {
color: <?php echo $GLOBALS['cfg']['SQP']['fmtColor']['alpha_identifier']; ?>;
}
span.mysql-comment {
color: <?php echo $GLOBALS['cfg']['SQP']['fmtColor']['comment']; ?>;
}
span.mysql-string {
color: <?php echo $GLOBALS['cfg']['SQP']['fmtColor']['quote']; ?>;
}
span.mysql-operator {
color: <?php echo $GLOBALS['cfg']['SQP']['fmtColor']['punct']; ?>;
}
span.mysql-word {
color: <?php echo $GLOBALS['cfg']['SQP']['fmtColor']['alpha']; ?>;
}
span.mysql-function {
color: <?php echo $GLOBALS['cfg']['SQP']['fmtColor']['alpha_functionName']; ?>;
}
span.mysql-type {
color: <?php echo $GLOBALS['cfg']['SQP']['fmtColor']['alpha_columnType']; ?>;
}
span.mysql-attribute {
color: <?php echo $GLOBALS['cfg']['SQP']['fmtColor']['alpha_columnAttrib']; ?>;
}
span.mysql-separator {
color: <?php echo $GLOBALS['cfg']['SQP']['fmtColor']['punct']; ?>;
}
span.mysql-number {
color: <?php echo $GLOBALS['cfg']['SQP']['fmtColor']['digit_integer']; ?>;
}
.colborder {
border-right: solid 1px #FFFFFF;
cursor: col-resize;
height: 100%;
margin-left: -8px;
margin-left: -3px;
position: absolute;
width: 3px;
width: 5px;
}
.pma_table thead th span, .pma_table tbody td span {

View File

@ -1022,22 +1022,13 @@ form.clock {
/* table stats */
div#tablestatistics {
border-bottom: 0.1em solid #669999;
margin-bottom: 0.5em;
padding-bottom: 0.5em;
}
div#tablestatistics table {
float: <?php echo $left; ?>;
margin-bottom: 0.5em;
margin-<?php echo $right; ?>: 0.5em;
width:99%;
margin-<?php echo $right; ?>: 1.5em;
margin-top: 0.5em;
}
div#tablestatistics table caption {
margin-<?php echo $right; ?>: 0.5em;
}
/* END table stats */
@ -2115,13 +2106,113 @@ fieldset .disabled-field td {
margin: 0 6px;
}
.CodeMirror {
line-height: 1em;
font-family: monospace;
background: white;
border: 1px solid black;
}
.CodeMirror-scroll {
overflow: auto;
height: <?php echo ceil($GLOBALS['cfg']['TextareaRows'] * 1.2); ?>em;
}
.CodeMirror-gutter {
position: absolute; left: 0; top: 0;
background-color: #f7f7f7;
border-right: 1px solid #eee;
min-width: 2em;
height: 100%;
}
.CodeMirror-gutter-text {
color: #aaa;
text-align: right;
padding: .4em .2em .4em .4em;
}
.CodeMirror-lines {
padding: .4em;
}
.CodeMirror pre {
-moz-border-radius: 0;
-webkit-border-radius: 0;
-o-border-radius: 0;
border-radius: 0;
border-width: 0; margin: 0; padding: 0; background: transparent;
font-family: inherit;
font-size: inherit;
padding: 0; margin: 0;
}
.CodeMirror textarea {
font-family: inherit !important;
font-size: inherit !important;
}
.CodeMirror-cursor {
z-index: 10;
position: absolute;
visibility: hidden;
border-left: 1px solid black !important;
}
.CodeMirror-focused .CodeMirror-cursor {
visibility: visible;
}
span.CodeMirror-selected {
background: #ccc !important;
color: HighlightText !important;
}
.CodeMirror-focused span.CodeMirror-selected {
background: Highlight !important;
}
.CodeMirror-matchingbracket {color: #0f0 !important;}
.CodeMirror-nonmatchingbracket {color: #f22 !important;}
span.mysql-keyword {
color: <?php echo $GLOBALS['cfg']['SQP']['fmtColor']['alpha_reservedWord']; ?>;
}
span.mysql-var {
color: <?php echo $GLOBALS['cfg']['SQP']['fmtColor']['alpha_identifier']; ?>;
}
span.mysql-comment {
color: <?php echo $GLOBALS['cfg']['SQP']['fmtColor']['comment']; ?>;
}
span.mysql-string {
color: <?php echo $GLOBALS['cfg']['SQP']['fmtColor']['quote']; ?>;
}
span.mysql-operator {
color: <?php echo $GLOBALS['cfg']['SQP']['fmtColor']['punct']; ?>;
}
span.mysql-word {
color: <?php echo $GLOBALS['cfg']['SQP']['fmtColor']['alpha']; ?>;
}
span.mysql-function {
color: <?php echo $GLOBALS['cfg']['SQP']['fmtColor']['alpha_functionName']; ?>;
}
span.mysql-type {
color: <?php echo $GLOBALS['cfg']['SQP']['fmtColor']['alpha_columnType']; ?>;
}
span.mysql-attribute {
color: <?php echo $GLOBALS['cfg']['SQP']['fmtColor']['alpha_columnAttrib']; ?>;
}
span.mysql-separator {
color: <?php echo $GLOBALS['cfg']['SQP']['fmtColor']['punct']; ?>;
}
span.mysql-number {
color: <?php echo $GLOBALS['cfg']['SQP']['fmtColor']['digit_integer']; ?>;
}
.colborder {
border-right: 1px solid #FFF;
border-left: 1px solid #FFF;
cursor: col-resize;
height: 100%;
margin-left: -8px;
margin-left: -1px;
position: absolute;
width: 3px;
width: 5px;
}
.pma_table thead th span, .pma_table tbody td span {