Advertisement
fahmihilmansyah

extjs orang

Aug 6th, 2014
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Ext.define('Majelis.controller.Member', {
  2.     extend: 'Majelis.controller.Base',
  3.     config: {
  4.         refs: {
  5.             container: 'member',
  6.             member: 'member list',
  7.             search: 'member searchfield',
  8.             memberDetail: 'member-detail'
  9.         },
  10.         control: {
  11.             container: {
  12.                 push: 'onMemberPush',
  13.                 pop: 'onMemberPop'
  14.             },
  15.             member: {
  16.                 itemtap: 'onLoadMember'
  17.             },
  18.             search: {
  19.                 keyup: 'onSearch',
  20.                 clearicontap: 'onSearchClear'
  21.             }
  22.         }
  23.     },
  24.     onSearch: function (me, evt) {
  25.         var value = me.getValue();
  26.         var store = this.getMember().getStore();
  27.  
  28.         store.clearFilter(!!value);
  29.         if (value) {
  30.             var searches = value.split(',');
  31.             var regexps = [];
  32.             var i;
  33.             var regex;
  34.  
  35.             for (i = 0; i < searches.length; i++) {
  36.                 if (! searches[i]) continue;
  37.  
  38.                 regex = searches[i].trim();
  39.                 regex = regex.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
  40.  
  41.                 regexps.push(new RegExp(regex.trim(), 'i'));
  42.             }
  43.             store.filter(function(record) {
  44.                 var matched = [];
  45.  
  46.                 for (i = 0; i < regexps.length; i++) {
  47.                     var search = regexps[i];
  48.                     var didMatch = search.test(record.get('full_name'));
  49.  
  50.                     matched.push(didMatch);
  51.                 }
  52.  
  53.                 return (regexps.length && matched.indexOf(true) !== -1);
  54.             });
  55.         }
  56.     },
  57.     onSearchClear: function() {
  58.         this.getMember().getStore().clearFilter();
  59.     },
  60.     onLoadMember: function(me, index, node, record) {
  61.         this.memberDetail = Ext.create('Majelis.view.member.Detail');
  62.         this.memberDetail.setRecord(record);
  63.         this.getContainer().push(this.memberDetail);
  64.     },
  65.     onMemberPush: function() {
  66.         if (this.getSearch().isHidden()) {
  67.             return;
  68.         }
  69.         this.getSearch().hide();
  70.     },
  71.     onMemberPop: function() {
  72.         if (! this.getSearch().isHidden()) {
  73.             return;
  74.         }
  75.         this.getSearch().show();
  76.     }
  77. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement