[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Fmsystem-commits] [17152] booking/bookingfrontend: add delegates to org
From: |
sigurdne |
Subject: |
[Fmsystem-commits] [17152] booking/bookingfrontend: add delegates to organizations |
Date: |
Fri, 13 Oct 2017 13:51:21 -0400 (EDT) |
Revision: 17152
http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=17152
Author: sigurdne
Date: 2017-10-13 13:51:21 -0400 (Fri, 13 Oct 2017)
Log Message:
-----------
booking/bookingfrontend: add delegates to organizations
Modified Paths:
--------------
trunk/booking/inc/class.bocommon.inc.php
trunk/booking/inc/class.menu.inc.php
trunk/booking/inc/class.uigroup.inc.php
trunk/booking/inc/class.uiorganization.inc.php
trunk/booking/setup/phpgw_no.lang
trunk/booking/setup/setup.inc.php
trunk/booking/setup/tables_current.inc.php
trunk/booking/setup/tables_update.inc.php
trunk/bookingfrontend/inc/class.bouser.inc.php
trunk/bookingfrontend/inc/class.uiorganization.inc.php
trunk/bookingfrontend/inc/custom/default/Altinn2_Bergen_kommune.php
trunk/bookingfrontend/inc/custom/default/MinId.php
trunk/bookingfrontend/templates/base/organization.xsl
Added Paths:
-----------
trunk/booking/inc/class.bodelegate.inc.php
trunk/booking/inc/class.sodelegate.inc.php
trunk/booking/inc/class.sopermission_delegate.inc.php
trunk/booking/inc/class.uidelegate.inc.php
trunk/booking/js/booking/delegate_new.js
trunk/booking/templates/base/delegate.xsl
trunk/booking/templates/base/delegate_edit.xsl
trunk/bookingfrontend/inc/class.uidelegate.inc.php
trunk/bookingfrontend/templates/base/delegate.xsl
trunk/bookingfrontend/templates/base/delegate_edit.xsl
Modified: trunk/booking/inc/class.bocommon.inc.php
===================================================================
--- trunk/booking/inc/class.bocommon.inc.php 2017-10-12 15:01:32 UTC (rev
17151)
+++ trunk/booking/inc/class.bocommon.inc.php 2017-10-13 17:51:21 UTC (rev
17152)
@@ -87,8 +87,12 @@
if (!isset($_SESSION['showall']))
{
- if (!isset($filters['application_id']))
+ if(!empty($filters['active']) &&
$filters['active'] == "-1")
{
+ unset($filters['active']);
+ }
+ else if (!isset($filters['application_id']))
+ {
$filters['active'] = "1";
}
}
@@ -130,8 +134,12 @@
if (!isset($_SESSION['showall']))
{
- if
(!isset($params['filters']['application_id']))
+ if(!empty($params['filters']['active']) &&
$params['filters']['active'] == "-1")
{
+ unset($params['filters']['active']);
+ }
+ else if
(!isset($params['filters']['application_id']))
+ {
$params['filters']['active'] = "1";
}
}
Added: trunk/booking/inc/class.bodelegate.inc.php
===================================================================
--- trunk/booking/inc/class.bodelegate.inc.php (rev 0)
+++ trunk/booking/inc/class.bodelegate.inc.php 2017-10-13 17:51:21 UTC (rev
17152)
@@ -0,0 +1,87 @@
+<?php
+ phpgw::import_class('booking.bocommon_authorized');
+
+ class booking_bodelegate extends booking_bocommon_authorized
+ {
+
+ function __construct()
+ {
+ parent::__construct();
+ $this->so = CreateObject('booking.sodelegate');
+ $this->org_bo = CreateObject('booking.boorganization');
+ }
+
+ /**
+ * @see bocommon_authorized
+ */
+ protected function include_subject_parent_roles( array
$for_object = null )
+ {
+ $parent_roles = null;
+ $parent_org = null;
+
+ if (is_array($for_object))
+ {
+ if (!isset($for_object['organization_id']))
+ {
+ throw new
InvalidArgumentException('Cannot initialize object parent roles unless
organization_id is provided');
+ }
+
+ $parent_org =
$this->org_bo->read_single($for_object['organization_id']);
+ }
+
+ //Note that a null value for $parent_org is acceptable.
That only signifies
+ //that any roles specified for any organization are
returned rather than the roles
+ //for a specific organization
+ $parent_roles['organization'] =
$this->org_bo->get_subject_roles($parent_org);
+
+ return $parent_roles;
+ }
+
+ /**
+ * @see bocommon_authorized
+ */
+ protected function get_object_role_permissions( $forObject,
$defaultPermissions )
+ {
+ if ($this->current_app() == 'booking')
+ {
+
$defaultPermissions[booking_sopermission::ROLE_DEFAULT] = array
+ (
+ 'read' => true,
+ 'delete' => true,
+ 'write' => true,
+ 'create' => true,
+ );
+
+
$defaultPermissions['parent_role_permissions']['organization'] = array();
+ }
+
+ if ($this->current_app() == 'bookingfrontend')
+ {
+
$defaultPermissions['parent_role_permissions']['organization'][booking_boorganization::ROLE_ADMIN]
= array
+ (
+ 'write' => true,
+ 'create' => true,
+ );
+ }
+
+ return $defaultPermissions;
+ }
+
+ /**
+ * @see bocommon_authorized
+ */
+ protected function get_collection_role_permissions(
$defaultPermissions )
+ {
+ if ($this->current_app() == 'booking')
+ {
+
$defaultPermissions[booking_sopermission::ROLE_DEFAULT]['create'] = true;
+ }
+
+ if ($this->current_app() == 'bookingfrontend')
+ {
+
$defaultPermissions['parent_role_permissions']['organization'][booking_boorganization::ROLE_ADMIN]['create']
= true;
+ }
+
+ return $defaultPermissions;
+ }
+ }
\ No newline at end of file
Modified: trunk/booking/inc/class.menu.inc.php
===================================================================
--- trunk/booking/inc/class.menu.inc.php 2017-10-12 15:01:32 UTC (rev
17151)
+++ trunk/booking/inc/class.menu.inc.php 2017-10-13 17:51:21 UTC (rev
17152)
@@ -151,6 +151,12 @@
'text' =>
lang('Groups'),
'url' =>
$GLOBALS['phpgw']->link('/index.php', array('menuaction' =>
'booking.uigroup.index')),
'image' =>
array('property', 'location_tenant'),
+ ),
+ 'delegates' => array
+ (
+ 'text' =>
lang('delegates'),
+ 'url' =>
$GLOBALS['phpgw']->link('/index.php', array('menuaction' =>
'booking.uidelegate.index')),
+ 'image' =>
array('property', 'location_tenant'),
)
)
),
Added: trunk/booking/inc/class.sodelegate.inc.php
===================================================================
--- trunk/booking/inc/class.sodelegate.inc.php (rev 0)
+++ trunk/booking/inc/class.sodelegate.inc.php 2017-10-13 17:51:21 UTC (rev
17152)
@@ -0,0 +1,92 @@
+<?php
+ phpgw::import_class('booking.socommon');
+
+ class booking_sodelegate extends booking_socommon
+ {
+
+ function __construct()
+ {
+ parent::__construct('bb_delegate', array(
+ 'id' => array('type' => 'int'),
+ 'active' => array('type' => 'int', 'required'
=> true),
+ 'organization_id' => array('type' => 'int',
'required' => true),
+ 'name' => array('type' => 'string', 'query' =>
true, 'required' => true),
+ 'email' => array('type' => 'string',
'sf_validator' => createObject('booking.sfValidatorEmail', array(), array(
+ 'invalid' => '%field% is
invalid'))),
+ 'ssn' => array('type' => 'string', 'required'
=> true),
+ 'phone' => array('type' => 'string', 'query' =>
true, 'required' => true),
+ 'organization_name' => array('type' => 'string',
+ 'query' => true,
+ 'join' => array(
+ 'table' => 'bb_organization',
+ 'fkey' => 'organization_id',
+ 'key' => 'id',
+ 'column' => 'name'
+ )),
+ )
+ );
+ $this->account =
$GLOBALS['phpgw_info']['user']['account_id'];
+ }
+
+ function get_metainfo( $id )
+ {
+ $this->db->limit_query("SELECT bb_delegate.first_name
|| ' ' || last_name AS name"
+ . " bb_organization.name AS organization,
bb_organization.district,"
+ . " bb_organization.city,
bb_delegate.description"
+ . " FROM bb_delegate, bb_organization AS
bb_organization"
+ . " WHERE
bb_delegate.organization_id=bb_organization.id AND bb_delegate.id=" .
intval($id), 0, __LINE__, __FILE__, 1);
+ if (!$this->db->next_record())
+ {
+ return False;
+ }
+ return array('name' => $this->db->f('name', false),
+ 'organization' => $this->db->f('organization',
false),
+ 'district' => $this->db->f('district', false),
+ 'city' => $this->db->f('city', false),
+ 'description' => $this->db->f('description',
false));
+ }
+
+ protected function preValidate( &$entity )
+ {
+ $id = (int) $entity['id'];
+ if (empty($entity['ssn']))
+ {
+ $this->db->query("SELECT ssn FROM bb_delegate
WHERE id = {$id}", __LINE__, __FILE__);
+ $this->db->next_record();
+ $entity['ssn'] = $this->db->f('ssn');
+ }
+ }
+
+
+ protected function doValidate( $entity, booking_errorstack
$errors )
+ {
+
+ $ssn= $entity['ssn'];
+
+ if ( !preg_match('/^{(.*)}(.*)$/', $ssn, $m) ||
count($m) != 3 ) //full string, algorhythm, hash
+ {
+ //raw ssn
+ try
+ {
+ $sf_validator =
createObject('booking.sfValidatorNorwegianSSN', array(), array(
+ 'invalid' => '%field% is invalid'));
+ $sf_validator->setOption('required',
false);
+ $sf_validator->clean($ssn);
+ }
+ catch (sfValidatorError $e)
+ {
+ $errors['ssn'] =
lang(strtr($e->getMessage(), array('%field%' => 'ssn')));
+ }
+
+ return;
+ }
+ $algo = $m[1];
+ $hash = $m[2];
+
+ if($algo != 'SHA1')
+ {
+ $errors['ssn'] = lang('the ssn hash is not
correct');
+ }
+ }
+
+ }
\ No newline at end of file
Added: trunk/booking/inc/class.sopermission_delegate.inc.php
===================================================================
--- trunk/booking/inc/class.sopermission_delegate.inc.php
(rev 0)
+++ trunk/booking/inc/class.sopermission_delegate.inc.php 2017-10-13
17:51:21 UTC (rev 17152)
@@ -0,0 +1,7 @@
+<?php
+ phpgw::import_class('booking.sopermission');
+
+ class booking_sopermission_delegate extends booking_sopermission
+ {
+
+ }
\ No newline at end of file
Added: trunk/booking/inc/class.uidelegate.inc.php
===================================================================
--- trunk/booking/inc/class.uidelegate.inc.php (rev 0)
+++ trunk/booking/inc/class.uidelegate.inc.php 2017-10-13 17:51:21 UTC (rev
17152)
@@ -0,0 +1,346 @@
+<?php
+ phpgw::import_class('booking.uicommon');
+
+ phpgw::import_class('booking.uidocument_building');
+ phpgw::import_class('booking.uipermission_building');
+
+// phpgw::import_class('phpgwapi.uicommon_jquery');
+
+ class booking_uidelegate extends booking_uicommon
+ {
+
+ public $public_functions = array
+ (
+ 'index' => true,
+ 'query' => true,
+ 'show' => true,
+ 'edit' => true,
+ 'toggle_show_inactive' => true,
+ );
+ protected $module;
+
+ public function __construct()
+ {
+ parent::__construct();
+ $this->bo = CreateObject('booking.bodelegate');
+ $this->activity_bo = CreateObject('booking.boactivity');
+
self::set_active_menu('booking::organizations::delegates');
+
+ $this->module = "booking";
+ }
+
+ public function link_to_parent_params( $action = 'show',
$params = array() )
+ {
+ return array_merge(array('menuaction' =>
sprintf($this->module . '.ui%s.%s', $this->get_current_parent_type(), $action),
+ 'id' => $this->get_parent_id()), $params);
+ }
+
+ public function link_to_parent( $action = 'show', $params =
array() )
+ {
+ return
$this->link($this->link_to_parent_params($action, $params));
+ }
+
+ public function get_current_parent_type()
+ {
+ if (!$this->is_inline())
+ {
+ return null;
+ }
+ $parts = explode('_', key($a =
$this->get_inline_params()));
+ return $parts[1];
+ }
+
+ public function get_parent_id()
+ {
+ $inlineParams = $this->get_inline_params();
+ return $inlineParams['filter_organization_id'];
+ }
+
+ public function get_parent_if_inline()
+ {
+ if (!$this->is_inline())
+ return null;
+ return CreateObject('booking.bo' .
$this->get_current_parent_type())->read_single($this->get_parent_id());
+ }
+
+ public function redirect_to_parent_if_inline()
+ {
+ if ($this->is_inline())
+ {
+ $this->redirect($this->link_to_parent_params());
+ }
+
+ return false;
+ }
+
+ public function link_to( $action, $params = array() )
+ {
+ return $this->link($this->link_to_params($action,
$params));
+ }
+
+ public function link_to_params( $action, $params = array() )
+ {
+ if (isset($params['ui']))
+ {
+ $ui = $params['ui'];
+ unset($params['ui']);
+ }
+ else
+ {
+ $ui = 'delegate';
+ $this->apply_inline_params($params);
+ }
+
+ $action = sprintf($this->module . '.ui%s.%s', $ui,
$action);
+ return array_merge(array('menuaction' => $action),
$params);
+ }
+
+ public function apply_inline_params( &$params )
+ {
+ if ($this->is_inline())
+ {
+ $params['filter_organization_id'] =
intval(phpgw::get_var('filter_organization_id'));
+ }
+ return $params;
+ }
+
+ public function get_inline_params()
+ {
+ return array('filter_organization_id' =>
phpgw::get_var('filter_organization_id', 'int', 'REQUEST'));
+ }
+
+ public function is_inline()
+ {
+ return false !=
phpgw::get_var('filter_organization_id', 'int', 'REQUEST');
+ }
+
+ public function index()
+ {
+ if (phpgw::get_var('phpgw_return_as') == 'json')
+ {
+ return $this->query();
+ }
+
+ $data = array(
+ 'form' => array(
+ 'toolbar' => array(
+ 'item' => array(
+ array(
+ 'type' =>
'link',
+ 'value' =>
$_SESSION['showall'] ? lang('Show only active') : lang('Show all'),
+ 'href' =>
self::link(array('menuaction' => $this->url_prefix . '.toggle_show_inactive'))
+ ),
+ )
+ ),
+ ),
+ 'datatable' => array(
+ 'source' =>
self::link(array('menuaction' => $this->module . '.uidelegate.index',
+ 'phpgw_return_as' => 'json')),
+ 'field' => array(
+ array(
+ 'key' =>
'organization_name',
+ 'label' =>
lang('Organization')
+ ),
+ array(
+ 'key' => 'name',
+ 'label' =>
lang('delegate'),
+ 'formatter' =>
'JqueryPortico.formatLink'
+ ),
+ array(
+ 'key' => 'phone',
+ 'label' =>
lang('Phone'),
+ ),
+ array(
+ 'key' => 'email',
+ 'label' =>
lang('Email'),
+ ),
+ array(
+ 'key' => 'active',
+ 'label' =>
lang('Active'),
+ ),
+ array(
+ 'key' => 'link',
+ 'hidden' => true
+ )
+ )
+ )
+ );
+ $data['datatable']['actions'][] = array();
+ $data['datatable']['new_item'] =
self::link(array('menuaction' => $this->module . '.uidelegate.edit'));
+
+ self::render_template_xsl('datatable_jquery', $data);
+ }
+
+ public function query()
+ {
+ $delegates = $this->bo->read();
+
+ $lang_yes = lang('yes');
+ $lang_no = lang('no');
+
+ array_walk($delegates["results"], array($this,
"_add_links"), $this->module . ".uidelegate.show");
+ foreach ($delegates["results"] as &$delegate)
+ {
+ $delegate['active'] = $delegate['active'] == 1
? $lang_yes : $lang_no;
+ }
+ $results = $this->jquery_results($delegates);
+
+ if (is_array($parent_entity =
$this->get_parent_if_inline()))
+ {
+ if
($this->bo->allow_create(array($this->get_current_parent_type() . '_id' =>
$parent_entity['id'])))
+ {
+ $results['Actions']['add'] =
array('text' => lang('Add Group'), 'href' => $this->link_to('edit'));
+ }
+ }
+
+ return $results;
+ }
+
+ public function edit()
+ {
+ $id = phpgw::get_var('id', 'int');
+
+
+ if ($id)
+ {
+ $delegate = $this->bo->read_single($id);
+ $delegate['id'] = $id;
+ $delegate['organization_link'] =
$this->link_to('show', array('ui' => 'organization',
+ 'id' => $delegate['organization_id']));
+
+ $delegate['cancel_link'] =
$this->link_to('show', array('id' => $id));
+
+ if ($this->is_inline())
+ {
+ $delegate['cancel_link'] =
$this->link_to_parent();
+ }
+ }
+ else
+ {
+ $delegate = array();
+ $delegate['cancel_link'] =
$this->link_to('index', array('ui' => 'organization'));
+
+ $organization_id =
phpgw::get_var('organization_id', 'int');
+ if($organization_id)
+ {
+ $delegate['organization_id'] =
$organization_id;
+ $organization =
CreateObject('booking.boorganization')->read_single($organization_id);
+ $delegate['organization_name'] =
$organization['name'];
+ }
+
+ if ($this->is_inline())
+ {
+ $delegate['organization_link'] =
$this->link_to_parent();
+ $delegate['cancel_link'] =
$this->link_to_parent();
+ $this->apply_inline_params($delegate);
+ }
+ }
+
+ $delegate['organizations_link'] =
$this->link_to('index', array('ui' => 'organization'));
+
+ $errors = array();
+ if ($_SERVER['REQUEST_METHOD'] == 'POST')
+ {
+ $delegate = array_merge($delegate,
extract_values($_POST, array(
+ 'name' => 'string',
+ 'ssn' => 'string',
+ 'email' => 'string',
+ 'phone' => 'string',
+ 'organization_id' => 'string',
+ 'organization_name' => 'string',
+ 'active' => 'int',
+ )));
+ if (!isset($delegate["active"]))
+ {
+ $delegate['active'] = '1';
+ }
+
+ $errors = $this->bo->validate($delegate);
+ if (strlen($_POST['name']) > 50)
+ {
+ $errors['name'] = lang('Lengt of name
is to long, max 50 characters long');
+ }
+ if (strlen($_POST['shortname']) > 11)
+ {
+ $errors['shortname'] = lang('Lengt of
shortname is to long, max 11 characters long');
+ }
+ if (!$errors)
+ {
+ if (empty($delegate['ssn']))
+ {
+ $_delegate =
$this->bo->read_single($id);
+ $delegate['ssn'] =
$_delegate['ssn'];
+ }
+ else
+ {
+ $hash = sha1($delegate['ssn']);
+ $delegate['ssn'] = '{SHA1}' .
base64_encode($hash);
+ }
+
+ if ($id)
+ {
+ $receipt =
$this->bo->update($delegate);
+ }
+ else
+ {
+ $receipt =
$this->bo->add($delegate);
+ }
+
+ $this->redirect_to_parent_if_inline();
+
$this->redirect($this->link_to_params('show', array('id' => $receipt['id'])));
+ }
+ }
+ $this->flash_form_errors($errors);
+
+ if (is_array($parent_entity =
$this->get_parent_if_inline()))
+ {
+ $delegate[$this->get_current_parent_type() .
'_id'] = $parent_entity['id'];
+ $delegate[$this->get_current_parent_type() .
'_name'] = $parent_entity['name'];
+ }
+
+ phpgwapi_jquery::load_widget('autocomplete');
+ self::rich_text_editor('field_description');
+
+ $tabs = array();
+ $tab_text = ($id) ? 'Group Edit' : 'Group New';
+ if (id)
+ {
+ $tabs['generic'] = array('label' =>
lang($tab_text), 'link' => '#delegate_edit');
+ }
+ $active_tab = 'generic';
+ $delegate['tabs'] =
phpgwapi_jquery::tabview_generate($tabs, $active_tab);
+ $delegate['validator'] =
phpgwapi_jquery::formvalidator_generate(array('location',
+ 'date', 'security', 'file'));
+
+ $delegate['ssn'] = '';//secret
+
+ self::render_template_xsl('delegate_edit',
array('delegate' => $delegate, 'module' => $this->module));
+ }
+
+ public function show()
+ {
+ $delegate = $this->bo->read_single(phpgw::get_var('id',
'int'));
+ $delegate['organizations_link'] =
self::link(array('menuaction' => $this->module . '.uiorganization.index'));
+ $delegate['organization_link'] =
self::link(array('menuaction' => $this->module . '.uiorganization.show',
+ 'id' => $delegate['organization_id']));
+ $delegate['edit_link'] = self::link(array('menuaction'
=> $this->module . '.uidelegate.edit',
+ 'id' => $delegate['id']));
+ $delegate['cancel_link'] =
self::link(array('menuaction' => $this->module . '.uidelegate.index'));
+
+ $data = array(
+ 'delegate' => $delegate
+ );
+ $loggedin = (int)true; // FIXME: Some sort of
authentication!
+ $edit_self_link = self::link(array('menuaction' =>
'bookingfrontend.uidelegate.edit',
+ 'id' => $delegate['id']));
+
+ $tabs = array();
+ $tabs['generic'] = array('label' => lang('delegate'),
'link' => '#delegate');
+ $active_tab = 'generic';
+
+ $delegate['tabs'] =
phpgwapi_jquery::tabview_generate($tabs, $active_tab);
+
+ self::render_template_xsl('delegate', array('delegate'
=> $delegate, 'loggedin' => $loggedin,
+ 'edit_self_link' => $edit_self_link));
+ }
+ }
\ No newline at end of file
Modified: trunk/booking/inc/class.uigroup.inc.php
===================================================================
--- trunk/booking/inc/class.uigroup.inc.php 2017-10-12 15:01:32 UTC (rev
17151)
+++ trunk/booking/inc/class.uigroup.inc.php 2017-10-13 17:51:21 UTC (rev
17152)
@@ -244,6 +244,13 @@
$group = array();
$group['cancel_link'] = $this->link_to('index',
array('ui' => 'organization'));
+ if($organization_id)
+ {
+ $group['organization_id'] =
$organization_id;
+ $organization =
CreateObject('booking.boorganization')->read_single($organization_id);
+ $group['organization_name'] =
$organization['name'];
+ }
+
if ($this->is_inline())
{
$group['organization_link'] =
$this->link_to_parent();
Modified: trunk/booking/inc/class.uiorganization.inc.php
===================================================================
--- trunk/booking/inc/class.uiorganization.inc.php 2017-10-12 15:01:32 UTC
(rev 17151)
+++ trunk/booking/inc/class.uiorganization.inc.php 2017-10-13 17:51:21 UTC
(rev 17152)
@@ -323,6 +323,8 @@
'id' => $organization['id']));
$organization['new_group_link'] =
self::link(array('menuaction' => $this->module . '.uigroup.edit',
'organization_id' =>
$organization['id']));
+ $organization['new_delegate_link'] =
self::link(array('menuaction' => $this->module . '.uidelegate.edit',
+ 'organization_id' =>
$organization['id']));
$organization['cancel_link'] =
self::link(array('menuaction' => $this->module . '.uiorganization.index'));
$organization['tabs'] =
phpgwapi_jquery::tabview_generate($tabs, $active_tab);
$this->install_customer_identifier_ui($organization);
Added: trunk/booking/js/booking/delegate_new.js
===================================================================
--- trunk/booking/js/booking/delegate_new.js (rev 0)
+++ trunk/booking/js/booking/delegate_new.js 2017-10-13 17:51:21 UTC (rev
17152)
@@ -0,0 +1,5 @@
+$(document).ready(function ()
+{
+
JqueryPortico.autocompleteHelper('index.php?menuaction=booking.uiorganization.index&phpgw_return_as=json&',
+ 'field_organization_name', 'field_organization_id',
'organization_container');
+});
Modified: trunk/booking/setup/phpgw_no.lang
===================================================================
--- trunk/booking/setup/phpgw_no.lang 2017-10-12 15:01:32 UTC (rev 17151)
+++ trunk/booking/setup/phpgw_no.lang 2017-10-13 17:51:21 UTC (rev 17152)
@@ -708,4 +708,10 @@
toggle show inactive booking no Veklse på å vise inaktive
season edit booking no Endre sesong
season show booking no Vis sesong
-application edit booking no Rediger søknad
\ No newline at end of file
+application edit booking no Rediger søknad
+delegates booking no Delegater
+delegate booking no Delegert til
+new delegate booking no Ny delegert
+please enter a delegate booking no Angi navn på delegert til
+please enter an email booking no Angi en epost
+ssn is invalid booking no Fødselsnummeret er ikke gyldig
\ No newline at end of file
Modified: trunk/booking/setup/setup.inc.php
===================================================================
--- trunk/booking/setup/setup.inc.php 2017-10-12 15:01:32 UTC (rev 17151)
+++ trunk/booking/setup/setup.inc.php 2017-10-13 17:51:21 UTC (rev 17152)
@@ -1,6 +1,6 @@
<?php
$setup_info['booking']['name'] = 'booking';
- $setup_info['booking']['version'] = '0.2.27';
+ $setup_info['booking']['version'] = '0.2.28';
$setup_info['booking']['app_order'] = 9;
$setup_info['booking']['enable'] = 1;
$setup_info['booking']['app_group'] = 'office';
@@ -16,6 +16,7 @@
'bb_resource',
'bb_building_resource',
'bb_group',
+ 'bb_delegate',
'bb_season',
'bb_season_boundary',
'bb_application',
Modified: trunk/booking/setup/tables_current.inc.php
===================================================================
--- trunk/booking/setup/tables_current.inc.php 2017-10-12 15:01:32 UTC (rev
17151)
+++ trunk/booking/setup/tables_current.inc.php 2017-10-13 17:51:21 UTC (rev
17152)
@@ -164,6 +164,21 @@
'ix' => array(),
'uc' => array()
),
+ 'bb_delegate' => array(
+ 'fd' => array(
+ 'id' => array('type' => 'auto', 'nullable' =>
false),
+ 'active' => array('type' => 'int', 'nullable'
=> False, 'precision' => 2, 'default' => 1),
+ 'organization_id' => array('type' => 'int',
'precision' => '4', 'nullable' => False),
+ 'name' => array('type' => 'varchar',
'precision' => '150', 'nullable' => False),
+ 'email' => array('type' => 'varchar',
'precision' => '50', 'nullable' => True),
+ 'ssn' => array('type' => 'varchar', 'precision'
=> '115', 'nullable' => True),
+ 'phone' => array('type' => 'varchar',
'precision' => '50', 'nullable' => True),
+ ),
+ 'pk' => array('id'),
+ 'fk' => array('bb_organization' =>
array('organization_id' => 'id')),
+ 'ix' => array(),
+ 'uc' => array('organization_id', 'ssn')
+ ),
'bb_season' => array(
'fd' => array(
'id' => array('type' => 'auto', 'nullable' =>
false),
Modified: trunk/booking/setup/tables_update.inc.php
===================================================================
--- trunk/booking/setup/tables_update.inc.php 2017-10-12 15:01:32 UTC (rev
17151)
+++ trunk/booking/setup/tables_update.inc.php 2017-10-13 17:51:21 UTC (rev
17152)
@@ -3588,3 +3588,38 @@
return $GLOBALS['setup_info']['booking']['currentver'];
}
}
+
+
+ /**
+ * Update booking version from 0.2.27 to 0.2.28
+ *
+ */
+ $test[] = '0.2.27';
+ function booking_upgrade0_2_27()
+ {
+ $GLOBALS['phpgw_setup']->oProc->m_odb->transaction_begin();
+
+ $GLOBALS['phpgw_setup']->oProc->CreateTable(
+ 'bb_delegate', array(
+ 'fd' => array(
+ 'id' => array('type' => 'auto',
'nullable' => false),
+ 'active' => array('type' => 'int',
'nullable' => False, 'precision' => 2, 'default' => 1),
+ 'organization_id' => array('type' =>
'int', 'precision' => '4', 'nullable' => False),
+ 'name' => array('type' => 'varchar',
'precision' => '150', 'nullable' => False),
+ 'email' => array('type' => 'varchar',
'precision' => '50', 'nullable' => True),
+ 'ssn' => array('type' => 'varchar',
'precision' => '115', 'nullable' => True),
+ 'phone' => array('type' => 'varchar',
'precision' => '50', 'nullable' => True),
+ ),
+ 'pk' => array('id'),
+ 'fk' => array('bb_organization' =>
array('organization_id' => 'id')),
+ 'ix' => array(),
+ 'uc' => array('organization_id', 'ssn')
+ )
+ );
+
+ if ($GLOBALS['phpgw_setup']->oProc->m_odb->transaction_commit())
+ {
+ $GLOBALS['setup_info']['booking']['currentver'] =
'0.2.28';
+ return $GLOBALS['setup_info']['booking']['currentver'];
+ }
+ }
Added: trunk/booking/templates/base/delegate.xsl
===================================================================
--- trunk/booking/templates/base/delegate.xsl (rev 0)
+++ trunk/booking/templates/base/delegate.xsl 2017-10-13 17:51:21 UTC (rev
17152)
@@ -0,0 +1,51 @@
+<xsl:template match="data" xmlns:php="http://php.net/xsl">
+ <xsl:call-template name="msgbox"/>
+ <form action="" method="POST" id='form' class="pure-form
pure-form-aligned" name="form">
+ <input type="hidden" name="tab" value=""/>
+ <div id="tab-content">
+ <xsl:value-of disable-output-escaping="yes"
select="delegate/tabs"/>
+ <div id="delegate" class="booking-container">
+ <fieldset>
+ <div class="pure-control-group">
+ <label>
+ <xsl:value-of
select="php:function('lang', 'Organization')" />
+ </label>
+ <xsl:value-of
select="delegate/organization_name"/>
+ </div>
+ <div class="pure-control-group">
+ <label>
+ <xsl:value-of
select="php:function('lang', 'Name')" />
+ </label>
+ <xsl:value-of
select="delegate/name"/>
+ </div>
+ <div class="pure-control-group">
+ <label>
+ <xsl:value-of
select="php:function('lang', 'email')" />
+ </label>
+ <xsl:value-of
select="delegate/email"/>
+ </div>
+ <div class="pure-control-group">
+ <label>
+ <xsl:value-of
select="php:function('lang', 'phone')" />
+ </label>
+ <xsl:value-of
select="delegate/phone" />
+ </div>
+ </fieldset>
+ </div>
+ </div>
+ <div class="form-buttons">
+ <a class="button pure-button pure-button-primary">
+ <xsl:attribute name="href">
+ <xsl:value-of
select="delegate/edit_link"/>
+ </xsl:attribute>
+ <xsl:value-of select="php:function('lang',
'Edit')" />
+ </a>
+ <input type="button" class="pure-button
pure-button-primary" name="cencel">
+ <xsl:attribute
name="onclick">window.location.href="<xsl:value-of
select="delegate/cancel_link"/>"</xsl:attribute>
+ <xsl:attribute name="value">
+ <xsl:value-of
select="php:function('lang', 'Cancel')" />
+ </xsl:attribute>
+ </input>
+ </div>
+ </form>
+</xsl:template>
Added: trunk/booking/templates/base/delegate_edit.xsl
===================================================================
--- trunk/booking/templates/base/delegate_edit.xsl
(rev 0)
+++ trunk/booking/templates/base/delegate_edit.xsl 2017-10-13 17:51:21 UTC
(rev 17152)
@@ -0,0 +1,126 @@
+<xsl:template match="data" xmlns:php="http://php.net/xsl">
+ <xsl:call-template name="msgbox"/>
+ <form action="" method="POST" id='form' class="pure-form
pure-form-aligned" name="form">
+ <input type="hidden" name="tab" value=""/>
+ <div id="tab-content">
+ <xsl:value-of disable-output-escaping="yes"
select="delegate/tabs"/>
+ <div id="delegate_edit" class="booking-container">
+ <fieldset>
+ <div class="heading">
+ <legend>
+ <h3>
+ <xsl:if
test="not(delegate/id)">
+
<xsl:value-of select="php:function('lang', 'New delegate')" />
+ </xsl:if>
+ <xsl:if
test="delegate/id">
+
<xsl:value-of select="php:function('lang', 'Edit delegate')" />
+ </xsl:if>
+ </h3>
+ </legend>
+ </div>
+ <div class="pure-control-group">
+ <label for="name">
+ <xsl:value-of
select="php:function('lang', 'delegate')" />
+ </label>
+ <input id="name" name="name"
type="text" value="{delegate/name}" >
+ <xsl:attribute
name="data-validation">
+
<xsl:text>required</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute
name="data-validation-error-msg">
+ <xsl:value-of
select="php:function('lang', 'Please enter a name')" />
+ </xsl:attribute>
+ </input>
+ </div>
+ <div class="pure-control-group">
+ <label for="field_ssn">
+ <xsl:value-of
select="php:function('lang', 'ssn')" />
+ </label>
+ <input type='text'
id='field_ssn' name="ssn" value='{delegate/ssn}'/>
+ </div>
+ <div class="pure-control-group">
+ <label for="field_email">
+ <xsl:value-of
select="php:function('lang', 'Email')" />
+ </label>
+ <input type='text'
id='field_email' name="email" value='{delegate/email}' data-validation="email">
+ <xsl:attribute
name="data-validation-optional">
+
<xsl:text>true</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute
name="data-validation-error-msg">
+ <xsl:value-of
select="php:function('lang', 'Please enter a valid contact email')" />
+ </xsl:attribute>
+ </input>
+ </div>
+ <div class="pure-control-group">
+ <label for="field_phone">
+ <xsl:value-of
select="php:function('lang', 'Phone')" />
+ </label>
+ <input type='text'
id='field_phone' name="phone" value='{delegate/phone}'/>
+ </div>
+
+ <div class="pure-control-group">
+ <label
for="field_organization_name">
+ <xsl:value-of
select="php:function('lang', 'Organization')" />
+ </label>
+ <input
id="field_organization_id" name="organization_id" type="hidden"
value="{delegate/organization_id}"/>
+ <input name="organization_name"
type="text" id="field_organization_name" value="{delegate/organization_name}">
+ <xsl:if
test="delegate/organization_id">
+ <xsl:attribute
name='disabled'>disabled</xsl:attribute>
+ </xsl:if>
+ <xsl:attribute
name="data-validation">
+
<xsl:text>required</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute
name="data-validation-error-msg">
+ <xsl:value-of
select="php:function('lang', 'Please enter an organization name')" />
+ </xsl:attribute>
+ </input>
+ <div
id="organization_container"></div>
+ </div>
+
+
+ <div class="pure-control-group">
+ <xsl:if test="delegate/id">
+ <label
for="field_active">
+ <xsl:value-of
select="php:function('lang', 'Active')"/>
+ </label>
+ <select
id="field_active" name="active">
+ <option
value="1">
+ <xsl:if
test="delegate/active=1">
+
<xsl:attribute name="selected">checked</xsl:attribute>
+
</xsl:if>
+
<xsl:value-of select="php:function('lang', 'Active')"/>
+ </option>
+ <option
value="0">
+ <xsl:if
test="delegate/active=0">
+
<xsl:attribute name="selected">checked</xsl:attribute>
+
</xsl:if>
+
<xsl:value-of select="php:function('lang', 'Inactive')"/>
+ </option>
+ </select>
+ </xsl:if>
+ </div>
+
+ </fieldset>
+ </div>
+ </div>
+ <div class="form-buttons">
+ <xsl:if test="not(delegate/id)">
+ <input type="submit"
value="{php:function('lang', 'Add')}" class="button pure-button
pure-button-primary" />
+ </xsl:if>
+ <xsl:if test="delegate/id">
+ <input type="submit"
value="{php:function('lang', 'Save')}" class="button pure-button
pure-button-primary"/>
+ </xsl:if>
+ <a class="cancel pure-button pure-button-primary"
href="{delegate/cancel_link}">
+ <xsl:value-of select="php:function('lang',
'Cancel')" />
+ </a>
+ </div>
+ </form>
+ <script type="text/javascript">
+ var endpoint = '<xsl:value-of select="module" />';
+ <![CDATA[
+ $(document).ready(function() {
+ JqueryPortico.autocompleteHelper('index.php?menuaction=' +
endpoint + '.uiorganization.index&phpgw_return_as=json&',
+ 'field_organization_name',
'field_organization_id', 'organization_container');
+ });
+ ]]>
+ </script>
+</xsl:template>
Modified: trunk/bookingfrontend/inc/class.bouser.inc.php
===================================================================
--- trunk/bookingfrontend/inc/class.bouser.inc.php 2017-10-12 15:01:32 UTC
(rev 17151)
+++ trunk/bookingfrontend/inc/class.bouser.inc.php 2017-10-13 17:51:21 UTC
(rev 17152)
@@ -22,6 +22,7 @@
public function __construct()
{
+ $this->db = & $GLOBALS['phpgw']->db;
$this->set_module();
$this->orgnr = $this->get_user_orgnr_from_session();
$this->orgname =
$this->get_orgname_from_db($this->get_user_orgnr_from_session());
@@ -31,7 +32,6 @@
protected function get_orgname_from_db( $orgnr )
{
- $this->db = & $GLOBALS['phpgw']->db;
$this->db->limit_query("select name from
bb_organization where organization_number ='" . $orgnr . "'", 0, __LINE__,
__FILE__, 1);
if (!$this->db->next_record())
{
Added: trunk/bookingfrontend/inc/class.uidelegate.inc.php
===================================================================
--- trunk/bookingfrontend/inc/class.uidelegate.inc.php
(rev 0)
+++ trunk/bookingfrontend/inc/class.uidelegate.inc.php 2017-10-13 17:51:21 UTC
(rev 17152)
@@ -0,0 +1,48 @@
+<?php
+ phpgw::import_class('booking.uidelegate');
+
+ class bookingfrontend_uidelegate extends booking_uidelegate
+ {
+
+ public $public_functions = array
+ (
+ 'index' => true,
+ 'edit' => true,
+ 'show' => true,
+ 'toggle_show_inactive' => true,
+ );
+ protected $module;
+
+ public function __construct()
+ {
+ parent::__construct();
+ $this->module = "bookingfrontend";
+ }
+
+ public function show()
+ {
+ $delegate = $this->bo->read_single(phpgw::get_var('id',
'int'));
+ $delegate['organizations_link'] =
self::link(array('menuaction' => $this->module . '.uiorganization.index'));
+ $delegate['organization_link'] =
self::link(array('menuaction' => $this->module . '.uiorganization.show',
+ 'id' => $delegate['organization_id']));
+ $delegate['edit_link'] = self::link(array('menuaction'
=> $this->module . '.uidelegate.edit',
+ 'id' => $delegate['id']));
+
+ $data = array(
+ 'delegate' => $delegate
+ );
+
+ $edit_self_link = self::link(array('menuaction' =>
'bookingfrontend.uidelegate.edit',
+ 'id' => $delegate['id']));
+
+ $bouser = CreateObject('bookingfrontend.bouser');
+ $auth_forward =
"?redirect_menuaction={$this->module}.uidelegate.show&redirect_id={$delegate['id']}";
+ $delegate['login_link'] = 'login.php' . $auth_forward;
+ $delegate['logoff_link'] = 'logoff.php' . $auth_forward;
+ if ($bouser->is_organization_admin())
+ $delegate['logged_on'] = true;
+
+ self::render_template_xsl('delegate', array('delegate'
=> $delegate, 'loggedin' => $loggedin,
+ 'edit_self_link' => $edit_self_link));
+ }
+ }
\ No newline at end of file
Modified: trunk/bookingfrontend/inc/class.uiorganization.inc.php
===================================================================
--- trunk/bookingfrontend/inc/class.uiorganization.inc.php 2017-10-12
15:01:32 UTC (rev 17151)
+++ trunk/bookingfrontend/inc/class.uiorganization.inc.php 2017-10-13
17:51:21 UTC (rev 17152)
@@ -68,6 +68,8 @@
$organization['logoff_link'] = 'logoff.php' .
$auth_forward;
$organization['new_group_link'] =
self::link(array('menuaction' => $this->module . '.uigroup.edit',
'organization_id' =>
$organization['id']));
+ $organization['new_delegate_link'] =
self::link(array('menuaction' => $this->module . '.uidelegate.edit',
+ 'organization_id' =>
$organization['id']));
if ($bouser->is_organization_admin($organization['id']))
$organization['logged_on'] = true;
Modified: trunk/bookingfrontend/inc/custom/default/Altinn2_Bergen_kommune.php
===================================================================
--- trunk/bookingfrontend/inc/custom/default/Altinn2_Bergen_kommune.php
2017-10-12 15:01:32 UTC (rev 17151)
+++ trunk/bookingfrontend/inc/custom/default/Altinn2_Bergen_kommune.php
2017-10-13 17:51:21 UTC (rev 17152)
@@ -129,9 +129,36 @@
'name' => 'Bølleball',
);
$orgs_validate[] = 994239929;
- $fodsels_nr = 1;
+ if(!$fodsels_nr)
+ {
+ $fodsels_nr = 1;
+ }
}
+ $hash = sha1($fodsels_nr);
+ $ssn = '{SHA1}' . base64_encode($hash);
+
+ $this->db->query("SELECT
bb_organization.organization_number, bb_organization.name AS organization_name"
+ . " FROM bb_delegate"
+ . " JOIN bb_organization ON
bb_delegate.organization_id = bb_organization.id"
+ . " WHERE bb_delegate.ssn = '{$ssn}'",
__LINE__, __FILE__);
+
+ while($this->db->next_record())
+ {
+ $organization_number =
$this->db->f('organization_number');
+ if(in_array($organization_number,
$orgs_validate))
+ {
+ continue;
+ }
+
+ $orgs[] = array(
+ 'id' => $organization_number,
+ 'name' =>
$this->db->f('organization_name', true),
+ );
+ $orgs_validate[] = $organization_number;
+
+ }
+
if ($stage == 2 && $fodsels_nr && in_array($org_id,
$orgs_validate))
{
try
Modified: trunk/bookingfrontend/inc/custom/default/MinId.php
===================================================================
--- trunk/bookingfrontend/inc/custom/default/MinId.php 2017-10-12 15:01:32 UTC
(rev 17151)
+++ trunk/bookingfrontend/inc/custom/default/MinId.php 2017-10-13 17:51:21 UTC
(rev 17152)
@@ -126,16 +126,44 @@
}
$sql = "SELECT DISTINCT orgnr FROM breg.personcurrent
WHERE fodselsnr ='{$fodselsnr}'";
+
+ $orgs_validate = array();
$results = array();
$db->query($sql, __LINE__, __FILE__);
while ($db->next_record())
{
+ $organization_number = $db->f('orgnr', true);
$results[] = array
(
- 'orgnr' => $db->f('orgnr', true)
+ 'orgnr' => $organization_number
);
+ $orgs_validate[] = $organization_number;
}
+ $hash = sha1($fodselsnr);
+ $ssn = '{SHA1}' . base64_encode($hash);
+
+ $this->db->query("SELECT
bb_organization.organization_number, bb_organization.name AS organization_name"
+ . " FROM bb_delegate"
+ . " JOIN bb_organization ON
bb_delegate.organization_id = bb_organization.id"
+ . " WHERE bb_delegate.ssn = '{$ssn}'",
__LINE__, __FILE__);
+
+ while($this->db->next_record())
+ {
+ $organization_number =
$this->db->f('organization_number');
+ if(in_array($organization_number,
$orgs_validate))
+ {
+ continue;
+ }
+ $results[] = array
+ (
+ 'orgnr' => $organization_number
+ );
+
+ $orgs_validate[] = $organization_number;
+
+ }
+
//Testvalues
/*
$results[] = array
Added: trunk/bookingfrontend/templates/base/delegate.xsl
===================================================================
--- trunk/bookingfrontend/templates/base/delegate.xsl
(rev 0)
+++ trunk/bookingfrontend/templates/base/delegate.xsl 2017-10-13 17:51:21 UTC
(rev 17152)
@@ -0,0 +1,58 @@
+<xsl:template match="data" xmlns:php="http://php.net/xsl">
+
+ <div class="content">
+ <ul class="pathway">
+ <li>
+ <a
href="index.php?menuaction=bookingfrontend.uisearch.index">
+ <xsl:value-of
select="php:function('lang', 'Home')" />
+ </a>
+ </li>
+ <li>
+ <a href="{delegate/organization_link}">
+ <xsl:value-of
select="delegate/organization_name"/>
+ </a>
+ </li>
+ <li>
+ <xsl:value-of select="delegate/name"/>
+ </li>
+ </ul>
+
+ <xsl:if test="delegate/permission/write">
+ <span class="loggedin">
+ <button
onclick="window.location.href='{edit_self_link}'">
+ <xsl:value-of
select="php:function('lang', 'edit')" />
+ </button>
+ </span>
+ </xsl:if>
+ <xsl:call-template name="msgbox"/>
+
+ <dl class="proplist">
+ <dt>
+ <xsl:value-of select="php:function('lang',
'delegate')" />
+ </dt>
+ <dd>
+ <xsl:value-of select="delegate/name"/>
+ </dd>
+
+ <dt>
+ <xsl:value-of select="php:function('lang',
'Organization')" />
+ </dt>
+ <dd>
+ <xsl:value-of
select="delegate/organization_name"/>
+ </dd>
+ <dt>
+ <xsl:value-of select="php:function('lang',
'email')" />
+ </dt>
+ <dd>
+ <xsl:value-of select="delegate/email"/>
+ </dd>
+ <dt>
+ <xsl:value-of select="php:function('lang',
'phone')" />
+ </dt>
+ <dd>
+ <xsl:value-of select="delegate/phone"/>
+ </dd>
+
+ </dl>
+ </div>
+</xsl:template>
Added: trunk/bookingfrontend/templates/base/delegate_edit.xsl
===================================================================
--- trunk/bookingfrontend/templates/base/delegate_edit.xsl
(rev 0)
+++ trunk/bookingfrontend/templates/base/delegate_edit.xsl 2017-10-13
17:51:21 UTC (rev 17152)
@@ -0,0 +1,165 @@
+<xsl:template match="data" xmlns:php="http://php.net/xsl">
+ <div class="content">
+
+ <div class="pure-g">
+ <div class="pure-u-1">
+ <dl class="form-col">
+ <dt class="heading">
+ <xsl:if test="not(delegate/id)">
+ <xsl:value-of
select="php:function('lang', 'New delegate')" />
+ </xsl:if>
+ <xsl:if test="delegate/id">
+ <xsl:value-of
select="php:function('lang', 'Edit delegate')" />
+ </xsl:if>
+ </dt>
+ </dl>
+ </div>
+ </div>
+
+ <dl class="form">
+
+ </dl>
+
+ <xsl:call-template name="msgbox"/>
+
+ <form action="" method="POST" id="form" name="form">
+ <div class="pure-g">
+ <div class="pure-u-1 pure-u-md-1-3">
+ <dl class="form-col">
+ <dt>
+ <label for="field_name">
+ <xsl:value-of
select="php:function('lang', 'delegate')" />
+ </label>
+ </dt>
+ <dd>
+ <input name="name"
type="text" value="{delegate/name}">
+ <xsl:attribute
name="data-validation">
+
<xsl:text>required</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute
name="data-validation-error-msg">
+
<xsl:value-of select="php:function('lang', 'Please enter a delegate')" />
+ </xsl:attribute>
+ </input>
+ </dd>
+ <dt>
+ <label for="field_ssn">
+ <xsl:value-of
select="php:function('lang', 'ssn')" />
+ </label>
+ </dt>
+ <dd>
+ <input name="ssn"
type="text" value="{delegate/ssn}">
+
<!--xsl:attribute name="data-validation">
+
<xsl:text>required</xsl:text>
+
</xsl:attribute-->
+ <xsl:attribute
name="data-validation-error-msg">
+
<xsl:value-of select="php:function('lang', 'Please enter a ssn')" />
+ </xsl:attribute>
+ </input>
+ </dd>
+ <dt>
+ <label
for="field_email">
+ <xsl:value-of
select="php:function('lang', 'Email')" />
+ </label>
+ </dt>
+ <dd>
+ <input name="email"
type="text" value="{delegate/email}">
+ <xsl:attribute
name="data-validation">
+
<xsl:text>required</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute
name="data-validation-error-msg">
+
<xsl:value-of select="php:function('lang', 'Please enter an email')" />
+ </xsl:attribute>
+ </input>
+ </dd>
+ <dt>
+ <label
for="field_phone">
+ <xsl:value-of
select="php:function('lang', 'Phone')" />
+ </label>
+ </dt>
+ <dd>
+ <input type='text'
id='field_phone' name="phone" value='{delegate/phone}'/>
+ </dd>
+ <dt>
+ <label
for="field_organization">
+ <xsl:value-of
select="php:function('lang', 'Organization')" />
+ </label>
+ </dt>
+ <dd>
+ <div
class="autocomplete">
+ <input
id="field_organization_id" name="organization_id" type="hidden"
value="{delegate/organization_id}">
+
<xsl:attribute name="data-validation">
+
<xsl:text>required</xsl:text>
+
</xsl:attribute>
+
<xsl:attribute name="data-validation-error-msg">
+
<xsl:value-of select="php:function('lang', 'Please enter an organization')" />
+
</xsl:attribute>
+ </input>
+ <input
name="organization_name" type="text" id="field_organization_name"
value="{delegate/organization_name}">
+
<xsl:attribute name="data-validation">
+
<xsl:text>required</xsl:text>
+
</xsl:attribute>
+
<xsl:attribute name="data-validation-error-msg">
+
<xsl:value-of select="php:function('lang', 'Please enter an organization')" />
+
</xsl:attribute>
+ <xsl:if
test="delegate/organization_id">
+
<xsl:attribute name='disabled'>disabled</xsl:attribute>
+
</xsl:if>
+ </input>
+ <div
id="organization_container"/>
+ </div>
+ </dd>
+
+ </dl>
+ </div>
+ <div class="pure-u-1 pure-u-md-1-3">
+ <dl class="form-col">
+ <xsl:if test="delegate/id">
+ <dt>
+ <label
for="field_active">
+
<xsl:value-of select="php:function('lang', 'Active')"/>
+ </label>
+ </dt>
+ <dd>
+ <select
id="field_active" name="active">
+ <option
value="1">
+
<xsl:if test="delegate/active=1">
+
<xsl:attribute name="selected">checked</xsl:attribute>
+
</xsl:if>
+
<xsl:value-of select="php:function('lang', 'Active')"/>
+
</option>
+ <option
value="0">
+
<xsl:if test="delegate/active=0">
+
<xsl:attribute name="selected">checked</xsl:attribute>
+
</xsl:if>
+
<xsl:value-of select="php:function('lang', 'Inactive')"/>
+
</option>
+ </select>
+ </dd>
+ </xsl:if>
+ </dl>
+ </div>
+ </div>
+
+ <div class="form-buttons">
+ <xsl:if test="not(delegate/id)">
+ <input type="submit"
value="{php:function('lang', 'Add')}"/>
+ </xsl:if>
+ <xsl:if test="delegate/id">
+ <input type="submit"
value="{php:function('lang', 'Save')}"/>
+ </xsl:if>
+ <a class="cancel" href="{delegate/cancel_link}">
+ <xsl:value-of
select="php:function('lang', 'Cancel')" />
+ </a>
+ </div>
+ </form>
+ </div>
+ <script type="text/javascript">
+ var endpoint = '<xsl:value-of select="module" />';
+ <![CDATA[
+ $(document).ready(function(){
+ JqueryPortico.autocompleteHelper(phpGWLink('bookingfrontend/',
{menuaction: endpoint+'.uiorganization.index', phpgw_return_as: 'json'} ),
'field_organization_name', 'field_organization_id', 'organization_container');
+
//JqueryPortico.autocompleteHelper('index.php?menuaction='+endpoint+'.uiorganization.index&phpgw_return_as=json&','field_organization_name',
'field_organization_id','organization_container');
+ });
+ ]]>
+ </script>
+</xsl:template>
Modified: trunk/bookingfrontend/templates/base/organization.xsl
===================================================================
--- trunk/bookingfrontend/templates/base/organization.xsl 2017-10-12
15:01:32 UTC (rev 17151)
+++ trunk/bookingfrontend/templates/base/organization.xsl 2017-10-13
17:51:21 UTC (rev 17152)
@@ -99,6 +99,15 @@
</a>
<h3>
+ <xsl:value-of select="php:function('lang',
'delegates')" />
+ </h3>
+ <div id="delegates_container"/>
+
+ <a href="{organization/new_delegate_link}">
+ <xsl:value-of select="php:function('lang', 'new
delegate')" />
+ </a>
+
+ <h3>
<xsl:value-of select="php:function('lang', 'Used
buildings')" />
</h3>
<div id="buildings_used_by_container"/>
@@ -106,10 +115,11 @@
<script type="text/javascript">
var organization_id = <xsl:value-of select="organization/id"/>;
- var lang = <xsl:value-of select="php:function('js_lang',
'Name', 'Activity', 'Contact 1', 'Contact 2')"/>;
+ var lang = <xsl:value-of select="php:function('js_lang',
'Name', 'Activity', 'Contact 1', 'Contact 2', 'email','phone', 'active')"/>;
<![CDATA[
var groupURL =
'index.php?menuaction=bookingfrontend.uigroup.index&sort=name&filter_organization_id='
+ organization_id + '&phpgw_return_as=json&';
+ var delegateURL =
'index.php?menuaction=bookingfrontend.uidelegate.index&sort=name&filter_organization_id='
+ organization_id + '&phpgw_return_as=json&filter_active=-1&';
var buildingURL =
'index.php?menuaction=bookingfrontend.uibuilding.find_buildings_used_by&sort=name&organization_id='
+ organization_id + '&phpgw_return_as=json&';
]]>
@@ -122,9 +132,18 @@
{key: 'primary_contact_name', label: lang['Contact 1']},
{key: 'secondary_contact_name', label: lang['Contact 2']}
];
+
+ var colDefsDelegate = [
+ {key: 'name', label: lang['Name'], formatter: genericLink},
+ {key: 'email', label: lang['email']},
+ {key: 'phone', label: lang['phone']},
+ {key: 'active', label: lang['active']}
+ ];
+
var colDefsBuilding = [{key: 'name', label: lang['Name'],
formatter: genericLink}];
createTable('groups_container', groupURL, colDefsGroup);
+ createTable('delegates_container', delegateURL,
colDefsDelegate);
createTable('buildings_used_by_container', buildingURL,
colDefsBuilding, rBuilding);
</script>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [17152] booking/bookingfrontend: add delegates to organizations,
sigurdne <=