Changeset 573
- Timestamp:
- 01/07/09 15:20:18 (15 years ago)
- Location:
- trunk/calendar_new
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/calendar_new/inc/class.bocalendar.inc.php
r492 r573 85 85 } 86 86 87 // Return the events of current Year 88 function requestYearCal ($dayTime) { 89 // Performing SQL query 90 $query = "SELECT cal_id, title, description, datetime, edatetime FROM phpgw_cal where (owner = '".$this->user_id."') and ((datetime > ".$dayTime." and datetime < ".($dayTime+31104000).") or (edatetime > ".$dayTime." and edatetime < ".($dayTime+2592000)."))"; 91 if (!$this->db->query($query)) 92 return false; 93 94 while($this->db->next_record()) 95 $result[] = $this->db->row(); 96 97 return $result; 98 } 99 87 100 function insertEvent ($datetime, $edatetime, $title, $description, $location) 88 101 { … … 96 109 97 110 // Performing SQL insert query 98 $query = "INSERT INTO phpgw_cal VALUES (".($id['max']+1).", '".$_SESSION['calendar']['user']['email']."', ".$this->user_id.", null, null, ".$datetime.", ".time().",".$edatetime.", 2, 'E', 0, '".$title."', '".$description."', '".$location."', 0, null, null, null )"; 99 111 $query = "INSERT INTO phpgw_cal VALUES (".($id['max']+1).", '".$_SESSION['calendar']['user']['email']."', ".$this->user_id.", null, null, ".$datetime.", ".time().",".$edatetime.", 2, 'E', 0, '".$title."', '".$description."', '".$location."', 0, null)"; 100 112 if ($this->db->query($query)){ 101 113 $query = "INSERT INTO phpgw_cal_user VALUES (".($id['max']+1).", ".$this->user_id.", 'A', 'u')"; … … 136 148 137 149 return $return; 138 139 150 } 140 151 } -
trunk/calendar_new/inc/class.uicalendar.inc.php
r492 r573 14 14 $this -> db_obj = new bocalendar(); 15 15 } 16 17 16 var $public_functions = array( 18 17 'quickAdd' => True, … … 201 200 return $retorno; 202 201 } 202 function getViewYear () { 203 $monthViewTime = isset ($_REQUEST["time"]) ? strtotime(substr($_REQUEST["time"],0,4)."-".substr($_REQUEST["time"],6,2)."-".substr($_REQUEST["time"],4,2)) : strtotime(date('Y-m-d', time())); 204 205 $todayTime = strtotime(date('Y-m', $monthViewTime)."-01"); 206 $retorno = "<today>".date('Ydm', $monthViewTime)."</today>"; 207 208 $fromBo = $this->db_obj->requestYearCal($todayTime); 209 // Printing results in XML 210 if (is_array($fromBo)) 211 foreach ($fromBo as $line) { 212 if ($line['datetime'] > 0){ 213 $retorno .= "<calEvent>"; 214 $retorno .= "<id>".$line['cal_id']."</id>"; 215 $retorno .= "<datetime>".($line['datetime']*1000)."</datetime>"; 216 $retorno .= "</calEvent>"; 217 } 218 } 219 return $retorno; 220 } 221 203 222 204 223 }; -
trunk/calendar_new/inc/hook_admin.inc.php
r420 r573 20 20 display_section($appname,$title,$file); 21 21 ?> 22 -
trunk/calendar_new/inc/load_lang.php
r420 r573 14 14 } 15 15 } 16 $script = "array_lang[0] = new Array();"; 17 $script .= "array_lang[1] = new Array();"; 18 $i = 0; 19 foreach($_SESSION['phpgw_info']['calendar']['lang'] as $key => $value) { 20 $script .= "array_lang[0][".$i."] = '".str_replace("'","\'",strtolower($key))."';"; 21 $script .= "array_lang[1][".$i."] = '".str_replace("'","\'",$value)."';"; 22 $i++; 23 } 16 $script = "array_lang = new Array();"; 17 foreach($_SESSION['phpgw_info']['calendar']['lang'] as $key => $value) 18 $script .= "array_lang['".str_replace("'","\'",strtolower($key))."'] = '".str_replace("'","\'",$value)."';\n"; 24 19 echo $script; 20 25 21 ?> -
trunk/calendar_new/js/calendar_functions.js
r464 r573 19 19 } 20 20 21 22 21 if(divAddDialog && divAddDialog.style.display != "none"){ 23 22 divAddDialog.style.display = "none"; 24 23 for (var hour = parseInt(_dragArea.initEvent); hour <= parseInt(_dragArea.endEvent);(hour%100 == 30)?hour+=70:hour+=30) 25 document.getElementById(hour).style.background = "";24 try { document.getElementById(hour).style.background = ""; } catch (e) { break; }; 26 25 _dragArea.initEvent = null; 27 26 _dragArea.endEvent = null; … … 54 53 divAddDialog.style.display = "block"; 55 54 divAddDialog.innerHTML = xtools.parse(data, xsl); 56 document.getElementById('dragEventSubject').focus();57 document.getElementById('addEventLink').innerHTML = get_lang("Add this event");58 document.getElementById('addDetailsLink').innerHTML = get_lang("Add with details");59 60 61 55 var closeButton = document.getElementById('closeDialog'); 62 56 if (is_ie){ … … 67 61 closeButton.style.top = '25px'; 68 62 } 63 document.getElementById('dragEventSubject').focus(); 64 document.getElementById('addEventLink').innerHTML = get_lang("Add this event"); 65 document.getElementById('addDetailsLink').innerHTML = get_lang("Add with details"); 66 69 67 70 68 this.lastId = _dragArea.endEvent; -
trunk/calendar_new/js/common_functions.js
r492 r573 50 50 if (!screenTable[tempDate.getDay()]) 51 51 screenTable[tempDate.getDay()] = new Array(); 52 currentPos = 1; 52 currentPos = 1; 53 53 if (!screenTable[tempDate.getDay()][start_]) 54 54 screenTable[tempDate.getDay()][start_] = 0; … … 67 67 eventDiv.style.height = "20px"; 68 68 eventDiv.style.cursor = "pointer"; 69 eventDiv.onmouseover = function () { this.style.height = "auto"; this.style.zIndex = 2; 69 eventDiv.onmouseover = function () { this.style.height = "auto"; this.style.zIndex = 2;}; 70 70 eventDiv.onmouseout = function () { this.style.height = "20px"; this.style.zIndex = 1; }; 71 71 eventDiv.onclick = function () { calendar.getView('div_main','Day','&time='+timeStamp2id(eventDiv.childNodes[1].id).substr(0,8)); }; … … 78 78 eventDiv.style.width = "60px"; 79 79 eventDiv.style.height = "15px"; 80 eventDiv.onmouseover = function () { this.style.width = "auto"; this.style.zIndex = 2; };80 eventDiv.onmouseover = function () { if (this.childNodes[2].length > 9) this.style.width = "auto"; this.style.zIndex = 2; }; 81 81 eventDiv.onmouseout = function () { this.style.width = "60px"; this.style.zIndex = 1; }; 82 82 eventDiv.onclick = function () { calendar.getView('div_main','Day','&time='+timeStamp2id(eventDiv.childNodes[1].id).substr(0,8)); }; … … 84 84 85 85 tdElement.style.height = (tdElement.childNodes.length * 10) + "px"; 86 86 87 87 if (tdElement.childNodes.length > 3) 88 88 eventDiv.style.margin = "20 0 0 "+(20+(tdElement.childNodes.length-4)*25); … … 114 114 showDetailLink.innerHTML = '<img onmouseover="this.setAttribute(\'width\', \'15\');"'+ 115 115 'onmouseout="this.setAttribute(\'width\', \'10\');"'+ 116 ' title="'+get_lang('details')+'" alt="'+get_lang('details')+'"'+ 116 ' title="'+get_lang('details')+'" alt="'+get_lang('details')+'"'+ 117 117 ' src="templates/default/images/plus.png"></img>'; 118 118 showDetailLink.style.position = "absolute"; … … 130 130 131 131 function addDetails(title,description,datetime,edatetime){ 132 data="<retorno><title>"+title+"</title><description>"+ 133 description+"</description><datetime>"+datetime+ 134 "</datetime><edatetime>"+edatetime+"</edatetime></retorno>"; 132 if (!edatetime) 133 edatetime = ""; 134 if (!datetime || datetime.length == 0) 135 datetime = edatetime; 136 data="<retorno>"+ 137 "<title>"+title+"</title>"+ 138 "<description>"+description+"</description>"+ 139 "<datetime>"+datetime.substr(4,2)+"/"+datetime.substr(6,2)+"/"+datetime.substr(0,4)+"</datetime>"+ 140 "<datehour>"+datetime.substr(8,2)+"</datehour>"+ 141 "<dateminute>"+datetime.substr(10,2)+"</dateminute>"+ 142 "<edatetime>"+edatetime.substr(4,2)+"/"+edatetime.substr(6,2)+"/"+edatetime.substr(0,4)+"</edatetime>"+ 143 "<edatehour>"+edatetime.substr(8,2)+"</edatehour>"+ 144 "<edateminute>"+edatetime.substr(10,2)+"</edateminute>"+ 145 "</retorno>"; 135 146 136 147 var divAddDialog = document.getElementById("divAddDialog"); … … 151 162 152 163 function showDetails(eventId){ 153 var handler_getDetails = function (data) 164 var handler_getDetails = function (data) 154 165 { 155 166 var divAddDialog = document.getElementById("divAddDialog"); … … 169 180 var saveBut = document.getElementById("saveLink"); 170 181 saveBut.onclick = function () { saveEvent(eventId); } 171 } 182 var startDate = document.getElementById('startstr'); 183 var endDate = document.getElementById('endstr'); 184 var startHour = document.getElementById('starthour'); 185 var startMin = document.getElementById('startmin'); 186 var endHour = document.getElementById('endhour'); 187 var endMin = document.getElementById('endmin'); 188 objDate = new Date(); 189 objDate.setTime(startDate.value*1000); 190 startDate.value = objDate.getDate()+"/"+(objDate.getMonth()+1)+"/"+objDate.getFullYear(); 191 startHour.value = objDate.getHours(); 192 startMin.value = objDate.getMinutes(); 193 if (startMin.value.length < 2) 194 startMin.value += "0"; 195 objDate.setTime(endDate.value*1000); 196 endDate.value = objDate.getDate()+"/"+(objDate.getMonth()+1)+"/"+objDate.getFullYear(); 197 endHour.value = objDate.getHours(); 198 endMin.value = objDate.getMinutes(); 199 if (endMin.value.length < 2) 200 endMin.value += "0"; 201 } 172 202 XMLTools.__RETURN_MODE__ = 'XML'; 173 203 XMLTools.request('$this.uicalendar.getDetails&id='+eventId.id.substr(6), 'GET', handler_getDetails); … … 207 237 function saveEvent (id, title, description, locat, startTime, endTime){ 208 238 if (id != null){ 209 return changeEvent(id,' location',locat);210 } 211 239 return changeEvent(id,'all_fields',locat); 240 } 241 212 242 var endDate = new Date(); 213 243 endDate.setTime(id2timeStamp(endTime)+1800000); … … 296 326 createEventDiv(objEvent); 297 327 break; 328 case 'all_fields': 298 329 default: 299 alert( 'not implemented');330 alert(field+': not implemented'); 300 331 } 301 332 } … … 325 356 } 326 357 327 328 function get_lang(_key,_arg1,_arg2,_arg3,_arg4){ 329 if (_key.length == 0) 330 return ''; 331 if(!array_lang[0]){ 332 return _key+"*"; 333 } 334 _value = ""; 335 for(i = 0; i < array_lang[0].length;i++){ 336 if(array_lang[0][i] == _key.toLowerCase()) { 337 _value = array_lang[1][i]; 338 break; 339 } 340 } 341 342 if(!_value) 343 return _key+"*"; 358 // Translate words and phrases using user language from eGroupware. 359 function get_lang(_key,_arg1,_arg2,_arg3,_arg4) { 360 if (!_key) 361 return ""; 362 var key = _key.toLowerCase(); 363 if(array_lang[key]) 364 var _value = array_lang[key]; 365 else 366 return _key+"*"; 344 367 345 368 if(_arg1 || _arg2 ||_arg3 || _arg4) { … … 351 374 } 352 375 } 376 353 377 return _value; 354 378 } 379 355 380 356 381 function resizeEvent (eventDiv) { -
trunk/calendar_new/js/drag_area.js
r464 r573 34 34 } 35 35 var id = is_ie ? window.event.srcElement.id : e.target.id; 36 var continues = true; 36 37 var colorCell = function (id,style){ 37 38 try { … … 39 40 } 40 41 catch(e) 41 { document.style.background = "#000"; };42 { continues = false; }; 42 43 }; 43 44 … … 53 54 if (this.endEvent < this.initEvent) 54 55 if (id <= this.endEvent) 55 for (var hour = parseInt(this.initEvent); hour >= parseInt(id) ;hour=incHour(hour,'-'))56 for (var hour = parseInt(this.initEvent); hour >= parseInt(id) && continues;hour=incHour(hour,'-')) 56 57 colorCell(hour,"#EEE"); 57 58 else 58 for (var hour = parseInt(id); hour >= parseInt(this.endEvent) ;hour=incHour(hour,'-'))59 for (var hour = parseInt(id); hour >= parseInt(this.endEvent) && continues;hour=incHour(hour,'-')) 59 60 colorCell(hour,""); 60 61 else 61 62 if (id < this.endEvent) 62 for (var hour = parseInt(id); hour <= parseInt(this.endEvent) ;hour=incHour(hour,'+'))63 for (var hour = parseInt(id); hour <= parseInt(this.endEvent) && continues;hour=incHour(hour,'+')) 63 64 colorCell(hour,""); 64 65 else 65 for (var hour = parseInt(this.initEvent); hour <= parseInt(id) ;hour=incHour(hour,'+'))66 for (var hour = parseInt(this.initEvent); hour <= parseInt(id) && continues;hour=incHour(hour,'+')) 66 67 colorCell(hour,"#EEE"); 67 68 this.endEvent=id; … … 96 97 97 98 counter = 0; 98 DragArea.prototype.moveWindow = function(e) { 99 var _event = is_ie ? window.event : e; 100 var _button = is_ie ? _event.button : _event.which; 101 var id = "divAddDialog"; 99 DragArea.prototype.moveWindow = function(e,elem) { 102 100 if (this.pressed){ 103 document.getElementById(id).style.left = (_event.clientX - 70) + "px"; 104 document.getElementById(id).style.top = (_event.clientY - 70) + "px"; 101 var _event = is_ie ? window.event : e; 102 elem.style.left = (_event.clientX - 80) + "px"; 103 elem.style.top = (_event.clientY - 80) + "px"; 105 104 } 106 105 } -
trunk/calendar_new/setup/setup.inc.php
r420 r573 14 14 /* Conf Table */ 15 15 16 $setup_info['calendar_new']['author'] = 'C elepar Companhia de Informatica do Parana';17 $setup_info['calendar_new']['maintainer'] = ' CELEPAR';18 $setup_info['calendar_new']['maintainer_email']= ' ';16 $setup_info['calendar_new']['author'] = 'CELEPAR, Celepar Companhia de Informatica do Parana'; 17 $setup_info['calendar_new']['maintainer'] = 'Alexandre Felipe Muller de Souza'; 18 $setup_info['calendar_new']['maintainer_email']= 'amuller@celepar.pr.gov.br'; 19 19 20 $setup_info['calendar_new']['license'] = 'GPL ';20 $setup_info['calendar_new']['license'] = 'GPL v2'; 21 21 $setup_info['calendar_new']['description'] = 'Calendar Ajax'; 22 $setup_info['calendar']['tables'][] = 'phpgw_cal'; 23 $setup_info['calendar']['tables'][] = 'phpgw_cal_holidays'; 24 $setup_info['calendar']['tables'][] = 'phpgw_cal_repeats'; 25 $setup_info['calendar']['tables'][] = 'phpgw_cal_user'; 26 $setup_info['calendar']['tables'][] = 'phpgw_cal_extra'; 27 22 28 23 29 /* The hooks this app includes, needed for hooks registration */ 24 30 $setup_info['calendar_new']['hooks'][] = 'admin'; 25 31 $setup_info['calendar_new']['hooks'][] = 'add_def_prefs'; 32 $setup_info['calendar_new']['hooks'][] = 'deleteaccount'; 33 $setup_info['calendar_new']['hooks'][] = 'email'; 34 $setup_info['calendar_new']['hooks'][] = 'home'; 35 $setup_info['calendar_new']['hooks'][] = 'home_day'; 36 $setup_info['calendar_new']['hooks'][] = 'home_month'; 37 $setup_info['calendar_new']['hooks'][] = 'home_week'; 38 $setup_info['calendar_new']['hooks'][] = 'home_year'; 39 $setup_info['calendar_new']['hooks'][] = 'manual'; 40 $setup_info['calendar_new']['hooks'][] = 'preferences'; 41 $setup_info['calendar_new']['hooks'][] = 'settings'; 42 $setup_info['calendar_new']['hooks'][] = 'sidebox_menu'; 43 26 44 /* Dependencies for this app to work */ 27 45 $setup_info['calendar_new']['depends'][] = array( -
trunk/calendar_new/xsl/addDialog.xsl
r492 r573 2 2 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 3 3 <xsl:template match="/text"> 4 <div id="infowindow"> 5 <table style="position: absolute; width: 350px; height: 175px;" border="0" cellpadding="0" cellspacing="0" onmousedown="_dragArea.pressed = 1" onmouseup="_dragArea.pressed = 0" onmousemove="_dragArea.moveWindow(event)"> 4 <table style="position: absolute; width: 350px; height: 175px;" border="0" cellpadding="0" cellspacing="0" onmousedown="_dragArea.pressed = 1" onmouseup="_dragArea.pressed = 0" onmousemove="_dragArea.moveWindow(event,this.parentNode)"> 6 5 <tbody> 7 6 <tr style="height: 24px;"> … … 41 40 <td> 42 41 <div id="addEventLink" class="buttontype" onclick="quickAddEvent(document.getElementById('dragEventSubject').value,document.getElementById('dragEventDescription').value,_dragArea.initEvent,_dragArea.endEvent);">Add event</div></td><td> 43 <div id="addDetailsLink" class="buttontype" onclick="addDetails( null,document.getElementById('dragEventSubject').value,document.getElementById('dragEventDescription').value,_dragArea.initEvent,_dragArea.endEvent);">Add with details</div></td>42 <div id="addDetailsLink" class="buttontype" onclick="addDetails(document.getElementById('dragEventSubject').value,document.getElementById('dragEventDescription').value,_dragArea.initEvent,_dragArea.endEvent);">Add with details</div></td> 44 43 </tr> 45 44 </tbody></table> … … 59 58 </tbody> 60 59 </table> 61 </div>62 60 </xsl:template> 63 61 </xsl:stylesheet> -
trunk/calendar_new/xsl/detailsDialog.xsl
r492 r573 2 2 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 3 3 <xsl:template match="/retorno"> 4 <table style="position: absolute; width: 350px; height: 350px;" border="0" cellpadding="0" cellspacing="0" >4 <table style="position: absolute; width: 350px; height: 350px;" border="0" cellpadding="0" cellspacing="0" onmousedown="_dragArea.pressed = 1" onmouseup="_dragArea.pressed = 0" onmousemove="_dragArea.moveWindow(event,this.parentNode)"> 5 5 <tbody> 6 6 <tr style="height: 24px;"> … … 21 21 <xsl:variable name="description" select="description" /> 22 22 <xsl:variable name="location" select="location" /> 23 <xsl:variable name="datetime" select="datetime" /> 24 <xsl:variable name="datehour" select="datehour" /> 25 <xsl:variable name="dateminute" select="dateminute" /> 26 <xsl:variable name="edatetime" select="edatetime" /> 27 <xsl:variable name="edatehour" select="edatehour" /> 28 <xsl:variable name="edateminute" select="edateminute" /> 23 29 Titulo:<br/> 24 30 <input type="text" id="dragEventSubject" value="{title}" size="30"></input><br/> … … 26 32 <input type="text" id="dragEventDescription" value="{description}" size="50"></input><br/> 27 33 Local:<br/> 28 <input type="text" id="dragEventLocation" value="{location}" size="30"></input><br/> 34 <input type="text" id="dragEventLocation" value="{location}" size="30"></input><br/><br/> 35 Data inicio:<input id="startstr" name="startstr" size="10" type="text" value="{datetime}"></input> 36 <img id="trigger" src="/phpgwapi/templates/default/images/datepopup.gif" title="Selecionar data" style="cursor: pointer;"></img><br/><br/> 37 Hora de inicio:<input id="starthour" size="2" maxlength="2" value="{datehour}"></input>:<input id="startmin" size="2" maxlength="2" value="{dateminute}"></input><br/><br/> 38 Data de termino:<input id="endstr" name="endstr" type="text" value="{edatetime}"></input> 39 <img id="endstrtrigger" src="/phpgwapi/templates/default/images/datepopup.gif" title="Selecionar data" style="cursor: pointer;"></img><br/><br/> 40 Hora do termino:<input id="endhour" size="2" maxlength="2" value="{edatehour}"></input>:<input id="endmin" size="2" maxlength="2" value="{edateminute}"></input><br/><br/> 29 41 <div id="saveLink" class="buttontype" style="width:60px;" onclick="saveEvent(null,document.getElementById('dragEventSubject').value,document.getElementById('dragEventDescription').value,document.getElementById('dragEventLocation').value,_dragArea.initEvent,_dragArea.endEvent);">Save event</div> 30 42
Note: See TracChangeset
for help on using the changeset viewer.