fmsystem-commits
[Top][All Lists]
Advanced

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

[Fmsystem-commits] [12419] add option for disable pagination and search


From: Sigurd Nes
Subject: [Fmsystem-commits] [12419] add option for disable pagination and search - as well as enable client-side data for inline tables
Date: Thu, 04 Dec 2014 19:36:08 +0000

Revision: 12419
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=12419
Author:   sigurdne
Date:     2014-12-04 19:36:07 +0000 (Thu, 04 Dec 2014)
Log Message:
-----------
add option for disable pagination and search - as well as enable client-side 
data for inline tables

Modified Paths:
--------------
    branches/dev-syncromind/phpgwapi/inc/sso/include_login.inc.php
    branches/dev-syncromind/phpgwapi/js/jquery/common.js
    branches/dev-syncromind/property/inc/class.uitts.inc.php
    branches/dev-syncromind/property/templates/base/tts.xsl

Added Paths:
-----------
    branches/dev-syncromind/property/js/portico/tts.add.js
    branches/dev-syncromind/property/js/portico/tts.view.js

Modified: branches/dev-syncromind/phpgwapi/inc/sso/include_login.inc.php
===================================================================
--- branches/dev-syncromind/phpgwapi/inc/sso/include_login.inc.php      
2014-12-03 23:26:41 UTC (rev 12418)
+++ branches/dev-syncromind/phpgwapi/inc/sso/include_login.inc.php      
2014-12-04 19:36:07 UTC (rev 12419)
@@ -442,7 +442,14 @@
                        {
                                $onload = <<<JS
                                        <script language="javascript" 
type="text/javascript">
-                                               parent.lightbox_login.hide();
+                                               
if(typeof(parent.lightbox_login) != 'undefined')
+                                               {
+                                                       
parent.lightbox_login.hide();
+                                               }
+                                               else
+                                               {
+                                                       parent.TINY.box.hide();
+                                               }
                                        </script>
 JS;
                        }

Modified: branches/dev-syncromind/phpgwapi/js/jquery/common.js
===================================================================
--- branches/dev-syncromind/phpgwapi/js/jquery/common.js        2014-12-03 
23:26:41 UTC (rev 12418)
+++ branches/dev-syncromind/phpgwapi/js/jquery/common.js        2014-12-04 
19:36:07 UTC (rev 12419)
@@ -87,7 +87,7 @@
        return '<a id="' + link + '" onclick="searchData(this.id);">' + name + 
'</a>';
 };
 
