fmsystem-commits
[Top][All Lists]
Advanced

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

[Fmsystem-commits] [12005] property: custom js


From: Sigurd Nes
Subject: [Fmsystem-commits] [12005] property: custom js
Date: Wed, 04 Jun 2014 13:37:30 +0000

Revision: 12005
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=12005
Author:   sigurdne
Date:     2014-06-04 13:37:28 +0000 (Wed, 04 Jun 2014)
Log Message:
-----------
property: custom js

Modified Paths:
--------------
    trunk/admin/inc/class.ui_custom.inc.php
    trunk/admin/templates/base/custom.xsl
    trunk/phpgwapi/js/yui3/datatable.js
    trunk/property/inc/class.botts.inc.php
    trunk/property/inc/class.menu.inc.php
    trunk/property/inc/class.uitts.inc.php
    trunk/property/inc/custom/default/ticket_NLSH_validate.js
    trunk/property/js/yahoo/tts.view.js
    trunk/property/templates/base/tts.xsl

Modified: trunk/admin/inc/class.ui_custom.inc.php
===================================================================
--- trunk/admin/inc/class.ui_custom.inc.php     2014-06-04 06:50:29 UTC (rev 
12004)
+++ trunk/admin/inc/class.ui_custom.inc.php     2014-06-04 13:37:28 UTC (rev 
12005)
@@ -479,6 +479,7 @@
                                                'descr'                         
                => $entry['descr'],
                                                'sorting'                       
                => $entry['sorting'],
                                                'active'                        
                => $entry['active']?'X':'',
+                                               'client_side'                   
        => $entry['client_side']?'X':'',
                                                'link_up'                       
                => $GLOBALS['phpgw']->link('/index.php',array
                                                                                
                                (
                                                                                
                                        'menuaction'            => 
'admin.ui_custom.list_custom_function',
@@ -532,6 +533,7 @@
                        (
                                'lang_descr'            => lang('Descr'),
                                'lang_active'           => lang('Active'),
+                               'lang_client_side'      => lang('client side'),
                                'lang_sorting'          => lang('sorting'),
                                'lang_search'           => lang('search'),
                                'lang_edit'                     => lang('edit'),
@@ -740,6 +742,7 @@
                                'custom_function_list'                          
=> 
$this->bo->select_custom_function(isset($values['custom_function_file'])?$values['custom_function_file']:'',$appname),
 
                                'value_active'                                  
        => isset($values['active'])?$values['active']:'',
+                               'value_client_side'                             
        => $values['client_side'],
                                'lang_active'                                   
        => lang('Active'),
                                'lang_active_statustext'                        
=> lang('check to activate custom function'),
                        );

Modified: trunk/admin/templates/base/custom.xsl
===================================================================
--- trunk/admin/templates/base/custom.xsl       2014-06-04 06:50:29 UTC (rev 
12004)
+++ trunk/admin/templates/base/custom.xsl       2014-06-04 13:37:28 UTC (rev 
12005)
@@ -544,6 +544,9 @@
                                <xsl:value-of select="lang_descr"/>
                        </td>
                        <td class="th_text" width="5%" align="center">
+                               <xsl:value-of select="lang_client_side"/>
+                       </td>
+                       <td class="th_text" width="5%" align="center">
                                <xsl:value-of select="lang_active"/>
                        </td>
                        <td class="th_text" width="10%" align="center">
@@ -584,6 +587,9 @@
                                        <xsl:value-of select="descr"/>
                                </td>
                                <td align = 'center'>
+                                       <xsl:value-of select="client_side"/>
+                               </td>
+                               <td align = 'center'>
                                        <xsl:value-of select="active"/>
                                </td>
                                <td>
@@ -618,7 +624,7 @@
 
 <!-- add custom_function / edit custom_function -->
 
-       <xsl:template match="edit_custom_function">
+       <xsl:template match="edit_custom_function" 
xmlns:php="http://php.net/xsl";>
                <div align="left">
                
                <table cellpadding="2" cellspacing="2" width="80%" 
align="center">
@@ -716,6 +722,23 @@
                                        </xsl:choose>
                                </td>
                        </tr>
+                                       <tr>
+                                               <td>
+                                                       <xsl:value-of 
select="php:function('lang', 'client-side')"/>
+                                               </td>
+                                               <td>
+                                                       <input type="checkbox" 
name="values[client_side]" value="1">
+                                                               <xsl:attribute 
name="title">
+                                                                       
<xsl:text>otherwise: server-side</xsl:text>
+                                                               </xsl:attribute>
+                                                               <xsl:if 
test="value_client_side = '1'">
+                                                                       
<xsl:attribute name="checked">
+                                                                               
<xsl:text>checked</xsl:text>
+                                                               </xsl:attribute>
+                                                               </xsl:if>
+                                                       </input>
+                                               </td>
+                                       </tr>
                        <tr height="50">
                                <td>
                                        <xsl:variable 
name="lang_save"><xsl:value-of select="lang_save"/></xsl:variable>

Modified: trunk/phpgwapi/js/yui3/datatable.js
===================================================================
--- trunk/phpgwapi/js/yui3/datatable.js 2014-06-04 06:50:29 UTC (rev 12004)
+++ trunk/phpgwapi/js/yui3/datatable.js 2014-06-04 13:37:28 UTC (rev 12005)
@@ -1,11 +1,9 @@
 YAHOO.portico.setupToolbar = function() {
        YAHOO.portico.renderUiFormItems('toolbar');
 };
-
 YAHOO.portico.setupListActions = function() {
        YAHOO.portico.renderUiFormItems('list_actions');
 };
-
 YAHOO.portico.renderUiFormItems = function(container) {
        var items = YAHOO.util.Dom.getElementsBy(function() {
                return true;
@@ -22,7 +20,6 @@
                }
        }
 };
-
 YAHOO.portico.setupPaginator = function() {
        var paginatorConfig = {
                rowsPerPage: 10,
@@ -31,15 +28,12 @@
                pageReportTemplate: "Showing items {startRecord} - {endRecord} 
of {totalRecords}",
                containers: ['paginator']
        };
-
        YAHOO.portico.lang('setupPaginator', paginatorConfig);
        var pag = new YAHOO.widget.Paginator(paginatorConfig);
        pag.render();
        return pag;
 };
-
 YAHOO.portico.preSerializeQueryFormListeners = new Array();
-
 YAHOO.portico.addPreSerializeQueryFormListener = function(func) {
        YAHOO.portico.preSerializeQueryFormListeners.push(func);
 }
@@ -57,11 +51,9 @@
 {
        var state = YAHOO.util.History.getCurrentState('state');
        uri = parseUri(YAHOO.portico.dataSourceUrl);
-
        var oArgs = uri.queryKey;
        oArgs.phpgw_return_as = '';
        oArgs.click_history = '';
-
        donwload_func = oArgs.menuaction;
        // modify actual function for "download" in path_values
        // for example: property.uilocation.index --> 
property.uilocation.download
@@ -71,17 +63,13 @@
        oArgs.menuaction = donwload_func;
        oArgs.allrows = 1;
        oArgs.start = 0;
-
-
        if (typeof (config_values) != 'undefined' && 
config_values.particular_download != 'undefined' && 
config_values.particular_download)
        {
                oArgs.menuaction = config_values.particular_download;
        }
 
        var requestUrl = phpGWLink('index.php', oArgs);
-
        requestUrl += '&' + state;
-
        window.open(requestUrl, 'window');
 }
 
@@ -134,54 +122,158 @@
         });
         */
 
