True, 'edit' => True, 'writeLangFile' => True ); /*! @function ui_resources @abstract constructor of class ui_resources */ function ui_resources() { $this->tmpl = CreateObject('etemplate.etemplate','resources.show'); $this->bo = CreateObject('resources.bo_resources'); if(!@is_object($GLOBALS['phpgw']->js)) { $GLOBALS['phpgw']->js = CreateObject('phpgwapi.javascript'); } } /*! @function index @abstract main resources list. @param array $content content from eTemplate callback FIXME don't translate cats in nextmach */ function index($content='') { if (is_array($content)) { if (isset($content['nm']['rows'])) { if (isset($content['nm']['rows']['edit'])) { list($id) = each($content['nm']['rows']['edit']); return $this->edit($id); } elseif (isset($content['nm']['rows']['delete'])) { list($id) = each($content['nm']['rows']['delete']); return $this->delete($id); } } if (isset($content['add'])) { return $this->edit(0); } } $content['nm']['get_rows'] = 'resources.bo_resources.get_rows'; $content['nm']['no_filter'] = False; $content['nm']['filter_label'] = lang('Category'); $content['nm']['filter_help'] = lang('Select a category'); // is this used??? $content['nm']['options-filter']= array('0' => lang('all categories')); $content['nm']['options-filter']+= $this->bo->acl->get_cats(PHPGW_ACL_READ); $content['nm']['no_filter2'] = True; $content['nm']['no_cat'] = True; // check if user is permitted to add resources if(!$this->bo->acl->get_cats(PHPGW_ACL_ADD)) { $no_button['add'] = true; } $this->tmpl->read('resources.show'); $this->tmpl->exec('resources.ui_resources.index',$content,$sel_options,$no_button,$preserv); } /*! @function edit @abstract invokes add or edit dialog for resources @param mixed $content int for resource_id to edit ( 0 for new ). array if callback from dialog. @param string $msg message to display on top of dialog */ function edit($content='',$msg='') { $sel_options = array('cat_id' => $this->bo->acl->get_cats(PHPGW_ACL_ADD)); $no_button = array(); if (is_array($content)) { if(isset($content['delete'])) { return $this->delete($content['id']); } if(isset($content['save'])) { if(!$content['cat_id'] || !$content['name']) { $content['msg'] = 'You need to choose at least a name and a category!'; $this->tmpl->read('resources.edit'); $this->tmpl->exec('resources.ui_resources.edit',$content,$sel_options,$no_button); return; } $content['msg'] = $this->bo->save($content); if($content['msg']) { $this->tmpl->read('resources.edit'); $this->tmpl->exec('resources.ui_resources.edit',$content,$sel_options,$no_button); } } return $this->index(); } if ($content > 0) { $preserv = array('id' => $content); $content = $this->bo->read($content); } else { $content = array(); } $content['msg'] = $msg; $this->tmpl->read('resources.edit'); $this->tmpl->exec('resources.ui_resources.edit',$content,$sel_options,$no_button,$preserv); } /*! @function show @abstract showes a single resource @param int $id resource id */ function show($id) { } function delete($id) { // Wollen sie Dieses bla bla wirklich löschen --> ja (Wie bekommt man mit eTemplate ein Javascript Dialog???) $this->bo->delete($id); return $this->show(); } }