Esempio n. 1
0
 public function __construct($module)
 {
     parent::__construct();
     $this->assign('__action', 'add');
     $tpl = Mreg::get('tpl');
     $tpl->concat('adminTitle', ' :: ' . $this->moduloptions['title'] . ' :: ' . __('Add record'));
     $mopts = PEAR::getStaticProperty('m_office', 'options');
     $mopt = $mopts['modules'][$module];
     $table = $mopt['table'];
     $do = M_Office_Util::doForModule($module);
     $this->append('subActions', '<a href="' . M_Office_Util::getQueryParams(array(), array('record', 'doSingleAction')) . '">' . __('Go to the %s list', array($mopt['title'])) . '</a>');
     $formBuilder =& MyFB::create($do);
     //	linkNewValue creates an issue if some linked elements are put in predefgroups
     //        $formBuilder->linkNewValue = true;
     $form = new MyQuickForm('editRecord', 'POST', M_Office_Util::getQueryParams(array(), array(), false), '_self', null, true);
     $form->addElement('hidden', 'submittedNewRecord', 1);
     if (isset($_REQUEST['filterField'])) {
         $form->addElement('hidden', 'filterField', $_REQUEST['filterField']);
         $form->addElement('hidden', 'filterValue', $_REQUEST['filterValue']);
         $do->{$_REQUEST['filterField']} = $_REQUEST['filterValue'];
     }
     $links = $do->links();
     if (key_exists($_REQUEST['filterField'], $links)) {
         $linfo = explode(':', $links[$_REQUEST['filterField']]);
         $form->addElement('static', 'mod', '', __('Add record with %s = %s', array($_REQUEST['filterField'], $_REQUEST['filterValue'])) . '. ' . '<a href="' . M_Office_Util::getQueryParams(array('table' => $linfo[0], 'record' => $_REQUEST['filterValue']), array('addRecord', 'filterField', 'filterValue')) . '">' . __('Back to main record') . '</a>');
     }
     $formBuilder->useForm($form);
     $formBuilder->getForm();
     if ($this->getOption('createAnother', $table)) {
         $form->addElement('static', '&nbsp;', '&nbsp;');
         $form->addElement('checkbox', 'returnHere', __('Create another record'));
         if (isset($_REQUEST['returnHere']) && $_REQUEST['returnHere']) {
             $form->setDefaults(array('returnHere' => true));
         }
     }
     M_Office_Util::addHiddenFields($form);
     if ($form->validate()) {
         if (PEAR::isError($ret = $form->process(array(&$formBuilder, 'processForm'), false))) {
             $this->append('error', __('An error occured while inserting record') . ' : ' . $ret->getMessage());
         } else {
             $pk = DB_DataObject_FormBuilder::_getPrimaryKey($do);
             $this->say(__('New record was successfully created. Its identifier is : %s', array($do->{$pk})));
             if ($this->getOption('createAnother', $table) && isset($_REQUEST['returnHere']) && $_REQUEST['returnHere']) {
                 M_Office_Util::refresh(M_Office_Util::getQueryParams(array('returnHere' => $_REQUEST['returnHere']), array(), false));
             } else {
                 $pk = DB_DataObject_FormBuilder::_getPrimaryKey($do);
                 M_Office_Util::refresh(M_Office_Util::getQueryParams(array('record' => $do->{$pk}), array('returnHere', 'addRecord'), false));
             }
         }
     } elseif ($form->isSubmitted()) {
     }
     $this->assign('addForm', $form);
     $this->assign('do', $do);
 }
Esempio n. 2
0
 protected function &getSearchForm()
 {
     if (!$this->getConfig('search')) {
         return false;
     }
     if ($this->_searchform) {
         return $this->_searchform;
     }
     $do = $this->getDO();
     $form = new MyQuickForm('searchform', 'GET', URL::get($this->_modulename . '/list'), '', null, true);
     if (method_exists($do, 'prepareSearchForm')) {
         $do->prepareSearchForm();
     }
     $formBuilder = MyFB::create($do);
     $formBuilder->selectAddEmpty = array();
     if (is_array($do->links())) {
         foreach ($do->links() as $field => $link) {
             $formBuilder->selectAddEmpty[] = $field;
         }
     }
     if (is_array($formBuilder->enumFields)) {
         foreach ($formBuilder->enumFields as $field) {
             $formBuilder->selectAddEmpty[] = $field;
         }
     }
     $formBuilder->linkNewValue = false;
     if ($o = $do->getPlugin('ownership')) {
         if ($o->userIsInAdminMode()) {
             $formBuilder->fieldsToRender[] = $do->ownerShipField;
             $formBuilder->fieldLabels[$do->ownerShipField] = 'géré par';
         }
     }
     $formBuilder->userEditableFields = $do->fb_fieldsToRender;
     $formBuilder->formHeaderText = __('Search');
     $formBuilder->submitText = '>>';
     $formBuilder->preGenerateFormCallback = 'fake';
     $formBuilder->useForm($form);
     $specialElements = array_keys($formBuilder->_getSpecialElementNames());
     foreach ($specialElements as $specialField) {
         unset($fieldsToRender[$specialField]);
     }
     $formBuilder->getForm();
     $form->addElement('hidden', 'searchSubmit', 1);
     $form->_rules = array();
     $form->_formRules = array();
     $form->_required = array();
     M_Office_Util::addHiddenFields($form, array('search', 'page'), true);
     $form->addElement('checkbox', '__dontpaginate', '', __('Afficher les résultats sur une seule page'));
     $this->_searchform = $form;
     return $this->_searchform;
 }