+//
+//     var paginator = new Y.PaginatorView({
+//             model: new Y.PaginatorModel({
+//                     page: 3,
+//                     itemsPerPage: 20,
+//                     serverPaginationMap: {
+//                             totalItems: 'ResultSet.totalResultsAvailable',
+//                             //              page: {toServer: 
'requestedPage', fromServer: 'returnedPageNo'},
+//                             itemIndexStart: 'ResultSet.startIndex',
+//                             itemsPerPage: 'ResultSet.pageSize'
+//                     }
+//             }),
+//             container: '#paginator',
+//     });
+//     var configuration,
+//             datatable, data,
+//             urifordata = baseUrl,
+//             dataTableContainer = Y.one("#datatable-container"),
+//             configuration = {
+//                     method: 'POST',
+//                     headers: {
+//                             'Content-Type': 'application/json',
+//                     },
+//                     on: {
+//                             success: function(transactionid, response, 
arguments) {
+//                                     data = 
JSON.parse(response.responseText);
+//                                     datatable = new Y.DataTable({
+////                                           paginatorView: 
"MyPaginatorView",
+//                                             columns: 
YAHOO.portico.columnDefs,
+//                                             sortBy: [{loc1: 'asc'}, 
{loc1_name: -1}],
+//                                             data: data.ResultSet.Result,
+//                                             paginator: paginator,
+//                                             paginatorResize: true,
+//                                             paginationSource: 'server', // 
server-side pagination
+//                                     }).render("#datatable-container");
+//                             },
+//                             failure: function(transactionid, response, 
arguments) {
+//                                     alert("Failure In Data Loading.");
+//                             }
+//                     }
+//             };
+//     Y.io(urifordata, configuration);
+});
 
