Ignore:
Timestamp:
02/06/09 08:41:18 (15 years ago)
Author:
niltonneto
Message:

Alterações feitas pelo desenvolvedor, referente ao expressoCalendar (nova agenda).
Alexandre MUller => amuller@…

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoCalendar/js/common_functions.js

    r632 r665  
    1212} 
    1313 
    14 // This array stores the events in table to avoid conflict in screen 
    15 var screenTable = new Array(); 
    16 var today = new Date(); 
    17 var weekDay = today.getDay(); 
    18 function createEventDiv(eventDiv){ 
    19         eventDiv.className = "event_div"; 
    20         eventDiv.style.height = parseInt(eventDiv.childNodes[1].id-eventDiv.childNodes[0].id)/120000+"px"; 
    21         var end_ = timeStamp2id(eventDiv.childNodes[1].id).substr(8); 
    22         var start_ = parseInt(timeStamp2id(eventDiv.childNodes[0].id).substr(8),10); 
    23         if (viewType == "Day"){ 
    24                 if (!screenTable[weekDay]) 
    25                         screenTable[weekDay] = new Array(); 
    26                 eventDiv.style.width = "190px"; 
    27  
    28                 currentPos = 1; 
    29                 for (var hour = parseInt(start_,10); hour < parseInt(end_,10);(hour%100 == 30)?hour+=70:hour+=30){ 
    30                         if (!screenTable[weekDay][hour]) 
    31                                 screenTable[weekDay][hour] = 0; 
    32  
    33                         if (currentPos <= screenTable[weekDay][hour]) 
    34                                 currentPos = screenTable[weekDay][hour]+1; 
    35                 } 
    36                 for (var hour = parseInt(start_,10); hour < parseInt(end_,10);(hour%100 == 30)?hour+=70:hour+=30) 
    37                         screenTable[weekDay][hour] = currentPos; 
    38                 eventDiv.style.left  = 90+(205*(currentPos-1)) + "px" ; 
    39                 eventDiv.onmouseover = function(){ createButtons(eventDiv); }; 
    40                 eventDiv.onmouseout = function(){ removeButtons(eventDiv); }; 
    41                 var resizeDiv = document.createElement('DIV'); 
    42                 resizeDiv.id = "resize_" + eventDiv.id; 
    43                 resizeDiv.className = 'resize_div'; 
    44                 resizeDiv.onmousedown = function() { resizeEvent(eventDiv); }; 
    45                 eventDiv.appendChild(resizeDiv); 
    46         } 
    47         if (viewType == "Week"){ 
    48                 var tempDate = new Date; 
    49                 tempDate.setTime(eventDiv.childNodes[1].id); 
    50                 if (!screenTable[tempDate.getDay()]) 
    51                         screenTable[tempDate.getDay()] = new Array(); 
    52                 currentPos = 1; 
    53                 if (!screenTable[tempDate.getDay()][start_]) 
    54                         screenTable[tempDate.getDay()][start_] = 0; 
    55  
    56                 if (currentPos <= screenTable[tempDate.getDay()][start_]) 
    57                         currentPos = screenTable[tempDate.getDay()][start_]+1; 
    58                 screenTable[tempDate.getDay()][start_] = currentPos; 
    59  
    60                 var widthValue = 100; 
    61                 eventDiv.style.width = widthValue+"px"; 
    62  
    63                 var headerElement = document.getElementById('weekHeader_'+timeStamp2id(eventDiv.childNodes[1].id).substr(0,8)); 
    64                 if (currentPos > 1) 
    65                         eventDiv.style.left = (10+(tempDate.getDay()*122)+(widthValue*currentPos))+"px"; 
    66                 headerElement.style.width = (widthValue*currentPos)+"px"; 
    67                 eventDiv.style.height = "20px"; 
    68                 eventDiv.style.cursor = "pointer"; 
    69                 eventDiv.onmouseover = function () { this.style.height = "auto"; this.style.zIndex = 2;}; 
    70                 eventDiv.onmouseout = function () { this.style.height = "20px"; this.style.zIndex = 1; }; 
    71                 eventDiv.onclick = function () { calendar.getView('div_main','Day','&time='+timeStamp2id(eventDiv.childNodes[1].id).substr(0,8)); }; 
    72         } 
    73  
    74         var tdElement = document.getElementById(timeStamp2id(eventDiv.childNodes[0].id)); 
    75  
    76         if (viewType == "Month"){ 
    77                 var tdElement = document.getElementById(timeStamp2id(eventDiv.childNodes[0].id).substr(0,8)+'0000'); 
    78                 eventDiv.style.width = "60px"; 
    79                 eventDiv.style.height = "15px"; 
    80                 eventDiv.onmouseover = function () { if (this.childNodes[2].length > 9) this.style.width = "auto"; this.style.zIndex = 2; }; 
    81                 eventDiv.onmouseout = function () { this.style.width = "60px"; this.style.zIndex = 1; }; 
    82                 eventDiv.onclick = function () { calendar.getView('div_main','Day','&time='+timeStamp2id(eventDiv.childNodes[1].id).substr(0,8)); }; 
    83                 eventDiv.style.cursor = "pointer"; 
    84  
    85                 tdElement.style.height = (tdElement.childNodes.length * 10) + "px"; 
    86  
    87                 if (tdElement.childNodes.length > 3) 
    88                         eventDiv.style.margin = "20 0 0 "+(20+(tdElement.childNodes.length-4)*25); 
    89                 else 
    90                         eventDiv.style.margin = "0 0 0 "+(20+(tdElement.childNodes.length-1)*25); 
    91         } 
    92  
    93         eventDiv.style.top  =  (tdElement.offsetTop + 145) + "px"; 
    94         tdElement.appendChild(eventDiv); 
     14function write_error (message){ 
     15        if (headerMsgLock){ 
     16                setTimeout('write_error("'+message+'");', 300); 
     17                return; 
     18        } 
     19        headerMsgLock = true; 
     20        headerDiv = document.getElementById("divAppboxHeader"); 
     21        var labelBefore = headerDiv.innerHTML; 
     22        headerDiv.innerHTML = '<table width=100% cellspacing="0" cellpadding="0" border="0"><tbody><tr><th width="40%"></th><th noWrap class="action_error_th">'+message+'</th><th width="40%"></th></tr></tbody></table>'; 
     23        setTimeout('headerMsgLock = false; document.getElementById("divAppboxHeader").innerHTML = \"'+labelBefore+'\";', 2000); 
    9524} 
    9625 
     
    12857        } 
    12958} 
    130  
    131 function addDetails(title,description,datetime,edatetime){ 
    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>"; 
    146  
    147         var divAddDialog = document.getElementById("divAddDialog"); 
    148         var xsl = XMLTools.load('xsl/detailsDialog.xsl?'+ Date.parse(new Date)); 
    149         if(!divAddDialog) { 
    150                 divAddDialog = document.createElement("DIV"); 
    151                 divAddDialog.id = 'divAddDialog'; 
    152                 divAddDialog.style.zIndex = "10"; 
    153                 divAddDialog.style.position = "absolute"; 
    154                 divAddDialog.style.display = "none"; 
    155                 document.body.appendChild(divAddDialog); 
    156         } 
    157         divAddDialog.style.left = "300px"; 
    158         divAddDialog.style.top  = "200px"; 
    159         divAddDialog.innerHTML = xtools.parse(data, xsl); 
    160         divAddDialog.style.display = "block"; 
    161 } 
     59function submitDetailsHandler () { 
     60        var iframe = document.getElementById('nullFrame'); 
     61        var Fdoc = iframe.contentDocument || iframe.contentWindow; 
     62        statusSpan = Fdoc.getElementById('formStatus'); 
     63        if (statusSpan) 
     64        { 
     65                var ErMessage = statusSpan.innerHTML.replace(/<[^>]*>/,''); 
     66                write_error(ErMessage); 
     67                divAddDialog = document.getElementById("divAddDialog"); 
     68                divAddDialog.appendChild(Fdoc.getElementsByName('app_form')[0]); 
     69                divAddDialog.style.display = "block"; 
     70        } 
     71        else 
     72        { 
     73                if (Fdoc.getElementById('calendar_overlap_table')){ 
     74                        write_error(get_lang('scheduling conflict')); 
     75                        divAddDialog = document.getElementById("divAddDialog"); 
     76                        document.getElementsByName('app_form')[0].innerHTML = Fdoc.getElementById('divAppbox').innerHTML; 
     77                        document.getElementById('ignore_button').style.display = "none"; 
     78                        document.getElementById('redit_button').style.display = "none"; // TODO: Update the action to submit in background 
     79                        divAddDialog.style.display = "block"; 
     80                } 
     81                else 
     82                        write_msg(get_lang('Event updated successfully')); 
     83        } 
     84        connector.hideProgressBar(); 
     85} 
     86 
     87        function addDetails(title,description,datetime,edatetime){ 
     88                if (!edatetime) 
     89                        edatetime = ""; 
     90                if (!datetime || datetime.length == 0) 
     91                        datetime = edatetime; 
     92                var handler_embeddedHTML = function (data) { 
     93                        var divAddDialog = document.getElementById("divAddDialog"); 
     94                        if(!divAddDialog) 
     95                        { 
     96                                divAddDialog = document.createElement("DIV"); 
     97                                divAddDialog.id = 'divAddDialog'; 
     98                                divAddDialog.style.zIndex = "10"; 
     99                                divAddDialog.style.position = "absolute"; 
     100                                divAddDialog.style.display = "none"; 
     101                                document.body.appendChild(divAddDialog); 
     102                        } 
     103                        divAddDialog.style.left = "100px"; 
     104                        divAddDialog.style.top  = "100px"; 
     105                        var xsl = XMLTools.load('xsl/windowDialog.xsl'); 
     106                        xml = "<return></return>"; 
     107                        divAddDialog.innerHTML = xtools.parse(xml, xsl); 
     108                        document.getElementById('form_content').innerHTML = data; 
     109                        submitButton = document.getElementById('submit_button'); 
     110                        submitButton.onclick = function () { cExecuteForm('/index.php?menuaction=calendar.bocalendar.update',document.getElementsByName('app_form')[0],'submitDetailsHandler'); return false; } 
     111                        cancelButton = document.getElementById('cancel_button'); 
     112                        cancelButton.onclick = function () { calendar.dialog(); return false; } 
     113                        deleteButton = document.getElementById('delete_button'); 
     114                        deleteButton.onclick = function () { removeEvent(eventId.id.substr(6)); calendar.dialog(); return false; } 
     115                        divAddDialog.style.display = "block"; 
     116                } 
     117                cExecute('../index.php?menuaction=calendar.uicalendar.add&plain=True&date='+datetime.substr(0,4)+datetime.substr(6,2)+datetime.substr(4,2)+'&hour='+datetime.substr(8,2)+'&minute='+datetime.substr(10,2),handler_embeddedHTML); 
     118        } 
    162119 
    163120function showDetails(eventId){ 
    164         var handler_getDetails = function (data) 
    165         { 
     121        var handler_embeddedHTML = function (data) { 
    166122                var divAddDialog = document.getElementById("divAddDialog"); 
    167                 var xsl = XMLTools.load('xsl/detailsDialog.xsl?'+ Date.parse(new Date)); 
    168                 if(!divAddDialog) { 
     123                var xsl = XMLTools.load('xsl/windowDialog.xsl'); 
     124                if(!divAddDialog) 
     125                { 
    169126                        divAddDialog = document.createElement("DIV"); 
    170127                        divAddDialog.id = 'divAddDialog'; 
     
    174131                        document.body.appendChild(divAddDialog); 
    175132                } 
    176                 divAddDialog.style.left = "300px"; 
    177                 divAddDialog.style.top  = "200px"; 
    178                 divAddDialog.innerHTML = xtools.parse(data, xsl); 
     133                divAddDialog.style.left = "100px"; 
     134                divAddDialog.style.top  = "100px"; 
     135                xml = "<return></return>"; 
     136                divAddDialog.innerHTML = xtools.parse(xml, xsl); 
     137                document.getElementById('form_content').innerHTML = data; 
     138                submitButton = document.getElementById('submit_button'); 
     139                submitButton.onclick = function () { cExecuteForm('/index.php?menuaction=calendar.bocalendar.update',document.getElementsByName('app_form')[0],'submitDetailsHandler'); calendar.dialog(); return false; } 
     140                try 
     141                { 
     142                        cancelButton = document.getElementById('cancel_button'); 
     143                        cancelButton.onclick = function () { calendar.dialog(); return false; } 
     144                } 
     145                catch (e) 
     146                { 
     147                        cancelButton = document.createElement('INPUT'); 
     148                        cancelButton.type = "submit"; 
     149                        cancelButton.value = get_lang('cancel'); 
     150                        cancelButton.onclick = function () { calendar.dialog(); return false; } 
     151                        document.getElementsByName('app_form')[0].appendChild(cancelButton); 
     152                }; 
     153                deleteButton = document.getElementById('delete_button'); 
     154                deleteButton.onclick = function () { removeEvent(eventId.id.substr(6)); calendar.dialog(); return false; } 
    179155                divAddDialog.style.display = "block"; 
    180                 var saveBut = document.getElementById("saveLink"); 
    181                 saveBut.onclick = function () { saveEvent(eventId); } 
    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                 } 
    202         XMLTools.__RETURN_MODE__ = 'XML'; 
    203         XMLTools.request('$this.uicalendar.getDetails&id='+eventId.id.substr(6), 'GET', handler_getDetails); 
     156        } 
     157        cExecute('../index.php?menuaction=calendar.uicalendar.edit&cal_id='+eventId.id.substr(6)+'&plain=True',handler_embeddedHTML); 
    204158} 
    205159function removeButtons(eventDiv){ 
     
    215169        var handler_removeEvent = function (data) { 
    216170                var xsl = XMLTools.load('xsl/returnData.xsl?'+ Date.parse(new Date)); 
    217                 var serverRet = xtools.parse(data, xsl); 
     171                var serverRet = xtools.parse(data, xsl); 
    218172                serverRet = serverRet.substr(serverRet.indexOf('>')+1); 
    219173                var retStatus = serverRet.substr(0,5); 
Note: See TracChangeset for help on using the changeset viewer.