Merge branch 'master' into gettext
This commit is contained in:
@@ -53,6 +53,10 @@ $HeadURL: https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyA
|
|||||||
to Pavel Konnikov and Herman van Rink
|
to Pavel Konnikov and Herman van Rink
|
||||||
+ patch #2974341 [structure] Clicking on table name in db Structure should
|
+ patch #2974341 [structure] Clicking on table name in db Structure should
|
||||||
Browse the table if possible, thanks to bhdouglass - dougboybhd
|
Browse the table if possible, thanks to bhdouglass - dougboybhd
|
||||||
|
+ patch #2975533 [search] New search operators, thanks to
|
||||||
|
Martynas Mickevičius
|
||||||
|
+ patch #2967320 [designer] Colored relations based on the primary key,
|
||||||
|
thanks to GreenRover - greenrover
|
||||||
|
|
||||||
3.3.2.0 (not yet released)
|
3.3.2.0 (not yet released)
|
||||||
- patch #2969449 [core] Name for MERGE engine varies depending on the
|
- patch #2969449 [core] Name for MERGE engine varies depending on the
|
||||||
|
@@ -4356,7 +4356,7 @@ chmod o+rwx tmp
|
|||||||
</li>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<p>More details on git are available on <a href="http://wiki.phpmyadmin.net/pma/Devel:git">our wiki</a>.</p>
|
<p>More details on git are available on <a href="http://wiki.phpmyadmin.net/pma/Devel:Git">our wiki</a>.</p>
|
||||||
|
|
||||||
<p> Write access to the repository is granted only to experienced developers who
|
<p> Write access to the repository is granted only to experienced developers who
|
||||||
have already contributed something useful to phpMyAdmin.<br />
|
have already contributed something useful to phpMyAdmin.<br />
|
||||||
|
@@ -2990,6 +2990,10 @@ $cfg['NumOperators'] = array(
|
|||||||
'!=',
|
'!=',
|
||||||
'LIKE',
|
'LIKE',
|
||||||
'NOT LIKE',
|
'NOT LIKE',
|
||||||
|
'IN (...)',
|
||||||
|
'NOT IN (...)',
|
||||||
|
'BETWEEN',
|
||||||
|
'NOT BETWEEN',
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -3007,7 +3011,11 @@ $cfg['TextOperators'] = array(
|
|||||||
'REGEXP ^...$',
|
'REGEXP ^...$',
|
||||||
'NOT REGEXP',
|
'NOT REGEXP',
|
||||||
"= ''",
|
"= ''",
|
||||||
"!= ''"
|
"!= ''",
|
||||||
|
'IN (...)',
|
||||||
|
'NOT IN (...)',
|
||||||
|
'BETWEEN',
|
||||||
|
'NOT BETWEEN',
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -112,6 +112,11 @@ $GLOBALS['js_events'][] = array(
|
|||||||
'function' => 'PMA_TT_init',
|
'function' => 'PMA_TT_init',
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Here we add a timestamp when loading the file, so that users who
|
||||||
|
* upgrade phpMyAdmin are not stuck with older .js files in their
|
||||||
|
* browser cache. This produces an HTTP 304 request for each file.
|
||||||
|
*/
|
||||||
foreach ($GLOBALS['js_include'] as $js_script_file) {
|
foreach ($GLOBALS['js_include'] as $js_script_file) {
|
||||||
echo '<script src="./js/' . $js_script_file . '?ts=' . filemtime('./js/' . $js_script_file) . '" type="text/javascript"></script>' . "\n";
|
echo '<script src="./js/' . $js_script_file . '?ts=' . filemtime('./js/' . $js_script_file) . '" type="text/javascript"></script>' . "\n";
|
||||||
}
|
}
|
||||||
|
@@ -291,7 +291,7 @@ function Re_load()
|
|||||||
+ height_field;
|
+ height_field;
|
||||||
|
|
||||||
//alert(y1 + ' - ' + key2 + "." + key3);
|
//alert(y1 + ' - ' + key2 + "." + key3);
|
||||||
Line0(x1 - sm_x, y1 - sm_y, x2 - sm_x, y2 - sm_y, "rgba(0,100,150,1)");
|
Line0(x1 - sm_x, y1 - sm_y, x2 - sm_x, y2 - sm_y, getColorByTarget( contr[K][key][key2][key3][0]+'.'+contr[K][key][key2][key3][1] ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -315,8 +315,8 @@ function Line(x1, y1, x2, y2, color_line)
|
|||||||
*/
|
*/
|
||||||
function Line0(x1, y1, x2, y2, color_line)
|
function Line0(x1, y1, x2, y2, color_line)
|
||||||
{
|
{
|
||||||
Circle(x1, y1, 3, 3, "rgba(0,0,255,1)");
|
Circle(x1, y1, 3, 3, color_line);
|
||||||
Rect(x2 - 1, y2 - 2, 4, 4, "rgba(0,0,255,1)");
|
Rect(x2 - 1, y2 - 2, 4, 4, color_line);
|
||||||
|
|
||||||
if (ON_angular_direct) {
|
if (ON_angular_direct) {
|
||||||
Line2(x1, y1, x2, y2, color_line);
|
Line2(x1, y1, x2, y2, color_line);
|
||||||
@@ -717,7 +717,7 @@ function Canvas_click(id)
|
|||||||
Key2 = key2; Key3 = key3;
|
Key2 = key2; Key3 = key3;
|
||||||
Key = K;
|
Key = K;
|
||||||
} else {
|
} else {
|
||||||
Line0(x1 - sm_x, y1 - sm_y, x2 - sm_x, y2 - sm_y, "rgba(0,100,150,1)");
|
Line0(x1 - sm_x, y1 - sm_y, x2 - sm_x, y2 - sm_y, getColorByTarget( contr[K][key][key2][key3][0]+'.'+contr[K][key][key2][key3][1] ));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (selected) {
|
if (selected) {
|
||||||
@@ -920,3 +920,48 @@ function Start_display_field()
|
|||||||
ON_display_field = 0;
|
ON_display_field = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
var TargetColors = new Array();
|
||||||
|
function getColorByTarget( target )
|
||||||
|
{
|
||||||
|
var color = ''; //"rgba(0,100,150,1)";
|
||||||
|
|
||||||
|
for (i in TargetColors)
|
||||||
|
if (TargetColors[i][0]==target) {
|
||||||
|
color = TargetColors[i][1];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (color.length==0)
|
||||||
|
{
|
||||||
|
var i = TargetColors.length+1;
|
||||||
|
var d = i % 6;
|
||||||
|
var j = (i - d) / 6;
|
||||||
|
j = j % 4;
|
||||||
|
j++;
|
||||||
|
var color_case = new Array(
|
||||||
|
new Array(1, 0, 0),
|
||||||
|
new Array(0, 1, 0),
|
||||||
|
new Array(0, 0, 1),
|
||||||
|
new Array(1, 1, 0),
|
||||||
|
new Array(1, 0, 1),
|
||||||
|
new Array(0, 1, 1)
|
||||||
|
);
|
||||||
|
var a = color_case[d][0];
|
||||||
|
var b = color_case[d][1];
|
||||||
|
var c = color_case[d][2];
|
||||||
|
e = (1 - (j - 1) / 6);
|
||||||
|
|
||||||
|
var r = Math.round(a * 200 * e);
|
||||||
|
var g = Math.round(b * 200 * e);
|
||||||
|
var b = Math.round(c * 200 * e);
|
||||||
|
var color = "rgba("+r+","+g+","+b+",1)";
|
||||||
|
|
||||||
|
TargetColors.push( new Array(target, color) );
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
@@ -408,7 +408,23 @@ else {
|
|||||||
$func_type = 'REGEXP';
|
$func_type = 'REGEXP';
|
||||||
$fields[$i] = '^' . $fields[$i] . '$';
|
$fields[$i] = '^' . $fields[$i] . '$';
|
||||||
}
|
}
|
||||||
$w[] = PMA_backquote($names[$i]) . ' ' . $func_type . ' ' . $quot . PMA_sqlAddslashes($fields[$i]) . $quot;
|
|
||||||
|
if ($func_type == 'IN (...)' || $func_type == 'NOT IN (...)' || $func_type == 'BETWEEN' || $func_type == 'NOT BETWEEN') {
|
||||||
|
$func_type = str_replace(' (...)', '', $func_type);
|
||||||
|
|
||||||
|
// quote values one by one
|
||||||
|
$values = explode(',', $fields[$i]);
|
||||||
|
foreach ($values as &$value)
|
||||||
|
$value = $quot . PMA_sqlAddslashes(trim($value)) . $quot;
|
||||||
|
|
||||||
|
if ($func_type == 'BETWEEN' || $func_type == 'NOT BETWEEN')
|
||||||
|
$w[] = PMA_backquote($names[$i]) . ' ' . $func_type . ' ' . (isset($values[0]) ? $values[0] : '') . ' AND ' . (isset($values[1]) ? $values[1] : '');
|
||||||
|
else
|
||||||
|
$w[] = PMA_backquote($names[$i]) . ' ' . $func_type . ' (' . implode(',', $values) . ')';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$w[] = PMA_backquote($names[$i]) . ' ' . $func_type . ' ' . $quot . PMA_sqlAddslashes($fields[$i]) . $quot;;
|
||||||
|
}
|
||||||
|
|
||||||
} // end if
|
} // end if
|
||||||
} // end for
|
} // end for
|
||||||
|
Reference in New Issue
Block a user