% if ( scalar(@notes) ) {
-
<SCRIPT TYPE="text/javascript">
- function display_notes_classnum(classnum){
- document.getElementById('notes_'+classnum).style.display = 'block';
- document.getElementById('notes_tablink_'+classnum).style.fontWeight = 'bold';
-
- var divs = document.getElementsByTagName("div");
- var i;
- for(i=0; i < divs.length; i++){
- var d = divs[i];
- if(d.id.length > 6 && d.id.substring(0,6) == 'notes_') {
- if(divs[i].id != 'notes_'+classnum) {
- divs[i].style.display = 'none';
- }
- }
- }
-
- var as = document.getElementsByTagName("a");
- for(i=0; i < as.length; i++){
- var a = as[i];
- if(a.id.length > 14 && a.id.substring(0,14) == 'notes_tablink_') {
- if(as[i].id != 'notes_tablink_'+classnum) {
- as[i].style.fontWeight = 'normal';
- }
- }
- }
- }
-
+function display_notes_classnum (classnum) {
+ // hide/show
+ var $custnote = $('.custnote');
+ if (classnum >= 0) {
+ $custnote.hide();
+ $('tr[data-classnum=' + classnum + ']').show();
+ } else {
+ $custnote.show();
+ }
+ // restripe
+ var $shownote = $custnote.filter(':visible');
+ var $shownote_even = $shownote.filter(':even');
+ var $shownote_odd = $shownote.filter(':odd');
+ $shownote_even.css('background-color','#eeeeee');
+ $shownote_even.filter('.stickynote').css('background-color','#ffff66');
+ $shownote_odd.css('background-color','#ffffff');
+ $shownote_odd.filter('.stickynote').css('background-color','#ffffb8');
+% if ($use_class_tabs) {
+ // update links
+ var $tablink = $('.notes_tablink');
+ $tablink.css('font-weight','normal');
+ $tablink.filter('a[data-classnum=' + classnum + ']').css('font-weight','bold');
+% }
+}
</SCRIPT>
<& /elements/init_overlib.html &>
-% my $bgcolor1 = '#eeeeee';
-% my $bgcolor2 = '#ffffff';
-% my %sticky_color = ( '#eeeeee' => '#ffff66',
-% '#ffffff' => '#ffffb8',
-% );
-%
-% my $bgcolor = '';
-% my $last_classnum = -1;
-% my $skipheader = 0;
-% my %classes = ();
-%
-% foreach my $note (@notes) {
-%
-% if ( $bgcolor eq $bgcolor1 ) {
-% $bgcolor = $bgcolor2;
-% } else {
-% $bgcolor = $bgcolor1;
+% if ( $use_class_tabs ) {
+<% mt('Show notes of class:') |h %>
+% # list unclassified last
+% foreach my $classnum ( (grep { $_ != 0} sort { $a <=> $b } (keys %classes)), '0' ) {
+ <A CLASS="notes_tablink"
+ data-classnum="<% $classnum %>"
+ HREF="javascript:display_notes_classnum(<% $classnum %>)"
+ ><% $classes{$classnum} %></A>
+% }
+ <BR>
+% }
+
+<& /elements/table-grid.html &>
+ <TR>
+ <TH CLASS="grid" BGCOLOR="#cccccc" STYLE="padding: 0 1em"><% mt('Date') |h %></TH>
+% if ( $conf->exists('cust_main_note-display_times') ) {
+ <TH CLASS="grid" BGCOLOR="#cccccc" STYLE="padding: 0 1em"><% mt('Time') |h %></TH>
+% }
+ <TH CLASS="grid" BGCOLOR="#cccccc" STYLE="padding: 0 1em"><% mt('Employee') |h %></TH>
+% if ($use_classes) {
+ <TH CLASS="grid" BGCOLOR="#cccccc" STYLE="padding: 0 1em"><% mt('Class') |h %></TH>
% }
+ <TH CLASS="grid" BGCOLOR="#cccccc" STYLE="padding: 0 1em"><% mt('Note') |h %></TH>
+% if ($curuser->access_right('Edit customer note') ) {
+ <TH CLASS="grid" BGCOLOR="#cccccc" STYLE="padding: 0 1em"> </TH>
+% }
+ </TR>
+
+% } # end if @notes
+
+% foreach my $note (@notes) {
%
% my $pop = popurl(3);
% my $notenum = $note->notenum;
% "?custnum=$custnum".
% ";notenum=$notenum",
% 'actionlabel' => emt('Edit customer note'),
-% 'width' => 616,
-% 'height' => 575,
+% 'width' => 875,
+% 'height' => 548,
% 'frame' => 'top',
% );
% my $clickjs = qq!onclick="$onclick"!;
%
% my $edit = '';
-% if ($curuser->access_right('Edit customer note') ) {
+% if ( $curuser->access_right('Edit customer note') ) {
+% $edit = qq! <A HREF="javascript:void(0);" $clickjs>(!.emt('edit').')</A>';
+% }
+% if ( $curuser->access_right('Delete customer note') ) {
% my $delete_url = $fsurl.'misc/delete-note.html?'.$notenum;
-% $edit = qq! <A HREF="javascript:void(0);" $clickjs>(!.emt('edit').')</A>'.
-% qq! <A HREF="$delete_url" !.
-% qq! onclick="return confirm('Delete this note?')">!.
-% '('.emt('delete').')</A>';
+% $edit .= qq! <A HREF="$delete_url" !.
+% qq! onclick="return confirm('Delete this note?')">!.
+% '('.emt('delete').')</A>';
% }
%
-% if ( $last_classnum != $note->classnum && !$skipheader ) {
-% my $tmp_classnum = $note->classnum ? $note->classnum : 0;
-% $classes{$tmp_classnum} = $note->classname ne '' ? $note->classname
-% : emt('Other');
-% if ( $last_classnum != -1 ) {
- </TABLE>
- </DIV>
-% }
-% my $display = ($tmp_classnum == 0 || !$conf->exists('note-classes')
-% || $conf->config('note-classes') < 2)
-% ? 'block' : 'none';
- <DIV id="notes_<% $tmp_classnum %>"
- style="display:<% $display %>"
- >
- <& /elements/table-grid.html &>
- <TR>
- <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Date') |h %></TH>
-% if ( $conf->exists('cust_main_note-display_times') ) {
- <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Time') |h %></TH>
-% }
- <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Person') |h %></TH>
-% if ($conf->exists('note-classes') && $conf->config('note-classes') == 1) {
- <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Class') |h %></TH>
-% }
- <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Note') |h %></TH>
-% if ($curuser->access_right('Edit customer note') ) {
- <TH CLASS="grid" BGCOLOR="#cccccc"> </TH>
-% }
- </TR>
-% $skipheader = (!$conf->exists('note-classes') || $conf->config('note-classes') < 2);
-% $last_classnum = $note->classnum;
-% }
+ <TR CLASS="grid custnote<% $note->sticky ? ' stickynote' : '' %>"
+ <% $use_class_tabs ? ' data-classnum="'.($note->classnum || 0).'"' : '' %>>
-% my $color = $note->sticky ? $sticky_color{$bgcolor} : $bgcolor;
-
- <TR>
- <% note_datestr($note,$conf,$color) %>
- <TD CLASS="grid" BGCOLOR="<% $color %>">
+ <% note_datestr($note,$conf) %>
+ <TD CLASS="grid">
<% $note->usernum ? $note->access_user->name : $note->otaker %>
</TD>
-% if ($conf->exists('note-classes') && $conf->config('note-classes') == 1) {
- <TD CLASS="grid" BGCOLOR="<% $color %>">
+% if ($use_classes) {
+ <TD CLASS="grid">
<% $note->classname %>
</TD>
-% }
- <TD CLASS="grid" BGCOLOR="<% $color %>">
+% }
+ <TD CLASS="grid">
<% $note->comments | defang %>
</TD>
-% if($edit) {
- <TD CLASS="grid" BGCOLOR="<% $color %>"><% $edit %></TD>
-% }
+% if ($edit) {
+ <TD CLASS="grid"><% $edit %></TD>
+% }
</TR>
+% } #end foreach note
-% } #end display notes
-
+% if (@notes) {
</TABLE>
-</DIV>
-% if ( $conf->exists('note-classes') && $conf->config('note-classes') == 2 ) {
-% my($classnum,$classname);
-<% mt('Show notes of class:') |h %>
-% foreach my $classnum ( sort { $b <=> $a } (keys %classes) ) {
- <A id="notes_tablink_<% $classnum %>"
- HREF="javascript:display_notes_classnum(<% $classnum %>)"
- style="font-weight: <% $classnum == 0 ? 'bold' : 'normal' %>"
- ><% $classes{$classnum} %></A>
-% }
- <BR>
+<SCRIPT>display_notes_classnum('-1')</SCRIPT>
+% } else {
+<P><I><% emt('No notes for this customer') %></I></P>
% }
-% }
<%init>
use HTML::Defang;
my $cust_main = $opt{'cust_main'};
my $custnum = $cust_main->custnum;
-my (@notes) = $cust_main->notes($conf->exists('note-classes') && $conf->config('note-classes') == 2);
+my (@notes) = $cust_main->notes();
+
+my %classes = map { ($_->classnum || 0) => ( $_->classname ne '' ? $_->classname : '('.emt('unclassified').')' ) } @notes;
+my $use_classes = grep { $_ > 0 } keys %classes; # show class column
+my $use_class_tabs = (keys %classes > 1) ? 1 : 0; # use class tabs
+$classes{'-1'} = 'All';
#subroutines
sub note_datestr {
- my($note, $conf, $bgcolor) = @_ or return '';
- my $td = qq{<TD CLASS="grid" BGCOLOR="$bgcolor" ALIGN="right">};
+ my($note, $conf) = @_ or return '';
+ my $td = qq{<TD CLASS="grid" ALIGN="right">};
my $format = "$td%b %o, %Y</TD>";
$format .= "$td%l:%M%P</TD>"
if $conf->exists('cust_main_note-display_times');