Ignore:
Timestamp:
09/23/10 10:14:52 (14 years ago)
Author:
eduardoalex
Message:

Ticket #1251 - Commit principal com adição da melhoria no módulo

Location:
branches/2.2/contactcenter
Files:
1 added
8 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2/contactcenter/inc/class.bo_contactcenter.inc.php

    r3211 r3282  
    300300                                                        // Necessary for the new way the catalog tree is built at initialization 
    301301                                                        $new_branch['name'] = $branch['name']; 
    302                                                         $new_branch['external'] = $branch['external']; 
     302                                                        $new_branch['external'] = $this->tree['branches'][$id]['external']; 
    303303                                                        $branch = $new_branch; 
    304304                                                } 
  • branches/2.2/contactcenter/inc/class.bo_ldap_manager.inc.php

    r3262 r3282  
    181181                                        'telex'  => array('telexNumber') 
    182182                                ), 
     183                                'contact.connection.mail'                                  => array('mail'), 
     184                                'contact.connection.phone'                                 => array('telephoneNumber') 
    183185                        ); 
    184186                         
  • branches/2.2/contactcenter/inc/class.ui_data.inc.php

    r3247 r3282  
    116116                        $GLOBALS['phpgw']->template->set_var('cc_qa_close',lang('Close')); 
    117117                        /* End Quick Add */ 
     118 
     119                        /* Advanced Search */ 
     120                         
     121                        $GLOBALS['phpgw']->template->set_var('cc_corporate',lang('Corporate')); 
     122                        $GLOBALS['phpgw']->template->set_var('cc_cs_title',lang('Advanced Search')); 
     123                        $GLOBALS['phpgw']->template->set_var('cc_catalogues',lang('Catalogues')); 
     124                         
     125                         
     126                         
     127                        /* End of Advanced Search*/ 
    118128 
    119129                        $cc_css_file = $GLOBALS['phpgw_info']['server']['webserver_url'].'/contactcenter/styles/cc.css'; 
     
    470480                                echo serialize(array( 
    471481                                        'status' => 'ok', 
     482                                        'catalog' => $catalog_info['class'], 
     483                                        'external' => $catalog_info['external']?true:false, 
    472484                                        'perms'  => $perms 
    473485                                )); 
     
    27532765                } 
    27542766 
     2767                //Traduz o campo na busca completa por entradas no catálogo do usuário. 
     2768                function aux_full_search ($field,$isldap) { 
     2769                        $retorno = ''; 
     2770                        if($isldap) { 
     2771                                switch($field) { 
     2772                                        case 'mail': 
     2773                                                $retorno = 'contact.connection.mail'; 
     2774                                                break; 
     2775                                        case 'phone': 
     2776                                                $retorno = 'contact.connection.phone'; 
     2777                                                break; 
     2778                                } 
     2779                        } 
     2780                        else { 
     2781                                switch($field) { 
     2782                                        case 'corporate': 
     2783                                                $retorno = 'contact.corporate_name'; 
     2784                                                break; 
     2785                                        case 'mail': 
     2786                                        case 'phone': 
     2787                                                $retorno = 'contact.contact_connection.connection.connection_value'; 
     2788                                                break; 
     2789                                } 
     2790                        } 
     2791                        return $retorno; 
     2792                } 
    27552793 
    27562794                /*! 
     
    27752813                        // It's an external catalog? 
    27762814                        $external = $this->bo->is_external($this->page_info['actual_catalog']); 
    2777  
    2778                         if (!is_array($data) || !$data['search_for'] || !is_array($data['fields'])) 
     2815                        $full_search = isset($data['full_search'])?$data['full_search']:false; 
     2816                         
     2817                        if (!is_array($data) || (!$data['search_for'] && !$full_search) || !is_array($data['fields'])) 
    27792818                        { 
    27802819                                echo serialize(array( 
     
    28212860                                if (!is_array($names)) 
    28222861                                { 
    2823                                         echo serialize(array( 
    2824                                                 'msg'    => lang('Invalid Search Parameter'), 
    2825                                                 'status' => 'abort' 
    2826                                         )); 
     2862                                        if(!$full_search) { 
     2863                                                echo serialize(array( 
     2864                                                        'msg'    => lang('Invalid Search Parameter'), 
     2865                                                        'status' => 'abort' 
     2866                                                )); 
     2867                                                exit; 
     2868                                        } 
     2869                                        else  
     2870                                                $names = array(); 
    28272871 
    28282872                                } 
     
    28402884                                         * must have attibute phpgwAccountStatus, phpgwAccountVisible != -1 
    28412885                                         */ 
     2886                                         
    28422887                                        $rules = array( 
    28432888                                                0 => array( 
     
    28682913                                                ), 
    28692914                                        ); 
     2915 
     2916                                        foreach($full_search as $field => $value) { 
     2917                                                if(trim($value)!='') 
     2918                                                        array_push($rules,array( 
     2919                                                                                        'field' => $this->aux_full_search($field,true), 
     2920                                                                                        'type' => 'LIKE', 
     2921                                                                                        'value' => '*'.$value.'*' 
     2922                                                                                        )); 
     2923                                        } 
     2924 
     2925                                } 
     2926                                else if(!$external) { 
     2927                                         
     2928                                        foreach($full_search as $field => $value) { 
     2929                                                if(trim($value)!='') 
     2930                                                        array_push($rules,array( 
     2931                                                                                        'field' => $this->aux_full_search($field,false), 
     2932                                                                                        'type' => 'iLIKE', 
     2933                                                                                        'value' => '%'.$value.'%' 
     2934                                                                                        )); 
     2935                                        } 
     2936                                 
    28702937                                } 
    28712938 
     
    29062973                                        'contact.object_class', 
    29072974                                        //'contact.account_status', 
    2908                                         'contact.account_visible' 
     2975                                        'contact.account_visible', 
     2976                                        'contact.connection.mail', 
     2977                                        'contact.connection.phone' 
    29092978                                        ), $rules, array('order' => $data['fields']['search'], 'sort' => 'ASC'), $data['search_for_area'], $data['search_for'] != null ); 
    29102979                        } 
  • branches/2.2/contactcenter/js/cc_search.js

    r1690 r3282  
    2222                        return false; 
    2323                } 
     24 
     25                this.mount_handler = function (responseText) 
     26                { 
     27                        var data = new Array(); 
     28                        data = unserialize(responseText); 
     29                         
     30                        if( !data ) 
     31                                return false; 
     32 
     33                        if( data[0] == 0 ) 
     34                        { 
     35                                if (_this.onSearchFinish) 
     36                                        _this.onSearchFinish(null); 
     37                                return false; 
     38                        } 
     39                         
     40                        if (data[3].length > 300) 
     41                        { 
     42                                alert("Mais de 300 resultados foram retornados! \n Favor refinar sua busca."); 
     43 
     44                                if (_this.onSearchFinish) 
     45                                        _this.onSearchFinish(null); 
     46 
     47                                return false; 
     48                        } 
     49                         
     50                        ccSearchUpdate(); 
     51         
     52                        letter = 'search'; 
     53 
     54                        if ( letter != CC_actual_letter ) 
     55                        { 
     56                                CC_actual_page = '1'; 
     57                        } 
     58                        else 
     59                        { 
     60                                CC_actual_page = parseInt(data[1]); 
     61                        } 
     62         
     63                        CC_actual_letter = letter; 
     64         
     65                        if (CC_max_cards[0] == 0) 
     66                        { 
     67                                if(CC_visual == 'cards') 
     68                                        drawCards(0); 
     69                                else if(CC_visual == 'table') 
     70                                        drawTable(0); 
     71         
     72                                setPages(0,0); 
     73                                return; 
     74                        } 
     75         
     76                        if (data[0] == '0') 
     77                        { 
     78                                Element('cc_type_contact').value = data[1]; 
     79                                CC_npages = 0; 
     80                                CC_actual_page = 1; 
     81                                if(CC_visual == 'cards') 
     82                                        drawCards(0); 
     83                                else if(CC_visual == 'table') 
     84                                        drawTable(0); 
     85                                setPages(0,0); 
     86                                return; 
     87                        } 
     88                        else 
     89                        { 
     90                                Element('cc_type_contact').value = data[10]; 
     91                        } 
     92         
     93                        if (typeof(data) != 'object') 
     94                        { 
     95                                showMessage(Element('cc_msg_err_contacting_server').value); 
     96                                return; 
     97                        } 
     98         
     99                        if (typeof(data[3]) == 'object') 
     100                        { 
     101                                CC_npages = parseInt(data[0]); 
     102                                CC_actual_page = parseInt(data[1]); 
     103                                if(CC_visual == 'cards') 
     104                                        drawCards(data[3].length, data[10]); 
     105                                else if(CC_visual == 'table') 
     106                                        drawTable(data[3].length, data[10]); 
     107                                resizeWindow(); 
     108                                populateCards(data, data[10]); 
     109                                setPages(data[0], data[1]); 
     110                        } 
     111                        else if (data['error']) 
     112                        { 
     113                                showMessage(data['error']); 
     114                        } 
     115                        else 
     116                        { 
     117                                showMessage(Element('cc_msg_err_contacting_server').value); 
     118                                return; 
     119                        } 
     120                }; 
     121 
    24122 
    25123                /* Attributes */ 
     
    141239        ccSearchClass.prototype.go = function() 
    142240        { 
     241                if (this.DOMinput.value == '') { 
     242                        if ((ccTree.actualCatalog != 'bo_group_manager') &&  
     243                                        (ccTree.actualCatalog != 'bo_shared_group_manager') &&  
     244                                        (!ccTree.actualCatalogIsExternal)) { //Busca avançada para pessoal e catálogo geral 
     245                                ccFullSearchVar.showForm(); 
     246                                return; 
     247                        } 
     248                } 
    143249                var data = new Array(); 
    144250                 
     
    197303                var _this = this; 
    198304                 
    199                 var handler = function (responseText) 
    200                 { 
    201                         var data = new Array(); 
    202                         data = unserialize(responseText); 
    203                          
    204                         if( !data ) 
    205                                 return false; 
    206  
    207                         if( data[0] == 0 ) 
    208                         { 
    209                                 if (_this.onSearchFinish) 
    210                                         _this.onSearchFinish(null); 
    211                                 return false; 
    212                         } 
    213                          
    214                         if (data[3].length > 300) 
    215                         { 
    216                                 alert("Mais de 300 resultados foram retornados! \n Favor refinar sua busca."); 
    217  
    218                                 if (_this.onSearchFinish) 
    219                                         _this.onSearchFinish(null); 
    220  
    221                                 return false; 
    222                         } 
    223                          
    224                         ccSearchUpdate(); 
    225          
    226                         letter = 'search'; 
    227  
    228                         if ( letter != CC_actual_letter ) 
    229                         { 
    230                                 CC_actual_page = '1'; 
    231                         } 
    232                         else 
    233                         { 
    234                                 CC_actual_page = parseInt(data[1]); 
    235                         } 
    236          
    237                         CC_actual_letter = letter; 
    238          
    239                         if (CC_max_cards[0] == 0) 
    240                         { 
    241                                 if(CC_visual == 'cards') 
    242                                         drawCards(0); 
    243                                 else if(CC_visual == 'table') 
    244                                         drawTable(0); 
    245          
    246                                 setPages(0,0); 
    247                                 return; 
    248                         } 
    249          
    250                         if (data[0] == '0') 
    251                         { 
    252                                 Element('cc_type_contact').value = data[1]; 
    253                                 CC_npages = 0; 
    254                                 CC_actual_page = 1; 
    255                                 if(CC_visual == 'cards') 
    256                                         drawCards(0); 
    257                                 else if(CC_visual == 'table') 
    258                                         drawTable(0); 
    259                                 setPages(0,0); 
    260                                 return; 
    261                         } 
    262                         else 
    263                         { 
    264                                 Element('cc_type_contact').value = data[10]; 
    265                         } 
    266          
    267                         if (typeof(data) != 'object') 
    268                         { 
    269                                 showMessage(Element('cc_msg_err_contacting_server').value); 
    270                                 return; 
    271                         } 
    272          
    273                         if (typeof(data[3]) == 'object') 
    274                         { 
    275                                 CC_npages = parseInt(data[0]); 
    276                                 CC_actual_page = parseInt(data[1]); 
    277                                 if(CC_visual == 'cards') 
    278                                         drawCards(data[3].length, data[10]); 
    279                                 else if(CC_visual == 'table') 
    280                                         drawTable(data[3].length, data[10]); 
    281                                 resizeWindow(); 
    282                                 populateCards(data, data[10]); 
    283                                 setPages(data[0], data[1]); 
    284                         } 
    285                         else if (data['error']) 
    286                         { 
    287                                 showMessage(data['error']); 
    288                         } 
    289                         else 
    290                         { 
    291                                 showMessage(Element('cc_msg_err_contacting_server').value); 
    292                                 return; 
    293                         } 
    294                 }; 
    295  
    296                 this.Connector.newRequest('search', CC_url+'search&data='+serialize(data), 'GET', handler); 
     305                var handler = this.mount_handler; 
     306        this.Connector.newRequest('search', CC_url+'search&data='+serialize(data), 'GET', handler); 
    297307        } 
  • branches/2.2/contactcenter/js/cc_tree.js

    r3180 r3282  
    3434                this.tree = new dFTree({'name': params['name']+'_tree'}); 
    3535                this.actualLevel = null; 
     36                this.actualCatalog = null; 
     37                this.actualCatalogIsExternal = null; 
    3638                this.treeAvailable = false; 
    3739                this.afterSetCatalog = params['afterSetCatalog']; 
     
    5759                                return; 
    5860                        } 
    59                          
     61                        _this.actualCatalog = data['catalog'];//Atribuir o catalogo atual... 
     62                        _this.actualCatalogIsExternal = data['external']; 
    6063                        if (data['status'] != 'ok') 
    6164                        { 
  • branches/2.2/contactcenter/setup/tables_current.inc.php

    r2 r3282  
    287287                                'pgp_key'               => array( 'type' => 'text' ), 
    288288                                'notes'                 => array( 'type' => 'text' ), 
    289                                 'is_global'             => array( 'type' => 'bool' ) 
     289                                'is_global'             => array( 'type' => 'bool' ), 
     290                                'corporate_name'=> array( 'type' => 'varchar', 'precision' => 100) 
    290291                        ), 
    291292                        'pk' => array('id_contact'), 
  • branches/2.2/contactcenter/templates/default/index.tpl

    r1690 r3282  
    8989<input id="cc_msg_add_contact_to_group" type="hidden" value="{cc_msg_add_contact_to_group}"> 
    9090<input id="cc_contact_type" type="hidden" value="{cc_contact_type}"> 
     91<input id="cc_select_groups" type="hidden" value="{cc_select_groups}"> 
    9192 
     93<input id="cc_corporate" type="hidden" value="{cc_corporate}"> 
     94<input id="cc_catalogues" type="hidden" value="{cc_catalogues}"> 
     95<input id="cc_cs_title" type="hidden" value="{cc_cs_title}"> 
    9296 
    9397 <!-- END JS MESSAGES --> 
     
    259263<script type="text/javascript" src="js/ccIEContacts.js"></script> 
    260264<script type="text/javascript" src="js/ccMain.js"></script> 
     265<script type="text/javascript" src="js/ccMain.js"></script> 
     266<script type="text/javascript" src="js/cc_full_search.js"></script> 
    261267<!-- END BOTTOM DETAILS-->                                               
Note: See TracChangeset for help on using the changeset viewer.