diff options
author | jeff <jeff> | 2006-10-27 17:01:31 +0000 |
---|---|---|
committer | jeff <jeff> | 2006-10-27 17:01:31 +0000 |
commit | 576c6b48428aa95e0fd80db011fe73c0b728c88b (patch) | |
tree | 79b8ddfe015d3732269f402d7129d4d36194bb9e /httemplate | |
parent | fc3483c8679daf2e00467db05342e9fcd314d541 (diff) |
editable notes
Diffstat (limited to 'httemplate')
-rwxr-xr-x | httemplate/edit/cust_main_note.cgi | 20 | ||||
-rwxr-xr-x | httemplate/edit/process/cust_main_note.cgi | 19 | ||||
-rw-r--r-- | httemplate/elements/overlibmws_crossframe.js | 44 | ||||
-rwxr-xr-x | httemplate/view/cust_main/notes.html | 41 |
4 files changed, 109 insertions, 15 deletions
diff --git a/httemplate/edit/cust_main_note.cgi b/httemplate/edit/cust_main_note.cgi index 468ef0051..303895bd8 100755 --- a/httemplate/edit/cust_main_note.cgi +++ b/httemplate/edit/cust_main_note.cgi @@ -1,4 +1,4 @@ -<% include('/elements/header-popup.html', 'Add Customer Note') %> +<% include('/elements/header-popup.html', "$action Customer Note") %> % if ( $cgi->param('error') ) { <FONT SIZE="+1" COLOR="#ff0000">Error: <% $cgi->param('error') %></FONT> @@ -7,6 +7,7 @@ <FORM ACTION="<% popurl(1) %>process/cust_main_note.cgi" METHOD=POST> <INPUT TYPE="hidden" NAME="custnum" VALUE="<% $custnum %>"> +<INPUT TYPE="hidden" NAME="notenum" VALUE="<% $notenum %>"> <BR><BR> @@ -15,23 +16,36 @@ </TEXTAREA> <BR><BR> -<INPUT TYPE="submit" VALUE="Add note"> +<INPUT TYPE="submit" VALUE="<% $notenum ? "Apply Changes" : "Add Note" %>"> </FORM> </BODY> </HTML> <%init> -my($custnum, $comment); +my($custnum, $comment, $notenum, $action); $comment = ''; if ( $cgi->param('error') ) { $comment = $cgi->param('comment'); +}elsif ($cgi->param('notenum')) { + $cgi->param('notenum') =~ /^(\d+)$/; + $notenum = $1; + die "illegal query ". $cgi->keywords unless $notenum; + my $note = qsearchs('cust_main_note', { 'notenum' => $notenum }); + die "no such note: ". $notenum unless $note; + $comment = $note->comments; } + +$cgi->param('notenum') =~ /^(\d+)$/; +$notenum = $1; + $cgi->param('custnum') =~ /^(\d+)$/; $custnum = $1; die "illegal query ". $cgi->keywords unless $custnum; +$action = $notenum ? 'Edit' : 'Add'; + </%init> diff --git a/httemplate/edit/process/cust_main_note.cgi b/httemplate/edit/process/cust_main_note.cgi index d9251f042..b94d2271c 100755 --- a/httemplate/edit/process/cust_main_note.cgi +++ b/httemplate/edit/process/cust_main_note.cgi @@ -4,18 +4,33 @@ % or die "Illegal custnum: ". $cgi->param('custnum'); %my $custnum = $1; % +%$cgi->param('notenum') =~ /^(\d+)$/ +% or die "Illegal notenum: ". $cgi->param('notenum'); +%my $notenum = $1; +% %my $otaker = $FS::CurrentUser::CurrentUser->name; %$otaker = $FS::CurrentUser::CurrentUser->username % if ($otaker eq "User, Legacy"); % %my $new = new FS::cust_main_note ( { +% notenum => $notenum, % custnum => $custnum, % _date => time, % otaker => $otaker, % comments => $cgi->param('comment'), %} ); % -%my $error = $new->insert; +%my $error; +%if ($notenum){ +% my $old = qsearchs('cust_main_note', { 'notenum' => $notenum }); +% $error = "No such note: $notenum" unless $old; +% unless($error){ +% map { $new->$_($old->$_) } ('_date', 'otaker'); +% $error = $new->replace($old); +% } +%}else{ +% $error = $new->insert; +%} % %if ($error) { % $cgi->param('error', $error); @@ -23,7 +38,7 @@ %} % % -<% header('Note added') %> +<% header('Note ' . ($notenum ? 'updated' : 'added') ) %> <SCRIPT TYPE="text/javascript"> window.top.location.reload(); </SCRIPT> diff --git a/httemplate/elements/overlibmws_crossframe.js b/httemplate/elements/overlibmws_crossframe.js new file mode 100644 index 000000000..6b21c42e8 --- /dev/null +++ b/httemplate/elements/overlibmws_crossframe.js @@ -0,0 +1,44 @@ +/*
+ overlibmws_crossframe.js plug-in module - Copyright Foteos Macrides 2003-2006
+ For support of FRAME.
+ Initial: August 3, 2003 - Last Revised: November 2, 2004
+ See the Change History and Command Reference for overlibmws via:
+
+ http://www.macridesweb.com/oltest/
+
+ Published under an open source license: http://www.macridesweb.com/oltest/license.html
+*/
+
+OLloaded=0;
+OLregCmds('frame');
+
+function OLparseCrossframe(pf,i,ar){
+var k=i,v;
+if(k<ar.length){
+if(ar[k]==FRAME){v=ar[++k];if(pf=='ol_')ol_frame=v;else OLoptFRAME(v);return k;}}
+return -1;
+}
+
+function OLgetFrameRef(thisFrame,ofrm){
+var i,v,retVal='';for(i=0;i<thisFrame.length;i++){if((((thisFrame[i].length>0)))&&(((OLns4))||
+((OLie4)&&(v=thisFrame[i].document.all.tags('iframe'))!=null&&v.length==0)||
+((OLns6)&&(v=thisFrame[i].document.getElementsByTagName('iframe'))!=null&&v.length==0))){
+retVal=OLgetFrameRef(thisFrame[i],ofrm);if(retVal=='')continue;}
+else if(thisFrame[i]!=ofrm)continue;retVal='['+i+']'+retVal;break;}
+return retVal;
+}
+
+function OLoptFRAME(frm){
+o3_frame=OLmkLyr('overDiv',frm)?frm:self;if(o3_frame!=self){
+var l,tFrm=OLgetFrameRef(top.frames,o3_frame),sFrm=OLgetFrameRef(top.frames,ol_frame);
+if(sFrm.length==tFrm.length) {l=tFrm.lastIndexOf('[');if(l){
+while(sFrm.substring(0,l)!=tFrm.substring(0,l))l=tFrm.lastIndexOf('[',l-1);
+tFrm=tFrm.substr(l);sFrm=sFrm.substr(l);}}var i,k,cnt=0,p='',str=tFrm;
+while((k=str.lastIndexOf('['))!= -1){cnt++;str=str.substring(0,k);}
+for(i=0;i<cnt;i++)p=p+'parent.';OLfnRef=p+'frames'+sFrm+'.';}
+}
+
+OLregCmdLineFunc(OLparseCrossframe);
+
+OLcrossframePI=1;
+OLloaded=1;
diff --git a/httemplate/view/cust_main/notes.html b/httemplate/view/cust_main/notes.html index c1a33b020..75bf30e41 100755 --- a/httemplate/view/cust_main/notes.html +++ b/httemplate/view/cust_main/notes.html @@ -1,5 +1,6 @@ % % my $conf = new FS::Conf; +% my $curuser = $FS::CurrentUser::CurrentUser; % % $cgi->param('custnum') =~ /^(\d+)$/ % or die "No customer specified (bad URL)!"; @@ -20,6 +21,11 @@ body { background: #e8e8e8 } </STYLE> +<SCRIPT TYPE="text/javascript" SRC="/elements/overlibmws.js"></SCRIPT> +<SCRIPT TYPE="text/javascript" SRC="/elements/overlibmws_iframe.js"></SCRIPT> +<SCRIPT TYPE="text/javascript" SRC="/elements/overlibmws_crossframe.js"></SCRIPT> +<SCRIPT TYPE="text/javascript" SRC="/elements/iframecontentmws.js"></SCRIPT> + <TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0 BORDER=0 > %#<% include('/elements/table-grid.html') %> @@ -35,12 +41,27 @@ body { background: #e8e8e8 } % $bgcolor = $bgcolor1; % } % +% my $pop = popurl(3); +% my $notenum = $note->notenum; +% my $clickjs = qq!onclick="overlib( OLiframeContent('${pop}edit/! . +% qq!cust_main_note.cgi?custnum=$custnum&! . +% qq!notenum=$notenum', 616, ! . +% qq!386, 'cust_main_note_popup' ), CAPTION, 'Edit customer ! . +% qq!note', STICKY, AUTOSTATUSCAP, MIDX, 0, MIDY, 0, ! . +% qq!CLOSECLICK, FRAME, top); return false;"!; % +% my ($el, $eel); +% if ($curuser->access_right('Edit customer note') ) { +% $el = qq!<A HREF="javascript:void(0);" $clickjs>!; +% $eel = qq!</A>!; +% }else{ +% $el = $eel = ''; +% } <TR> - <% note_datestr($note,$conf,$bgcolor) %> + <% note_datestr($note,$conf,$bgcolor, $el, $eel) %> <TD CLASS="inv" BGCOLOR="<% $bgcolor %>"> - <%$note->otaker%> + <% $el %> <%$note->otaker%> <% $eel %> </TD> <TD CLASS="inv" BGCOLOR="<% $bgcolor %>"> <%$note->comments%> @@ -58,14 +79,14 @@ body { background: #e8e8e8 } %#subroutines % %sub note_datestr { -% my($note, $conf, $bgcolor) = @_ or return ''; -% my $format=qq{<TD class="inv" bgcolor="$bgcolor" align="left"><B>%b</B></TD>}. -% qq{<TD class="inv" bgcolor="$bgcolor" align="right"><B> %o,</B></TD>}. -% qq{<TD class="inv" bgcolor="$bgcolor" align="right"><B> %Y </B></TD>}; -% $format .= qq{<TD class="inv" bgcolor="$bgcolor" ALIGN="right"><B> %l</TD>}. -% qq{<TD class="inv" bgcolor="$bgcolor" ALIGN="center"><B>:</B></TD>}. -% qq{<TD class="inv" bgcolor="$bgcolor" ALIGN="left"><B>%M</B></TD>}. -% qq{<TD class="inv" bgcolor="$bgcolor" ALIGN="left"><B> %P </B></TD>} +% my($note, $conf, $bgcolor, $el, $eel) = @_ or return ''; +% my $format=qq{<TD class="inv" bgcolor="$bgcolor" align="left">$el<B>%b</B>$eel</TD>}. +% qq{<TD class="inv" bgcolor="$bgcolor" align="right">$el<B> %o,</B>$eel</TD>}. +% qq{<TD class="inv" bgcolor="$bgcolor" align="right">$el<B> %Y </B>$eel</TD>}; +% $format .= qq{<TD class="inv" bgcolor="$bgcolor" ALIGN="right">$el<B> %l$eel</TD>}. +% qq{<TD class="inv" bgcolor="$bgcolor" ALIGN="center">$el<B>:</B>$eel</TD>}. +% qq{<TD class="inv" bgcolor="$bgcolor" ALIGN="left">$el<B>%M</B>$eel</TD>}. +% qq{<TD class="inv" bgcolor="$bgcolor" ALIGN="left">$el<B> %P </B>$eel</TD>} % if $conf->exists('cust_main_note-display_times'); % ( my $strip = time2str($format, $note->_date) ) =~ s/ (\d)/$1/g; % $strip; |