Changeset 202


Ignore:
Timestamp:
03/10/07 14:14:31 (7 years ago)
Author:
fredck
Message:

Fixed #54 : Hidden fields are now handled with a specific Document Processor, to replace them with image icons, instead of using CSS styles only.

This change impacts also elsewhere. Hidden fields will now show up as an icon in IE, instead of a normal text field. They are also selectable and draggable, in all browsers.

Location:
FCKeditor/trunk
Files:
1 added
2 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • FCKeditor/trunk/_test/manual/fckeditingarea/test1.html

    r132 r202  
    7979        var _BehaviorsStyle = '<style type="text/css" _fcktemp="true">' ; 
    8080 
    81         _BehaviorsStyle += 'INPUT { behavior: url(' + sBasePath + 'editor/css/behaviors/hiddenfield.htc) ; } ' ; 
    82  
    8381        _BehaviorsStyle += 'TABLE { behavior: url(' + sBasePath + 'editor/css/behaviors/showtableborders.htc) ; }' ; 
    8482 
  • FCKeditor/trunk/_whatsnew.html

    r201 r202  
    104104                        element is now considered a block container if EnterMode=p|br. It acts like a simple 
    105105                        block only if EnterMode=div.</li> 
     106                <li>Hidden fields will now show up as an icon in IE, instead of a normal text field. 
     107                        They are also selectable and draggable, in all browsers.</li> 
    106108        </ul> 
    107109        <h3> 
  • FCKeditor/trunk/editor/_source/internals/fck_contextmenu.js

    r132 r202  
    203203                        AddItems : function( menu, tag, tagName ) 
    204204                        { 
    205                                 if ( tagName == 'INPUT' && tag.type == 'hidden' ) 
     205                                if ( tagName == 'IMG' && tag.getAttribute( '_fckinputhidden' ) ) 
    206206                                { 
    207207                                        menu.AddSeparator() ; 
  • FCKeditor/trunk/editor/_source/internals/fck_ie.js

    r200 r202  
    3636                // The behaviors should be pointed using the FullBasePath to avoid security 
    3737                // errors when using a differente BaseHref. 
    38                 sStyle = 
    39                         '<style type="text/css" _fcktemp="true">' + 
    40                         'INPUT { behavior: url(' + sBasePath + 'css/behaviors/hiddenfield.htc) ; }' ; 
     38                sStyle = '<style type="text/css" _fcktemp="true">' ; 
    4139 
    4240                if ( FCKConfig.ShowBorders ) 
     
    4442 
    4543                // Disable resize handlers. 
    46                 sStyle += 'INPUT,TEXTAREA,SELECT,.FCK__Anchor,.FCK__PageBreak' ; 
     44                sStyle += 'INPUT,TEXTAREA,SELECT,.FCK__Anchor,.FCK__PageBreak,.FCK__InputHidden' ; 
    4745 
    4846                if ( FCKConfig.DisableObjectResizing ) 
  • FCKeditor/trunk/editor/_source/internals/fckdocumentprocessor.js

    r194 r202  
    222222        } 
    223223} 
     224 
     225// INPUT:hidden Processor. 
     226FCKDocumentProcessor.AppendNew().ProcessDocument = function( document ) 
     227{ 
     228        var aInputs = document.getElementsByTagName( 'INPUT' ) ; 
     229 
     230        var oInput ; 
     231        var i = aInputs.length - 1 ; 
     232        while ( i >= 0 && ( oInput = aInputs[i--] ) ) 
     233        { 
     234                if ( oInput.type == 'hidden' ) 
     235                { 
     236                        var oImg = FCKDocumentProcessor_CreateFakeImage( 'FCK__InputHidden', oInput.cloneNode(true) ) ; 
     237                        oImg.setAttribute( '_fckinputhidden', 'true', 0 ) ; 
     238 
     239                        oInput.parentNode.insertBefore( oImg, oInput ) ; 
     240                        oInput.parentNode.removeChild( oInput ) ; 
     241                } 
     242        } 
     243} 
  • FCKeditor/trunk/editor/css/fck_internal.css

    r132 r202  
    2626html 
    2727{ 
    28         min-height:100%; 
     28        min-height: 100%; 
    2929} 
    3030 
     
    7070        background-image: url(images/fck_anchor.gif); 
    7171        background-repeat: no-repeat; 
    72         padding-left:18px; 
     72        padding-left: 18px; 
    7373} 
    7474 
     
    8181        background-image: url(images/fck_anchor.gif); 
    8282        background-repeat: no-repeat; 
    83         padding-left:18px; 
     83        padding-left: 18px; 
    8484} 
    8585 
     
    100100} 
    101101 
    102 input[type="hidden"] 
     102/* Hidden fields */ 
     103.FCK__InputHidden 
    103104{ 
    104         display: inline; 
    105         width:20px; 
    106         height:20px; 
    107         border:1px dotted #FF0000 ; 
    108         background-image: url(behaviors/hiddenfield.gif); 
     105        width: 19px; 
     106        height: 18px; 
     107        background-image: url(images/fck_hiddenfield.gif); 
    109108        background-repeat: no-repeat; 
     109        vertical-align: text-bottom; 
     110        background-position: center center; 
    110111} 
    111  
    112 input[type="hidden"]:after 
    113 { 
    114         padding-left: 20px; 
    115         content: "" ; 
    116 } 
  • FCKeditor/trunk/editor/dialog/fck_hiddenfield.html

    r132 r202  
    2222 * Hidden Field dialog window. 
    2323--> 
    24 <html> 
    25         <head> 
    26                 <title>Hidden Field Properties</title> 
    27                 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    28                 <meta content="noindex, nofollow" name="robots"> 
    29                 <script src="common/fck_dialog_common.js" type="text/javascript"></script> 
    30                 <script type="text/javascript"> 
     24<html xmlns="http://www.w3.org/1999/xhtml"> 
     25<head> 
     26        <title>Hidden Field Properties</title> 
     27        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     28        <meta content="noindex, nofollow" name="robots" /> 
     29        <script src="common/fck_dialog_common.js" type="text/javascript"></script> 
     30        <script type="text/javascript"> 
    3131 
    3232var oEditor = window.parent.InnerDialogLoaded() ; 
     33var FCK = oEditor.FCK ; 
    3334 
    3435// Gets the document DOM 
    35 var oDOM = oEditor.FCK.EditorDocument ; 
     36var oDOM = FCK.EditorDocument ; 
    3637 
    37 var oActiveEl = oEditor.FCKSelection.GetSelectedElement() ; 
     38// Get the selected flash embed (if available). 
     39var oFakeImage = FCK.Selection.GetSelectedElement() ; 
     40var oActiveEl ; 
     41 
     42if ( oFakeImage ) 
     43{ 
     44        if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fckinputhidden') ) 
     45                oActiveEl = FCK.GetRealElement( oFakeImage ) ; 
     46        else 
     47                oFakeImage = null ; 
     48} 
    3849 
    3950window.onload = function() 
     
    4253        oEditor.FCKLanguageManager.TranslatePage(document) ; 
    4354 
    44         if ( oActiveEl && oActiveEl.tagName == 'INPUT' && oActiveEl.type == 'hidden' ) 
     55        if ( oActiveEl ) 
    4556        { 
    4657                GetE('txtName').value           = oActiveEl.name ; 
    4758                GetE('txtValue').value          = oActiveEl.value ; 
    4859        } 
    49         else 
    50                 oActiveEl = null ; 
    5160 
    5261        window.parent.SetOkButton( true ) ; 
     
    5867        if ( !oActiveEl ) 
    5968        { 
    60                 oActiveEl = oEditor.FCK.EditorDocument.createElement( 'INPUT' ) ; 
     69                oActiveEl = FCK.EditorDocument.createElement( 'INPUT' ) ; 
    6170                oActiveEl.type = 'hidden' ; 
    62                 oActiveEl = oEditor.FCK.InsertElementAndGetIt( oActiveEl ) ; 
     71 
     72                oFakeImage = null ; 
    6373        } 
    6474 
     
    6676        SetAttribute( oActiveEl, 'value', GetE('txtValue').value ) ; 
    6777 
     78        if ( !oFakeImage ) 
     79        { 
     80                oFakeImage      = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__InputHidden', oActiveEl ) ; 
     81                oFakeImage.setAttribute( '_fckinputhidden', 'true', 0 ) ; 
     82                oFakeImage      = FCK.InsertElementAndGetIt( oFakeImage ) ; 
     83        } 
     84        else 
     85                oEditor.FCKUndo.SaveUndoStep() ; 
     86 
     87        oEditor.FCKFlashProcessor.RefreshView( oFakeImage, oActiveEl ) ; 
     88 
    6889        return true ; 
    6990} 
    7091 
    71                 </script> 
    72         </head> 
    73         <body style="OVERFLOW: hidden" scroll="no"> 
    74                 <table height="100%" width="100%"> 
    75                         <tr> 
    76                                 <td align="center"> 
    77                                         <table border="0" class="inhoud" cellpadding="0" cellspacing="0" width="80%"> 
    78                                                 <tr> 
    79                                                         <td> 
    80                                                                 <span fckLang="DlgHiddenName">Name</span><br> 
    81                                                                 <input type="text" size="20" id="txtName" style="WIDTH: 100%"> 
    82                                                         </td> 
    83                                                 </tr> 
    84                                                 <tr> 
    85                                                         <td> 
    86                                                                 <span fckLang="DlgHiddenValue">Value</span><br> 
    87                                                                 <input type="text" size="30" id="txtValue" style="WIDTH: 100%"> 
    88                                                         </td> 
    89                                                 </tr> 
    90                                         </table> 
    91                                 </td> 
    92                         </tr> 
    93                 </table> 
    94         </body> 
     92        </script> 
     93</head> 
     94<body style="overflow: hidden" scroll="no"> 
     95        <table height="100%" width="100%"> 
     96                <tr> 
     97                        <td align="center"> 
     98                                <table border="0" class="inhoud" cellpadding="0" cellspacing="0" width="80%"> 
     99                                        <tr> 
     100                                                <td> 
     101                                                        <span fcklang="DlgHiddenName">Name</span><br /> 
     102                                                        <input type="text" size="20" id="txtName" style="width: 100%" /> 
     103                                                </td> 
     104                                        </tr> 
     105                                        <tr> 
     106                                                <td> 
     107                                                        <span fcklang="DlgHiddenValue">Value</span><br /> 
     108                                                        <input type="text" size="30" id="txtValue" style="width: 100%" /> 
     109                                                </td> 
     110                                        </tr> 
     111                                </table> 
     112                        </td> 
     113                </tr> 
     114        </table> 
     115</body> 
    95116</html> 
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy