Changeset 63


Ignore:
Timestamp:
03/08/10 18:03:28 (2 years ago)
Author:
flow
Message:

Some more fixes, avoided some eval() calls

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • DemoData/trunk/app/views/pages/extbase.ctp

    r61 r63  
    1111        Ext.HOST = '<?php echo $_SERVER['HTTP_HOST']; ?>'; 
    1212        //set pixel 
    13         Ext.BLANK_IMAGE_URL = Ext.WEBROOT_DIR+'js/ext-3.0.0/resources/images/default/s.gif'; 
     13        Ext.BLANK_IMAGE_URL = Ext.WEBROOT_DIR+'js/ext-3.1.1/resources/images/default/s.gif'; 
    1414         
    1515        Ext.QuickTips.init(); 
     
    7676        moviesConfig.groupStoreField = 'year'; 
    7777        moviesConfig.groupStoreSortDirection = 'desc'; 
    78         //moviesConfig.filterBarField = "director_id"; 
    79         //moviesConfig.filterBarStore = 'directors'; 
     78        moviesConfig.filterBarField = "director_id"; 
     79        moviesConfig.filterBarStore = 'directors'; 
    8080        //moviesConfig.filterBarField = "year"; 
    8181        //moviesConfig.filterBarStore = {2007:'2007',2003: '2003'};              
    82         moviesConfig.filterBarField = "id"; //for habtm this needs to be id not actor_id 
    83         moviesConfig.filterBarStore = 'actors';  
     82        //moviesConfig.filterBarField = "id"; //for habtm this needs to be id not actor_id 
     83        //moviesConfig.filterBarStore = 'actors';        
    8484    var movies =   new Ext.ux.CakePanel(moviesConfig); 
    8585        //next one, actors config. Here we override the column name in the helper 
     
    9595        directorsConfig.title = "Ye olde directors list"; 
    9696        //directorsConfig.groupStoreField = "alive"; could group by alive 
     97        directorsConfig.filterBarField = 'id'; 
     98        directorsConfig.filterBarStore = 'movies'; 
    9799    var directors =   new Ext.ux.CakePanel(directorsConfig); 
    98100        //we'll use a viewport to display a TabPanel. 
  • ExtClass/trunk/ext_ux_cakepanel.js

    r61 r63  
    291291                                                //if we pass a object by hand, then that is used 
    292292                                                if (typeof(this.filterBarStore) == "string") { //reference                                                       
    293                                                         var habtm = eval('this.dataStore.data.items[0].data.' + this.filterBarStore); 
    294                                                         if (typeof(habtm) == "object") {//has many assoc, we need to search in sub-store 
    295                                                                 this.dataStore.filterBy(function(store_el) {                                                     
    296                                                                         var habtm_raw = eval('store_el.data.' + this.filterBarStore); 
     293                                                        if (typeof(this.dataStore.data.items[0].data[this.filterBarStore]) == "object") {//has many assoc, we need to search in sub-store 
     294                                                                this.dataStore.filterBy(function(store_el) { 
     295                                                                        if (Ext.isEmpty(el.value)) return true; //reset filter if empty                                                          
    297296                                                                        var found = false; 
    298                                                                         for (i=0;i<habtm_raw.length;i++) { 
    299                                                                                 var temp = habtm_raw[i]; 
    300                                                                                 if (eval('temp.'+this.filterBarField) == el.value) found = true; 
     297                                                                        for (i=0;i<store_el.data[this.filterBarStore].length;i++) { 
     298                                                                                if (store_el.data[this.filterBarStore][i][this.filterBarField] == el.value) found = true; 
    301299                                                                        } 
    302300                                                                        return found; 
    303301                                                                },this)                                                          
    304302                                                        } else { 
    305                                                                 var mapping = eval('this.dataStore.reader.jsonData.' + this.filterBarStore); 
    306                                                                 this.dataStore.filter(this.filterBarField,mapping[el.value]); 
     303                                                                this.dataStore.filter(this.filterBarField,this.dataStore.reader.jsonData[this.filterBarStore][el.value]); 
    307304                                                        }                                
    308305                                                } else { //manually passed object 
     
    501498                getComboValues: function(name,store) { 
    502499                        if (typeof(name) == "string") { 
    503                                 var comboData = eval('store.reader.jsonData.' + name); 
    504                                 comboData = Ext.ux.CakeHelper.flattenObject(comboData); 
     500                                comboData = Ext.ux.CakeHelper.flattenObject(store.reader.jsonData[name]); 
    505501                        } else { 
    506502                                var comboData = Ext.ux.CakeHelper.flattenObject(name); 
     
    517513                                var output = '<ul>'; 
    518514                                for (value in values) {                                                                          
    519                                         if (isFinite(value)) output += '<li>'+(this.remap ? eval('values[value].'+this.remap) : values[value].name)+'</li>'; 
     515                                        if (isFinite(value)) output += '<li>'+(this.remap ? values[value][this.remap] : values[value].name)+'</li>'; 
    520516                                } 
    521517                                output += '</ul>';                                                                                                       
Note: See TracChangeset for help on using the changeset viewer.