Changeset 2616 for trunk/phpgwapi


Ignore:
Timestamp:
04/22/10 11:33:37 (14 years ago)
Author:
amuller
Message:

Ticket #911 - Aproveitamento de funções comuns do expressoMail

Location:
trunk/phpgwapi
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/phpgwapi/inc/class.common.inc.php

    r2611 r2616  
    392392                                        $GLOBALS[ 'phpgw' ] -> js -> validate_file( 'wz_dragdrop', 'wz_dragdrop', NULL, true ); 
    393393                                        $GLOBALS[ 'phpgw' ] -> js -> validate_file( 'expressoAjax', 'expressoAjax', NULL, true ); 
     394                                        $GLOBALS[ 'phpgw' ] -> js -> validate_file( 'expressoAjax', 'dom', NULL, true ); 
    394395                                        $GLOBALS[ 'phpgw' ] -> js -> validate_file( 'tools','xlink', NULL, true ); 
    395396                                        $GLOBALS[ 'phpgw' ] -> js -> validate_file( 'tools','xconnector', NULL, true ); 
  • trunk/phpgwapi/js/expressoAjax/dom.js

    r1999 r2616  
    1 dom.prototype.config_events = function (pObj, pEvent, pHandler) 
     1function borkb(size){ 
     2        kbyte = 1024; 
     3        mbyte = kbyte*1024; 
     4        gbyte = mbyte*1024; 
     5        if (!size) 
     6                size = 0; 
     7        if (size < kbyte) 
     8                return size + ' B'; 
     9        else if (size < mbyte) 
     10                return parseInt(size/kbyte) + ' KB'; 
     11        else if (size < gbyte) 
     12                if (size/mbyte > 100) 
     13                        return (size/mbyte).toFixed(0) + ' MB'; 
     14                else 
     15                        return (size/mbyte).toFixed(1) + ' MB'; 
     16        else 
     17                return parseInt(size/gbyte).toFixed(1) + ' GB'; 
     18} 
     19 
     20function url_encode(str){ 
     21    return escape(str); 
     22} 
     23function url_decode(str) { 
     24        return unescape(str); 
     25} 
     26 
     27function replaceAll(string, token, newtoken) { 
     28        while (string.indexOf(token) != -1) { 
     29                string = string.replace(token, newtoken); 
     30        } 
     31        return string; 
     32} 
     33 
     34function config_events(pObj, pEvent, pHandler) 
    235{ 
    336    if( typeof pObj == 'object') 
     
    1447 
    1548 
    16 var _beforeunload_ = window.onbeforeunload; 
    17  
    18 window.onbeforeunload = function() 
    19 { 
    20         return unloadMess(); 
     49// Make decimal round, using in size message 
     50function round(value, decimal){ 
     51        var return_value = Math.round( value * Math.pow( 10 , decimal ) ) / Math.pow( 10 , decimal ); 
     52        return( return_value ); 
    2153} 
    2254 
    23 dom.prototype.unloadMess = function (){ 
    24         var mess = get_lang("All change you made has not been saved and will be discarted."); 
    25         for (var i = 0; i < BordersArray.length; i++) { 
    26                 var body = Element('body_' + BordersArray[i].sequence); 
    27                 if (body && body.contentWindow && body.contentWindow.document.designMode.toLowerCase() == 'on') { 
    28                         return mess; 
    29                 } 
    30         } 
     55function removeAll(id){ 
     56        do 
     57        { 
     58                if (typeof(Element(id)) == 'undefined') 
     59                        break; 
     60                Element(id).parentNode.removeChild(Element(id)); 
     61        } 
     62        while(Element(id)); 
     63} 
     64function validateEmail(email){ 
     65        if (typeof(email) != 'string') 
     66                return false; 
     67        var validName = /^[a-z][a-z-_0-9\.]*/i; 
     68        emailParts = email.split('@'); 
     69        return (validName.test(emailParts[0]) && validateDomain(emailParts[1])); 
     70} 
     71function validateDomain(domain){ 
     72        var domainReg = /^(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/i; 
     73        return (domainReg.test(domain)); 
    3174} 
    3275 
    33 // Make decimal round, using in size message 
    34 dom.prototype.round = function (value, decimal){ 
    35         var return_value = Math.round( value * Math.pow( 10 , decimal ) ) / Math.pow( 10 , decimal ); 
    36         return( return_value ); 
     76function validateUrl(url){ 
     77        var urlReg = /([A-Za-z]{2,7}:\/\/)(.*)/i; 
     78        urlParts = url.split(urlReg); 
     79        return (urlParts[1].length > 4 &&  validateDomain(urlParts[2])); 
    3780} 
    3881 
    39  
    40 dom.prototype.removeAllById = function (id){ 
    41         do 
    42         { 
    43                 if (typeof(Element(id)) == 'undefined') 
    44                         break; 
    45                 Element(id).parentNode.removeChild(Element(id)); 
    46         } 
    47         while(Element(id)); 
    48 } 
    49 // Add Input File Dynamically. 
    50 dom.prototype.addFile = function (id_border){ 
    51         divFiles = document.getElementById("divFiles_"+id_border); 
    52         if (! divFiles) 
    53                 return false; 
    54          
    55         if (divFiles.lastChild) 
    56                 var countDivFiles = parseInt(divFiles.lastChild.id.split('_')[2]) + 1; 
    57  
    58         if (! countDivFiles) 
    59                 var countDivFiles = 1; 
    60          
    61         divFile = document.createElement('DIV'); 
    62          
    63          
    64         divFile.innerHTML = "<input type='file' id_border='"+id_border+"' size='50' maxLength='255' onchange=\"function () {validateFileExtension(this.value, this.id.replace('input','div'), this.getAttribute('id_border'));};\" id='"+"inputFile_"+id_border+"_"+countDivFiles+"' name='file_"+countDivFiles+"'>"; 
    65  
    66          
    67         var linkFile = document.createElement("A"); 
    68         linkFile.id = "linkFile_"+id_border+"_"+countDivFiles; 
    69         linkFile.href='javascript:void(0)'; 
    70         linkFile.onclick=function () {removeFile(this.id.replace("link","div")); return false;}; 
    71         linkFile.innerHTML=get_lang("Remove");   
    72         //divFile.innerHTML += "&nbsp;&nbsp;"; 
    73         divFile.appendChild(linkFile); 
    74         divFile.id = "divFile_"+id_border+"_"+countDivFiles;     
    75         divFiles.appendChild(divFile); 
    76  
    77          
    78  
    79         return document.getElementById("inputFile_"+id_border+"_"+countDivFiles); 
    80 } 
    81 //      Remove Input File Dynamically. 
    82 dom.prototype.removeFile = function (id){ 
    83         var border_id = id.substr(8,1); 
    84         var el = Element(id); 
    85         el.parentNode.removeChild(el); 
    86 } 
    87  
    88 var denyFileExtensions = new Array('exe','com','reg','chm','cnf','hta','ins', 
    89                                         'jse','job','lnk','pif','src','scf','sct','shb', 
    90                                         'vbe','vbs','wsc','wsf','wsh','cer','its','mau', 
    91                                         'mda','mar','mdz','prf','pst'); 
    92 dom.prototype.validateFileExtension = function (fileName){ 
    93         var error_flag = false; 
    94         var fileExtension = fileName.split("."); 
    95         fileExtension = fileExtension[(fileExtension.length-1)]; 
    96         for(var i=0; i<denyFileExtensions.length; i++) 
    97         { 
    98                 if(denyFileExtensions[i] == fileExtension) 
    99                 { 
    100                         error_flag = true; 
    101                         break; 
    102                 } 
    103  
    104         } 
    105  
    106         if ( error_flag == true ) 
    107         { 
    108                 write_error(get_lang('File extension forbidden or invalid file') + '.'); 
    109                 return false; 
    110         } 
    111         return true; 
    112 } 
    113  
    114  
    115 dom.prototype.validatePath = function (fileName, id, id_border){ 
    116          
    117         var error_flag  = false; 
    118  
    119         if ( fileName.indexOf('/') != -1 ) 
    120         { 
    121                 if (fileName[0] != '/'){ // file name is windows format? 
    122                         var file = fileName.substr(fileName.lastIndexOf('\\') + 1, fileName.length); 
    123                         if ((fileName.indexOf(':\\') != 1) && (fileName.indexOf('\\\\') != 0)) // Is stored in partition or a network file? 
    124                                 error_flag = true;       
    125                 } 
    126                 else // is Unix 
    127                         var file = fileName.substr(fileName.lastIndexOf('/') + 1, fileName.length);                                              
    128         } 
    129         else  // is Firefox 3 
    130                 var file = fileName; 
    131         return (validateFileExtension(file)); 
    132 } 
    133  
    134 var setTimeout_write_msg = 0; 
    135 var old_msg = false; 
    136 // Funcao usada para escrever mensagem 
    137 // notimeout = True : mensagem nao apaga 
    138 dom.prototype.write_msg = function (msg, notimeout){     
    139          
    140         if (setTimeout_write_msg) 
    141                 clearTimeout(setTimeout_write_msg); 
    142          
    143         var msg_div = Element('em_div_write_msg'); 
    144         var old_divStatusBar = Element("divStatusBar"); 
    145  
    146         if(!msg_div) { 
    147                 msg_div = document.createElement('DIV'); 
    148                 msg_div.id = 'em_div_write_msg'; 
    149                 msg_div.className = 'em_div_write_msg'; 
    150                 old_divStatusBar.parentNode.insertBefore(msg_div,old_divStatusBar); 
    151         } 
    152          
    153         if( document.getElementById('JabberMessenger')) 
    154                 loadscript.adIcon(); 
    155  
    156         msg_div.innerHTML = '<table width="100%" cellspacing="0" cellpadding="0" border="0"><tbody><tr><th width="40%"></th><th noWrap class="action_info_th">'+msg+'</th><th width="40%"></th></tr></tbody></table>'; 
    157  
    158         old_divStatusBar.style.display = 'none'; 
    159         msg_div.style.display = '';      
    160         // Nao ponha var na frente!! jakjr 
    161         handle_write_msg = function(){ 
    162                 try{ 
    163                         if(!old_msg) 
    164                                 clean_msg(); 
    165                         else 
    166                                 write_msg(old_msg, true);                        
    167                 } 
    168                 catch(e){} 
    169         } 
    170         if(notimeout) 
    171                 old_msg = msg; 
    172         else 
    173                 setTimeout_write_msg = setTimeout("handle_write_msg();", 5000); 
    174 } 
    175 // Funcao usada para apagar mensagem sem timeout 
    176 dom.prototype.clean_msg = function (){ 
    177         old_msg = false; 
    178         var msg_div = Element('em_div_write_msg'); 
    179         var old_divStatusBar = Element("divStatusBar"); 
    180         if(msg_div) 
    181                 msg_div.style.display = 'none'; 
    182         old_divStatusBar.style.display = '';     
    183 } 
    184 function Element (el) { 
    185         return  document.getElementById(el); 
    186 } 
    187  
    188 dom.prototype.trim = function (inputString) { 
     82function trim(inputString) { 
    18983   if (typeof inputString != "string")  
    190         return inputString; 
    191   
     84        return inputString; 
     85       
    19286   var retValue = inputString; 
    19387   var ch = retValue.substring(0, 1); 
    19488   while (ch == " ") {  
    195           retValue = retValue.substring(1, retValue.length); 
    196           ch = retValue.substring(0, 1); 
     89          retValue = retValue.substring(1, retValue.length); 
     90          ch = retValue.substring(0, 1); 
    19791   } 
    19892   ch = retValue.substring(retValue.length-1, retValue.length); 
    19993   while (ch == " ") {  
    200           retValue = retValue.substring(0, retValue.length-1); 
    201           ch = retValue.substring(retValue.length-1, retValue.length); 
     94          retValue = retValue.substring(0, retValue.length-1); 
     95          ch = retValue.substring(retValue.length-1, retValue.length); 
    20296   } 
    20397   while (retValue.indexOf("  ") != -1) {  
    204           retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length);  
     98          retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length);  
    20599   } 
    206100   return retValue;  
     
    208102 
    209103 
    210 dom.prototype.LTrim = function (value){ 
    211         var w_space = String.fromCharCode(32); 
    212         var strTemp = ""; 
    213         var iTemp = 0; 
     104function LTrim(value){ 
     105        var w_space = String.fromCharCode(32); 
     106        var strTemp = ""; 
     107        var iTemp = 0; 
    214108 
    215         var v_length = value ? value.length : 0; 
    216         if(v_length < 1) 
    217                 return ""; 
     109        var v_length = value ? value.length : 0; 
     110        if(v_length < 1) 
     111                return ""; 
    218112 
    219         while(iTemp < v_length){ 
    220                 if(value && value.charAt(iTemp) != w_space){ 
    221                         strTemp = value.substring(iTemp,v_length); 
    222                         break; 
    223                 } 
    224                 iTemp++; 
    225         } 
    226         return strTemp; 
     113        while(iTemp < v_length){ 
     114                if(value && value.charAt(iTemp) != w_space){ 
     115                        strTemp = value.substring(iTemp,v_length); 
     116                        break; 
     117                } 
     118                iTemp++; 
     119        } 
     120        return strTemp; 
    227121} 
    228122 
    229123 
    230 dom.prototype.array_search = function (needle, haystack) { 
    231         var n = haystack.length; 
    232         for (var i=0; i<n; i++) { 
    233                 if (haystack[i]==needle) { 
    234                         return true; 
    235                 } 
    236         } 
    237         return false; 
     124function add_className(obj, className){ 
     125        if (obj && !exist_className(obj, className)) 
     126                obj.className = obj.className + ' ' + className; 
     127} 
     128 
     129function remove_className(obj, className){ 
     130        var re = new RegExp("\\s*"+className); 
     131        if (obj) 
     132                obj.className = obj.className.replace(re, ' '); 
     133} 
     134 
     135function exist_className(obj, className){ 
     136        return ( obj && obj.className.indexOf(className) != -1 ); 
    238137} 
    239138 
    240139 
    241 dom.prototype.add_className = function (obj, className){ 
    242         if (obj && !exist_className(obj, className)) 
    243                 obj.className = obj.className + ' ' + className; 
    244 } 
    245140 
    246 dom.prototype.remove_className = function (obj, className){ 
    247         var re = new RegExp("\\s*"+className); 
    248         if (obj) 
    249                 obj.className = obj.className.replace(re, ' '); 
    250 } 
    251  
    252 dom.prototype.exist_className = function (obj, className){ 
    253         return ( obj && obj.className.indexOf(className) != -1 ) 
    254 } 
    255  
    256  
    257 dom.prototype.validate_date = function (date){ 
     141function validate_date(date){ 
    258142    if (date.match(/^[0-3][0-9]\/[0-1][0-9]\/\d{4,4}$/)) 
    259143    { 
     
    280164            return false; 
    281165        } 
    282 } 
     166}; 
    283167 
Note: See TracChangeset for help on using the changeset viewer.