0byt3m1n1
Path:
/
data
/
applications
/
aps.bak
/
webcalendar
/
1.2.0-4
/
standard
/
htdocs
/
includes
/
js
/
[
Home
]
File: edit_entry.php
<?php /* $Id: edit_entry.php,v 1.75.2.5 2008/04/03 15:05:15 umcesrjones Exp $ */ defined ( '_ISVALID' ) or die ( 'You cannot access this file directly!' ); global $GROUPS_ENABLED,$WORK_DAY_START_HOUR,$WORK_DAY_END_HOUR; $user = $arinc[3]; ?> var bydayAr = new Array(); var bymonthdayAr = new Array(); var bysetposAr = new Array(); var bydayLabels = new Array("SU","MO","TU","WE","TH","FR","SA"); var bydayTrans = new Array( "<?php etranslate ( 'SU' ) ?>" , "<?php etranslate ( 'MO' ) ?>" , "<?php etranslate ( 'TU' ) ?>" , "<?php etranslate ( 'WE' ) ?>" , "<?php etranslate ( 'TH' ) ?>" , "<?php etranslate ( 'FR' ) ?>" , "<?php etranslate ( 'SA' ) ?>" ); // do a little form verifying function validate_and_submit () { if ( form.name.value == "" ) { form.name.select (); <?php if ( empty ( $GLOBALS['EVENT_EDIT_TABS'] ) || $GLOBALS['EVENT_EDIT_TABS'] == 'Y' ) { ?> showTab( 'details' ); <?php } ?> form.name.focus(); alert ( "<?php etranslate ( 'You have not entered a Brief Description', true)?>."); return false; } if ( form.timetype && form.timetype.selectedIndex == 1 ) { h = parseInt (isNumeric( form.entry_hour.value )); m = parseInt (isNumeric( form.entry_minute.value )); // Ask for confirmation for time of day if it is before the user's // preference for work hours. <?php if ($GLOBALS['TIME_FORMAT'] == "24") { echo "if ( h < $WORK_DAY_START_HOUR ) {"; } else { echo "if ( h < $WORK_DAY_START_HOUR && form.entry_ampmA.checked ) {"; } ?> if ( ! confirm ( "<?php etranslate ( 'The time you have entered begins before your preferred work hours. Is this correct?', true)?> ")) return false; } } // is there really a change? changed = false; for ( i = 0; i < form.elements.length; i++ ) { field = form.elements[i]; switch ( field.type ) { case "radio": case "checkbox": if ( field.checked != field.defaultChecked ) changed = true; break; case "text": case "textarea": if ( field.value != field.defaultValue ) changed = true; break; case "select-one": //Don't register a percentage change if ( form.elements[i].name == "percent") break; // case "select-multiple": for( j = 0; j < field.length; j++ ) { if ( field.options[j].selected != field.options[j].defaultSelected ) changed = true; } break; } } if ( changed ) { form.entry_changed.value = "yes"; } //Add code to make HTMLArea code stick in TEXTAREA if (typeof editor != "undefined") editor._textArea.value = editor.getHTML (); //Check if Event date is valid var d = form.day.selectedIndex; var vald = form.day.options[d].value; var m = form.month.selectedIndex; var valm = form.month.options[m].value; var y = form.year.selectedIndex; var valy = form.year.options[y].value; var c = new Date(valy,valm -1,vald); if ( c.getDate () != vald ) { alert ("<?php etranslate ( 'Invalid Event Date', true)?>."); form.day.focus (); return false; } //Repeat Tab enabled, Select all of them if ( form.rpttype ) { for ( i = 0; i < elements['exceptions[]'].length; i++ ) { elements['exceptions[]'].options[i].selected = true; } } if ( form.due_day ) { //Check if Event due date is valid var d = form.due_day.selectedIndex; var vald = form.due_day.options[d].value; var m = form.due_month.selectedIndex; var valm = form.due_month.options[m].value; var y = form.due_year.selectedIndex; var valy = form.due_year.options[y].value; var c = new Date(valy,valm -1,vald); if ( c.getDate () != vald ) { alert ("<?php etranslate ( 'Invalid Event Date', true)?>."); form.due_day.focus (); return false; } } //set byxxxList values for submission var bydayStr = ''; for ( bydayKey in bydayAr ) { if ( bydayKey == isNumeric ( bydayKey ) ) bydayStr = bydayStr + ',' + bydayAr[bydayKey]; } if ( bydayStr.length > 0 ) elements['bydayList'].value = bydayStr.substr(1); //set bymonthday values for submission var bymonthdayStr = ''; for ( bymonthdayKey in bymonthdayAr ) { if ( bymonthdayKey == isNumeric ( bymonthdayKey ) ) bymonthdayStr = bymonthdayStr + ',' + bymonthdayAr[bymonthdayKey]; } if ( bymonthdayStr.length > 0 ) elements['bymonthdayList'].value = bymonthdayStr.substr(1); //set bysetpos values for submission var bysetposStr = ''; for ( bysetposKey in bysetposAr ) { if ( bysetposKey == isNumeric ( bysetposKey ) ) bysetposStr = bysetposStr + ',' + bysetposAr[bysetposKey]; } if ( bysetposStr.length > 0 ) elements['bysetposList'].value = bysetposStr.substr(1); form.submit (); return true; } <?php if ( $GROUPS_ENABLED == 'Y' ) { ?>function selectUsers () { var user = "<?php echo $user ?>"; // find id of user selection object var listid = 0; for ( i = 0; i < elementlength; i++ ) { if ( elements[i].name == "participants[]" ) listid = i; } url = "usersel.php?form=editentryform&listid=" + listid + "&user=" + user + "&users="; // add currently selected users for ( i = 0, j = 0; i < elements[listid].length; i++ ) { if ( elements[listid].options[i].selected ) { if ( j != 0 ) url += ","; j++; url += elements[listid].options[i].value; } } //alert ( "URL: " + url ); // open window window.open ( url, "UserSelection", "width=500,height=500,resizable=yes,scrollbars=yes" ); } <?php } // This function is called when the event type combo box // is changed. If the user selectes "untimed event" or "all day event", // the times & duration fields are hidden. // If they change their mind & switch it back, the original // values are restored for them ?>function timetype_handler () { if ( ! form.timetype ) return true; var i = form.timetype.selectedIndex; var val = form.timetype.options[i].text; if ( i != 1 ) { // Untimed/All Day makeInvisible ( "timeentrystart" ); if ( form.timezonenotice ) { makeInvisible ( "timezonenotice" ); } if ( form.duration_h ) { makeInvisible ( "timeentryduration" ); } else { makeInvisible ( "timeentryend" ); } if ( form.rpttype ) { makeInvisible ( "rpt_until_time_date", true ); } } else { // Timed Event makeVisible ( "timeentrystart" ); if ( form.timezonenotice ) { makeVisible ( "timezonenotice" ); } if ( form.duration_h ) { makeVisible ( "timeentryduration" ); } else { makeVisible ( "timeentryend" ); } if ( form.rpttype ) { makeVisible ( "rpt_until_time_date", true ); } } } function rpttype_handler () { //Repeat Tab disabled if ( ! form.rpttype ) { return; } var expert = ( document.getElementById('rptmode').checked); var i = form.rpttype.selectedIndex; var val = form.rpttype.options[i].text; //alert ( "val " + i + " = " + val ); //i == 0 none //i == 1 daily //i == 2 weekly //i == 3,4,5 monthlyByDay, monthlyByDate, monthlyBySetPos //i == 6 yearly //i == 7 manual Use only Exclusions/Inclusions //Turn all off initially makeInvisible ( "rpt_mode" ); makeInvisible ( "rptenddate1", true ); makeInvisible ( "rptenddate2", true ); makeInvisible ( "rptenddate3", true ); makeInvisible ( "rptfreq", true ); makeInvisible ( "weekdays_only" ); makeInvisible ( "rptwkst" ); //makeInvisible ( "rptday", true ); makeInvisible ( "rptbymonth", true ); makeInvisible ( "rptbydayln", true ); makeInvisible ( "rptbydayln1", true ); makeInvisible ( "rptbydayln2", true ); makeInvisible ( "rptbydayln3", true ); makeInvisible ( "rptbydayln4", true ); makeInvisible ( "rptbydayextended", true ); makeInvisible ( "rptbymonthdayextended", true ); makeInvisible ( "rptbysetpos", true ); makeInvisible ( "rptbyweekno", true ); makeInvisible ( "rptbyyearday", true ); makeInvisible ( "rptexceptions", true ); //makeInvisible ( "select_exceptions_not", true ); if ( i > 0 && i < 7 ) { //always on makeVisible ( "rptenddate1", true ); makeVisible ( "rptenddate2", true ); makeVisible ( "rptenddate3", true ); makeVisible ( "rptfreq", true ); makeVisible ( "rptexceptions", true); makeVisible ( "rpt_mode" ); if ( i == 1 ) { //daily makeVisible ( "weekdays_only" ); } if ( i == 2 ) { //weekly makeVisible ( "rptbydayextended", true ); if (expert ) { makeVisible ( "rptwkst" ); } } if ( i == 3 ) { //monthly (by day) if (expert ) { makeVisible ( "rptwkst" ); makeVisible ( "rptbydayln", true ); makeVisible ( "rptbydayln1", true ); makeVisible ( "rptbydayln2", true ); makeVisible ( "rptbydayln3", true ); makeVisible ( "rptbydayln4", true ); } } if ( i == 4 ) { //monthly (by date) if (expert ) { makeVisible ( "rptbydayextended", true ); makeVisible ( "rptbymonthdayextended", true ); } } if ( i == 5 ) { //monthly (by position) makeVisible ( "rptbysetpos", true ); } if ( i == 6 ) { //yearly if (expert ) { makeVisible ( "rptwkst" ); makeVisible ( "rptbymonthdayextended", true ); makeVisible ( "rptbydayln", true ); makeVisible ( "rptbydayln1", true ); makeVisible ( "rptbydayln2", true ); makeVisible ( "rptbydayln3", true ); makeVisible ( "rptbydayln4", true ); makeVisible ( "rptbyweekno", true ); makeVisible ( "rptbyyearday", true ); } } if (expert ) { makeVisible ( "rptbydayextended", true ); makeInvisible ( "weekdays_only" ); makeVisible ( "rptbymonth", true ); } } if ( i == 7 ) { makeVisible ( "rptexceptions", true); } } function rpttype_weekly () { var i = form.rpttype.selectedIndex; var val = form.rpttype.options[i].text; if ( val == "Weekly" ) { //Get Event Date values var d = form.day.selectedIndex; var vald = form.day.options[d].value; var m = form.month.selectedIndex; var valm = form.month.options[m].value -1; var y = form.year.selectedIndex; var valy = form.year.options[y].value; var c = new Date(valy,valm,vald); var dayOfWeek = c.getDay (); var rpt_day = bydayLabels[dayOfWeek]; elements[rpt_day].checked = true; } } <?php //see the showTab function in includes/js/visible.php for common code shared by all pages //using the tabbed GUI. ?> var tabs = new Array (); tabs[0] = "details"; tabs[1] = "participants"; tabs[2] = "pete"; tabs[3] = "reminder"; var sch_win; // Show Availability for the first selection function showSchedule () { //var agent=navigator.userAgent.toLowerCase (); //var agent_isIE=(agent.indexOf("msie") > -1); var userlist = form.elements['participants[]']; var delim = ''; var users = ''; var cols = <?php echo $WORK_DAY_END_HOUR - $WORK_DAY_START_HOUR ?>; //var w = 140 + ( cols * 31 ); var w = 760; var h = 180; for ( i = 0; i < userlist.length; i++ ) { if (userlist.options[i].selected) { users += delim + userlist.options[i].value; delim = ','; h += 18; } } if (users == '') { alert("<?php etranslate ( 'Please add a participant', true)?>" ); return false; } var features = 'width='+ w +',height='+ h +',resizable=yes,scrollbars=yes'; var url = 'availability.php?users=' + users + '&form=' + 'editentryform' + '&year=' + form.year.value + '&month=' + form.month.value + '&day=' + form.day.options[form.day.selectedIndex].text; if (sch_win != null && !sch_win.closed) { h = h + 30; sch_win.location.replace( url ); sch_win.resizeTo(w,h); } else { sch_win = window.open ( url, "showSchedule", features ); } } function add_exception (which) { var sign = "-"; if (which ) { sign = "+"; } var d = form.except_day.selectedIndex; var vald = form.except_day.options[d].value; var m = form.except_month.selectedIndex; var valm = form.except_month.options[m].value; var y = form.except_year.selectedIndex; var valy = form.except_year.options[y].value; var c = new Date(valy,valm -1,vald); if ( c.getDate () != vald ) { alert ("<?php etranslate ( 'Invalid Date',true ) ?>"); return false; } //alert ( c.getFullYear () + " " + c.getMonth () + " " + c.getDate ()); var exceptDate = String((c.getFullYear () * 100 + c.getMonth () +1) * 100 + c.getDate ()); var isUnique = true; //Test to see if this date is already in the list with (form) { with (elements['exceptions[]']) { for (i = 0; i < length; i++) { if (options[i].text == "-" + exceptDate || options[i].text == "+" + exceptDate){ isUnique = false; } } } } if ( isUnique ) { elements['exceptions[]'].options[elements['exceptions[]'].length] = new Option( sign + exceptDate, sign + exceptDate ); makeVisible ( "select_exceptions" ); makeInvisible ( "select_exceptions_not" ); } } function del_selected () { with (form) { with (elements['exceptions[]']) { for (i = 0; i < length; i++) { if (options[i].selected){ options[i] = null; } } // end for loop if ( ! length ) { makeInvisible ( "select_exceptions" ); makeVisible ( "select_exceptions_not" ); } } } // end with document } function toggle_byday(ele){ var bydaytext = bydayTrans[ele.id.substr(2,1)]; var bydayVal = bydayLabels[ele.id.substr(2,1)]; var tmp = ''; if (ele.value.length > 4 ) { //blank ele.value = ele.id.substr(1,1) + bydaytext; tmp = ele.id.substr(1,1) + bydayVal; } else if (ele.value == ele.id.substr(1,1) + bydaytext) { //positive value ele.value = (parseInt(ele.id.substr(1,1)) -6 ) + bydaytext; tmp = (parseInt(ele.id.substr(1,1)) -6 ) + bydayVal; } else if (ele.value == (parseInt(ele.id.substr(1,1)) -6 ) + bydaytext) { //negative value ele.value = " "; tmp = ''; } bydayAr[ele.id.substr(1)] = tmp; } function toggle_bymonthday(ele){ var tmp = ''; if (ele.value .length > 3) { //blank ele.value = tmp = ele.id.substr(10); } else if (ele.value == ele.id.substr(10)) { //positive value ele.value = tmp = parseInt(ele.id.substr(10)) -32; } else if (ele.value == (parseInt(ele.id.substr(10)) -32 )) { //negative value ele.value = " "; tmp = ''; } bymonthdayAr[ele.id] = tmp; } function toggle_bysetpos(ele){ var tmp = ''; if (ele.value .length > 3) { //blank ele.value = tmp = ele.id.substr(8); } else if (ele.value == ele.id.substr(8)) { //positive value ele.value = tmp = parseInt(ele.id.substr(8)) -32; } else if (ele.value == (parseInt(ele.id.substr(8)) -32 )) { //negative value ele.value = " "; tmp = ''; } bysetposAr[ele.id.substr(8)] = tmp; } function toggle_until () { //Repeat Tab disabled if ( ! form.rpttype ) { return; } //use date elements['rpt_day'].disabled = elements['rpt_month'].disabled = elements['rpt_year'].disabled = elements['rpt_btn'].disabled = elements['rpt_hour'].disabled = elements['rpt_minute'].disabled = ( form.rpt_untilu.checked != true ); //use count elements['rpt_count'].disabled = ( form.rpt_untilc.checked != true ); if ( elements['rpt_ampmA'] ) { if ( form.rpt_untilu.checked ) { //use until date document.getElementById('rpt_ampmA').disabled = false; document.getElementById('rpt_ampmP').disabled = false; } else { document.getElementById('rpt_ampmA').disabled = 'disabled'; document.getElementById('rpt_ampmP').disabled = 'disabled'; } } } function toggle_rem_when () { //Reminder Tab disabled if ( ! form.rem_when ) { return; } if ( elements['reminder_ampmA'] ) { if ( elements['rem_when_date'].checked == true ) { document.getElementById('reminder_ampmA').disabled = false; document.getElementById('reminder_ampmP').disabled = false; } else { document.getElementById('reminder_ampmA').disabled = 'disabled'; document.getElementById('reminder_ampmP').disabled = 'disabled'; } } elements['rem_days'].disabled = elements['rem_hours'].disabled = elements['rem_minutes'].disabled = elements['rem_beforeY'].disabled = elements['rem_relatedS'].disabled = elements['rem_beforeN'].disabled = elements['rem_relatedE'].disabled = elements['rem_when_date'].checked; elements['reminder_day'].disabled = elements['reminder_month'].disabled = elements['reminder_year'].disabled = elements['reminder_btn'].disabled = elements['reminder_hour'].disabled = elements['reminder_minute'].disabled = ( elements['rem_when_date'].checked != true ); } function toggle_reminders () { //Reminder Tab disabled if ( ! form.rem_when ) { return; } toggle_rem_when (); makeInvisible ( "reminder_when",true ); makeInvisible ( "reminder_repeat", true ); if ( elements['reminderYes'].checked == true ) { makeVisible ( "reminder_when", true ); makeVisible ( "reminder_repeat", true ); } } function toggle_rem_rep (){ elements['rem_rep_days'].disabled = elements['rem_rep_hours'].disabled = elements['rem_rep_minutes'].disabled = ( elements['rem_rep_count'].value == 0 ); } function editCats ( evt ) { if (document.getElementById) { mX = evt.clientX -160; mY = evt.clientY + 150; } else { mX = evt.pageX -160; mY = evt.pageY + 150; } var MyPosition = 'scrollbars=no,toolbar=no,left=' + mX + ',top=' + mY + ',screenx=' + mX + ',screeny=' + mY; var cat_ids = elements['cat_id'].value; var user = '<?php echo $user ?>'; url = "catsel.php?form=editentryform&cats=" + cat_ids; if (user ) { url += "&user=" + user; } var catWindow = window.open (url,"EditCat","width=440,height=250," + MyPosition); } function displayInValid(myvar) { alert ( "<?php etranslate ( 'You have not entered a valid time of day', true)?>."); myvar.select (); myvar.focus (); } function isNumeric(sText) { //allow blank values. these will become 0 if ( sText.length == 0 ) return sText; var validChars = "0123456789"; var Char; for (i = 0; i < sText.length && sText != 99; i++) { Char = sText.charAt(i); if (validChars.indexOf(Char) == -1) { sText = 99; } } return sText; } function completed_handler () { if ( form.percent ) { elements['completed_day'].disabled = elements['completed_month'].disabled = elements['completed_year'].disabled = elements['completed_btn'].disabled = ( form.percent.selectedIndex != 10 || form.others_complete.value != 'yes' ); } } function onLoad () { if ( ! document.editentryform ) return false; //define these variables here so they are valid form = document.editentryform; elements = document.editentryform.elements; elementlength = document.editentryform.elements.length; //initialize byxxxAr Objects if ( form.bydayList ) { bydayList = form.bydayList.value; if ( bydayList.search( /,/ ) > -1 ) { bydayList = bydayList.split ( ',' ); for ( key in bydayList ) { if ( key == isNumeric ( key ) ) bydayAr[bydayList[key]] = bydayList[key]; } } else if ( bydayList.length > 0 ) { bydayAr[bydayList] = bydayList; } } if ( form.bymonthdayList ) { bymonthdayList = form.bymonthdayList.value; if ( bymonthdayList.search( /,/ ) > -1 ) { bymonthdayList = bymonthdayList.split ( ',' ); for ( key in bymonthdayList ) { if ( key == isNumeric ( key ) ) bymonthdayAr[bymonthdayList[key]] = bymonthdayList[key]; } } else if ( bymonthdayList.length > 0 ) { bymonthdayAr[bymonthdayList] = bymonthdayList; } } if ( form.bysetposList ) { bysetposList = form.bysetposList.value; if ( bysetposList.search( /,/ ) > -1 ) { bysetposList = bysetposList.split ( ',' ); for ( key in bysetposList ) { if ( key == isNumeric ( key ) ) bysetposAr[bysetposList[key]] = bysetposList[key]; } } else if ( bysetposList.length > 0 ){ bysetposAr[bysetposList] = bysetposList; } } timetype_handler (); rpttype_handler (); toggle_until (); toggle_reminders (); toggle_rem_rep (); completed_handler (); }