Changeset 200


Ignore:
Timestamp:
05/27/05 06:50:03 (10 years ago)
Author:
gocher
Message:

plugin Forms

textarea gets new attributes: wrap, readonly disabled, tabindex, accesskey

Location:
trunk/plugins/Forms
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/plugins/Forms/forms.js

    r199 r200  
    139139          var sel = editor._getSelection(); 
    140140          var range = editor._createRange(sel); 
    141           //see if selection is an form element 
     141          var tagName = ""; 
     142          // see if selection is an form element 
    142143          if (typeof node == "undefined") { 
    143144                  node = editor.getParentElement(); 
     
    150151                  type = node.tagName.toLowerCase(); 
    151152      outparam.f_name = node.name; 
    152       outparam.f_tagName = node.tagName;       
     153      tagName = node.tagName; 
    153154      if (type == "input") { 
    154155        outparam.f_type = node.type; 
     
    160161                                  outparam.f_rows = node.rows; 
    161162                                  outparam.f_value = node.innerHTML; 
     163          outparam.f_wrap = node.getAttribute("wrap"); 
     164          outparam.f_readonly = node.getAttribute("readonly"); 
     165          outparam.f_disabled = node.getAttribute("disabled"); 
     166          outparam.f_tabindex = node.getAttribute("tabindex"); 
     167          outparam.f_accesskey = node.getAttribute("accesskey"); 
    162168                            break; 
    163169        case "select": 
     
    197203                } else { 
    198204      outparam.f_name = ""; 
    199       outparam.f_tagName = ""; 
    200205      switch (button_id) { 
    201206        case "textarea": 
    202207        case "select": 
    203           outparam.f_tagName = button_id 
     208          tagName = button_id 
    204209          break; 
    205210        default: 
    206           outparam.f_tagName = "input"; 
     211          tagName = "input"; 
    207212          outparam.f_type = button_id; 
    208213          break; 
     
    218223                  outparam.f_src = ""; 
    219224                  outparam.f_onclick = ""; 
     225      outparam.f_wrap = ""; 
     226      outparam.f_readonly = "false"; 
     227      outparam.f_disabled = "false"; 
     228      outparam.f_tabindex = ""; 
     229      outparam.f_accesskey = ""; 
    220230          }; 
    221         editor._popupDialog("plugin://Forms/" + outparam.f_tagName + ".html", function(param) { 
     231        editor._popupDialog("plugin://Forms/" + tagName + ".html", function(param) { 
    222232                if (param) { 
    223233                        if(node) { 
    224234                            node.name = param["f_name"]; 
    225235                            if (type == "textarea") { 
    226                                     if (isNaN(parseInt(param["f_cols"],10)) || parseInt(param["f_cols"],10) <= 0) 
    227                                             node.removeAttribute("cols"); 
    228                                           else  
    229               node.setAttribute("cols", param["f_cols"]); 
    230                                     if(isNaN(parseInt(param["f_rows"],10)) || parseInt(param["f_rows"],10) <= 0) 
    231                                             node.removeAttribute("rows"); 
    232                                         else  
    233               node.setAttribute("rows", param["f_rows"]); 
    234                                     node.value = param["f_value"]; //for ta in editor 
    235                                     node.innerHTML = param["f_value"]; //for ta on web page 
     236            if (isNaN(parseInt(param["f_cols"],10)) || parseInt(param["f_cols"],10) <= 0) 
     237              param["f_cols"] = ""; 
     238            setAttr(node, "cols", param["f_cols"]); 
     239            if(isNaN(parseInt(param["f_rows"],10)) || parseInt(param["f_rows"],10) <= 0) 
     240              param["f_rows"] = ""; 
     241                                          setAttr(node, "rows", param["f_rows"]); 
     242                                    setAttr(node, "value", param["f_value"]); //for ta in editor 
     243            setAttr(node, "wrap", param["f_wrap"]); 
     244            setAttr(node, "tabindex", param["f_tabindex"]); 
     245            setAttr(node, "accesskey", param["f_accesskey"]); 
     246                                    setAttr(node, "readonly", param["f_readonly"]); 
     247            setAttr(node, "disabled", param["f_disabled"]); 
     248            node.innerHTML = param["f_value"]; //for ta on web page 
    236249                            } else if(type == "select") { 
    237250                                    node.requiredfield = param["f_requiredfield"]; 
     
    280293        } else { 
    281294                            if(type == "textarea") { 
    282                                     text = '<textarea name="' + param["f_name"] + '" ' + 
     295                                    text = '<textarea name="' + param["f_name"] + '"' + 
    283296                                                    ' cols="' + param["f_cols"] + '"' + 
    284                                                   ' rows="' + param["f_rows"] +'">' + 
    285                                           param["f_value"] + 
    286                                           '</textarea>'; 
     297                                                  ' rows="' + param["f_rows"] + '"'; 
     298            if (param["f_wrap"] != "") text += ' wrap="' + param["f_wrap"] + '"'; 
     299            if (param["f_tabindex"] != "") text += ' tabindex="' + param["f_tabindex"] + '"'; 
     300            if (param["f_accesskey"] != "") text += ' accesskey="' + param["f_accesskey"] + '"'; 
     301            if (param["f_readonly"] == true) text += ' readonly'; 
     302            if (param["disabled"] == true) text += ' disabled'; 
     303            text += '>' + param["f_value"] + '</textarea>'; 
    287304                            } else if(type == "select") { 
    288305                                    text = '<select name="'+param["f_name"]+'"'; 
  • trunk/plugins/Forms/popups/form.html

    r199 r200  
    77 
    88<script type="text/javascript"> 
     9 
     10var fields = ["f_name", "f_action", "f_method", "f_enctype", "f_target"]; 
     11 
    912function Init() { 
    1013  window.resizeTo(400, 170); 
     
    1215        __dlg_init(); 
    1316  var param = window.dialogArguments; 
    14   document.getElementById("f_name").value = param.f_name; 
    15   document.getElementById("f_action").value = param.f_action; 
    16   document.getElementById("f_method").value = param.f_method; 
    17   document.getElementById("f_enctype").value = param.f_enctype; 
    18   document.getElementById("f_target").value = param.f_target; 
     17  for (var i in fields) { 
     18    document.getElementById(fields[i]).value = param[fields[i]]; 
     19  } 
    1920        document.getElementById("f_name").focus(); 
    2021}; 
     
    3334  } 
    3435  // pass data back to the calling window 
    35   var fields = ["f_name", "f_action", "f_method", "f_enctype", "f_target"]; 
    3636  var param = new Object(); 
    3737  for (var i in fields) { 
    38     var id = fields[i]; 
    39         var el = document.getElementById(id); 
    40     param[id] = el.value; 
     38    param[fields[i]] = document.getElementById(fields[i]).value; 
    4139  } 
    4240  __dlg_close(param); 
  • trunk/plugins/Forms/popups/input.html

    r191 r200  
    88<script type="text/javascript"> 
    99var type; 
    10 var tagName; 
    1110function Init() { 
    1211  __dlg_translate("Forms"); 
     
    1413        var param = window.dialogArguments; 
    1514  type = param.f_type; 
    16   tagName = param.f_tagName; 
    1715  height = 230; 
    1816  var d = document; 
     
    3432                case "checkbox": 
    3533                case "radio":  
    36       d.getElementById("f_checked").checked =param.f_checked;    
     34      d.getElementById("f_checked").checked = param.f_checked; 
    3735      d.getElementById("chk").style.display = "block"; 
    3836      break; 
  • trunk/plugins/Forms/popups/textarea.html

    r191 r200  
    77 
    88<script type="text/javascript"> 
    9 var type; 
     9 
     10var fields = ["f_name", "f_value", "f_cols", "f_rows", "f_wrap", "f_tabindex", "f_accesskey", "f_readonly", "f_disabled"]; 
     11 
    1012function Init() { 
     13  window.resizeTo(480,260); 
    1114  __dlg_translate("Forms"); 
    1215        __dlg_init(); 
    1316        var param = window.dialogArguments; 
    14   type = param.f_type; 
    15   var d = document; 
    16   d.getElementById("f_name").value = param.f_name; 
    17         d.getElementById("f_value").value = param.f_value; 
    18         d.getElementById("f_cols").value = param.f_cols; 
    19         d.getElementById("f_rows").value = param.f_rows; 
    20         window.resizeTo(280,260); 
    21         d.getElementById("f_name").focus(); 
     17  for (var i in fields) { 
     18    switch (fields[i]) {  
     19    case "f_readonly":  
     20    case "f_disabled": 
     21      document.getElementById(fields[i]).checked = param[fields[i]]; break; 
     22    default: 
     23      document.getElementById(fields[i]).value = param[fields[i]]; break; 
     24    } 
     25  } 
     26  document.getElementById("f_name").focus(); 
    2227}; 
    2328 
     
    3035          return false; 
    3136        } 
    32         var param = new Object(); 
    33   param["f_type"] = type; 
    34   param["f_name"] = d.getElementById("f_name").value; 
    35         param["f_cols"] = d.getElementById("f_cols").value; 
    36   param["f_rows"] = d.getElementById("f_rows").value; 
    37   param["f_value"] = d.getElementById("f_value").value; 
     37  // pass data back to the calling window 
     38  var param = new Object(); 
     39  for (var i in fields) { 
     40    switch (fields[i]) {  
     41    case "f_readonly":  
     42    case "f_disabled": 
     43      param[fields[i]] = document.getElementById(fields[i]).checked; break; 
     44    default: 
     45      param[fields[i]] = document.getElementById(fields[i]).value; break; 
     46    } 
     47  } 
    3848  __dlg_close(param); 
    3949  return false; 
     
    4555}; 
    4656</script> 
    47 <style rel="stylesheet" type="text/css"> 
    48 DIV.line        {       clear: both;    } 
    49  
    50 LABEL   { 
    51         padding-top: 3px; 
    52         padding-left: 3px;               
    53         padding-right: 3px;      
    54         } 
    55          
    56 LABEL.label     { 
    57         float: left; 
    58         width: 8em; 
    59         text-align: right; 
    60         }        
    61 </style>  
    6257</head> 
    6358 
     
    6560<div id="f_type" class="title">Form Element: TEXTAREA</div> 
    6661<form action="" method="get"> 
    67   <div class="line"><label class="label" for="name">Name/ID:</label> 
    68   <input type="text" name="name" id="f_name" title="name of the textarea" /></div> 
    69   <div class="space"></div> 
     62  <div class="fr">Name/ID:</div> 
     63  <input type="text" name="name" id="f_name" title="name of the textarea" /> 
     64  <p /> 
    7065  <fieldset> 
    7166        <legend>Dimensions</legend> 
    72     <div class="line"><label class="label" for="cols">Columns:</label> 
    73     <input type="text" name="cols" id="f_cols" size="5" title="Width in number of characters" /></div> 
    74     <div class="line"><label class="label" for="rows">Rows:</label> 
    75                 <input type="text" name="rows" id="f_rows" size="5" title="Height in number of rows" /></div> 
     67    <div class="fr">Columns:</div> 
     68    <input type="text" name="cols" id="f_cols" size="5" title="Width in number of characters" /> 
     69    <p /> 
     70    <div class="fr">Rows:</div> 
     71                <input type="text" name="rows" id="f_rows" size="5" title="Height in number of rows" /> 
     72    <p /> 
    7673        </fieldset> 
    7774  <div class="space"></div> 
    78   <div class="line"><label class="label" for="name">Default contents:</label> 
    79   <input type="text" name="value" id="f_value" title="Default text (optional)" /></div>    
     75  <div class="fr">Wrap Mode:</div> 
     76  <select name="wrap" id="f_wrap"> 
     77    <option value=""></option> 
     78    <option value="off">Off</option> 
     79    <option value="soft">Soft</option> 
     80    <option value="hard">Hard</option> 
     81    <option value="physical">Physical</option> 
     82    <option value="virtual">Virtual</option> 
     83    <option value="normal">normal</option> 
     84    <option value="nowrap">nowrap</option> 
     85    <option value="pre">pre</option>     
     86  </select> 
     87  <p /> 
     88  <div class="fr">Read Only</div> 
     89  <input type="checkbox" name="readonly" id="f_readonly" value="readonly" /> 
     90  <p /> 
     91  <div class="fr">Disabled</div> 
     92  <input type="checkbox" name="disabled" id="f_disabled" value="disabled" /> 
     93  <p /> 
     94  <div class="fr">Tab Index:</div> 
     95  <input type="text" name="tabindex" id="f_tabindex" /> 
     96  <p /> 
     97  <div class="fr">Access Key:</div> 
     98  <input type="text" name="accesskey" id="f_accesskey" /> 
     99  <p /> 
     100   
     101  <div class="fr">Initial Text:</div> 
     102  <input type="text" name="value" id="f_value" title="Default text (optional)" /> 
    80103  <div id="buttons"> 
    81104    <button type="button" name="ok" onclick="return onOK();">OK</button> 
Note: See TracChangeset for help on using the changeset viewer.