PageSourceSearch

https://angewandte-carabidologie.de/js/colkat_frame_userlog.js

js angewandte-carabidologie.de collected 2026-10-04 19:59:43 UTC 10,742 bytes, 283 lines download raw bytes

1colkat_frame_userlog = {
2        id: 'colkat_frame_userlog',
3        title: gettext('Literatur'),
4	isInit:false,
5	UI: null,
6        init: function() {
7            if (this.isInit) return;
8            this.isInit = true;
9
10            anz_text = 'User-Log' ;
11            Ext.define('UserLogModel', {
12                extend: 'Ext.data.Model',
13                fields: [
14                        {name: 'id'},
15                        {name: 'ctime'},
16                        {name: 'user__name'},
17                        {name: 'country_name'},
18                        {name: 'prg_version'},
19                        {name: 'user__id'},
20                        {name: 'func'},
21                        {name: 'sitecls'},
22                        {name: 'site'},
23                        {name: 'req'},
24                        {name: 'ret'},
25                        {name: 'f_id'},
26                        {name: 'ip'}
27                ]
28            });
29	    this.title = anz_text;
30            var mode = 0;
31            /*
32             *      Das eigentliche Store-Object
33             *      Mit Hilfe des Readers und einer URL, über die die Daten empfangen werden
34             *      kann sich so ein Store komplett eigenständig um die Daten kümmern
35             *      Ein vollständig konfigurierter Store entscheidet selber wann daten aktualisiert werden
36             *      und/oder wann Neue Daten angelegt werden.
37             */
38            this.userlogStore = Ext.create('Ext.data.Store', {
39                storeId: 'userlogStore',
40                model: 'UserLogModel',
41                proxy: {
42                        type: 'ajax',
43                        url: '/store/userlogreader/',
44                        reader: {
45                                type: 'json',
46                                rootProperty: 'rows',
47                                idProperty: 'id',
48                                totalProperty: 'results'
49                        },
50			extraParams: {
51                                region: g_region
52                        }
53                },
54                remoteSort:true,
55                remoteFilter:true,
56                pageSize:500
57            });
58	    /*
59  	     *	Einmal Laden des Stores
60	     */
61  	    this.userlogStore.load();
62	
63            Ext.define('Colkat.view.userlogDataView', {
64                extend:'Ext.grid.Panel',
65                requires:['Ext.saki.grid.MultiSearch'],
66                plugins:[{
67                            ptype:'saki-gms',
68                            filterOnEnter:false,
69                        }],
70                selModel: 'cellmodel',
71		autoLoad: false,
72                store: this.userlogStore,
73                columns:[
74			{header: 'ID', filterField:true,width: 100, sortable: true, dataIndex: 'id'},
75			{header: 'Time', filterField:true,width: 170, sortable: true, dataIndex: 'ctime'},
76			{header: 'IP', filterField:true,width: 120, sortable: true, dataIndex: 'ip'},
77			{header: 'User', filterField:true,width: 150, sortable: true, dataIndex: 'user__name'},
78                        {header: 'ID', filterField:true,width: 100,sortable: true,dataIndex: 'user__id'},
79                        {header: 'Version', filterField:true,width: 100,sortable: true,dataIndex: 'prg_version'},
80                        {header: 'Country', filterField:true,width: 100,sortable: true,dataIndex: 'country_name'},
81                        {header: 'Aktion',filterField:true,width: 100, sortable: true,dataIndex: 'sitecls'},
82                        {header: 'Value', filterField:true,width: 300,sortable: true,dataIndex: 'func'},
83                        {header: 'Ret', filterField:true,width: 200,sortable: true,dataIndex: 'ret'}
84                ],
85                dockedItems: [{
86                            xtype: 'pagingtoolbar',
87                            store: this.userlogStore,
88                            dock: 'bottom',
89                            displayInfo: true,
90                            items: [{
91                                xtype: 'combo',
92                                width: 100,
93                                store: Ext.create('Ext.data.Store', {
94                                                fields: ['size'],
95                                                data: [{'size': 25},{'size': 50},{'size': 100},{'size': 500},{'size': 1000}, {'size': 5000}]
96                                        }),
97                                queryMode: 'local',
98                                displayField: 'size',
99                                valueField: 'size',
100                                value: this.userlogStore.pageSize,
101                                listeners: {
102                                        'change': function(t,nv,ov) {
103                                                console.log(nv);
104                                                this.userlogStore.pageSize = nv;
105                                        },
106                                        scope: this
107                                }
108                            }]
109                        }]
110            });
111        },
112	/*
113         *	Manueller Datenrefresh
114	 *	
115	 *	Beispiel:
116	 *			colkat_frame_userlog.refresh()
117	 *		oder	g_frame1.conti.refresh()
118	 *			
119         */
120	refresh: function() {
121		if (this.UI) {
122			this.UI.down('#grid').getStore().load();
123		}
124	},
125
126        update: function(frame,w,h) {
127                console.log(w,h,this.UI);
128                this.UI.down('#grid').setHeight(getFrameHeight()-100);
129        },
130
131	
132	/*
133	 *	Window oder Panel zum bearbeiten von Daten, kann ggf. eigenes Frame werden, müssen wir mal sehen
134	 *	
135	 *	Beispiel:
136	 *			colkat_frame_userlog.edit()		<- öffnet ein leeres Fenster
137	 *			colkat_frame_userlog.edit(g_frame2)	<- öffnet ein leeres Panel
138	 *			g_frame2.conti.edit(undefined,rec.data) <- öffnet passed zum frame in g_frame2 ein Eingabefenster mit daten aus rec
139	 */
140	edit: function(_colkat_frame, _data) {
141		var me = this;
142		var isWindow = false;
143		var element = 'Ext.panel.Panel';
144		if (_colkat_frame===undefined) {
145			element = 'Ext.window.Window';
146			isWindow = true;
147		}
148
149		var w = Ext.create(element,{
150			fbar: [{
151                                        xtype: 'button',
152                                        hidden: !isWindow,
153                                        text: gettext('Abbrechen'),
154                                        handler: function(t) {w.destroy()}
155                                },'->',{
156                                        xtype: 'button',
157                                        text: gettext('Speichern')
158                                },'->',{
159                                        xtype: 'button',
160                                        text: gettext('Löschen'),
161					handler: function(t) {
162                                                Ext.Ajax.request({
163                                                        url: '/ajax/write/',
164                                                        method: 'POST',
165                                                        params: {
166                                                                start: 'UserLogDel',
167                                                                id: Ext.getCmp('ul_id').getValue()
168                                                        },
169                                                        success: function(r) {
170                                                                var data = Ext.decode(r.responseText);
171                                                        }
172                                                });
173                                        }
174                        }],
175			items: [{
176				xtype: 'form',
177				itemId: 'form',
178				layout: 'form',
179				items: [{
180					xtype: 'textfield',
181					readOnly: true,
182					fieldLabel: gettext('ID'),
183					id: 'ul_id',
184					name: 'id'
185				},{
186					xtype: 'textfield',
187					fieldLabel: gettext('Aktion'),
188					name: 'sitecls'
189				},{
190					xtype: 'textfield',
191					fieldLabel: gettext('Value'),
192					name: 'func'
193				},{
194					xtype: 'textfield',
195					fieldLabel: gettext('Req'),
196					name: 'req',
197                        		width: 200,
198                        		height:70
199//					 xtype: 'htmleditor',
200//                        id: 'merkm_vbr_de',
201//                        x: 10,y: 175,
202
203				},{
204					xtype: 'textfield',
205					fieldLabel: gettext('Ret'),
206					name: 'ret'
207				},{
208					xtype: 'textfield',
209					fieldLabel: gettext('f_id'),
210					name: 'f_id'
211				}]
212			}]
213		});
214		if (_data!==undefined) {
215			w.down('#form').getForm().setValues(_data);
216			console.log(_data);
217		}
218		
219		if (isWindow) {
220			w.width = 600;
221			w.height = 480;
222			w.modal = true;
223			w.title = this.title;
224			w.show();
225		} 
226		else {
227			clearFrame(_colkat_frame);
228			console.log("heee",_colkat_frame);
229			if (typeof(_colkat_frame)==='object') {
230				_colkat_frame.insert(w);
231				_colkat_frame.setTitle(this.title);
232			}
233			else {
234				Ext.getCmp(_colkat_frame).insert(w);	
235				Ext.getCmp(_colkat_frame).setTitle(this.title);
236			}
237		}
238		return w;
239	},
240
241	/*
242	 *	Erstellt einmal ein Frame, beim folgenden Aufruf wird Frame aus thsi.UI genommen
243	 *	Wenn man den Frame neu erstellen will muss this.UI auf null gesetzt werden
244	 */
245        ui: function(_frame) {
246		this.init();
247		if (this.UI) return this.UI;
248                this.UI = Ext.create('Ext.panel.Panel',{
249                autoWidth: true,
250                items: [{
251                        html: 'Top',
252                        height: 50,
253                        border: false,
254                        layout: 'auto',
255                        items: [{
256                            xtype: 'label',
257                            text: 'ID:'
258                        },{
259                            height: 100,
260                            text: ''
261                        }]
262                	},{
263                        	border: false,
264                        	items: [
265                        	        Ext.create('Colkat.view.userlogDataView',{
266						itemId:'grid',
267                        	                autoScroll:true,
268                        	                width: '100%',
269                        	                height: 600,
270                        	                listeners: {
271                        	                        itemclick: function(t,rec,item,index,e,eOpts) {
272                        	                                console.log(rec.data,t.selModel.selection.colIdx,t.selModel.selection.rowIdx);
273//								colkat_frame_userlog.edit(g_frame2,rec.data);
274								editUsLog(rec.data.id)
275                        	                        }
276                        	                }
277                        	        })
278                        	]
279                	}]
280            	});
281		return this.UI;
282        }
283}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.