-
###TITLE###
###CONTENT###
Index: typo3/sysext/recycler/res/css/customExtJs.css
===================================================================
--- typo3/sysext/recycler/res/css/customExtJs.css (revision 6314)
+++ typo3/sysext/recycler/res/css/customExtJs.css (working copy)
@@ -1,3 +1,9 @@
+body#ext-recycler-mod1-index-php {
+ margin-left: 0;
+}
+#recyclerContent {
+ margin: 10px 0 0 4px;
+}
body .x-panel { margin-bottom:20px; }
.icon-grid { background-image:url('../icons/recycler2.gif') !important; }
Index: typo3/sysext/recycler/res/js/t3_recycler.js
===================================================================
--- typo3/sysext/recycler/res/js/t3_recycler.js (revision 6314)
+++ typo3/sysext/recycler/res/js/t3_recycler.js (working copy)
@@ -159,8 +159,8 @@
var rowAction = function(ob, confirmQuestion, cmd, confirmTitle, confirmText) {
// get the 'undeleted records' grid object
- var grid = tabs.getComponent(0).getComponent(0);
- recArray = grid.getSelectionModel().getSelections();
+ //var grid = gridContainer.view;
+ var recArray = gridContainer.getSelectionModel().getSelections();
if (recArray.length > 0) {
@@ -217,7 +217,7 @@
callback: function(options, success, response) {
if (response.responseText === "1") {
// reload the records and the table selector
- grid.getStore().reload();
+ gridDs.reload();
Ext.getCmp('tableSelector').store.reload();
if (arePagesAffected) {
Recycler.utility.updatePageTree();
@@ -258,34 +258,187 @@
* tab container
****************************************************/
- var tabs = new Ext.TabPanel({
+ var gridContainer = new Ext.grid.GridPanel ({
renderTo: Recycler.statics.renderTo,
- layoutOnTabChange: true,
- activeTab: 0,
- width: '99%',
+ width: '98%',
height: 600,
frame: true,
- border: false,
- defaults: {autoScroll: true},
+ border: true,
+ defaults: {autoScroll: false},
plain: true,
- buttons: [{
+ id: 'delRecordId',
+ loadMask: true,
+ store: gridDs,
+ cm: new Ext.grid.ColumnModel([
+ sm,
+ expander,
+ {header: "UID", width: 10, sortable: true, dataIndex: 'uid'},
+ {header: "PID", width: 10, sortable: true, dataIndex: 'pid'},
+ {id:'record',header: "Records", width: 60, sortable: true, dataIndex: 'record', renderer: renderTopic},
+ {header: "Table", width: 20, sortable: true, dataIndex: 'tableTitle'}
+ ]),
+ view: new Ext.grid.GridView({
+ forceFit:true
+ }),
+
+ bbar: [
+ {
+
/****************************************************
- * Delete button
+ * Paging toolbar
****************************************************/
+ id: 'recordPaging',
+ xtype: 'paging',
+ store: gridDs,
+ pageSize: Recycler.statics.pagingSize,
+ displayInfo: true,
+ displayMsg: Recycler.lang.pagingMessage,
+ emptyMsg: Recycler.lang.pagingEmpty
+ }
+ ],
+ tbar: [
+ Recycler.lang.search, ' ',
+ new Ext.app.SearchField({
+ store: gridDs,
+ width: 200
+ }),
+ '-', {
+ xtype: 'tbtext',
+ text: Recycler.lang.depth + ':'
+ },{
+
+ /****************************************************
+ * Depth menu
+ ****************************************************/
+
+ xtype: 'combo',
+ width: 100,
+ lazyRender: true,
+ valueField: 'depth',
+ displayField: 'label',
+ id: 'depthSelector',
+ mode: 'local',
+ emptyText: Recycler.lang.depth,
+ selectOnFocus: true,
+ readOnly: true,
+ triggerAction: 'all',
+ editable: false,
+ forceSelection: true,
+ hidden: Recycler.lang.showDepthMenu,
+ store: new Ext.data.SimpleStore({
+ autoLoad: true,
+ fields: ['depth','label'],
+ data : [
+ ['0', Recycler.lang.depth_0],
+ ['1', Recycler.lang.depth_1],
+ ['2', Recycler.lang.depth_2],
+ ['3', Recycler.lang.depth_3],
+ ['4', Recycler.lang.depth_4],
+ ['999', Recycler.lang.depth_infi]
+ ]
+ }),
+ value: Recycler.statics.depthSelection,
+ listeners: {
+ 'select': {
+ fn: function(cmp, rec, index) {
+ var depth = rec.get('depth');
+ gridDs.setBaseParam('depth', depth);
+ gridDs.load({
+ params: {
+ start: 0
+ }
+ });
+
+ Ext.getCmp('tableSelector').store.load({
+ params: {
+ depth: depth
+ }
+ });
+ }
+ }
+ }
+ },'-',{
+ xtype: 'tbtext',
+ text: Recycler.lang.tableMenu_label
+ },{
+
+ /****************************************************
+ * Table menu
+ ****************************************************/
+
+ xtype: 'combo',
+ lazyRender: true,
+ valueField: 'valueField',
+ displayField: 'tableTitle',
+ id: 'tableSelector',
+ mode: 'local',
+ emptyText: Recycler.lang.tableMenu_emptyText,
+ selectOnFocus: true,
+ readOnly: true,
+ triggerAction: 'all',
+ editable: false,
+ forceSelection: true,
+
+ store: new Ext.data.Store({
+ autoLoad: true,
+ url: Recycler.statics.ajaxController + '&startUid=' + Recycler.statics.startUid + '&cmd=getTables' + '&depth=' + Recycler.statics.depthSelection,
+ reader: new Ext.data.ArrayReader({}, [
+ {name: 'table', type: 'string'},
+ {name: 'records', type: 'int'},
+ {name: 'valueField', type: 'string'},
+ {name: 'tableTitle', type: 'string'}
+ ]),
+ listeners: {
+ 'load': {
+ fn: function(store, records) {
+ Ext.getCmp('tableSelector').setValue(Recycler.statics.tableSelection);
+ },
+ single: true
+ }
+ }
+ }),
+ valueNotFoundText: String.format(Recycler.lang.noValueFound, Recycler.statics.tableSelection),
+ tpl: '