-       var paginator = new Y.PaginatorView({
-               model: new Y.PaginatorModel({
-                       page: 3,
-                       itemsPerPage: 20,
-                       serverPaginationMap: {
-                               totalItems: 'ResultSet.totalResultsAvailable',
-               //              page: {toServer: 'requestedPage', fromServer: 
'returnedPageNo'},
-                               itemIndexStart: 'ResultSet.startIndex',
-                               itemsPerPage: 'ResultSet.pageSize'
-                       }
-               }),
-               container: '#paginator',
-       });
+YUI().use('io-form', 'json-parse', 'overlay', 'panel', 'escape', 'datatable', 
'datasource-io', 'datasource-jsonschema', 'datatable-datasource', 
'datatype-number', 'datatable-paginator', function(Y)
+{
 
+       var fields = [];
+       for (var i = 0; i < YAHOO.portico.columnDefs.length; i++) {
+               fields.push({key: YAHOO.portico.columnDefs[i].key,locator: 
YAHOO.portico.columnDefs[i].key + '.' +  YAHOO.portico.columnDefs[i].label});
+       }
+console.log(fields);
+       var baseUrl = YAHOO.portico.dataSourceUrl;
+       if (baseUrl[baseUrl.length - 1] != '&') {
+               baseUrl += '&';
+       }
 
-       var configuration,
-               datatable, data,
-               urifordata = baseUrl,
-               dataTableContainer = Y.one("#datatable-container"),
-               configuration = {
-                       method: 'POST',
-                       headers: {
-                               'Content-Type': 'application/json',
+       if (YAHOO.portico.initialSortedBy) {
+//       baseUrl += 'sort=' + YAHOO.portico.initialSortedBy.key + '&dir=' + 
YAHOO.portico.initialSortedBy.dir;
+       } else {
+//       baseUrl += 'sort=' + fields[0];
+       }
+
+//create datasource
+       var dataLoaded = false;
+       var dataSource = new Y.DataSource.IO();
+       dataSource.plug(Y.Plugin.DataSourceJSONSchema, {
+               schema: {
+                       metaFields: {
+                               result: "ResultSet.recordsReturned",
+                               totalItems: "ResultSet.totalResultsAvailable",
+                               start_index: "ResultSet.startIndex",
+                               page: "ResultSet.page",
+                               page_size: "ResultSet.pageSize"
                        },
-                       on: {
-                               success: function(transactionid, response, 
arguments) {
-                                       data = 
JSON.parse(response.responseText);
-                                       datatable = new Y.DataTable({
-//                                             paginatorView: 
"MyPaginatorView",
-                                               columns: 
YAHOO.portico.columnDefs,
-                                               sortBy: [{loc1: 'asc'}, 
{loc1_name: -1}],
-                                               data: data.ResultSet.Result,
-                                               paginator: paginator,
-                                               paginatorResize: true,
-                                               paginationSource: 'server', // 
server-side pagination
-                                       }).render("#datatable-container");
+                       resultListLocator: "ResultSet.Result",
+                       resultFields: fields
+               }
+       });
 
-                               },
-                               failure: function(transactionid, response, 
arguments) {
-                                       alert("Failure In Data Loading.");
-                               }
-                       }
-               };
+       var columns = [];
+       for (var i = 0; i < YAHOO.portico.columnDefs.length; i++) {
+               columns.push(YAHOO.portico.columnDefs[i].key);
+       }
+//console.log(YAHOO.portico.columnDefs);
+//create datatable
+       var myDataTable = new Y.DataTable({
+               width: "100%",
+               columns: columns,
+               rowsPerPage: 10,
+               paginatorLocation: ['header', 'footer']
+       });
 
-       Y.io(urifordata, configuration);
-});
+       myDataTable.plug(Y.Plugin.DataTableDataSource, {datasource: 
dataSource});
 
+       myDataTable.render("#datatable-container");
 
+       //add listener for when the user uses the paginator
+       myDataTable.get('paginatorModel').on("change", handlePaginatorChange);
+// send initial request to load the data into the datatable
+       reloadTableData(1, 10);
 
+       /**function to call the server to obtain and render retrieved table 
records*/
+       function reloadTableData(page, recordsPerPage)
+       {
+               var url = baseUrl;
+//make a request to the server to get record data
+               Y.io(url + '&page=' + page + '&records_per_page=' + 
recordsPerPage,
+                       {
+                               method: 'GET',
+                               on:
+                                       {
+//handle server repsonse
+                                               success: function(id, o, args) {
+                                                       try {
+//parse JSON server data
+                                                       //      var response = 
Y.JSON.parse(o.responseText);
+                                                               var response = 
JSON.parse(o.responseText);
 
+                                                               if 
(response.ResultSet.recordsReturned > 0)
+                                                               {
+//console.log(response.ResultSet);
+
+                                                                       //load 
new record data into data table
+                                                                       
myDataTable.set("data", response.ResultSet.Result);
+// update the paginator attributes based on return server meta page data
+                                                                       
myDataTable.get('paginatorModel').set('totalItems', 
response.ResultSet.totalRecords);
+                                                                       
myDataTable.get('paginatorModel').set('page', 1);//response.ResultSet.page);
+                                                                       
myDataTable.get('paginatorModel').set('itemsPerPage', 
response.ResultSet.pageSize);
+                                                               }
+                                                       }
+                                                       catch (e)
+                                                       {
+                                                       }
+//set flag to allow the paginater to be used by the user again
+                                                       dataLoaded = true;
+                                               },
+                                               failure: function(id, o, args) {
+                                                       dataLoaded = true;
+                                               }
+                                       }
+                       }
+               );
+       }
+
+       /** event listener for when the user interacts with the data table 
paginator*/
+       function handlePaginatorChange(e)
+       {
+               if (dataLoaded) {
+                       dataLoaded = false;
+                       reloadTableData(this.get('page'), 
this.get('itemsPerPage'));
+               }
+               return true;
+       }
+});
\ No newline at end of file

