Merge remote-tracking branch 'origin/master' into drizzle
Conflicts: libraries/dbi/mysqli.dbi.lib.php
This commit is contained in:
commit
0eca09ffff
@ -42,6 +42,7 @@ phpMyAdmin - ChangeLog
|
||||
+ AJAX for table Structure column Add
|
||||
|
||||
3.4.5.0 (not yet released)
|
||||
- bug #3375325 [interface] Page list in navigation frame looks odd
|
||||
|
||||
3.4.4.0 (not yet released)
|
||||
- bug #3323060 [parser] SQL parser breaks AJAX requests if query has unclosed quotes
|
||||
|
||||
@ -1391,8 +1391,12 @@ CREATE DATABASE,ALTER DATABASE,DROP DATABASE</pre>
|
||||
is known to cause data corruption when having enabled buffering.</dd>
|
||||
|
||||
<dt id="cfg_PersistentConnections">$cfg['PersistentConnections'] boolean</dt>
|
||||
<dd>Whether persistent connections should be used or not (mysql_connect or
|
||||
mysql_pconnect).</dd>
|
||||
<dd>Whether <a href="http://php.net/manual/en/features.persistent-connections.php">persistent connections</a>
|
||||
should be used or not. Works with following extensions:
|
||||
<ul>
|
||||
<li>mysql (<a href="http://php.net/manual/en/function.mysql-pconnect.php">mysql_pconnect</a>),</li>
|
||||
<li>mysqli (requires PHP 5.3.0 or newer, <a href="http://php.net/manual/en/mysqli.persistconns.php">more information</a>).</li>
|
||||
</ul></dd>
|
||||
|
||||
<dt id="cfg_ForceSSL">$cfg['ForceSSL'] boolean</dt>
|
||||
<dd>Whether to force using https while accessing phpMyAdmin.</dd>
|
||||
|
||||
421
js/codemirror/lib/codemirror.js
vendored
421
js/codemirror/lib/codemirror.js
vendored
@ -21,7 +21,7 @@ var CodeMirror = (function() {
|
||||
wrapper.innerHTML =
|
||||
'<div style="overflow: hidden; position: relative; width: 1px; height: 0px;">' + // Wraps and hides input textarea
|
||||
'<textarea style="position: absolute; width: 2px;" wrap="off"></textarea></div>' +
|
||||
'<div class="CodeMirror-scroll">' +
|
||||
'<div class="CodeMirror-scroll cm-s-' + options.theme + '">' +
|
||||
'<div style="position: relative">' + // Set to the height of the text, causes scrolling
|
||||
'<div style="position: absolute; height: 0; width: 0; overflow: hidden;"></div>' +
|
||||
'<div style="position: relative">' + // Moved around its parent to cover visible view
|
||||
@ -72,19 +72,17 @@ var CodeMirror = (function() {
|
||||
var editing, bracketHighlighted;
|
||||
// Tracks the maximum line length so that the horizontal scrollbar
|
||||
// can be kept static when scrolling.
|
||||
var maxLine = "";
|
||||
var maxLine = "", maxWidth;
|
||||
|
||||
// Initialize the content. Somewhat hacky (delayed prepareInput)
|
||||
// to work around browser issues.
|
||||
// Initialize the content.
|
||||
operation(function(){setValue(options.value || ""); updateInput = false;})();
|
||||
setTimeout(prepareInput, 20);
|
||||
|
||||
// Register our event handlers.
|
||||
connect(scroller, "mousedown", operation(onMouseDown));
|
||||
// Gecko browsers fire contextmenu *after* opening the menu, at
|
||||
// which point we can't mess with it anymore. Context menu is
|
||||
// handled in onMouseDown for Gecko.
|
||||
if (!gecko) connect(scroller, "contextmenu", operation(onContextMenu));
|
||||
if (!gecko) connect(scroller, "contextmenu", onContextMenu);
|
||||
connect(code, "dblclick", operation(onDblClick));
|
||||
connect(scroller, "scroll", function() {updateDisplay([]); if (options.onScroll) options.onScroll(instance);});
|
||||
connect(window, "resize", function() {updateDisplay(true);});
|
||||
@ -94,8 +92,8 @@ var CodeMirror = (function() {
|
||||
connect(input, "focus", onFocus);
|
||||
connect(input, "blur", onBlur);
|
||||
|
||||
connect(scroller, "dragenter", function(e){e.stop();});
|
||||
connect(scroller, "dragover", function(e){e.stop();});
|
||||
connect(scroller, "dragenter", e_stop);
|
||||
connect(scroller, "dragover", e_stop);
|
||||
connect(scroller, "drop", operation(onDrop));
|
||||
connect(scroller, "paste", function(){focusInput(); fastPoll();});
|
||||
connect(input, "paste", function(){fastPoll();});
|
||||
@ -104,7 +102,7 @@ var CodeMirror = (function() {
|
||||
// IE throws unspecified error in certain cases, when
|
||||
// trying to access activeElement before onload
|
||||
var hasFocus; try { hasFocus = (targetDocument.activeElement == input); } catch(e) { }
|
||||
if (hasFocus) onFocus();
|
||||
if (hasFocus) setTimeout(onFocus, 20);
|
||||
else onBlur();
|
||||
|
||||
function isLine(l) {return l >= 0 && l < lines.length;}
|
||||
@ -124,6 +122,7 @@ var CodeMirror = (function() {
|
||||
if (option == "lineNumbers" || option == "gutter") gutterChanged();
|
||||
else if (option == "mode" || option == "indentUnit") loadMode();
|
||||
else if (option == "readOnly" && value == "nocursor") input.blur();
|
||||
else if (option == "theme") scroller.className = scroller.className.replace(/cm-s-\w+/, "cm-s-" + value);
|
||||
},
|
||||
getOption: function(option) {return options[option];},
|
||||
undo: operation(undo),
|
||||
@ -135,6 +134,10 @@ var CodeMirror = (function() {
|
||||
pos = clipPos(pos);
|
||||
return lines[pos.line].getTokenAt(mode, getStateBefore(pos.line), pos.ch);
|
||||
},
|
||||
getStateAfter: function(line) {
|
||||
line = clipLine(line == null ? lines.length - 1: line);
|
||||
return getStateBefore(line + 1);
|
||||
},
|
||||
cursorCoords: function(start){
|
||||
if (start == null) start = sel.inverted;
|
||||
return pageCoords(start ? sel.from : sel.to);
|
||||
@ -151,13 +154,25 @@ var CodeMirror = (function() {
|
||||
clearMarker: removeGutterMarker,
|
||||
setLineClass: operation(setLineClass),
|
||||
lineInfo: lineInfo,
|
||||
addWidget: function(pos, node, scroll) {
|
||||
var pos = localCoords(clipPos(pos), true);
|
||||
node.style.top = (showingFrom * lineHeight() + pos.yBot + paddingTop()) + "px";
|
||||
node.style.left = (pos.x + paddingLeft()) + "px";
|
||||
addWidget: function(pos, node, scroll, where) {
|
||||
pos = localCoords(clipPos(pos));
|
||||
var top = pos.yBot, left = pos.x;
|
||||
node.style.position = "absolute";
|
||||
code.appendChild(node);
|
||||
node.style.left = left + "px";
|
||||
if (where == "over") top = pos.y;
|
||||
else if (where == "near") {
|
||||
var vspace = Math.max(scroller.offsetHeight, lines.length * lineHeight()),
|
||||
hspace = Math.max(code.clientWidth, lineSpace.clientWidth) - paddingLeft();
|
||||
if (pos.yBot + node.offsetHeight > vspace && pos.y > node.offsetHeight)
|
||||
top = pos.y - node.offsetHeight;
|
||||
if (left + node.offsetWidth > hspace)
|
||||
left = hspace - node.offsetWidth;
|
||||
}
|
||||
node.style.top = (top + paddingTop()) + "px";
|
||||
node.style.left = (left + paddingLeft()) + "px";
|
||||
if (scroll)
|
||||
scrollIntoView(pos.x, pos.yBot, pos.x + node.offsetWidth, pos.yBot + node.offsetHeight);
|
||||
scrollIntoView(left, top, left + node.offsetWidth, top + node.offsetHeight);
|
||||
},
|
||||
|
||||
lineCount: function() {return lines.length;},
|
||||
@ -184,7 +199,8 @@ var CodeMirror = (function() {
|
||||
operation: function(f){return operation(f)();},
|
||||
refresh: function(){updateDisplay(true);},
|
||||
getInputField: function(){return input;},
|
||||
getWrapperElement: function(){return wrapper;}
|
||||
getWrapperElement: function(){return wrapper;},
|
||||
getScrollerElement: function(){return scroller;}
|
||||
};
|
||||
|
||||
function setValue(code) {
|
||||
@ -202,28 +218,39 @@ var CodeMirror = (function() {
|
||||
}
|
||||
|
||||
function onMouseDown(e) {
|
||||
// Check whether this is a click in a widget
|
||||
for (var n = e_target(e); n != wrapper; n = n.parentNode)
|
||||
if (n.parentNode == code && n != mover) return;
|
||||
var ld = lastDoubleClick; lastDoubleClick = null;
|
||||
// First, see if this is a click in the gutter
|
||||
for (var n = e.target(); n != wrapper; n = n.parentNode)
|
||||
for (var n = e_target(e); n != wrapper; n = n.parentNode)
|
||||
if (n.parentNode == gutterText) {
|
||||
if (options.onGutterClick)
|
||||
options.onGutterClick(instance, indexOf(gutterText.childNodes, n) + showingFrom);
|
||||
return e.stop();
|
||||
return e_preventDefault(e);
|
||||
}
|
||||
|
||||
if (gecko && e.button() == 3) onContextMenu(e);
|
||||
if (e.button() != 1) return;
|
||||
var start = posFromMouse(e);
|
||||
|
||||
switch (e_button(e)) {
|
||||
case 3:
|
||||
if (gecko && !mac) onContextMenu(e);
|
||||
return;
|
||||
case 2:
|
||||
if (start) setCursor(start.line, start.ch, true);
|
||||
return;
|
||||
}
|
||||
// For button 1, if it was clicked inside the editor
|
||||
// (posFromMouse returning non-null), we have to adjust the
|
||||
// selection.
|
||||
var start = posFromMouse(e), last = start, going;
|
||||
if (!start) {if (e.target() == scroller) e.stop(); return;}
|
||||
if (!start) {if (e_target(e) == scroller) e_preventDefault(e); return;}
|
||||
|
||||
if (!focused) onFocus();
|
||||
e.stop();
|
||||
e_preventDefault(e);
|
||||
if (ld && +new Date - ld < 400) return selectLine(start.line);
|
||||
|
||||
setCursor(start.line, start.ch, true);
|
||||
var last = start, going;
|
||||
// And then we have to see if it's a drag event, in which case
|
||||
// the dragged-over text must be selected.
|
||||
function end() {
|
||||
@ -246,14 +273,14 @@ var CodeMirror = (function() {
|
||||
|
||||
var move = connect(targetDocument, "mousemove", operation(function(e) {
|
||||
clearTimeout(going);
|
||||
e.stop();
|
||||
e_preventDefault(e);
|
||||
extend(e);
|
||||
}), true);
|
||||
var up = connect(targetDocument, "mouseup", operation(function(e) {
|
||||
clearTimeout(going);
|
||||
var cur = posFromMouse(e);
|
||||
if (cur) setSelectionUser(start, cur);
|
||||
e.stop();
|
||||
e_preventDefault(e);
|
||||
end();
|
||||
}), true);
|
||||
}
|
||||
@ -261,15 +288,14 @@ var CodeMirror = (function() {
|
||||
var pos = posFromMouse(e);
|
||||
if (!pos) return;
|
||||
selectWordAt(pos);
|
||||
e.stop();
|
||||
e_preventDefault(e);
|
||||
lastDoubleClick = +new Date;
|
||||
}
|
||||
function onDrop(e) {
|
||||
var pos = posFromMouse(e, true), files = e.e.dataTransfer.files;
|
||||
e.preventDefault();
|
||||
var pos = posFromMouse(e, true), files = e.dataTransfer.files;
|
||||
if (!pos || options.readOnly) return;
|
||||
if (files && files.length && window.FileReader && window.File) {
|
||||
var n = files.length, text = Array(n), read = 0;
|
||||
for (var i = 0; i < n; ++i) loadFile(files[i], i);
|
||||
function loadFile(file, i) {
|
||||
var reader = new FileReader;
|
||||
reader.onload = function() {
|
||||
@ -278,10 +304,12 @@ var CodeMirror = (function() {
|
||||
};
|
||||
reader.readAsText(file);
|
||||
}
|
||||
var n = files.length, text = Array(n), read = 0;
|
||||
for (var i = 0; i < n; ++i) loadFile(files[i], i);
|
||||
}
|
||||
else {
|
||||
try {
|
||||
var text = e.e.dataTransfer.getData("Text");
|
||||
var text = e.dataTransfer.getData("Text");
|
||||
if (text) replaceRange(text, pos, pos);
|
||||
}
|
||||
catch(e){}
|
||||
@ -290,25 +318,27 @@ var CodeMirror = (function() {
|
||||
function onKeyDown(e) {
|
||||
if (!focused) onFocus();
|
||||
|
||||
var code = e.e.keyCode;
|
||||
var code = e.keyCode;
|
||||
// IE does strange things with escape.
|
||||
if (ie && code == 27) { e.returnValue = false; }
|
||||
// Tries to detect ctrl on non-mac, cmd on mac.
|
||||
var mod = (mac ? e.e.metaKey : e.e.ctrlKey) && !e.e.altKey, anyMod = e.e.ctrlKey || e.e.altKey || e.e.metaKey;
|
||||
if (code == 16 || e.e.shiftKey) shiftSelecting = shiftSelecting || (sel.inverted ? sel.to : sel.from);
|
||||
var mod = (mac ? e.metaKey : e.ctrlKey) && !e.altKey, anyMod = e.ctrlKey || e.altKey || e.metaKey;
|
||||
if (code == 16 || e.shiftKey) shiftSelecting = shiftSelecting || (sel.inverted ? sel.to : sel.from);
|
||||
else shiftSelecting = null;
|
||||
// First give onKeyEvent option a chance to handle this.
|
||||
if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e.e))) return;
|
||||
if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e))) return;
|
||||
|
||||
if (code == 33 || code == 34) {scrollPage(code == 34); return e.stop();} // page up/down
|
||||
if (code == 33 || code == 34) {scrollPage(code == 34); return e_preventDefault(e);} // page up/down
|
||||
if (mod && ((code == 36 || code == 35) || // ctrl-home/end
|
||||
mac && (code == 38 || code == 40))) { // cmd-up/down
|
||||
scrollEnd(code == 36 || code == 38); return e.stop();
|
||||
scrollEnd(code == 36 || code == 38); return e_preventDefault(e);
|
||||
}
|
||||
if (mod && code == 65) {selectAll(); return e.stop();} // ctrl-a
|
||||
if (mod && code == 65) {selectAll(); return e_preventDefault(e);} // ctrl-a
|
||||
if (!options.readOnly) {
|
||||
if (!anyMod && code == 13) {return;} // enter
|
||||
if (!anyMod && code == 9 && handleTab(e.e.shiftKey)) return e.stop(); // tab
|
||||
if (mod && code == 90) {undo(); return e.stop();} // ctrl-z
|
||||
if (mod && ((e.e.shiftKey && code == 90) || code == 89)) {redo(); return e.stop();} // ctrl-shift-z, ctrl-y
|
||||
if (!anyMod && code == 9 && handleTab(e.shiftKey)) return e_preventDefault(e); // tab
|
||||
if (mod && code == 90) {undo(); return e_preventDefault(e);} // ctrl-z
|
||||
if (mod && ((e.shiftKey && code == 90) || code == 89)) {redo(); return e_preventDefault(e);} // ctrl-shift-z, ctrl-y
|
||||
}
|
||||
|
||||
// Key id to use in the movementKeys map. We also pass it to
|
||||
@ -328,42 +358,47 @@ var CodeMirror = (function() {
|
||||
fastPoll(curKeyId);
|
||||
}
|
||||
function onKeyUp(e) {
|
||||
if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e.e))) return;
|
||||
if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e))) return;
|
||||
if (reducedSelection) {
|
||||
reducedSelection = null;
|
||||
updateInput = true;
|
||||
}
|
||||
if (e.e.keyCode == 16) shiftSelecting = null;
|
||||
if (e.keyCode == 16) shiftSelecting = null;
|
||||
}
|
||||
function onKeyPress(e) {
|
||||
if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e.e))) return;
|
||||
if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e))) return;
|
||||
if (options.electricChars && mode.electricChars) {
|
||||
var ch = String.fromCharCode(e.e.charCode == null ? e.e.keyCode : e.e.charCode);
|
||||
var ch = String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode);
|
||||
if (mode.electricChars.indexOf(ch) > -1)
|
||||
setTimeout(operation(function() {indentLine(sel.to.line, "smart");}), 50);
|
||||
}
|
||||
var code = e.e.keyCode;
|
||||
var code = e.keyCode;
|
||||
// Re-stop tab and enter. Necessary on some browsers.
|
||||
if (code == 13) {if (!options.readOnly) handleEnter(); e.stop();}
|
||||
else if (!e.e.ctrlKey && !e.e.altKey && !e.e.metaKey && code == 9 && options.tabMode != "default") e.stop();
|
||||
if (code == 13) {if (!options.readOnly) handleEnter(); e_preventDefault(e);}
|
||||
else if (!e.ctrlKey && !e.altKey && !e.metaKey && code == 9 && options.tabMode != "default") e_preventDefault(e);
|
||||
else fastPoll(curKeyId);
|
||||
}
|
||||
|
||||
function onFocus() {
|
||||
if (options.readOnly == "nocursor") return;
|
||||
if (!focused && options.onFocus) options.onFocus(instance);
|
||||
focused = true;
|
||||
if (!focused) {
|
||||
if (options.onFocus) options.onFocus(instance);
|
||||
focused = true;
|
||||
if (wrapper.className.search(/\bCodeMirror-focused\b/) == -1)
|
||||
wrapper.className += " CodeMirror-focused";
|
||||
if (!leaveInputAlone) prepareInput();
|
||||
}
|
||||
slowPoll();
|
||||
if (wrapper.className.search(/\bCodeMirror-focused\b/) == -1)
|
||||
wrapper.className += " CodeMirror-focused";
|
||||
restartBlink();
|
||||
}
|
||||
function onBlur() {
|
||||
if (focused && options.onBlur) options.onBlur(instance);
|
||||
if (focused) {
|
||||
if (options.onBlur) options.onBlur(instance);
|
||||
focused = false;
|
||||
wrapper.className = wrapper.className.replace(" CodeMirror-focused", "");
|
||||
}
|
||||
clearInterval(blinker);
|
||||
shiftSelecting = null;
|
||||
focused = false;
|
||||
wrapper.className = wrapper.className.replace(" CodeMirror-focused", "");
|
||||
setTimeout(function() {if (!focused) shiftSelecting = null;}, 150);
|
||||
}
|
||||
|
||||
// Replace the range from from to to by the strings in newText.
|
||||
@ -386,6 +421,7 @@ var CodeMirror = (function() {
|
||||
var pos = clipPos({line: change.start + change.old.length - 1,
|
||||
ch: editEnd(replaced[replaced.length-1], change.old[change.old.length-1])});
|
||||
updateLinesNoUndo({line: change.start, ch: 0}, {line: end - 1, ch: lines[end-1].text.length}, change.old, pos, pos);
|
||||
updateInput = true;
|
||||
}
|
||||
}
|
||||
function undo() {unredoHelper(history.done, history.undone);}
|
||||
@ -393,7 +429,7 @@ var CodeMirror = (function() {
|
||||
|
||||
function updateLinesNoUndo(from, to, newText, selFrom, selTo) {
|
||||
var recomputeMaxLength = false, maxLineLength = maxLine.length;
|
||||
for (var i = from.line; i < to.line; ++i) {
|
||||
for (var i = from.line; i <= to.line; ++i) {
|
||||
if (lines[i].text.length == maxLineLength) {recomputeMaxLength = true; break;}
|
||||
}
|
||||
|
||||
@ -427,12 +463,12 @@ var CodeMirror = (function() {
|
||||
for (var i = from.line, e = i + newText.length; i < e; ++i) {
|
||||
var l = lines[i].text;
|
||||
if (l.length > maxLineLength) {
|
||||
maxLine = l; maxLineLength = l.length;
|
||||
maxLine = l; maxLineLength = l.length; maxWidth = null;
|
||||
recomputeMaxLength = false;
|
||||
}
|
||||
}
|
||||
if (recomputeMaxLength) {
|
||||
maxLineLength = 0;
|
||||
maxLineLength = 0; maxLine = ""; maxWidth = null;
|
||||
for (var i = 0, e = lines.length; i < e; ++i) {
|
||||
var l = lines[i].text;
|
||||
if (l.length > maxLineLength) {
|
||||
@ -449,7 +485,12 @@ var CodeMirror = (function() {
|
||||
if (task < from.line) newWork.push(task);
|
||||
else if (task > to.line) newWork.push(task + lendiff);
|
||||
}
|
||||
if (newText.length) newWork.push(from.line);
|
||||
if (newText.length < 5) {
|
||||
highlightLines(from.line, from.line + newText.length);
|
||||
newWork.push(from.line + newText.length);
|
||||
} else {
|
||||
newWork.push(from.line);
|
||||
}
|
||||
work = newWork;
|
||||
startWorker(100);
|
||||
// Remember that these lines changed, for updating the display
|
||||
@ -537,7 +578,7 @@ var CodeMirror = (function() {
|
||||
// to the data in the editing variable, and updates the editor
|
||||
// content or cursor if something changed.
|
||||
function readInput() {
|
||||
if (leaveInputAlone) return;
|
||||
if (leaveInputAlone || !focused) return;
|
||||
var changed = false, text = input.value, sr = selRange(input);
|
||||
if (!sr) return false;
|
||||
var changed = editing.text != text, rs = reducedSelection;
|
||||
@ -565,13 +606,10 @@ var CodeMirror = (function() {
|
||||
// so that you can, for example, press shift-up at the start of
|
||||
// your selection and have the right thing happen.
|
||||
if (rs) {
|
||||
from = sr.start == rs.anchor ? to : from;
|
||||
to = shiftSelecting ? sel.to : sr.start == rs.anchor ? from : to;
|
||||
if (!posLess(from, to)) {
|
||||
reducedSelection = null;
|
||||
sel.inverted = false;
|
||||
var tmp = from; from = to; to = tmp;
|
||||
}
|
||||
var head = sr.start == rs.anchor ? to : from;
|
||||
var tail = shiftSelecting ? sel.to : sr.start == rs.anchor ? from : to;
|
||||
if (sel.inverted = posLess(head, tail)) { from = head; to = tail; }
|
||||
else { reducedSelection = null; from = tail; to = head; }
|
||||
}
|
||||
|
||||
// In some cases (cursor on same line as before), we don't have
|
||||
@ -591,8 +629,8 @@ var CodeMirror = (function() {
|
||||
var ch = nl > -1 ? start - nl : start, endline = editing.to - 1, edend = editing.text.length;
|
||||
for (;;) {
|
||||
c = editing.text.charAt(edend);
|
||||
if (c == "\n") endline--;
|
||||
if (text.charAt(end) != c) {++end; ++edend; break;}
|
||||
if (c == "\n") endline--;
|
||||
if (edend <= start || end <= start) break;
|
||||
--end; --edend;
|
||||
}
|
||||
@ -731,8 +769,15 @@ var CodeMirror = (function() {
|
||||
updateGutter();
|
||||
}
|
||||
|
||||
var textWidth = stringWidth(maxLine);
|
||||
lineSpace.style.width = textWidth > scroller.clientWidth ? textWidth + "px" : "";
|
||||
if (maxWidth == null) maxWidth = stringWidth(maxLine);
|
||||
if (maxWidth > scroller.clientWidth) {
|
||||
lineSpace.style.width = maxWidth + "px";
|
||||
// Needed to prevent odd wrapping/hiding of widgets placed in here.
|
||||
code.style.width = "";
|
||||
code.style.width = scroller.scrollWidth + "px";
|
||||
} else {
|
||||
lineSpace.style.width = code.style.width = "";
|
||||
}
|
||||
|
||||
// Since this is all rather error prone, it is honoured with the
|
||||
// only assertion in the whole file.
|
||||
@ -807,7 +852,7 @@ var CodeMirror = (function() {
|
||||
var hText = mover.offsetHeight, hEditor = scroller.clientHeight;
|
||||
gutter.style.height = (hText - hEditor < 2 ? hEditor : hText) + "px";
|
||||
var html = [];
|
||||
for (var i = showingFrom; i < showingTo; ++i) {
|
||||
for (var i = showingFrom; i < Math.max(showingTo, showingFrom + 1); ++i) {
|
||||
var marker = lines[i].gutterMarker;
|
||||
var text = options.lineNumbers ? i + options.firstLineNumber : null;
|
||||
if (marker && marker.text)
|
||||
@ -850,10 +895,9 @@ var CodeMirror = (function() {
|
||||
if (posEq(sel.from, from) && posEq(sel.to, to)) return;
|
||||
if (posLess(to, from)) {var tmp = to; to = from; from = tmp;}
|
||||
|
||||
var startEq = posEq(sel.to, to), endEq = posEq(sel.from, from);
|
||||
if (posEq(from, to)) sel.inverted = false;
|
||||
else if (startEq && !endEq) sel.inverted = true;
|
||||
else if (endEq && !startEq) sel.inverted = false;
|
||||
else if (posEq(from, sel.to)) sel.inverted = false;
|
||||
else if (posEq(to, sel.from)) sel.inverted = true;
|
||||
|
||||
// Some ugly logic used to only mark the lines that actually did
|
||||
// see a change in selection as changed, rather than the whole
|
||||
@ -926,12 +970,17 @@ var CodeMirror = (function() {
|
||||
indentLine(sel.from.line, options.enterMode == "keep" ? "prev" : "smart");
|
||||
}
|
||||
function handleTab(shift) {
|
||||
function indentSelected(mode) {
|
||||
if (posEq(sel.from, sel.to)) return indentLine(sel.from.line, mode);
|
||||
var e = sel.to.line - (sel.to.ch ? 0 : 1);
|
||||
for (var i = sel.from.line; i <= e; ++i) indentLine(i, mode);
|
||||
}
|
||||
shiftSelecting = null;
|
||||
switch (options.tabMode) {
|
||||
case "default":
|
||||
return false;
|
||||
case "indent":
|
||||
for (var i = sel.from.line, e = sel.to.line; i <= e; ++i) indentLine(i, "smart");
|
||||
indentSelected("smart");
|
||||
break;
|
||||
case "classic":
|
||||
if (posEq(sel.from, sel.to)) {
|
||||
@ -940,7 +989,7 @@ var CodeMirror = (function() {
|
||||
break;
|
||||
}
|
||||
case "shift":
|
||||
for (var i = sel.from.line, e = sel.to.line; i <= e; ++i) indentLine(i, shift ? "subtract" : "add");
|
||||
indentSelected(shift ? "subtract" : "add");
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
@ -1121,7 +1170,9 @@ var CodeMirror = (function() {
|
||||
function paddingLeft() {return lineSpace.offsetLeft;}
|
||||
|
||||
function posFromMouse(e, liberal) {
|
||||
var offW = eltOffset(scroller, true), x = e.e.clientX, y = e.e.clientY;
|
||||
var offW = eltOffset(scroller, true), x, y;
|
||||
// Fails unpredictably on IE[67] when mouse is dragged around quickly.
|
||||
try { x = e.clientX; y = e.clientY; } catch (e) { return null; }
|
||||
// This is a mess of a heuristic to try and determine whether a
|
||||
// scroll-bar was clicked or not, and to return null if one was
|
||||
// (and !liberal).
|
||||
@ -1135,18 +1186,21 @@ var CodeMirror = (function() {
|
||||
var pos = posFromMouse(e);
|
||||
if (!pos || window.opera) return; // Opera is difficult.
|
||||
if (posEq(sel.from, sel.to) || posLess(pos, sel.from) || !posLess(pos, sel.to))
|
||||
setCursor(pos.line, pos.ch);
|
||||
operation(setCursor)(pos.line, pos.ch);
|
||||
|
||||
var oldCSS = input.style.cssText;
|
||||
input.style.cssText = "position: fixed; width: 30px; height: 30px; top: " + (e.pageY() - 1) +
|
||||
"px; left: " + (e.pageX() - 1) + "px; z-index: 1000; background: white; " +
|
||||
"border-width: 0; outline: none; overflow: hidden;";
|
||||
inputDiv.style.position = "absolute";
|
||||
input.style.cssText = "position: fixed; width: 30px; height: 30px; top: " + (e_pageY(e) - 1) +
|
||||
"px; left: " + (e_pageX(e) - 1) + "px; z-index: 1000; background: white; " +
|
||||
"border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";
|
||||
leaveInputAlone = true;
|
||||
var val = input.value = getSelection();
|
||||
focusInput();
|
||||
setSelRange(input, 0, input.value.length);
|
||||
leaveInputAlone = true;
|
||||
function rehide() {
|
||||
if (input.value != val) operation(replaceSelection)(input.value, "end");
|
||||
var newVal = splitLines(input.value).join("\n");
|
||||
if (newVal != val) operation(replaceSelection)(newVal, "end");
|
||||
inputDiv.style.position = "relative";
|
||||
input.style.cssText = oldCSS;
|
||||
leaveInputAlone = false;
|
||||
prepareInput();
|
||||
@ -1154,7 +1208,7 @@ var CodeMirror = (function() {
|
||||
}
|
||||
|
||||
if (gecko) {
|
||||
e.stop()
|
||||
e_stop(e);
|
||||
var mouseup = connect(window, "mouseup", function() {
|
||||
mouseup();
|
||||
setTimeout(rehide, 20);
|
||||
@ -1201,19 +1255,20 @@ var CodeMirror = (function() {
|
||||
}
|
||||
}
|
||||
}
|
||||
for (var i = head.line, e = forward ? Math.min(i + 50, lines.length) : Math.max(-1, i - 50); i != e; i+=d) {
|
||||
for (var i = head.line, e = forward ? Math.min(i + 100, lines.length) : Math.max(-1, i - 100); i != e; i+=d) {
|
||||
var line = lines[i], first = i == head.line;
|
||||
var found = scan(line, first && forward ? pos + 1 : 0, first && !forward ? pos : line.text.length);
|
||||
if (found) {
|
||||
var style = found.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket";
|
||||
var one = markText({line: head.line, ch: pos}, {line: head.line, ch: pos+1}, style),
|
||||
two = markText({line: i, ch: found.pos}, {line: i, ch: found.pos + 1}, style);
|
||||
var clear = operation(function(){one(); two();});
|
||||
if (autoclear) setTimeout(clear, 800);
|
||||
else bracketHighlighted = clear;
|
||||
break;
|
||||
}
|
||||
if (found) break;
|
||||
}
|
||||
if (!found) found = {pos: null, match: false};
|
||||
var style = found.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket";
|
||||
var one = markText({line: head.line, ch: pos}, {line: head.line, ch: pos+1}, style),
|
||||
two = found.pos != null
|
||||
? markText({line: i, ch: found.pos}, {line: i, ch: found.pos + 1}, style)
|
||||
: function() {};
|
||||
var clear = operation(function(){one(); two();});
|
||||
if (autoclear) setTimeout(clear, 800);
|
||||
else bracketHighlighted = clear;
|
||||
}
|
||||
|
||||
// Finds the line to start with when starting a parse. Tries to
|
||||
@ -1244,38 +1299,49 @@ var CodeMirror = (function() {
|
||||
line.highlight(mode, state);
|
||||
line.stateAfter = copyState(mode, state);
|
||||
}
|
||||
if (!lines[n].stateAfter) work.push(n);
|
||||
if (n < lines.length && !lines[n].stateAfter) work.push(n);
|
||||
return state;
|
||||
}
|
||||
function highlightLines(start, end) {
|
||||
var state = getStateBefore(start);
|
||||
for (var i = start; i < end; ++i) {
|
||||
var line = lines[i];
|
||||
line.highlight(mode, state);
|
||||
line.stateAfter = copyState(mode, state);
|
||||
}
|
||||
}
|
||||
function highlightWorker() {
|
||||
var end = +new Date + options.workTime;
|
||||
var didSomething = false;
|
||||
var foundWork = work.length;
|
||||
while (work.length) {
|
||||
if (!lines[showingFrom].stateAfter) var task = showingFrom;
|
||||
else var task = work.pop();
|
||||
if (task >= lines.length) continue;
|
||||
didSomething = true;
|
||||
var start = findStartLine(task), state = start && lines[start-1].stateAfter;
|
||||
if (state) state = copyState(mode, state);
|
||||
else state = startState(mode);
|
||||
|
||||
var unchanged = 0;
|
||||
var unchanged = 0, compare = mode.compareStates;
|
||||
for (var i = start, l = lines.length; i < l; ++i) {
|
||||
var line = lines[i], hadState = line.stateAfter;
|
||||
if (+new Date > end) {
|
||||
work.push(i);
|
||||
startWorker(options.workDelay);
|
||||
changes.push({from: task, to: i});
|
||||
changes.push({from: task, to: i + 1});
|
||||
return;
|
||||
}
|
||||
var changed = line.highlight(mode, state);
|
||||
line.stateAfter = copyState(mode, state);
|
||||
if (changed || !hadState) unchanged = 0;
|
||||
else if (++unchanged > 3) break;
|
||||
if (compare) {
|
||||
if (hadState && compare(hadState, state)) break;
|
||||
} else {
|
||||
if (changed || !hadState) unchanged = 0;
|
||||
else if (++unchanged > 3) break;
|
||||
}
|
||||
}
|
||||
changes.push({from: task, to: i});
|
||||
changes.push({from: task, to: i + 1});
|
||||
}
|
||||
if (didSomething && options.onHighlightComplete)
|
||||
if (foundWork && options.onHighlightComplete)
|
||||
options.onHighlightComplete(instance);
|
||||
}
|
||||
function startWorker(time) {
|
||||
@ -1300,7 +1366,8 @@ var CodeMirror = (function() {
|
||||
|
||||
// updateInput can be set to a boolean value to force/prevent an
|
||||
// update.
|
||||
if (!leaveInputAlone && (updateInput === true || (updateInput !== false && selectionChanged)))
|
||||
if (focused && !leaveInputAlone &&
|
||||
(updateInput === true || (updateInput !== false && selectionChanged)))
|
||||
prepareInput();
|
||||
|
||||
if (selectionChanged && options.matchBrackets)
|
||||
@ -1427,9 +1494,21 @@ var CodeMirror = (function() {
|
||||
},
|
||||
|
||||
from: function() {if (this.atOccurrence) return copyPos(this.pos.from);},
|
||||
to: function() {if (this.atOccurrence) return copyPos(this.pos.to);}
|
||||
to: function() {if (this.atOccurrence) return copyPos(this.pos.to);},
|
||||
|
||||
replace: function(newText) {
|
||||
var self = this;
|
||||
if (this.atOccurrence)
|
||||
operation(function() {
|
||||
self.pos.to = replaceRange(newText, self.pos.from, self.pos.to);
|
||||
})();
|
||||
}
|
||||
};
|
||||
|
||||
for (var ext in extensions)
|
||||
if (extensions.propertyIsEnumerable(ext) &&
|
||||
!instance.propertyIsEnumerable(ext))
|
||||
instance[ext] = extensions[ext];
|
||||
return instance;
|
||||
} // (end of function CodeMirror)
|
||||
|
||||
@ -1437,6 +1516,7 @@ var CodeMirror = (function() {
|
||||
CodeMirror.defaults = {
|
||||
value: "",
|
||||
mode: null,
|
||||
theme: "default",
|
||||
indentUnit: 2,
|
||||
indentWithTabs: false,
|
||||
tabMode: "classic",
|
||||
@ -1482,7 +1562,7 @@ var CodeMirror = (function() {
|
||||
return CodeMirror.getMode(options, "text/plain");
|
||||
}
|
||||
return mfactory(options, config || {});
|
||||
}
|
||||
};
|
||||
CodeMirror.listModes = function() {
|
||||
var list = [];
|
||||
for (var m in modes)
|
||||
@ -1496,6 +1576,11 @@ var CodeMirror = (function() {
|
||||
return list;
|
||||
};
|
||||
|
||||
var extensions = {};
|
||||
CodeMirror.defineExtension = function(name, func) {
|
||||
extensions[name] = func;
|
||||
};
|
||||
|
||||
CodeMirror.fromTextArea = function(textarea, options) {
|
||||
if (!options) options = {};
|
||||
options.value = textarea.value;
|
||||
@ -1727,7 +1812,7 @@ var CodeMirror = (function() {
|
||||
var str = st[i], l = str.length;
|
||||
if (ch + l > len) str = str.slice(0, len - ch);
|
||||
ch += l;
|
||||
span(str, st[i+1]);
|
||||
span(str, "cm-" + st[i+1]);
|
||||
}
|
||||
else {
|
||||
var pos = 0, i = 0, text = "", style, sg = 0;
|
||||
@ -1759,12 +1844,12 @@ var CodeMirror = (function() {
|
||||
}
|
||||
for (;;) {
|
||||
var end = pos + text.length;
|
||||
var apliedStyle = style;
|
||||
if (extraStyle) apliedStyle = style ? style + extraStyle : extraStyle;
|
||||
span(end > upto ? text.slice(0, upto - pos) : text, apliedStyle);
|
||||
var appliedStyle = style;
|
||||
if (extraStyle) appliedStyle = style ? style + extraStyle : extraStyle;
|
||||
span(end > upto ? text.slice(0, upto - pos) : text, appliedStyle);
|
||||
if (end >= upto) {text = text.slice(upto - pos); pos = upto; break;}
|
||||
pos = end;
|
||||
text = st[i++]; style = st[i++];
|
||||
text = st[i++]; style = "cm-" + st[i++];
|
||||
}
|
||||
}
|
||||
if (sfrom != null && sto == null) span(" ", "CodeMirror-selected");
|
||||
@ -1822,44 +1907,44 @@ var CodeMirror = (function() {
|
||||
}
|
||||
};
|
||||
|
||||
// Event stopping compatibility wrapper.
|
||||
function stopEvent() {
|
||||
if (this.preventDefault) {this.preventDefault(); this.stopPropagation();}
|
||||
else {this.returnValue = false; this.cancelBubble = true;}
|
||||
}
|
||||
function stopMethod() {e_stop(this);}
|
||||
// Ensure an event has a stop method.
|
||||
function addStop(event) {
|
||||
if (!event.stop) event.stop = stopEvent;
|
||||
if (!event.stop) event.stop = stopMethod;
|
||||
return event;
|
||||
}
|
||||
|
||||
// Event wrapper, exposing the few operations we need.
|
||||
function Event(orig) {this.e = orig;}
|
||||
Event.prototype = {
|
||||
stop: function() {stopEvent.call(this.e);},
|
||||
target: function() {return this.e.target || this.e.srcElement;},
|
||||
button: function() {
|
||||
if (this.e.which) return this.e.which;
|
||||
else if (this.e.button & 1) return 1;
|
||||
else if (this.e.button & 2) return 3;
|
||||
else if (this.e.button & 4) return 2;
|
||||
},
|
||||
pageX: function() {
|
||||
if (this.e.pageX != null) return this.e.pageX;
|
||||
var doc = this.target().ownerDocument;
|
||||
return this.e.clientX + doc.body.scrollLeft + doc.documentElement.scrollLeft;
|
||||
},
|
||||
pageY: function() {
|
||||
if (this.e.pageY != null) return this.e.pageY;
|
||||
var doc = this.target().ownerDocument;
|
||||
return this.e.clientY + doc.body.scrollTop + doc.documentElement.scrollTop;
|
||||
}
|
||||
};
|
||||
function e_preventDefault(e) {
|
||||
if (e.preventDefault) e.preventDefault();
|
||||
else e.returnValue = false;
|
||||
}
|
||||
function e_stopPropagation(e) {
|
||||
if (e.stopPropagation) e.stopPropagation();
|
||||
else e.cancelBubble = true;
|
||||
}
|
||||
function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}
|
||||
function e_target(e) {return e.target || e.srcElement;}
|
||||
function e_button(e) {
|
||||
if (e.which) return e.which;
|
||||
else if (e.button & 1) return 1;
|
||||
else if (e.button & 2) return 3;
|
||||
else if (e.button & 4) return 2;
|
||||
}
|
||||
function e_pageX(e) {
|
||||
if (e.pageX != null) return e.pageX;
|
||||
var doc = e_target(e).ownerDocument;
|
||||
return e.clientX + doc.body.scrollLeft + doc.documentElement.scrollLeft;
|
||||
}
|
||||
function e_pageY(e) {
|
||||
if (e.pageY != null) return e.pageY;
|
||||
var doc = e_target(e).ownerDocument;
|
||||
return e.clientY + doc.body.scrollTop + doc.documentElement.scrollTop;
|
||||
}
|
||||
|
||||
// Event handler registration. If disconnect is true, it'll return a
|
||||
// function that unregisters the handler.
|
||||
function connect(node, type, handler, disconnect) {
|
||||
function wrapHandler(event) {handler(new Event(event || window.event));}
|
||||
function wrapHandler(event) {handler(event || window.event);}
|
||||
if (typeof node.addEventListener == "function") {
|
||||
node.addEventListener(type, wrapHandler, false);
|
||||
if (disconnect) return function() {node.removeEventListener(type, wrapHandler, false);};
|
||||
@ -1881,6 +1966,8 @@ var CodeMirror = (function() {
|
||||
})();
|
||||
|
||||
var gecko = /gecko\/\d{7}/i.test(navigator.userAgent);
|
||||
var ie = /MSIE \d/.test(navigator.userAgent);
|
||||
var safari = /Apple Computer/.test(navigator.vendor);
|
||||
|
||||
var lineSep = "\n";
|
||||
// Feature-detect whether newlines in textareas are converted to \r\n
|
||||
@ -1910,17 +1997,21 @@ var CodeMirror = (function() {
|
||||
return n;
|
||||
}
|
||||
|
||||
function computedStyle(elt) {
|
||||
if (elt.currentStyle) return elt.currentStyle;
|
||||
return window.getComputedStyle(elt, null);
|
||||
}
|
||||
// Find the position of an element by following the offsetParent chain.
|
||||
// If screen==true, it returns screen (rather than page) coordinates.
|
||||
function eltOffset(node, screen) {
|
||||
var doc = node.ownerDocument.body;
|
||||
var x = 0, y = 0, hitDoc = false;
|
||||
var x = 0, y = 0, skipDoc = false;
|
||||
for (var n = node; n; n = n.offsetParent) {
|
||||
x += n.offsetLeft; y += n.offsetTop;
|
||||
// Fixed-position elements don't have the document in their offset chain
|
||||
if (n == doc) hitDoc = true;
|
||||
if (screen && computedStyle(n).position == "fixed")
|
||||
skipDoc = true;
|
||||
}
|
||||
var e = screen && hitDoc ? null : doc;
|
||||
var e = screen && !skipDoc ? null : doc;
|
||||
for (var n = node.parentNode; n != e; n = n.parentNode)
|
||||
if (n.scrollLeft != null) { x -= n.scrollLeft; y -= n.scrollTop;}
|
||||
return {left: x, top: y};
|
||||
@ -1935,10 +2026,10 @@ var CodeMirror = (function() {
|
||||
function posLess(a, b) {return a.line < b.line || (a.line == b.line && a.ch < b.ch);}
|
||||
function copyPos(x) {return {line: x.line, ch: x.ch};}
|
||||
|
||||
var escapeElement = document.createElement("div");
|
||||
function htmlEscape(str) {
|
||||
return str.replace(/[<>&]/g, function(str) {
|
||||
return str == "&" ? "&" : str == "<" ? "<" : ">";
|
||||
});
|
||||
escapeElement.innerText = escapeElement.textContent = str;
|
||||
return escapeElement.innerHTML;
|
||||
}
|
||||
CodeMirror.htmlEscape = htmlEscape;
|
||||
|
||||
@ -1961,8 +2052,9 @@ var CodeMirror = (function() {
|
||||
|
||||
// See if "".split is the broken IE version, if so, provide an
|
||||
// alternative way to split lines.
|
||||
var splitLines, selRange, setSelRange;
|
||||
if ("\n\nb".split(/\n/).length != 3)
|
||||
var splitLines = function(string) {
|
||||
splitLines = function(string) {
|
||||
var pos = 0, nl, result = [];
|
||||
while ((nl = string.indexOf("\n", pos)) > -1) {
|
||||
result.push(string.slice(pos, string.charAt(nl-1) == "\r" ? nl - 1 : nl));
|
||||
@ -1972,23 +2064,39 @@ var CodeMirror = (function() {
|
||||
return result;
|
||||
};
|
||||
else
|
||||
var splitLines = function(string){return string.split(/\r?\n/);};
|
||||
splitLines = function(string){return string.split(/\r?\n/);};
|
||||
CodeMirror.splitLines = splitLines;
|
||||
|
||||
// Sane model of finding and setting the selection in a textarea
|
||||
if (window.getSelection) {
|
||||
var selRange = function(te) {
|
||||
selRange = function(te) {
|
||||
try {return {start: te.selectionStart, end: te.selectionEnd};}
|
||||
catch(e) {return null;}
|
||||
};
|
||||
var setSelRange = function(te, start, end) {
|
||||
try {te.setSelectionRange(start, end);}
|
||||
catch(e) {} // Fails on Firefox when textarea isn't part of the document
|
||||
};
|
||||
if (safari)
|
||||
// On Safari, selection set with setSelectionRange are in a sort
|
||||
// of limbo wrt their anchor. If you press shift-left in them,
|
||||
// the anchor is put at the end, and the selection expanded to
|
||||
// the left. If you press shift-right, the anchor ends up at the
|
||||
// front. This is not what CodeMirror wants, so it does a
|
||||
// spurious modify() call to get out of limbo.
|
||||
setSelRange = function(te, start, end) {
|
||||
if (start == end)
|
||||
te.setSelectionRange(start, end);
|
||||
else {
|
||||
te.setSelectionRange(start, end - 1);
|
||||
window.getSelection().modify("extend", "forward", "character");
|
||||
}
|
||||
};
|
||||
else
|
||||
setSelRange = function(te, start, end) {
|
||||
try {te.setSelectionRange(start, end);}
|
||||
catch(e) {} // Fails on Firefox when textarea isn't part of the document
|
||||
};
|
||||
}
|
||||
// IE model. Don't ask.
|
||||
else {
|
||||
var selRange = function(te) {
|
||||
selRange = function(te) {
|
||||
try {var range = te.ownerDocument.selection.createRange();}
|
||||
catch(e) {return null;}
|
||||
if (!range || range.parentElement() != te) return null;
|
||||
@ -2010,7 +2118,7 @@ var CodeMirror = (function() {
|
||||
for (var i = val.indexOf("\r"); i > -1 && i < end; i = val.indexOf("\r", i+1), end++) {}
|
||||
return {start: start, end: end};
|
||||
};
|
||||
var setSelRange = function(te, start, end) {
|
||||
setSelRange = function(te, start, end) {
|
||||
var range = te.createTextRange();
|
||||
range.collapse(true);
|
||||
var endrange = range.duplicate();
|
||||
@ -2032,4 +2140,5 @@ var CodeMirror = (function() {
|
||||
CodeMirror.defineMIME("text/plain", "null");
|
||||
|
||||
return CodeMirror;
|
||||
})();
|
||||
})()
|
||||
;
|
||||
@ -1936,6 +1936,38 @@ $(document).ready(function() {
|
||||
|
||||
}, 'top.frame_content'); //end $(document).ready for 'Change Table'
|
||||
|
||||
/**
|
||||
* jQuery coding for 'Table operations'. Used on tbl_operations.php
|
||||
* Attach Ajax Event handlers for Table operations
|
||||
*/
|
||||
$(document).ready(function() {
|
||||
/**
|
||||
*Ajax action for submitting the "Alter table order by"
|
||||
**/
|
||||
$("#alterTableOrderby.ajax").live('submit', function(event) {
|
||||
event.preventDefault();
|
||||
$form = $(this);
|
||||
|
||||
PMA_prepareForAjaxRequest($form);
|
||||
/*variables which stores the common attributes*/
|
||||
$.post($form.attr('action'), $form.serialize()+"&submitorderby=Go", function(data) {
|
||||
if ($("#sqlqueryresults").length != 0) {
|
||||
$("#sqlqueryresults").remove();
|
||||
}
|
||||
if (data.success == true) {
|
||||
PMA_ajaxShowMessage(data.message);
|
||||
$("<div id='sqlqueryresults'></div>").insertAfter("#topmenucontainer");
|
||||
$("#sqlqueryresults").html(data.sql_query);
|
||||
$("#result_query .notice").remove();
|
||||
$("#result_query").prepend((data.message));
|
||||
} else {
|
||||
PMA_ajaxShowMessage(data.error);
|
||||
}
|
||||
}) // end $.post()
|
||||
});//end of alterTableOrderby ajax submit
|
||||
}, 'top.frame_content'); //end $(document).ready for 'Table operations'
|
||||
|
||||
|
||||
/**
|
||||
* Attach Ajax event handlers for Drop Database. Moved here from db_structure.js
|
||||
* as it was also required on db_create.php
|
||||
|
||||
@ -899,6 +899,11 @@ if (! defined('PMA_MINIMUM_COMMON')) {
|
||||
unset($login_without_password_is_forbidden); //Clean up after you!
|
||||
}
|
||||
|
||||
// if using TCP socket is not needed
|
||||
if (strtolower($cfg['Server']['connect_type']) == 'tcp') {
|
||||
$cfg['Server']['socket'] = '';
|
||||
}
|
||||
|
||||
// Try to connect MySQL with the control user profile (will be used to
|
||||
// get the privileges list for the current user but the true user link
|
||||
// must be open after this one so it would be default one for all the
|
||||
|
||||
@ -20,18 +20,28 @@ if (! defined('PMA_MYSQL_CLIENT_API')) {
|
||||
unset($client_api);
|
||||
}
|
||||
|
||||
function PMA_DBI_real_connect($server, $user, $password, $client_flags, $persistant=false)
|
||||
/**
|
||||
* Helper function for connecting to the database server
|
||||
*
|
||||
* @param string $server
|
||||
* @param string $user
|
||||
* @param string $password
|
||||
* @param int $client_flags
|
||||
* @param boolean $persistent
|
||||
* @return mixed false on error or a mysql connection resource on success
|
||||
*/
|
||||
function PMA_DBI_real_connect($server, $user, $password, $client_flags, $persistent = false)
|
||||
{
|
||||
global $cfg;
|
||||
|
||||
if (empty($client_flags)) {
|
||||
if ($cfg['PersistentConnections'] || $persistant) {
|
||||
if ($cfg['PersistentConnections'] || $persistent) {
|
||||
$link = @mysql_pconnect($server, $user, $password);
|
||||
} else {
|
||||
$link = @mysql_connect($server, $user, $password);
|
||||
}
|
||||
} else {
|
||||
if ($cfg['PersistentConnections'] || $persistant) {
|
||||
if ($cfg['PersistentConnections'] || $persistent) {
|
||||
$link = @mysql_pconnect($server, $user, $password, $client_flags);
|
||||
} else {
|
||||
$link = @mysql_connect($server, $user, $password, false, $client_flags);
|
||||
@ -40,11 +50,14 @@ function PMA_DBI_real_connect($server, $user, $password, $client_flags, $persist
|
||||
|
||||
return $link;
|
||||
}
|
||||
|
||||
/**
|
||||
* connects to the database server
|
||||
*
|
||||
* @param string $user mysql user name
|
||||
* @param string $password mysql user password
|
||||
* @param boolean $is_controluser
|
||||
* @param array $server host/port/socket/persistant
|
||||
* @param array $server host/port/socket/persistent
|
||||
* @param boolean $auxiliary_connection (when true, don't go back to login if connection fails)
|
||||
* @return mixed false on error or a mysqli object on success
|
||||
*/
|
||||
@ -59,9 +72,6 @@ function PMA_DBI_connect($user, $password, $is_controluser = false, $server = nu
|
||||
$server_socket = (empty($server['socket']))
|
||||
? ''
|
||||
: ':' . $server['socket'];
|
||||
$server_persistant = (empty($server['persistant']))
|
||||
? false
|
||||
: true;
|
||||
} else {
|
||||
$server_port = (empty($cfg['Server']['port']))
|
||||
? ''
|
||||
@ -71,10 +81,6 @@ function PMA_DBI_connect($user, $password, $is_controluser = false, $server = nu
|
||||
: ':' . $cfg['Server']['socket'];
|
||||
}
|
||||
|
||||
if (strtolower($cfg['Server']['connect_type']) == 'tcp') {
|
||||
$cfg['Server']['socket'] = '';
|
||||
}
|
||||
|
||||
$client_flags = 0;
|
||||
|
||||
// always use CLIENT_LOCAL_FILES as defined in mysql_com.h
|
||||
@ -101,9 +107,9 @@ function PMA_DBI_connect($user, $password, $is_controluser = false, $server = nu
|
||||
}
|
||||
} else {
|
||||
if (!isset($server['host'])) {
|
||||
$link = PMA_DBI_real_connect($server_socket, $user, $password, NULL, $server_persistant);
|
||||
$link = PMA_DBI_real_connect($server_socket, $user, $password, NULL);
|
||||
} else {
|
||||
$link = PMA_DBI_real_connect($server['host'] . $server_port . $server_socket, $user, $password, NULL, $server_persistant);
|
||||
$link = PMA_DBI_real_connect($server['host'] . $server_port . $server_socket, $user, $password, NULL);
|
||||
}
|
||||
}
|
||||
if (empty($link)) {
|
||||
@ -128,11 +134,11 @@ function PMA_DBI_connect($user, $password, $is_controluser = false, $server = nu
|
||||
}
|
||||
|
||||
/**
|
||||
* select a db
|
||||
* selects given database
|
||||
*
|
||||
* @param string $dbname name of db to select
|
||||
* @param resource $link mysql link resource
|
||||
* @return boolean success
|
||||
* @param string $dbname name of db to select
|
||||
* @param resource $link mysql link resource
|
||||
* @return boolean
|
||||
*/
|
||||
function PMA_DBI_select_db($dbname, $link = null)
|
||||
{
|
||||
@ -149,9 +155,9 @@ function PMA_DBI_select_db($dbname, $link = null)
|
||||
/**
|
||||
* runs a query and returns the result
|
||||
*
|
||||
* @param string $query query to run
|
||||
* @param string $query query to run
|
||||
* @param resource $link mysql link resource
|
||||
* @param integer $options
|
||||
* @param integer $options
|
||||
* @return mixed
|
||||
*/
|
||||
function PMA_DBI_real_query($query, $link, $options)
|
||||
@ -165,15 +171,33 @@ function PMA_DBI_real_query($query, $link, $options)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* returns array of rows with associative and numeric keys from $result
|
||||
*
|
||||
* @param resource $result
|
||||
* @return array
|
||||
*/
|
||||
function PMA_DBI_fetch_array($result)
|
||||
{
|
||||
return mysql_fetch_array($result, MYSQL_BOTH);
|
||||
}
|
||||
|
||||
/**
|
||||
* returns array of rows with associative keys from $result
|
||||
*
|
||||
* @param resource $result
|
||||
* @return array
|
||||
*/
|
||||
function PMA_DBI_fetch_assoc($result) {
|
||||
return mysql_fetch_array($result, MYSQL_ASSOC);
|
||||
}
|
||||
|
||||
/**
|
||||
* returns array of rows with numeric keys from $result
|
||||
*
|
||||
* @param resource $result
|
||||
* @return array
|
||||
*/
|
||||
function PMA_DBI_fetch_row($result)
|
||||
{
|
||||
return mysql_fetch_array($result, MYSQL_NUM);
|
||||
@ -192,17 +216,14 @@ function PMA_DBI_data_seek($result, $offset)
|
||||
}
|
||||
|
||||
/**
|
||||
* Frees the memory associated with the results
|
||||
* Frees memory associated with the result
|
||||
*
|
||||
* @param result $result,... one or more mysql result resources
|
||||
* @param resource $result
|
||||
*/
|
||||
function PMA_DBI_free_result()
|
||||
function PMA_DBI_free_result($result)
|
||||
{
|
||||
foreach (func_get_args() as $result) {
|
||||
if (is_resource($result)
|
||||
&& get_resource_type($result) === 'mysql result') {
|
||||
mysql_free_result($result);
|
||||
}
|
||||
if (is_resource($result) && get_resource_type($result) === 'mysql result') {
|
||||
mysql_free_result($result);
|
||||
}
|
||||
}
|
||||
|
||||
@ -337,6 +358,12 @@ function PMA_DBI_getError($link = null)
|
||||
return $error;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns the number of rows returned by last query
|
||||
*
|
||||
* @param resource $result
|
||||
* @return string|ineteger
|
||||
*/
|
||||
function PMA_DBI_num_rows($result)
|
||||
{
|
||||
if (!is_bool($result)) {
|
||||
@ -346,6 +373,12 @@ function PMA_DBI_num_rows($result)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* returns last inserted auto_increment id for given $link or $GLOBALS['userlink']
|
||||
*
|
||||
* @param resource $link the mysql object
|
||||
* @return string|ineteger
|
||||
*/
|
||||
function PMA_DBI_insert_id($link = null)
|
||||
{
|
||||
if (empty($link)) {
|
||||
@ -366,9 +399,9 @@ function PMA_DBI_insert_id($link = null)
|
||||
/**
|
||||
* returns the number of rows affected by last query
|
||||
*
|
||||
* @param object mysql $link the mysql object
|
||||
* @param boolean $get_from_cache
|
||||
* @return string integer
|
||||
* @param resource $link the mysql object
|
||||
* @param boolean $get_from_cache
|
||||
* @return string|integer
|
||||
*/
|
||||
function PMA_DBI_affected_rows($link = null, $get_from_cache = true)
|
||||
{
|
||||
@ -388,7 +421,11 @@ function PMA_DBI_affected_rows($link = null, $get_from_cache = true)
|
||||
}
|
||||
|
||||
/**
|
||||
* returns metainfo for fields in $result
|
||||
*
|
||||
* @todo add missing keys like in from mysqli_query (orgname, orgtable, flags, decimals)
|
||||
* @param resource $result
|
||||
* @return array meta info for fields in $result
|
||||
*/
|
||||
function PMA_DBI_get_fields_meta($result)
|
||||
{
|
||||
|
||||
@ -33,6 +33,44 @@ if (! defined('MYSQLI_BINARY_FLAG')) {
|
||||
define('MYSQLI_BINARY_FLAG', 128);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see http://bugs.php.net/36007
|
||||
*/
|
||||
if (! defined('MYSQLI_TYPE_NEWDECIMAL')) {
|
||||
define('MYSQLI_TYPE_NEWDECIMAL', 246);
|
||||
}
|
||||
if (! defined('MYSQLI_TYPE_BIT')) {
|
||||
define('MYSQLI_TYPE_BIT', 16);
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function for connecting to the database server
|
||||
*
|
||||
* @param mysqli $link
|
||||
* @param string $host
|
||||
* @param string $user
|
||||
* @param string $password
|
||||
* @param string $dbname
|
||||
* @param int $server_port
|
||||
* @param string $server_socket
|
||||
* @param int $client_flags
|
||||
* @param boolean $persistent
|
||||
* @return boolean
|
||||
*/
|
||||
function PMA_DBI_real_connect($link, $host, $user, $password, $dbname, $server_port, $server_socket, $client_flags = null, $persistent = false)
|
||||
{
|
||||
global $cfg;
|
||||
|
||||
if ($cfg['PersistentConnections'] || $persistent) {
|
||||
$host = 'p:' . $host;
|
||||
}
|
||||
if ($client_flags === null) {
|
||||
return @mysqli_real_connect($link, $host, $user, $password, $dbname, $server_port, $server_socket);
|
||||
} else {
|
||||
return @mysqli_real_connect($link, $host, $user, $password, $dbname, $server_port, $server_socket, $client_flags);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* connects to the database server
|
||||
*
|
||||
@ -45,6 +83,8 @@ if (! defined('MYSQLI_BINARY_FLAG')) {
|
||||
*/
|
||||
function PMA_DBI_connect($user, $password, $is_controluser = false, $server = null, $auxiliary_connection = false)
|
||||
{
|
||||
global $cfg;
|
||||
|
||||
if ($server) {
|
||||
$server_port = (empty($server['port']))
|
||||
? false
|
||||
@ -56,17 +96,12 @@ function PMA_DBI_connect($user, $password, $is_controluser = false, $server = nu
|
||||
? 'localhost'
|
||||
: $server['host'];
|
||||
} else {
|
||||
$server_port = (empty($GLOBALS['cfg']['Server']['port']))
|
||||
$server_port = (empty($cfg['Server']['port']))
|
||||
? false
|
||||
: (int) $GLOBALS['cfg']['Server']['port'];
|
||||
$server_socket = (empty($GLOBALS['cfg']['Server']['socket']))
|
||||
: (int) $cfg['Server']['port'];
|
||||
$server_socket = (empty($cfg['Server']['socket']))
|
||||
? null
|
||||
: $GLOBALS['cfg']['Server']['socket'];
|
||||
}
|
||||
|
||||
|
||||
if (strtolower($GLOBALS['cfg']['Server']['connect_type']) == 'tcp') {
|
||||
$GLOBALS['cfg']['Server']['socket'] = '';
|
||||
: $cfg['Server']['socket'];
|
||||
}
|
||||
|
||||
// NULL enables connection to the default socket
|
||||
@ -78,23 +113,23 @@ function PMA_DBI_connect($user, $password, $is_controluser = false, $server = nu
|
||||
$client_flags = 0;
|
||||
|
||||
/* Optionally compress connection */
|
||||
if ($GLOBALS['cfg']['Server']['compress'] && defined('MYSQLI_CLIENT_COMPRESS')) {
|
||||
if ($cfg['Server']['compress'] && defined('MYSQLI_CLIENT_COMPRESS')) {
|
||||
$client_flags |= MYSQLI_CLIENT_COMPRESS;
|
||||
}
|
||||
|
||||
/* Optionally enable SSL */
|
||||
if ($GLOBALS['cfg']['Server']['ssl'] && defined('MYSQLI_CLIENT_SSL')) {
|
||||
if ($cfg['Server']['ssl'] && defined('MYSQLI_CLIENT_SSL')) {
|
||||
$client_flags |= MYSQLI_CLIENT_SSL;
|
||||
}
|
||||
|
||||
if (!$server) {
|
||||
$return_value = @mysqli_real_connect($link, $GLOBALS['cfg']['Server']['host'], $user, $password, false, $server_port, $server_socket, $client_flags);
|
||||
$return_value = @PMA_DBI_real_connect($link, $cfg['Server']['host'], $user, $password, false, $server_port, $server_socket, $client_flags);
|
||||
// Retry with empty password if we're allowed to
|
||||
if ($return_value == false && isset($GLOBALS['cfg']['Server']['nopassword']) && $GLOBALS['cfg']['Server']['nopassword'] && !$is_controluser) {
|
||||
$return_value = @mysqli_real_connect($link, $GLOBALS['cfg']['Server']['host'], $user, '', false, $server_port, $server_socket, $client_flags);
|
||||
if ($return_value == false && isset($cfg['Server']['nopassword']) && $cfg['Server']['nopassword'] && !$is_controluser) {
|
||||
$return_value = @PMA_DBI_real_connect($link, $cfg['Server']['host'], $user, '', false, $server_port, $server_socket, $client_flags);
|
||||
}
|
||||
} else {
|
||||
$return_value = @mysqli_real_connect($link, $server['host'], $user, $password, false, $server_port, $server_socket);
|
||||
$return_value = @PMA_DBI_real_connect($link, $server['host'], $user, $password, false, $server_port, $server_socket);
|
||||
}
|
||||
|
||||
if ($return_value == false) {
|
||||
@ -121,9 +156,9 @@ function PMA_DBI_connect($user, $password, $is_controluser = false, $server = nu
|
||||
/**
|
||||
* selects given database
|
||||
*
|
||||
* @param string $dbname database name to select
|
||||
* @param object mysqli $link the mysqli object
|
||||
* @return boolean true or false
|
||||
* @param string $dbname database name to select
|
||||
* @param mysqli $link the mysqli object
|
||||
* @return boolean
|
||||
*/
|
||||
function PMA_DBI_select_db($dbname, $link = null)
|
||||
{
|
||||
@ -140,10 +175,10 @@ function PMA_DBI_select_db($dbname, $link = null)
|
||||
/**
|
||||
* runs a query and returns the result
|
||||
*
|
||||
* @param string $query query to execute
|
||||
* @param object mysqli $link mysqli object
|
||||
* @param integer $options
|
||||
* @return mixed true, false or result object
|
||||
* @param string $query query to execute
|
||||
* @param mysqli $link mysqli object
|
||||
* @param integer $options
|
||||
* @return mysqli_result|boolean
|
||||
*/
|
||||
function PMA_DBI_real_query($query, $link, $options)
|
||||
{
|
||||
@ -161,8 +196,8 @@ function PMA_DBI_real_query($query, $link, $options)
|
||||
/**
|
||||
* returns array of rows with associative and numeric keys from $result
|
||||
*
|
||||
* @param object mysqli result $result
|
||||
* @return array result rows
|
||||
* @param mysqli_result $result
|
||||
* @return array
|
||||
*/
|
||||
function PMA_DBI_fetch_array($result)
|
||||
{
|
||||
@ -172,8 +207,8 @@ function PMA_DBI_fetch_array($result)
|
||||
/**
|
||||
* returns array of rows with associative keys from $result
|
||||
*
|
||||
* @param object mysqli result $result
|
||||
* @return array result rows
|
||||
* @param mysqli_result $result
|
||||
* @return array
|
||||
*/
|
||||
function PMA_DBI_fetch_assoc($result)
|
||||
{
|
||||
@ -183,8 +218,8 @@ function PMA_DBI_fetch_assoc($result)
|
||||
/**
|
||||
* returns array of rows with numeric keys from $result
|
||||
*
|
||||
* @param object mysqli result $result
|
||||
* @return array result rows
|
||||
* @param mysqli_result $result
|
||||
* @return array
|
||||
*/
|
||||
function PMA_DBI_fetch_row($result)
|
||||
{
|
||||
@ -204,23 +239,21 @@ function PMA_DBI_data_seek($result, $offset)
|
||||
}
|
||||
|
||||
/**
|
||||
* Frees the memory associated with the results
|
||||
* Frees memory associated with the result
|
||||
*
|
||||
* @param result $result,... one or more mysql result resources
|
||||
* @param mysqli_result $result
|
||||
*/
|
||||
function PMA_DBI_free_result()
|
||||
function PMA_DBI_free_result($result)
|
||||
{
|
||||
foreach (func_get_args() as $result) {
|
||||
if ($result instanceof mysqli_result) {
|
||||
mysqli_free_result($result);
|
||||
}
|
||||
if ($result instanceof mysqli_result) {
|
||||
mysqli_free_result($result);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if there are any more query results from a multi query
|
||||
*
|
||||
* @param object mysqli $link the mysqli object
|
||||
* @param mysqli $link the mysqli object
|
||||
* @return boolean true or false
|
||||
*/
|
||||
function PMA_DBI_more_results($link = null) {
|
||||
@ -237,7 +270,7 @@ function PMA_DBI_more_results($link = null) {
|
||||
/**
|
||||
* Prepare next result from multi_query
|
||||
*
|
||||
* @param object mysqli $link the mysqli object
|
||||
* @param mysqli $link the mysqli object
|
||||
* @return boolean true or false
|
||||
*/
|
||||
function PMA_DBI_next_result($link = null) {
|
||||
@ -346,8 +379,10 @@ function PMA_DBI_getError($link = null)
|
||||
}
|
||||
|
||||
/**
|
||||
* returns the number of rows returned by last query
|
||||
*
|
||||
* @param object mysqli result $result
|
||||
* @param mysqli_result $result
|
||||
* @return string|ineteger
|
||||
*/
|
||||
function PMA_DBI_num_rows($result)
|
||||
{
|
||||
@ -362,10 +397,10 @@ function PMA_DBI_num_rows($result)
|
||||
/**
|
||||
* returns last inserted auto_increment id for given $link or $GLOBALS['userlink']
|
||||
*
|
||||
* @param object mysqli $link the mysqli object
|
||||
* @return string ineteger
|
||||
* @param mysqli $link the mysqli object
|
||||
* @return string|ineteger
|
||||
*/
|
||||
function PMA_DBI_insert_id($link = '')
|
||||
function PMA_DBI_insert_id($link = null)
|
||||
{
|
||||
if (empty($link)) {
|
||||
if (isset($GLOBALS['userlink'])) {
|
||||
@ -386,9 +421,9 @@ function PMA_DBI_insert_id($link = '')
|
||||
/**
|
||||
* returns the number of rows affected by last query
|
||||
*
|
||||
* @param object mysqli $link the mysqli object
|
||||
* @param boolean $get_from_cache
|
||||
* @return string integer
|
||||
* @param mysqli $link the mysqli object
|
||||
* @param boolean $get_from_cache
|
||||
* @return string|integer
|
||||
*/
|
||||
function PMA_DBI_affected_rows($link = null, $get_from_cache = true)
|
||||
{
|
||||
@ -410,8 +445,8 @@ function PMA_DBI_affected_rows($link = null, $get_from_cache = true)
|
||||
* returns metainfo for fields in $result
|
||||
*
|
||||
* @todo preserve orignal flags value
|
||||
* @param object mysqli result $result
|
||||
* @return array meta info for fields in $result
|
||||
* @param mysqli_result $result
|
||||
* @return array meta info for fields in $result
|
||||
*/
|
||||
function PMA_DBI_get_fields_meta($result)
|
||||
{
|
||||
@ -459,7 +494,7 @@ function PMA_DBI_get_fields_meta($result)
|
||||
|
||||
foreach ($fields as $k => $field) {
|
||||
$fields[$k]->_type = $field->type;
|
||||
$fields[$k]->type = isset($typeAr[$field->type]) ? $typeAr[$field->type] : null;
|
||||
$fields[$k]->type = $typeAr[$field->type];
|
||||
$fields[$k]->_flags = $field->flags;
|
||||
$fields[$k]->flags = PMA_DBI_field_flags($result, $k);
|
||||
|
||||
@ -489,8 +524,8 @@ function PMA_DBI_get_fields_meta($result)
|
||||
/**
|
||||
* return number of fields in given $result
|
||||
*
|
||||
* @param object mysqli result $result
|
||||
* @return integer field count
|
||||
* @param mysqli_result $result
|
||||
* @return integer field count
|
||||
*/
|
||||
function PMA_DBI_num_fields($result)
|
||||
{
|
||||
@ -500,9 +535,9 @@ function PMA_DBI_num_fields($result)
|
||||
/**
|
||||
* returns the length of the given field $i in $result
|
||||
*
|
||||
* @param object mysqli result $result
|
||||
* @param integer $i field
|
||||
* @return integer length of field
|
||||
* @param mysqli_result $result
|
||||
* @param integer $i field
|
||||
* @return integer length of field
|
||||
*/
|
||||
function PMA_DBI_field_len($result, $i)
|
||||
{
|
||||
@ -512,9 +547,9 @@ function PMA_DBI_field_len($result, $i)
|
||||
/**
|
||||
* returns name of $i. field in $result
|
||||
*
|
||||
* @param object mysqli result $result
|
||||
* @param integer $i field
|
||||
* @return string name of $i. field in $result
|
||||
* @param mysqli_result $result
|
||||
* @param integer $i field
|
||||
* @return string name of $i. field in $result
|
||||
*/
|
||||
function PMA_DBI_field_name($result, $i)
|
||||
{
|
||||
@ -524,9 +559,9 @@ function PMA_DBI_field_name($result, $i)
|
||||
/**
|
||||
* returns concatenated string of human readable field flags
|
||||
*
|
||||
* @param object mysqli result $result
|
||||
* @param integer $i field
|
||||
* @return string field flags
|
||||
* @param mysqli_result $result
|
||||
* @param integer $i field
|
||||
* @return string field flags
|
||||
*/
|
||||
function PMA_DBI_field_flags($result, $i)
|
||||
{
|
||||
|
||||
144
po/ar.po
144
po/ar.po
@ -4,7 +4,7 @@ msgstr ""
|
||||
"Project-Id-Version: phpMyAdmin 3.5.0-dev\n"
|
||||
"Report-Msgid-Bugs-To: phpmyadmin-devel@lists.sourceforge.net\n"
|
||||
"POT-Creation-Date: 2011-07-25 11:36+0200\n"
|
||||
"PO-Revision-Date: 2011-07-09 03:43+0200\n"
|
||||
"PO-Revision-Date: 2011-07-25 22:07+0200\n"
|
||||
"Last-Translator: Abdullah Al-Saedi <abdullah.10@windowslive.com>\n"
|
||||
"Language-Team: arabic <ar@li.org>\n"
|
||||
"Language: ar\n"
|
||||
@ -1122,15 +1122,14 @@ msgstr "اتصالات / عمليات"
|
||||
|
||||
#. l10n: Questions is the name of a MySQL Status variable
|
||||
#: js/messages.php:87
|
||||
#, fuzzy
|
||||
#| msgid "Connections since last refresh"
|
||||
msgid "Questions since last refresh"
|
||||
msgstr "الإتصالات منذ آخر تحديث"
|
||||
msgstr "العمليات منذ آخر تحديث"
|
||||
|
||||
#. l10n: Questions is the name of a MySQL Status variable
|
||||
#: js/messages.php:89
|
||||
msgid "Questions (executed statements by the server)"
|
||||
msgstr ""
|
||||
msgstr "العمليات (الجمل المنفذة بواسطة الخادم)"
|
||||
|
||||
#: js/messages.php:91 server_status.php:617
|
||||
msgid "Query statistics"
|
||||
@ -1138,11 +1137,11 @@ msgstr "إحصائيات الإستعلام"
|
||||
|
||||
#: js/messages.php:94
|
||||
msgid "System CPU Usage"
|
||||
msgstr ""
|
||||
msgstr "إستخدام النظام للمعالج (CPU)"
|
||||
|
||||
#: js/messages.php:95
|
||||
msgid "System memory"
|
||||
msgstr ""
|
||||
msgstr "ذاكرة النظام"
|
||||
|
||||
#: js/messages.php:96
|
||||
msgid "System swap"
|
||||
@ -1158,14 +1157,13 @@ msgstr "كيلوبايت"
|
||||
|
||||
#: js/messages.php:100
|
||||
msgid "Average load"
|
||||
msgstr ""
|
||||
msgstr "متوسط التحميل"
|
||||
|
||||
#. l10n: Questions is the name of a MySQL Status variable
|
||||
#: js/messages.php:102
|
||||
#, fuzzy
|
||||
#| msgid "Versions"
|
||||
msgid "Questions"
|
||||
msgstr "نسخ"
|
||||
msgstr "العمليات"
|
||||
|
||||
#: js/messages.php:103 server_status.php:894
|
||||
msgid "Traffic"
|
||||
@ -1173,20 +1171,18 @@ msgstr "بيانات سير"
|
||||
|
||||
#: js/messages.php:104 libraries/server_links.inc.php:73
|
||||
#: server_status.php:1324
|
||||
#, fuzzy
|
||||
#| msgid "General relation features"
|
||||
msgid "Settings"
|
||||
msgstr "المزايا العامّة للرابط"
|
||||
msgstr "الإعدادات"
|
||||
|
||||
#: js/messages.php:105
|
||||
#, fuzzy
|
||||
#| msgid "Remove database"
|
||||
msgid "Remove chart"
|
||||
msgstr "حذف قاعدة البيانات"
|
||||
msgstr "حذف الرسم البياني"
|
||||
|
||||
#: js/messages.php:106
|
||||
msgid "Edit labels and series"
|
||||
msgstr ""
|
||||
msgstr "حذف العناوين والسلاسل"
|
||||
|
||||
#: js/messages.php:107
|
||||
msgid "Add chart to grid"
|
||||
@ -1194,7 +1190,7 @@ msgstr ""
|
||||
|
||||
#: js/messages.php:109
|
||||
msgid "Please add at least one variable to the series"
|
||||
msgstr ""
|
||||
msgstr "فضلا , أضف متغير واحد على الأقل للسلسلة"
|
||||
|
||||
#: js/messages.php:110 libraries/display_export.lib.php:306
|
||||
#: libraries/display_tbl.lib.php:561 libraries/export/sql.php:1052
|
||||
@ -10591,7 +10587,7 @@ msgstr "صيانة الجدول"
|
||||
|
||||
#: tbl_operations.php:614
|
||||
msgid "Defragment table"
|
||||
msgstr ""
|
||||
msgstr "إلغاء تجزئة الجدول"
|
||||
|
||||
#: tbl_operations.php:662
|
||||
#, php-format
|
||||
@ -10599,26 +10595,23 @@ msgid "Table %s has been flushed"
|
||||
msgstr "لقد تم إعادة تحميل الجدول %s بنجاح"
|
||||
|
||||
#: tbl_operations.php:668
|
||||
#, fuzzy
|
||||
#| msgid "Flush the table (\"FLUSH\")"
|
||||
msgid "Flush the table (FLUSH)"
|
||||
msgstr "إعادة تحميل الجدول (\"FLUSH\")"
|
||||
msgstr "إعادة تحميل الجدول (FLUSH)"
|
||||
|
||||
#: tbl_operations.php:677
|
||||
#, fuzzy
|
||||
#| msgid "Dumping data for table"
|
||||
msgid "Delete data or table"
|
||||
msgstr "إرجاع أو استيراد بيانات الجدول"
|
||||
msgstr "حذف البيانات او الجدول"
|
||||
|
||||
#: tbl_operations.php:692
|
||||
msgid "Empty the table (TRUNCATE)"
|
||||
msgstr ""
|
||||
msgstr "إفراغ الجدول (TRUNCATE)"
|
||||
|
||||
#: tbl_operations.php:712
|
||||
#, fuzzy
|
||||
#| msgid "Copy database to"
|
||||
msgid "Delete the table (DROP)"
|
||||
msgstr "إنسخ قاعدة البيانات إلى"
|
||||
msgstr "حذف الجدول (DROP)"
|
||||
|
||||
#: tbl_operations.php:733
|
||||
msgid "Partition maintenance"
|
||||
@ -10627,7 +10620,7 @@ msgstr ""
|
||||
#: tbl_operations.php:741
|
||||
#, php-format
|
||||
msgid "Partition %s"
|
||||
msgstr ""
|
||||
msgstr "تقسيم %s"
|
||||
|
||||
#: tbl_operations.php:744
|
||||
msgid "Analyze"
|
||||
@ -10639,19 +10632,19 @@ msgstr "تحقق"
|
||||
|
||||
#: tbl_operations.php:746
|
||||
msgid "Optimize"
|
||||
msgstr ""
|
||||
msgstr "تحسين"
|
||||
|
||||
#: tbl_operations.php:747
|
||||
msgid "Rebuild"
|
||||
msgstr ""
|
||||
msgstr "إعادة بناء"
|
||||
|
||||
#: tbl_operations.php:748
|
||||
msgid "Repair"
|
||||
msgstr "صلح"
|
||||
msgstr "إصلاح"
|
||||
|
||||
#: tbl_operations.php:760
|
||||
msgid "Remove partitioning"
|
||||
msgstr ""
|
||||
msgstr "إزالة التقسيم"
|
||||
|
||||
#: tbl_operations.php:786
|
||||
msgid "Check referential integrity:"
|
||||
@ -10659,15 +10652,15 @@ msgstr "تحديد التكامل المرجعي:"
|
||||
|
||||
#: tbl_printview.php:72
|
||||
msgid "Show tables"
|
||||
msgstr "شاهد الجدول"
|
||||
msgstr "عرض الجداول"
|
||||
|
||||
#: tbl_printview.php:307 tbl_structure.php:789
|
||||
msgid "Space usage"
|
||||
msgstr "المساحة المستغلة"
|
||||
msgstr "المساحة المستخدمة"
|
||||
|
||||
#: tbl_printview.php:311 tbl_structure.php:793
|
||||
msgid "Usage"
|
||||
msgstr "المساحة"
|
||||
msgstr "الإستخدام"
|
||||
|
||||
#: tbl_printview.php:338 tbl_structure.php:820
|
||||
msgid "Effective"
|
||||
@ -10699,7 +10692,6 @@ msgid "Error creating foreign key on %1$s (check data types)"
|
||||
msgstr ""
|
||||
|
||||
#: tbl_relation.php:402
|
||||
#, fuzzy
|
||||
#| msgid "Internal relations"
|
||||
msgid "Internal relation"
|
||||
msgstr "العلاقات الداخلية"
|
||||
@ -10712,21 +10704,20 @@ msgstr ""
|
||||
|
||||
#: tbl_relation.php:410
|
||||
msgid "Foreign key constraint"
|
||||
msgstr ""
|
||||
msgstr "قيود المفتاح الغريب"
|
||||
|
||||
#: tbl_select.php:110
|
||||
msgid "Do a \"query by example\" (wildcard: \"%\")"
|
||||
msgstr "تجعل \"استعلام بواسطة المثال\" (wildcard: \"%\")"
|
||||
msgstr "عمل \"استعلام بواسطة المثال\" (بدل: \"%\")"
|
||||
|
||||
#: tbl_select.php:260
|
||||
#, fuzzy
|
||||
#| msgid "Select fields (at least one):"
|
||||
msgid "Select columns (at least one):"
|
||||
msgstr "اختيار حقول (على الأقل واحد):"
|
||||
msgstr "اختيار الأعمدة (واحد على الأقل):"
|
||||
|
||||
#: tbl_select.php:278
|
||||
msgid "Add search conditions (body of the \"where\" clause):"
|
||||
msgstr "أضف شروط البحث (جسم من الفقره \"where\" clause):"
|
||||
msgstr "أضف شروط البحث (الفقرة \"where\" ):"
|
||||
|
||||
#: tbl_select.php:285
|
||||
msgid "Number of rows per page"
|
||||
@ -10742,21 +10733,20 @@ msgstr ""
|
||||
|
||||
#: tbl_structure.php:165 tbl_structure.php:169
|
||||
msgid "Browse distinct values"
|
||||
msgstr ""
|
||||
msgstr "إستعرض القيم المميزة"
|
||||
|
||||
#: tbl_structure.php:170 tbl_structure.php:171
|
||||
msgid "Add primary key"
|
||||
msgstr ""
|
||||
msgstr "إضافة مفتاح رئيسي"
|
||||
|
||||
#: tbl_structure.php:172 tbl_structure.php:173
|
||||
#, fuzzy
|
||||
#| msgid "Add new field"
|
||||
msgid "Add index"
|
||||
msgstr "إضافة حقل جديد"
|
||||
msgstr "إضافة فهرس"
|
||||
|
||||
#: tbl_structure.php:174 tbl_structure.php:175
|
||||
msgid "Add unique index"
|
||||
msgstr ""
|
||||
msgstr "إضافة فهرس مميز"
|
||||
|
||||
#: tbl_structure.php:176 tbl_structure.php:177
|
||||
#, fuzzy
|
||||
@ -10769,49 +10759,46 @@ msgid "Add FULLTEXT index"
|
||||
msgstr ""
|
||||
|
||||
#: tbl_structure.php:391
|
||||
#, fuzzy
|
||||
#| msgid "None"
|
||||
msgctxt "None for default"
|
||||
msgid "None"
|
||||
msgstr "لا شيء"
|
||||
|
||||
#: tbl_structure.php:404
|
||||
#, fuzzy, php-format
|
||||
#, php-format
|
||||
#| msgid "Table %s has been dropped"
|
||||
msgid "Column %s has been dropped"
|
||||
msgstr "جدول %s حذفت"
|
||||
msgstr "تم حذف العمود %s"
|
||||
|
||||
#: tbl_structure.php:415 tbl_structure.php:509
|
||||
#, php-format
|
||||
msgid "A primary key has been added on %s"
|
||||
msgstr "لقد أُضيف المفتاح الأساسي في %s"
|
||||
msgstr "تم إضافة المفتاح الأساسي في %s"
|
||||
|
||||
#: tbl_structure.php:430 tbl_structure.php:445 tbl_structure.php:465
|
||||
#: tbl_structure.php:480 tbl_structure.php:522 tbl_structure.php:535
|
||||
#: tbl_structure.php:548 tbl_structure.php:561
|
||||
#, php-format
|
||||
msgid "An index has been added on %s"
|
||||
msgstr "لقد أُضيف الفهرس في %s"
|
||||
msgstr "تم إضافة الفهرس في %s"
|
||||
|
||||
#: tbl_structure.php:497
|
||||
#, fuzzy
|
||||
#| msgid "Show PHP information"
|
||||
msgid "Show more actions"
|
||||
msgstr "عرض المعلومات المتعلقة ب PHP"
|
||||
msgstr "عرض المزيد من العمليات"
|
||||
|
||||
#: tbl_structure.php:642 tbl_structure.php:644
|
||||
msgid "Relation view"
|
||||
msgstr "عرض الروابط"
|
||||
msgstr "عرض العلاقات"
|
||||
|
||||
#: tbl_structure.php:651 tbl_structure.php:653
|
||||
msgid "Propose table structure"
|
||||
msgstr "اقترح بناء الجدول"
|
||||
|
||||
#: tbl_structure.php:676
|
||||
#, fuzzy
|
||||
#| msgid "Add into comments"
|
||||
msgid "Add column"
|
||||
msgstr "أضف إلى الملاحظات"
|
||||
msgstr "إضافة عمود"
|
||||
|
||||
#: tbl_structure.php:690
|
||||
msgid "At End of Table"
|
||||
@ -10827,38 +10814,38 @@ msgid "After %s"
|
||||
msgstr "بعد %s"
|
||||
|
||||
#: tbl_structure.php:732
|
||||
#, fuzzy, php-format
|
||||
#, php-format
|
||||
#| msgid "Create an index on %s columns"
|
||||
msgid "Create an index on %s columns"
|
||||
msgstr "تصميم فهرسه على %s عمود"
|
||||
msgstr "إنشاء فهرس للعمود %s"
|
||||
|
||||
#: tbl_structure.php:889
|
||||
msgid "partitioned"
|
||||
msgstr ""
|
||||
msgstr "مقسم"
|
||||
|
||||
#: tbl_tracking.php:109
|
||||
#, php-format
|
||||
msgid "Tracking report for table `%s`"
|
||||
msgstr ""
|
||||
msgstr "تتبع التقرير للجدول %s"
|
||||
|
||||
#: tbl_tracking.php:182
|
||||
#, php-format
|
||||
msgid "Version %s is created, tracking for %s.%s is activated."
|
||||
msgstr ""
|
||||
msgstr "تم إنشاء الإصدار %s , التتبع نشط لـ %s.%s"
|
||||
|
||||
#: tbl_tracking.php:190
|
||||
#, php-format
|
||||
msgid "Tracking for %s.%s , version %s is deactivated."
|
||||
msgstr ""
|
||||
msgstr "اللتبع لـ %s.%s , الإصدار %s معطل ."
|
||||
|
||||
#: tbl_tracking.php:198
|
||||
#, php-format
|
||||
msgid "Tracking for %s.%s , version %s is activated."
|
||||
msgstr ""
|
||||
msgstr "اللتبع لـ %s.%s , الإصدار %s مفعل."
|
||||
|
||||
#: tbl_tracking.php:208
|
||||
msgid "SQL statements executed."
|
||||
msgstr ""
|
||||
msgstr "تم تنفيذ جمل SQL."
|
||||
|
||||
#: tbl_tracking.php:214
|
||||
msgid ""
|
||||
@ -10884,10 +10871,9 @@ msgid "Tracking data definition successfully deleted"
|
||||
msgstr ""
|
||||
|
||||
#: tbl_tracking.php:384 tbl_tracking.php:401
|
||||
#, fuzzy
|
||||
#| msgid "errors."
|
||||
msgid "Query error"
|
||||
msgstr "أخطاء."
|
||||
msgstr "خطأ في الإستعلام"
|
||||
|
||||
#: tbl_tracking.php:399
|
||||
msgid "Tracking data manipulation successfully deleted"
|
||||
@ -10909,10 +10895,9 @@ msgid "Delete tracking data row from report"
|
||||
msgstr "يسمح بإضافة واستبدال البيانات."
|
||||
|
||||
#: tbl_tracking.php:443
|
||||
#, fuzzy
|
||||
#| msgid "No databases"
|
||||
msgid "No data"
|
||||
msgstr "لايوجد قواعد بيانات"
|
||||
msgstr "لايوجد بيانات"
|
||||
|
||||
#: tbl_tracking.php:453 tbl_tracking.php:510
|
||||
msgid "Date"
|
||||
@ -10940,16 +10925,16 @@ msgstr ""
|
||||
|
||||
#: tbl_tracking.php:560
|
||||
msgid "SQL execution"
|
||||
msgstr ""
|
||||
msgstr "تنفيذ SQL"
|
||||
|
||||
#: tbl_tracking.php:572
|
||||
#, php-format
|
||||
msgid "Export as %s"
|
||||
msgstr ""
|
||||
msgstr "تصدير كـ %s"
|
||||
|
||||
#: tbl_tracking.php:612
|
||||
msgid "Show versions"
|
||||
msgstr ""
|
||||
msgstr "عرض الإصدارات"
|
||||
|
||||
#: tbl_tracking.php:644
|
||||
msgid "Version"
|
||||
@ -10958,48 +10943,48 @@ msgstr "نسخة"
|
||||
#: tbl_tracking.php:692
|
||||
#, php-format
|
||||
msgid "Deactivate tracking for %s.%s"
|
||||
msgstr ""
|
||||
msgstr "تعطيل التتبع لـ %s.%s"
|
||||
|
||||
#: tbl_tracking.php:694
|
||||
msgid "Deactivate now"
|
||||
msgstr ""
|
||||
msgstr "تعطيل الآن"
|
||||
|
||||
#: tbl_tracking.php:705
|
||||
#, php-format
|
||||
msgid "Activate tracking for %s.%s"
|
||||
msgstr ""
|
||||
msgstr "تنشيط التتبع لـ %s.%s"
|
||||
|
||||
#: tbl_tracking.php:707
|
||||
msgid "Activate now"
|
||||
msgstr ""
|
||||
msgstr "تنشيط الآن"
|
||||
|
||||
#: tbl_tracking.php:720
|
||||
#, php-format
|
||||
msgid "Create version %s of %s.%s"
|
||||
msgstr ""
|
||||
msgstr "انشئ إصدار %s لـ %s.s%s"
|
||||
|
||||
#: tbl_tracking.php:724
|
||||
msgid "Track these data definition statements:"
|
||||
msgstr ""
|
||||
msgstr "تتبع تقارير تعريف البيانات:"
|
||||
|
||||
#: tbl_tracking.php:732
|
||||
msgid "Track these data manipulation statements:"
|
||||
msgstr ""
|
||||
msgstr "تتبع تقارير التلاعب بالبيانات:"
|
||||
|
||||
#: tbl_tracking.php:740
|
||||
msgid "Create version"
|
||||
msgstr ""
|
||||
msgstr "إنشاء إصدار"
|
||||
|
||||
#: themes.php:31
|
||||
#, php-format
|
||||
msgid ""
|
||||
"No themes support; please check your configuration and/or your themes in "
|
||||
"directory %s."
|
||||
msgstr ""
|
||||
msgstr "لايوجد سمة مدعومة , فضلا راجع إعدادات السمات في المسار %s."
|
||||
|
||||
#: themes.php:41
|
||||
msgid "Get more themes!"
|
||||
msgstr ""
|
||||
msgstr "الحصول على سمات جديدة!"
|
||||
|
||||
#: transformation_overview.php:24
|
||||
msgid "Available MIME types"
|
||||
@ -11015,7 +11000,6 @@ msgid "Available transformations"
|
||||
msgstr "التحويلات المتوفرة"
|
||||
|
||||
#: transformation_overview.php:47
|
||||
#, fuzzy
|
||||
#| msgid "Description"
|
||||
msgctxt "for MIME transformation"
|
||||
msgid "Description"
|
||||
@ -11027,11 +11011,11 @@ msgstr "ليس لديك الحقوق الكافية بأن تكون هنا ال
|
||||
|
||||
#: user_password.php:96
|
||||
msgid "The profile has been updated."
|
||||
msgstr "لقد تم تجديد العرض الجانبي."
|
||||
msgstr "لقد تم تجديد الملف الشخصي."
|
||||
|
||||
#: view_create.php:141
|
||||
msgid "VIEW name"
|
||||
msgstr ""
|
||||
msgstr "اسم VIEW"
|
||||
|
||||
#: view_operations.php:91
|
||||
msgid "Rename view to"
|
||||
|
||||
56
po/tr.po
56
po/tr.po
@ -4,7 +4,7 @@ msgstr ""
|
||||
"Project-Id-Version: phpMyAdmin 3.5.0-dev\n"
|
||||
"Report-Msgid-Bugs-To: phpmyadmin-devel@lists.sourceforge.net\n"
|
||||
"POT-Creation-Date: 2011-07-25 11:36+0200\n"
|
||||
"PO-Revision-Date: 2011-07-24 11:06+0200\n"
|
||||
"PO-Revision-Date: 2011-07-25 19:31+0200\n"
|
||||
"Last-Translator: Burak Yavuz <hitowerdigit@hotmail.com>\n"
|
||||
"Language-Team: turkish <tr@li.org>\n"
|
||||
"Language: tr\n"
|
||||
@ -705,7 +705,7 @@ msgstr "Tabloyu onar"
|
||||
|
||||
#: db_structure.php:513 tbl_operations.php:627
|
||||
msgid "Analyze table"
|
||||
msgstr "Tabloyu incele"
|
||||
msgstr "Tabloyu çözümle"
|
||||
|
||||
#: db_structure.php:515
|
||||
msgid "Add prefix to table"
|
||||
@ -1199,10 +1199,9 @@ msgid "Pause monitor"
|
||||
msgstr "İzlemeyi duraklat"
|
||||
|
||||
#: js/messages.php:114
|
||||
#, fuzzy
|
||||
#| msgid "general_log and slow_query_log is enabled."
|
||||
msgid "general_log and slow_query_log are enabled."
|
||||
msgstr "general_log ve slow_query_log etkinleştirildi."
|
||||
msgstr "general_log ve slow_query_log etkin."
|
||||
|
||||
#: js/messages.php:115
|
||||
msgid "general_log is enabled."
|
||||
@ -1213,10 +1212,9 @@ msgid "slow_query_log is enabled."
|
||||
msgstr "slow_query_log etkinleştirildi."
|
||||
|
||||
#: js/messages.php:117
|
||||
#, fuzzy
|
||||
#| msgid "slow_query_log and general_log is disabled."
|
||||
msgid "slow_query_log and general_log are disabled."
|
||||
msgstr "slow_query_log ve general_log etkisizleştirildi."
|
||||
msgstr "slow_query_log ve general_log etkisiz."
|
||||
|
||||
#: js/messages.php:118
|
||||
msgid "log_output is not set to TABLE."
|
||||
@ -1314,7 +1312,7 @@ msgstr "Genel günlükten"
|
||||
|
||||
#: js/messages.php:142
|
||||
msgid "Analysing & loading logs. This may take a while."
|
||||
msgstr "Günlükler inceleniyor ve yükleniyor. Bu biraz zaman alabilir."
|
||||
msgstr "Günlükler çözümleniyor ve yükleniyor. Bu biraz zaman alabilir."
|
||||
|
||||
#: js/messages.php:143
|
||||
msgid ""
|
||||
@ -1346,14 +1344,13 @@ msgstr "Günlük tablosuna atla"
|
||||
|
||||
#: js/messages.php:148
|
||||
msgid "Log analysed, but not data found in this time span."
|
||||
msgstr "Günlük incelendi, ama bu zaman aralığında bulunan veri yok."
|
||||
msgstr "Günlük çözümlendi, ama bu zaman aralığında bulunan veri yok."
|
||||
|
||||
#. l10n: A collection of available filters
|
||||
#: js/messages.php:151
|
||||
#, fuzzy
|
||||
#| msgid "Filter"
|
||||
msgid "Filters"
|
||||
msgstr "Süzgeç"
|
||||
msgstr "Süzgeçler"
|
||||
|
||||
#. l10n: Filter as in "Start Filtering"
|
||||
#: js/messages.php:153 navigation.php:270
|
||||
@ -1362,23 +1359,21 @@ msgstr "Süzgeç"
|
||||
|
||||
#: js/messages.php:154
|
||||
msgid "Filter queries by word/regexp:"
|
||||
msgstr ""
|
||||
msgstr "Kelime/düzenli ifadeye göre sorguları süz"
|
||||
|
||||
#: js/messages.php:155
|
||||
msgid "Group queries, ignoring variable data in WHERE statements"
|
||||
msgstr ""
|
||||
msgstr "Sorguları grupla, WHERE ifadelerindeki değişken veri yoksayılıyor"
|
||||
|
||||
#: js/messages.php:156
|
||||
#, fuzzy
|
||||
#| msgid "Number of inserted rows"
|
||||
msgid "Sum of grouped rows:"
|
||||
msgstr "Eklenmiş satır sayısı"
|
||||
msgstr "Gruplanmış satırların toplamı:"
|
||||
|
||||
#: js/messages.php:157
|
||||
#, fuzzy
|
||||
#| msgid "Total"
|
||||
msgid "Total:"
|
||||
msgstr "Toplam"
|
||||
msgstr "Toplam:"
|
||||
|
||||
#: js/messages.php:161 libraries/tbl_properties.inc.php:780
|
||||
#: pmd_general.php:388 pmd_general.php:425 pmd_general.php:545
|
||||
@ -1517,10 +1512,9 @@ msgid "Change"
|
||||
msgstr "Değiştir"
|
||||
|
||||
#: js/messages.php:208
|
||||
#, fuzzy
|
||||
#| msgid "Maximum execution time"
|
||||
msgid "Query execution time"
|
||||
msgstr "En fazla yürütme süresi"
|
||||
msgstr "Sorgu yürütme süresi"
|
||||
|
||||
#: js/messages.php:211
|
||||
msgid "Hide search criteria"
|
||||
@ -1536,10 +1530,9 @@ msgid "Ignore"
|
||||
msgstr "Yoksay"
|
||||
|
||||
#: js/messages.php:218
|
||||
#, fuzzy
|
||||
#| msgid "Add column"
|
||||
msgid "Add columns"
|
||||
msgstr "Sütun ekle"
|
||||
msgstr "Sütunları ekle"
|
||||
|
||||
#: js/messages.php:221
|
||||
msgid "Select referenced key"
|
||||
@ -6255,10 +6248,9 @@ msgid ""
|
||||
msgstr "Aşağıdaki yapılar ya oluşturuldu ya da değiştirildi. Buyurun:"
|
||||
|
||||
#: libraries/import.lib.php:1069
|
||||
#, fuzzy
|
||||
#| msgid "View a structure`s contents by clicking on its name"
|
||||
msgid "View a structure's contents by clicking on its name"
|
||||
msgstr "İsmine tıklayarak yapının içeriklerini görüntüleyin"
|
||||
msgstr "Adına tıklayarak yapının içeriklerini görün"
|
||||
|
||||
#: libraries/import.lib.php:1070
|
||||
msgid ""
|
||||
@ -6268,10 +6260,9 @@ msgstr ""
|
||||
"değiştirin"
|
||||
|
||||
#: libraries/import.lib.php:1071
|
||||
#, fuzzy
|
||||
#| msgid "Edit its structure by following the \"Structure\" link"
|
||||
msgid "Edit structure by following the \"Structure\" link"
|
||||
msgstr "Aşağıdaki \"Yapı\" bağlantısıyla bunun yapısını düzenleyin"
|
||||
msgstr "Aşağıdaki \"Yapı\" bağlantısıyla yapısını düzenleyin"
|
||||
|
||||
#: libraries/import.lib.php:1074
|
||||
msgid "Go to database"
|
||||
@ -6920,7 +6911,7 @@ msgstr "Her olay için geçerli aralık değeri vermek zorundasınız."
|
||||
|
||||
#: libraries/rte/rte_events.lib.php:549
|
||||
msgid "You must provide a valid execution time for the event."
|
||||
msgstr "Olay için geçerli bir çalıştırma zamanı vermek zorundasınız."
|
||||
msgstr "Olay için geçerli bir yürütme zamanı vermek zorundasınız."
|
||||
|
||||
#: libraries/rte/rte_events.lib.php:553
|
||||
msgid "You must provide a valid type for the event."
|
||||
@ -6966,7 +6957,7 @@ msgid ""
|
||||
"b> Please use the improved 'mysqli' extension to avoid any problems."
|
||||
msgstr ""
|
||||
"Çoklu sorguları kullanma kabiliyeti olmayan PHP'nin onaylamadığı 'mysql' "
|
||||
"uzantısını kullanıyorsunuz. <b>Bazı depolanmış yordamların çalıştırılması "
|
||||
"uzantısını kullanıyorsunuz. <b>Bazı depolanmış yordamların yürütülmesi "
|
||||
"başarısız olabilir!</b> Lütfen herhangi bir sorundan kaçınmak için gelişmiş "
|
||||
"'mysql' uzantısı kullanın."
|
||||
|
||||
@ -7085,7 +7076,7 @@ msgstr[0] "İşlemin içindeki son ifade tarafından %d satır etkilendi"
|
||||
#: libraries/rte/rte_routines.lib.php:1214
|
||||
#, php-format
|
||||
msgid "Execution results of routine %s"
|
||||
msgstr "%s yordamı çalıştırma sonuçları"
|
||||
msgstr "%s yordamı yürütme sonuçları"
|
||||
|
||||
#: libraries/rte/rte_routines.lib.php:1288
|
||||
#: libraries/rte/rte_routines.lib.php:1294
|
||||
@ -10025,11 +10016,11 @@ msgstr "Seçili zaman aralığı:"
|
||||
|
||||
#: server_status.php:1465
|
||||
msgid "Only retrieve SELECT,INSERT,UPDATE and DELETE Statements"
|
||||
msgstr ""
|
||||
msgstr "Sadece SELECT,INSERT,UPDATE ve DELETE İfadeleri erişir"
|
||||
|
||||
#: server_status.php:1470
|
||||
msgid "Remove variable data in INSERT statements for better grouping"
|
||||
msgstr ""
|
||||
msgstr "Daha iyi gruplama için INSERT ifadelerindeki değişken veriyi kaldır"
|
||||
|
||||
#: server_status.php:1473
|
||||
msgid ""
|
||||
@ -10040,10 +10031,9 @@ msgstr ""
|
||||
"metnine göre gruplandırılır."
|
||||
|
||||
#: server_status.php:1476
|
||||
#, fuzzy
|
||||
#| msgid "Query type"
|
||||
msgid "Query analyzer"
|
||||
msgstr "Sorgu türü"
|
||||
msgstr "Sorgu çözümleyici"
|
||||
|
||||
#: server_status.php:1512
|
||||
#, php-format
|
||||
@ -10845,7 +10835,7 @@ msgstr "Bölüm %s"
|
||||
|
||||
#: tbl_operations.php:744
|
||||
msgid "Analyze"
|
||||
msgstr "İncele"
|
||||
msgstr "Çözümle"
|
||||
|
||||
#: tbl_operations.php:745
|
||||
msgid "Check"
|
||||
@ -11140,7 +11130,7 @@ msgstr "Bu seçenek tablolarınızı ve içerdiği veriyi değiştirecektir."
|
||||
|
||||
#: tbl_tracking.php:560
|
||||
msgid "SQL execution"
|
||||
msgstr "SQL çalıştırma"
|
||||
msgstr "SQL yürütme"
|
||||
|
||||
#: tbl_tracking.php:572
|
||||
#, php-format
|
||||
|
||||
@ -216,25 +216,34 @@ if ($reread_info) {
|
||||
unset($reread_info);
|
||||
|
||||
/**
|
||||
* Displays top menu links
|
||||
* Displays top menu links in non ajax requests
|
||||
*/
|
||||
require_once './libraries/tbl_links.inc.php';
|
||||
|
||||
if (!isset($_REQUEST['ajax_request'])) {
|
||||
require_once './libraries/tbl_links.inc.php';
|
||||
}
|
||||
if (isset($result) && empty($message_to_show)) {
|
||||
// set to success by default, because result set could be empty
|
||||
// (for example, a table rename)
|
||||
$_type = 'success';
|
||||
if (empty($_message)) {
|
||||
$_message = $result ? __('Your SQL query has been executed successfully') : __('Error');
|
||||
$_message = $result ? $message = PMA_Message::success(__('Your SQL query has been executed successfully')) : PMA_Message::error(__('Error'));
|
||||
// $result should exist, regardless of $_message
|
||||
$_type = $result ? 'success' : 'error';
|
||||
if ( $GLOBALS['is_ajax_request'] == true) {
|
||||
$extra_data['sql_query'] = PMA_showMessage(NULL, $sql_query);
|
||||
PMA_ajaxResponse($_message,$_message->isSuccess() ,$extra_data);
|
||||
}
|
||||
}
|
||||
if (! empty($warning_messages)) {
|
||||
$_message = new PMA_Message;
|
||||
$_message->addMessages($warning_messages);
|
||||
$_message->isError(true);
|
||||
if ( $GLOBALS['is_ajax_request'] == true) {
|
||||
PMA_ajaxResponse($_message, false);
|
||||
}
|
||||
unset($warning_messages);
|
||||
}
|
||||
|
||||
PMA_showMessage($_message, $sql_query, $_type);
|
||||
unset($_message, $_type);
|
||||
}
|
||||
@ -258,7 +267,7 @@ unset($local_query);
|
||||
?>
|
||||
<!-- Order the table -->
|
||||
<div class="operations_half_width">
|
||||
<form method="post" action="tbl_operations.php">
|
||||
<form method="post" id="alterTableOrderby" action="tbl_operations.php" <?php echo ($GLOBALS['cfg']['AjaxEnable'] ? ' class="ajax"' : '');?>>
|
||||
<?php echo PMA_generate_common_hidden_inputs($GLOBALS['db'], $GLOBALS['table']); ?>
|
||||
<fieldset id="fieldset_table_order">
|
||||
<legend><?php echo __('Alter table order by'); ?></legend>
|
||||
|
||||
@ -19,6 +19,7 @@ require_once './libraries/mysql_charsets.lib.php';
|
||||
$GLOBALS['js_include'][] = 'makegrid.js';
|
||||
$GLOBALS['js_include'][] = 'sql.js';
|
||||
$GLOBALS['js_include'][] = 'tbl_select.js';
|
||||
$GLOBALS['js_include'][] = 'tbl_change.js';
|
||||
$GLOBALS['js_include'][] = 'jquery/jquery-ui-1.8.custom.js';
|
||||
$GLOBALS['js_include'][] = 'jquery/timepicker.js';
|
||||
if ($GLOBALS['cfg']['PropertiesIconic'] == true) {
|
||||
|
||||
@ -141,15 +141,22 @@ ul#databaseList span {
|
||||
}
|
||||
|
||||
ul#databaseList a {
|
||||
color: #333;
|
||||
background: url(./themes/pmahomme/img/database.png) no-repeat 0% 50% transparent;
|
||||
display: block;
|
||||
padding:5px;
|
||||
padding: 5px;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
div#navidbpageselector {
|
||||
margin: 0.1em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div#navidbpageselector a,
|
||||
ul#databaseList a {
|
||||
background:url(./themes/pmahomme/img/database.png) no-repeat 0% 50% transparent;
|
||||
color: #333;
|
||||
div#navidbpageselector select{
|
||||
color: #333;
|
||||
margin: 0.2em;
|
||||
}
|
||||
|
||||
ul#databaseList ul {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user