Changeset 573


Ignore:
Timestamp:
01/07/09 15:20:18 (15 years ago)
Author:
niltonneto
Message:

Impĺementações feitas pelo desenvolvedor. (Alexandre Muller

Location:
trunk/calendar_new
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/calendar_new/inc/class.bocalendar.inc.php

    r492 r573  
    8585        } 
    8686 
     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 
    87100        function insertEvent ($datetime, $edatetime, $title, $description, $location) 
    88101        { 
     
    96109 
    97110                // 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)"; 
    100112                if ($this->db->query($query)){ 
    101113                        $query = "INSERT INTO phpgw_cal_user VALUES (".($id['max']+1).", ".$this->user_id.", 'A', 'u')"; 
     
    136148 
    137149                return $return; 
    138  
    139150        } 
    140151} 
  • trunk/calendar_new/inc/class.uicalendar.inc.php

    r492 r573  
    1414                $this -> db_obj = new bocalendar(); 
    1515        } 
    16  
    1716        var $public_functions = array( 
    1817                        'quickAdd' => True, 
     
    201200                return $retorno; 
    202201        } 
     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 
    203222 
    204223}; 
  • trunk/calendar_new/inc/hook_admin.inc.php

    r420 r573  
    2020        display_section($appname,$title,$file); 
    2121?> 
     22 
  • trunk/calendar_new/inc/load_lang.php

    r420 r573  
    1414                } 
    1515        } 
    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"; 
    2419        echo $script; 
     20 
    2521?> 
  • trunk/calendar_new/js/calendar_functions.js

    r464 r573  
    1919        } 
    2020 
    21  
    2221        if(divAddDialog && divAddDialog.style.display != "none"){ 
    2322                divAddDialog.style.display = "none"; 
    2423                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; }; 
    2625                _dragArea.initEvent = null; 
    2726                _dragArea.endEvent = null; 
     
    5453        divAddDialog.style.display = "block"; 
    5554        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  
    6155        var closeButton = document.getElementById('closeDialog'); 
    6256        if (is_ie){ 
     
    6761                closeButton.style.top = '25px'; 
    6862        } 
     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 
    6967 
    7068        this.lastId = _dragArea.endEvent; 
  • trunk/calendar_new/js/common_functions.js

    r492 r573  
    5050                if (!screenTable[tempDate.getDay()]) 
    5151                        screenTable[tempDate.getDay()] = new Array(); 
    52                 currentPos = 1;  
     52                currentPos = 1; 
    5353                if (!screenTable[tempDate.getDay()][start_]) 
    5454                        screenTable[tempDate.getDay()][start_] = 0; 
     
    6767                eventDiv.style.height = "20px"; 
    6868                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;}; 
    7070                eventDiv.onmouseout = function () { this.style.height = "20px"; this.style.zIndex = 1; }; 
    7171                eventDiv.onclick = function () { calendar.getView('div_main','Day','&time='+timeStamp2id(eventDiv.childNodes[1].id).substr(0,8)); }; 
     
    7878                eventDiv.style.width = "60px"; 
    7979                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; }; 
    8181                eventDiv.onmouseout = function () { this.style.width = "60px"; this.style.zIndex = 1; }; 
    8282                eventDiv.onclick = function () { calendar.getView('div_main','Day','&time='+timeStamp2id(eventDiv.childNodes[1].id).substr(0,8)); }; 
     
    8484 
    8585                tdElement.style.height = (tdElement.childNodes.length * 10) + "px"; 
    86          
     86 
    8787                if (tdElement.childNodes.length > 3) 
    8888                        eventDiv.style.margin = "20 0 0 "+(20+(tdElement.childNodes.length-4)*25); 
     
    114114                showDetailLink.innerHTML = '<img onmouseover="this.setAttribute(\'width\', \'15\');"'+ 
    115115                        'onmouseout="this.setAttribute(\'width\', \'10\');"'+ 
    116                         ' title="'+get_lang('details')+'" alt="'+get_lang('details')+'"'+  
     116                        ' title="'+get_lang('details')+'" alt="'+get_lang('details')+'"'+ 
    117117                        ' src="templates/default/images/plus.png"></img>'; 
    118118                showDetailLink.style.position = "absolute"; 
     
    130130 
    131131function 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>"; 
    135146 
    136147        var divAddDialog = document.getElementById("divAddDialog"); 
     
    151162 
    152163function showDetails(eventId){ 
    153         var handler_getDetails = function (data)  
     164        var handler_getDetails = function (data) 
    154165        { 
    155166                var divAddDialog = document.getElementById("divAddDialog"); 
     
    169180                var saveBut = document.getElementById("saveLink"); 
    170181                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                } 
    172202        XMLTools.__RETURN_MODE__ = 'XML'; 
    173203        XMLTools.request('$this.uicalendar.getDetails&id='+eventId.id.substr(6), 'GET', handler_getDetails); 
     
    207237function saveEvent (id, title, description, locat, startTime, endTime){ 
    208238        if (id != null){ 
    209                 return changeEvent(id,'location',locat); 
    210         } 
    211                  
     239                return changeEvent(id,'all_fields',locat); 
     240        } 
     241 
    212242        var endDate = new Date(); 
    213243        endDate.setTime(id2timeStamp(endTime)+1800000); 
     
    296326                                        createEventDiv(objEvent); 
    297327                                        break; 
     328                                case 'all_fields': 
    298329                                default: 
    299                                         alert('not implemented'); 
     330                                        alert(field+': not implemented'); 
    300331                        } 
    301332        } 
     
    325356} 
    326357 
    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. 
     359function 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+"*"; 
    344367 
    345368        if(_arg1 || _arg2 ||_arg3 || _arg4) { 
     
    351374                } 
    352375        } 
     376 
    353377        return _value; 
    354378} 
     379 
    355380 
    356381function resizeEvent (eventDiv) { 
  • trunk/calendar_new/js/drag_area.js

    r464 r573  
    3434        } 
    3535        var id = is_ie ? window.event.srcElement.id : e.target.id; 
     36        var continues = true; 
    3637        var colorCell = function (id,style){ 
    3738                try { 
     
    3940                } 
    4041                catch(e) 
    41                 { document.style.background = "#000"; }; 
     42                { continues = false; }; 
    4243        }; 
    4344 
     
    5354                if (this.endEvent < this.initEvent) 
    5455                        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,'-'))  
    5657                                        colorCell(hour,"#EEE"); 
    5758                        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,'-'))  
    5960                                        colorCell(hour,""); 
    6061                else 
    6162                        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,'+')) 
    6364                                        colorCell(hour,""); 
    6465                        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,'+')) 
    6667                                        colorCell(hour,"#EEE"); 
    6768                this.endEvent=id; 
     
    9697 
    9798counter = 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"; 
     99DragArea.prototype.moveWindow = function(e,elem) { 
    102100        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"; 
    105104        } 
    106105} 
  • trunk/calendar_new/setup/setup.inc.php

    r420 r573  
    1414        /* Conf Table */ 
    1515         
    16         $setup_info['calendar_new']['author'] = 'Celepar 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'; 
    1919 
    20         $setup_info['calendar_new']['license']          = 'GPL'; 
     20        $setup_info['calendar_new']['license']          = 'GPL v2'; 
    2121        $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 
    2228 
    2329        /* The hooks this app includes, needed for hooks registration */ 
    2430        $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         
    2644        /* Dependencies for this app to work */ 
    2745        $setup_info['calendar_new']['depends'][] = array( 
  • trunk/calendar_new/xsl/addDialog.xsl

    r492 r573  
    22<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    33<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)"> 
    65<tbody> 
    76<tr style="height: 24px;"> 
     
    4140                                <td> 
    4241                                        <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> 
    4443                        </tr> 
    4544        </tbody></table> 
     
    5958</tbody> 
    6059</table> 
    61 </div> 
    6260</xsl:template> 
    6361</xsl:stylesheet> 
  • trunk/calendar_new/xsl/detailsDialog.xsl

    r492 r573  
    22<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    33<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)"> 
    55<tbody> 
    66<tr style="height: 24px;"> 
     
    2121                        <xsl:variable name="description" select="description" /> 
    2222                        <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" /> 
    2329                        Titulo:<br/> 
    2430                        <input type="text" id="dragEventSubject" value="{title}" size="30"></input><br/> 
     
    2632                        <input type="text" id="dragEventDescription" value="{description}" size="50"></input><br/> 
    2733                        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/> 
    2941                        <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> 
    3042 
Note: See TracChangeset for help on using the changeset viewer.