| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- /**
- * The Controller for the BigData view.
- *
- * Provides logic which is referenced by listeners, handlers and renderers in the view which are configured
- * as strings. They are resolved to members of this class.
- *
- */
- Ext.define('uas.view.grid.bigData.PanelController', {
- extend: 'Ext.app.ViewController',
- alias: 'controller.bigdata',
- init: function() {
- // RowEditing not appropriate for touch devices
- if (!Ext.supports.Touch) {
- // Plugins are instantiated at this time, we must add an instantiated Plugin, not a config
- this.getView().getPlugins().push(Ext.create({
- xclass: 'Ext.grid.plugin.RowEditing',
- clicksToMoveEditor: 1,
- autoCancel: false
- }));
- }
- },
- // Used as a column renderer by BigData: resolved using defaultListenerScope
- concatNames: function(v, cellValues, rec) {
- return rec.get('forename') + ' ' + rec.get('surname');
- },
- // Used as an editRenderer by BigData to display an uneditable field in the RowEditor
- bold: function(v) {
- return "<b>" + v + "</b>";
- },
- nameSorter: function (rec1, rec2) {
- // Sort prioritizing surname over forename as would be expected.
- var rec1Name = rec1.get('surname') + rec1.get('forename'),
- rec2Name = rec2.get('surname') + rec2.get('forename');
- if (rec1Name > rec2Name) {
- return 1;
- }
- if (rec1Name < rec2Name) {
- return -1;
- }
- return 0;
- },
- onBeforeRenderNoticeEditor: function (editor) {
- var view = this.getView(),
- store = view.store;
- editor.setStore(store.collect('noticePeriod', false, true));
- },
- onNameFilterKeyup: function() {
- var grid = this.getView(),
- // Access the field using its "reference" property name.
- filterField = this.lookupReference('nameFilterField'),
- filters = grid.store.getFilters();
- if (filterField.value) {
- this.nameFilter = filters.add({
- id : 'nameFilter',
- property : 'name',
- value : filterField.value,
- anyMatch : true,
- caseSensitive : false
- });
- } else if (this.nameFilter) {
- filters.remove(this.nameFilter);
- this.nameFilter = null;
- }
- },
- onShowHeadersToggle: function(checkItem, checked) {
- this.getView().setHeaderBorders(checked);
- },
- renderMailto: function (v) {
- return '<a href="mailto:' + encodeURIComponent(v) + '">' +
- Ext.htmlEncode(v) + '</a>';
- },
- });
|