Ignore:
Timestamp:
07/10/05 05:44:48 (14 years ago)
Author:
gogo
Message:

Various updates to ImageManager?, see #343

Location:
trunk/plugins/ImageManager/assets
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/plugins/ImageManager/assets/imagelist.css

    r43 r256  
    11body { margin: 0; padding: 0; } 
    2 .block { height: 98px; width: 98px; border: 1px solid threedface; text-align: center; behavior: url(hover.htc ); } 
    3 .block a img { border: 0 none; } 
    4 .block:hover, .block.hover{ background-color: #ffc; } 
    5 .edit { font-size: 9pt; font-family: "MS Sans Serif", Geneva, sans-serif; padding-top: 3px;} 
    6 .edit a { border: 1px solid white; padding: 3px; } 
    7 .edit a:hover { border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight; background-color: #ffc; } 
    8 .edit a img { border: 0 none; vertical-align: bottom; } 
     2.edit   { font-size: small; font-family: small-caption, sans-serif; padding-top: 3px;} 
     3.edit a { border: none; padding: 3px; text-decoration:none; } 
     4.edit a:hover { background-color: ButtonHighlight; } 
     5.edit a img { border: none; vertical-align: bottom; } 
    96.noResult { font-size:large; font-weight:bold; color:#ccc; font-family: Helvetica, sans-serif;  text-align: center;  padding-top: 60px;   } 
    107.error { color:#c00; font-weight:bold; font-size: medium; font-family: Helvetica, sans-serif; text-align: center;  padding-top: 65px;} 
     8 
     9.dir_holder, .thumb_holder 
     10{ 
     11  width:110px; height:132px; 
     12  float:left; 
     13  margin:6px; 
     14  background-color:ButtonFace; 
     15  border: 1px outset; 
     16} 
     17 
     18.thumb_holder.active 
     19{ 
     20  background:Highlight; 
     21  color:HighlightText; 
     22  border:1px dashed Highlight; 
     23} 
     24 
     25.dir_holder a.dir, .thumb_holder a.thumb 
     26{ 
     27  height:100px; 
     28  display:block; 
     29  text-align:center; 
     30  padding:5px; 
     31  text-decoration:none; 
     32} 
     33 
     34.thumb_holder a.thumb img 
     35{ 
     36  border:1px solid black; 
     37} 
     38 
     39.dir_holder a.dir img 
     40{ 
     41  border:none; 
     42} 
  • trunk/plugins/ImageManager/assets/images.js

    r60 r256  
    5656                var obj = topDoc.getElementById('orginal_width'); obj.value = width; 
    5757                var obj = topDoc.getElementById('orginal_height'); obj.value = height;           
     58    update_selected(); 
    5859        } 
     60 
     61  var _current_selected = null; 
     62  function update_selected() 
     63  { 
     64    var topDoc = window.top.document; 
     65    if(_current_selected) 
     66    { 
     67      _current_selected.className = _current_selected.className.replace(/(^| )active( |$)/, '$1$2'); 
     68      _current_selected = null; 
     69    } 
     70    // Grab the current file, and highlight it if we have it 
     71    var c_file = topDoc.getElementById('f_url').value; 
     72    var selection = topDoc.getElementById('dirPath'); 
     73                var currentDir = selection.options[selection.selectedIndex].text; 
     74    var dRe = new RegExp('^(' + currentDir.replace(/([\/\^$*+?.()|{}[\]])/g, '\\$1') + ')([^/]*)$'); 
     75    if(dRe.test(c_file)) 
     76    { 
     77      var holder = document.getElementById('holder_' + asc2hex(RegExp.$2)); 
     78      if(holder) 
     79      { 
     80        _current_selected = holder; 
     81        holder.className += ' active'; 
     82      } 
     83    } 
     84  } 
     85 
     86  function asc2hex(str) 
     87  { 
     88    var hexstr = ''; 
     89    for(var i = 0; i < str.length; i++) 
     90    { 
     91      var hex = (str.charCodeAt(i)).toString(16); 
     92      if(hex.length == 1) hex = '0' + hex; 
     93      hexstr += hex; 
     94    } 
     95    return hexstr; 
     96  } 
    5997 
    6098        function showMessage(newMessage)  
  • trunk/plugins/ImageManager/assets/manager.css

    r43 r256  
    44.title { background-color: #ddf; color: #000; font-weight: bold; font-size: 120%; padding: 3px 10px; margin-bottom: 10px; border-bottom: 1px  solid black; letter-spacing: 2px;} 
    55form { padding: 0px;  margin: 0 auto; width: 550px;} 
    6 .dirWidth { width: 70%; } 
     6 
    77a { padding: 5px; border: 1px solid ButtonFace; }        
    88a img   { border: 0; }   
    99a:hover { border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight; } 
    1010.dirs { padding: 1em;   } 
    11 .imageFrame { width: 525px; height: 145px; margin: 0 auto; margin-top: 1em; background-color: White;} 
     11.imageFrame { width: 100%; height: 145px; margin: 0 auto; margin-top: 1em; background-color: White;} 
    1212.smallWidth{ width: 4em; } 
    1313.largelWidth{ width: 22em; } 
     
    1818#messages { position: relative; left: 175px; top: 115px; background-color: white; width:200px;  float: left; margin-top: -52px; border: 1px solid #ccc; text-align: center; padding: 15px; } 
    1919#message  { font-size: 15px; font-weight: bold; color: #69c; } 
     20iframe { border:1px inset; border-right:none; border-left:none; border-bottom:none; } 
     21 
     22table { margin-top:10px; } 
     23th, td { padding-right:3px; text-align:left; font-family:small-caption,helvetica,sans-serif; } 
  • trunk/plugins/ImageManager/assets/manager.js

    r252 r256  
    3737        document.getElementById("f_align").selectedIndex = 0; 
    3838         
     39    // Hookup color pickers 
     40    var bgCol_pick = document.getElementById('bgCol_pick'); 
     41    var f_backgroundColor = document.getElementById('f_backgroundColor'); 
     42    var bgColPicker = new colorPicker({cellsize:'5px',callback:function(color){f_backgroundColor.value=color;}}); 
     43    bgCol_pick.onclick = function() { bgColPicker.open('top,right', f_backgroundColor ); } 
     44 
     45    var bdCol_pick = document.getElementById('bdCol_pick'); 
     46    var f_borderColor = document.getElementById('f_borderColor'); 
     47    var bdColPicker = new colorPicker({cellsize:'5px',callback:function(color){f_borderColor.value=color;}}); 
     48    bdCol_pick.onclick = function() { bdColPicker.open('top,right', f_borderColor ); } 
     49 
     50 
     51 
    3952                var uploadForm = document.getElementById('uploadForm'); 
    4053                if(uploadForm) uploadForm.target = 'imgManager'; 
     
    4356                if (param)  
    4457                { 
    45                         document.getElementById("f_url").value = param["f_url"]; 
    46                         document.getElementById("f_alt").value = param["f_alt"]; 
    47                         document.getElementById("f_border").value = param["f_border"]; 
    48                         document.getElementById("f_vert").value = param["f_vert"]; 
    49                         document.getElementById("f_horiz").value = param["f_horiz"]; 
    50                         document.getElementById("f_width").value = param["f_width"]; 
    51                         document.getElementById("f_height").value = param["f_height"]; 
     58      var image_src = param.f_url; 
     59      var image_regex = new RegExp( '(https?://[^/]*)?' + base_url.replace(/\/$/, '') ); 
     60      param.f_url = param.f_url.replace( image_regex, "" ); 
     61 
     62      for (var id in param) 
     63      { 
     64        if(id == 'f_align') continue; 
     65        if(document.getElementById(id)) 
     66        { 
     67          document.getElementById(id).value = param[id]; 
     68        } 
     69      } 
     70 
     71 
     72 
     73      document.getElementById("orginal_width").value = param["f_width"]; 
     74                        document.getElementById("orginal_height").value = param["f_height"]; 
    5275                        setAlign(param["f_align"]); 
    53                 } 
    54  
    55                 document.getElementById("f_url").focus(); 
     76 
     77      // Locate to the correct directory 
     78      var rd = _resized_dir.replace(HTMLArea.RE_Specials, '\\$1'); 
     79      var rp = _resized_prefix.replace(HTMLArea.RE_Specials, '\\$1'); 
     80      var dreg = new RegExp('^(.*/)(?:'+rd+')?(?:'+rp+'_[0-9]+x[0-9]+_)?([^/]+)$'); 
     81 
     82      if(dreg.test(param['f_url'])) 
     83      { 
     84        changeDir(RegExp.$1); 
     85        var dirPath = document.getElementById('dirPath'); 
     86        for(var i = 0; i < dirPath.options.length; i++) 
     87        { 
     88          if(dirPath.options[i].value == encodeURIComponent(RegExp.$1)) 
     89          { 
     90            dirPath.options[i].selected = true; 
     91            break; 
     92          } 
     93        } 
     94      } 
     95                } 
     96 
     97                document.getElementById("f_alt").focus(); 
     98 
     99    // For some reason dialog is not shrinkwrapping correctly in IE so we have to explicitly size it for now. 
     100    if(HTMLArea.is_ie) window.resizeTo(600, 460); 
    56101        } 
    57102 
     
    66111        { 
    67112                // pass data back to the calling window 
    68                 var fields = ["f_url", "f_alt", "f_align", "f_border", "f_horiz", "f_vert", "f_height", "f_width"]; 
     113                var fields = ["f_url", "f_alt", "f_align", "f_width", "f_height", "f_padding", "f_margin", "f_border", "f_borderColor", "f_backgroundColor"]; 
    69114                var param = new Object(); 
    70115                for (var i in fields)  
     
    83128                                param[id] = makeURL(base_url,el.value); 
    84129                                } 
    85                         else 
     130                        else if (el) 
    86131                                param[id] = el.value; 
    87                 } 
     132      else alert("Missing " + fields[i]); 
     133 
     134                } 
     135 
     136    // See if we need to resize the image 
     137    var origsize = 
     138    { 
     139      w:document.getElementById('orginal_width').value, 
     140      h:document.getElementById('orginal_height').value 
     141    } 
     142 
     143    if(  (origsize.w != param.f_width) 
     144      || (origsize.h != param.f_height) ) 
     145    { 
     146      // Yup, need to resize 
     147      var resized = HTMLArea._geturlcontent(_backend_url + '&__function=resizer&img=' + encodeURIComponent(document.getElementById('f_url').value) + '&width=' + param.f_width + '&height=' + param.f_height); 
     148      // alert(resized); 
     149      resized = eval(resized); 
     150      if(resized) 
     151      { 
     152        param.f_url = makeURL(base_url, resized); 
     153      } 
     154    } 
     155 
     156 
    88157                __dlg_close(param); 
    89158                return false; 
     
    199268                message.appendChild(document.createTextNode(i18n(newMessage))); 
    200269                 
    201                 messages.style.display = "block"; 
     270                messages.style.display = ''; 
    202271        } 
    203272 
  • trunk/plugins/ImageManager/assets/popup.js

    r60 r256  
    1212// $Id: popup.js 26 2004-03-31 02:35:21Z Wei Zhuo $ 
    1313 
    14 // Slightly modified for the ImageManager, window resizing is done only 
    15 // by each window's script. Added translation for a few other HTML elements. 
    16  
    17 function getAbsolutePos(el) { 
    18         var r = { x: el.offsetLeft, y: el.offsetTop }; 
    19         if (el.offsetParent) { 
    20                 var tmp = getAbsolutePos(el.offsetParent); 
    21                 r.x += tmp.x; 
    22                 r.y += tmp.y; 
    23         } 
    24         return r; 
    25 }; 
    26  
    27 function comboSelectValue(c, val) { 
    28         var ops = c.getElementsByTagName("option"); 
    29         for (var i = ops.length; --i >= 0;) { 
    30                 var op = ops[i]; 
    31                 op.selected = (op.value == val); 
    32         } 
    33         c.value = val; 
    34 }; 
    35  
    36 function __dlg_onclose() { 
    37         if(opener.Dialog._return) 
    38                 opener.Dialog._return(null); 
    39 }; 
    40  
    41 function __dlg_init(bottom) { 
    42         var body = document.body; 
    43         var body_height = 0; 
    44         if (typeof bottom == "undefined") { 
    45                 var div = document.createElement("div"); 
    46                 body.appendChild(div); 
    47                 var pos = getAbsolutePos(div); 
    48                 body_height = pos.y; 
    49         } else { 
    50                 var pos = getAbsolutePos(bottom); 
    51                 body_height = pos.y + bottom.offsetHeight; 
    52         } 
    53         if(opener && opener.Dialog && opener.Dialog._arguments) 
    54                 window.dialogArguments = opener.Dialog._arguments; 
    55         if (!document.all) { 
    56                 //window.sizeToContent(); 
    57                 //window.sizeToContent();       // for reasons beyond understanding, 
    58                                         // only if we call it twice we get the 
    59                                         // correct size. 
    60                 window.addEventListener("unload", __dlg_onclose, true); 
    61                 // center on parent 
    62                 var x = opener.screenX + (opener.outerWidth - window.outerWidth) / 2; 
    63                 var y = opener.screenY + (opener.outerHeight - window.outerHeight) / 2; 
    64                 window.moveTo(x, y); 
    65                 //window.innerWidth = body.offsetWidth + 5; 
    66                 //window.innerHeight = body_height + 2; 
    67         } else { 
    68                 // window.dialogHeight = body.offsetHeight + 50 + "px"; 
    69                 // window.dialogWidth = body.offsetWidth + "px"; 
    70                 //window.resizeTo(body.offsetWidth, body_height); 
    71                 var ch = body.clientHeight; 
    72                 var cw = body.clientWidth; 
    73                 //window.resizeBy(body.offsetWidth - cw, body_height - ch); 
    74                 var W = body.offsetWidth; 
    75                 var H = 2 * body_height - ch; 
    76                 if(ch <= 0) H = body_height; 
    77                 var x = (screen.availWidth - W) / 2; 
    78                 var y = (screen.availHeight - H) / 2; 
    79                  
    80                 window.moveTo(x, y); 
    81         } 
    82         document.body.onkeypress = __dlg_close_on_esc; 
    83 }; 
     14// Override the ordinary popup.js translation to add translation for a few other HTML elements. 
    8415 
    8516function __dlg_translate(context) { 
     
    10839    document.title = HTMLArea._lc(document.title, context); 
    10940}; 
    110  
    111  
    112 // closes the dialog and passes the return info upper. 
    113 function __dlg_close(val) { 
    114         opener.Dialog._return(val); 
    115         window.close(); 
    116 }; 
    117  
    118 function __dlg_close_on_esc(ev) { 
    119         ev || (ev = window.event); 
    120         if (ev.keyCode == 27) { 
    121                 window.close(); 
    122                 return false; 
    123         } 
    124         return true; 
    125 }; 
Note: See TracChangeset for help on using the changeset viewer.