Modified: trunk/property/inc/class.botts.inc.php
===================================================================
--- trunk/property/inc/class.botts.inc.php      2014-06-04 06:50:29 UTC (rev 
12004)
+++ trunk/property/inc/class.botts.inc.php      2014-06-04 13:37:28 UTC (rev 
12005)
@@ -1429,7 +1429,7 @@
                                }
 
                                $file = PHPGW_SERVER_ROOT . 
"/property/inc/custom/{$GLOBALS['phpgw_info']['user']['domain']}/{$entry['file_name']}";
-                               if ( $entry['active'] && is_file($file) )
+                               if ( $entry['active'] && is_file($file)  && 
!$entry['client_side'])
                                {
                                        require $file;
                                }

Modified: trunk/property/inc/class.menu.inc.php
===================================================================
--- trunk/property/inc/class.menu.inc.php       2014-06-04 06:50:29 UTC (rev 
12004)
+++ trunk/property/inc/class.menu.inc.php       2014-06-04 13:37:28 UTC (rev 
12005)
@@ -176,7 +176,12 @@
                                                (
                                                        'text'  => lang('ticket 
Attributes'),
                                                        'url'   => 
$GLOBALS['phpgw']->link('/index.php', array('menuaction' => 
'admin.ui_custom.list_attribute', 'appname' => 'property', 'location' => 
'.ticket', 'menu_selection' => 'admin::property::ticket::ticket_attribs') )
-                                               )
+                                               ),
+                                               'ticket_functions'      => array
+                                               (
+                                                       'text'  => lang('custom 
functions'),
+                                                       'url'   => 
$GLOBALS['phpgw']->link('/index.php', array('menuaction' => 
'admin.ui_custom.list_custom_function','appname' => 'property', 'location' => 
'.ticket', 'menu_selection' => 'admin::property::ticket::ticket_functions') )
+                                               ),
                                        );
 
                                $admin_children_owner = array

