Changeset 558 for branches/mokhet/popups


Ignore:
Timestamp:
08/25/06 13:45:41 (13 years ago)
Author:
mokhet
Message:
  • add prototype.removeEvent and prototype.notifierRemove
  • apply color picker IE fix and saved colors from ticket #85
  • bring back anonymous function in events (when available) for a better diff with trunk
  • disable patch from ticket #827 until a proper fix for IE is found
  • fix undeclared variable used in popup.js
  • fix undefined parameter used in listType plugin
Location:
branches/mokhet/popups
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/mokhet/popups/color_picker.js

    r376 r558  
    7575  function colorPicker(params) 
    7676  { 
     77    // if the savedColors is empty, try to read the savedColors from cookie 
     78    if ( colorPicker.savedColors.length == 0 ) 
     79    { 
     80      colorPicker.loadColors(); 
     81    } 
    7782    var picker = this; 
    7883    this.callback = params.callback?params.callback:function(color){alert('You picked ' + color )}; 
    7984 
     85    this.websafe  = params.websafe?params.websafe:false; 
    8086    this.cellsize = params.cellsize?params.cellsize:'10px'; 
    8187    this.side     = params.granularity?params.granularity:18; 
     
    289295        this.table.style.left = (left - (this.table.offsetWidth - element.offsetWidth)) + 'px'; 
    290296      } 
     297      // IE ONLY - prevent windowed elements (<SELECT>) to render above the colorpicker 
     298      /*@cc_on 
     299      this.iframe.style.top = this.table.style.top; 
     300      this.iframe.style.left = this.table.style.left; 
     301      @*/ 
    291302    }; 
    292303 
     
    339350              } 
    340351            } 
    341             td.onclick = function() { picker.callback(this.colorCode); picker.close(); } 
     352            td.onclick = function() { colorPicker.remember(this.colorCode); picker.callback(this.colorCode); picker.close(); } 
    342353            td.appendChild(document.createTextNode(' ')); 
    343354            td.style.cursor = 'pointer'; 
     
    414425            } 
    415426          } 
    416           td.onclick = function() { picker.callback(this.colorCode); picker.close(); } 
     427          td.onclick = function() { colorPicker.remember(this.colorCode); picker.callback(this.colorCode); picker.close(); } 
    417428          td.appendChild(document.createTextNode(' ')); 
    418429          td.style.cursor = 'pointer'; 
     
    430441        td.style.padding = '3px'; 
    431442 
     443        if ( this.websafe ) 
     444        { 
    432445        var div = document.createElement('div'); 
    433446        var label = document.createElement('label'); 
     
    440453        div.appendChild(label); 
    441454        td.appendChild(div); 
     455        } 
    442456 
    443457        var div = document.createElement('div'); 
     
    467481        td.appendChild(sampleTable); 
    468482 
     483        var savedColors = document.createElement('div'); 
     484        savedColors.style.clear = 'both'; 
     485 
     486        function createSavedColors(color) 
     487        { 
     488          var is_ie = false; 
     489          /*@cc_on is_ie = true; @*/ 
     490          var div = document.createElement('div'); 
     491          div.style.width = '13px'; 
     492          div.style.height = '13px'; 
     493          div.style.margin = '1px'; 
     494          div.style.border = '1px solid black'; 
     495          div.style.cursor = 'pointer'; 
     496          div.style.backgroundColor = color; 
     497          div.style[ is_ie ? 'styleFloat' : 'cssFloat'] = 'left'; 
     498          div.onclick = function() { picker.callback(color); picker.close(); }; 
     499          div.onmouseover = function() 
     500          { 
     501            picker.chosenColor.value = color; 
     502            picker.backSample.style.backgroundColor = color; 
     503            picker.foreSample.style.color = color; 
     504          }; 
     505          savedColors.appendChild(div); 
     506        } 
     507        for ( var savedCols = 0; savedCols < colorPicker.savedColors.length; savedCols++ ) 
     508        { 
     509          createSavedColors(colorPicker.savedColors[savedCols]); 
     510        } 
     511        td.appendChild(savedColors); 
    469512 
    470513        this.tbody.appendChild(tr); 
    471514        document.body.appendChild(this.table); 
    472  
     515        // IE ONLY - prevent windowed elements (<SELECT>) to render above the colorpicker 
     516        /*@cc_on 
     517        if ( !this.iframe ) 
     518        { 
     519          this.iframe = document.createElement('iframe'); 
     520          this.iframe.style.zIndex = 999; 
     521          this.table.style.zIndex = 1000; 
     522          this.iframe.style.position = 'absolute'; 
     523          this.iframe.style.width = this.table.offsetWidth; 
     524          this.iframe.style.height = this.table.offsetHeight; 
     525          this.iframe.border = 0; 
     526          this.iframe.frameBorder = 0; 
     527          this.iframe.frameSpacing = 0; 
     528          this.iframe.marginWidth = 0; 
     529          this.iframe.marginHeight = 0; 
     530          this.iframe.hspace = 0; 
     531          this.iframe.vspace = 0; 
     532          document.body.appendChild(this.iframe); 
     533        } 
     534        this.iframe.style.display = ''; 
     535        @*/ 
    473536      } 
    474537      else 
     
    496559    { 
    497560      this.table.style.display = 'none'; 
     561      // IE ONLY - prevent windowed elements (<SELECT>) to render above the colorpicker 
     562      /*@cc_on 
     563      if ( this.iframe ) { this.iframe.style.display = 'none'; } 
     564      @*/ 
    498565    }; 
    499  
    500566  } 
     567 
     568// array of the saved colors 
     569colorPicker.savedColors = []; 
     570 
     571// add the color to the savedColors 
     572colorPicker.remember = function(color) 
     573{ 
     574  // check if this color is known 
     575  for ( var i = colorPicker.savedColors.length; i--; ) 
     576  { 
     577    if ( colorPicker.savedColors[i] == color ) 
     578    { 
     579      return false; 
     580    } 
     581  } 
     582  // insert the new color 
     583  colorPicker.savedColors.splice(0, 0, color); 
     584  // limit elements 
     585  colorPicker.savedColors = colorPicker.savedColors.slice(0, 21); 
     586  //[mokhet] probably some more parameters to send to the cookie definition 
     587  // like domain, secure and such, especially with https connection i presume 
     588  // save the cookie 
     589  var expdate = new Date(); 
     590  expdate.setMonth(expdate.getMonth() + 1); 
     591 
     592  document.cookie = 'XinhaColorPicker=' + escape (colorPicker.savedColors.join('-')) + ';expires=' + expdate.toGMTString(); 
     593  return true; 
     594}; 
     595 
     596// try to read the colors from the cookie 
     597colorPicker.loadColors = function() 
     598{ 
     599  var index = document.cookie.indexOf('XinhaColorPicker'); 
     600  if ( index != -1 ) 
     601  { 
     602    var begin = (document.cookie.indexOf('=', index) + 1); 
     603    var end = document.cookie.indexOf(';', index); 
     604    if ( end == -1 ) { end = document.cookie.length; } 
     605    colorPicker.savedColors = unescape(document.cookie.substring(begin, end)).split('-'); 
     606  } 
     607}; 
  • branches/mokhet/popups/popup.js

    r504 r558  
    1111// 
    1212// $Id$ 
    13 HTMLArea = window.opener.HTMLArea; 
     13var HTMLArea = window.opener.HTMLArea; 
    1414 
    1515function getAbsolutePos(el) { 
Note: See TracChangeset for help on using the changeset viewer.