fmsystem-commits
[Top][All Lists]
Advanced

[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(/&amp;/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(/&amp;/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(/&amp;/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(/&amp;/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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]