add/remove columns by clicking on them
[APKPM.git] / templates / user.html.ep
1 % layout 'angular';
2
3   <script>
4     function CRM($xhr) {
5       var self = this;
6    
7       this.fetch = function() {
8         self.clear();
9         self.url = '/g/' + self.function_name + '/' + self.args + '?callback=JSON_CALLBACK';
10         $xhr('JSON', self.url, function(code, response) {
11           self.code = code;
12           self.response = response;
13         });
14       };
15    
16       this.clear = function() {
17         self.url = null;
18         self.code = null;
19         self.response = null;
20       };
21
22         this.columns = [
23                 'USERNAME',
24                 'BROJ',
25                 'USLUGA',
26                 'IP_MANAGEMENT',
27                 'IP_VOICE',
28                 'KOLOKACIJA',
29                 'OPT82'
30         ];
31
32       this.keys = function(h) {
33              if ( angular.isArray(h) ) h = h[0];
34              var keys = [];
35              for(i in h) if (h.hasOwnProperty(i))
36              {
37                keys.push(i);
38              }
39              return keys;
40       };
41     }
42
43     CRM.$inject = ['$xhr'];
44   </script>
45   <div ng:controller="CRM">
46     <input type="hidden" name="function_name" value="CRM_search"      size="20"/>
47     <label for="args">username:
48     <input type="text" name="args"     value="test" size="10"/>
49     </label>
50     <button ng:click="fetch()">fetch</button>
51     <button ng:click="clear()">clear</button>
52     <b ng:show="url && ! code">loading {{url}}</b>
53     <b ng:show="response">{{response.length}} results</b>
54
55 <div style="font-size: 80%; float: right" ng:show="response">
56 Add columns:
57 <ul>
58 <li ng:repeat="c in keys(response)" ng:show="columns.indexOf(c) < 0" ng:click="columns.push(c)">{{c}}
59 </ul>
60 </div>
61
62     <table ng:show="response">
63     <tr>
64         <th ng:repeat="c in columns" ng:click="columns.$remove(c)">{{c}}</th>
65     </tr>
66     <tr ng:repeat="u in response">
67         <td ng:repeat="c in columns">{{u[c]}}</td>
68     </tr>
69     </table>
70     <input type=checkbox name=debug value=1>
71     <pre ng:show=debug>
72 url={{url}}
73 code={{code}}
74 response={{response}}
75     </pre>
76   </div>