[Rt-commit] r3808 - in rt/branches/3.5-TESTING: . etc/upgrade/QUEBEC html html/Admin/CustomFields html/Admin/Elements html/Elements html/NoAuth html/Search html/Search/Elements html/Ticket html/Ticket/Elements html/Tools/Reports lib/RT/I18N

jesse at bestpractical.com jesse at bestpractical.com
Fri Sep 2 12:43:51 EDT 2005


Author: jesse
Date: Fri Sep  2 12:43:47 2005
New Revision: 3808

Added:
   rt/branches/3.5-TESTING/etc/upgrade/QUEBEC/
   rt/branches/3.5-TESTING/etc/upgrade/QUEBEC/content
   rt/branches/3.5-TESTING/html/CalPopup.html
   rt/branches/3.5-TESTING/html/NoAuth/cascaded.js
   rt/branches/3.5-TESTING/html/NoAuth/class.js
   rt/branches/3.5-TESTING/html/NoAuth/combobox.js
   rt/branches/3.5-TESTING/html/NoAuth/list.js
   rt/branches/3.5-TESTING/html/rt.js
Modified:
   rt/branches/3.5-TESTING/   (props changed)
   rt/branches/3.5-TESTING/html/Admin/CustomFields/index.html
   rt/branches/3.5-TESTING/html/Admin/Elements/AddCustomFieldValue
   rt/branches/3.5-TESTING/html/Admin/Elements/PickObjects
   rt/branches/3.5-TESTING/html/Elements/MyRT
   rt/branches/3.5-TESTING/html/Search/Bulk.html
   rt/branches/3.5-TESTING/html/Search/Elements/PickBasics
   rt/branches/3.5-TESTING/html/Search/Results.html
   rt/branches/3.5-TESTING/html/Ticket/Elements/EditBasics
   rt/branches/3.5-TESTING/html/Ticket/Elements/ShowSummary
   rt/branches/3.5-TESTING/html/Ticket/Reminders.html
   rt/branches/3.5-TESTING/html/Tools/Reports/index.html
   rt/branches/3.5-TESTING/lib/RT/I18N/fr.po
Log:
 r14085 at hualien:  jesse | 2005-08-30 05:59:38 -0400
  r14057 at hualien:  jesse | 2005-08-30 05:48:48 -0400
   r13699 at hualien:  jesse | 2005-08-22 14:46:07 -0400
    r13255 at hualien (orig r3700):  trs | 2005-08-18 22:39:02 -0400
     r6002 at wintermute:  tom | 2005-08-18 22:37:53 -0400
     Fixed typo
    
   
  
 


Added: rt/branches/3.5-TESTING/etc/upgrade/QUEBEC/content
==============================================================================
--- (empty file)
+++ rt/branches/3.5-TESTING/etc/upgrade/QUEBEC/content	Fri Sep  2 12:43:47 2005
@@ -0,0 +1,36 @@
+ at Attributes = (
+    { Name => 'Search - My Tickets',
+      Description => '[_1] highest priority tickets I own',
+      Content     =>
+      { Format => "'<a href=\"__WebPath__/Ticket/Display.html?id=__id__\">__id__</a>/TITLE:#', '<a href=\"$RT::WebPath/Ticket/Display.html?id=__id__\">__Subject__</a>/TITLE:Subject', Priority, QueueName, ExtendedStatus",
+        Query   => " Owner = '__CurrentUser__' AND ( Status = 'new' OR Status = 'open')",
+        OrderBy => 'Priority',
+        Order   => 'DESC' },
+    },
+    { Name => 'Search - Unowned Tickets',
+      Description => '[_1] newest unowned tickets',
+      Content     =>
+      { Format => "'<a href=\"__WebPath__/Ticket/Display.html?id=__id__\">__id__</a>/TITLE:#', '<a href=\"__WebPath__/Ticket/Display.html?id=__id__\">__Subject__</a>/TITLE:Subject', QueueName, ExtendedStatus, CreatedRelative, '<A HREF=\"__WebPath__/Ticket/Display.html?Action=Take&id=__id__\">__loc(Take)__</a>/TITLE:&nbsp;' ",
+        Query   => " Owner = 'Nobody' AND ( Status = 'new' OR Status = 'open')",
+        OrderBy => 'Created',
+        Order   => 'DESC' },
+    },
+    { Name => 'HomepageSettings',
+      Description => 'HomepageSettings',
+      Content =>
+      { 'body' =>
+	[ { type => 'system', name => 'My Tickets' },
+	  { type => 'system', name => 'Unowned Tickets' },
+	  { type => 'component',  name => 'QuickCreate'},
+	],
+        'summary' =>
+	[ 
+	  { type => 'component', name => 'MyReminders' },
+          { type => 'component', name => 'Quicksearch' },
+	  { type => 'component', name => 'RefreshHomepage' },
+	]
+    },
+}
+);
+
+1;

