2 // <script type="text/javascript">
4 Pman.Tab.CmsImageList = function(owner)
9 Ext.apply(Pman.Tab.CmsImageList.prototype, {
16 create: function(owner)
18 var frm = owner.dialog.getLayout().getEl().createChild({ tag: 'div' });
19 /*var frm = owner.dialog.getLayout().getEl().createChild({
21 id: owner.className + '-fileuploadform'
29 this.languageStore = new Ext.data.Store({
30 proxy: new Ext.data.HttpProxy({
31 url: baseURL + '/Roo/Images.json',
34 reader: Pman.Readers.Images, // fixme should be nicer..
36 'load' : function(st, recs) {
40 'beforeload' : function(st,opts) {
41 if (typeof(opts.params) == 'undefined') {
42 opts.params = { start :0, limit: 25 };
44 opts.params.ontable = 'Category';
45 opts.params.id = this.owner.id;
47 //opts.params.type = st.productType
48 //opts.params.summary = 1;
49 opts.params.ts = Math.random();
55 var languageStore = this.languageStore;
57 this.grid = new Ext.grid.EditorGrid(frm, {
59 ds: new Ext.data.Store({
61 proxy: new Ext.data.HttpProxy({
62 url: baseURL + '/Images.json',
66 // the return will be XML, so lets set up a reader
67 reader: new Ext.data.JsonReader({
69 totalProperty: 'total',
88 'beforeload' : function(g, opts) {
90 if (!opts.params.onid) {
91 _t.grid.getView().el.mask("Save First");
95 _t.grid.getView().el.unmask();
96 //opts.params['search[action]']= Ext.ComponentMgr.get('FlexyShop.ActivityLog.viewType').getValue();
97 return true; // load it ok..
100 'loadexception' : function() {
103 'load' : function(st, recs) {
113 cm: new Ext.grid.ColumnModel([
131 renderer: function(v) {
132 return '<img width="50" height="50" src="'+v+'">';
142 dataIndex: 'language',
143 editor: new Ext.grid.GridEditor(new Ext.form.ComboBox({
145 triggerAction: 'all',
151 valueField: 'shortname',
153 //selectOnFocus:true,
158 beforeQuery : function(e) {
162 store: this.languageStore
165 renderer : function(v){
167 /* this get's difficult as we have to preload the language list!
168 if (!languageStore.getTotalCount()) {
169 languageStore.load();
171 var ix = languageStore.indexOfId(v);
172 return languageStore.getAt(ix).get('name')
182 dataIndex: 'filename',
183 editor: new Ext.grid.GridEditor(new Ext.form.TextField({
195 autoExpandColumn: 'name',
199 'rowclick' : function(g,rowIndex, e) {
201 var data = g.getDataSource().getAt(rowIndex).data;
202 FlexyShop.Customers.preview.setUrl(baseURL + '/PageView', {
203 previewMessage: data.message_sig,
204 previewTable: 'archive',
208 FlexyShop.Customers.preview.fireEvent("activate");
211 'afteredit' : function(e) {
213 // change something..
215 id : e.record.get('id')
217 p[e.field] = e.value;
220 url: baseURL+'/Images.php',
222 success : function () {
223 grid.getDataSource().reload();
225 failure : function (res) {
226 if (FlexyShop.responseHandler(res)) {
229 Ext.Msg.alert("Update Failed");
238 var grid = this.grid;
239 var cp = owner.dialog.getLayout().add('east', new Ext.GridPanel(grid, {
240 //title: "Full Archive",
245 // cp.on('activate', function() {
246 // reset search options..
255 var gridFoot = grid.getView().getFooterPanel(true);
257 var frm = gridFoot.createChild({
262 var footbar = new Ext.Toolbar(frm );
265 this.form = new Ext.form.BasicForm(frm , {
268 url: baseURL + '/Images.php',
270 'actioncomplete' : function(f, act) {
272 //FlexyShop.ImageList.grid.getView().el.unmask();
273 //console.log('load completed');
274 if (FlexyShop.responseHandler(act.result)) {
283 'actionfailed' : function(f, act) {
284 //FlexyShop.ImageList.grid.getView().el.unmask();
285 if (FlexyShop.responseHandler(act.result)) {
289 Ext.MessageBox.alert("Error", "Saving failed = fix errors and try again");
296 var form = this.form;
298 new Ext.form.TextField({
301 name: 'product_picture', //,
302 style: 'font-size: 70%'
312 url: baseURL + '/Images.php?ontable=' + owner.tableName + '&onid='+owner.data.id
319 var gridHead = grid.getView().getHeaderPanel(true);
320 var toolbar = new Ext.Toolbar(gridHead);
323 //this.toolbar.add('Type goes here');
333 var s = grid.getSelectionModel().getSelectedCell();
335 Ext.MessageBox.alert("ERROR", "Select a image");
338 Ext.Msg.confirm("Confirm Delete", "Are you sure you want to delete it",
345 // delete something..
347 url: baseURL+'/Images.php',
349 'delete' : grid.getDataSource().getAt(s[0]).get('id')
351 success : function () {
352 grid.getDataSource().reload();
354 failure : function (res) {
355 if (FlexyShop.responseHandler(res)) {
358 Ext.Msg.alert("Delete Failed");
383 this.grid.getDataSource().load({
386 onid : this.owner.data.id,
387 ontable: this.owner.tableName
398 Ext.Ajax.doFormUpload = function(o, ps, url){
399 //console.log('doFormUpload');
401 var frame = document.createElement('iframe');
404 frame.className = 'x-hidden';
406 frame.src = Ext.SSL_SECURE_URL;
408 document.body.appendChild(frame);
411 document.frames[id].name = id;
414 var form = Ext.getDom(o.form);
416 form.method = 'POST';
417 form.enctype = form.encoding = 'multipart/form-data';
423 if(ps){ // add dynamic params
425 ps = Ext.urlDecode(ps, false);
427 if(ps.hasOwnProperty(k)){
428 hd = document.createElement('input');
432 form.appendChild(hd);
439 //console.log("called back");
440 var r = { // bogus response object
445 r.argument = o ? o.argument : null;
450 doc = frame.contentWindow.document;
452 doc = (frame.contentDocument || window.frames[id].document);
455 r.responseText = doc.body.innerHTML;
457 if(doc && doc.XMLDocument){
458 r.responseXML = doc.XMLDocument;
466 //console.log(r.toSource());
468 Ext.EventManager.removeListener(frame, 'load', cb, this);
470 this.fireEvent("requestcomplete", this, r, o);
471 Ext.callback(o.success, o.scope, [r, o]);
472 Ext.callback(o.callback, o.scope, [o, true, r]);
474 setTimeout(function(){document.body.removeChild(frame);}, 100);
477 Ext.EventManager.on(frame, 'load', cb, this);
480 if(hiddens){ // remove dynamic params
481 for(var i = 0, len = hiddens.length; i < len; i++){
482 form.removeChild(hiddens[i]);