-JqueryPortico.formatCheck = function(key, oData) {
+JqueryPortico.formatCheck = function(key, oDakta) {
        var checked = '';
        var hidden = '';
        if(oData['responsible_item'])
@@ -126,19 +126,37 @@
        return "<div class='nowrap' align=\"right\">"+amount+"</div>";
 };
 
-JqueryPortico.inlineTableHelper = function(container, ajax_url, columns, 
options, disablePagination) {
+JqueryPortico.inlineTableHelper = function(container, ajax_url, columns, 
options, data) {
 
+       options = options || {};
+       var disablePagination   = options['disablePagination'] || false;
+       var disableFilter               = options['disableFilter'] || false;
+
+       data = data || {};
+
+       if (Object.keys(data).length == 0)
+       {
+               var ajax_def = {url: ajax_url,type: 'GET'};
+               var serverSide_def = true;
+       }
+       else
+       {
+               var ajax_def = false;
+               var serverSide_def = false;
+       }
+
        $(document).ready(function ()
        {
                oTable = $("#" + container).DataTable({
+                       paginate:               disablePagination ? false : 
true,
+                       filter:                 disableFilter ? false : true,
+                       info:                   disableFilter ? false : true,
                        processing:             true,
-                       serverSide:             true,
+                       serverSide:             serverSide_def,
                        responsive:             true,
                        deferRender:    true,
-                       ajax: {
-                               url: ajax_url,
-                               type: 'GET'
-                       },
+                       data:                   data,
+                       ajax:                   ajax_def,
                        fnInitComplete: function (oSettings, json)
                        {
                                JqueryPortico.inlineTablesRendered += 1;
@@ -238,3 +256,10 @@
                        TINY.box.hide();
                }
        }
+
+       JqueryPortico.lightboxlogin = function()
+       {
+               var oArgs = {lightbox:1};
+               var strURL = phpGWLink('login.php', oArgs);
+               TINY.box.show({iframe:strURL, 
boxid:'frameless',width:$(window).width(),height:400,fixed:false,maskid:'darkmask',maskopacity:40,
 mask:true, animate:true, close: false,closejs:false});
+       }

Modified: branches/dev-syncromind/property/inc/class.uitts.inc.php
===================================================================
--- branches/dev-syncromind/property/inc/class.uitts.inc.php    2014-12-03 
23:26:41 UTC (rev 12418)
+++ branches/dev-syncromind/property/inc/class.uitts.inc.php    2014-12-04 
19:36:07 UTC (rev 12419)
@@ -2325,7 +2325,9 @@
                        $appname                                        = 
lang('helpdesk');
                        $function_msg                                   = 
lang('add ticket');
 
-                       $GLOBALS['phpgw']->js->validate_file( 'yahoo', 
'tts.add', 'property' );
+//                     $GLOBALS['phpgw']->js->validate_file( 'yahoo', 
'tts.add', 'property' );
+                       self::add_javascript('property', 'portico', 
'tts.add.js');
+
                        $this->_insert_custom_js();
                        $GLOBALS['phpgw_info']['flags']['app_header'] = 
lang('property') . ' - ' . $appname . ': ' . $function_msg;
                        
$GLOBALS['phpgw']->xslttpl->add_file(array('tts','files','attributes_form'));
@@ -3177,7 +3179,7 @@
 
                        if($access_order)
                        {
-                               $note_def[] = array('key' => 
'order_text','label'=>lang('order 
text'),'sortable'=>false,'resizeable'=>true,'formatter'=>'FormatterCenter');
+                               $note_def[] = array('key' => 
'order_text','label'=>lang('order text'),'sortable'=>false,'resizeable'=>true, 
'formatter'=>'FormatterCenter');
                                foreach($additional_notes as &$note)
                                {
                                        $note['order_text'] = '<input 
type="checkbox" name="values[order_text][]" value="'.$note['value_note'].'" 
title="'.lang('Check to add text to order').'">';
@@ -3186,7 +3188,7 @@
 
                        
if($GLOBALS['phpgw_info']['apps']['frontend']['enabled'])
                        {
-                               $note_def[] = array('key' => 
'publish_note','label'=>lang('publish 
text'),'sortable'=>false,'resizeable'=>true,'formatter'=>'FormatterCenter');    
             
+                               $note_def[] = array('key' => 
'publish_note','label'=>lang('publish 
text'),'sortable'=>false,'resizeable'=>true, 'formatter'=>'FormatterCenter');
                                foreach($additional_notes as &$note)
                                {
                                        $_checked = $note['value_publish'] ? 
'checked' : '';
@@ -3199,7 +3201,16 @@
                                $note['value_note'] = 
nl2br($note['value_note']);
                        }
 
+                       $datatable_def = array();
 
+                       $datatable_def[] = array
+                       (
+                               'container'             => 
'datatable-container_0',
+                               'requestUrl'    => 
json_encode(self::link(array('menuaction' => 'property.uitts.get_note', 'id' => 
$id,'phpgw_return_as'=>'json'))),
+                               'ColumnDefs'    => $note_def,
+                               'data'                  => 
json_encode($additional_notes)
+                       );
+
                        //_debug_Array($additional_notes);die();
                        //---datatable 
settings---------------------------------------------------      
                        $datavalues[0] = array
@@ -3411,6 +3422,7 @@
 
                        $data = array
                                (
+                                       'datatable_def'                         
        => $datatable_def,
                                        'custom_attributes'                     
        => array('attributes' => $ticket['attributes']),
                                        'lookup_functions'                      
        => isset($ticket['lookup_functions'])?$ticket['lookup_functions']:'',
                                        'send_response'                         
        => isset($this->bo->config->config_data['tts_send_response']) ? 
$this->bo->config->config_data['tts_send_response'] : '',
@@ -3545,7 +3557,9 @@
                        
$GLOBALS['phpgw']->css->add_external_file('phpgwapi/js/yahoo/datatable/assets/skins/sam/datatable.css');
                        
$GLOBALS['phpgw']->css->add_external_file('phpgwapi/js/yahoo/paginator/assets/skins/sam/paginator.css');
                        
$GLOBALS['phpgw']->css->add_external_file('phpgwapi/js/yahoo/container/assets/skins/sam/container.css');
-                       $GLOBALS['phpgw']->js->validate_file( 'yahoo', 
'tts.view', 'property' );
+//                     $GLOBALS['phpgw']->js->validate_file( 'yahoo', 
'tts.view', 'property' );
+                       self::add_javascript('property', 'portico', 
'tts.view.js');
+
                        $this->_insert_custom_js();
                        //-----------------------datatable settings---
 

Added: branches/dev-syncromind/property/js/portico/tts.add.js
===================================================================
--- branches/dev-syncromind/property/js/portico/tts.add.js                      
        (rev 0)
+++ branches/dev-syncromind/property/js/portico/tts.add.js      2014-12-04 
19:36:07 UTC (rev 12419)
@@ -0,0 +1,38 @@
+       this.confirm_session = function(action)
+       {
+               var oArgs = {menuaction:'property.bocommon.confirm_session'};
+               var strURL = phpGWLink('index.php', oArgs, true);
+
+               $.ajax({
+                       type: 'POST',
+                       dataType: 'json',
+                       url: strURL,
+                       success: function(data) {
+                               if( data != null)
+                               {
+                                       if(data['sessionExpired'] == true)
+                                       {
+                                               window.alert('sessionExpired - 
please log in');
+                                               
JqueryPortico.lightboxlogin();//defined in common.js
+                                       }
+                                       else
+                                       {
+                                               
document.getElementById(action).value = 1;
+                                               try
+                                               {
+                                                       validate_submit();
+                                               }
+                                               catch (e)
+                                               {
+                                                       document.form.submit();
+                                               }
+                                       }
+                               }
+                       },
+                       failure: function(o)
+                       {
+                               window.alert('failure - try again - once')
+                       },
+                       timeout: 5000
+               });
+       }

Copied: branches/dev-syncromind/property/js/portico/tts.view.js (from rev 
12418, branches/dev-syncromind/property/js/yahoo/tts.view.js)
===================================================================
--- branches/dev-syncromind/property/js/portico/tts.view.js                     
        (rev 0)
+++ branches/dev-syncromind/property/js/portico/tts.view.js     2014-12-04 
19:36:07 UTC (rev 12419)
@@ -0,0 +1,229 @@
+var    myPaginator_0, myDataTable_0
+var    myPaginator_1, myDataTable_1;
+var    myPaginator_2, myDataTable_2;
+var    myPaginator_3, myDataTable_3;
+var    myPaginator_4, myDataTable_4;
+var    myPaginator_5, myDataTable_5;
+var d;
+var vendor_id = 0;
+
+/********************************************************************************/
+this.myParticularRenderEvent = function()
+{
+       this.addFooterDatatable(myPaginator_4,myDataTable_4);
+}
+
+this.addFooterDatatable = function(paginator,datatable)
+{
+       //call getSumPerPage(name of column) in property.js
+       tmp_sum1 = getTotalSum('amount',2,paginator,datatable);
+
+       if(typeof(tableYUI)=='undefined')
+       {
+               tableYUI = 
YAHOO.util.Dom.getElementsByClassName("yui-dt-data","tbody")[2].parentNode;
+               tableYUI.setAttribute("id","tableYUI");
+       }
+       else
+       {
+               tableYUI.deleteTFoot();
+       }
+
+       //Create ROW
+       newTR = document.createElement('tr');
+
+       td_sum('Sum');
+       td_sum(tmp_sum1);
+       td_empty(1);
+
+       myfoot = tableYUI.createTFoot();
+       myfoot.setAttribute("id","myfoot");
+       myfoot.appendChild(newTR);
+}
+
+/********************************************************************************/
     
+var FormatterCenter = function(key, oData)
+{
+
+       return "<center>"+oData[key]+"</center>";
+}
+
+var FormatterAmount2 = function(elCell, oRecord, oColumn, oData)
+{
+       var amount = YAHOO.util.Number.format(oData, {decimalPlaces:2, 
decimalSeparator:",", thousandsSeparator:" "});
+       elCell.innerHTML = "<div align=\"right\">"+amount+"</div>";
+}
+
+ 
/********************************************************************************/
+
+       this.confirm_session = function(action)
+       {
+               var oArgs = {menuaction:'property.bocommon.confirm_session'};
+               var strURL = phpGWLink('index.php', oArgs, true);
+
+               $.ajax({
+                       type: 'POST',
+                       dataType: 'json',
+                       url: strURL,
+                       success: function(data) {
+                               if( data != null)
+                               {
+                                       if(data['sessionExpired'] == true)
+                                       {
+                                               window.alert('sessionExpired - 
please log in');
+                                               
JqueryPortico.lightboxlogin();//defined in common.js
+                                       }
+                                       else
+                                       {
+                                               
document.getElementById(action).value = 1;
+                                               try
+                                               {
+                                                       validate_submit();
+                                               }
+                                               catch (e)
+                                               {
+                                                       document.form.submit();
+                                               }
+                                       }
+                               }
+                       },
+                       failure: function(o)
+                       {
+                               window.alert('failure - try again - once')
+                       },
+                       timeout: 5000
+               });
+       }
+
+
+       function SmsCountKeyUp(maxChar)
+       {
+               var msg  = 
document.getElementsByName("values[response_text]")[0];
+           var left = document.forms.form.charNumberLeftOutput;
+           var smsLenLeft = maxChar  - msg.value.length;
+           if (smsLenLeft >= 0) 
+           {
+                       left.value = smsLenLeft;
+           } 
+           else 
+           {
+                       var msgMaxLen = maxChar;
+                       left.value = 0;
+                       msg.value = msg.value.substring(0, msgMaxLen);
+           }
+       }
+
+       function SmsCountKeyDown(maxChar)
+       {
+               var msg  = 
document.getElementsByName("values[response_text]")[0];
+           var left = document.forms.form.charNumberLeftOutput;
+           var smsLenLeft = maxChar  - msg.value.length;
+           if (smsLenLeft >= 0) 
+           {
+                       left.value = smsLenLeft;
+           } 
+           else 
+           {
+                       var msgMaxLen = maxChar;
+                       left.value = 0; 
+                       msg.value = msg.value.substring(0, msgMaxLen);
+           }
+       }
+
+
+
+       this.fetch_vendor_email=function()
+       {
+//             formObject = document.body.getElementsByTagName('form');
+//             YAHOO.util.Connect.setForm(formObject[0]);//First form
+               if(document.getElementById('vendor_id').value)
+               {
+                       base_java_url['vendor_id'] = 
document.getElementById('vendor_id').value;
+               }
+
+               if(document.getElementById('vendor_id').value != vendor_id)
+               {
+                       base_java_url['action'] = 'get_vendor';
+                       execute_async(myDataTable_3);
+                       vendor_id = document.getElementById('vendor_id').value;
+               }
+       }
+
+
+       this.onDOMAttrModified = function(e)
+       {
+               var attr = e.attrName || e.propertyName
+               var target = e.target || e.srcElement;
+               if (attr.toLowerCase() == 'vendor_id')
+               {
+                       fetch_vendor_email();
+               }
+       }
+
+       this.fileuploader = function()
+       {
+               var sUrl = phpGWLink('index.php', fileuploader_action);
+               var onDialogShow = function(e, args, o)
+               {
+                       var frame = document.createElement('iframe');
+                       frame.src = sUrl;
+                       frame.width = "100%";
+                       frame.height = "400";
+                       o.setBody(frame);
+               };
+               lightbox.showEvent.subscribe(onDialogShow, lightbox);
+               lightbox.show();
+       }
+
+       this.refresh_files = function()
+       {
+               base_java_url['action'] = 'get_files';
+               execute_async(myDataTable_2);
+       }
+
+YAHOO.util.Event.addListener(window, "load", function()
+{
+               lightbox = new YAHOO.widget.Dialog("lightbox-placeholder",
+               {
+                       width : "600px",
+                       fixedcenter : true,
+                       visible : false,
+                       modal : false
+                       //draggable: true,
+                       //constraintoviewport : true
+               });
+
+               lightbox.render();
+
+               YAHOO.util.Dom.setStyle('lightbox-placeholder', 'display', 
'block');
+});
+
+
+YAHOO.util.Event.addListener(window, "load", function()
+{
+       loader = new YAHOO.util.YUILoader();
+       loader.addModule({
+               name: "anyone",
+               type: "js",
+           fullpath: property_js
+           });
+
+       loader.require("anyone");
+    loader.insert();
+});
+
+YAHOO.util.Event.addListener(window, "load", function()
+{
+       d = document.getElementById('vendor_id');
+       if(d)
+       {
+               if (d.attachEvent)
+               {
+                       d.attachEvent('onpropertychange', onDOMAttrModified, 
false);
+               }
+               else
+               {
+                       d.addEventListener('DOMAttrModified', 
onDOMAttrModified, false);
+               }
+       }
+});
+

Modified: branches/dev-syncromind/property/templates/base/tts.xsl
===================================================================
--- branches/dev-syncromind/property/templates/base/tts.xsl     2014-12-03 
23:26:41 UTC (rev 12418)
+++ branches/dev-syncromind/property/templates/base/tts.xsl     2014-12-04 
19:36:07 UTC (rev 12419)
@@ -387,8 +387,18 @@
                                                                        <!--  
DATATABLE 0-->
                                                                        <td>
                                                                                
<div id="paging_0"/>
-                                                                               
<div class="pure-table" id="datatable-container_0"/>
+                                                                               
<!--div class="pure-table" id="datatable-container_0"/-->
                                                                        </td>
+                                                                               
<xsl:for-each select="datatable_def">
+                                                                               
                <xsl:if test="container = 'datatable-container_0'">
+                                                                               
                        <xsl:call-template name="table_setup">
+                                                                               
                          <xsl:with-param name="container" select ='container'/>
+                                                                               
                          <xsl:with-param name="requestUrl" select 
='requestUrl' />
+                                                                               
                          <xsl:with-param name="ColumnDefs" select 
='ColumnDefs' />
+                                                                               
                          <xsl:with-param name="data" select ='data' />
+                                                                               
                        </xsl:call-template>
+                                                                               
                </xsl:if>
+                                                                               
</xsl:for-each>
                                                                </div>
                                                        </xsl:otherwise>
                                                </xsl:choose>
@@ -1180,3 +1190,87 @@
                </td>
        </tr>
 </xsl:template>
+
+       <xsl:template name="table_setup">
+               <xsl:param name="container" />
+               <xsl:param name="requestUrl" />
+               <xsl:param name="ColumnDefs" />
+               <xsl:param name="data" />
+               <table id="{$container}" class="display cell-border compact 
responsive no-wrap" width="100%">
+                       <thead>
+                               <tr>
+                                       <xsl:for-each select="$ColumnDefs">
+                                               <xsl:choose>
+                                                       <xsl:when test="hidden">
+                                                               <xsl:if 
test="hidden =0">
+                                                                       <th>
+                                                                               
<xsl:value-of select="label"/>
+                                                                       </th>
+                                                                       
</xsl:if>
+                                                       </xsl:when>
+                                                       <xsl:otherwise>
+                                                               <th>
+                                                                       
<xsl:value-of select="label"/>
+                                                               </th>
+                                                       </xsl:otherwise>
+                                               </xsl:choose>
+                                       </xsl:for-each>
+                               </tr>
+                       </thead>
+               </table>
+               <script>
+                       JqueryPortico.inlineTablesDefined += 1;
+                       var PreColumns = [
+                                       <xsl:for-each select="$ColumnDefs">
+                                       {
+                                               data:                   
"<xsl:value-of select="key"/>",
+                                               class:                  
"<xsl:value-of select="className"/>",
+                                               orderable:              
<xsl:value-of select="phpgw:conditional(not(sortable = 0), 'true', 'false')"/>,
+                                               <xsl:choose>
+                                                       <xsl:when test="hidden">
+                                                               <xsl:if 
test="hidden =0">
+                                                                       visible 
                :true,
+                                                               </xsl:if>
+                                                               <xsl:if 
test="hidden =1">
+                                                                       class:  
                'none',
+                                                                       visible 
                :false,
+                                                               </xsl:if>
+                                                       </xsl:when>
+                                                       <xsl:otherwise>
+                                                                       visible 
                :true,
+                                                       </xsl:otherwise>
+                                               </xsl:choose>
+                                               <xsl:if test="formatter">
+                                                render: function (dummy1, 
dummy2, oData) {
+                                                               try {
+                                                                       var ret 
= <xsl:value-of select="formatter"/>("<xsl:value-of select="key"/>", oData);
+                                                               }
+                                                               catch(err) {
+                                                                       return 
err.message;
+                                                               }
+                                                               return ret;
+                                                        },
+
+                                               </xsl:if>
+                                               defaultContent: "<xsl:value-of 
select="defaultContent"/>"
+                                       }<xsl:value-of 
select="phpgw:conditional(not(position() = last()), ',', '')"/>
+                               </xsl:for-each>
+                       ];
+       <![CDATA[
+                       columns = [];
+
+                       for(i=0;i < PreColumns.length;i++)
+                       {
+                               if ( PreColumns[i]['visible'] == true )
+                               {
+                                       columns.push(PreColumns[i]);
+                               }
+                       }
+       ]]>
+                       var options = {disablePagination:true, 
disableFilter:true};
+
+                       JqueryPortico.inlineTableHelper("<xsl:value-of 
select="$container"/>", <xsl:value-of select="$requestUrl"/>, columns, options, 
<xsl:value-of select="$data"/>);
+
+               </script>
+
+       </xsl:template>
\ No newline at end of file




reply via email to

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