Modified: rt/branches/3.5-TESTING/html/Admin/CustomFields/index.html
==============================================================================
--- rt/branches/3.5-TESTING/html/Admin/CustomFields/index.html	(original)
+++ rt/branches/3.5-TESTING/html/Admin/CustomFields/index.html	Fri Sep  2 12:43:47 2005
@@ -77,7 +77,7 @@
 % for (@types) {
 <option value="<% $_->[1] %>"><% $_->[0] %></option>
 % }
-</select> <input type="submit" class="button" value="<%loc('Go')%>" />
+</select> <input type="submit" value="<%loc('Go')%>" />
 </form>
 
 <%args>

Modified: rt/branches/3.5-TESTING/html/Admin/Elements/AddCustomFieldValue
==============================================================================
--- rt/branches/3.5-TESTING/html/Admin/Elements/AddCustomFieldValue	(original)
+++ rt/branches/3.5-TESTING/html/Admin/Elements/AddCustomFieldValue	Fri Sep  2 12:43:47 2005
@@ -59,6 +59,11 @@
 </TD>
 % if ($CustomField->Type ne 'Combobox') {
 <TD><small>
+<&|/l&>Description</&>:<br>
+<input type="text" size=50 name="CustomField-<%$CustomField->Id%>-Value-new-Description">
+</TD>
+% if ($CustomField->Type ne 'Combobox') {
+<TD><small>
 <&|/l&>Category</&>:<br>
 <input type="text" size=10 name="CustomField-<%$CustomField->Id%>-Value-new-Category">
 </TD>

Modified: rt/branches/3.5-TESTING/html/Admin/Elements/PickObjects
==============================================================================
--- rt/branches/3.5-TESTING/html/Admin/Elements/PickObjects	(original)
+++ rt/branches/3.5-TESTING/html/Admin/Elements/PickObjects	Fri Sep  2 12:43:47 2005
@@ -51,14 +51,16 @@
 % foreach my $Object (@Objects) {
 <tr>
 %   my $id = "Object-".$Object->id."-CF-".$id;
+%   my $id = "Object-".$Object->id."-CF-".$id;
 %   if (!$ReadOnly) {
-  <td valign="TOP">
-<input type="checkbox" class="checkbox" id="<% $id %>" name="<% $id %>" value="1" <% $Checked ? 'CHECKED' : ''%>
+  <TD valign="TOP">
+<input type="checkbox" id="<% $id %>" name="<% $id %>" value="1" <% $Checked ? 'CHECKED' : ''%>
 >
   </td>
 %   }
   <td valign="TOP">
     <label for="<% $id %>">
+    <label for="<% $id %>">
 % if ($Object->Name) {
     <b><%$Object->Name%></b><br>
 % } else {
@@ -66,8 +68,8 @@
 % }
     <%$Object->can('Description') && $Object->Description%>
     </label>
-  </td>
-%#  <td valign="TOP">
+  </TD>
+%#  <TD valign="TOP">
 %#    <i><% $CustomFieldObj->FriendlyTypeComposite %></i>
 %#  </td>
   </td>

Added: rt/branches/3.5-TESTING/html/CalPopup.html
==============================================================================
--- (empty file)
+++ rt/branches/3.5-TESTING/html/CalPopup.html	Fri Sep  2 12:43:47 2005
@@ -0,0 +1,83 @@
+<& /Elements/Header &>
+<script>
+function updateParent(strItem) {
+    window.opener.document.getElementById('<%$field%>').value = strItem;
+    window.close();
+}
+</script>
+<a href="javascript: window.close();">close window</a>
+<br><br>
+<div align="center">
+<div class="table-wrapper">
+<table>
+  <caption><%$months[$DisplayedMonth]%> <%$DisplayedYear%></caption>
+  <tr>
+% foreach my $wday (@weekdays) {
+    <th><%$wday%></th>
+% }
+  </tr>
+% foreach my $week (@cal) {
+  <tr>
+%     foreach my $day (@{$week}) {
+    <td>
+%         if ($day) {
+%             my $datestr = sprintf('%04d-%02d-%02d', $DisplayedYear, $DisplayedMonth+1, $day);
+      <dt><a href="javascript: updateParent('<%$datestr%>')"><%$day%></a></dt>
+%         }
+    </td>
+%     } #foreach $day
+  </tr>
+% } # foreach $week
+  <tr>
+  <td colspan="2"><a href="CalPopup.html?DisplayedMonth=<%$prev_month%>&DisplayedYear=<%$prev_year%>&field=<%$field%>">Previous</a></td>
+    <td colspan="3">&nbsp;</td>
+    <td colspan="2"><a href="CalPopup.html?DisplayedMonth=<%$next_month%>&DisplayedYear=<%$next_year%>&field=<%$field%>">Next</a></td>
+</table>
+</div>
+</div>
+
+<%init>
+use Calendar::Simple;
+my @today = localtime(time());
+
+my @weekdays = (loc('Sun'), loc('Mon'), loc('Tue'), loc('Wed'), loc('Thu'), 
+		loc('Fri'), loc('Sat'));
+my @months = (loc('January'), loc('February'), loc('March'), loc('April'), 
+	      loc('May'), loc('June'), loc('July'), loc('August'), 
+	      loc('September'), loc('October'), loc('November'), 
+              loc('December'));
+
+unless ($DisplayedYear) {
+              $DisplayedMonth = $today[4];
+              $DisplayedYear = ($today[5] + 1900);
+}              
+
+my ($prev_year, $next_year, $prev_month, $next_month);
+$prev_month = $next_month = $DisplayedMonth;
+$prev_year = $next_year = $DisplayedYear;
+
+$next_month++;
+$prev_month--;
+
+if ($DisplayedMonth == 11) {
+    $next_year++;
+    $next_month = 0;
+    } 
+elsif ($DisplayedMonth == 0) {
+        $prev_month = 11;
+        $prev_year--;
+
+
+    }
+
+
+
+
+my @cal = calendar($DisplayedMonth+1, $DisplayedYear);
+
+</%init>
+<%args>
+$field => 'none'
+$DisplayedMonth => undef
+$DisplayedYear => undef
+</%args>

Modified: rt/branches/3.5-TESTING/html/Elements/MyRT
==============================================================================
--- rt/branches/3.5-TESTING/html/Elements/MyRT	(original)
+++ rt/branches/3.5-TESTING/html/Elements/MyRT	Fri Sep  2 12:43:47 2005
@@ -97,4 +97,4 @@
     }
 }
 
-</%INIT>
\ No newline at end of file
+</%INIT>==== ORIGINAL VERSION html/Elements/MyRT 112539663870187

Added: rt/branches/3.5-TESTING/html/NoAuth/cascaded.js
==============================================================================
--- (empty file)
+++ rt/branches/3.5-TESTING/html/NoAuth/cascaded.js	Fri Sep  2 12:43:47 2005
@@ -0,0 +1,19 @@
+function filter_cascade (id, val) {
+    var select = document.getElementById(id);
+    if (!select) { return };
+    var i;
+    var children = select.childNodes;
+    for (i in children) {
+        var style = children[i].style;
+        if (!style) { continue };
+        if (val == '') {
+            style.display = 'block';
+            continue;
+        }
+        if (children[i].label.substr(0, val.length) == val) {
+            style.display = 'block';
+            continue;
+        }
+        style.display = 'none';
+    }
+}

Added: rt/branches/3.5-TESTING/html/NoAuth/class.js
==============================================================================
--- (empty file)
+++ rt/branches/3.5-TESTING/html/NoAuth/class.js	Fri Sep  2 12:43:47 2005
@@ -0,0 +1,15 @@
+/* by TKirby, released under GPL */
+
+ function _ClassSetup(Object) {
+  this.prototype	= Object;
+  return this;
+ }
+ 
+ function Class(name) {
+  var _newclass_;
+  eval("window."+name+"	= new Function('this."+name+".apply(this,arguments);');");
+  eval("window."+name+".define = _ClassSetup;");
+  eval("_newclass_ = window."+name+";");
+  return _newclass_;
+ }
+

Added: rt/branches/3.5-TESTING/html/NoAuth/combobox.js
==============================================================================
--- (empty file)
+++ rt/branches/3.5-TESTING/html/NoAuth/combobox.js	Fri Sep  2 12:43:47 2005
@@ -0,0 +1,246 @@
+function ComboBox_InitWith(n) {
+    if ( typeof( window.addEventListener ) != "undefined" ) {
+        window.addEventListener("load", ComboBox_Init(n), false);
+    } else if ( typeof( window.attachEvent ) != "undefined" ) {
+        window.attachEvent("onload", ComboBox_Init(n));
+    } else {
+        ComboBox_Init(n)();
+    }
+}
+function ComboBox_Init(n) {
+    return function () {
+        if ( ComboBox_UplevelBrowser( n ) ) {
+            ComboBox_Load( n );
+        }
+    }
+}
+function ComboBox_UplevelBrowser( n ) {
+    if( typeof( document.getElementById ) == "undefined" ) return false;
+    var combo = document.getElementById( n + "_Container" );
+    if( combo == null || typeof( combo ) == "undefined" ) return false;
+    if( typeof( combo.style ) == "undefined" ) return false;
+    if( typeof( combo.innerHTML ) == "undefined" ) return false;
+    return true;
+}
+function ComboBox_Load( comboId ) {
+    var combo  = document.getElementById( comboId + "_Container" );
+    var button = document.getElementById( comboId + "_Button" );
+    var list   = document.getElementById( comboId + "_List" );
+    var text   = document.getElementById( comboId );
+    
+    
+    combo.List = list;
+    combo.Button = button;
+    combo.Text = text;
+    combo.style.border = "2px inset ButtonFace";
+    combo.style.padding = "0px";
+    combo.style.margin = "0px";
+    
+    button.Container = combo;
+    button.Toggle = ComboBox_ToggleList;
+    button.onclick = button.Toggle;
+    button.onmouseover = function(e) { this.Container.List.DisableBlur(e); };
+    button.onmouseout = function(e) { this.Container.List.EnableBlur(e); };
+    button.style.padding = "0px";
+    button.style.margin = "0px";
+    button.style.background = "ButtonFace";
+    button.style.color = "ButtonText";
+    button.style.borderLeft = "1px outset ButtonFace";
+    button.style.cursor = "default";
+    button.style.fontSize = "8pt";
+    button.innerHTML = "\u25BC";
+    button.onselectstart = function(e){ return false; };
+    
+    text.Container = combo;
+    text.TypeDown = ComboBox_TextTypeDown;
+    text.KeyAccess = ComboBox_TextKeyAccess;
+    text.onkeyup = function(e) { this.KeyAccess(e); this.TypeDown(e); };
+    text.style.border = "none";
+    text.style.margin = "0px";
+    text.style.padding = "0px";
+    text.style.width = ( list.offsetWidth ) + "px";
+    
+    list.Container = combo;
+    list.Show = ComboBox_ShowList;
+    list.Hide = ComboBox_HideList;
+    list.EnableBlur = ComboBox_ListEnableBlur;
+    list.DisableBlur = ComboBox_ListDisableBlur;
+    list.Select = ComboBox_ListItemSelect;
+    list.ClearSelection = ComboBox_ListClearSelection;
+    list.KeyAccess = ComboBox_ListKeyAccess;
+    list.FireTextChange = ComboBox_ListFireTextChange;
+    list.onchange = null;
+    list.onclick = function(e){ this.Select(e); this.ClearSelection(); this.FireTextChange(); };
+    list.onkeyup = function(e) { this.KeyAccess(e); };
+    list.EnableBlur(null);
+    list.style.position = "absolute";
+    list.style.zIndex = 200;
+    list.size = ComboBox_GetListSize( list );
+    list.IsShowing = true;
+    list.Hide();
+    
+}
+function ComboBox_InitEvent( e ) {
+    if( typeof( e ) == "undefined" && typeof( window.event ) != "undefined" ) e = window.event;
+    if( e == null ) e = new Object();
+    return e;
+}
+function ComboBox_ListClearSelection() {
+            if ( typeof( this.Container.Text.createTextRange ) == "undefined" ) return;
+    var rNew = this.Container.Text.createTextRange();
+    rNew.moveStart('character', this.Container.Text.value.length) ;
+    rNew.select();
+}
+function ComboBox_GetListSize( theList ) {
+    ComboBox_EnsureListSize( theList );
+    return theList.listSize;
+}
+function ComboBox_EnsureListSize( theList ) {
+    if ( typeof( theList.listSize ) == "undefined" ) {
+        if( typeof( theList.getAttribute ) != "undefined" ) {
+            if( theList.getAttribute( "listSize" ) != null && theList.getAttribute( "listSize" ) != "" ) {
+                theList.listSize = theList.getAttribute( "listSize" );
+                return;
+            }
+        }
+        if( theList.options.length > 0 ) {
+            theList.listSize = theList.options.length;
+            return;
+        }
+        theList.listSize = 4;
+    }
+}
+function ComboBox_ListKeyAccess(e) { //Make enter/space and escape do the right thing :)
+    e = ComboBox_InitEvent( e );
+    if( e.keyCode == 13 || e.keyCode == 32 ) {
+        this.Select();
+        return;
+    }
+    if( e.keyCode == 27 ) {
+        this.Hide();
+        this.Container.Text.focus();
+        return;
+    }
+}
+function ComboBox_TextKeyAccess(e) { //Make alt+arrow expand the list
+    e = ComboBox_InitEvent( e );
+    if( e.altKey && (e.keyCode == 38 || e.keyCode == 40) ) {
+            this.Container.List.Show();
+    }
+}
+function ComboBox_TextTypeDown(e) { //Make the textbox do a type-down on the list
+    e = ComboBox_InitEvent( e );
+    var items = this.Container.List.options;
+    if( this.value == "" ) return;
+    var ctrlKeys = Array( 8, 46, 37, 38, 39, 40, 33, 34, 35, 36, 45, 16, 20 );
+    for( var i = 0; i < ctrlKeys.length; i++ ) {
+        if( e.keyCode == ctrlKeys[i] ) return;
+    }
+    for( var i = 0; i < items.length; i++ ) {
+        var item = items[i];
+        if( item.text.toLowerCase().indexOf( this.value.toLowerCase() ) == 0 ) {
+            this.Container.List.selectedIndex = i;
+            if ( typeof( this.Container.Text.createTextRange ) != "undefined" ) {
+                                    this.Container.List.Select();
+                            }
+            break;
+        }
+    }
+}
+function ComboBox_ListFireTextChange() {
+    var textOnChange = this.Container.Text.onchange;
+            if ( textOnChange != null && typeof(textOnChange) == "function" ) {
+                    textOnChange();
+            }
+}
+function ComboBox_ListEnableBlur(e) {
+    this.onblur = this.Hide;
+}
+function ComboBox_ListDisableBlur(e) {
+    this.onblur = null;
+}
+function ComboBox_ListItemSelect(e) {
+    if( this.options.length > 0 ) {
+        var text = this.Container.Text;
+        var oldValue = text.value;
+        var newValue = this.options[ this.selectedIndex ].text;
+        text.value = newValue;
+        if ( typeof( text.createTextRange ) != "undefined" ) {
+            if (newValue != oldValue) {
+                var rNew = text.createTextRange();
+                rNew.moveStart('character', oldValue.length) ;
+                rNew.select();
+            }
+        }
+    }
+    this.Hide();
+    this.Container.Text.focus();
+}
+function ComboBox_ToggleList(e) {
+    if( this.Container.List.IsShowing == true ) {
+        this.Container.List.Hide();
+    } else {
+        this.Container.List.Show();
+    }
+}
+function ComboBox_ShowList(e) {
+    if ( !this.IsShowing && !this.disabled ) {
+        this.style.width = ( this.Container.offsetWidth ) + "px";
+        this.style.top = ( this.Container.offsetHeight + ComboBox_RecursiveOffsetTop(this.Container,true) ) + "px";
+        this.style.left = ( ComboBox_RecursiveOffsetLeft(this.Container,true) ) + "px";
+        ComboBox_SetVisibility(this,true);
+        this.focus();
+        this.IsShowing = true;
+    }
+}
+function ComboBox_HideList(e) {
+    if( this.IsShowing ) {
+                    ComboBox_SetVisibility(this,false);
+        this.IsShowing = false;
+    }
+}
+function ComboBox_SetVisibility(theList,isVisible) {
+    var isIE = ( typeof( theList.dataSrc ) != "undefined" ); // dataSrc is an IE-only property which is unlikely to be supported elsewhere
+    var ua = navigator.userAgent.toLowerCase(); 
+    var isSafari = (ua.indexOf('safari') != - 1);
+    if ( isIE || isSafari) {
+        if ( isVisible ) {
+            theList.style.visibility = "visible";
+        } else {
+            theList.style.visibility = "hidden";
+        }
+    } else { 
+        if ( isVisible ) {
+            theList.style.display = "block";
+        } else {
+            theList.style.display = "none";
+        }
+    }
+}
+function ComboBox_RecursiveOffsetTop(thisObject,isFirst) {
+    if(thisObject.offsetParent) {
+        if ( thisObject.style.position == "absolute" && !isFirst && typeof(document.designMode) != "undefined" ) {
+            return 0;
+        }
+        return (thisObject.offsetTop + ComboBox_RecursiveOffsetTop(thisObject.offsetParent,false));
+    } else {
+        return thisObject.offsetTop;
+    }
+}
+function ComboBox_RecursiveOffsetLeft(thisObject,isFirst) {
+    if(thisObject.offsetParent) {
+        if ( thisObject.style.position == "absolute" && !isFirst && typeof(document.designMode) != "undefined" ) {
+            return 0;
+        }
+        return (thisObject.offsetLeft + ComboBox_RecursiveOffsetLeft(thisObject.offsetParent,false));
+    } else {
+        return thisObject.offsetLeft;
+    }
+}
+function ComboBox_SimpleAttach(selectElement,textElement) {
+    textElement.value = selectElement.options[ selectElement.options.selectedIndex ].text;
+    var textOnChange = textElement.onchange;
+    if ( textOnChange != null && typeof( textOnChange ) == "function" ) {
+        textOnChange();
+    }
+}

Added: rt/branches/3.5-TESTING/html/NoAuth/list.js
==============================================================================
--- (empty file)
+++ rt/branches/3.5-TESTING/html/NoAuth/list.js	Fri Sep  2 12:43:47 2005
@@ -0,0 +1,112 @@
+/* by TKirby, released under GPL */
+/* Define the "list" Class */
+Class("list").define({
+ name : null,
+ xml  : null,
+ sels : null,
+ list : function (src, esrc, name) { this.init(src, esrc, name); },
+ read : function () {
+     var i		= 0;
+     if(this.xml.readyState!=4) { setTimeout(this.name+".read()", 100); }
+     else if(this.xml.status!=200) alert("Document not available.");
+     else {
+	 var doc	= this.xml.responseXML;
+	 var nNode	= null;
+	 if(doc.childNodes[0].nodeName=="parseerror") alert("Parse Error.");
+	 doc		= doc.getElementsByTagName("list")[0];
+	 for(i=0;i<doc.childNodes.length;i++) {
+	     if(doc.childNodes[i].childNodes.length>0) {
+		 nNode	= document.createElement("option");
+		 nNode.appendChild(document.createTextNode(doc.childNodes[i].childNodes[0].nodeValue));
+		 this.sels[0].appendChild(nNode);
+	     }
+	 }
+     }
+ },
+     
+ init : function (src,esrc,name) {
+     if(!src) return;
+     this.name		= name;
+     this.sels		= new Array();
+     var i			= 0;
+     for(i=0;i<src.childNodes.length;i++) {
+	 if(src.childNodes[i].nodeName=="select" || src.childNodes[i].nodeName=="SELECT") {
+	     this.sels.push(src.childNodes[i]);
+	 } 
+
+	 if((src.childNodes[i].nodeName=="input" || src.childNodes[i].nodeName=="INPUT")
+	    && (src.childNodes[i].name=="fromjs")) {
+	     src.childNodes[i].value = 1;
+	 }
+
+	 if((src.childNodes[i].nodeName=="input" || src.childNodes[i].nodeName=="INPUT")
+	    && (src.childNodes[i].type=="submit" || src.childNodes[i].type=="SUBMIT")) {
+
+	     if (src.childNodes[i].name.indexOf("Save") < 0) {
+		 var tmp	= document.createElement("input");
+		 tmp.type	= "button";
+		 tmp.name	= src.childNodes[i].name;
+		 tmp.value	= src.childNodes[i].value;
+		 src.replaceChild(tmp,src.childNodes[i]);
+	     }
+
+	     if(src.childNodes[i].name=="add")
+		 src.childNodes[i].onclick = new Function(this.name+".add();");
+	     if(src.childNodes[i].name=="remove") 
+		 src.childNodes[i].onclick = new Function(this.name+".remove();");
+	     if(src.childNodes[i].name=="moveup") 
+		 src.childNodes[i].onclick = new Function(this.name+".moveup();");
+	     if(src.childNodes[i].name=="movedown") 
+		 src.childNodes[i].onclick = new Function(this.name+".movedown();");
+	 } 
+     }
+     if (esrc) {
+	 this.xml	= (window.navigator.appName!="Microsoft Internet Explorer"
+			   ?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP"));
+	 this.xml.open("GET", esrc);
+	 this.xml.send("");
+	 setTimeout(this.name+".read()", 100);
+     }
+ },
+     
+ add : function() {
+     var i, j 	= 0;
+     var dNode	= null;
+     for(i=0;i<this.sels[0].length;i++) if(this.sels[0][i].selected) {
+	 for(j=0;j<this.sels[1].length;j++) if(this.sels[1][j].value==this.sels[0][i].value) break;
+	 if(j==this.sels[1].length) dNode	= this.sels[0][i].cloneNode(true), 
+					this.sels[1].appendChild(dNode);
+     }
+ },
+
+ moveup : function() { this.move(-1); },
+ movedown : function() { this.move(1); },
+ move : function(v) {
+  var i		= 0;
+  if(v<0) for(i=0;i<this.sels[1].length;i++) this.moveOne(v, i);
+  else if(v>0) for(i=this.sels[1].length-1;i>=0;i--)this.moveOne(v, i);
+ },
+
+ moveOne : function(v, i) {
+  var ins	= v + i;
+  if(ins<0 || ins>=this.sels[1].length) return;
+  if(this.sels[1][ins].selected) return;
+  if(this.sels[1][i].selected) {
+   Node		= this.sels[1][i];
+   this.sels[1].removeChild(Node);
+   this.sels[1].insertBefore(Node, this.sels[1][ins]);
+  }
+ },
+
+ remove : function() {
+  var i		= 0;
+  for(i=this.sels[1].length-1;i>=0;i--) if(this.sels[1][i].selected) 
+   this.sels[1].removeChild(this.sels[1][i]);
+ },
+
+ selectAll: function() {
+  var i		= 0;
+  for(i=0;i<this.sels[0].length;i++) this.sels[0][i].selected = false;
+  for(i=0;i<this.sels[1].length;i++) this.sels[1][i].selected = true;
+ }
+});

Modified: rt/branches/3.5-TESTING/html/Search/Bulk.html
==============================================================================
--- rt/branches/3.5-TESTING/html/Search/Bulk.html	(original)
+++ rt/branches/3.5-TESTING/html/Search/Bulk.html	Fri Sep  2 12:43:47 2005
@@ -152,6 +152,12 @@
 $cfs->LimitToGlobal();
 $cfs->LimitToQueue($_) for keys %$seen_queues;
 </%perl>
+<&|/Elements/TitleBox, title => loc('Edit Custom Fields'), color => "#336633"&>
+<%perl>
+my $cfs = RT::CustomFields->new($session{'CurrentUser'});
+$cfs->LimitToGlobal();
+$cfs->LimitToQueue($_) for keys %$seen_queues;
+</%perl>
 
 <table>
 <tr>
@@ -196,6 +202,7 @@
 
 </form>
 
+
 <%INIT>
 my $title = loc("Update multiple tickets");
 

Modified: rt/branches/3.5-TESTING/html/Search/Elements/PickBasics
==============================================================================
--- rt/branches/3.5-TESTING/html/Search/Elements/PickBasics	(original)
+++ rt/branches/3.5-TESTING/html/Search/Elements/PickBasics	Fri Sep  2 12:43:47 2005
@@ -139,6 +139,7 @@
 </td><td>
 <input Name="ValueOfTime" SIZE=5>
 <& /Elements/SelectTimeUnits, Name =>'ValueOfTime-TimeUnits' &>
+<& /Elements/SelectTimeUnits, Name =>'ValueOfTime-TimeUnits' &>
 </td>
 </tr>
 <tr>

Modified: rt/branches/3.5-TESTING/html/Search/Results.html
==============================================================================
--- rt/branches/3.5-TESTING/html/Search/Results.html	(original)
+++ rt/branches/3.5-TESTING/html/Search/Results.html	Fri Sep  2 12:43:47 2005
@@ -94,6 +94,17 @@
 
 <input type="submit" class="button" value="<%loc('Go')%>"/>
 </form>
+<form method="get" action="<%$RT::WebPath%>/Search/Chart.html"><&|/l&>chart</&>
+% my @vars = (Query => $Query, Format => $Format,  Rows => $Rows, OrderBy => $OrderBy,  Order => $Order);
+%while (my $var = shift (@vars)) {
+<input type="hidden" name="<%$var%>" value="<%shift(@vars)%>"/>
+%}
+</%perl>
+<&|/l, $m->scomp('Elements/SelectGroupBy', Name => 'PrimaryGroupBy') &>grouped by [_1]</&>
+<&|/l, $m->scomp('Elements/SelectChartType', Name => 'ChartStyle') &>style: [_1]</&>
+
+<input type="submit" value="<%loc('Go')%>"/>
+</form>
 <& /Elements/Callback, _CallbackName => 'SearchActions', QueryString => $QueryString&>
 </div>
 <%INIT>

Modified: rt/branches/3.5-TESTING/html/Ticket/Elements/EditBasics
==============================================================================
--- rt/branches/3.5-TESTING/html/Ticket/Elements/EditBasics	(original)
+++ rt/branches/3.5-TESTING/html/Ticket/Elements/EditBasics	Fri Sep  2 12:43:47 2005
@@ -64,6 +64,12 @@
     </TR>
 
   <TR>
+      <td class="label"><&|/l&>Owner</&>:</td>
+      <td class="value">
+<& /Elements/SelectOwner, Name => 'Owner', QueueObj => $TicketObj->QueueObj, TicketObj => $TicketObj, Default => $TicketObj->OwnerObj->Id, DefaultValue => 0&></td>
+    </TR>
+
+  <TR>
       <td class="label"><&|/l&>Time Estimated</&>:</td>
       <td class="value"><input name=TimeEstimated value="<%$TicketObj->TimeEstimated|h%>" SIZE="5">
     <& /Elements/SelectTimeUnits, Name =>'TimeEstimated-TimeUnits' &>
@@ -94,6 +100,8 @@
     </tr>
 
 
+
+
 <& /Elements/Callback, _CallbackName => 'EndOfList', TicketObj => $TicketObj, %ARGS &>
 </table>
 

Modified: rt/branches/3.5-TESTING/html/Ticket/Elements/ShowSummary
==============================================================================
--- rt/branches/3.5-TESTING/html/Ticket/Elements/ShowSummary	(original)
+++ rt/branches/3.5-TESTING/html/Ticket/Elements/ShowSummary	Fri Sep  2 12:43:47 2005
@@ -66,7 +66,16 @@
 	  </&>
 	  
       <& /Ticket/Elements/ShowAttachments, Ticket => $Ticket, Attachments => $Attachments &>
-
+	  <&|/Elements/TitleBox, title => loc("Reminders"),
+		title_href =>"$RT::WebPath/Ticket/Reminders.html?id=".$Ticket->Id, 
+		title_class=> 'inverse',  
+		 color => "#666699" &>
+            <form action="<%$RT::WebPath%>/Ticket/Display.html" method="post">
+	  <& /Ticket/Elements/Reminders, Ticket => $Ticket, ShowCompleted => 0 &>
+        <div align="right"><input type="submit" value="Save" /></div>
+        </form>
+	  </&>
+        <br />
 	  <& /Ticket/Elements/ShowRequestor, Ticket => $Ticket &>
 	</td>
 	<td valign="top" width="50%" class="boxcontainer">

Modified: rt/branches/3.5-TESTING/html/Ticket/Reminders.html
==============================================================================
--- rt/branches/3.5-TESTING/html/Ticket/Reminders.html	(original)
+++ rt/branches/3.5-TESTING/html/Ticket/Reminders.html	Fri Sep  2 12:43:47 2005
@@ -49,7 +49,7 @@
     current_tab => "Ticket/Reminders.html?id=".$Ticket->Id, 
     Title => loc("Reminders for ticket #[_1]", $Ticket->Id) &>
 <form action="<%$RT::WebPath%>/Ticket/Reminders.html" method="post">
-<&|/Widgets/TitleBox, title => loc("Reminders"),
+<&|/Elements/TitleBox, title => loc("Reminders"),
                        title_class=> 'inverse',
                        color => "#666699" &>
 

Modified: rt/branches/3.5-TESTING/html/Tools/Reports/index.html
==============================================================================
--- rt/branches/3.5-TESTING/html/Tools/Reports/index.html	(original)
+++ rt/branches/3.5-TESTING/html/Tools/Reports/index.html	Fri Sep  2 12:43:47 2005
@@ -1,3 +1,3 @@
-<& /Elements/Header, Title => 'Reports' &>
-<& /Tools/Reports/Elements/Tabs, Title => 'Reports' &>
+<& /Elements/Header, title => 'Reports'&>
+<& /Tools/Reports/Elements/Tabs, title => 'Reports' &>
 <& /Elements/Callback &>

Added: rt/branches/3.5-TESTING/html/rt.js
==============================================================================
--- (empty file)
+++ rt/branches/3.5-TESTING/html/rt.js	Fri Sep  2 12:43:47 2005
@@ -0,0 +1,19 @@
+% $r->content_type('application/x-javascript');
+
+function hideshow(num) {
+    idstring = "element-" + num;
+    chunk = document.getElementById(idstring);
+    if ( chunk.style.display == "none")  {
+    chunk.style.display = chunk.style.tag;
+    } else {
+        chunk.style.tag = chunk.style.display;
+        chunk.style.display = "none";
+    }
+}   
+
+function openCalWindow(field) {
+    var objWindow = window.open('<%$RT::WebPath%>/CalPopup.html?field='+field, 'Pick', 'height=400,width=400,scrollbars=1');
+    objWindow.focus();
+}
+
+% $m->abort;
\ No newline at end of file

Modified: rt/branches/3.5-TESTING/lib/RT/I18N/fr.po
==============================================================================
--- rt/branches/3.5-TESTING/lib/RT/I18N/fr.po	(original)
+++ rt/branches/3.5-TESTING/lib/RT/I18N/fr.po	Fri Sep  2 12:43:47 2005
@@ -18,6 +18,8 @@
 #. ($Ticket->id, $Ticket->Subject)
 #. ($link->BaseObj->Id, $link->BaseObj->Subject)
 #. ($TicketObj->Id, $TicketObj->Subject)
+#. ($ticket->Id, $ticket->Subject)
+#. ($TicketObj->Id, $TicketObj->Subject)
 msgid "#%1: %2"
 msgstr "n°%1 : %2"
 


More information about the Rt-commit mailing list