fmsystem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fmsystem-commits] [14715] editable inline tables


From: Sigurd Nes
Subject: [Fmsystem-commits] [14715] editable inline tables
Date: Tue, 09 Feb 2016 20:42:15 +0000

Revision: 14715
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=14715
Author:   sigurdne
Date:     2016-02-09 20:41:31 +0000 (Tue, 09 Feb 2016)
Log Message:
-----------
editable inline tables

Modified Paths:
--------------
    branches/dev-syncromind/rental/inc/class.uicontract.inc.php
    branches/dev-syncromind/rental/inc/class.uiprice_item.inc.php
    branches/dev-syncromind/rental/js/rental/contract.edit.js

Modified: branches/dev-syncromind/rental/inc/class.uicontract.inc.php
===================================================================
--- branches/dev-syncromind/rental/inc/class.uicontract.inc.php 2016-02-09 
20:38:22 UTC (rev 14714)
+++ branches/dev-syncromind/rental/inc/class.uicontract.inc.php 2016-02-09 
20:41:31 UTC (rev 14715)
@@ -443,26 +443,17 @@
                private function _get_tableDef_price($mode, $contract_id)
                {
                        $columns_def = array(
-                               array('key' => 'agresso_id', 'label' => 
lang('agresso_id'), 'className' => '',
-                                       'sortable' => true, 'hidden' => false),
-                               array('key' => 'title', 'label' => 
lang('name'), 'className' => '', 'sortable' => true,
-                                       'hidden' => false),
-                               array('key' => 'is_area', 'label' => 
lang('title'), 'className' => '', 'sortable' => true,
-                                       'hidden' => false),
-                               array('key' => 'price', 'label' => 
lang('price'), 'sortable' => false, 'hidden' => false,
-                                       'formatter' => 'formatterPrice', 
'className' => 'right'),
-                               array("key" => "area", "label" => lang('area'), 
"formatter" => "formatterArea",
-                                       'className' => 'right'),
-                               array("key" => "count", "label" => 
lang('count')),
-                               array("key" => "total_price", "label" => 
lang('total_price'), 'formatter' => 'formatterPrice',
-                                       'className' => 'right'),
-                               array("key" => "date_start", "label" => 
lang('date_start'), 'formatter' => 'formatterDateStart_price_item',
-                                       'className' => 'center'),
-                               array("key" => "date_end", "label" => 
lang('date_end'), 'formatter' => 'formatterDateEnd_price_item',
-                                       'className' => 'center'),
-                               array("key" => "is_one_time", "label" => 
lang('is_one_time'), 'className' => 'center'),
-                               array("key" => "price_type_title", "label" => 
lang('type'), 'sortable' => false,
-                                       'className' => 'center')
+                               array('key' => 'agresso_id', 'label' => 
lang('agresso_id'), 'className' => '',  'sortable' => true, 'hidden' => false),
+                               array('key' => 'title', 'label' => 
lang('name'), 'className' => '', 'sortable' => true, 'hidden' => false, 
'editor'=> true),
+                               array('key' => 'is_area', 'label' => 
lang('title'), 'className' => '', 'sortable' => true,      'hidden' => false),
+                               array('key' => 'price', 'label' => 
lang('price'), 'sortable' => false, 'hidden' => false,'formatter' => 
'formatterPrice', 'className' => 'right', 'editor'=> true),
+                               array("key" => "area", "label" => lang('area'), 
"formatter" => "formatterArea", 'className' => 'right'),
+                               array("key" => "count", "label" => 
lang('count'), 'editor'=> true),
+                               array("key" => "total_price", "label" => 
lang('total_price'), 'formatter' => 'formatterPrice',  'className' => 'right'),
+                               array("key" => "date_start", "label" => 
lang('date_start'), 'formatter' => 'formatterDateStart_price_item',     
'className' => 'center'),
+                               array("key" => "date_end", "label" => 
lang('date_end'), 'formatter' => 'formatterDateEnd_price_item','className' => 
'center'),
+                               array("key" => "is_one_time", "label" => 
lang('is_one_time'), 'formatter' => 'formatterIs_one_time', 'className' => 
'center'),
+                               array("key" => "price_type_title", "label" => 
lang('type'), 'sortable' => false,'className' => 'center')
                        );
 
                        if($mode == 'edit')
@@ -509,7 +500,8 @@
                                        'ColumnDefs' => $columns_def,
                                        'tabletools' => $tabletools_price1,
                                        'config' => array(
-                                               array('disableFilter' => true)
+                                               array('disableFilter' => true),
+                                               array('editor_action' => 
self::link(array('menuaction' => 'rental.uiprice_item.set_value')))
                                        )
                                );
 

