/** * Set default properties for new object * @param Ext_Object $object * @return void */ protected function _initDefaultProperties(Ext_Object $object) { $oClass = $object->getClass(); switch ($oClass) { case 'Window': $object->width = 300; $object->height = 300; break; case 'Button': case 'Button_Split': $object->text = $object->getName(); break; case 'Grid': $object->columnLines = true; break; } if (strpos($oClass, 'Component_Window_') !== false) { $object->width = 700; $object->height = 700; } }
public function addGridMethods(Designer_Project $project, Ext_Object $grid, $object, $vc = false) { $methodsManager = $project->getMethodManager(); $m = $methodsManager->addMethod($grid->getName(), 'initComponent', array(), ' this.addDesignerItems(); this.callParent(); if(!Ext.isEmpty(this.canEdit) && !Ext.isEmpty(this.setCanEdit)){ this.setCanEdit(this.canEdit); }else{ this.canEdit = false; } if(!Ext.isEmpty(this.canDelete) && !Ext.isEmpty(this.setCanDelete)){ this.setCanDelete(this.canDelete); }else{ this.canDelete = false; } if(!Ext.isEmpty(this.canPublish) && !Ext.isEmpty(this.setCanPublish)){ this.setCanPublish(this.canPublish); }else{ this.canPublish = false; } '); $urlTemplates = $this->designerConfig->get('templates'); $deleteUrl = Request::url(array($urlTemplates['adminpath'], $object, 'delete')); $m = $methodsManager->addMethod($grid->getName(), 'deleteRecord', array(array('name' => 'record', 'type' => 'Ext.data.record')), ' Ext.Ajax.request({ url:"' . $deleteUrl . '", method: "post", scope:this, params:{ id: record.get("id") }, success: function(response, request) { response = Ext.JSON.decode(response.responseText); if(response.success){ this.getStore().remove(record); }else{ Ext.Msg.alert(appLang.MESSAGE , response.msg); } }, failure:function(){ Ext.Msg.alert(appLang.MESSAGE, appLang.MSG_LOST_CONNECTION); } }); '); $m->setDescription('Delete record'); $m = $methodsManager->addMethod($grid->getName(), 'setCanEdit', array(array('name' => 'canEdit', 'type' => 'boolean')), ' this.canEdit = canEdit; if(canEdit){ this.childObjects.addButton.show(); }else{ this.childObjects.addButton.hide(); } this.getView().refresh(); '); $m->setDescription('Set edit permission'); $m = $methodsManager->addMethod($grid->getName(), 'setCanDelete', array(array('name' => 'canDelete', 'type' => 'boolean')), ' this.canDelete = canDelete;'); $m->setDescription('Set delete permission'); if ($vc) { $m = $methodsManager->addMethod($grid->getName(), 'setCanPublish', array(array('name' => 'canPublish', 'type' => 'boolean')), 'this.canPublish = canPublish;'); $m->setDescription('Set publish permission'); } $editCode = ' var win = Ext.create("' . $project->namespace . '.editWindow", { dataItemId:id, canDelete:this.canDelete,'; if ($vc) { $editCode .= ' canPublish:this.canPublish,'; } $editCode .= 'canEdit:this.canEdit'; $editCode .= ' }); win.on("dataSaved",function(){ this.getStore().load(); '; if (!$vc) { $editCode .= 'win.close();'; } $editCode .= '},this); win.show(); '; $m = $methodsManager->addMethod($grid->getName(), 'showEditWindow', array(array('name' => 'id', 'type' => 'integer')), $editCode); $m->setDescription('Show editor window'); }