Modified: trunk/property/inc/class.uitts.inc.php
===================================================================
--- trunk/property/inc/class.uitts.inc.php      2014-06-04 06:50:29 UTC (rev 
12004)
+++ trunk/property/inc/class.uitts.inc.php      2014-06-04 13:37:28 UTC (rev 
12005)
@@ -3988,7 +3988,6 @@
                 */
                private function _insert_custom_js()
                {
-
                        $criteria = array
                        (
                                'appname'       => 'property',
@@ -4015,7 +4014,7 @@
 
                                if ( $entry['active'] && $entry['client_side'] 
&& is_file($file))
                                {
-                                       
$GLOBALS['phpgw']->js->add_external_file($file);
+                                       
$GLOBALS['phpgw']->js->add_external_file("/property/inc/custom/{$GLOBALS['phpgw_info']['user']['domain']}/{$entry['file_name']}");
                                        $js_found = true;
                                }
                        }

Modified: trunk/property/inc/custom/default/ticket_NLSH_validate.js
===================================================================
--- trunk/property/inc/custom/default/ticket_NLSH_validate.js   2014-06-04 
06:50:29 UTC (rev 12004)
+++ trunk/property/inc/custom/default/ticket_NLSH_validate.js   2014-06-04 
13:37:28 UTC (rev 12005)
@@ -1,4 +1,38 @@
 
+function validate_save()
+{
+       alert($("#id_feilkoder").val());
+}
+
 $(document).ready(function(){
-alert('test');
+
+//id_feilkoder
+       $("#form").on("submit", function(e){
+
+               var error = false;
+               if( !$("#id_konf_1").prop('checked') && 
(!$("#id_konf_2").prop('checked') && !$("#id_konf_3").prop('checked') && 
!$("#id_konf_4").prop('checked')))
+               {
+                       error = true;
+                       alert('Du må angi kriterie for 
Konfidensialitetsvurdering');
+               }
+
+               if( !$("#id_integritet_1").prop('checked') && 
(!$("#id_integritet_2").prop('checked') && 
!$("#id_integritet_3").prop('checked') && 
!$("#id_integritet_4").prop('checked')))
+               {
+                       error = true;
+                       alert('Du må angi kriterie for Integritetsvurdering');
+               }
+
+               if( !$("#id_tilgjengelighet_1").prop('checked') && 
(!$("#id_tilgjengelighet_2").prop('checked') && 
!$("#id_tilgjengelighet_3").prop('checked') && 
!$("#id_tilgjengelighet_4").prop('checked')))
+               {
+                       error = true;
+                       alert('Du må angi kriterie for 
Tilgjengelighetsvurdering');
+               }
+
+               if(error)
+               {
+                       e.preventDefault();
+                       return;
+               }
+       });
+
 });

Modified: trunk/property/js/yahoo/tts.view.js
===================================================================
--- trunk/property/js/yahoo/tts.view.js 2014-06-04 06:50:29 UTC (rev 12004)
+++ trunk/property/js/yahoo/tts.view.js 2014-06-04 13:37:28 UTC (rev 12005)
@@ -42,7 +42,14 @@
                                                                else
                                                                {
                                                                        
document.getElementById(action).value = 1;
-                                                                       
document.form.submit();
+                                                                       try
+                                                                       {
+                                                                               
validate_save();
+                                                                       }
+                                                                       catch 
(e)
+                                                                       {
+                                                                               
document.form.submit();
+                                                                       }
                                                                }
                                                        },
                                                        failure: function(o)

Modified: trunk/property/templates/base/tts.xsl
===================================================================
--- trunk/property/templates/base/tts.xsl       2014-06-04 06:50:29 UTC (rev 
12004)
+++ trunk/property/templates/base/tts.xsl       2014-06-04 13:37:28 UTC (rev 
12005)
@@ -36,7 +36,7 @@
                <xsl:variable name="form_action">
                        <xsl:value-of select="form_action"/>
                </xsl:variable>
-               <form ENCTYPE="multipart/form-data" name="form" method="post" 
action="{$form_action}">
+               <form ENCTYPE="multipart/form-data" id="form" name="form" 
method="post" action="{$form_action}">
                        <div class="yui-navset" id="ticket_tabview">
                                <div class="yui-content">
                                        <table cellpadding="2" cellspacing="2" 
width="80%" align="center">
@@ -274,7 +274,7 @@
                                <xsl:variable name="form_action">
                                        <xsl:value-of select="form_action"/>
                                </xsl:variable>
-                               <form name="form" method="post" 
action="{$form_action}">
+                               <form name="form" method="post" id="form" 
action="{$form_action}">
                                        <xsl:call-template 
name="location_view"/>
                                        <tr>
                                                <td valign="top">
@@ -431,7 +431,7 @@
                <xsl:variable name="form_action">
                        <xsl:value-of select="form_action"/>
                </xsl:variable>
-               <form ENCTYPE="multipart/form-data" name="form" method="post" 
action="{$form_action}">
+               <form ENCTYPE="multipart/form-data" id="form" name="form" 
method="post" action="{$form_action}">
                        <div class="yui-navset" id="ticket_tabview">
                                <xsl:value-of disable-output-escaping="yes" 
select="tabs"/>
                                <div class="yui-content">
@@ -1310,7 +1310,7 @@
                                <xsl:variable name="form_action">
                                        <xsl:value-of select="form_action"/>
                                </xsl:variable>
-                               <form name="form" method="post" 
action="{$form_action}">
+                               <form id="form" name="form" method="post" 
action="{$form_action}">
                                        <tr class="th">
                                                <td class="th_text" 
valign="top">
                                                        <xsl:value-of 
select="lang_ticket"/>




reply via email to

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