[ Index ]
 

Code source de phpMyAdmin 2.10.3

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/pmd/scripts/ -> move.js (source)

   1  /*
   2  $Id: move.js 10416 2007-05-30 16:55:18Z lem9 $
   3  @author  Ivan A Kirillov (Ivan.A.Kirillov@gmail.com)
   4  */
   5  var dx, dy, dy2;
   6  var cur_click;
   7  var sm_x = 2, sm_y = 2; // update in Main()
   8  var sm_s           = 0;
   9  var sm_add         = 10;
  10  var s_left         = 0;
  11  var s_right        = 0;
  12  var ON_relation    = 0;
  13  var ON_grid        = 0;
  14  var ON_display_field = 0;
  15  var ON_angular_direct = 0;// relation_style: 0 - angular 1 - direct
  16  var click_field    = 0;
  17  var link_relation  = "";
  18  var id_hint;
  19  var canvas_width   = 0;
  20  var canvas_height  = 0;
  21  var osn_tab_width  = 0;
  22  var osn_tab_height = 0;
  23  var height_field   = 7;
  24  var Glob_X, Glob_Y;
  25  var timeoutID;
  26  var layer_menu_cur_click = 0;
  27  var step = 10;
  28  var old_class;
  29  
  30  //---------------------------------------------------------------------------------------------------------------------------
  31  //---------------------------------------------------------------------------------------------------------------------------
  32  //---------------------------------------------------------------------------------------------------------------------------
  33  
  34  
  35  //window.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP); 
  36  //---CROSS
  37  document.onmousedown = MouseDown; 
  38  document.onmouseup   = MouseUp; 
  39  document.onmousemove = MouseMove;
  40  
  41  isIE = document.all && !window.opera;
  42  isNN = !document.all && document.getElementById;
  43  isN4 = document.layers;
  44  
  45  if (isIE) {
  46    window.onscroll = General_scroll; 
  47    document.onselectstart = function () {return false;};
  48  }
  49  
  50  //document.onmouseup = function(){General_scroll_end();}
  51  function MouseDown(e) 
  52  { 
  53    if (cur_click != null) 
  54    { 
  55      offsetx=isIE ? event.clientX + document.body.scrollLeft : e.pageX;
  56      offsety=isIE ? event.clientY + document.body.scrollTop : e.pageY;
  57      dx = offsetx - parseInt(cur_click.style.left);
  58      dy = offsety - parseInt(cur_click.style.top);
  59      //alert(" dx = " + dx + " dy = " +dy);
  60      document.getElementById("canvas").style.visibility = 'hidden';
  61      /*
  62      var left = parseInt(cur_click.style.left);
  63      var top  = parseInt(cur_click.style.top);
  64      dx = e.pageX - left; 
  65      dy = e.pageY - top;
  66      
  67      alert(" dx = " + dx + " dy = " +dy);*/
  68      cur_click.style.zIndex = 2;    
  69    }
  70    if(layer_menu_cur_click)
  71    {
  72      offsetx=isIE ? event.clientX + document.body.scrollLeft: e.pageX;
  73      dx = offsetx - parseInt(document.getElementById("layer_menu").style.width); 
  74    }
  75  } 
  76  
  77  function MouseMove(e)
  78  { 
  79    
  80    //Glob_X = e.pageX; 
  81    //Glob_Y = e.pageY;
  82    Glob_X = isIE ? event.clientX + document.body.scrollLeft: e.pageX; 
  83    Glob_Y = isIE ? event.clientY + document.body.scrollTop: e.pageY;
  84  
  85    // mouseX= (bw.ns4||bw.ns6)? e.pageX: bw.ie&&bw.win&&!bw.ie4? (event.clientX-2)+document.body.scrollLeft : event.clientX+document.body.scrollLeft;
  86    //mouseY= (bw.ns4||bw.ns6)? e.pageY: bw.ie&&bw.win&&!bw.ie4? (event.clientY-2)+document.body.scrollTop : event.clientY+document.body.scrollTop;
  87    
  88    //window.status = "X = "+ Glob_X + " Y = "+ Glob_Y;
  89    
  90    var mGx, mGy;
  91    if (cur_click != null) 
  92    {
  93      mGx = Glob_X - dx;
  94      mGy = Glob_Y - dy;
  95      mGx = mGx > 0 ? mGx : 0;
  96      mGy  = mGy > 0 ? mGy : 0;
  97   
  98      if(ON_grid)
  99      {
 100        mGx = mGx % step < step / 2 ? mGx - mGx % step : mGx - mGx % step + step;
 101        mGy = mGy % step < step / 2 ? mGy - mGy % step : mGy - mGy % step + step;
 102      }
 103      
 104      cur_click.style.left = mGx;
 105      cur_click.style.top  = mGy;
 106    }
 107  
 108    if (ON_relation || ON_display_field) 
 109    {
 110      document.getElementById('hint').style.left = Glob_X + 20;
 111      document.getElementById('hint').style.top  = Glob_Y + 20;
 112    }
 113  
 114    if(layer_menu_cur_click)
 115    { 
 116      document.getElementById("layer_menu").style.width = Glob_X - dx>=150?Glob_X - dx:150;
 117      //document.getElementById("layer_menu").style.height = Glob_Y - dy>=200?Glob_Y - dy:200;
 118      //document.getElementById("id_scroll_tab").style.height = Glob_Y - dy2;
 119    }
 120  }
 121  
 122  function MouseUp(e)
 123  {
 124    if (cur_click != null) 
 125    {  
 126      document.getElementById("canvas").style.visibility = 'visible';
 127      Re_load(); 
 128      cur_click.style.zIndex = 1;
 129      cur_click = null; 
 130    }
 131    layer_menu_cur_click=0;
 132    //window.releaseEvents(Event.MOUSEMOVE); 
 133  }
 134  //---------------------------------------------------------------------------------------------------------------------------
 135  //---------------------------------------------------------------------------------------------------------------------------
 136  //---------------------------------------------------------------------------------------------------------------------------
 137  
 138  
 139  //function ToInt(s)
 140  //{
 141   // return s.substring(0,s.length-2)*1; //re = /(\d+)\w*/; newstr = str.replace(re, "$1");
 142  //}
 143  
 144  function Canvas_pos()
 145  {
 146    canvas_width  = document.getElementById('canvas').width  = osn_tab_width  - 3;
 147    canvas_height = document.getElementById('canvas').height = osn_tab_height - 3;
 148  
 149     if(isIE)
 150    { 
 151      document.getElementById('canvas').style.width  = (osn_tab_width  - 3)?(osn_tab_width  - 3):0;
 152      document.getElementById('canvas').style.height = (osn_tab_height - 3)?(osn_tab_height - 3):0;
 153    }
 154  }
 155  
 156  function Osn_tab_pos()
 157  {
 158    osn_tab_width  = parseInt(document.getElementById('osn_tab').style.width);
 159    osn_tab_height = parseInt(document.getElementById('osn_tab').style.height);
 160  }
 161  
 162  
 163  function Main()
 164  { //alert( document.getElementById('osn_tab').offsetTop);
 165   //---CROSS 
 166    if(isIE)
 167    {
 168      document.getElementById('top_menu').style.position = 'absolute';
 169      document.getElementById('layer_menu').style.position = 'absolute';
 170    }
 171  
 172    document.getElementById("layer_menu").style.top = -1000; //fast scroll
 173    sm_x += document.getElementById('osn_tab').offsetLeft;
 174    sm_y += document.getElementById('osn_tab').offsetTop;
 175    Osn_tab_pos(); 
 176    Canvas_pos(); 
 177    Small_tab_refresh();
 178    Re_load();
 179    id_hint = document.getElementById('hint');
 180    if (isIE) {
 181      General_scroll();
 182    }
 183  }
 184  
 185  
 186  //---------------------------------------- new -----------------------------------------
 187  function Rezize_osn_tab()
 188  {
 189    var max_X = max_Y = 0;
 190    for (key in j_tabs)
 191    { 
 192      k_x = parseInt(document.getElementById(key).style.left) + document.getElementById(key).offsetWidth;
 193      k_y = parseInt(document.getElementById(key).style.top) + document.getElementById(key).offsetHeight;
 194      max_X = max_X < k_x ? k_x : max_X;
 195      max_Y = max_Y < k_y ? k_y : max_Y;
 196    }
 197    osn_tab_width = max_X  + 50;
 198    osn_tab_height = max_Y + 50;
 199    Canvas_pos();
 200    document.getElementById('osn_tab').style.width = osn_tab_width;
 201    document.getElementById('osn_tab').style.height = osn_tab_height;
 202  }
 203  //--------------------------------------------------------------------------------------
 204  
 205  
 206  function Re_load() 
 207  {
 208    Rezize_osn_tab();
 209    var n;
 210    var a = new Array();
 211    Clear();
 212    for (K in contr) 
 213      for (key in contr[K])                 // contr name
 214        for (key2 in contr[K][key])         // table name
 215          for (key3 in contr[K][key][key2]) // field name
 216          { 
 217            if(!document.getElementById("check_vis_"+key2).checked || 
 218               !document.getElementById("check_vis_"+contr[K][key][key2][key3][0]).checked) continue; // if hide
 219            var x1_left  = document.getElementById(key2).offsetLeft+1;
 220            var x1_right = x1_left + document.getElementById(key2).offsetWidth;
 221            var x2_left  = document.getElementById(contr[K][key][key2][key3][0]).offsetLeft;
 222            var x2_right = x2_left + document.getElementById(contr[K][key][key2][key3][0]).offsetWidth;
 223            a[0] = Math.abs( x1_left - x2_left );  a[1] = Math.abs(x1_left  - x2_right);
 224            a[2] = Math.abs( x1_right - x2_left ); a[3] = Math.abs(x1_right - x2_right);
 225            n = s_left = s_right = 0;
 226            for(var i=1;i<4;i++)
 227              if(a[n]>a[i])n=i;
 228            if(n==1){ x1 = x1_left-sm_s;  x2 = x2_right+sm_s; if(x1<x2)n=0;}
 229            if(n==2){ x1 = x1_right+sm_s; x2 = x2_left-sm_s;  if(x1>x2)n=0;}
 230            if(n==3){ x1 = x1_right+sm_s; x2 = x2_right+sm_s; s_right = 1; }
 231            if(n==0){ x1 = x1_left-sm_s;  x2 = x2_left-sm_s;  s_left = 1;  }
 232      // alert(key2+"."+key3);
 233            var y1 = document.getElementById(key2).offsetTop + document.getElementById(key2+"."+key3).offsetTop + height_field;
 234        //    alert(1);
 235            var y2 = document.getElementById(contr[K][key][key2][key3][0]).offsetTop + 
 236                     document.getElementById(contr[K][key][key2][key3][0]+"."+contr[K][key][key2][key3][1]).offsetTop + height_field;
 237            Line0(x1-sm_x,y1-sm_y,x2-sm_x,y2-sm_y,"rgba(0,100,150,1)");
 238            
 239          }
 240  }
 241  
 242  function Line(x1,y1,x2,y2,color_line) 
 243  { 
 244    var canvas = document.getElementById("canvas");
 245    var ctx    = canvas.getContext("2d");
 246    ctx.strokeStyle = color_line;
 247    ctx.lineWidth = 1;
 248    ctx.beginPath();
 249    ctx.moveTo(x1, y1);
 250    ctx.lineTo(x2, y2);
 251    ctx.stroke();  
 252  }
 253  
 254  function Line0(x1,y1,x2,y2,color_line)
 255  {
 256    if(ON_angular_direct)
 257    Line2(x1,y1,x2,y2,color_line);
 258    else
 259    Line3(x1,y1,x2,y2,color_line);
 260  }
 261  
 262  function Line2(x1,y1,x2,y2,color_line) 
 263  {
 264    var x1_ = x1;
 265    var x2_ = x2;
 266    
 267    Circle(x1,y1,3,3,"rgba(0,0,255,1)");
 268    Rect(x2-1,y2-2,4,4,"rgba(0,0,255,1)");
 269    
 270    if(s_right) 
 271    {
 272      x1_ += sm_add; x2_ += sm_add;
 273    }
 274    else if(s_left) 
 275    {
 276      x1_ -= sm_add; x2_ -= sm_add;
 277    }
 278    else
 279    if(x1 < x2) { x1_ += sm_add; x2_ -= sm_add; }
 280    else        { x1_ -= sm_add; x2_ += sm_add; }
 281      
 282    
 283    Line(x1,y1,x1_,y1,color_line);
 284    Line(x2,y2,x2_,y2,color_line);
 285    Line(x1_,y1,x2_,y2,color_line);
 286  }
 287  
 288  function Line3(x1,y1,x2,y2,color_line) 
 289  {
 290    var x1_ = x1;
 291    var x2_ = x2;
 292    Circle(x1,y1,3,3,"rgba(0,0,255,1)");
 293    Rect(x2-1,y2-2,4,4,"rgba(0,0,255,1)");
 294  
 295    var x_s = (x1+x2)/2;
 296    if(s_right) 
 297    {
 298      if(x1 < x2) { x1_ += x2 - x1 + sm_add; x2_ += sm_add; }
 299      else        { x2_ += x1 - x2 + sm_add; x1_ += sm_add; }
 300      
 301      Line(x1,y1,x1_,y1,color_line);
 302      Line(x2,y2,x2_,y2,color_line);
 303      Line(x1_,y1,x2_,y2,color_line);
 304      return 0;
 305    }
 306    if(s_left) 
 307    {
 308      if(x1 < x2) { x2_ -= x2 - x1 + sm_add; x1_ -= sm_add; }
 309      else        { x1_ -= x1 - x2 + sm_add; x2_ -= sm_add; }
 310      
 311      Line(x1,y1,x1_,y1,color_line);
 312      Line(x2,y2,x2_,y2,color_line);
 313      Line(x1_,y1,x2_,y2,color_line);
 314      return 0;
 315    }
 316      
 317    Line(x1,y1,x_s,y1,color_line);
 318    Line(x_s,y2,x2,y2,color_line);
 319    Line(x_s,y1,x_s,y2,color_line);
 320  }
 321  
 322  function Circle(x,y,r,w,color) 
 323  {   
 324    var ctx = document.getElementById('canvas').getContext('2d');   
 325    ctx.beginPath(); 
 326    ctx.moveTo(x, y);
 327    ctx.lineWidth = w;
 328    ctx.strokeStyle = color;
 329    ctx.arc(x, y, r, 0, 2*Math.PI, true);   
 330    ctx.stroke(); 
 331  } 
 332  
 333  function Clear() 
 334  {
 335    var canvas = document.getElementById("canvas");
 336    var ctx    = canvas.getContext("2d");
 337    ctx.clearRect(0, 0, canvas_width, canvas_height);
 338  }
 339    
 340  function Rect(x1,y1,w,h,color)
 341  {
 342    var ctx = document.getElementById('canvas').getContext('2d');
 343    ctx.fillStyle = color;
 344    ctx.fillRect(x1,y1,w,h);
 345  }
 346  
 347  //---------------------------------------------- SAVE ---------------------------------------------------
 348  function Save(url) // (del?) no for pdf
 349  {
 350    for (key in j_tabs)
 351    {
 352      document.getElementById('t_x['+key+']').value=parseInt(document.getElementById(key).style.left);
 353      document.getElementById('t_y['+key+']').value=parseInt(document.getElementById(key).style.top);
 354      document.getElementById('t_v['+key+']').value=document.getElementById('_|_tbody_'+key).style.display=='none'?0:1;
 355      document.getElementById('t_h['+key+']').value=document.getElementById('check_vis_'+key).checked?1:0;
 356    }
 357    document.form1.action = url; 
 358    document.form1.submit();
 359  }
 360  
 361  function Get_url_pos()
 362  {
 363    var poststr = '';
 364    for (key in j_tabs)
 365    {
 366      poststr += '&t_x['+key+']=' + parseInt(document.getElementById(key).style.left);
 367      poststr += '&t_y['+key+']=' + parseInt(document.getElementById(key).style.top);
 368      poststr += '&t_v['+key+']=' + (document.getElementById('_|_tbody_'+key).style.display == 'none' ? 0 : 1);
 369      poststr += '&t_h['+key+']=' + (document.getElementById('check_vis_'+key).checked ? 1 : 0);
 370    }
 371    return poststr;
 372  }
 373  
 374  function Save2()
 375  {
 376    var poststr = 'IS_AJAX=1&server='+server+'&db='+db+'&token='+token+'&die_save_pos=1';
 377    poststr += Get_url_pos();
 378    makeRequest('pmd_save_pos.php', poststr);
 379  }
 380  
 381  function Grid()
 382  {
 383    if(!ON_grid ) {
 384      ON_grid = 1;
 385      document.getElementById('grid_button').className = 'M_butt_Selected_down';//'#FFEE99';gray #AAAAAA
 386    
 387      if(isIE) { // correct for IE
 388        document.getElementById('grid_button').className = 'M_butt_Selected_down_IE';
 389      }
 390    }
 391    else  {
 392      document.getElementById('grid_button').className = 'M_butt';
 393      ON_grid = 0;  
 394    }
 395  }
 396  
 397  function Angular_direct()
 398  {
 399    if(!ON_angular_direct ) {
 400      ON_angular_direct = 1;
 401      document.getElementById('angular_direct_button').className = 'M_butt_Selected_down';//'#FFEE99';gray #AAAAAA
 402    
 403      if(isIE) { // correct for IE
 404        document.getElementById('angular_direct_button').className = 'M_butt_Selected_down_IE';
 405      }
 406    }
 407    else {
 408      ON_angular_direct = 0;  
 409      document.getElementById('angular_direct_button').className = 'M_butt';
 410    }
 411    Re_load();
 412  }
 413  //+++++++++++++++++++++++++++++++++++++++++++++++++++++ RELATION ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 414  function Start_relation()
 415  {
 416    if(ON_display_field) return; 
 417  
 418    if(!ON_relation )
 419    {
 420      document.getElementById('InnoDB_relation').style.display = '';
 421      ON_relation = 1;
 422      document.getElementById('hint').innerHTML = LangSelectReferencedKey;
 423      document.getElementById('hint').style.visibility = "visible";
 424      document.getElementById('rel_button').className = 'M_butt_Selected_down';//'#FFEE99';gray #AAAAAA
 425      
 426      if(isIE) { // correct for IE
 427        document.getElementById('rel_button').className = 'M_butt_Selected_down_IE';
 428      }
 429    }
 430    else
 431    {
 432      document.getElementById('hint').innerHTML = "";
 433      document.getElementById('hint').style.visibility = "hidden";
 434      document.getElementById('rel_button').className = 'M_butt';
 435      click_field = 0; 
 436      ON_relation = 0;  
 437    }
 438  }
 439  
 440  function Click_field(T,f,PK) // table field
 441  {
 442    if (ON_relation)
 443    {
 444      if(!click_field)
 445      {//.style.display=='none'    .style.visibility = "hidden"
 446        if(!PK) { alert(LangPleaseSelectPrimaryOrUniqueKey); return 0; }//PK
 447        if(j_tabs[db+'.'+T]!='INNODB') document.getElementById('InnoDB_relation').style.display='none';
 448        click_field = 1;
 449        link_relation = "T1=" + T + "&F1=" + f;
 450        document.getElementById('hint').innerHTML = LangSelectForeignKey;
 451      }
 452      else 
 453      {
 454        Start_relation(); // hidden hint...
 455        if(j_tabs[db+'.'+T]!='INNODB' || !PK ) document.getElementById('InnoDB_relation').style.display='none';
 456        document.getElementById('layer_new_relation').style.left = Glob_X - (document.getElementById('layer_new_relation').offsetWidth>>1);
 457        document.getElementById('layer_new_relation').style.top  = Glob_Y - document.getElementById('layer_new_relation').offsetHeight - 10;
 458        document.getElementById('layer_new_relation').style.visibility = "visible";
 459        link_relation += '&T2=' + T + '&F2=' + f;   
 460      }
 461    }
 462    
 463    if(ON_display_field)
 464    {
 465      if(display_field[T] == f) // if is display field
 466      { //alert(T);
 467        //s = '';for(k in display_field)s += k + ' = ' + display_field[k] + ',';alert(s);
 468        old_class = 'tab_field';
 469        //display_field.splice(T, 1);
 470        delete display_field[T];
 471        //s = '';for(k in display_field)s += k + ' = ' + display_field[k] + ', ';alert(s);
 472        //n = 0;for(k in display_field)n++;alert(n);
 473      }
 474      else
 475      { 
 476        old_class = 'tab_field_3';
 477        if(display_field[T])
 478        {
 479          document.getElementById('_|_tr_' + T + '.' + display_field[T]).className = 'tab_field';
 480          //display_field.splice(T, 1);
 481          delete display_field[T];
 482        }
 483        display_field[T] = f;
 484      }
 485      ON_display_field = 0;
 486      document.getElementById('hint').innerHTML = "";
 487      document.getElementById('hint').style.visibility = "hidden";
 488      document.getElementById('display_field_button').className = 'M_butt';
 489      makeRequest('pmd_display_field.php', 'T=' + T + '&F=' + f + '&server=' + server + '&db=' + db + '&token=' + token );
 490    }
 491  }
 492  
 493  function New_relation()
 494  {
 495    document.getElementById('layer_new_relation').style.visibility = 'hidden';
 496    link_relation += '&server=' + server + '&db=' + db + '&token=' + token + '&die_save_pos=0';
 497    link_relation += '&on_delete=' + document.getElementById('on_delete').value + '&on_update=' + document.getElementById('on_update').value;
 498    link_relation += Get_url_pos();
 499    
 500    //alert(link_relation);
 501    makeRequest('pmd_relation_new.php', link_relation);
 502  }
 503  
 504  //----------------------------------------------------- create tables -----------------------------------------------------
 505  
 506  function Start_table_new()
 507  {
 508    window.location.href='db_operations.php?server='+server+'&db='+db+'&token='+token;
 509  }
 510  
 511  function Start_tab_upd(table)
 512  {
 513    window.location.href='tbl_structure.php?server='+server+'&db='+db+'&token='+token+'&table='+table;
 514  }
 515  //----------------------------------------------------- hide tables -----------------------------------------------------
 516  
 517  function Small_tab_all(id_this) // max/min all tables
 518  {
 519    if(isIE) {
 520      alert(LangIEnotSupport);
 521      return;
 522    }
 523    if(id_this.alt=="v")
 524    {
 525      for (key in j_tabs)
 526        if(document.getElementById('_|_hide_tbody_'+key).innerHTML=="v")
 527        Small_tab(key,0);
 528      id_this.alt = ">";
 529      id_this.src="pmd/images/rightarrow1.png";
 530    }
 531    else
 532    {  
 533      for (key in j_tabs)
 534        if(document.getElementById('_|_hide_tbody_'+key).innerHTML!="v")
 535        Small_tab(key,0);
 536      id_this.alt = "v";
 537      id_this.src="pmd/images/downarrow1.png";
 538    }
 539    Re_load();
 540  }
 541  
 542  function Small_tab_invert() // invert max/min all tables
 543  {
 544    if(isIE) {
 545      alert(LangIEnotSupport);
 546      return;
 547    }
 548    for (key in j_tabs)
 549      Small_tab(key,0);
 550    Re_load();
 551  }
 552  
 553  function Small_tab_refresh() 
 554  {
 555     for (key in j_tabs)
 556       if(document.getElementById('_|_hide_tbody_'+key).innerHTML!="v")
 557       {
 558         Small_tab(key,0);
 559         Small_tab(key,0);
 560       }
 561  }
 562  
 563  function Small_tab(t,re_load) 
 564  {
 565    var id      = document.getElementById('_|_tbody_'+t);
 566    var id_this = document.getElementById('_|_hide_tbody_'+t);
 567    var id_t    = document.getElementById(t);
 568  
 569    id_t.style.width = id_t.offsetWidth;
 570    if(id_this.innerHTML=="v")
 571    {
 572      //---CROSS
 573      if(isIE) return; //IE not supported
 574      id.style.display = 'none';
 575      id_this.innerHTML = '>';
 576    }
 577    else 
 578    {
 579      id.style.display = '';
 580      id_this.innerHTML = 'v';
 581    }
 582    if(re_load) Re_load();
 583  }
 584  //-----------------------------------------------------------------------------------------------------------------
 585  function Select_tab(t)
 586  {
 587    var id_zag = document.getElementById('_|_zag_'+t);
 588    if(id_zag.className != 'tab_zag_3')
 589      document.getElementById('_|_zag_'+t).className = 'tab_zag_2';
 590    else
 591      document.getElementById('_|_zag_'+t).className = 'tab_zag';
 592    //----------
 593    var id_t    = document.getElementById(t);
 594    window.scrollTo( parseInt(id_t.style.left)-300, parseInt(id_t.style.top)-300 );
 595    
 596    setTimeout(function(){document.getElementById('_|_zag_'+t).className = 'tab_zag';},800);
 597  }
 598  //-----------------------------------------------------------------------------------------------------------------
 599  
 600  function Canvas_click(id)
 601  {
 602    var n,relation_name,selected = 0;
 603    var a = new Array();
 604    var Key0,Key1,Key2,Key3,Key;
 605    Clear();
 606    for (K in contr)
 607      for (key in contr[K])
 608        for (key2 in contr[K][key])
 609          for (key3 in contr[K][key][key2])
 610          { 
 611            if(!document.getElementById("check_vis_"+key2).checked || 
 612               !document.getElementById("check_vis_"+contr[K][key][key2][key3][0]).checked) continue; // if hide
 613            var x1_left  = document.getElementById(key2).offsetLeft + 1;//document.getElementById(key2+"."+key3).offsetLeft;
 614            var x1_right = x1_left + document.getElementById(key2).offsetWidth;
 615            var x2_left  = document.getElementById(contr[K][key][key2][key3][0]).offsetLeft;//+document.getElementById(contr[K][key2][key3][0]+"."+contr[K][key2][key3][1]).offsetLeft
 616            var x2_right = x2_left + document.getElementById(contr[K][key][key2][key3][0]).offsetWidth;
 617            a[0] = Math.abs( x1_left - x2_left );  a[1] = Math.abs(x1_left  - x2_right);
 618            a[2] = Math.abs( x1_right - x2_left ); a[3] = Math.abs(x1_right - x2_right);
 619            n = s_left = s_right = 0;
 620            for(var i=1;i<4;i++)
 621              if(a[n]>a[i])n=i;
 622            if(n==1){ x1 = x1_left-sm_s;  x2 = x2_right+sm_s; if(x1<x2)n=0;}
 623            if(n==2){ x1 = x1_right+sm_s; x2 = x2_left-sm_s;  if(x1>x2)n=0;}
 624            if(n==3){ x1 = x1_right+sm_s; x2 = x2_right+sm_s; s_right = 1; }
 625            if(n==0){ x1 = x1_left-sm_s;  x2 = x2_left-sm_s;  s_left  = 1; }
 626       
 627            var y1 = document.getElementById(key2).offsetTop + document.getElementById(key2+"."+key3).offsetTop + height_field;
 628            var y2 = document.getElementById(contr[K][key][key2][key3][0]).offsetTop + 
 629                     document.getElementById(contr[K][key][key2][key3][0]+"."+contr[K][key][key2][key3][1]).offsetTop + height_field;
 630            if( !selected && Glob_X > x1-10 && Glob_X < x1+10 && Glob_Y > y1-7 && Glob_Y < y1+7)
 631            {
 632              Line0(x1-sm_x,y1-sm_y,x2-sm_x,y2-sm_y,"rgba(255,0,0,1)"); 
 633              selected = 1; // Rect(x1-sm_x,y1-sm_y,10,10,"rgba(0,255,0,1)"); 
 634              relation_name = key; // 
 635              Key0=contr[K][key][key2][key3][0]; Key1=contr[K][key][key2][key3][1]; 
 636              Key2 = key2; Key3 = key3;
 637              Key = K;
 638            } 
 639            else    
 640            Line0(x1-sm_x,y1-sm_y,x2-sm_x,y2-sm_y,"rgba(0,100,150,1)");
 641          }
 642    if( selected )  // select relations
 643    { //alert(Key0+' - '+Key1+' - '+Key2+' - '+Key3);
 644      document.getElementById('layer_upd_relation').style.left = Glob_X - (document.getElementById('layer_upd_relation').offsetWidth>>1);
 645      document.getElementById('layer_upd_relation').style.top  = Glob_Y - document.getElementById('layer_upd_relation').offsetHeight-10;
 646      document.getElementById('layer_upd_relation').style.visibility = 'visible';
 647      link_relation = 'T1='+Key0+'&F1='+Key1+'&T2='+Key2+'&F2='+Key3+'&K='+Key;
 648    }
 649  }
 650  
 651  function Upd_relation()
 652  {
 653    document.getElementById('layer_upd_relation').style.visibility = 'hidden';
 654    link_relation += '&server=' + server + '&db=' + db + '&token=' + token + '&die_save_pos=0';
 655    link_relation += Get_url_pos();
 656    makeRequest('pmd_relation_upd.php', link_relation);
 657  }
 658  
 659  function VisibleTab(id,t_n)
 660  {
 661    if(id.checked)document.getElementById(t_n).style.visibility = 'visible';
 662    else document.getElementById(t_n).style.visibility = 'hidden';
 663    Re_load();
 664  }
 665  
 666  function Hide_tab_all(id_this) // max/min all tables
 667  {
 668    if(id_this.alt == 'v') { id_this.alt='>';id_this.src="pmd/images/rightarrow1.png"; }
 669    else { id_this.alt='v';id_this.src="pmd/images/downarrow1.png"; }
 670    var E = document.form1;
 671    for (i=0;i<E.elements.length;i++) 
 672      if(E.elements[i].type=="checkbox" && E.elements[i].id.substring( 0 , 10) == 'check_vis_')
 673      {
 674        if(id_this.alt == 'v') { E.elements[i].checked = true; document.getElementById(E.elements[i].value).style.visibility = 'visible';}       
 675        else { E.elements[i].checked = false; document.getElementById(E.elements[i].value).style.visibility = 'hidden';} 
 676      }
 677    Re_load();
 678  }
 679  
 680  function in_array_k(x,m)
 681  {
 682    var b=0;
 683    for (u in m)
 684    if(x == u){ b=1; break; }
 685    return b;
 686  }
 687  
 688  function No_have_constr(id_this) 
 689  {
 690    var a = new Array();
 691    for (K in contr) 
 692      for (key in contr[K])                 // contr name
 693        for (key2 in contr[K][key])         // table name
 694          for (key3 in contr[K][key][key2]) // field name
 695          a[key2]=a[contr[K][key][key2][key3][0]]=1; // exist constr
 696   
 697   
 698          
 699    if(id_this.alt == 'v') { id_this.alt='>';id_this.src="pmd/images/rightarrow2.png"; }
 700    else { id_this.alt='v';id_this.src="pmd/images/downarrow2.png"; }
 701    var E = document.form1;
 702    for (i=0;i<E.elements.length;i++) 
 703      if(E.elements[i].type=="checkbox" && E.elements[i].id.substring(0, 10) == 'check_vis_')
 704      {
 705        if(!in_array_k(E.elements[i].value,a))
 706        if(id_this.alt == 'v') 
 707             { E.elements[i].checked = true; document.getElementById(E.elements[i].value).style.visibility = 'visible';}       
 708        else { E.elements[i].checked = false; document.getElementById(E.elements[i].value).style.visibility = 'hidden';} 
 709      }
 710  }
 711  
 712  function Help()
 713  {
 714   var WinHelp = 
 715   window.open("pmd_help.php","wind1", "top=200,left=400,width=300,height=200,resizable=yes,scrollbars=yes,menubar=no");
 716  }
 717  
 718  function PDF_save()
 719  {
 720    // var WinPDF = 
 721    // window.open("pmd_pdf.php?token="+token+"&db="+db,"wind1", "top=200,left=200,width=200,height=100,resizable=yes,scrollbars=yes,menubar=no");
 722   Save('pmd_pdf.php?server=' + server + '&token=' + token + '&db=' + db);
 723  }
 724  
 725  
 726  function General_scroll()
 727  {
 728     /*
 729    if(!document.getElementById('show_relation_olways').checked)
 730    {
 731      document.getElementById("canvas").style.visibility = 'hidden';
 732      clearTimeout(timeoutID);
 733      timeoutID = setTimeout(General_scroll_end,500);
 734    }*/
 735    //if(timeoutID)
 736    clearTimeout(timeoutID);
 737    timeoutID = setTimeout
 738    (
 739      function()
 740      {  
 741        document.getElementById('top_menu').style.left = document.body.scrollLeft;
 742        document.getElementById('top_menu').style.top  = document.body.scrollTop;
 743        document.getElementById('layer_menu').style.left = document.body.scrollLeft;
 744        document.getElementById('layer_menu').style.top  = document.body.scrollTop + document.getElementById('top_menu').offsetHeight;
 745      }
 746      ,200
 747    );
 748  } 
 749  
 750  /*
 751  function General_scroll_end()
 752  { 
 753  //  document.getElementById('layer_menu').style.left = document.body.scrollLeft;
 754  //  document.getElementById('layer_menu').style.top  = document.body.scrollTop + document.getElementById('top_menu').offsetHeight;
 755    //if(isIE)
 756    //{
 757    //  document.getElementById('layer_menu').style.left = document.body.scrollLeft;
 758    //  document.getElementById('layer_menu').style.top  = document.body.scrollTop + document.getElementById('top_menu').offsetHeight;
 759    //}
 760    document.getElementById("canvas").style.visibility = 'visible';
 761  }
 762  */
 763  
 764  function Show_left_menu(id_this) // max/min all tables
 765  {
 766    if(id_this.alt=="v")
 767    {
 768      document.getElementById("layer_menu").style.top = document.getElementById('top_menu').offsetHeight;
 769      document.getElementById("layer_menu").style.visibility = 'visible';
 770      id_this.alt = ">";
 771      id_this.src="pmd/images/uparrow2_m.png";
 772      if(isIE) General_scroll();
 773    }
 774    else
 775    {  
 776      document.getElementById("layer_menu").style.top = -1000; //fast scroll
 777      document.getElementById("layer_menu").style.visibility = 'hidden';
 778      id_this.alt = "v";
 779      id_this.src="pmd/images/downarrow2_m.png";
 780    }
 781  }
 782  //----------------------------------------------------------------------------------------
 783  function Top_menu_right(id_this)
 784  { 
 785    if(id_this.alt==">")
 786    {
 787      document.getElementById('top_menu').style.marginLeft = document.getElementById('top_menu').offsetWidth; // = 350
 788      id_this.alt = "<";
 789      id_this.src="pmd/images/2leftarrow_m.png";
 790    }
 791    else
 792    {  
 793      document.getElementById('top_menu').style.marginLeft = 0;
 794      id_this.alt = ">";
 795      id_this.src="pmd/images/2rightarrow_m.png";
 796    } 
 797  }
 798  //----------------------------------------------------------------------------------------
 799  function Start_display_field()
 800  {
 801    if( ON_relation ) return;
 802    if( !ON_display_field )
 803    {
 804      ON_display_field = 1;
 805      document.getElementById('hint').innerHTML = LangChangeDisplay;
 806      document.getElementById('hint').style.visibility = "visible";
 807      document.getElementById('display_field_button').className = 'M_butt_Selected_down';//'#FFEE99';gray #AAAAAA
 808  
 809      if(isIE) { // correct for IE
 810        document.getElementById('display_field_button').className = 'M_butt_Selected_down_IE';
 811      }
 812    }
 813    else
 814    {
 815      document.getElementById('hint').innerHTML = "";
 816      document.getElementById('hint').style.visibility = "hidden";
 817      document.getElementById('display_field_button').className = 'M_butt';
 818      ON_display_field = 0;  
 819    }
 820  }


Généré le : Mon Nov 26 15:18:20 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics