Source of file KapostAdmin.php
Size: 5,844 Bytes - Last Modified: 2021-12-23T10:57:38+00:00
/var/www/docs.ssmods.com/process/src/code/control/KapostAdmin.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 | <?php /** * Class KapostAdmin * */ class KapostAdmin extends ModelAdmin { public $showImportForm=false; private static $url_segment='kapost'; private static $managed_models=array( 'KapostObject', 'KapostConversionHistory' ); /** * Array of name's for extra conversion modes (see documentation for information on how to define these) * @config KapostAdmin.extra_conversion_modes */ private static $extra_conversion_modes=array(); /** * Set this to a string of the base url for your Kapost account for example https://example.kapost.com/ * @config KapostAdmin.kapost_base_url */ private static $kapost_base_url=null; /** * Form used for displaying the gridfield in the model admin * @param string $id ID of the form * @param FieldList $fields Fields to use in the form * @return Form Form to be used in the model admin interface */ public function getEditForm($id=null, $fields=null) { $form=parent::getEditForm($id, $fields); Requirements::css(KAPOST_DIR.'/css/KapostAdmin.css'); Requirements::javascript(KAPOST_DIR.'/javascript/KapostAdmin.js'); if($this->modelClass=='KapostObject' && $gridField=$form->Fields()->dataFieldByName('KapostObject')) { $gridField->setList($gridField->getList()->filter('IsKapostPreview', 0)); $gridField->getConfig() ->addComponent(new KapostGridFieldRefreshButton('before')) ->removeComponentsByType('GridFieldAddNewButton') ->getComponentByType('GridFieldDataColumns') ->setFieldCasting(array( 'Created'=>'SS_Datetime->FormatFromSettings', 'KapostChangeType'=>'KapostFieldCaster->NiceChangeType', 'ToPublish'=>'KapostFieldCaster->NiceToPublish' )); $gridField->getConfig() ->getComponentByType('GridFieldDetailForm') ->setItemRequestClass('KapostGridFieldDetailForm_ItemRequest'); }else if($this->modelClass=='KapostConversionHistory' && $gridField=$form->Fields()->dataFieldByName('KapostConversionHistory')) { $gridField->getConfig() ->removeComponentsByType('GridFieldAddNewButton') ->addComponent(new KapostDestinationAction(), 'GridFieldEditButton'); $dataColumns=$gridField->getConfig()->getComponentByType('GridFieldDataColumns'); $dataColumns->setFieldCasting(array( 'Created'=>'SS_Datetime->FormatFromSettings' )); $columns=$dataColumns->getDisplayFields($gridField); $columns['DestinationTypeNice']=_t('KapostConversionHistory.db_DestinationType', '_Destination Type'); $columns['KapostChangeTypeNice']=_t('KapostConversionHistory.db_KapostChangeType', '_Change Type'); $columns=$dataColumns->setDisplayFields($columns); $gridField->getConfig()->getComponentByType('GridFieldDetailForm')->setItemEditFormCallback(function(Form $form) { $form->addExtraClass('KapostAdmin'); }); } $form->addExtraClass('KapostAdmin'); return $form; } /** * * @return SS_List of forms * * @see ModelAdmin::getManagedModelTabs() */ protected function getManagedModelTabs() { $tabs=parent::getManagedModelTabs(); //If the log viewer is installed add that to the managed model tabs if(class_exists('KapostBridgeLogViewer')) { $sng=new KapostBridgeLogViewer(); $tabs->push(new ArrayData(array( 'Title'=>$sng->SectionTitle(), 'ClassName'=>'KapostBridgeLogViewer', 'Link'=>$sng->Link(), 'LinkOrCurrent'=>'link' ))); } return $tabs; } /** * Gets the list used in the ModelAdmin * @return SS_List */ public function getList() { $context=$this->getSearchContext(); $params=$this->getRequest()->requestVar('q'); if(is_array($params)) { if(array_key_exists('Created', $params) && is_array($params['Created'])) { $params['Created']=implode(' ', $params['Created']); } $params=array_map('trim', $params); } $list=$context->getResults($params); $this->extend('updateList', $list); return $list; } /** * @return array Map of class name to an array of 'title' (see {@link $managed_models}) */ public function getManagedModels() { $models=parent::getManagedModels(); if(array_key_exists('KapostObject', $models)) { $models['KapostObject']['title']=_t('KapostAdmin.INCOMING_CONTENT', '_Incoming Content'); } return $models; } } ?> |