[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Fmsystem-commits] [7637] Merge 7626:7636 from trunk
From: |
Sigurd Nes |
Subject: |
[Fmsystem-commits] [7637] Merge 7626:7636 from trunk |
Date: |
Fri, 16 Sep 2011 11:24:15 +0000 |
Revision: 7637
http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=7637
Author: sigurdne
Date: 2011-09-16 11:24:14 +0000 (Fri, 16 Sep 2011)
Log Message:
-----------
Merge 7626:7636 from trunk
Modified Paths:
--------------
branches/Version-1_0-branch/controller/inc/class.socontrol_item.inc.php
branches/Version-1_0-branch/controller/inc/class.soprocedure.inc.php
branches/Version-1_0-branch/controller/inc/class.uicommon.inc.php
branches/Version-1_0-branch/controller/inc/model/class.procedure.inc.php
branches/Version-1_0-branch/controller/setup/setup.inc.php
branches/Version-1_0-branch/controller/templates/base/common.php
branches/Version-1_0-branch/controller/templates/base/control_item.php
branches/Version-1_0-branch/controller/templates/base/procedure_item.xsl
branches/Version-1_0-branch/property/inc/class.sodocument.inc.php
branches/Version-1_0-branch/property/inc/class.solocation.inc.php
branches/Version-1_0-branch/property/setup/phpgw_no.lang
Added Paths:
-----------
branches/Version-1_0-branch/controller/inc/class.uiprocedure.inc.php
branches/Version-1_0-branch/controller/js/yahoo/common.js
Removed Paths:
-------------
branches/Version-1_0-branch/controller/js/yahoo/common.js
Property Changed:
----------------
branches/Version-1_0-branch/
Property changes on: branches/Version-1_0-branch
___________________________________________________________________
Modified: svn:mergeinfo
-
/trunk:6439-6441,6443,6445-6447,6449-6464,6466-6468,6470-6474,6476-6477,6479-6480,6483-6488,6490-6491,6493-6494,6496-6501,6503-6504,6506,6508,6510-6511,6513,6515-6516,6518,6520-6524,6526-6528,6533-6534,6536-6541,6543-6565,6567,6569,6571-6576,6578,6580-6586,6588-6596,6598-6600,6602-6604,6606-6607,6609-6611,6613-6625,6629-6639,6641-6643,6645-6646,6648,6650-6654,6656-6659,6661-6663,6665-6666,6668-6669,6672-6673,6675,6677-6678,6680,6682-6686,6688-6717,6719,6721-6722,6724-6728,6730,6732-6734,6736-6739,6741,6743,6745-6746,6748-6756,6758-6762,6764,6766-6788,6790,6792-6798,6800-6814,6816-6819,6821-6822,6824-6826,6828-6837,6839,6841,6843-6849,6851,6853-6869,6871-6874,6876-6877,6879,6881,6883,6885-6886,6888-6893,6895-6897,6899-6901,6903,6905-6907,6909,6911-6929,6931-6936,6938-6947,6949,6951,6953,6955-6956,6958-6959,6961-6968,6970-6971,6973-6974,6976-6978,6980,6982-7017,7019-7025,7027-7035,7037-7039,7041-7045,7047-7055,7057,7059-7065,7067-7069,7071,7073,7075-7076,7078,7080-7081,7083,7085,7087,7089-7097,7099-7102,7104-7105,7107-7111,7113-7120,7122-7124,7126-7129,7131,7133-7141,7143,7145-7146,7148-7150,7152-7153,7155-7158,7160-7164,7166-7167,7169-7170,7172,7174,7176,7178,7180-7181,7183,7185,7187-7188,7190,7192-7196,7198-7199,7201-7203,7205,7207,7209-7210,7212,7214,7216-7217,7219-7222,7224-7226,7228-7229,7231,7233-7234,7236-7238,7240-7241,7243-7244,7246,7248,7250,7252-7256,7258-7259,7261-7264,7266-7273,7275-7279,7281-7332,7334-7338,7340-7348,7350,7352-7353,7355-7361,7363-7366,7368-7370,7372,7374,7376,7378,7380-7386,7388-7400,7402,7404-7433,7435-7439,7441-7446,7448-7458,7460-7469,7471-7483,7485-7487,7489-7490,7492,7494,7496-7497,7499,7501-7502,7504,7506-7507,7509-7511,7513-7517,7519-7521,7523,7525,7527-7529,7531,7533,7535-7538,7540-7542,7544-7549,7551-7552,7554-7561,7563,7565,7567-7573,7575-7578,7580-7584,7586-7591,7593-7624
+
/trunk:6439-6441,6443,6445-6447,6449-6464,6466-6468,6470-6474,6476-6477,6479-6480,6483-6488,6490-6491,6493-6494,6496-6501,6503-6504,6506,6508,6510-6511,6513,6515-6516,6518,6520-6524,6526-6528,6533-6534,6536-6541,6543-6565,6567,6569,6571-6576,6578,6580-6586,6588-6596,6598-6600,6602-6604,6606-6607,6609-6611,6613-6625,6629-6639,6641-6643,6645-6646,6648,6650-6654,6656-6659,6661-6663,6665-6666,6668-6669,6672-6673,6675,6677-6678,6680,6682-6686,6688-6717,6719,6721-6722,6724-6728,6730,6732-6734,6736-6739,6741,6743,6745-6746,6748-6756,6758-6762,6764,6766-6788,6790,6792-6798,6800-6814,6816-6819,6821-6822,6824-6826,6828-6837,6839,6841,6843-6849,6851,6853-6869,6871-6874,6876-6877,6879,6881,6883,6885-6886,6888-6893,6895-6897,6899-6901,6903,6905-6907,6909,6911-6929,6931-6936,6938-6947,6949,6951,6953,6955-6956,6958-6959,6961-6968,6970-6971,6973-6974,6976-6978,6980,6982-7017,7019-7025,7027-7035,7037-7039,7041-7045,7047-7055,7057,7059-7065,7067-7069,7071,7073,7075-7076,7078,7080-7081,7083,7085,7087,7089-7097,7099-7102,7104-7105,7107-7111,7113-7120,7122-7124,7126-7129,7131,7133-7141,7143,7145-7146,7148-7150,7152-7153,7155-7158,7160-7164,7166-7167,7169-7170,7172,7174,7176,7178,7180-7181,7183,7185,7187-7188,7190,7192-7196,7198-7199,7201-7203,7205,7207,7209-7210,7212,7214,7216-7217,7219-7222,7224-7226,7228-7229,7231,7233-7234,7236-7238,7240-7241,7243-7244,7246,7248,7250,7252-7256,7258-7259,7261-7264,7266-7273,7275-7279,7281-7332,7334-7338,7340-7348,7350,7352-7353,7355-7361,7363-7366,7368-7370,7372,7374,7376,7378,7380-7386,7388-7400,7402,7404-7433,7435-7439,7441-7446,7448-7458,7460-7469,7471-7483,7485-7487,7489-7490,7492,7494,7496-7497,7499,7501-7502,7504,7506-7507,7509-7511,7513-7517,7519-7521,7523,7525,7527-7529,7531,7533,7535-7538,7540-7542,7544-7549,7551-7552,7554-7561,7563,7565,7567-7573,7575-7578,7580-7584,7586-7591,7593-7624,7627-7636
Modified:
branches/Version-1_0-branch/controller/inc/class.socontrol_item.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/inc/class.socontrol_item.inc.php
2011-09-16 11:22:59 UTC (rev 7636)
+++ branches/Version-1_0-branch/controller/inc/class.socontrol_item.inc.php
2011-09-16 11:24:14 UTC (rev 7637)
@@ -221,7 +221,7 @@
}
else
{
- $cols = 'id, title, required,
controller_control_item.what_to_do_desc as what_to_do,
controller_control_item.how_to_do_desc as how_to_do, control_group_id,
control_area_id';
+ $cols = 'id, title, required,
controller_control_item.what_to_do, how_to_do, control_group_id,
control_area_id';
}
$dir = $ascending ? 'ASC' : 'DESC';
Modified: branches/Version-1_0-branch/controller/inc/class.soprocedure.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/inc/class.soprocedure.inc.php
2011-09-16 11:22:59 UTC (rev 7636)
+++ branches/Version-1_0-branch/controller/inc/class.soprocedure.inc.php
2011-09-16 11:24:14 UTC (rev 7637)
@@ -173,7 +173,7 @@
$like_clauses = array();
switch($search_type){
default:
- $like_clauses[] = "controller_procedure
$this->like $like_pattern";
+ $like_clauses[] =
"controller_procedure.title $this->like $like_pattern";
break;
}
if(count($like_clauses))
@@ -274,7 +274,7 @@
if(isset($filters[$this->get_id_field_name()]))
{
- $filter_clauses[] = "controller_procedure =
{$this->marshal($filters[$this->get_id_field_name()],'int')}";
+ $filter_clauses[] = "controller_procedure.id =
{$this->marshal($filters[$this->get_id_field_name()],'int')}";
}
if(count($filter_clauses))
@@ -295,7 +295,7 @@
}
else
{
- $cols .= "controller_procedure.id AS procedure_id,
controller_procedure.title, controller_procedure.purpose,
controller_procedure.respontibility, controller_procedure.description,
controller_procedure.reference, controller_procedure.attachment ";
+ $cols .= "controller_procedure.id,
controller_procedure.title, controller_procedure.purpose,
controller_procedure.responsibility, controller_procedure.description,
controller_procedure.reference, controller_procedure.attachment ";
}
$dir = $ascending ? 'ASC' : 'DESC';
$order = $sort_field ? "ORDER BY {$this->marshal($sort_field,
'field')} $dir ": '';
Modified: branches/Version-1_0-branch/controller/inc/class.uicommon.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/inc/class.uicommon.inc.php
2011-09-16 11:22:59 UTC (rev 7636)
+++ branches/Version-1_0-branch/controller/inc/class.uicommon.inc.php
2011-09-16 11:24:14 UTC (rev 7637)
@@ -221,8 +221,8 @@
* @param $permission
* @return true if check is ok, false othewise
*/
- protected function hasPermissionOn($location =
activitycalendar_uicommon::LOCATION_ROOT, $permission = PHPGW_ACL_PRIVATE){
- return
$this->acl->check($location,$permission,'bkbooking');
+ protected function hasPermissionOn($location =
controller_uicommon::LOCATION_ROOT, $permission = PHPGW_ACL_PRIVATE){
+ return
$this->acl->check($location,$permission,'controller');
}
Copied: branches/Version-1_0-branch/controller/inc/class.uiprocedure.inc.php
(from rev 7636, trunk/controller/inc/class.uiprocedure.inc.php)
===================================================================
--- branches/Version-1_0-branch/controller/inc/class.uiprocedure.inc.php
(rev 0)
+++ branches/Version-1_0-branch/controller/inc/class.uiprocedure.inc.php
2011-09-16 11:24:14 UTC (rev 7637)
@@ -0,0 +1,438 @@
+<?php
+ phpgw::import_class('controller.uicommon');
+ phpgw::import_class('controller.soprocedure');
+
+ include_class('controller', 'procedure', 'inc/model/');
+
+ class controller_uiprocedure extends controller_uicommon
+ {
+ private $so;
+
+ public $public_functions = array
+ (
+ 'index' => true,
+ 'query' => true,
+ 'edit' => true,
+ 'view' => true,
+ 'add' => true
+ );
+
+ public function __construct()
+ {
+ parent::__construct();
+
+ $this->so = CreateObject('controller.soprocedure');
+ $GLOBALS['phpgw_info']['flags']['menu_selection'] =
"controller::procedure";
+ //$this->bo = CreateObject('property.boevent',true);
+ }
+
+ public function index()
+ {
+
//self::set_active_menu('controller::control_item2::control_item_list2');
+ if(phpgw::get_var('phpgw_return_as') == 'json') {
+ return $this->query();
+ }
+ self::add_javascript('controller', 'yahoo',
'datatable.js');
+ phpgwapi_yui::load_widget('datatable');
+ phpgwapi_yui::load_widget('paginator');
+
+ $data = array(
+ 'form' => array(
+ 'toolbar' => array(
+ 'item' => array(
+ array(
+ 'type' =>
'link',
+ 'value' =>
lang('f_new_procedure'),
+ 'href' =>
self::link(array('menuaction' => 'controller.uiprocedure.add'))
+ ),
+ array('type' => 'text',
+ 'text' => lang('search'),
+ 'name' =>
'query'
+ ),
+ array(
+ 'type' =>
'submit',
+ 'name' =>
'search',
+ 'value' =>
lang('Search')
+ ),
+ ),
+ ),
+ ),
+ 'datatable' => array(
+ 'source' =>
self::link(array('menuaction' => 'controller.uiprocedure.index',
'phpgw_return_as' => 'json')),
+ 'field' => array(
+ array(
+ 'key' => 'id',
+ 'label' => lang('ID'),
+ 'sortable' => true,
+ 'formatter' =>
'YAHOO.portico.formatLink'
+ ),
+ array(
+ 'key' => 'title',
+ 'label' =>
lang('Title'),
+ 'sortable' => false
+ ),
+ array(
+ 'key' => 'link',
+ 'hidden' => true
+ )
+ )
+ ),
+ );
+//_debug_array($data);
+
+ self::render_template_xsl('datatable', $data);
+ }
+
+/* public function display_control_items_json()
+ {
+ $this->bo = CreateObject('booking.boapplication');
+ $this->resource_bo = CreateObject('booking.boresource');
+
+ if (
!isset($GLOBALS['phpgw_info']['user']['apps']['admin']) &&
+ $GLOBALS['phpgw']->acl->check('admin',
phpgwapi_acl::ADD, 'controller') )
+ {
+ $filters['id'] =
$this->bo->accessable_applications($GLOBALS['phpgw_info']['user']['id']);
+ }
+ $filters['status'] = 'NEW';
+ if(isset($_SESSION['showall']))
+ {
+ $filters['status'] = array('NEW',
'PENDING','REJECTED', 'ACCEPTED');
+ $testdata = phpgw::get_var('buildings', 'int', 'REQUEST',
null);
+ if ($testdata != 0)
+ {
+ $filters['building_name'] =
$this->bo->so->get_building(phpgw::get_var('buildings', 'int', 'REQUEST',
null));
+ }
+ else
+ {
+ unset($filters['building_name']);
+ }
+ $testdata2 = phpgw::get_var('activities', 'int', 'REQUEST',
null);
+ if ($testdata2 != 0)
+ {
+ $filters['activity_id'] =
$this->bo->so->get_activities(phpgw::get_var('activities', 'int', 'REQUEST',
null));
+ }
+ else
+ {
+ unset($filters['activity_id']);
+ }
+
+ }
+ else
+ {
+ if (phpgw::get_var('status') == 'none')
+ {
+ $filters['status'] = array('NEW',
'PENDING', 'REJECTED', 'ACCEPTED');
+ }
+ else
+ {
+ $filters['status'] = phpgw::get_var('status');
+ }
+ $testdata = phpgw::get_var('buildings', 'int', 'REQUEST',
null);
+ if ($testdata != 0)
+ {
+ $filters['building_name'] =
$this->bo->so->get_building(phpgw::get_var('buildings', 'int', 'REQUEST',
null));
+ }
+ else
+ {
+ unset($filters['building_name']);
+ }
+ $testdata2 = phpgw::get_var('activities', 'int', 'REQUEST',
null);
+ if ($testdata2 != 0)
+ {
+ $filters['activity_id'] =
$this->bo->so->get_activities(phpgw::get_var('activities', 'int', 'REQUEST',
null));
+ }
+ else
+ {
+ unset($filters['activity_id']);
+ }
+ }
+
+ $params = array(
+ 'start' => phpgw::get_var('startIndex', 'int',
'REQUEST', 0),
+ 'results' => phpgw::get_var('results', 'int',
'REQUEST', null),
+ 'query' => phpgw::get_var('query'),
+ 'sort' => phpgw::get_var('sort'),
+ 'dir' => phpgw::get_var('dir'),
+ 'filters' => $filters
+ );
+
+ $applications = $this->bo->so->read($params);
+
+ foreach($applications['results'] as &$application)
+ {
+ if (strstr($application['building_name'],"%"))
+ {
+ $search = array('%2C','%C3%85',
'%C3%A5', '%C3%98', '%C3%B8', '%C3%86', '%C3%A6');
+ $replace = array
(',','Å','å','Ø','ø','Æ','æ');
+ $application['building_name'] =
str_replace($search, $replace, $application['building_name']);
+ }
+
+ $application['status'] =
lang($application['status']);
+ $application['created'] =
pretty_timestamp($application['created']);
+ $application['modified'] =
pretty_timestamp($application['modified']);
+ $application['frontend_modified'] =
pretty_timestamp($application['frontend_modified']);
+ $application['resources'] =
$this->resource_bo->so->read(array('filters'=>array('id'=>$application['resources'])));
+ $application['resources'] =
$application['resources']['results'];
+ if($application['resources'])
+ {
+ $names = array();
+ foreach($application['resources'] as
$res)
+ {
+ $names[] = $res['name'];
+ }
+ $application['what'] =
$application['resources'][0]['building_name']. ' ('.join(', ', $names).')';
+ }
+ }
+ array_walk($applications["results"], array($this,
"_add_links"), "controller.uicontrol_item2.index");
+
+ return $this->yui_results($applications);
+ } */
+
+ public function edit()
+ {
+ $procedure_id = phpgw::get_var('id');
+ if(isset($procedure_id) && $procedure_id > 0)
+ {
+ $procedure =
$this->so->get_single($procedure_id);
+ }
+ else
+ {
+ $procedure = new controller_procedure();
+ }
+
+
+ if(isset($_POST['save_procedure'])) // The user has
pressed the save button
+ {
+ if(isset($procedure)) // Edit procedure
+ {
+
$procedure->set_title(phpgw::get_var('title'));
+
$procedure->set_purpose(phpgw::get_var('purpose'));
+
$procedure->set_responsibility(phpgw::get_var('responsibility'));
+
$procedure->set_description(phpgw::get_var('description'));
+
$procedure->set_reference(phpgw::get_var('reference'));
+
$procedure->set_attachment(phpgw::get_var('attachment'));
+
+ if(isset($procedure_id) &&
$procedure_id > 0)
+ {
+ if($this->so->store($procedure))
+ {
+ $message =
lang('messages_saved_form');
+ }
+ else
+ {
+ $error =
lang('messages_form_error');
+ }
+ }
+ else
+ {
+ $proc_id =
$this->so->add($procedure);
+ if($proc_id)
+ {
+ $message =
lang('messages_saved_form');
+ }
+ else
+ {
+ $error =
lang('messages_form_error');
+ }
+ }
+
$GLOBALS['phpgw']->redirect_link('/index.php', array('menuaction' =>
'controller.uiprocedure.view', 'id' => $proc_id));
+ }
+ }
+ else if(isset($_POST['cancel_procedure'])) // The user
has pressed the cancel button
+ {
+ if(isset($procedure_id) && $procedure_id > 0)
+ {
+
$GLOBALS['phpgw']->redirect_link('/index.php', array('menuaction' =>
'controller.uiprocedure.view', 'id' => $procedure_id));
+ }
+ else
+ {
+
$GLOBALS['phpgw']->redirect_link('/index.php', array('menuaction' =>
'controller.uiprocedure.index'));
+ }
+ }
+ else
+ {
+ if($this->flash_msgs)
+ {
+ $msgbox_data =
$GLOBALS['phpgw']->common->msgbox_data($this->flash_msgs);
+ $msgbox_data =
$GLOBALS['phpgw']->common->msgbox($msgbox_data);
+ }
+
+ $procedure_array = $procedure->toArray();
+ //_debug_array($procedure_array);
+
+ $data = array
+ (
+ 'value_id'
=> !empty($procedure) ? $procedure->get_id() : 0,
+ 'img_go_home' =>
'rental/templates/base/images/32x32/actions/go-home.png',
+ 'editable'
=> true,
+ 'procedure'
=> $procedure_array,
+ );
+
+
+ $GLOBALS['phpgw_info']['flags']['app_header'] =
lang('controller') . '::' . lang('Procedure');
+
+
+
$GLOBALS['phpgw']->richtext->replace_element('purpose');
+
$GLOBALS['phpgw']->richtext->replace_element('description');
+ $GLOBALS['phpgw']->richtext->generate_script();
+
+
+ // $GLOBALS['phpgw']->js->validate_file( 'yahoo',
'controller.item', 'controller' );
+
+ self::render_template_xsl('procedure_item',
$data);
+ }
+ }
+
+ /**
+ * Public method. Forwards the user to edit mode.
+ */
+ public function add()
+ {
+ $GLOBALS['phpgw']->redirect_link('/index.php',
array('menuaction' => 'controller.uiprocedure.edit'));
+ }
+
+ /**
+ * Public method. Called when a user wants to view information
about a procedure.
+ * @param HTTP::id the procedure ID
+ */
+ public function view()
+ {
+ $GLOBALS['phpgw_info']['flags']['app_header'] .=
'::'.lang('view');
+ //Retrieve the procedure object
+ $procedure_id = (int)phpgw::get_var('id');
+ if(isset($_POST['edit_procedure']))
+ {
+ $GLOBALS['phpgw']->redirect_link('/index.php',
array('menuaction' => 'controller.uiprocedure.edit', 'id' => $procedure_id));
+ }
+ else
+ {
+ if(isset($procedure_id) && $procedure_id > 0)
+ {
+ $procedure =
$this->so->get_single($procedure_id);
+ }
+ else
+ {
+
$this->render('permission_denied.php',array('error' =>
lang('invalid_request')));
+ return;
+ }
+
+ if($this->flash_msgs)
+ {
+ $msgbox_data =
$GLOBALS['phpgw']->common->msgbox_data($this->flash_msgs);
+ $msgbox_data =
$GLOBALS['phpgw']->common->msgbox($msgbox_data);
+ }
+
+ $procedure_array = $procedure->toArray();
+ //_debug_array($procedure_array);
+
+ $data = array
+ (
+ 'value_id'
=> !empty($procedure) ? $procedure->get_id() : 0,
+ 'img_go_home' =>
'rental/templates/base/images/32x32/actions/go-home.png',
+ 'procedure'
=> $procedure_array,
+ );
+
+
+ $GLOBALS['phpgw_info']['flags']['app_header'] =
lang('controller') . '::' . lang('Procedure');
+
+ self::render_template_xsl('procedure_item',
$data);
+ }
+ }
+
+ public function query()
+ {
+
if($GLOBALS['phpgw_info']['user']['preferences']['common']['maxmatchs'] > 0)
+ {
+ $user_rows_per_page =
$GLOBALS['phpgw_info']['user']['preferences']['common']['maxmatchs'];
+ }
+ else {
+ $user_rows_per_page = 10;
+ }
+ // YUI variables for paging and sorting
+ $start_index = phpgw::get_var('startIndex', 'int');
+ $num_of_objects = phpgw::get_var('results', 'int',
'GET', $user_rows_per_page);
+ $sort_field = phpgw::get_var('sort');
+ $sort_ascending = phpgw::get_var('dir') == 'desc' ?
false : true;
+ // Form variables
+ $search_for = phpgw::get_var('query');
+ $search_type = phpgw::get_var('search_option');
+ // Create an empty result set
+ $result_objects = array();
+ $result_count = 0;
+
+ //Retrieve a contract identifier and load corresponding
contract
+ $procedure_id = phpgw::get_var('procedure_id');
+
+ $exp_param = phpgw::get_var('export');
+ $export = false;
+ if(isset($exp_param)){
+ $export=true;
+ $num_of_objects = null;
+ }
+
+ //Retrieve the type of query and perform type specific
logic
+ $query_type = phpgw::get_var('type');
+ switch($query_type)
+ {
+ default: // ... all composites, filters (active
and vacant)
+
phpgwapi_cache::session_set('controller', 'procedure_query', $search_for);
+ $filters = array();
+ $result_objects =
$this->so->get($start_index, $num_of_objects, $sort_field, $sort_ascending,
$search_for, $search_type, $filters);
+ $object_count =
$this->so->get_count($search_for, $search_type, $filters);
+ break;
+ }
+
+ //Create an empty row set
+ $rows = array();
+ foreach($result_objects as $result) {
+ if(isset($result))
+ {
+ $rows[] = $result->serialize();
+ }
+ }
+
+ // ... add result data
+ $result_data = array('results' => $rows,
'total_records' => $object_count);
+
+ $editable = phpgw::get_var('editable') == 'true' ? true
: false;
+
+ if(!$export){
+ //Add action column to each row in result table
+ array_walk(
+ $result_data['results'],
+ array($this, 'add_actions'),
+ array(
// Parameters
(non-object pointers)
+ $procedure_id,
// [1] The procedure id
+ $editable,
// [2] Editable
flag
+ )
+ );
+ }
+
+ return $this->yui_results($result_data,
'total_records', 'results');
+
+ }
+
+ public function add_actions(&$value, $key, $params)
+ {
+ //Defining new columns
+ $value['ajax'] = array();
+ $value['actions'] = array();
+ $value['labels'] = array();
+
+ // Get parameters
+ $procedure_id = $params[0];
+ $editable = $params[1];
+
+ // Depending on the type of query: set an ajax flag and
define the action and label for each row
+ switch($type)
+ {
+ default:
+ $value['ajax'][] = false;
+ $value['actions'][] =
html_entity_decode(self::link(array('menuaction' =>
'controller.uiprocedure.view', 'id' => $value['id'])));
+ $value['labels'][] = lang('show');
+ $value['ajax'][] = false;
+ $value['actions'][] =
html_entity_decode(self::link(array('menuaction' =>
'controller.uiprocedure.edit', 'id' => $value['id'])));
+ $value['labels'][] = lang('edit');
+ }
+ }
+ }
\ No newline at end of file
Modified:
branches/Version-1_0-branch/controller/inc/model/class.procedure.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/inc/model/class.procedure.inc.php
2011-09-16 11:22:59 UTC (rev 7636)
+++ branches/Version-1_0-branch/controller/inc/model/class.procedure.inc.php
2011-09-16 11:24:14 UTC (rev 7637)
@@ -114,5 +114,18 @@
// _debug_array($procedure_arr);
return $procedure_arr;
}
+
+ public function serialize()
+ {
+ return array(
+ 'id' => $this->get_id(),
+ 'title' => $this->get_title(),
+ 'description' =>
$this->get_description(),
+ 'purpose' => $this->get_purpose(),
+ 'responsibility' =>
$this->get_responsibility(),
+ 'reference' => $this->get_reference(),
+ 'attachment' => $this->get_attachment()
+ );
+ }
}
?>
\ No newline at end of file
Deleted: branches/Version-1_0-branch/controller/js/yahoo/common.js
===================================================================
--- branches/Version-1_0-branch/controller/js/yahoo/common.js 2011-09-16
11:22:59 UTC (rev 7636)
+++ branches/Version-1_0-branch/controller/js/yahoo/common.js 2011-09-16
11:24:14 UTC (rev 7637)
@@ -1,766 +0,0 @@
-YAHOO.namespace('portico');
-
-YAHOO.portico.js_alias_method_chain = function(constructor_func, func_name,
new_feature_name, feature_impl_func) {
- constructor_func.prototype[func_name+'_without_'+new_feature_name] =
constructor_func.prototype[func_name];
- constructor_func.prototype[func_name+'_with_'+new_feature_name] =
feature_impl_func;
- constructor_func.prototype[func_name] =
constructor_func.prototype[func_name+'_with_'+new_feature_name];
-};
-
-YAHOO.portico.lang = function(section, config) {
- config = config || {};
- if (YAHOO && YAHOO.booking && YAHOO.portico.i18n &&
YAHOO.portico.i18n[section]) {
- YAHOO.portico.i18n[section](config);
- }
- return config;
-};
-
-/** Hook widgets to translations **/
-YAHOO.portico.js_alias_method_chain(YAHOO.widget.Calendar, 'init', 'i18n',
function(id, container, config) {
- YAHOO.portico.lang('Calendar', config);
- return this.init_without_i18n(id, container, config);
-});
-
-YAHOO.portico.js_alias_method_chain(YAHOO.widget.DataTable, '_initConfigs',
'i18n', function(config) {
- YAHOO.portico.lang('DataTable', config);
- return this._initConfigs_without_i18n(config);
-});
-
-function y2k(number) { return (number < 1000) ? number + 1900 : number; }
-YAHOO.portico.weeknumber = function(when) {
- var year = when.getFullYear();
- var month = when.getMonth();
- var day = when.getDate();
-
- var newYear = new Date(year,0,1);
- var modDay = newYear.getDay();
- if (modDay == 0) modDay=6; else modDay--;
-
- var daynum = ((Date.UTC(y2k(year),when.getMonth(),when.getDate(),0,0,0)
- Date.UTC(y2k(year),0,1,0,0,0)) /1000/60/60/24) + 1;
-
- if (modDay < 4 ) {
- var weeknum = Math.floor((daynum+modDay-1)/7)+1;
- } else {
- var weeknum = Math.floor((daynum+modDay-1)/7);
- if (weeknum == 0) {
- year--;
- var prevNewYear = new Date(year,0,1);
- var prevmodDay = prevNewYear.getDay();
- if (prevmodDay == 0) prevmodDay = 6; else prevmodDay--;
- if (prevmodDay < 4) weeknum = 53; else weeknum = 52;
- }
- }
- return + weeknum;
-}
-
-parseISO8601 = function (string) {
- var regexp = "(([0-9]{4})(-([0-9]{1,2})(-([0-9]{1,2}))))?(
)?(([0-9]{1,2}):([0-9]{1,2}))?";
- var d = string.match(new RegExp(regexp));
- var year = d[2] ? (d[2] * 1) : 0;
- date = new Date(year, (d[4]||1)-1, d[6]||0);
- if(d[9])
- date.setHours(d[9]);
- if(d[10])
- date.setMinutes(d[10]);
- return date;
-};
-
-YAHOO.portico.serializeForm = function(formID) {
- var form = YAHOO.util.Dom.get(formID);
- var values = [];
- for(var i=0; i < form.elements.length; i++) {
- var e = form.elements[i];
- if(e.type=='checkbox' || e.type=='radio') {
- if(e.checked) {
- values.push(e.name + '=' +
encodeURIComponent(e.value));
- }
- }
- else if(e.name) {
- values.push(e.name + '=' + encodeURIComponent(e.value));
- }
- }
- return values.join('&');
-};
-
-YAHOO.portico.fillForm = function(formID, params) {
- var form = YAHOO.util.Dom.get(formID);
- var values = [];
- for(var i=0; i < form.elements.length; i++) {
- var e = form.elements[i];
- if((e.type=='checkbox' || e.type=='radio') && params[e.name]) {
- e.checked = true;
- }
- else if(e.name && params[e.name] != undefined) {
- e.value = params[e.name];
- if(e._update) { // Is this connected to a date picker?
- e._update();
- }
- }
- }
- return values.join('&');
-};
-
-YAHOO.portico.parseQS = function(qs) {
- qs = qs.replace(/\+/g, ' ');
- var args = qs.split('&');
- var params = {};
- for (var i = 0; i < args.length; i++) {
- var pair = args[i].split('=');
- var name = decodeURIComponent(pair[0]);
- var value = (pair.length==2) ? decodeURIComponent(pair[1]) :
name;
- params[name] = value;
- }
- return params;
-}
-
-YAHOO.portico.formatLink = function(elCell, oRecord, oColumn, oData) {
- var name = oRecord.getData(oColumn.key);
- var link = oRecord.getData('link');
- elCell.innerHTML = '<a href="' + link + '">' + name + '</a>';
-};
-
-YAHOO.portico.formatGenericLink = function() {
- var links = [];
- var nOfLinks = arguments.length;
-
- for (var i=0; i < nOfLinks; i++) { links[i] = arguments[i]; }
-
- return function(elCell, oRecord, oColumn, oData)
- {
- var nOfLinks = links.length;
- var data = oRecord.getData(oColumn.key);
-
- var linksHtml = '';
- if (nOfLinks > 0) {
- //Use specified link names
- for (var i=0; i < nOfLinks; i++) {
- if (data[i])
- {
- linksHtml += '<div><a href="' + data[i]
+ '">' + links[i] + '</a></div>';
- }
- }
- } else {
- //Get label from embedded data
- if (data['href'] != undefined && data['label'] !=
undefined) {
- linksHtml += '<div><a href="' + data['href'] +
'">' + data['label'] + '</a></div>';
- } else if(data['href'] == undefined && data['label'] !=
undefined) {
- linksHtml += '<div>'+data['label']+'</div>';
- }
- }
-
- elCell.innerHTML = linksHtml;
- };
-};
-
-YAHOO.portico.autocompleteHelper = function(url, field, hidden, container,
label_attr) {
- label_attr = label_attr || 'name';
- var myDataSource = new YAHOO.util.DataSource(url);
- myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
- myDataSource.connXhrMode = "queueRequests";
- myDataSource.responseSchema = {
- resultsList: "ResultSet.Result",
- fields: [label_attr, 'id']
- };
- myDataSource.maxCacheEntries = 5;
- var ac = new YAHOO.widget.AutoComplete(field, container, myDataSource);
- ac.queryQuestionMark = false;
- ac.resultTypeList = false;
- ac.forceSelection = true;
- ac.itemSelectEvent.subscribe(function(sType, aArgs) {
- YAHOO.util.Dom.get(hidden).value = aArgs[2].id;
- });
- return ac;
-};
-
-YAHOO.portico.setupInlineTablePaginator = function(container) {
- var paginatorConfig = {
- rowsPerPage: 10,
- alwaysVisible: false,
- template: "{PreviousPageLink} <strong>{CurrentPageReport}</strong>
{NextPageLink}",
- pageReportTemplate: "Showing items {startRecord} - {endRecord} of
{totalRecords}",
- containers: [YAHOO.util.Dom.get(container)]
- };
-
- YAHOO.portico.lang('setupPaginator', paginatorConfig);
- var pag = new YAHOO.widget.Paginator(paginatorConfig);
- pag.render();
- return pag;
-};
-
-YAHOO.portico.inlineTableHelper = function(container, url, colDefs, options,
disablePagination) {
- var Dom = YAHOO.util.Dom;
-
- var container = Dom.get(container);
- if(!disablePagination) {
- var paginatorContainer =
container.appendChild(document.createElement('div'));
- var dataTableContainer =
container.appendChild(document.createElement('div'));
- }
- else {
- dataTableContainer = container;
- }
- options = options || {};
- options.dynamicData = true;
-
- if(!disablePagination) {
- options.paginator =
YAHOO.portico.setupInlineTablePaginator(paginatorContainer);
- url += 'results=' + options.paginator.getRowsPerPage() + '&';
- }
- var myDataSource = new YAHOO.util.DataSource(url);
- myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
- myDataSource.connXhrMode = "queueRequests";
- myDataSource.responseSchema = {
- resultsList: "ResultSet.Result",
- metaFields : { totalResultsAvailable:
"ResultSet.totalResultsAvailable", actions: 'Actions' }
- };
-
- var myDataTable = new YAHOO.widget.DataTable(dataTableContainer,
colDefs, myDataSource, options);
-
- myDataTable.handleDataReturnPayload = function(oRequest, oResponse,
oPayload) {
- oPayload.totalRecords = oResponse.meta.totalResultsAvailable;
- return oPayload;
- }
-
- myDataTable.doBeforeLoadData = function(nothing, data) {
- if (!data.meta.actions) return data;
-
- actions = data.meta.actions;
-
- for (var key in actions) {
- var actionLink = document.createElement('a');
- actionLink.href = actions[key].href.replace(/&/gi,
'&');
- actionLink.innerHTML = actions[key].text;
- YAHOO.util.Dom.insertAfter(actionLink, container);
- };
-
- return data;
- };
- return {dataTable: myDataTable, dataSource: myDataSource};
-};
-
-YAHOO.portico.inlineImages = function(container, url, options)
-{
- options = options || {};
- var myDataSource = new YAHOO.util.DataSource(url);
- myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
- myDataSource.connXhrMode = "queueRequests";
- myDataSource.responseSchema = {
- resultsList: "ResultSet.Result",
- metaFields : { totalResultsAvailable:
"ResultSet.totalResultsAvailable", actions: 'Actions' }
- };
-
- myDataSource.sendRequest('', {success: function(sRequest, oResponse,
oPayload) {
- var dlImages = new
YAHOO.util.Element(document.createElement('dl'));
- dlImages.addClass('proplist images');
-
- var displayContainer = false;
-
- for(var key in oResponse.results) {
- displayContainer = true;
- var imgEl =
dlImages.appendChild(document.createElement('dd')).appendChild(document.createElement('img'));
- var captionEl =
dlImages.appendChild(document.createElement('dt'));
- imgEl.src =
oResponse.results[key].src.replace(/&/gi, '&');
-
captionEl.appendChild(document.createTextNode(oResponse.results[key].description));
- }
-
- if (displayContainer)
- {
- new YAHOO.util.Element(container).appendChild(dlImages);
- } else {
- new YAHOO.util.Element(container).setStyle('display',
'none');
- }
- }});
-};
-
-
-YAHOO.portico.radioTableHelper = function(container, url, name, selection) {
- return YAHOO.portico.checkboxTableHelper(container, url, name,
selection, {type: 'radio'});
-};
-
-YAHOO.portico.checkboxTableHelper = function(container, url, name, selection,
options) {
- options = YAHOO.lang.isObject(options) ? options : {};
-
- options = YAHOO.lang.merge(
- {type: 'checkbox', selectionFieldOptions: {}, nameFieldOptions:
{}, defaultChecked: false},
- options
- );
-
- var type = options['type'] || 'checkbox';
- selection = selection || [];
- var myDataSource = new YAHOO.util.DataSource(url);
- myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
- myDataSource.connXhrMode = "queueRequests";
- myDataSource.responseSchema = {
- resultsList: "ResultSet.Result",
- metaFields : { totalResultsAvailable:
"ResultSet.totalResultsAvailable" }
- };
-
- var lang = {LBL_NAME: 'Name'};
- YAHOO.portico.lang('common', lang);
-
- var changeListener = false;
-
- if (options.onSelectionChanged) {
- changeListener = function(e) {
- var selectedItems = [];
- var items =
YAHOO.util.Dom.getElementsBy(function(i){return i.checked;}, 'input',
container);
-
- YAHOO.util.Dom.batch(items, function(e, selectedItems) {
- selectedItems.push(e.value);
- }, selectedItems);
-
- options.onSelectionChanged(selectedItems);
- };
- }
-
- var checkboxFormatter = function(elCell, oRecord, oColumn, oData) {
- var checked = false;
- var newInput;
- for(var i=0; i < selection.length; i++) {
- if (selection[i] == oData) {
- checked = true;
- break;
- }
- }
-
- newInput = document.createElement('input');
- newInput.setAttribute('type', type);
- newInput.setAttribute('name', name);
- newInput.setAttribute('value', oData);
- if (checked || options.defaultChecked) {
- newInput.setAttribute('checked', 'checked');
- newInput.setAttribute('defaultChecked', true); //Needed
for IE compatibility
- }
-
- if (changeListener != false) {
- //Using 'click' event on IE as the change event does
not work as expected there.
- YAHOO.util.Event.addListener(newInput, (YAHOO.env.ua.ie
> 0 ? 'click' : 'change'), changeListener);
- }
-
- elCell.appendChild(newInput);
-
- };
- var colDefs = [
- YAHOO.lang.merge({key: "id", formatter: checkboxFormatter,
label: ''}, options.selectionFieldOptions),
- YAHOO.lang.merge({key: "name", label: lang['LBL_NAME'],
sortable: true}, options.nameFieldOptions)
- ];
-
- if (options['additional_fields'] &&
YAHOO.lang.isArray(options['additional_fields'])) {
- for (var i=0; i < options['additional_fields'].length; i++) {
- colDefs.push(options['additional_fields'][i]);
- }
- }
-
- var myDataTable = new YAHOO.widget.DataTable(container, colDefs,
myDataSource, {
- sortedBy: {key: 'name', dir: YAHOO.widget.DataTable.CLASS_ASC}
- });
-};
-
-YAHOO.portico.setupDatePickers = function() {
- YAHOO.util.Dom.getElementsByClassName('date-picker', null, null,
YAHOO.portico.setupDatePickerHelper, [true, false]);
- YAHOO.util.Dom.getElementsByClassName('time-picker', null, null,
YAHOO.portico.setupDatePickerHelper, [false, true]);
- YAHOO.util.Dom.getElementsByClassName('datetime-picker', null, null,
YAHOO.portico.setupDatePickerHelper, [true, true]);
-};
-
-YAHOO.portico.setupDatePickerHelper = function(field, args) {
- if (!YAHOO.portico.setupDatePickerHelper.groups) {
- YAHOO.portico.setupDatePickerHelper.groups = {};
- }
-
- var groups = YAHOO.portico.setupDatePickerHelper.groups;
- var Dom = YAHOO.util.Dom;
-
- if(field._converted)
- return;
- field._converted = true;
- var date = args[0];
- var time = args[1];
- var Dom = YAHOO.util.Dom;
- var Event = YAHOO.util.Event;
- var oCalendarMenu = new YAHOO.widget.Overlay(Dom.generateId(), {
visible: false});
- var oButton = new YAHOO.widget.Button({type: "menu", id:
Dom.generateId(), menu: oCalendarMenu, container: field});
-
- oButton.with_time = time;
- oButton.with_date = date;
-
- var lang = {LBL_CHOOSE_DATE: 'Choose a date'};
- YAHOO.portico.lang('setupDatePickerHelper', lang);
-
- oButton._calendarMenu = oCalendarMenu;
- oButton._input = field._input = Dom.getElementsBy(function(){return
true;}, 'input', field)[0];
-
- oButton.hasDateSection = function() { return this.with_date; };
- oButton.hasTimeSection = function() { return this.with_time; };
-
- oButton.fireUpdateEvent = function() {
- if (oButton.on_update) {
- oButton.on_update.func.call(oButton.on_update.context,
oButton);
- }
- };
-
- oButton.on("appendTo", function () {
- this._calendarMenu.setBody(" ");
- this._calendarMenu.body.id = Dom.generateId();
- });
- if(!date)
- oButton.setStyle('display', 'none');
- //oButton._input.setAttribute('type', 'hidden');
- oButton._input.style.display = 'none';
- if(oButton._input.value)
- oButton._date = parseISO8601(oButton._input.value);
- else
- oButton._date = new Date(1, 1, 1);
- oButton._input._update = function() {
- if(oButton._input.value)
- oButton._date = parseISO8601(oButton._input.value);
- else
- oButton._date = new Date(1, 1, 1);
- oButton._update(false);
- };
- oButton._update = function(fire_update_event) {
- var year = this._date.getFullYear();
- var month = this._date.getMonth() + 1;
- var day = this._date.getDate();
- var hours = this._date.getHours();
- var minutes = this._date.getMinutes();
- var month = month < 10 ? '0' + month : '' + month;
- var day = day < 10 ? '0' + day : '' + day;
- var hours = hours < 10 ? '0' + hours : '' + hours;
- var minutes = minutes < 10 ? '0' + minutes : '' + minutes;
- var dateValue = year + '-' + month + '-' + day;
- var timeValue = hours + ':' + minutes;
- if(year == 1901) {
- this.set('label', lang.LBL_CHOOSE_DATE);
- } else {
- this.set('label', dateValue);
- }
- if(time) {
- this._hours.set('value', parseInt(hours, 10));
- this._minutes.set('value', parseInt(minutes, 10));
- this._hours.update();
- this._minutes.update();
- }
- if(year != 1901 && date && time)
- this._input.value = dateValue + ' ' + timeValue;
- else if (year != 1901 && date)
- this._input.value = dateValue;
- else if(!date && time)
- this._input.value = timeValue;
-
- if (fire_update_event) {
- oButton.fireUpdateEvent();
- }
- };
-
- oButton.getDate = function() {
- return this._date;
- };
-
- oButton.on("click", function () {
- YAHOO.widget.DateMath.WEEK_ONE_JAN_DATE = 4;
- var oCalendar = new YAHOO.widget.Calendar(Dom.generateId(),
this._calendarMenu.body.id, {START_WEEKDAY: 1,SHOW_WEEK_HEADER:true});
- oCalendar._button = this;
- if(this._date.getFullYear() == 1901) {
- var d = new Date();
- oCalendar.cfg.setProperty("pagedate", (d.getMonth()+1)
+ "/" + d.getFullYear());
- } else {
- oCalendar.select(this._date);
- oCalendar.cfg.setProperty("pagedate",
(this._date.getMonth()+1) + "/" + this._date.getFullYear());
- }
-
- oCalendar.render();
- // Hide date picker on ESC
- Event.on(this._calendarMenu.element, "keydown", function
(p_oEvent) {
- if (Event.getCharCode(p_oEvent) === 27) {
- this._calendarMenu.hide();
- this.focus();
- }
- }, null, this);
- oCalendar.selectEvent.subscribe(function (p_sType, p_aArgs) {
- if (p_aArgs) {
- var aDate = p_aArgs[0][0];
- this._date.setFullYear(aDate[0]);
- this._date.setMonth(aDate[1]-1);
- this._date.setDate(aDate[2]);
- this._update(true);
- //this._input.value = value;
- }
- this._calendarMenu.hide();
- }, this, true);
- });
- if(time) {
- oButton._hours = new YAHOO.portico.InputNumberRange({min: 0,
max:23});
- oButton._minutes = new YAHOO.portico.InputNumberRange({min: 0,
max:59});
-
- oButton._hours.on('updateEvent', function() {
- oButton._date.setHours(this.get('value'));
- oButton._update(true);
- });
-
- oButton._minutes.on('updateEvent', function() {
- oButton._date.setMinutes(this.get('value'));
- oButton._update(true);
- });
-
- oButton.on("appendTo", function () {
- var timePicker =
Dom.get(field).appendChild(document.createElement('span'));
- Dom.addClass(timePicker, 'time-picker-inputs');
- timePicker.appendChild(document.createTextNode(' '));
- oButton._hours.render(timePicker);
- timePicker.appendChild(document.createTextNode(' : '));
- oButton._minutes.render(timePicker);
- oButton._update(false);
- });
- }
- oButton._update(false);
-
- var id = Dom.getAttribute(oButton._input, 'id');
- var matches = /^([a-zA-Z][\w0-9\-_.:]+)_(from|to)$/.exec(id);
-
- var group_name = matches ? matches[1] : false;
- var from_to = matches ? matches[2] : false;
-
- if (group_name && from_to && oButton.hasDateSection()) {
- if (!groups[group_name]) { groups[group_name] = {}; }
-
- groups[group_name][from_to] = oButton;
-
- if (groups[group_name]['from'] && groups[group_name]['to']) {
- groups[group_name]['from'].on_update = {
- context: groups[group_name]['to'],
- func: function(fromDateButton) {
- var fromDate = fromDateButton.getDate();
- var currentYear =
this._date.getFullYear();
-
- if (this._date.getFullYear() == 1901) {
-
this._date.setFullYear(fromDate.getFullYear());
-
this._date.setMonth(fromDate.getMonth());
-
this._date.setDate(fromDate.getDate());
- } else if (fromDate.getFullYear() <=
this._date.getFullYear() && fromDate.getMonth() <= this._date.getMonth() &&
fromDate.getDate() <= this._date.getDate()) {
- //this._date.
- }
-
- this._update(false);
- }
- };
-
- delete groups[group_name];
- }
- }
-};
-
-// Executed on all booking.uicommon-based pages
-YAHOO.util.Event.addListener(window, "load", function() {
- YAHOO.portico.setupDatePickers();
-});
-var showIfNotEmpty = function(event, fieldname) {
- if (document.getElementById(fieldname).value.length > 1) {
- YAHOO.util.Dom.replaceClass(fieldname + "_edit", "hideit", "showit");
- } else {
- YAHOO.util.Dom.replaceClass(fieldname + "_edit", "showit", "hideit");
- }
-};
-
-YAHOO.portico.rtfEditorHelper = function(textarea_id, options) {
- options = YAHOO.lang.merge({width:522, height:300}, (options || {}));
- var descEdit = new YAHOO.widget.SimpleEditor(textarea_id, {
- height: options.height+'px',
- width: options.width+'px',
- dompath: true,
- animate: true,
- handleSubmit: true
- });
- descEdit.render();
- return descEdit;
-};
-
-YAHOO.portico.postToUrl = function(path, params, method) {
- method = method || "post"; // Set method to post by default, if not
specified.
- var form = document.createElement("form");
- form.setAttribute("method", method);
- form.setAttribute("action", path);
-
- for(var key in params) {
- var hiddenField = document.createElement("input");
- hiddenField.setAttribute("type", "hidden");
- hiddenField.setAttribute("name", params[key][0]);
- hiddenField.setAttribute("value", params[key][1]);
- form.appendChild(hiddenField);
- }
- document.body.appendChild(form); // Not entirely sure if this is
necessary
- form.submit();
-};
-
-(function(){
- var Dom = YAHOO.util.Dom,
- Event = YAHOO.util.Event,
- Panel = YAHOO.widget.Panel,
- Lang = YAHOO.lang;
-
- var CSS_PREFIX = 'booking_number_range_';
-
- var InputNumberRange = function(oConfigs) {
- InputNumberRange.superclass.constructor.call(this,
document.createElement('span'), oConfigs);
- this.createEvent('updateEvent');
- this.refresh(['id'],true);
- };
-
- YAHOO.portico.InputNumberRange = InputNumberRange;
-
- Lang.extend(InputNumberRange, YAHOO.util.Element, {
- initAttributes: function (oConfigs) {
- InputNumberRange.superclass.initAttributes.call(this,
oConfigs);
-
- var container = this.get('element');
-
- this.setAttributeConfig('inputEl', {
- readOnly: true,
- value:
container.appendChild(document.createElement('span'))
- });
-
- this.setAttributeConfig('id', {
- writeOnce: true,
- validator: function (value) {
- return /^[a-zA-Z][\w0-9\-_.:]*$/.test(value);
- },
- value: Dom.generateId(),
- method: function (value) {
- this.get('inputEl').id = value;
- }
- });
-
- this.setAttributeConfig('value', {
- value: 0,
- validator: Lang.isNumber
- });
-
- this.setAttributeConfig('input', {
- value: null
- });
-
- this.setAttributeConfig('min', {
- validator: Lang.isNumber,
- value: 100
- });
-
- this.setAttributeConfig('max', {
- validator: Lang.isNumber,
- value: 0
- });
-
- this.setAttributeConfig('input_length', {
- validator: Lang.isNumber,
- value: null
- });
- },
-
- destroy: function () {
- var el = this.get('element');
- Event.purgeElement(el, true);
- el.parentNode.removeChild(el);
- },
-
- _padValue: function(value)
- {
- value = value.toString('10');
- var padding = this.get('input_length') - value.length;
- if (padding > 0) {
- return ((new Array(padding+1).join('0')) +
value);
- }
- return value;
- },
-
- _updateValue: function() {
- var input = this.get('input');
- var value;
-
- if (input.value.length > 0) {
- value = parseInt(input.value, 10);
- } else {
- value = 0;
- }
-
- if (isNaN(value)) {
- value = this.get('min');
- }
-
- if (value < this.get('min')) {
- value = this.get('min');
- }
-
- if (value > this.get('max')) {
- value = this.get('max');
- }
-
- this.set('value', value);
- },
-
- _fireUpdateEvent: function()
- {
- this._updateValue();
- this.update();
-
- this.fireEvent('updateEvent');
- },
-
- update: function() {
- if (!this.get('input')) { return; }
- this.get('input').value =
this._padValue(this.get('value'));
- },
-
- render: function (parentEl) {
- parentEl = Dom.get(parentEl);
-
- if (!parentEl) {
- YAHOO.log('Missing mandatory argument in
YAHOO.portico.InputNumberRange.render: parentEl','error','Field');
- return null;
- }
-
- var containerEl = this.get('element');
- this.addClass(CSS_PREFIX + 'container');
-
- var inputEl = this.get('inputEl');
- Dom.addClass(inputEl, CSS_PREFIX + 'input');
-
- this._renderInputEl(inputEl);
-
- parentEl.appendChild(containerEl); //Appends to
document to show the component
- },
-
- _renderInputEl: function (containerEl) {
- var input =
containerEl.appendChild(document.createElement('input'));
-
- if (!this.get('input_length')) {
- this.set('input_length',
this.get('max').toString().length);
- }
-
- var size = this.get('input_length');
- input.setAttribute('size', size);
- input.setAttribute('maxlength', size);
-
- if (YAHOO.env.ua.ie > 6) {
- YAHOO.util.Dom.setStyle(input, 'width', '2em');
- }
-
- input.value = this._padValue(this.get('value'));
-
- this.set('input', input);
-
- Event.on(input,'keyup', function (oArgs) {
- this._updateValue();
- }, this, true);
-
- Event.on(input, 'change', function(oArgs) {
- this._fireUpdateEvent();
- }, this, true);
-
- oForm = input.form;
-
- if (oForm) {
- Event.on(oForm, "submit", function() {
- this._fireUpdateEvent();
- }, null, this);
- }
-
- }
- });
-
-})();
Copied: branches/Version-1_0-branch/controller/js/yahoo/common.js (from rev
7636, trunk/controller/js/yahoo/common.js)
===================================================================
--- branches/Version-1_0-branch/controller/js/yahoo/common.js
(rev 0)
+++ branches/Version-1_0-branch/controller/js/yahoo/common.js 2011-09-16
11:24:14 UTC (rev 7637)
@@ -0,0 +1,766 @@
+YAHOO.namespace('portico');
+
+YAHOO.portico.js_alias_method_chain = function(constructor_func, func_name,
new_feature_name, feature_impl_func) {
+ constructor_func.prototype[func_name+'_without_'+new_feature_name] =
constructor_func.prototype[func_name];
+ constructor_func.prototype[func_name+'_with_'+new_feature_name] =
feature_impl_func;
+ constructor_func.prototype[func_name] =
constructor_func.prototype[func_name+'_with_'+new_feature_name];
+};
+
+YAHOO.portico.lang = function(section, config) {
+ config = config || {};
+ if (YAHOO && YAHOO.booking && YAHOO.portico.i18n &&
YAHOO.portico.i18n[section]) {
+ YAHOO.portico.i18n[section](config);
+ }
+ return config;
+};
+
+/** Hook widgets to translations **/
+YAHOO.portico.js_alias_method_chain(YAHOO.widget.Calendar, 'init', 'i18n',
function(id, container, config) {
+ YAHOO.portico.lang('Calendar', config);
+ return this.init_without_i18n(id, container, config);
+});
+
+YAHOO.portico.js_alias_method_chain(YAHOO.widget.DataTable, '_initConfigs',
'i18n', function(config) {
+ YAHOO.portico.lang('DataTable', config);
+ return this._initConfigs_without_i18n(config);
+});
+
+function y2k(number) { return (number < 1000) ? number + 1900 : number; }
+YAHOO.portico.weeknumber = function(when) {
+ var year = when.getFullYear();
+ var month = when.getMonth();
+ var day = when.getDate();
+
+ var newYear = new Date(year,0,1);
+ var modDay = newYear.getDay();
+ if (modDay == 0) modDay=6; else modDay--;
+
+ var daynum = ((Date.UTC(y2k(year),when.getMonth(),when.getDate(),0,0,0)
- Date.UTC(y2k(year),0,1,0,0,0)) /1000/60/60/24) + 1;
+
+ if (modDay < 4 ) {
+ var weeknum = Math.floor((daynum+modDay-1)/7)+1;
+ } else {
+ var weeknum = Math.floor((daynum+modDay-1)/7);
+ if (weeknum == 0) {
+ year--;
+ var prevNewYear = new Date(year,0,1);
+ var prevmodDay = prevNewYear.getDay();
+ if (prevmodDay == 0) prevmodDay = 6; else prevmodDay--;
+ if (prevmodDay < 4) weeknum = 53; else weeknum = 52;
+ }
+ }
+ return + weeknum;
+}
+
+parseISO8601 = function (string) {
+ var regexp = "(([0-9]{4})(-([0-9]{1,2})(-([0-9]{1,2}))))?(
)?(([0-9]{1,2}):([0-9]{1,2}))?";
+ var d = string.match(new RegExp(regexp));
+ var year = d[2] ? (d[2] * 1) : 0;
+ date = new Date(year, (d[4]||1)-1, d[6]||0);
+ if(d[9])
+ date.setHours(d[9]);
+ if(d[10])
+ date.setMinutes(d[10]);
+ return date;
+};
+
+YAHOO.portico.serializeForm = function(formID) {
+ var form = YAHOO.util.Dom.get(formID);
+ var values = [];
+ for(var i=0; i < form.elements.length; i++) {
+ var e = form.elements[i];
+ if(e.type=='checkbox' || e.type=='radio') {
+ if(e.checked) {
+ values.push(e.name + '=' +
encodeURIComponent(e.value));
+ }
+ }
+ else if(e.name) {
+ values.push(e.name + '=' + encodeURIComponent(e.value));
+ }
+ }
+ return values.join('&');
+};
+
+YAHOO.portico.fillForm = function(formID, params) {
+ var form = YAHOO.util.Dom.get(formID);
+ var values = [];
+ for(var i=0; i < form.elements.length; i++) {
+ var e = form.elements[i];
+ if((e.type=='checkbox' || e.type=='radio') && params[e.name]) {
+ e.checked = true;
+ }
+ else if(e.name && params[e.name] != undefined) {
+ e.value = params[e.name];
+ if(e._update) { // Is this connected to a date picker?
+ e._update();
+ }
+ }
+ }
+ return values.join('&');
+};
+
+YAHOO.portico.parseQS = function(qs) {
+ qs = qs.replace(/\+/g, ' ');
+ var args = qs.split('&');
+ var params = {};
+ for (var i = 0; i < args.length; i++) {
+ var pair = args[i].split('=');
+ var name = decodeURIComponent(pair[0]);
+ var value = (pair.length==2) ? decodeURIComponent(pair[1]) :
name;
+ params[name] = value;
+ }
+ return params;
+}
+
+YAHOO.portico.formatLink = function(elCell, oRecord, oColumn, oData) {
+ var name = oRecord.getData(oColumn.key);
+ var link = oRecord.getData('link');
+ elCell.innerHTML = '<a href="' + link + '">' + name + '</a>';
+};
+
+YAHOO.portico.formatGenericLink = function() {
+ var links = [];
+ var nOfLinks = arguments.length;
+
+ for (var i=0; i < nOfLinks; i++) { links[i] = arguments[i]; }
+
+ return function(elCell, oRecord, oColumn, oData)
+ {
+ var nOfLinks = links.length;
+ var data = oRecord.getData(oColumn.key);
+
+ var linksHtml = '';
+ if (nOfLinks > 0) {
+ //Use specified link names
+ for (var i=0; i < nOfLinks; i++) {
+ if (data[i])
+ {
+ linksHtml += '<div><a href="' + data[i]
+ '">' + links[i] + '</a></div>';
+ }
+ }
+ } else {
+ //Get label from embedded data
+ if (data['href'] != undefined && data['label'] !=
undefined) {
+ linksHtml += '<div><a href="' + data['href'] +
'">' + data['label'] + '</a></div>';
+ } else if(data['href'] == undefined && data['label'] !=
undefined) {
+ linksHtml += '<div>'+data['label']+'</div>';
+ }
+ }
+
+ elCell.innerHTML = linksHtml;
+ };
+};
+
+YAHOO.portico.autocompleteHelper = function(url, field, hidden, container,
label_attr) {
+ label_attr = label_attr || 'name';
+ var myDataSource = new YAHOO.util.DataSource(url);
+ myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
+ myDataSource.connXhrMode = "queueRequests";
+ myDataSource.responseSchema = {
+ resultsList: "ResultSet.Result",
+ fields: [label_attr, 'id']
+ };
+ myDataSource.maxCacheEntries = 5;
+ var ac = new YAHOO.widget.AutoComplete(field, container, myDataSource);
+ ac.queryQuestionMark = false;
+ ac.resultTypeList = false;
+ ac.forceSelection = true;
+ ac.itemSelectEvent.subscribe(function(sType, aArgs) {
+ YAHOO.util.Dom.get(hidden).value = aArgs[2].id;
+ });
+ return ac;
+};
+
+YAHOO.portico.setupInlineTablePaginator = function(container) {
+ var paginatorConfig = {
+ rowsPerPage: 10,
+ alwaysVisible: false,
+ template: "{PreviousPageLink} <strong>{CurrentPageReport}</strong>
{NextPageLink}",
+ pageReportTemplate: "Showing items {startRecord} - {endRecord} of
{totalRecords}",
+ containers: [YAHOO.util.Dom.get(container)]
+ };
+
+ YAHOO.portico.lang('setupPaginator', paginatorConfig);
+ var pag = new YAHOO.widget.Paginator(paginatorConfig);
+ pag.render();
+ return pag;
+};
+
+YAHOO.portico.inlineTableHelper = function(container, url, colDefs, options,
disablePagination) {
+ var Dom = YAHOO.util.Dom;
+
+ var container = Dom.get(container);
+ if(!disablePagination) {
+ var paginatorContainer =
container.appendChild(document.createElement('div'));
+ var dataTableContainer =
container.appendChild(document.createElement('div'));
+ }
+ else {
+ dataTableContainer = container;
+ }
+ options = options || {};
+ options.dynamicData = true;
+
+ if(!disablePagination) {
+ options.paginator =
YAHOO.portico.setupInlineTablePaginator(paginatorContainer);
+ url += 'results=' + options.paginator.getRowsPerPage() + '&';
+ }
+ var myDataSource = new YAHOO.util.DataSource(url);
+ myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
+ myDataSource.connXhrMode = "queueRequests";
+ myDataSource.responseSchema = {
+ resultsList: "ResultSet.Result",
+ metaFields : { totalResultsAvailable:
"ResultSet.totalResultsAvailable", actions: 'Actions' }
+ };
+
+ var myDataTable = new YAHOO.widget.DataTable(dataTableContainer,
colDefs, myDataSource, options);
+
+ myDataTable.handleDataReturnPayload = function(oRequest, oResponse,
oPayload) {
+ oPayload.totalRecords = oResponse.meta.totalResultsAvailable;
+ return oPayload;
+ }
+
+ myDataTable.doBeforeLoadData = function(nothing, data) {
+ if (!data.meta.actions) return data;
+
+ actions = data.meta.actions;
+
+ for (var key in actions) {
+ var actionLink = document.createElement('a');
+ actionLink.href = actions[key].href.replace(/&/gi,
'&');
+ actionLink.innerHTML = actions[key].text;
+ YAHOO.util.Dom.insertAfter(actionLink, container);
+ };
+
+ return data;
+ };
+ return {dataTable: myDataTable, dataSource: myDataSource};
+};
+
+YAHOO.portico.inlineImages = function(container, url, options)
+{
+ options = options || {};
+ var myDataSource = new YAHOO.util.DataSource(url);
+ myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
+ myDataSource.connXhrMode = "queueRequests";
+ myDataSource.responseSchema = {
+ resultsList: "ResultSet.Result",
+ metaFields : { totalResultsAvailable:
"ResultSet.totalResultsAvailable", actions: 'Actions' }
+ };
+
+ myDataSource.sendRequest('', {success: function(sRequest, oResponse,
oPayload) {
+ var dlImages = new
YAHOO.util.Element(document.createElement('dl'));
+ dlImages.addClass('proplist images');
+
+ var displayContainer = false;
+
+ for(var key in oResponse.results) {
+ displayContainer = true;
+ var imgEl =
dlImages.appendChild(document.createElement('dd')).appendChild(document.createElement('img'));
+ var captionEl =
dlImages.appendChild(document.createElement('dt'));
+ imgEl.src =
oResponse.results[key].src.replace(/&/gi, '&');
+
captionEl.appendChild(document.createTextNode(oResponse.results[key].description));
+ }
+
+ if (displayContainer)
+ {
+ new YAHOO.util.Element(container).appendChild(dlImages);
+ } else {
+ new YAHOO.util.Element(container).setStyle('display',
'none');
+ }
+ }});
+};
+
+
+YAHOO.portico.radioTableHelper = function(container, url, name, selection) {
+ return YAHOO.portico.checkboxTableHelper(container, url, name,
selection, {type: 'radio'});
+};
+
+YAHOO.portico.checkboxTableHelper = function(container, url, name, selection,
options) {
+ options = YAHOO.lang.isObject(options) ? options : {};
+
+ options = YAHOO.lang.merge(
+ {type: 'checkbox', selectionFieldOptions: {}, nameFieldOptions:
{}, defaultChecked: false},
+ options
+ );
+
+ var type = options['type'] || 'checkbox';
+ selection = selection || [];
+ var myDataSource = new YAHOO.util.DataSource(url);
+ myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
+ myDataSource.connXhrMode = "queueRequests";
+ myDataSource.responseSchema = {
+ resultsList: "ResultSet.Result",
+ metaFields : { totalResultsAvailable:
"ResultSet.totalResultsAvailable" }
+ };
+
+ var lang = {LBL_NAME: 'Name'};
+ YAHOO.portico.lang('common', lang);
+
+ var changeListener = false;
+
+ if (options.onSelectionChanged) {
+ changeListener = function(e) {
+ var selectedItems = [];
+ var items =
YAHOO.util.Dom.getElementsBy(function(i){return i.checked;}, 'input',
container);
+
+ YAHOO.util.Dom.batch(items, function(e, selectedItems) {
+ selectedItems.push(e.value);
+ }, selectedItems);
+
+ options.onSelectionChanged(selectedItems);
+ };
+ }
+
+ var checkboxFormatter = function(elCell, oRecord, oColumn, oData) {
+ var checked = false;
+ var newInput;
+ for(var i=0; i < selection.length; i++) {
+ if (selection[i] == oData) {
+ checked = true;
+ break;
+ }
+ }
+
+ newInput = document.createElement('input');
+ newInput.setAttribute('type', type);
+ newInput.setAttribute('name', name);
+ newInput.setAttribute('value', oData);
+ if (checked || options.defaultChecked) {
+ newInput.setAttribute('checked', 'checked');
+ newInput.setAttribute('defaultChecked', true); //Needed
for IE compatibility
+ }
+
+ if (changeListener != false) {
+ //Using 'click' event on IE as the change event does
not work as expected there.
+ YAHOO.util.Event.addListener(newInput, (YAHOO.env.ua.ie
> 0 ? 'click' : 'change'), changeListener);
+ }
+
+ elCell.appendChild(newInput);
+
+ };
+ var colDefs = [
+ YAHOO.lang.merge({key: "id", formatter: checkboxFormatter,
label: ''}, options.selectionFieldOptions),
+ YAHOO.lang.merge({key: "name", label: lang['LBL_NAME'],
sortable: true}, options.nameFieldOptions)
+ ];
+
+ if (options['additional_fields'] &&
YAHOO.lang.isArray(options['additional_fields'])) {
+ for (var i=0; i < options['additional_fields'].length; i++) {
+ colDefs.push(options['additional_fields'][i]);
+ }
+ }
+
+ var myDataTable = new YAHOO.widget.DataTable(container, colDefs,
myDataSource, {
+ sortedBy: {key: 'name', dir: YAHOO.widget.DataTable.CLASS_ASC}
+ });
+};
+
+YAHOO.portico.setupDatePickers = function() {
+ YAHOO.util.Dom.getElementsByClassName('date-picker', null, null,
YAHOO.portico.setupDatePickerHelper, [true, false]);
+ YAHOO.util.Dom.getElementsByClassName('time-picker', null, null,
YAHOO.portico.setupDatePickerHelper, [false, true]);
+ YAHOO.util.Dom.getElementsByClassName('datetime-picker', null, null,
YAHOO.portico.setupDatePickerHelper, [true, true]);
+};
+
+YAHOO.portico.setupDatePickerHelper = function(field, args) {
+ if (!YAHOO.portico.setupDatePickerHelper.groups) {
+ YAHOO.portico.setupDatePickerHelper.groups = {};
+ }
+
+ var groups = YAHOO.portico.setupDatePickerHelper.groups;
+ var Dom = YAHOO.util.Dom;
+
+ if(field._converted)
+ return;
+ field._converted = true;
+ var date = args[0];
+ var time = args[1];
+ var Dom = YAHOO.util.Dom;
+ var Event = YAHOO.util.Event;
+ var oCalendarMenu = new YAHOO.widget.Overlay(Dom.generateId(), {
visible: false});
+ var oButton = new YAHOO.widget.Button({type: "menu", id:
Dom.generateId(), menu: oCalendarMenu, container: field});
+
+ oButton.with_time = time;
+ oButton.with_date = date;
+
+ var lang = {LBL_CHOOSE_DATE: 'Choose a date'};
+ YAHOO.portico.lang('setupDatePickerHelper', lang);
+
+ oButton._calendarMenu = oCalendarMenu;
+ oButton._input = field._input = Dom.getElementsBy(function(){return
true;}, 'input', field)[0];
+
+ oButton.hasDateSection = function() { return this.with_date; };
+ oButton.hasTimeSection = function() { return this.with_time; };
+
+ oButton.fireUpdateEvent = function() {
+ if (oButton.on_update) {
+ oButton.on_update.func.call(oButton.on_update.context,
oButton);
+ }
+ };
+
+ oButton.on("appendTo", function () {
+ this._calendarMenu.setBody(" ");
+ this._calendarMenu.body.id = Dom.generateId();
+ });
+ if(!date)
+ oButton.setStyle('display', 'none');
+ //oButton._input.setAttribute('type', 'hidden');
+ oButton._input.style.display = 'none';
+ if(oButton._input.value)
+ oButton._date = parseISO8601(oButton._input.value);
+ else
+ oButton._date = new Date(1, 1, 1);
+ oButton._input._update = function() {
+ if(oButton._input.value)
+ oButton._date = parseISO8601(oButton._input.value);
+ else
+ oButton._date = new Date(1, 1, 1);
+ oButton._update(false);
+ };
+ oButton._update = function(fire_update_event) {
+ var year = this._date.getFullYear();
+ var month = this._date.getMonth() + 1;
+ var day = this._date.getDate();
+ var hours = this._date.getHours();
+ var minutes = this._date.getMinutes();
+ var month = month < 10 ? '0' + month : '' + month;
+ var day = day < 10 ? '0' + day : '' + day;
+ var hours = hours < 10 ? '0' + hours : '' + hours;
+ var minutes = minutes < 10 ? '0' + minutes : '' + minutes;
+ var dateValue = year + '-' + month + '-' + day;
+ var timeValue = hours + ':' + minutes;
+ if(year == 1901) {
+ this.set('label', lang.LBL_CHOOSE_DATE);
+ } else {
+ this.set('label', dateValue);
+ }
+ if(time) {
+ this._hours.set('value', parseInt(hours, 10));
+ this._minutes.set('value', parseInt(minutes, 10));
+ this._hours.update();
+ this._minutes.update();
+ }
+ if(year != 1901 && date && time)
+ this._input.value = dateValue + ' ' + timeValue;
+ else if (year != 1901 && date)
+ this._input.value = dateValue;
+ else if(!date && time)
+ this._input.value = timeValue;
+
+ if (fire_update_event) {
+ oButton.fireUpdateEvent();
+ }
+ };
+
+ oButton.getDate = function() {
+ return this._date;
+ };
+
+ oButton.on("click", function () {
+ YAHOO.widget.DateMath.WEEK_ONE_JAN_DATE = 4;
+ var oCalendar = new YAHOO.widget.Calendar(Dom.generateId(),
this._calendarMenu.body.id, {START_WEEKDAY: 1,SHOW_WEEK_HEADER:true});
+ oCalendar._button = this;
+ if(this._date.getFullYear() == 1901) {
+ var d = new Date();
+ oCalendar.cfg.setProperty("pagedate", (d.getMonth()+1)
+ "/" + d.getFullYear());
+ } else {
+ oCalendar.select(this._date);
+ oCalendar.cfg.setProperty("pagedate",
(this._date.getMonth()+1) + "/" + this._date.getFullYear());
+ }
+
+ oCalendar.render();
+ // Hide date picker on ESC
+ Event.on(this._calendarMenu.element, "keydown", function
(p_oEvent) {
+ if (Event.getCharCode(p_oEvent) === 27) {
+ this._calendarMenu.hide();
+ this.focus();
+ }
+ }, null, this);
+ oCalendar.selectEvent.subscribe(function (p_sType, p_aArgs) {
+ if (p_aArgs) {
+ var aDate = p_aArgs[0][0];
+ this._date.setFullYear(aDate[0]);
+ this._date.setMonth(aDate[1]-1);
+ this._date.setDate(aDate[2]);
+ this._update(true);
+ //this._input.value = value;
+ }
+ this._calendarMenu.hide();
+ }, this, true);
+ });
+ if(time) {
+ oButton._hours = new YAHOO.portico.InputNumberRange({min: 0,
max:23});
+ oButton._minutes = new YAHOO.portico.InputNumberRange({min: 0,
max:59});
+
+ oButton._hours.on('updateEvent', function() {
+ oButton._date.setHours(this.get('value'));
+ oButton._update(true);
+ });
+
+ oButton._minutes.on('updateEvent', function() {
+ oButton._date.setMinutes(this.get('value'));
+ oButton._update(true);
+ });
+
+ oButton.on("appendTo", function () {
+ var timePicker =
Dom.get(field).appendChild(document.createElement('span'));
+ Dom.addClass(timePicker, 'time-picker-inputs');
+ timePicker.appendChild(document.createTextNode(' '));
+ oButton._hours.render(timePicker);
+ timePicker.appendChild(document.createTextNode(' : '));
+ oButton._minutes.render(timePicker);
+ oButton._update(false);
+ });
+ }
+ oButton._update(false);
+
+ var id = Dom.getAttribute(oButton._input, 'id');
+ var matches = /^([a-zA-Z][\w0-9\-_.:]+)_(from|to)$/.exec(id);
+
+ var group_name = matches ? matches[1] : false;
+ var from_to = matches ? matches[2] : false;
+
+ if (group_name && from_to && oButton.hasDateSection()) {
+ if (!groups[group_name]) { groups[group_name] = {}; }
+
+ groups[group_name][from_to] = oButton;
+
+ if (groups[group_name]['from'] && groups[group_name]['to']) {
+ groups[group_name]['from'].on_update = {
+ context: groups[group_name]['to'],
+ func: function(fromDateButton) {
+ var fromDate = fromDateButton.getDate();
+ var currentYear =
this._date.getFullYear();
+
+ if (this._date.getFullYear() == 1901) {
+
this._date.setFullYear(fromDate.getFullYear());
+
this._date.setMonth(fromDate.getMonth());
+
this._date.setDate(fromDate.getDate());
+ } else if (fromDate.getFullYear() <=
this._date.getFullYear() && fromDate.getMonth() <= this._date.getMonth() &&
fromDate.getDate() <= this._date.getDate()) {
+ //this._date.
+ }
+
+ this._update(false);
+ }
+ };
+
+ delete groups[group_name];
+ }
+ }
+};
+
+// Executed on all booking.uicommon-based pages
+YAHOO.util.Event.addListener(window, "load", function() {
+ YAHOO.portico.setupDatePickers();
+});
+var showIfNotEmpty = function(event, fieldname) {
+ if (document.getElementById(fieldname).value.length > 1) {
+ YAHOO.util.Dom.replaceClass(fieldname + "_edit", "hideit", "showit");
+ } else {
+ YAHOO.util.Dom.replaceClass(fieldname + "_edit", "showit", "hideit");
+ }
+};
+
+YAHOO.portico.rtfEditorHelper = function(textarea_id, options) {
+ options = YAHOO.lang.merge({width:522, height:300}, (options || {}));
+ var descEdit = new YAHOO.widget.SimpleEditor(textarea_id, {
+ height: options.height+'px',
+ width: options.width+'px',
+ dompath: true,
+ animate: true,
+ handleSubmit: true
+ });
+ descEdit.render();
+ return descEdit;
+};
+
+YAHOO.portico.postToUrl = function(path, params, method) {
+ method = method || "post"; // Set method to post by default, if not
specified.
+ var form = document.createElement("form");
+ form.setAttribute("method", method);
+ form.setAttribute("action", path);
+
+ for(var key in params) {
+ var hiddenField = document.createElement("input");
+ hiddenField.setAttribute("type", "hidden");
+ hiddenField.setAttribute("name", params[key][0]);
+ hiddenField.setAttribute("value", params[key][1]);
+ form.appendChild(hiddenField);
+ }
+ document.body.appendChild(form); // Not entirely sure if this is
necessary
+ form.submit();
+};
+
+(function(){
+ var Dom = YAHOO.util.Dom,
+ Event = YAHOO.util.Event,
+ Panel = YAHOO.widget.Panel,
+ Lang = YAHOO.lang;
+
+ var CSS_PREFIX = 'booking_number_range_';
+
+ var InputNumberRange = function(oConfigs) {
+ InputNumberRange.superclass.constructor.call(this,
document.createElement('span'), oConfigs);
+ this.createEvent('updateEvent');
+ this.refresh(['id'],true);
+ };
+
+ YAHOO.portico.InputNumberRange = InputNumberRange;
+
+ Lang.extend(InputNumberRange, YAHOO.util.Element, {
+ initAttributes: function (oConfigs) {
+ InputNumberRange.superclass.initAttributes.call(this,
oConfigs);
+
+ var container = this.get('element');
+
+ this.setAttributeConfig('inputEl', {
+ readOnly: true,
+ value:
container.appendChild(document.createElement('span'))
+ });
+
+ this.setAttributeConfig('id', {
+ writeOnce: true,
+ validator: function (value) {
+ return /^[a-zA-Z][\w0-9\-_.:]*$/.test(value);
+ },
+ value: Dom.generateId(),
+ method: function (value) {
+ this.get('inputEl').id = value;
+ }
+ });
+
+ this.setAttributeConfig('value', {
+ value: 0,
+ validator: Lang.isNumber
+ });
+
+ this.setAttributeConfig('input', {
+ value: null
+ });
+
+ this.setAttributeConfig('min', {
+ validator: Lang.isNumber,
+ value: 100
+ });
+
+ this.setAttributeConfig('max', {
+ validator: Lang.isNumber,
+ value: 0
+ });
+
+ this.setAttributeConfig('input_length', {
+ validator: Lang.isNumber,
+ value: null
+ });
+ },
+
+ destroy: function () {
+ var el = this.get('element');
+ Event.purgeElement(el, true);
+ el.parentNode.removeChild(el);
+ },
+
+ _padValue: function(value)
+ {
+ value = value.toString('10');
+ var padding = this.get('input_length') - value.length;
+ if (padding > 0) {
+ return ((new Array(padding+1).join('0')) +
value);
+ }
+ return value;
+ },
+
+ _updateValue: function() {
+ var input = this.get('input');
+ var value;
+
+ if (input.value.length > 0) {
+ value = parseInt(input.value, 10);
+ } else {
+ value = 0;
+ }
+
+ if (isNaN(value)) {
+ value = this.get('min');
+ }
+
+ if (value < this.get('min')) {
+ value = this.get('min');
+ }
+
+ if (value > this.get('max')) {
+ value = this.get('max');
+ }
+
+ this.set('value', value);
+ },
+
+ _fireUpdateEvent: function()
+ {
+ this._updateValue();
+ this.update();
+
+ this.fireEvent('updateEvent');
+ },
+
+ update: function() {
+ if (!this.get('input')) { return; }
+ this.get('input').value =
this._padValue(this.get('value'));
+ },
+
+ render: function (parentEl) {
+ parentEl = Dom.get(parentEl);
+
+ if (!parentEl) {
+ YAHOO.log('Missing mandatory argument in
YAHOO.portico.InputNumberRange.render: parentEl','error','Field');
+ return null;
+ }
+
+ var containerEl = this.get('element');
+ this.addClass(CSS_PREFIX + 'container');
+
+ var inputEl = this.get('inputEl');
+ Dom.addClass(inputEl, CSS_PREFIX + 'input');
+
+ this._renderInputEl(inputEl);
+
+ parentEl.appendChild(containerEl); //Appends to
document to show the component
+ },
+
+ _renderInputEl: function (containerEl) {
+ var input =
containerEl.appendChild(document.createElement('input'));
+
+ if (!this.get('input_length')) {
+ this.set('input_length',
this.get('max').toString().length);
+ }
+
+ var size = this.get('input_length');
+ input.setAttribute('size', size);
+ input.setAttribute('maxlength', size);
+
+ if (YAHOO.env.ua.ie > 6) {
+ YAHOO.util.Dom.setStyle(input, 'width', '2em');
+ }
+
+ input.value = this._padValue(this.get('value'));
+
+ this.set('input', input);
+
+ Event.on(input,'keyup', function (oArgs) {
+ this._updateValue();
+ }, this, true);
+
+ Event.on(input, 'change', function(oArgs) {
+ this._fireUpdateEvent();
+ }, this, true);
+
+ oForm = input.form;
+
+ if (oForm) {
+ Event.on(oForm, "submit", function() {
+ this._fireUpdateEvent();
+ }, null, this);
+ }
+
+ }
+ });
+
+})();
Modified: branches/Version-1_0-branch/controller/setup/setup.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/setup/setup.inc.php 2011-09-16
11:22:59 UTC (rev 7636)
+++ branches/Version-1_0-branch/controller/setup/setup.inc.php 2011-09-16
11:24:14 UTC (rev 7637)
@@ -34,7 +34,6 @@
$setup_info['controller']['tables'] = array
(
'controller_control',
- 'controller_control_schedule',
'controller_control_item_list',
'controller_control_item',
'controller_control_group',
Modified: branches/Version-1_0-branch/controller/templates/base/common.php
===================================================================
--- branches/Version-1_0-branch/controller/templates/base/common.php
2011-09-16 11:22:59 UTC (rev 7636)
+++ branches/Version-1_0-branch/controller/templates/base/common.php
2011-09-16 11:24:14 UTC (rev 7637)
@@ -568,14 +568,13 @@
function initCalendar(inputFieldID, divContainerID, calendarBodyId,
calendarTitle, closeButton,clearButton,hiddenField,noPostOnSelect)
{
- console.log("i init!!! " + inputFieldID + " : " + divContainerID + " :
" + calendarBodyId + " : " + calendarTitle );
var overlay = new YAHOO.widget.Dialog(
divContainerID,
{ visible: false,
close: true
}
);
-
+
var navConfig = {
strings: {
month:"<?php echo lang('month') ?>",
@@ -586,7 +585,7 @@
},
initialFocus: "month"
}
-
+
var cal = new YAHOO.widget.Calendar(
calendarBodyId,
{ navigator:navConfig,
@@ -597,6 +596,7 @@
cal.cfg.setProperty("MONTHS_LONG",<?php echo lang('calendar_months')
?>);
cal.cfg.setProperty("WEEKDAYS_SHORT",<?php echo
lang('calendar_weekdays') ?>);
+
cal.render();
cal.selectEvent.subscribe(onCalendarSelect,[inputFieldID,overlay,hiddenField,noPostOnSelect],false);
@@ -606,7 +606,7 @@
YAHOO.util.Event.addListener(closeButton,'click',closeCalender,overlay,true);
YAHOO.util.Event.addListener(clearButton,'click',clearCalendar,cal,true);
YAHOO.util.Event.addListener(inputFieldID,'click',onClickOnInput,overlay,true);
-
+
return cal;
}
Modified: branches/Version-1_0-branch/controller/templates/base/control_item.php
===================================================================
--- branches/Version-1_0-branch/controller/templates/base/control_item.php
2011-09-16 11:22:59 UTC (rev 7636)
+++ branches/Version-1_0-branch/controller/templates/base/control_item.php
2011-09-16 11:24:14 UTC (rev 7637)
@@ -49,7 +49,7 @@
</select>
</dd>
<dt>
- <label
for="control_area">Kontrolltype</label>
+ <label
for="control_area">Kontrollområde</label>
</dt>
<dd>
<select id="control_area"
name="control_area">
Modified:
branches/Version-1_0-branch/controller/templates/base/procedure_item.xsl
===================================================================
--- branches/Version-1_0-branch/controller/templates/base/procedure_item.xsl
2011-09-16 11:22:59 UTC (rev 7636)
+++ branches/Version-1_0-branch/controller/templates/base/procedure_item.xsl
2011-09-16 11:24:14 UTC (rev 7637)
@@ -99,7 +99,9 @@
<xsl:choose>
<xsl:when test="editable">
<xsl:variable
name="lang_save"><xsl:value-of select="php:function('lang', 'save')"
/></xsl:variable>
+ <xsl:variable
name="lang_cancel"><xsl:value-of select="php:function('lang', 'cancel')"
/></xsl:variable>
<input type="submit"
name="save_procedure" value="{$lang_save}" title = "{$lang_save}" />
+ <input type="submit"
name="cancel_procedure" value="{$lang_cancel}" title = "{$lang_cancel}" />
</xsl:when>
<xsl:otherwise>
<xsl:variable
name="lang_edit"><xsl:value-of select="php:function('lang', 'edit')"
/></xsl:variable>
Modified: branches/Version-1_0-branch/property/inc/class.sodocument.inc.php
===================================================================
--- branches/Version-1_0-branch/property/inc/class.sodocument.inc.php
2011-09-16 11:22:59 UTC (rev 7636)
+++ branches/Version-1_0-branch/property/inc/class.sodocument.inc.php
2011-09-16 11:24:14 UTC (rev 7637)
@@ -174,7 +174,7 @@
$this->cols_extra =
$this->bocommon->fm_cache('cols_extra_document_' . $entity_id);
}
- $groupmethod= " GROUP BY fm_document.location_code";
+ $groupmethod= " GROUP BY fm_document.location_code,
fm_location1.loc1_name";
if ($entity_id)
{
Modified: branches/Version-1_0-branch/property/inc/class.solocation.inc.php
===================================================================
--- branches/Version-1_0-branch/property/inc/class.solocation.inc.php
2011-09-16 11:22:59 UTC (rev 7636)
+++ branches/Version-1_0-branch/property/inc/class.solocation.inc.php
2011-09-16 11:24:14 UTC (rev 7637)
@@ -1617,6 +1617,8 @@
$sql =
$this->bocommon->generate_sql(array('entity_table'=>$entity_table,'cols_return'=>$cols_return,'cols'=>$cols,
'uicols'=>$uicols,'joinmethod'=>$joinmethod,'paranthesis'=>$paranthesis,'no_address'=>true,'location_level'=>$type_id));
+ $sql = str_replace(',fm_location1.loc1_name', '', $sql);
+
$this->db->query($sql . $filtermethod . $groupmethod .
" ORDER BY $entity_table.category",__LINE__,__FILE__);
$summary = array();
Modified: branches/Version-1_0-branch/property/setup/phpgw_no.lang
===================================================================
--- branches/Version-1_0-branch/property/setup/phpgw_no.lang 2011-09-16
11:22:59 UTC (rev 7636)
+++ branches/Version-1_0-branch/property/setup/phpgw_no.lang 2011-09-16
11:24:14 UTC (rev 7637)
@@ -1250,7 +1250,7 @@
priority key property no Prioriteringsnøkkel
priority keys has been updated property no prioriteringsnøkkel er
oppdatert
prizing property no Priser
-probability property no Sansynlighet
+probability property no Sannsynlighet
project property no prosjekt
.project property no Prosjekt
project.workorder property no Prosjekt::Bestilling
@@ -1450,7 +1450,7 @@
select the agreement this activity belongs to. property no velg
avtale denne aktiviteten tilhører
select the appropriate condition degree property no velg
tilstandsgrad
select the appropriate consequence by breakdown of this component for this
theme property no velg konsekvens ved sammenbrudd av
dennekomponenten for dette temaet
-select the appropriate propability for worsening of the condition
property no velg sansynlighet for forverring
+select the appropriate propability for worsening of the condition
property no velg sannsynlighet for forverring
select the appropriate tax code property no velg mva-kode
select the branches for this project property no velg fag for
dette prosjektet
select the branches for this request property no velg fag for
denne anmodningen
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [7637] Merge 7626:7636 from trunk,
Sigurd Nes <=