Changeset 1736


Ignore:
Timestamp:
23.11.2011 21:03:44 (6 months ago)
Author:
zmsdev
Message:

Fixed auto-resize of richtext-inputs (requested by uni-bern).

Location:
ZMS/trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • ZMS/trunk/dtml/ZMSObject/input_js.dtml

    r1622 r1736  
    11<script type="text/javascript"> 
    22<!--// 
    3  
    4 //////////////////////////////////////////////////////////////////////////////// 
    5 ///// Resize textareas 
    6 //////////////////////////////////////////////////////////////////////////////// 
    7 <dtml-unless ZMS_NO_BODY> 
    8  
    9 var taMinHeight = null; 
    10  
    11 $(function() { 
    12         onResize(); 
    13         $(window).resize(function() { 
    14                 onResize(); 
    15         }); 
    16 }); 
    17  
    18 function onResize() { 
    19         var ta = $('textarea:not([name^=alternate_],[name^=editor_])'); 
    20         if (ta.length==1) { 
    21                 if ($(ta.parents('div')[0]).css('display')=='none') { 
    22                         ta = $('object[name^=editor_'+ta.attr('name')+']'); 
    23                 } 
    24                 if (taMinHeight==null) { 
    25                         taMinHeight = $(ta).prop('offsetHeight') / 2; 
    26                 } 
    27                 var innerDims = getInnerDimensions(); 
    28                 var bodyDims = getBodyDimensions(); 
    29                 var newHeight = Math.max($(ta).prop('offsetHeight')+(innerDims.height-bodyDims.height)-10,taMinHeight); 
    30                 ta.css('height',newHeight); 
    31         } 
    32 } 
    33  
    34 </dtml-unless> 
    353 
    364//////////////////////////////////////////////////////////////////////////////// 
  • ZMS/trunk/dtml/objattrs/f_select_richtext.dtml

    r1616 r1736  
    9494<script type="text/javascript"> 
    9595<!--// 
    96 <dtml-comment> ***** RichText-Editor (switch) ***** </dtml-comment> 
    97 function zmiRichtextEditorShow( show_id, hide_id, format, callback) 
    98   { 
    99     $('#'+hide_id).hide('normal'); 
    100     $('#'+show_id).show('normal'); 
    101     if ( format) { 
    102       $('#format').val(format); 
    103     } 
    104     if ( callback) { 
    105       callback.apply(); 
    106     } 
    107   } 
     96 
     97<dtml-unless ZMS_NO_BODY> 
     98 
     99$(function() { 
     100        zmiRichtextEditorMaximize(); 
     101        $(window).resize(function() { 
     102                zmiRichtextEditorMaximize(); 
     103        }); 
     104}); 
     105 
     106</dtml-unless> 
     107 
     108/** 
     109 * Maximize single richtext. 
     110 */ 
     111function zmiRichtextEditorMaximize(ta) { 
     112        var ta = $('div[id^=zmiStandardEditor] textarea'); 
     113        if (ta.length==1 && ta.parents("form").attr("action").indexOf("manage_add")<0) { 
     114                var id = ta.attr('name'); 
     115                if ($("div#zmiStandardEditor"+id).css("display")=="none") { 
     116                        ta = $("div#zmiRichtextEditor"+id); 
     117                } 
     118                var innerDims = getInnerDimensions(); 
     119                var bodyDims = getBodyDimensions(); 
     120                var minHeight = 200; 
     121                var newHeight = Math.max($(ta).prop('offsetHeight')+(innerDims.height-bodyDims.height)-10,minHeight); 
     122                ta.css('height',newHeight); 
     123                try { 
     124                        zmiRichtextResize(id); 
     125                } 
     126                catch (e) { 
     127                        $("#ZMIManageTabsButtons").html(e); 
     128                } 
     129        } 
     130} 
     131 
     132 
     133/**  
     134 * Switch Richtext-Editor. 
     135 */ 
     136function zmiRichtextEditorShow( show_id, hide_id, format, callback) { 
     137        if ( format) { 
     138                $('#format').val(format); 
     139        } 
     140        $('#'+hide_id).hide('normal'); 
     141        $('#'+show_id).show('normal',function() { 
     142                        if ( callback) { 
     143                                callback.apply(); 
     144                        } 
     145                        var id = show_id.substr(show_id.indexOf("Editor")+"Editor".length); 
     146                        zmiWriteDebug("[zmiRichtextEditorShow]: id="+id); 
     147                        zmiRichtextEditorMaximize(id); 
     148                }); 
     149} 
    108150//--> 
    109151</script> 
  • ZMS/trunk/dtml/object/manage_page_footer.dtml

    r1709 r1736  
    1717 </select> 
    1818 <dtml-if ZMI_TIME> 
    19   <img src="<dtml-var spacer_gif>" title="<dtml-var "ZopeTime().timeTime()-ZMI_TIME" fmt="%.2f"> secs." alt="" border="0" width="2" height="10" align="absmiddle"> 
     19  <span class="ui-helper-clickable" title="<dtml-var "ZopeTime().timeTime()-ZMI_TIME" fmt="%.2f"> secs." onclick="$('#zmi-debug').show();">&bullet;</span> 
    2020 </dtml-if> 
    2121 </form> 
     
    2424</div><!-- #zmi_footer --> 
    2525</div><!-- [manage_page_header].zmi --> 
     26<div id="zmi-debug" style="display:none;color:#00F;font-family:Courier;background-color:#fff;border:1px solid #00F;"></div> 
    2627<dtml-except>[manage_page_footer] <dtml-var error_type>: <dtml-var error_value></dtml-try> 
    2728</body> 
  • ZMS/trunk/plugins/rte/ckeditor/manage_form.dtml

    r1709 r1736  
    9191} 
    9292 
     93function zmiRichtextResize(id) { 
     94        var instance = CKEDITOR.instances['editor_'+id]; 
     95        if(instance){ 
     96                var newHeight = $("div#zmiRichtextEditor"+id).height()-100; 
     97                zmiWriteDebug("ckeditor.manage_form.zmiRichtextResize(): "+newHeight+"["+$(".cke_contents").length+"]"); 
     98                $(".cke_contents").css("height",newHeight); 
     99        } 
     100} 
     101 
    93102function zmiRichtextInit(id) { 
    94103        pluginCkeditor('#editor_'+id,function() { 
     
    146155                        <dtml-if "getConfProperty('plugin.rte.ckeditor.Config','')"> 
    147156                                customConfig : '<dtml-var "getHome().absolute_url()">/<dtml-var "getConfProperty('plugin.rte.ckeditor.Config','')">', 
    148                                 toolbar: 'ZMSCustomToolbar' 
     157                                toolbar: 'ZMSCustomToolbar', 
    149158                        <dtml-else> 
    150                                 toolbar: 'ZMSBasicToolbar' 
     159                                toolbar: 'ZMSBasicToolbar', 
    151160                        </dtml-if> 
     161                        on:{ 
     162                                instanceReady: function(ev) { 
     163                                                zmiRichtextResize(id); 
     164                                        } 
     165                                } 
    152166                        }); 
    153167                zmiRichtextSyncDataToView(id); 
  • ZMS/trunk/plugins/rte/xstandard/manage_form.dtml

    r1689 r1736  
    8787 ></dtml-if> 
    8888 
    89   function zmiRichtextInit(elName, validateXML) { 
    90     var txt = $('#'+elName).val(); 
    91     if ( txt.length > 0) { 
    92       var zmiStandardEditorShow = false; 
    93       var ltxt = "<root>"+txt.toLowerCase()+"</root>"; 
    94       if ( (ltxt.indexOf( "<form") >= 0) ||  
    95            (ltxt.indexOf( "<input") >= 0) ||  
    96            (ltxt.indexOf( "<script") >= 0) ||  
    97            (ltxt.indexOf( "<"+"dtml-") >= 0)) { 
    98         zmiStandardEditorShow = true; 
    99       } 
    100       else { 
    101         try { 
    102           if ( validateXML) { 
    103             if (window.DOMParser) { 
    104               confirm( "window.DOMParser"); 
    105               var parser=new DOMParser(); 
    106               var doc=parser.parseFromString(ltxt,"text/xml"); 
    107               if ( doc.childNodes[0].nodeName == 'parsererror') { 
    108                 throw '<dtml-var "getZMILangStr('CAPTION_WARNING')">\n'+doc.childNodes[0].childNodes[0].nodeValue+'\n'; 
    109               } 
    110             } else if (window.ActiveXObject) { 
    111               var xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
    112               xmlDoc.async="false"; 
    113               xmlDoc.loadXML(ltxt); 
    114               if ( xmlDoc.childNodes.length == 0) { 
    115                 throw '<dtml-var "getZMILangStr('CAPTION_WARNING')">\n'+'Invalid (X)HTML!\n'; 
    116               } 
    117             } 
    118           } 
    119           $('#editor_'+elName).val( txt); 
    120           $('#editor_'+elName+'_value').val( txt); 
    121         } 
    122         catch(e) { 
    123           alert(e); 
    124           zmiStandardEditorShow = true; 
    125         } 
    126       } 
    127       if ( zmiStandardEditorShow) { 
    128         zmiRichtextEditorShow('zmiStandardEditor'+elName,'zmiRichtextEditor'+elName<dtml-if "REQUEST.get('htmledit_fmt')"><dtml-if "REQUEST.get('format') in [None,REQUEST.get('richedit_fmt').getId()]">,'<dtml-var "REQUEST.get('htmledit_fmt').getId()">'</dtml-if></dtml-if>); 
    129       } 
    130     } 
    131   } 
    132  
    133   function zmiStandardOnSubmitEventHandler() { 
    134     for (var e=0; e < zmiRichtextElNames.length; e++) { 
    135       var elName = zmiRichtextElNames[e]; 
    136       try { 
    137         $('#editor_'+elName).val( $('#'+elName).val()); 
    138         $('#editor_'+elName+'_value').val( $('#'+elName).val()); 
    139       } 
    140       catch(er) { 
    141       } 
    142     } 
    143   } 
     89function zmiRichtextResize(id) { 
     90        var newHeight = $("div#zmiRichtextEditor"+id).height()-20; 
     91        zmiWriteDebug("xstandard.manage_form.zmiRichtextResize(): "+newHeight+"["+$(".cke_contents").length+"]"); 
     92        $('object[name^=editor_'+id+']').css("height",newHeight); 
     93} 
     94 
     95function zmiRichtextInit(id) { 
     96        var txt = $('#'+id).val(); 
     97        if ( txt.length > 0) { 
     98                var zmiStandardEditorShow = false; 
     99                var lowerTxt = txt.toLowerCase(); 
     100                if ((lowerTxt.indexOf( "<form") >= 0) ||  
     101                                (lowerTxt.indexOf( "<input") >= 0) ||  
     102                                (lowerTxt.indexOf( "<script") >= 0) ||  
     103                                (lowerTxt.indexOf( "<"+"dtml-") >= 0)) { 
     104                        zmiStandardEditorShow = true; 
     105                } 
     106                else { 
     107                        $('#editor_'+id).val( txt); 
     108                        $('#editor_'+id+'_value').val( txt); 
     109                } 
     110                if ( zmiStandardEditorShow) { 
     111                        zmiRichtextEditorShow('zmiStandardEditor'+id,'zmiRichtextEditor'+id<dtml-if "REQUEST.get('htmledit_fmt')"><dtml-if "REQUEST.get('format') in [None,REQUEST.get('richedit_fmt').getId()]">,'<dtml-var "REQUEST.get('htmledit_fmt').getId()">'</dtml-if></dtml-if>); 
     112                } 
     113        } 
     114} 
     115 
     116function zmiStandardOnSubmitEventHandler() { 
     117        for (var e=0; e < zmiRichtextElNames.length; e++) { 
     118                var elName = zmiRichtextElNames[e]; 
     119                try { 
     120                        $('#editor_'+elName).val( $('#'+elName).val()); 
     121                        $('#editor_'+elName+'_value').val( $('#'+elName).val()); 
     122                } 
     123                catch(er) { 
     124                } 
     125        } 
     126} 
    144127 
    145128  <dtml-call "REQUEST.set('beforeSubmitBtnClick','zmiRichtextOnSubmitEventHandler(); ')"> 
  • ZMS/trunk/plugins/www/jquery/jquery-all.min.js

    r1731 r1736  
    7373function selectCheckboxes(fm,v){if(typeof v=='undefined'){v=!$(':checkbox:not([name~=active])',fm).prop('checked')} 
    7474$(':checkbox:not([name~=active])',fm).prop('checked',v)} 
     75function zmiWriteDebug(s){var $div=$("div#zmi-debug");if($div.css("display")!="none"){$div.html("["+(new Date())+"] "+s+'<br/>'+$div.html())}} 
    7576var zmiSortableRownum=null;$(function(){var sortableTables=$("table.zmi-sortable > tbody");if(sortableTables.length > 0){var fixHelper=function(e,ui){ui.children().each(function(){$(this).width($(this).width())});return ui};$("table.zmi-sortable > tbody").sortable({helper:fixHelper,forcePlaceholderSize:true,placeholder:'ui-state-highlight',handle:'.zmiContainerColLeft img.grippy',start:function(event,ui){var trs=$('table.zmi-sortable > tbody > tr');var i=0;for(i=0;i < trs.length;i++){if($(trs[i]).attr('id')==ui.item.attr('id')){break}} 
    7677zmiSortableRownum=i},stop:function(event,ui){var trs=$('table.zmi-sortable > tbody > tr');var i=0;for(i=0;i < trs.length;i++){if($(trs[i]).attr('id')==ui.item.attr('id')){break}} 
     
    173174function taggedStart(s1,s2){var r='';var b=true;for(var i=0;i < s1.length;i++){var c=s1.charAt(i);if(b&&c=='<')b=false;else if(!b&&c=='>')b=true;else if(b)r+=c;if(r==s2)return i} 
    174175return-1} 
    175 function zmiWriteDebug(s){if($('textarea#debug').length==0){$('body').append('<textarea id="debug" rows="50" cols="80"></textarea>')} 
    176 $("textarea#debug").val("["+(new Date())+"] "+s+"\n"+$("textarea#debug").val())} 
    177176function tagSelectedText(aTag,eTag,bMayHaveChanged){var input=self.el;if(typeof document.selection !='undefined'){if(bMayHaveChanged){while(selectedRange.text.indexOf(selectedText)!=0){selectedRange.moveStart('character',1)} 
    178177while(selectedRange.text!=selectedText){selectedRange.moveEnd('character',-1)}} 
  • ZMS/trunk/www/comlib.js

    r1700 r1736  
    221221 * Get tagged index of untagged string in given string. 
    222222 */ 
    223 function taggedStart( s1, s2) 
    224 { 
     223function taggedStart( s1, s2) { 
    225224  var r = ''; 
    226225  var b = true; 
     
    237236  } 
    238237  return -1; 
    239 } 
    240  
    241 function zmiWriteDebug(s) { 
    242   if ($('textarea#debug').length==0) { 
    243     $('body').append('<textarea id="debug" rows="50" cols="80"></textarea>'); 
    244   } 
    245         $("textarea#debug").val("["+(new Date())+"] "+s+"\n"+$("textarea#debug").val()); 
    246238} 
    247239 
Note: See TracChangeset for help on using the changeset viewer.