[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"/>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [12005] property: custom js,
Sigurd Nes <=