Modified: branches/dev-syncromind/rental/inc/class.uiprice_item.inc.php
===================================================================
--- branches/dev-syncromind/rental/inc/class.uiprice_item.inc.php       
2016-02-09 20:38:22 UTC (rev 14714)
+++ branches/dev-syncromind/rental/inc/class.uiprice_item.inc.php       
2016-02-09 20:41:31 UTC (rev 14715)
@@ -386,22 +386,33 @@
                                return;
                        }
 
-                       $field   = phpgw::get_var('field');
+                       $field_name      = phpgw::get_var('field_name');
                        $value   = phpgw::get_var('value');
                        $id              = phpgw::get_var('id');
 
+                       switch($field_name)
+                       {
+                               case 'date_start':
+                               case 'date_end':
+                                       $value =  
phpgwapi_datetime::date_to_timestamp(phpgw::get_var('value'));
+                                       break;
+                               default:
+                                       $value   = phpgw::get_var('value');
+                                       break;
+                       }
+
                        $price_item      = 
rental_socontract_price_item::get_instance()->get_single($id);
-                       $price_item->set_field($field, 
phpgwapi_datetime::date_to_timestamp($value));
+                       $price_item->set_field($field_name, $value);
                        $result          = 
rental_socontract_price_item::get_instance()->store($price_item);
 
                        $message = array();
                        if($result)
                        {
-                               $message['message'][] = array('msg' => 
lang('date has been saved'));
+                               $message['message'][] = array('msg' => 
lang('data has been saved'));
                        }
                        else
                        {
-                               $message['error'][] = array('msg' => lang('date 
has not been saved'));
+                               $message['error'][] = array('msg' => lang('data 
has not been saved'));
                        }
 
                        return $message;

Modified: branches/dev-syncromind/rental/js/rental/contract.edit.js
===================================================================
--- branches/dev-syncromind/rental/js/rental/contract.edit.js   2016-02-09 
20:38:22 UTC (rev 14714)
+++ branches/dev-syncromind/rental/js/rental/contract.edit.js   2016-02-09 
20:41:31 UTC (rev 14715)
@@ -33,7 +33,7 @@
 
        var data = {};
        data['id'] = arr[1];
-       data['field'] = arr[0];
+       data['field_name'] = arr[0];
        data['value'] = value;
 
        var requestUrl = phpGWLink('index.php', oArgs_request, true);
@@ -46,7 +46,38 @@
 
        }, data, 'POST', 'JSON');
 }
+function changeOne_time_price_item(param, value)
+{
+       var oArgs_request = {menuaction: 'rental.uiprice_item.set_value'};
+       var arr = param.split('__');
 
+       var data = {};
+       data['id'] = arr[1];
+       data['field_name'] = arr[0];
+       if(value == "false")
+       {
+               data['value'] = true;
+       }
+       else
+       {
+               data['value'] = false;
+       }
+
+       var requestUrl = phpGWLink('index.php', oArgs_request, true);
+
+       JqueryPortico.execute_ajax(requestUrl, function (result) {
+
+               var message = result.message[0]['msg'];
+               alert(message);
+               JqueryPortico.show_message(5, result);
+
+               oTable5.fnDraw();
+
+       }, data, 'POST', 'JSON');
+}
+
+
+
 setDatePicker_price_item = function ()
 {
        var date_start = $('.date_start');
@@ -106,6 +137,20 @@
        });
 };
 
+setOne_price_item = function ()
+{
+       var one_time = $('.one_time');
+
+       one_time.each(function (i, obj)
+       {
+               $("#" + obj.id).on('change', function ()
+               {
+                       changeOne_time_price_item(obj.id, $(this).val());
+               });
+       });
+
+};
+
 function formatterDateStart_price_item(key, oData)
 {
        var name = 'date_start__' + oData['id'];
@@ -118,6 +163,17 @@
        return '<input id="' + name + '" class="date_end" name="' + name + '" 
size="10" value="' + oData[key] + '" type="text" readonly="readonly"></input>';
 }
 
+function formatterIs_one_time(key, oData)
+{
+       var name = 'is_one_time__' + oData['id'];
+       var checked = '';
+       if (oData[key] == true)
+       {
+               checked = 'checked="checked"';
+       }
+       return '<input id="' + name + '" class="one_time" name="' + name + '" 
size="10" value="' + oData[key] + '" type="checkbox" ' + checked + '></input>';
+}
+
 $(document).ready(function ()
 {
        $("#date_start").change(function () {
@@ -270,6 +326,7 @@
 
                        var api = oTable5.api();
                        api.on('draw', setDatePicker_price_item);
+                       api.on('draw', setOne_price_item);
 
                        
oTable6.dataTableSettings[6]['oFeatures']['bServerSide'] = true;
                        oTable6.dataTableSettings[6]['ajax'] = {url: 
link_not_included_price_items, data: {}, type: 'GET'};




reply via email to

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