]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 850135 - hide the textarea custom fields by default with an (edit) link
authorDave Lawrence <dlawrence@mozilla.com>
Fri, 10 May 2013 14:44:47 +0000 (10:44 -0400)
committerDave Lawrence <dlawrence@mozilla.com>
Fri, 10 May 2013 14:44:47 +0000 (10:44 -0400)
r=glob,a=LpSolit

js/field.js
skins/standard/global.css
template/en/default/bug/field.html.tmpl

index c0d0aaa6ee0dedef760513d744502edd522da580..900299ee0e8b5f9974fd4827e79fbd878e98dfa2 100644 (file)
@@ -214,14 +214,14 @@ function setupEditLink(id) {
 }
 
 /* Hide input/select fields and show the text with (edit) next to it */
-function hideEditableField( container, input, action, field_id, original_value, new_value ) {
+function hideEditableField( container, input, action, field_id, original_value, new_value, hide_input ) {
     YAHOO.util.Dom.removeClass(container, 'bz_default_hidden');
     YAHOO.util.Dom.addClass(input, 'bz_default_hidden');
     YAHOO.util.Event.addListener(action, 'click', showEditableField,
                                  new Array(container, input, field_id, new_value));
     if(field_id != ""){
         YAHOO.util.Event.addListener(window, 'load', checkForChangedFieldValues,
-                        new Array(container, input, field_id, original_value));
+                        new Array(container, input, field_id, original_value, hide_input ));
     }
 }
 
@@ -269,7 +269,7 @@ function showEditableField (e, ContainerInputArray) {
         }
         // focus on the first field, this makes it easier to edit
         inputs[0].focus();
-        if ( type == "input" ) {
+        if ( type == "input" || type == "textarea" ) {
             inputs[0].select();
         }
     }
@@ -293,8 +293,10 @@ function checkForChangedFieldValues(e, ContainerInputArray ) {
     var el = document.getElementById(ContainerInputArray[2]);
     var unhide = false;
     if ( el ) {
-        if ( el.value != ContainerInputArray[3] ||
-            ( el.value == "" && el.id != "alias" && el.id != 'qa_contact') ) {
+        if ( !ContainerInputArray[4]
+             && (el.value != ContainerInputArray[3]
+                 || (el.value == "" && el.id != "alias" && el.id != "qa_contact")) )
+        {
             unhide = true;
         }
         else {
@@ -303,7 +305,7 @@ function checkForChangedFieldValues(e, ContainerInputArray ) {
             if ( set_default ) {
                 if(set_default.checked){
                     unhide = true;
-                }              
+                }
             }
         }
     }
index 3ca350dba7058212c78b9467ae0a263b2d91f632..b1c9a7d07072b1fe1c470e2b9c6a1813a60d31f3 100644 (file)
@@ -520,8 +520,23 @@ input.required, select.required, span.required_explanation {
     list-style-type: none;
 }
 
+.field_textarea_readonly {
+    margin: 2px;
+    padding: 4px;
+    overflow: auto;
+    float: left;
+    max-width: 30em;
+    max-height: 7em;
+    border: 1px solid #CCC;
+}
+
+.field_textarea_readonly pre {
+    font-family: monospace;
+    white-space: pre-wrap;
+}
+
 /* custom styles for inline instances of autocomplete input fields */
-.yui-skin-sam .yui-ac-input { position:static !important; 
+.yui-skin-sam .yui-ac-input { position:static !important;
                               vertical-align:middle !important; }
 .yui-skin-sam .yui-ac-container { left:0px !important; }
 .yui-skin-sam .yui-ac { display: inline-block; }
index a77f9087cf96b9b2a2a990ffe5af0fef96197193..c086a04f7e7d8393e9c80e194c206716e518710d 100644 (file)
         </script>
 
      [% CASE constants.FIELD_TYPE_TEXTAREA %]
-       [% INCLUDE global/textarea.html.tmpl
-           id = field.name name = field.name minrows = 4 maxrows = 8
-           cols = 60 defaultcontent = value mandatory = field.is_mandatory %]
+       <div id="[% field.name FILTER html %]_edit_container" class="bz_default_hidden">
+         <div>
+             (<a href="#" id="[% field.name FILTER html %]_edit_action">edit</a>)
+         </div>
+         [% IF value %]
+           <div class="field_textarea_readonly">
+             <pre>[% value FILTER html %]</pre>
+           </div>
+         [% END %]
+       </div>
+       <div id="[% field.name FILTER html %]_input">
+         [% INCLUDE global/textarea.html.tmpl
+            id = field.name name = field.name minrows = 4 maxrows = 8
+            cols = 60 defaultcontent = value mandatory = field.is_mandatory %]
+       </div>
+       <script type="text/javascript">
+         hideEditableField('[% field.name FILTER js %]_edit_container',
+                           '[% field.name FILTER js %]_input',
+                           '[% field.name FILTER js %]_edit_action',
+                           '[% field.name FILTER js %]',
+                           '[% value FILTER js %]',
+                           '',
+                           true);
+       </script>
      [% CASE constants.FIELD_TYPE_BUG_URLS %]
        [% '<ul class="bug_urls">' IF value.size %]
        [% FOREACH bug_url = value %]