Changeset 2628


Ignore:
Timestamp:
04/26/10 16:03:33 (14 years ago)
Author:
rodsouza
Message:

Ticket #1009 - Organizando javascript e criando cache dos mesmos.

Location:
trunk
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/js/jscode/draw_api_folders.js

    r2579 r2628  
    12771277                        if ((headers_msgs[i].Unseen == 'U') || (headers_msgs[i].Recent == 'N')) 
    12781278                                f_unseen++;                              
    1279                         tr_element = this.make_tr_message(headers_msgs[i], msg_folder); 
     1279                        tr_element = make_tr_message(headers_msgs[i], msg_folder); 
    12801280                        if (tr_element){ 
    12811281                                tbody_element.appendChild(tr_element); 
  • trunk/expressoMail1_2/js/jscode/main.js

    r2616 r2628  
    2424                        "access" : "expressoMail1_2.imap_functions.get_range_msgs2&folder=INBOX&msg_range_begin=1&msg_range_end=" 
    2525                                                + preferences.max_email_per_page + "&sort_box_type=SORTARRIVAL&search_box_type=ALL&sort_box_reverse=1", 
     26                        "cache" : true, 
    2627                        "handler" : handler_draw_box 
    2728                } ); 
     
    7172                _connector.go( { //Save contacts needs preferences. 
    7273                        "access" : "expressoMail1_2.db_functions.get_dropdown_contacts", 
     74                        "cache" : true, 
    7375                        "handler" : save_contacts 
    7476                } ); 
    7577                _connector.go( { 
    7678                        "access" : "expressoMail1_2.imap_functions.get_folders_list&onload=true", 
     79                        "cache" : true, 
    7780                        "handler" : function( data ) 
    7881                        { 
     
    99102        setTimeout('auto_refresh()', time_refresh); 
    100103 
     104        refresh(preferences.alert_new_msg); 
    101105} 
    102106 
  • trunk/phpgwapi/inc/class.common.inc.php

    r2623 r2628  
    394394                                        $GLOBALS[ 'phpgw' ] -> js -> validate_file( 'expressoAjax', 'dom', NULL, true ); 
    395395                                        $GLOBALS[ 'phpgw' ] -> js -> validate_file( 'tools','xlink', NULL, true ); 
     396                                        $GLOBALS[ 'phpgw' ] -> js -> validate_file( 'tools','xscript', NULL, true ); 
    396397                                        $GLOBALS[ 'phpgw' ] -> js -> validate_file( 'tools','xconnector', NULL, true ); 
    397398                                        $GLOBALS[ 'phpgw' ] -> js -> validate_file( 'tools','xevent', NULL, true ); 
  • trunk/phpgwapi/inc/class.javascript.inc.php

    r2623 r2628  
    145145                                                                        else 
    146146                                                                        { 
    147                                                                                 $_script = '<script type="text/javascript" src="%s/%s/js/%s/%s.js?%d"></script>'; 
    148                                                                                 $links .= "\n\t\t" . sprintf( $_script, $GLOBALS[ 'phpgw_info' ][ 'server' ][ 'webserver_url' ], $app, $pkg, $file, filemtime( $jsFilePath ) ); 
     147                                                                                $_script = '<script type="text/javascript" src="%s/%s/js/%s/%s.js?%d">/* %s  */</script>'; 
     148                                                                                $links .= "\n\t\t" . sprintf( $_script, $GLOBALS[ 'phpgw_info' ][ 'server' ][ 'webserver_url' ], $app, $pkg, $file, filemtime( $jsFilePath ), $file ); 
    149149                                                                        } 
    150150 
     
    262262                                return true; 
    263263                        } 
    264                         error_log( $_file . "\n\n", 3, '/tmp/log' ); 
    265264                        return false; 
     265                } 
     266 
     267                function get_source( $param ) 
     268                { 
     269                        $source = ''; 
     270                        foreach( explode( ';', $param[ 'source' ] ) as $script ) 
     271                                $source .= file_get_contents( realpath( dirname( __FILE__ ) . '/../..' ) . $script ); 
     272 
     273                        echo $source; 
     274                        exit; 
    266275                } 
    267276        } 
  • trunk/phpgwapi/js/tools/xconnector.js

    r2601 r2628  
    100100                                                                } 
    101101 
     102                                                                if ( _THREADS[ _ID ]._CACHE ) 
     103                                                                        this._CACHED[ _ID ] = _data; 
     104 
    102105                                                                delete _THREADS[ _ID ]; 
    103106 
     
    105108                                                                        try 
    106109                                                                        { 
    107                                                                                 if ( this._cache ) 
    108                                                                                 { 
    109                                                                                         this._CACHED[ _ID ] = _data; 
    110                                                                                         this._cache = false; 
    111                                                                                 } 
    112  
    113110                                                                                _request( _data ); 
    114111                                                                        } 
     
    228225                        '_MODE'         : 'TEXT', // [XML | TEXT] 
    229226                        '_TYPE'         : null, // [4 for request | 3 for stream] 
    230                         '_XHR'          : null  // [4 for request | 3 for stream] 
     227                        '_XHR'          : null, // [4 for request | 3 for stream] 
     228                        '_CACHE'        : ( ( _argv.cache && _argv.cache === true ) ? true : false ) 
    231229                }; 
    232230 
    233231                if ( _argv.mode && ( _argv.mode == 'XML' || _argv.mode == 'TEXT' ) ) 
    234                         _THREADS[ _ID ] = _argv.mode; 
     232                        _THREADS[ _ID ]._MODE = _argv.mode; 
    235233 
    236234                if ( _argv.handler ) 
     
    256254                        } 
    257255 
    258                 if ( this._cache && this._CACHED[ _ID ] ) 
    259                 { 
    260                         this._cache = false; 
     256                if ( _THREADS[ _ID ]._CACHE && this._CACHED[ _ID ] ) 
     257                { 
    261258                        if ( _THREADS[ _ID ]._HANDLER.request ) 
    262259                                _THREADS[ _ID ]._HANDLER.request( this._CACHED[ _ID ] ); 
     
    302299                this._CONTROLLER  = ''; 
    303300 
    304                 this._cache = false; 
    305  
    306301                this._CACHED = [ ]; 
    307302 
     
    333328        Connector.prototype.cache = function( ) 
    334329        { 
    335                 _cache = true; 
    336  
    337                 if ( arguments.length == 1 && arguments[ 0 ].constructor == Boolean ) 
    338                         _cache = arguments[ 0 ]; 
    339  
    340                 this._cache = _cache; 
    341  
    342330                return this; 
    343331        }; 
  • trunk/phpgwapi/js/tools/xlink.js

    r2601 r2628  
    11( function( ) 
    22{ 
    3         var _connector = new XConnector; 
     3        var _connector = null; 
     4        var _script = null; 
     5 
    46        var _container = null; 
    57        var _divAppboxHeader = null; 
     
    2325                                _divAppboxHeader.innerHTML = ''; 
    2426 
     27                                var _center = document.createElement( 'center' ); 
     28                                _center.appendChild( _loading ); 
     29 
    2530                                _container.innerHTML = ''; 
    26                                 _container.appendChild( _loading ); 
     31                                _container.appendChild( _center ); 
    2732 
    28                                 var _cacheit = ( ( pLink.hasAttribute( 'cacheit' ) && pLink.getAttribute( 'cacheit' ) === 'true' ) ? true : false ); 
     33                                var _cacheit = true;//( ( pLink.hasAttribute( 'cacheit' ) && pLink.getAttribute( 'cacheit' ) === 'true' ) ? true : false ); 
    2934 
    30                                 var request = _connector.cache( _cacheit ).go( { 
     35                                var request = _connector.go( { 
    3136                                        'access' : action, 
     37                                        'cache' : _cacheit, 
    3238                                        'handler' : function( data ) 
    3339                                        { 
     40                                                var js = data.match( /<script[^>]*>.*?<\/script>/g ); 
     41                                                var _new_scripts = [ ]; 
     42                                                if ( js ) 
     43                                                { 
     44                                                        var tag = /<script([^>]* src="(\S+)"|[^>]*)>(.*?)<\/script>/; 
     45                                                        for ( var i = 0; i < js.length; i++ ) 
     46                                                        { 
     47                                                                var type = tag.exec( js[ i ] ); 
     48                                                                data = data.replace( "\n\t\t" + type[ 0 ], '' ); 
     49                                                                _new_scripts[ _new_scripts.length ] = type; 
     50                                                        } 
     51                                                } 
     52 
    3453                                                var el = document.createElement( 'div' ); 
    3554                                                el.innerHTML = data; 
     
    3958                                                        handler( _links.item( i ) ); 
    4059 
    41                                                 var _head = document.getElementsByTagName( 'head' ).item( 0 ); 
    42                                                 var _loaded = _head.getElementsByTagName( 'script' ); 
    43                                                 var _scripts = el.getElementsByTagName( 'script' ); 
    44                                                 var _new_scripts = [ ]; 
    45  
    46                                                 while ( _scripts.length ) 
    47                                                         _new_scripts[ _new_scripts.length ] = el.removeChild( _scripts.item( 0 ) ); 
    48  
    4960                                                _container.innerHTML = ''; 
    5061                                                while ( el.hasChildNodes( ) ) 
    5162                                                        _container.appendChild( el.firstChild ); 
    5263 
    53                                                 fix : for ( var i = 0; i < _new_scripts.length; i++ ) 
     64                                                var _inline = [ ]; 
     65                                                for ( var i = 0; i < _new_scripts.length; i++ ) 
     66                                                        if ( _new_scripts[ i ][ 2 ] == undefined || _new_scripts[ i ][ 2 ].length == 0 ) 
     67                                                                _inline[ _inline.length ] = _new_scripts[ i ][ 3 ]; 
     68                                                        else 
     69                                                                _script.add( _new_scripts[ i ][ 2 ].substr( 
     70                                                                        URL_SERVER.length, 
     71                                                                        _new_scripts[ i ][ 2 ].indexOf( '?' ) - URL_SERVER.length 
     72                                                                ) ); 
     73 
     74                                                var _it_has_loaded = _script.load( function( ) 
    5475                                                { 
    55                                                         var _script = _new_scripts[ i ]; 
    56                                                         if ( _script.getAttribute( 'src' ) == null ) 
    57                                                         { 
    58                                                                 _container.appendChild( _script ); 
    59                                                                 continue; 
    60                                                         } 
    61                                                         else 
    62                                                         { 
    63                                                                 for ( var j = 0; j < _loaded.length; j++ ) 
    64                                                                         if ( _script.getAttribute( 'src' ) === _loaded.item( j ).getAttribute( 'src' )  ) 
    65                                                                                 continue fix; 
     76                                                        if ( _inline.length ) 
     77                                                                window.eval( _inline.join( '' ) ); 
     78                                                } ); 
    6679 
    67                                                                 _head.appendChild( _script ); 
    68                                                         } 
    69                                                 } 
     80                                                if ( ! _it_has_loaded && _inline.length ) 
     81                                                        window.eval( _inline.join( '' ) ); 
    7082                                        } 
    7183                                } ); 
     
    7688        XEvents.add( window, 'onload', function( ) 
    7789        { 
    78                 var _center = document.createElement( 'center' ); 
    79                 _center.appendChild( _loading ); 
     90                var _scripts = document.getElementsByTagName( 'head' ).item( 0 ).getElementsByTagName( 'script' ); 
     91                var _loaded = [ ]; 
     92 
     93                for ( var i = 0; i < _scripts.length; i++ ) 
     94                        if ( _scripts.item( i ).getAttribute( 'src' ) != null ) 
     95                                _loaded[ _loaded.length ] = _scripts.item( i ).getAttribute( 'src' ).substr( 
     96                                        URL_SERVER.length, 
     97                                        _scripts.item( i ).getAttribute( 'src' ).indexOf( '?' ) - URL_SERVER.length 
     98                                ); 
     99 
     100                _connector = new XConnector; 
     101                _script = new XScript( _loaded ); 
    80102 
    81103                _divAppboxHeader = document.getElementById( 'divAppboxHeader' ); 
     
    83105 
    84106                _container = document.getElementById( 'divAppbox' ); 
    85                 _loading = _center; 
    86107 
    87108                document.getElementsByTagName( 'body' ).item( 0 ).style.overflowY = 'scroll'; 
  • trunk/phpgwapi/templates/default/head.inc.php

    r2623 r2628  
    2828                        . "<![endif]-->\n"; 
    2929 
    30         error_log( var_export( $GLOBALS[ 'phpgw' ] -> js -> validate_file( 'jscode', 
     30        $GLOBALS[ 'phpgw' ] -> js -> validate_file( 'jscode', 
    3131                ( ( ! $GLOBALS['phpgw_info']['user']['preferences']['common']['disable_slider_effects'] ) ? 'slidereffects' : 'simple_show_hide' ), 
    32                 'phpgwapi/templates/' . $GLOBALS[ 'phpgw_info' ][ 'server' ][ 'template_set' ], true ), true ) . "\n\n" , 3, '/tmp/log' ); 
     32                'phpgwapi/templates/' . $GLOBALS[ 'phpgw_info' ][ 'server' ][ 'template_set' ], true ); 
    3333 
    3434        $bodyheader = ' bgcolor="' . $GLOBALS['phpgw_info']['theme']['bg_color'] 
Note: See TracChangeset for help on using the changeset viewer.