True, 'edit' => True, 'writeLangFile' => True ); /*! @function ui_resources @abstract constructor of class ui_resources */ function ui_resources() { // print_r($GLOBALS['phpgw_info']); die(); $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. @autor Cornelius Weiß @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'] = 'Category'; $content['nm']['filter_help'] = lang('Select a category'); // is this used??? $content['nm']['options-filter']= array('0'=>lang('all categories'))+(array)$this->bo->acl->get_cats(PHPGW_ACL_READ); $content['nm']['no_filter2'] = true; $content['nm']['filter_no_lang'] = 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 @syntax edit($content=0) @author Cornelius Weiß @abstract invokes add or edit dialog for resources @param $content Content from the eTemplate Exec call or id on inital call */ function edit($content=0) { if (is_array($content)) { if(isset($content['save']) || isset($content['delete'])) { if(isset($content['save'])) { unset($content['save']); if($content['id'] != 0) { // links are already saved by eTemplate unset($resource['link_to']['to_id']); } $content['msg'] = $this->bo->save($content); } if(isset($content['delete'])) { unset($content['delete']); $content['msg'] = $this->delete($content['id']); } return $content['msg'] ? $this->edit($content) : $this->index(); } elseif($content['cancel']) { return $this->index(); } } else { $resource_id = $content; $content = array('resource_id' => $resource_id); // some presetes $content['quantity'] = $content['useable'] = 1; $content['accessory_of'] = -1; if ($resource_id > 0) { $content = $this->bo->read($resource_id); $content['gen_src_list'] = strstr($content['picture_src'],'.') ? $content['picture_src'] : false; $content['picture_src'] = strstr($content['picture_src'],'.') ? 'gen_src' : $content['picture_src']; $content['link_to'] = array( 'to_id' => $resource_id, 'to_app' => 'resources' ); // $sel_options += array('acc_list' => $this->bo->get_acc_list($resource_id)); } $content['resource_picture'] = $this->bo->get_picture($resource_id,$content['picture_src'],$size=true); } $sel_options['cat_id'] = $this->bo->acl->get_cats(PHPGW_ACL_ADD); $sel_options['cat_id'] = count($sel_options['cat_id']) == 1 ? $sel_options['cat_id'] : array('' => lang('select one')) + $sel_options['cat_id']; $sel_options['gen_src_list'] = $this->bo->get_genpicturelist(); $no_button = array(); // TODO: show delete button only if allowed to delete resource $preserv = $content; $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->index(); } }