Esempio n. 3
0
 function __construct($module)
 {
     parent::__construct();
     $this->assign('module', $module);
     $this->module = $module;
     deny_unless_can('read', $module);
     if ((isset($_REQUEST['record']) || isset($_REQUEST['__record_ref'])) && ($this->getOption('edit', $module) || $this->getOption('view', $module))) {
         $subController = new M_Office_EditRecord($module, $_REQUEST['record'], $additionalFilter);
         $subController->__record_ref = $_REQUEST['__record_ref'];
         $subController->run();
         return;
     }
     if (isset($_REQUEST['addRecord']) && $this->getOption('add', $module)) {
         deny_unless_can('create', $module);
         $subController = new M_Office_AddRecord($module);
         $subController->run();
         return;
     }
     $opts = PEAR::getStaticProperty('m_office', 'options');
     $this->moduloptions = $opts['modules'][$module];
     $this->table = $this->moduloptions['table'];
     if (!$this->getOption('view', $module)) {
         M_Office_Util::refresh(ROOT_ADMIN_URL . ROOT_ADMIN_SCRIPT);
     }
     if ($this->getOption('search', $module)) {
         // 1. Url curation if needed
         // if(!key_exists('_c_',$_REQUEST) && !M_Office::isAjaxRequest()) {
         //   M_Office_Util::refresh(M_Office::cleanURL(array('_c_'=>1),array('searchSubmit','__submit__')));
         // }
         // 2. Process search
         $doSearch = M_Office_Util::doForModule($this->module);
         $searchForm = M_Office_Util::getSearchForm($doSearch, $this->module);
         $this->assign('search', $searchForm);
         $searchValues = $searchForm->exportValues();
     } else {
         $searchValues = array();
     }
     $do = $this->getSearchDO($searchValues);
     if (isset($_REQUEST['doaction']) && $this->getOption('actions', $module)) {
         $order = trim($_REQUEST['_ps'] . ' ' . $_REQUEST['_pd']);
         if ($order) {
             $do->orderBy();
             $do->orderBy($order);
         }
         $subController = new M_Office_Actions($this->getOptions());
         $subController->run($do, $_REQUEST['doaction'], 'batch');
         if ($subController->has_output) {
             return;
         }
     } elseif (isset($_REQUEST['glaction']) && $this->getOption('actions', $module)) {
         $subController = new M_Office_Actions($this->getOptions());
         $subController->run($do, $_REQUEST['glaction'], 'global');
         if ($subController->has_output) {
             return;
         }
     }
     if ($this->getAndProcessActions(clone $do, $module)) {
         return;
     }
     if ($this->getOption('view', $this->module) === TRUE) {
         $dg = new M_Office_View_DOPaging($this);
         $this->assign('__listview', 'dopaging');
     } else {
         $class = 'M_Office_View_' . $this->getOption('view', $this->module);
         $dg = new $class($this);
         $this->assign('__listview', $this->getOption('view', $this->module));
     }
     $tpl = Mreg::get('tpl');
     $do_before_fetch = clone $do;
     $tpl->assign('do_before_fetch', $do_before_fetch);
     $tpl->concat('adminTitle', $this->moduloptions['title'] . ' :: Listing');
     $tpl->assign('adminHeader', $this->moduloptions['title']);
     $pagination = $this->paginate === false ? false : true;
     $dg->prepare($do, $this->module, $pagination);
     $this->assign('dg', $dg);
     $this->assign('total', $total);
     $this->assign('pager', $dg->getPaging());
     $this->assign('fields', $dg->getFields());
     $this->assign('__action', 'showtable');
     $deleteForm = new MyQuickForm('showTableForm', 'post', M_Office_Util::getQueryParams(array(), array()), '_self', null, true);
     M_Office_Util::addHiddenFields($deleteForm, array(), true);
 }