Пример #1
0
 /**
  * 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;
     }
 }
Пример #2
0
    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');
    }