Changeset 437


Ignore:
Timestamp:
09/18/08 15:18:00 (16 years ago)
Author:
niltonneto
Message:

Alterações feitas por Alexandre Muller.
Email: amuller@…

Location:
trunk/calendar_new
Files:
1 added
11 edited

Legend:

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

    r429 r437  
    129129        } 
    130130        function getViewMonth () { 
    131                 $todayTime = strtotime(date('Y-m-d', time())); 
    132                 $retorno = "<today>".date('Ydm', time())."</today>"; 
     131                $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())); 
     132 
     133                $todayTime = strtotime(date('Y-m', $monthViewTime)."-01"); 
     134                $retorno = "<today>".date('Ydm', $monthViewTime)."</today>"; 
    133135 
    134136                $fromBo = $this->db_obj->requestMonthCal($todayTime); 
    135                  
    136                 for ($i=1;$i<=date('t');$i+=7){ 
    137                         $retorno.= "<workWeek>"; 
    138                         $retorno.= "<workday><id>".date('Y').($i<10?"0":"").$i.date('m')."0000</id></workday>"; 
    139                         $retorno.= "<workday><id>".date('Y').($i<9?"0":"").($i+1).date('m')."0000</id></workday>"; 
    140                         $retorno.= "<workday><id>".date('Y').($i<8?"0":"").($i+2).date('m')."0000</id></workday>"; 
    141                         $retorno.= "<workday><id>".date('Y').($i<7?"0":"").($i+3).date('m')."0000</id></workday>"; 
    142                         $retorno.= "<workday><id>".date('Y').($i<6?"0":"").($i+4).date('m')."0000</id></workday>"; 
    143                         $retorno.= "<workday><id>".date('Y').($i<5?"0":"").($i+5).date('m')."0000</id></workday>"; 
    144                         $retorno.= "<workday><id>".(date('Y').($i<4?"0":"").$i+6).date('m')."0000</id></workday>"; 
    145                         $retorno.= "</workWeek>"; 
     137 
     138                for ($i=1;$i<=date('t',$monthViewTime);$i++){ 
     139                        if (($i % 7) == 1) 
     140                                $retorno .= "<workWeek>"; 
     141                        $retorno .= "<workday><id>".date('Y',$monthViewTime).($i<10?"0":"").$i.date('m',$monthViewTime)."0000</id></workday>"; 
     142                        if (($i % 7) == 0) 
     143                                $retorno .= "</workWeek>"; 
    146144                } 
    147                  
    148                 for($i = $this->workweekstarts; $i <= $this->workweekends; $i++){ 
     145                if (($i % 7) <= 6) 
     146                        $retorno .= "</workWeek>"; 
     147 
     148                $currentWeekDay = date('w', $monthViewTime); 
     149 
     150                for($i = $this->workweekstarts+$currentWeekDay; $i <= $this->workweekends+$currentWeekDay; $i++){ 
    149151                        // Dayid is year+month+dayofMonth (currentDay-(dayofWeek+$i)) 
    150                         $retorno.= "<dayofweek><dayname>".$this->daysofweek[$i]."</dayname></dayofweek>"; 
     152                        $retorno.= "<dayofweek><dayname>".$this->daysofweek[$i%7]."</dayname></dayofweek>"; 
    151153                 } 
    152154 
  • trunk/calendar_new/js/calendar_functions.js

    r429 r437  
    3838                document.getElementById("div_main").filters.alpha.opacity=50; 
    3939        } catch (e) {}; 
    40          
     40 
    4141        var data = '<text><date>'+calendar.parseDate(id2timeStamp(_dragArea.initEvent))+'</date><time>'+ calendar.parseTime(_dragArea.initEvent,_dragArea.endEvent)+'</time></text>'; 
    4242        var xsl = XMLTools.load('xsl/addDialog.xsl?'+ Date.parse(new Date)); 
     
    5757        document.getElementById('dragEventSubject').focus(); 
    5858        document.getElementById('addEventLink').innerHTML = get_lang("Add this event"); 
     59 
     60        var closeButton = document.getElementById('closeDialog'); 
     61        if (is_ie){ 
     62                closeButton.style.left = '285px'; 
     63                closeButton.style.top = '5px'; 
     64        }else{ 
     65                closeButton.style.left = '320px'; 
     66                closeButton.style.top = '25px'; 
     67        } 
    5968 
    6069        this.lastId = _dragArea.endEvent; 
     
    8190                                nextWeek.setDate(nextWeek.getDate()+7);  
    8291                                this.nextView = nextWeek.getYear()+1900+""+(nextWeek.getDate()<10?"0":"")+nextWeek.getDate()+""+(nextWeek.getMonth()+1<10?"0":"")+(nextWeek.getMonth()+1); 
    83                                 } 
     92                        } 
    8493                        if (viewType == "Day"){ 
    8594                                var previousDay = new Date; 
     
    9099                                this.nextView = nextDay.getYear()+1900+""+(nextDay.getDate()<10?"0":"")+nextDay.getDate()+""+(nextDay.getMonth()+1<10?"0":"")+(nextDay.getMonth()+1); 
    91100                        } 
     101                        if (viewType == 'Month'){ 
     102                                var previousMonth = new Date; 
     103                                previousMonth.setTime(id2timeStamp(document.getElementById('day').firstChild.id)); 
     104                                previousMonth.setMonth(previousMonth.getMonth()-1); 
     105                                this.previousView = previousMonth.getYear()+1900+""+(previousMonth.getDate()<10?"0":"")+previousMonth.getDate()+""+(previousMonth.getMonth()+1<10?"0":"")+(previousMonth.getMonth()+1); 
     106                                var nextMonth = new Date; 
     107                                nextMonth.setTime(id2timeStamp(document.getElementById('day').firstChild.id)); 
     108                                nextMonth.setMonth(nextMonth.getMonth()+1); 
     109                                this.nextView = nextMonth.getYear()+1900+""+(nextMonth.getDate()<10?"0":"")+nextMonth.getDate()+""+(nextMonth.getMonth()+1<10?"0":"")+(nextMonth.getMonth()+1); 
     110                        } 
    92111                        document.getElementById("l_date").innerHTML =  "<a href=\"javascript:calendar.getView('div_main','"+viewType+"','&time='+this.previousView);\">\<\<&nbsp;</a>"; 
    93112                        if (viewType == "Week") 
    94113                                document.getElementById("l_date").innerHTML += calendar.parseWeek(id2timeStamp(document.getElementById('day').firstChild.id)); 
    95                         else 
     114                        if  (viewType == "Day") 
    96115                                document.getElementById("l_date").innerHTML += calendar.parseDate(id2timeStamp(document.getElementById('day').firstChild.id)); 
     116                        if (viewType == "Month") 
     117                                document.getElementById("l_date").innerHTML += calendar.parseMonth(id2timeStamp(document.getElementById('day').firstChild.id)); 
    97118                        document.getElementById("l_date").innerHTML += "<a href=\"javascript:calendar.getView('div_main','"+viewType+"','&time='+this.nextView);\">&nbsp;\>\></a>"; 
    98119 
    99                 }catch(e){ alert(e); } 
     120                }catch(e){ alert(e+"\n"+e.description); } 
    100121                var events = document.getElementById('returnEvents'); 
    101122                while(typeof(events.firstChild.id) == 'string'){         
     
    167188        return get_lang("Week Number %1 of %2",Week,Year); 
    168189} 
     190Calendar.prototype.parseMonth = function (timeStamp) { 
     191        obj=new Date(); 
     192        obj.setTime(timeStamp); 
     193        switch(obj.getMonth()) { 
     194                case 0: month = "January"; break; 
     195                case 1: month = "February"; break; 
     196                case 2: month = "March"; break; 
     197                case 3: month = "April"; break; 
     198                case 4: month = "May"; break; 
     199                case 5: month = "June"; break; 
     200                case 6: month = "July"; break; 
     201                case 7: month = "August"; break; 
     202                case 8: month = "September"; break; 
     203                case 9: month = "October"; break; 
     204                case 10: month = "November"; break; 
     205                case 11: month = "December"; break; 
     206                default: month = ""; break; 
     207        } 
     208        return get_lang(month); 
     209} 
    169210Calendar.prototype.parseDate = function (timeStamp) { 
    170211        var obj = new Date(); 
    171212        obj.setTime(timeStamp); 
    172213 
     214        var day; 
    173215        switch(obj.getDay()) {   
    174216                case 0: day = "Sunday"; break;   
     
    180222                case 6: day = "Saturday"; break;   
    181223                default: day = ""; break; 
    182         }        
    183     
     224        } 
     225 
     226        var month; 
    184227        switch(obj.getMonth()) {   
    185228                case 0: month = "January"; break;   
     
    196239                case 11: month = "December"; break;   
    197240                default: month = ""; break; 
    198         }        
    199         year = parseInt(obj.getYear())+1900; 
     241        } 
     242 
     243        year = (is_ie?parseInt(obj.getYear()):parseInt(obj.getYear())+1900); 
     244         
    200245        return get_lang(day)+", "+obj.getDate()+" "+get_lang("of")+" "+get_lang(month)+" "+get_lang("of")+" "+year; // FIXME USE FORMAT DATE AS PREFERENCE 
    201246} 
  • trunk/calendar_new/js/common_functions.js

    r420 r437  
    2121        var end_ = timeStamp2id(eventDiv.childNodes[2].id).substr(8); 
    2222        var start_ = parseInt(timeStamp2id(eventDiv.childNodes[1].id).substr(8),10); 
     23 
    2324        if (viewType == "Day"){ 
    2425                if (!screenTable[weekDay]) 
     
    4243                resizeDiv.id = "resize_" + eventDiv.id; 
    4344                resizeDiv.className = 'resize_div'; 
    44                 resizeDiv.style.right = (parseInt(eventDiv.style.width)-10)*-1+"px;"; 
    45                 resizeDiv.style.bottom = ((parseInt(eventDiv.style.height)-24)*-1)+"px;"; 
     45                resizeDiv.style.right = ((parseInt(eventDiv.style.width)-10)*-1)+"px"; 
     46                resizeDiv.style.bottom = ((parseInt(eventDiv.style.height)-24)*-1)+"px"; 
    4647                resizeDiv.onmousedown = function() { resizeEvent(eventDiv); }; 
    4748                eventDiv.appendChild(resizeDiv); 
     
    6970                eventDiv.style.height = "20px"; 
    7071                eventDiv.style.cursor = "pointer"; 
    71                 eventDiv.onmouseover = function () { this.style.height = (parseInt(this.style.height)+40)+"px"; }; 
    72                 eventDiv.onmouseout = function () { this.style.height = (parseInt(this.style.height)-40)+"px"; }; 
     72                eventDiv.onmouseover = function () { this.style.height = (parseInt(this.style.height)+40)+"px"; this.style.zIndex = 2; }; 
     73                eventDiv.onmouseout = function () { this.style.height = (parseInt(this.style.height)-40)+"px"; this.style.zIndex = 1; }; 
    7374                eventDiv.onclick = function () { calendar.getView('div_main','Day','&time='+timeStamp2id(eventDiv.childNodes[2].id).substr(0,8)); }; 
    7475        } 
     76 
    7577        var tdElement = document.getElementById(timeStamp2id(eventDiv.childNodes[1].id)); 
    7678 
    7779        if (viewType == "Month"){ 
    78                 eventDiv.style.width = "90px"; 
    79                 eventDiv.style.heigth = "20px"; 
    8080                var tdElement = document.getElementById(timeStamp2id(eventDiv.childNodes[1].id).substr(0,8)+'0000'); 
    81         } 
    82  
    83         eventDiv.style.top  =  (tdElement.offsetTop + 145) + "px" ; 
     81                eventDiv.style.width = "60px"; 
     82                eventDiv.style.height = "15px"; 
     83                eventDiv.onclick = function () { calendar.getView('div_main','Day','&time='+timeStamp2id(eventDiv.childNodes[2].id).substr(0,8)); }; 
     84                eventDiv.style.cursor = "pointer"; 
     85 
     86                tdElement.style.height = (tdElement.childNodes.length * 10) + "px"; 
     87         
     88                if (tdElement.childNodes.length > 3) 
     89                        eventDiv.style.margin = "20 0 0 "+(20+(tdElement.childNodes.length-4)*25);       
     90                else 
     91                        eventDiv.style.margin = "0 0 0 "+(20+(tdElement.childNodes.length-1)*25); 
     92        } 
     93 
     94        eventDiv.style.top  =  (tdElement.offsetTop + 145) + "px"; 
    8495        tdElement.appendChild(eventDiv); 
    8596} 
     
    129140function removeEvent (id) { 
    130141        var handler_removeEvent = function (data) { 
    131                 var serverRet = data.firstChild.childNodes[0]; 
    132                 var retStatus = serverRet.substringData(0,4); 
     142                var xsl = XMLTools.load('xsl/returnData.xsl?'+ Date.parse(new Date)); 
     143                var serverRet = XMLTools.transform(data, xsl); 
     144                serverRet = serverRet.substr(serverRet.indexOf('>')+1); 
     145                var retStatus = serverRet.substr(0,5); 
    133146                if (retStatus == "false") 
    134                         write_msg(get_lang("Error") + ": " + serverRet.data) 
     147                        write_msg(get_lang("Error") + ": " + serverRet) 
    135148                else{ 
    136149                        var eventDiv = document.getElementById("event_"+id); 
     
    154167 
    155168        var handler_quickAdd = function (data) { 
     169                var xsl = XMLTools.load('xsl/returnData.xsl?'+ Date.parse(new Date)); 
     170                var serverRet = XMLTools.transform(data, xsl); 
     171                serverRet = serverRet.substr(serverRet.indexOf('>')+1); 
    156172                calendar.dialog('infowindow'); 
    157  
    158                 var serverRet = data.firstChild.childNodes[0]; 
    159                 var retStatus = serverRet.substringData(0,5); 
    160  
     173                var retStatus = serverRet.substr(0,5); 
    161174                if (retStatus == "false") 
    162                         write_msg(get_lang("Error") + ": " + get_lang(serverRet.data.substr(6))); 
     175                        write_msg(get_lang("Error") + ": " +get_lang(serverRet.substr(6))); 
    163176                else{ 
    164177                        var tdElement = document.getElementById(startTime); 
    165178                        var eventDiv = document.createElement('DIV'); 
    166                         eventDiv.id = "event_" + serverRet.substringData(6,serverRet.data.length); 
     179                        eventDiv.id = "event_" + serverRet.substr(6,serverRet.length); 
    167180                        eventDiv.innerHTML = description; 
    168181                        var endDateDiv = document.createElement('DIV'); 
     
    186199 
    187200        var handler_changeEvent = function (data){ 
    188                 var serverRet = data.firstChild.childNodes[0]; 
    189                 var retStatus = serverRet.substringData(1,5); 
     201                var xsl = XMLTools.load('xsl/returnData.xsl?'+ Date.parse(new Date)); 
     202                var serverRet = XMLTools.transform(data, xsl); 
     203                serverRet = serverRet.substr(serverRet.indexOf('>')+1); 
     204                var retStatus = serverRet.substr(1,5); 
    190205                if (retStatus == "false") 
    191                         write_msg(get_lang("Error") + ": " + serverRet.data) 
     206                        write_msg(get_lang("Error") + ": " + serverRet) 
    192207                else 
    193208                        switch (field) { 
     
    213228        var tmpDate = new Date(); 
    214229        tmpDate.setTime(timeStamp); 
    215         return (tmpDate.getYear()+1900)+""+ 
     230        return (tmpDate.getYear()+(is_ie?0:1900))+""+ 
    216231                (tmpDate.getDate()<10?"0"+tmpDate.getDate():tmpDate.getDate())+ 
    217232                (tmpDate.getMonth()<9?"0"+(tmpDate.getMonth()+1):(tmpDate.getMonth()+1))+ 
  • trunk/calendar_new/js/drag_area.js

    r429 r437  
    3939                } 
    4040                catch(e) 
    41                 { document.style.background = "#000;"; }; 
     41                { document.style.background = "#000"; }; 
    4242        }; 
    4343 
     
    5454                        if (id <= this.endEvent) 
    5555                                for (var hour = parseInt(this.initEvent); hour >= parseInt(id);hour=incHour(hour,'-'))  
    56                                         colorCell(hour,"#EEE;"); 
     56                                        colorCell(hour,"#EEE"); 
    5757                        else 
    5858                                for (var hour = parseInt(id); hour >= parseInt(this.endEvent);hour=incHour(hour,'-'))  
     
    6464                        else 
    6565                                for (var hour = parseInt(this.initEvent); hour <= parseInt(id);hour=incHour(hour,'+')) 
    66                                         colorCell(hour,"#EEE;"); 
     66                                        colorCell(hour,"#EEE"); 
    6767                this.endEvent=id; 
    6868                return true; 
  • trunk/calendar_new/templates/default/index.tpl

    r420 r437  
    99<img id="yearLinkView" src="templates/default/images/year.png"></img></a> 
    1010<br> 
    11 <div style="width:100%;height:100%" id="div_main"></div>"; 
     11<div style="width:100%;height:100%" id="div_main"></div> 
    1212 
    1313<!-- END index --> 
  • trunk/calendar_new/templates/default/main.css

    r429 r437  
    7070        background-color: rgb(239, 239, 231); 
    7171        -moz-border-radius: 5px 5px 5px 5px; 
    72         width: 100px; 
     72        width: 130px; 
    7373        border: 2px #AAA solid; 
    7474        color:  #1111AA; 
  • trunk/calendar_new/xsl/addDialog.xsl

    r420 r437  
    3434        <br/> 
    3535        <div id="addEventLink" class="buttontype" onclick="quickAddEvent(document.getElementById('dragEventSubject').value,_dragArea.initEvent,_dragArea.endEvent);">Add event</div> 
    36         <img onclick="calendar.dialog()" width="14" height="13" src="templates/default/images/close.gif" style="position: absolute; z-index: 184; cursor: pointer; left: 320px; top: 25px;"/> 
     36        <img id="closeDialog" onclick="calendar.dialog()" src="templates/default/images/close.gif" style="position: absolute; z-index: 184; cursor: pointer;"/> 
    3737        </div> 
    3838        </td> 
  • trunk/calendar_new/xsl/viewMonth.xsl

    r429 r437  
    77</div> 
    88<div width="100%" class="title" align="left" ><label id="l_date"></label><br/><br/> 
    9         <table class="table_common" width="100%" height="100%" cellpadding="0" cellspacing="0" border="0"> 
     9        <table class="table_common" height="auto" width="100%" cellpadding="0" cellspacing="0"> 
    1010                <tbody> 
    11                         <tr class="td_common" width="1%"> 
    12  
    13                                 <table class="table_common" height="100%" width="100%" cellpadding="0" cellspacing="0"> 
    14                                         <tr id="tr_week"> 
    15                                                 <xsl:for-each select="dayofweek"> 
    16                                                         <xsl:variable name="dayName" select="dayname" /> 
    17                                                         <td id="weekHeader_{$dayName}" class="td_header" height="1%"> 
    18                                                                 <xsl:value-of select='$dayName' /> 
    19                                                         </td> 
    20                                                 </xsl:for-each> 
    21                                         </tr> 
    22                                         <xsl:for-each select="/retorno/workWeek"> 
    23                                                 <tr> 
    24                                                         <xsl:for-each select="workday"> 
    25                                                                 <xsl:variable name="day" select="id" /> 
    26                                                                 <td class="td_day" id="{$day}"> 
    27                                                                         <xsl:value-of select='substring($day,5,2)' /> 
    28                                                                 </td> 
    29                                                         </xsl:for-each> 
    30                                                 </tr> 
     11                        <tr id="tr_week"> 
     12                                <xsl:for-each select="dayofweek"> 
     13                                        <xsl:variable name="dayName" select="dayname" /> 
     14                                        <td id="weekHeader_{$dayName}" class="td_header" height="1%"> 
     15                                                <xsl:value-of select='$dayName' /> 
     16                                        </td> 
     17                                </xsl:for-each> 
     18                        </tr> 
     19                        <xsl:for-each select="/retorno/workWeek"> 
     20                                <tr> 
     21                                        <xsl:for-each select="workday"> 
     22                                                <xsl:variable name="day" select="id" /> 
     23                                                <td class="td_day" id="{$day}"> 
     24                                                        <xsl:value-of select='substring($day,5,2)' /> 
     25                                                </td> 
    3126                                        </xsl:for-each> 
    32  
    33                                 </table>         
    34                         </tr> 
     27                                </tr> 
     28                        </xsl:for-each> 
    3529                </tbody> 
    36         </table>         
     30        </table> 
    3731</div> 
    3832<div id="returnEvents"> 
Note: See TracChangeset for help on using the changeset viewer.