/** * Deletes a package * @param {stdClass} $data Data passed from ActionScript * @return {array} Standard response base */ public function deletePackage($data) { $response = CodeBank_ClientAPI::responseBase(); //Ensure logged in if (!Permission::check('CODE_BANK_ACCESS')) { $response['status'] = 'EROR'; $response['message'] = _t('CodeBankAPI.PERMISSION_DENINED', '_Permission Denied'); return $response; } $package = SnippetPackage::get()->byID(intval($data->id)); if (!empty($package) && $package !== false && $package->ID != 0) { $package->delete(); $response['status'] = 'HELO'; } else { $response['status'] = 'EROR'; $response['message'] = _t('CodeBankAPI.PACKAGE_NOT_FOUND', '_Package not found'); } return $response; }
/** * Return children from the stage site * * @param showAll Inlcude all of the elements, even those not shown in the menus. * (only applicable when extension is applied to {@link SiteTree}). * @return SS_List */ public function stageChildren($showAll = false) { $baseClass = ClassInfo::baseDataClass($this->owner->class); if ($baseClass == 'SnippetPackage') { if ($this->owner->ID == 0) { $staged = SnippetPackage::get(); } } else { if ($baseClass == 'SnippetLanguage') { if ($this->owner->ID == 0) { $staged = SnippetLanguage::get(); } else { $staged = ArrayList::create(array_merge($this->owner->Folders()->toArray(), $this->owner->Snippets()->filter('FolderID', 0)->toArray())); } } else { if ($baseClass == 'SnippetFolder') { $staged = ArrayList::create(array_merge($this->owner->Folders()->toArray(), $this->owner->Snippets()->toArray())); } else { $staged = new ArrayList(); } } } $this->owner->extend("augmentStageChildren", $staged, $showAll); return $staged; }
/** * Gets fields used in the cms * @return {FieldList} Fields to be used */ public function getCMSFields() { $langGridConfig = GridFieldConfig_RecordEditor::create(30); $langGridConfig->getComponentByType('GridFieldDetailForm')->setItemRequestClass('CodeBankGridField_ItemRequest'); $langGridConfig->getComponentByType('GridFieldDataColumns')->setFieldCasting(array('UserLanguage' => 'Boolean->Nice', 'Hidden' => 'Boolean->Nice')); $packageGridConfig = GridFieldConfig_RecordEditor::create(30); $packageGridConfig->addComponent(new ExportPackageButton()); $packageGridConfig->getComponentByType('GridFieldDetailForm')->setItemRequestClass('CodeBankGridField_ItemRequest')->setItemEditFormCallback(function (Form $form, GridFieldDetailForm_ItemRequest $itemRequest) { Requirements::javascript(CB_DIR . '/javascript/SnippetPackages.ItemEditForm.js'); if ($form->getRecord() && $form->getRecord()->ID > 0) { $form->Actions()->push(FormAction::create('doExportPackage', _t('CodeBank.EXPORT', '_Export'))->setForm($form)); } $form->addExtraClass('CodeBankPackages'); }); if (Permission::check('ADMIN')) { $fields = new FieldList(new TabSet('Root', new Tab('Main', _t('CodeBankConfig.MAIN', '_IP Message'), HtmlEditorField::create('IPMessage', _t('CodeBankConfig.IP_MESSAGE', '_Intellectual Property Message'))->addExtraClass('stacked')), new Tab('Languages', _t('CodeBankConfig.LANGUAGES', '_Languages'), new GridField('Languages', _t('CodeBankConfig.LANGUAGES', '_Languages'), SnippetLanguage::get(), $langGridConfig)), new Tab('Packages', _t('CodeBank.PACKAGES', '_Packages'), new GridField('Packages', _t('CodeBankConfig.MANAGE_PACKAGES', '_Manage Packages'), SnippetPackage::get(), $packageGridConfig)))); } else { $fields = new FieldList(new TabSet('Root', new Tab('Packages', _t('CodeBank.PACKAGES', '_Packages'), new GridField('Packages', _t('CodeBankConfig.MANAGE_PACKAGES', '_Manage Packages'), SnippetPackage::get(), $packageGridConfig)))); } return $fields; }
/** * Gets fields used in the cms * @return {FieldList} Fields to be used */ public function getCMSFields() { $fields = new FieldList(new TabSet('Root', new Tab('Main', _t('Snippet.MAIN', '_Main'), DropdownField::create('LanguageID', _t('Snippet.LANGUAGE', '_Language'), SnippetLanguage::get()->where('"SnippetLanguage"."Hidden"=0 OR "SnippetLanguage"."ID"=' . ($this->LanguageID ? $this->LanguageID : 0))->map('ID', 'Title'))->setEmptyString('---'), new TextField('Title', _t('Snippet.TITLE', '_Title'), null, 300), TextareaField::create('Description', _t('Snippet.DESCRIPTION', '_Description'))->setRows(5), PackageSelectionField::create('PackageID', _t('Snippet.PACKAGE', '_Package'), SnippetPackage::get()->map('ID', 'Title'))->setEmptyString(_t('Snippet.NOT_IN_PACKAGE', '_Not Part of a Package')), TextareaField::create('Text', _t('Snippet.CODE', '_Code'), $this->getSnippetText())->setRows(30)->addExtraClass('codeBankFullWidth')->addExtraClass('stacked'), TextareaField::create('Tags', _t('Snippet.TAGS', '_Tags (comma separate)'))->setRows(2)))); return $fields; }