fmsystem-commits
[Top][All Lists]
Advanced

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

[Fmsystem-commits] [16098] Syncromind: Merge 15998:16097 from trunk


From: sigurdne
Subject: [Fmsystem-commits] [16098] Syncromind: Merge 15998:16097 from trunk
Date: Sun, 18 Dec 2016 19:22:14 +0000 (UTC)

Revision: 16098
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=16098
Author:   sigurdne
Date:     2016-12-18 19:22:14 +0000 (Sun, 18 Dec 2016)
Log Message:
-----------
Syncromind: Merge 15998:16097 from trunk

Modified Paths:
--------------
    branches/dev-syncromind-2/admin/inc/class.ui_custom.inc.php
    branches/dev-syncromind-2/admin/templates/base/config.tpl
    branches/dev-syncromind-2/admin/templates/base/custom.xsl
    branches/dev-syncromind-2/booking/inc/class.uicommon.inc.php
    branches/dev-syncromind-2/eventplanner/inc/class.bobooking.inc.php
    branches/dev-syncromind-2/eventplanner/inc/class.bocommon.inc.php
    branches/dev-syncromind-2/eventplanner/inc/class.bovendor_report.inc.php
    branches/dev-syncromind-2/eventplanner/inc/class.sobooking.inc.php
    branches/dev-syncromind-2/eventplanner/inc/class.sovendor_report.inc.php
    branches/dev-syncromind-2/eventplanner/inc/class.uiapplication.inc.php
    branches/dev-syncromind-2/eventplanner/inc/class.uibooking.inc.php
    branches/dev-syncromind-2/eventplanner/inc/class.uicommon.inc.php
    branches/dev-syncromind-2/eventplanner/inc/class.uicustomer.inc.php
    branches/dev-syncromind-2/eventplanner/inc/class.uivendor_report.inc.php
    branches/dev-syncromind-2/eventplanner/inc/model/class.application.inc.php
    branches/dev-syncromind-2/eventplanner/inc/model/class.booking.inc.php
    branches/dev-syncromind-2/eventplanner/inc/model/class.customer.inc.php
    branches/dev-syncromind-2/eventplanner/inc/model/class.vendor.inc.php
    branches/dev-syncromind-2/eventplanner/inc/model/class.vendor_report.inc.php
    branches/dev-syncromind-2/eventplanner/js/portico/application.edit.js
    branches/dev-syncromind-2/eventplanner/setup/default_records.inc.php
    branches/dev-syncromind-2/eventplanner/setup/phpgw_no.lang
    branches/dev-syncromind-2/eventplanner/setup/setup.inc.php
    branches/dev-syncromind-2/eventplanner/setup/tables_current.inc.php
    branches/dev-syncromind-2/eventplanner/setup/tables_update.inc.php
    branches/dev-syncromind-2/eventplanner/templates/base/application.xsl
    branches/dev-syncromind-2/eventplanner/templates/base/booking.xsl
    branches/dev-syncromind-2/eventplanner/templates/base/customer.xsl
    branches/dev-syncromind-2/eventplanner/templates/base/vendor.xsl
    branches/dev-syncromind-2/eventplanner/templates/base/vendor_report.xsl
    branches/dev-syncromind-2/helpdesk/inc/class.botts.inc.php
    branches/dev-syncromind-2/phpgwapi/inc/class.jqcal2.inc.php
    branches/dev-syncromind-2/phpgwapi/inc/class.jquery.inc.php
    branches/dev-syncromind-2/phpgwapi/inc/class.phpgw.inc.php
    branches/dev-syncromind-2/phpgwapi/inc/class.socommon.inc.php
    branches/dev-syncromind-2/phpgwapi/inc/functions.inc.php
    branches/dev-syncromind-2/phpgwapi/inc/model/class.model.inc.php
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/index.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/alwaysAsk.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/columns.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/events.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/fills.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/focus.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/index.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/keyTable.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/plugins.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/scrolling.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/simple.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/styling/bootstrap.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/styling/bootstrap4.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/styling/foundation.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/styling/index.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/styling/jqueryui.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/styling/semanticui.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/js/dataTables.autoFill.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/js/dataTables.autoFill.min.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/api/addRemove.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/api/enable.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/api/group.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/api/text.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/column_visibility/columnGroups.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/column_visibility/columns.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/column_visibility/columnsToggle.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/column_visibility/index.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/column_visibility/layout.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/column_visibility/restore.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/column_visibility/simple.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/column_visibility/stateSave.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/column_visibility/text.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/flash/copyi18n.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/flash/filename.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/flash/hidden.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/flash/pdfMessage.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/flash/pdfPage.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/flash/simple.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/flash/swfPath.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/flash/tsv.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/html5/columns.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/html5/copyi18n.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/html5/customFile.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/html5/excelBorder.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/html5/excelCellShading.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/html5/excelTextBold.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/html5/filename.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/html5/outputFormat-function.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/html5/outputFormat-orthogonal.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/html5/pdfImage.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/html5/pdfMessage.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/html5/pdfOpen.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/html5/pdfPage.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/html5/simple.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/html5/tsv.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/initialisation/className.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/initialisation/collections-autoClose.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/initialisation/collections-sub.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/initialisation/collections.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/initialisation/custom.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/initialisation/export.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/initialisation/keys.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/initialisation/multiple.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/initialisation/new.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/initialisation/pageLength.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/initialisation/plugins.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/initialisation/simple.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/print/autoPrint.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/print/columns.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/print/customisation.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/print/message.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/print/select.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/print/simple.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/styling/bootstrap.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/styling/bootstrap4.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/styling/foundation.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/styling/icons.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/styling/jqueryui.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/examples/styling/semanticui.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/js/buttons.colVis.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/js/buttons.colVis.min.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/js/buttons.flash.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/js/buttons.flash.min.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/js/buttons.html5.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/js/buttons.html5.min.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/js/buttons.print.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/js/buttons.print.min.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/js/dataTables.buttons.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Buttons/js/dataTables.buttons.min.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/ColReorder/js/dataTables.colReorder.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/FixedColumns/examples/styling/col_filter.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/FixedColumns/js/dataTables.fixedColumns.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/FixedHeader/js/dataTables.fixedHeader.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/KeyTable/examples/index.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/KeyTable/examples/initialisation/events.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/KeyTable/examples/initialisation/index.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/KeyTable/examples/initialisation/scroller.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/KeyTable/examples/initialisation/scrolling.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/KeyTable/examples/initialisation/server-side.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/KeyTable/examples/initialisation/simple.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/KeyTable/examples/initialisation/stateSave.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/KeyTable/examples/styling/bootstrap.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/KeyTable/examples/styling/bootstrap4.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/KeyTable/examples/styling/focusStyle.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/KeyTable/examples/styling/foundation.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/KeyTable/examples/styling/jqueryui.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/KeyTable/examples/styling/semanticui.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/KeyTable/js/dataTables.keyTable.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/KeyTable/js/dataTables.keyTable.min.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/css/responsive.bootstrap.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/css/responsive.bootstrap.min.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/css/responsive.bootstrap4.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/css/responsive.bootstrap4.min.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/css/responsive.dataTables.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/css/responsive.dataTables.min.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/css/responsive.foundation.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/css/responsive.foundation.min.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/css/responsive.jqueryui.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/css/responsive.jqueryui.min.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/css/responsive.semanticui.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/css/responsive.semanticui.min.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/column-control.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/custom-renderer.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/disable-child-rows.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/right-column.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/child-rows/whole-row-control.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/column-control/auto.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/column-control/classes.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/column-control/colreorder.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/column-control/column-visibility.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/column-control/columnPriority.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/column-control/fixedHeader.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/column-control/init-classes.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/display-types/bootstrap-modal.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/display-types/bootstrap4-modal.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/display-types/foundation-modal.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/display-types/immediateShow.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/display-types/jqueryui-modal.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/display-types/modal.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/display-types/semanticui-modal.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/ajax.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/className.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/default.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/new.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/initialisation/option.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/styling/bootstrap.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/styling/bootstrap4.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/styling/compact.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/styling/foundation.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/styling/jqueryui.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/styling/scrolling.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/examples/styling/semanticui.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/js/dataTables.responsive.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/js/dataTables.responsive.min.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/js/responsive.bootstrap.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/js/responsive.bootstrap.min.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/js/responsive.bootstrap4.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Responsive/js/responsive.bootstrap4.min.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/RowReorder/examples/index.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/RowReorder/examples/initialisation/defaults.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/RowReorder/examples/initialisation/events.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/RowReorder/examples/initialisation/responsive.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/RowReorder/examples/initialisation/restrictedOrdering.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/RowReorder/examples/initialisation/scroll.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/RowReorder/examples/initialisation/selector.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/RowReorder/examples/initialisation/simple.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/RowReorder/examples/styling/bootstrap.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/RowReorder/examples/styling/bootstrap4.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/RowReorder/examples/styling/foundation.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/RowReorder/examples/styling/index.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/RowReorder/examples/styling/jqueryui.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/RowReorder/examples/styling/reorderClass.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/RowReorder/examples/styling/semanticui.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/RowReorder/examples/styling/snapX.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/RowReorder/js/dataTables.rowReorder.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/RowReorder/js/dataTables.rowReorder.min.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Scroller/js/dataTables.scroller.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/css/select.bootstrap.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/css/select.bootstrap.min.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/css/select.bootstrap4.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/css/select.bootstrap4.min.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/css/select.dataTables.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/css/select.dataTables.min.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/css/select.foundation.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/css/select.foundation.min.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/css/select.jqueryui.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/css/select.jqueryui.min.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/css/select.semanticui.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/css/select.semanticui.min.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/examples/api/cancellableEvents.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/examples/api/events.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/examples/api/get.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/examples/api/select.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/examples/initialisation/blurable.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/examples/initialisation/buttons.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/examples/initialisation/cells.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/examples/initialisation/checkbox.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/examples/initialisation/deferRender.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/examples/initialisation/i18n.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/examples/initialisation/multi.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/examples/initialisation/reload.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/examples/initialisation/simple.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/examples/initialisation/single.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/examples/styling/bootstrap.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/examples/styling/bootstrap4.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/examples/styling/foundation.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/examples/styling/jqueryui.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/examples/styling/semanticui.html
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/js/dataTables.select.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/Select/js/dataTables.select.min.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/media/css/dataTables.bootstrap.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/media/css/dataTables.bootstrap.min.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/media/css/dataTables.semanticui.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/media/css/dataTables.semanticui.min.css
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/media/js/dataTables.bootstrap.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/media/js/dataTables.bootstrap.min.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/media/js/dataTables.bootstrap4.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/media/js/dataTables.bootstrap4.min.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/media/js/dataTables.foundation.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/media/js/dataTables.foundation.min.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/media/js/dataTables.material.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/media/js/dataTables.material.min.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/media/js/dataTables.semanticui.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/media/js/dataTables.semanticui.min.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/media/js/jquery.dataTables.js
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/media/js/jquery.dataTables.min.js
    branches/dev-syncromind-2/phpgwapi/js/jquery/common.js
    
branches/dev-syncromind-2/phpgwapi/js/jquery/jqTree/lib/drag_and_drop_handler.js
    branches/dev-syncromind-2/phpgwapi/js/jquery/jqTree/lib/node.js
    
branches/dev-syncromind-2/phpgwapi/js/jquery/jqTree/lib/save_state_handler.js
    
branches/dev-syncromind-2/phpgwapi/js/jquery/jqTree/lib/select_node_handler.js
    branches/dev-syncromind-2/phpgwapi/js/jquery/jqTree/lib/tree.jquery.js
    branches/dev-syncromind-2/phpgwapi/js/jquery/jqTree/lib/version.js
    branches/dev-syncromind-2/phpgwapi/js/jquery/jqTree/tree.jquery.js
    branches/dev-syncromind-2/phpgwapi/js/jquery/tabs/jquery.responsiveTabs.js
    
branches/dev-syncromind-2/phpgwapi/js/jquery/tabs/jquery.responsiveTabs.min.js
    branches/dev-syncromind-2/phpgwapi/templates/base/datatable_inline.xsl
    branches/dev-syncromind-2/phpgwapi/templates/base/datatable_jquery.xsl
    branches/dev-syncromind-2/phpgwapi/templates/mobilefrontend/navbar.inc.php
    branches/dev-syncromind-2/property/inc/class.boadmin_entity.inc.php
    branches/dev-syncromind-2/property/inc/class.boproject.inc.php
    branches/dev-syncromind-2/property/inc/class.botts.inc.php
    branches/dev-syncromind-2/property/inc/class.boworkorder.inc.php
    branches/dev-syncromind-2/property/inc/class.socommon.inc.php
    branches/dev-syncromind-2/property/inc/class.sogeneric.inc.php
    branches/dev-syncromind-2/property/inc/class.soproject.inc.php
    branches/dev-syncromind-2/property/inc/class.sotts.inc.php
    branches/dev-syncromind-2/property/inc/class.soworkorder.inc.php
    branches/dev-syncromind-2/property/inc/class.uiadmin_entity.inc.php
    branches/dev-syncromind-2/property/inc/class.uientity.inc.php
    branches/dev-syncromind-2/property/inc/class.uigeneric_document.inc.php
    branches/dev-syncromind-2/property/inc/class.uilocation.inc.php
    branches/dev-syncromind-2/property/inc/class.uiproject.inc.php
    branches/dev-syncromind-2/property/inc/class.uitts.inc.php
    branches/dev-syncromind-2/property/inc/class.uiwo_hour.inc.php
    branches/dev-syncromind-2/property/inc/class.uiworkorder.inc.php
    
branches/dev-syncromind-2/property/inc/cron/default/Import_fra_agresso_X205_BK.php
    
branches/dev-syncromind-2/property/inc/cron/default/synkroniser_avdelinger_med_fellesdata.php
    
branches/dev-syncromind-2/property/inc/custom/default/BkBygg_exporter_data_til_Agresso.php
    
branches/dev-syncromind-2/property/inc/custom/default/BkBygg_exporter_varemottak_til_Agresso.php
    
branches/dev-syncromind-2/property/inc/custom/default/BkBygg_lag_Agresso_ordre_fra_melding.php
    
branches/dev-syncromind-2/property/inc/custom/default/BkBygg_lag_Agresso_ordre_fra_workorder.php
    branches/dev-syncromind-2/property/js/portico/project.edit.js
    branches/dev-syncromind-2/property/js/portico/tts.view.js
    branches/dev-syncromind-2/property/js/portico/workorder.edit.js
    branches/dev-syncromind-2/property/setup/phpgw_en.lang
    branches/dev-syncromind-2/property/setup/phpgw_no.lang
    branches/dev-syncromind-2/property/templates/base/config.tpl
    branches/dev-syncromind-2/property/templates/base/entity.xsl
    branches/dev-syncromind-2/property/templates/base/project.xsl
    branches/dev-syncromind-2/property/templates/base/tts.xsl
    branches/dev-syncromind-2/property/templates/base/workorder.xsl
    branches/dev-syncromind-2/redirect.php
    branches/dev-syncromind-2/rental/inc/class.menu.inc.php
    branches/dev-syncromind-2/rental/inc/class.socontract_price_item.inc.php
    branches/dev-syncromind-2/rental/inc/class.uicontract.inc.php
    branches/dev-syncromind-2/rental/setup/phpgw_no.lang
    branches/dev-syncromind-2/rental/setup/setup.inc.php
    branches/dev-syncromind-2/rental/setup/tables_current.inc.php
    branches/dev-syncromind-2/rental/setup/tables_update.inc.php

Added Paths:
-----------
    branches/dev-syncromind-2/eventplanner/js/portico/booking.edit.js
    branches/dev-syncromind-2/eventplanner/templates/base/application_info.xsl
    branches/dev-syncromind-2/mobilefrontend/rental/
    
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/KeyTable/examples/initialisation/blurable.html
    branches/dev-syncromind-2/rental/inc/class.bomoveout.inc.php
    branches/dev-syncromind-2/rental/inc/class.somoveout.inc.php
    branches/dev-syncromind-2/rental/inc/class.uimoveout.inc.php
    branches/dev-syncromind-2/rental/inc/model/class.moveout.inc.php
    branches/dev-syncromind-2/rental/js/rental/moveout.edit.js
    branches/dev-syncromind-2/rental/templates/base/moveout.xsl

Removed Paths:
-------------
    branches/dev-syncromind-2/eventplanner/js/portico/demo.edit.js
    branches/dev-syncromind-2/eventplanner/js/portico/demo.index.js

Property Changed:
----------------
    branches/dev-syncromind-2/
    branches/dev-syncromind-2/booking/


Property changes on: branches/dev-syncromind-2
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/dev-syncromind:13653
/branches/stavangerkommune:12743-12875,12986
/trunk:14934-14935,15165-15215,15218-15220,15222-15304,15306-15337,15339,15341-15398,15400-15421,15423-15474,15476-15607,15609,15611,15613-15652,15654-15732,15734,15736-15746,15750-15770,15772-15775,15777-15795,15797-15798,15800-15812,15814-15838,15840,15842-15888,15890,15892-15997
   + /branches/dev-syncromind:13653
/branches/stavangerkommune:12743-12875,12986
/trunk:14934-14935,15165-15215,15218-15220,15222-15304,15306-15337,15339,15341-15398,15400-15421,15423-15474,15476-15607,15609,15611,15613-15652,15654-15732,15734,15736-15746,15750-15770,15772-15775,15777-15795,15797-15798,15800-15812,15814-15838,15840,15842-15888,15890,15892-15997,15999-16097

Modified: branches/dev-syncromind-2/admin/inc/class.ui_custom.inc.php
===================================================================
--- branches/dev-syncromind-2/admin/inc/class.ui_custom.inc.php 2016-12-18 
13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/admin/inc/class.ui_custom.inc.php 2016-12-18 
19:22:14 UTC (rev 16098)
@@ -61,7 +61,7 @@
                        $this->bolocation->acl_app      = $this->appname;
 
                        $this->acl                       = & 
$GLOBALS['phpgw']->acl;
-                       $this->acl_location      = 'admin';
+                       $this->acl_location      = '.admin';
                        $this->acl_read          = 
$this->acl->check($this->acl_location, PHPGW_ACL_READ, $this->appname);
                        $this->acl_add           = 
$this->acl->check($this->acl_location, PHPGW_ACL_ADD, $this->appname);
                        $this->acl_edit          = 
$this->acl->check($this->acl_location, PHPGW_ACL_EDIT, $this->appname);
@@ -96,6 +96,11 @@
 
                function list_attribute()
                {
+                       if(!$this->acl_read)
+                       {
+                               phpgw::no_access($this->appname);
+                       }
+
                        $appname        = $this->appname;
                        $location       = $this->location;
                        $id                     = phpgw::get_var('id', 'int');
@@ -259,6 +264,11 @@
 
                function edit_attrib()
                {
+                       if(!$this->acl_add)
+                       {
+                               phpgw::no_access($this->appname);
+                       }
+
                        $appname        = $this->appname;
                        $location       = $this->location;
                        $id                     = phpgw::get_var('id', 'int');
@@ -477,6 +487,11 @@
 
                function list_custom_function()
                {
+                       if(!$this->acl_read)
+                       {
+                               phpgw::no_access($this->appname);
+                       }
+
                        if($this->local_menu_selection)
                        {
                                
$GLOBALS['phpgw_info']['flags']['menu_selection'] .= '::list_functions';
@@ -663,7 +678,12 @@
 
                function edit_custom_function()
                {
-       //              $GLOBALS['phpgw_info']['flags']['menu_selection'] .= 
'::list_functions';
+                       if(!$this->acl_add)
+                       {
+                               phpgw::no_access($this->appname);
+                       }
+
+                       //              
$GLOBALS['phpgw_info']['flags']['menu_selection'] .= '::list_functions';
                        $appname        = $this->appname;
                        $location       = $this->location;
                        $id                     = phpgw::get_var('id', 'int');
@@ -782,6 +802,11 @@
 
                function delete()
                {
+                       if(!$this->acl_delete)
+                       {
+                               phpgw::no_access($this->appname);
+                       }
+
                        $appname                                = 
phpgw::get_var('appname');
                        $location                               = 
phpgw::get_var('location');
                        $attrib_id                              = 
phpgw::get_var('attrib_id', 'int');
@@ -1270,6 +1295,10 @@
 
                public function query($data = array())
                {
+                       if(!$this->acl_read)
+                       {
+                               phpgw::no_access($this->appname);
+                       }
 
                        $search  = phpgw::get_var('search');
                        $order   = phpgw::get_var('order');

Modified: branches/dev-syncromind-2/admin/templates/base/config.tpl
===================================================================
--- branches/dev-syncromind-2/admin/templates/base/config.tpl   2016-12-18 
13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/admin/templates/base/config.tpl   2016-12-18 
19:22:14 UTC (rev 16098)
@@ -3,293 +3,296 @@
        {error}
 </div>
 <form method="post" action="{action_url}">
-<table class="pure-table pure-table-bordered">
-       <thead>
-               <tr>
-                       <th colspan="2">{title}</th>
-               </tr>
-       </thead>
-       <tbody>
-<!-- END header -->
-<!-- BEGIN body -->
-       <tr class="pure-table-odd">
-    
<td>{lang_Would_you_like_phpGroupWare_to_check_for_a_new_version_when_admins_login_?}:</td>
-               <td>
-                       <select name="newsettings[checkfornewversion]">
-                               <option value="">{lang_No}</option>
-                               <option 
value="True"{selected_checkfornewversion_True}>{lang_Yes}</option>
-                       </select>
-               </td>
-       </tr>
-       
-       <tr>
-    <td>{lang_Timeout_for_sessions_in_seconds_(default_14400_=_4_hours)}:</td>
-    <td><input size="8" name="newsettings[sessions_timeout]" 
value="{value_sessions_timeout}"></td>
-   </tr>
+       <table class="pure-table pure-table-bordered">
+               <thead>
+                       <tr>
+                               <th colspan="2">{title}</th>
+                       </tr>
+               </thead>
+               <tbody>
+                       <!-- END header -->
+                       <!-- BEGIN body -->
+                       <tr class="pure-table-odd">
+                               
<td>{lang_Would_you_like_phpGroupWare_to_check_for_a_new_version_when_admins_login_?}:</td>
+                               <td>
+                                       <select 
name="newsettings[checkfornewversion]">
+                                               <option 
value="">{lang_No}</option>
+                                               <option 
value="True"{selected_checkfornewversion_True}>{lang_Yes}</option>
+                                       </select>
+                               </td>
+                       </tr>
 
-   <tr class="pure-table-odd">
-    
<td>{lang_Timeout_for_application_session_data_in_seconds_(default_86400_=_1_day)}:</td>
-    <td><input size="8" name="newsettings[sessions_app_timeout]" 
value="{value_sessions_app_timeout}"></td>
-   </tr>
+                       <tr>
+                               
<td>{lang_Timeout_for_sessions_in_seconds_(default_14400_=_4_hours)}:</td>
+                               <td><input size="8" 
name="newsettings[sessions_timeout]" value="{value_sessions_timeout}"></td>
+                       </tr>
 
-   <tr>
-    
<td>{lang_Would_you_like_to_show_each_application's_upgrade_status_?}:</td><td>
-                       <select name="newsettings[checkappversions]">
-                               <option value="">{lang_No}</option>
-                               <option 
value="Admin"{selected_checkappversions_Admin}>{lang_Admins}</option>
-                               <option 
value="All"{selected_checkappversions_All}>{lang_All_Users}</option>
-                       </select>
-               </td>
-       </tr>
+                       <tr class="pure-table-odd">
+                               
<td>{lang_Timeout_for_application_session_data_in_seconds_(default_86400_=_1_day)}:</td>
+                               <td><input size="8" 
name="newsettings[sessions_app_timeout]" 
value="{value_sessions_app_timeout}"></td>
+                       </tr>
 
-       <tr class="pure-table-odd">
-    
<td>{lang_Would_you_like_phpGroupWare_to_cache_the_phpgw_info_array_?}:</td>
-    <td>
-     <select name="newsettings[cache_phpgw_info]">
-      <option value="">{lang_No}</option>
-      <option value="True"{selected_cache_phpgw_info_True}>{lang_Yes}</option>
-     </select>
-    </td>
-   </tr>
+                       <tr>
+                               
<td>{lang_Would_you_like_to_show_each_application's_upgrade_status_?}:</td><td>
+                                       <select 
name="newsettings[checkappversions]">
+                                               <option 
value="">{lang_No}</option>
+                                               <option 
value="Admin"{selected_checkappversions_Admin}>{lang_Admins}</option>
+                                               <option 
value="All"{selected_checkappversions_All}>{lang_All_Users}</option>
+                                       </select>
+                               </td>
+                       </tr>
 
-   <tr>
-    <td>{lang_Maximum_entries_in_click_path_history}:</td>
-    <td><input size="8" name="newsettings[max_history]" 
value="{value_max_history}"></td>
-   </tr>
+                       <tr class="pure-table-odd">
+                               
<td>{lang_Would_you_like_phpGroupWare_to_cache_the_phpgw_info_array_?}:</td>
+                               <td>
+                                       <select 
name="newsettings[cache_phpgw_info]">
+                                               <option 
value="">{lang_No}</option>
+                                               <option 
value="True"{selected_cache_phpgw_info_True}>{lang_Yes}</option>
+                                       </select>
+                               </td>
+                       </tr>
 
-   <tr class="pure-table-odd">
-    
<td>{lang_Would_you_like_to_automaticaly_load_new_langfiles_(at_login-time)_?}:</td>
-    <td>
-     <select name="newsettings[disable_autoload_langfiles]">
-      <option value="">{lang_Yes}</option>
-      <option 
value="True"{selected_disable_autoload_langfiles_True}>{lang_No}</option>
-     </select>
-    </td>
-   </tr>
+                       <tr>
+                               
<td>{lang_Maximum_entries_in_click_path_history}:</td>
+                               <td><input size="8" 
name="newsettings[max_history]" value="{value_max_history}"></td>
+                       </tr>
 
-    <tr class="pure-table-odd">
-    
<td>{lang_Would_you_like_phpGroupWare_to_cache_data_in_shared_memory_?}:</td>
-    <td>
-     <select name="newsettings[shm_enable]">
-      <option value="">{lang_No}</option>
-      <option value="True"{selected_shm_enable_True}>{lang_Yes}</option>
-     </select>
-    </td>
-   </tr>
+                       <tr class="pure-table-odd">
+                               
<td>{lang_Would_you_like_to_automaticaly_load_new_langfiles_(at_login-time)_?}:</td>
+                               <td>
+                                       <select 
name="newsettings[disable_autoload_langfiles]">
+                                               <option 
value="">{lang_Yes}</option>
+                                               <option 
value="True"{selected_disable_autoload_langfiles_True}>{lang_No}</option>
+                                       </select>
+                               </td>
+                       </tr>
 
-    <tr class="th">
-    <td colspan="2">&nbsp;<b>{lang_SMTP_settings}</b></td>
-   </tr>
+                       <tr class="pure-table-odd">
+                               
<td>{lang_Would_you_like_phpGroupWare_to_cache_data_in_shared_memory_?}:</td>
+                               <td>
+                                       <select name="newsettings[shm_enable]">
+                                               <option 
value="">{lang_No}</option>
+                                               <option 
value="True"{selected_shm_enable_True}>{lang_Yes}</option>
+                                       </select>
+                               </td>
+                       </tr>
 
-   <tr class="pure-table-odd">
-       <td>{lang_SMTP_server_hostname_(or_IP_address)}:</td>
-       <td><input name="newsettings[smtp_server]" value="{value_smtp_server}" 
/></td>
-       </tr>
-       
-       <tr>
-               <td>{lang_SMTP_server_port_number}:</td>
-               <td><input name="newsettings[smtp_port]" 
value="{value_smtp_port}" /></td>
-       </tr>
+                       <tr class="th">
+                               <td 
colspan="2">&nbsp;<b>{lang_SMTP_settings}</b></td>
+                       </tr>
 
-       <tr>
-               <td>{lang_SMTP_server_timeout}:</td>
-               <td><input name="newsettings[smtp_timeout]" 
value="{value_smtp_timeout}" /></td>
-       </tr>
+                       <tr class="pure-table-odd">
+                               
<td>{lang_SMTP_server_hostname_(or_IP_address)}:</td>
+                               <td><input name="newsettings[smtp_server]" 
value="{value_smtp_server}" /></td>
+                       </tr>
 
-       <tr class="pure-table-odd">
-               <td>{lang_Use_SMTP_auth}:</td>
-               <td>
-     <select name="newsettings[smtpAuth]">
-                               <option value="">{lang_no}</option>
-      <option value="yes" {selected_smtpAuth_yes}>{lang_yes}</option>
-                       </select>
-               </td>
-       </tr>
-       <tr>
-               <td>{lang_Enter_your_SMTP_server_user}:</td>
-    <td><input name="newsettings[smtpUser]" value="{value_smtpUser}"></td>
-       </tr>
-       <tr class="pure-table-odd">
-               <td>{lang_Enter_your_SMTP_server_password}:</td>
-    <td><input type= "password" name="newsettings[smtpPassword]" 
value="{value_smtpPassword}"></td>
-       </tr>
-       <tr>
-    <td>{lang_SMTPSecure}:</td>
-               <td>
-                       <select name="newsettings[smtpSecure]">
-                               <option value="">{lang_No}</option>
-                               <option 
value="ssl"{selected_smtpSecure_ssl}>ssl</option>
-                               <option 
value="tls"{selected_smtpSecure_tls}>tls</option>
-                       </select>
-               </td>
-       </tr>
+                       <tr>
+                               <td>{lang_SMTP_server_port_number}:</td>
+                               <td><input name="newsettings[smtp_port]" 
value="{value_smtp_port}" /></td>
+                       </tr>
 
-       <tr class="pure-table-odd">
-    <td>{lang_SMTPDebug}:</td>
-               <td>
-                       <select name="newsettings[SMTPDebug]">
-                               <option value="0">{lang_No}</option>
-                               <option 
value="1"{selected_SMTPDebug_1}>commands</option>
-                               <option 
value="2"{selected_SMTPDebug_2}>commands and data</option>
-                       </select>
-               </td>
-       </tr>
+                       <tr>
+                               <td>{lang_SMTP_server_timeout}:</td>
+                               <td><input name="newsettings[smtp_timeout]" 
value="{value_smtp_timeout}" /></td>
+                       </tr>
 
-       <tr>
-    <td>{lang_Debugoutput}:</td>
-               <td>
-                       <select name="newsettings[Debugoutput]">
-                               <option value="echo">echo</option>
-                               <option 
value="html"{selected_Debugoutput_html}>html</option>
-                               <option 
value="errorlog"{selected_Debugoutput_errorlog}>error log</option>
-                       </select>
-               </td>
-       </tr>
-       
- 
- 
-   <tr class="th">
-    <td colspan="2">&nbsp;<b>{lang_appearance}</b></td>
-       </tr>
+                       <tr class="pure-table-odd">
+                               <td>{lang_Use_SMTP_auth}:</td>
+                               <td>
+                                       <select name="newsettings[smtpAuth]">
+                                               <option 
value="">{lang_no}</option>
+                                               <option value="yes" 
{selected_smtpAuth_yes}>{lang_yes}</option>
+                                       </select>
+                               </td>
+                       </tr>
+                       <tr>
+                               <td>{lang_Enter_your_SMTP_server_user}:</td>
+                               <td><input name="newsettings[smtpUser]" 
value="{value_smtpUser}"></td>
+                       </tr>
+                       <tr class="pure-table-odd">
+                               <td>{lang_Enter_your_SMTP_server_password}:</td>
+                               <td><input type= "password" 
name="newsettings[smtpPassword]" value="{value_smtpPassword}"></td>
+                       </tr>
+                       <tr>
+                               <td>{lang_SMTPSecure}:</td>
+                               <td>
+                                       <select name="newsettings[smtpSecure]">
+                                               <option 
value="">{lang_No}</option>
+                                               <option 
value="ssl"{selected_smtpSecure_ssl}>ssl</option>
+                                               <option 
value="tls"{selected_smtpSecure_tls}>tls</option>
+                                       </select>
+                               </td>
+                       </tr>
 
-       <tr class="pure-table-odd">
-    <td>{lang_Enter_the_title_for_your_site}:</td>
-               <td><input name="newsettings[site_title]" 
value="{value_site_title}"></td>
-       </tr>
-       
-       <tr>
-    <td>{lang_Enter_the_background_color_for_the_site_title}:</td>
-    <td>#<input name="newsettings[login_bg_color_title]" 
value="{value_login_bg_color_title}"></td>
-   </tr>
+                       <tr class="pure-table-odd">
+                               <td>{lang_SMTPDebug}:</td>
+                               <td>
+                                       <select name="newsettings[SMTPDebug]">
+                                               <option 
value="0">{lang_No}</option>
+                                               <option 
value="1"{selected_SMTPDebug_1}>commands</option>
+                                               <option 
value="2"{selected_SMTPDebug_2}>commands and data</option>
+                                       </select>
+                               </td>
+                       </tr>
 
-   <tr class="pure-table-odd">
-    <td>{lang_Enter_the_background_color_for_the_login_page}:</td>
-    <td>#<input name="newsettings[login_bg_color]" 
value="{value_login_bg_color}"></td>
-   </tr>
+                       <tr>
+                               <td>{lang_Debugoutput}:</td>
+                               <td>
+                                       <select name="newsettings[Debugoutput]">
+                                               <option 
value="echo">echo</option>
+                                               <option 
value="html"{selected_Debugoutput_html}>html</option>
+                                               <option 
value="errorlog"{selected_Debugoutput_errorlog}>error log</option>
+                                       </select>
+                               </td>
+                       </tr>
 
-   <tr>
-    <td>{lang_Enter_the_file_name_of_your_logo_at_login}:</td>
-               <td><input name="newsettings[login_logo_file]" 
value="{value_login_logo_file}"></td>
-       </tr>
-       
-       <tr class="pure-table-odd">
-    <td>{lang_Enter_the_file_name_of_your_logo}:</td>
-               <td><input name="newsettings[logo_file]" 
value="{value_logo_file}"></td>
-       </tr>
-       
-       <tr>
-    <td>{lang_Enter_the_url_where_your_logo_should_link_to}:</td>
-    <td>http://<input name="newsettings[login_logo_url]" 
value="{value_login_logo_url}"></td>
-       </tr>
-       
-       <tr class="pure-table-odd">
-               <td>{lang_Enter_the_title_of_your_logo}:</td>
-               <td><input name="newsettings[login_logo_title]" 
value="{value_login_logo_title}"></td>
-       </tr>
 
-   <tr class="th">
-    <td colspan="2">&nbsp;<b>{lang_security}</b></td>
-   </tr>
 
-       <tr class="pure-table-odd">
-               <td>{lang_Use_cookies_to_pass_sessionid}:</td>
-               <td>
-                       <select name="newsettings[usecookies]">
-                               <option value="">{lang_No}</option>
-                               <option 
value="True"{selected_usecookies_True}>{lang_Yes}</option>
-                       </select>
-               </td>
-       </tr>
-       
-       <tr>
-               <td>{lang_check_ip_address_of_all_sessions}:</td>
-               <td>
-                       <select name="newsettings[sessions_checkip]">
-                               <option value="">{lang_No}</option>
-                               <option 
value="True"{selected_sessions_checkip_True}>{lang_Yes}</option>
-                       </select>
-               </td>
-       </tr>
-       
-       <tr class="pure-table-odd">
-               
<td>{lang_Deny_all_users_access_to_grant_other_users_access_to_their_entries_?}:</td>
-               <td>
-                       <select name="newsettings[deny_user_grants_access]">
-                               <option value="">{lang_No}</option>
-                               <option 
value="True"{selected_deny_user_grants_access_True}>{lang_Yes}</option>
-                       </select>
-               </td>
-       </tr>
-       
-       <tr>
-               
<td>{lang_How_many_days_should_entries_stay_in_the_access_log,_before_they_get_deleted_(default_90)_?}:</td>
-    <td>
-     <input name="newsettings[max_access_log_age]" 
value="{value_max_access_log_age}" size="5">
-    </td>
-       </tr>
-       
-       <tr class="pure-table-odd">
-               
<td>{lang_After_how_many_unsuccessful_attempts_to_login,_an_account_should_be_blocked_(default_3)_?}:</td>
-               <td>
-                       <input name="newsettings[num_unsuccessful_id]" 
value="{value_num_unsuccessful_id}" size="5">
-               </td>
-       </tr>
-       
-       <tr>
-               
<td>{lang_After_how_many_unsuccessful_attempts_to_login,_an_IP_should_be_blocked_(default_3)_?}:</td>
-    <td>
-     <input name="newsettings[num_unsuccessful_ip]" 
value="{value_num_unsuccessful_ip}" size="5">
-    </td>
-       </tr>
-       
-       <tr class="pure-table-odd">
-    
<td>{lang_How_many_minutes_should_an_account_or_IP_be_blocked_(default_30)_?}:</td>
-    <td>
-     <input name="newsettings[block_time]" value="{value_block_time}" size="5">
-    </td>
-   </tr>
-   
-   <tr>
-    
<td>{lang_Admin_email_addresses_(comma-separated)_to_be_notified_about_the_blocking_(empty_for_no_notify)}:</td>
-    <td>
-     <input name="newsettings[admin_mails]" value="{value_admin_mails}" 
size="40">
-    </td>
-       </tr>
-       
-       <tr class="pure-table-odd">
-               <td>{lang_Disable_"auto_completion"_of_the_login_form_}:</td>
-               <td>
-                       <select name="newsettings[autocomplete_login]">
-                               <option value="">{lang_No}</option>
-                               <option 
value="True"{selected_autocomplete_login_True}>{lang_Yes}</option>
-                       </select>
-               </td>
-       </tr>
-   <tr>
-    <td>{lang_collect_missing_translations_}:</td>
-    <td>
-      <select name="newsettings[collect_missing_translations]">
-         <option value="">{lang_No}</option>
-        <option 
value="True"{selected_collect_missing_translations_True}>{lang_Yes}</option>
-       </select>
-    </td>
-   </tr>
-   <tr>
-               <td>{lang_support_email_address}:</td>
-               <td>
-                       <input name="newsettings[support_address]" 
value="{value_support_address}" size="40">
-               </td>
-       </tr>
+                       <tr class="th">
+                               <td 
colspan="2">&nbsp;<b>{lang_appearance}</b></td>
+                       </tr>
 
-       
-<!-- END body -->
+                       <tr class="pure-table-odd">
+                               <td>{lang_Enter_the_title_for_your_site}:</td>
+                               <td><input name="newsettings[site_title]" 
value="{value_site_title}"></td>
+                       </tr>
 
-<!-- BEGIN footer -->
-       </tbody>
-</table>
-<div class="button_group">
-      <input type="submit" name="submit" value="{lang_submit}">
-      <input type="submit" name="cancel" value="{lang_cancel}">
-</div>
+                       <tr>
+                               
<td>{lang_Enter_the_background_color_for_the_site_title}:</td>
+                               <td>#<input 
name="newsettings[login_bg_color_title]" 
value="{value_login_bg_color_title}"></td>
+                       </tr>
+
+                       <tr class="pure-table-odd">
+                               
<td>{lang_Enter_the_background_color_for_the_login_page}:</td>
+                               <td>#<input name="newsettings[login_bg_color]" 
value="{value_login_bg_color}"></td>
+                       </tr>
+
+                       <tr>
+                               
<td>{lang_Enter_the_file_name_of_your_logo_at_login}:</td>
+                               <td><input name="newsettings[login_logo_file]" 
value="{value_login_logo_file}"></td>
+                       </tr>
+
+                       <tr class="pure-table-odd">
+                               
<td>{lang_Enter_the_file_name_of_your_logo}:</td>
+                               <td><input name="newsettings[logo_file]" 
value="{value_logo_file}"></td>
+                       </tr>
+
+                       <tr>
+                               
<td>{lang_Enter_the_url_where_your_logo_should_link_to}:</td>
+                               <td>http://<input 
name="newsettings[login_logo_url]" value="{value_login_logo_url}"></td>
+                       </tr>
+
+                       <tr class="pure-table-odd">
+                               <td>{lang_Enter_the_title_of_your_logo}:</td>
+                               <td><input name="newsettings[login_logo_title]" 
value="{value_login_logo_title}"></td>
+                       </tr>
+
+                       <tr class="th">
+                               <td 
colspan="2">&nbsp;<b>{lang_security}</b></td>
+                       </tr>
+
+                       <tr class="pure-table-odd">
+                               <td>{lang_Use_cookies_to_pass_sessionid}:</td>
+                               <td>
+                                       <select name="newsettings[usecookies]">
+                                               <option 
value="">{lang_No}</option>
+                                               <option 
value="True"{selected_usecookies_True}>{lang_Yes}</option>
+                                       </select>
+                               </td>
+                       </tr>
+
+                       <tr>
+                               
<td>{lang_check_ip_address_of_all_sessions}:</td>
+                               <td>
+                                       <select 
name="newsettings[sessions_checkip]">
+                                               <option 
value="">{lang_No}</option>
+                                               <option 
value="True"{selected_sessions_checkip_True}>{lang_Yes}</option>
+                                       </select>
+                               </td>
+                       </tr>
+
+                       <tr class="pure-table-odd">
+                               
<td>{lang_Deny_all_users_access_to_grant_other_users_access_to_their_entries_?}:</td>
+                               <td>
+                                       <select 
name="newsettings[deny_user_grants_access]">
+                                               <option 
value="">{lang_No}</option>
+                                               <option 
value="True"{selected_deny_user_grants_access_True}>{lang_Yes}</option>
+                                       </select>
+                               </td>
+                       </tr>
+
+                       <tr>
+                               
<td>{lang_How_many_days_should_entries_stay_in_the_access_log,_before_they_get_deleted_(default_90)_?}:</td>
+                               <td>
+                                       <input 
name="newsettings[max_access_log_age]" value="{value_max_access_log_age}" 
size="5">
+                               </td>
+                       </tr>
+
+                       <tr class="pure-table-odd">
+                               
<td>{lang_After_how_many_unsuccessful_attempts_to_login,_an_account_should_be_blocked_(default_3)_?}:</td>
+                               <td>
+                                       <input 
name="newsettings[num_unsuccessful_id]" value="{value_num_unsuccessful_id}" 
size="5">
+                               </td>
+                       </tr>
+
+                       <tr>
+                               
<td>{lang_After_how_many_unsuccessful_attempts_to_login,_an_IP_should_be_blocked_(default_3)_?}:</td>
+                               <td>
+                                       <input 
name="newsettings[num_unsuccessful_ip]" value="{value_num_unsuccessful_ip}" 
size="5">
+                               </td>
+                       </tr>
+
+                       <tr class="pure-table-odd">
+                               
<td>{lang_How_many_minutes_should_an_account_or_IP_be_blocked_(default_30)_?}:</td>
+                               <td>
+                                       <input name="newsettings[block_time]" 
value="{value_block_time}" size="5">
+                               </td>
+                       </tr>
+
+                       <tr>
+                               
<td>{lang_Admin_email_addresses_(comma-separated)_to_be_notified_about_the_blocking_(empty_for_no_notify)}:</td>
+                               <td>
+                                       <input name="newsettings[admin_mails]" 
value="{value_admin_mails}" size="40">
+                               </td>
+                       </tr>
+
+                       <tr class="pure-table-odd">
+                               
<td>{lang_Disable_"auto_completion"_of_the_login_form_}:</td>
+                               <td>
+                                       <select 
name="newsettings[autocomplete_login]">
+                                               <option 
value="">{lang_No}</option>
+                                               <option 
value="True"{selected_autocomplete_login_True}>{lang_Yes}</option>
+                                       </select>
+                               </td>
+                       </tr>
+                       <tr>
+                               <td>{lang_collect_missing_translations_}:</td>
+                               <td>
+                                       <select 
name="newsettings[collect_missing_translations]">
+                                               <option 
value="">{lang_No}</option>
+                                               <option 
value="True"{selected_collect_missing_translations_True}>{lang_Yes}</option>
+                                       </select>
+                               </td>
+                       </tr>
+                       <tr>
+                               <td>{lang_support_email_address}:</td>
+                               <td>
+                                       <input 
name="newsettings[support_address]" value="{value_support_address}" size="40">
+                               </td>
+                       </tr>
+                       <tr>
+                               <td>{lang_email_domain}:</td>
+                               <td><input name="newsettings[email_domain]" 
value="{value_email_domain}"></td>
+                       </tr>
+
+                       <!-- END body -->
+
+                       <!-- BEGIN footer -->
+               </tbody>
+       </table>
+       <div class="button_group">
+               <input type="submit" name="submit" value="{lang_submit}">
+               <input type="submit" name="cancel" value="{lang_cancel}">
+       </div>
 </form>
 <!-- END footer -->

Modified: branches/dev-syncromind-2/admin/templates/base/custom.xsl
===================================================================
--- branches/dev-syncromind-2/admin/templates/base/custom.xsl   2016-12-18 
13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/admin/templates/base/custom.xsl   2016-12-18 
19:22:14 UTC (rev 16098)
@@ -286,7 +286,7 @@
                                                <xsl:value-of 
select="php:function('lang', 'column name')" />
                                        </td>
                                        <td>
-                                               <input type="text" 
name="values[column_name]" value="{value_column_name}" maxlength="20">
+                                               <input type="text" 
name="values[column_name]" value="{value_column_name}" maxlength="50">
                                                        <xsl:attribute 
name="title">
                                                                <xsl:value-of 
select="php:function('lang', 'enter the name for the column')" />
                                                        </xsl:attribute>


Property changes on: branches/dev-syncromind-2/booking
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/stavangerkommune/booking:9468-12740,12743-12875,12986
/trunk/booking:14937-15027,15165-15215,15253-15304,15306-15337,15341-15398,15476-15607,15613-15652,15654-15732,15814-15838,15892-15997
   + /branches/stavangerkommune/booking:9468-12740,12743-12875,12986
/trunk/booking:14937-15027,15165-15215,15253-15304,15306-15337,15341-15398,15476-15607,15613-15652,15654-15732,15814-15838,15892-15997,15999-16097

Modified: branches/dev-syncromind-2/booking/inc/class.uicommon.inc.php
===================================================================
--- branches/dev-syncromind-2/booking/inc/class.uicommon.inc.php        
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/booking/inc/class.uicommon.inc.php        
2016-12-18 19:22:14 UTC (rev 16098)
@@ -157,6 +157,9 @@
                        {
                                
$GLOBALS['phpgw']->translation->add_app('booking');
                        }
+
+                       phpgwapi_jquery::load_widget('autocomplete');
+
                }
 
                /**

Modified: branches/dev-syncromind-2/eventplanner/inc/class.bobooking.inc.php
===================================================================
--- branches/dev-syncromind-2/eventplanner/inc/class.bobooking.inc.php  
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/inc/class.bobooking.inc.php  
2016-12-18 19:22:14 UTC (rev 16098)
@@ -101,4 +101,26 @@
 
                        return $values;
                }
+
+               public function update_active_status( $ids, $action )
+               {
+                       return 
eventplanner_sobooking::get_instance()->update_active_status($ids, $action);
+               }
+
+               public function update_schedule( $id, $from_ )
+               {
+                       $booking = 
eventplanner_sobooking::get_instance()->read_single($id, true);
+                       $booking->from_ = $from_;
+//                     $application = 
createObject('eventplanner.boapplication')->read_single($entity->application_id);
+//                     $booking->to_ = $booking->from_ + 
((int)$application->timespan * 60);
+                       $booking->customer_id = $booking->customer_id ? 
$booking->customer_id : '';//foreigns key
+
+                       if($booking->validate())
+                       {
+                               return $booking->store();
+                       }
+//                     return 
eventplanner_sobooking::get_instance()->update($booking);
+               }
+
+
        }
\ No newline at end of file

Modified: branches/dev-syncromind-2/eventplanner/inc/class.bocommon.inc.php
===================================================================
--- branches/dev-syncromind-2/eventplanner/inc/class.bocommon.inc.php   
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/inc/class.bocommon.inc.php   
2016-12-18 19:22:14 UTC (rev 16098)
@@ -86,9 +86,27 @@
                        {
                                if(($field_info['action'] & PHPGW_ACL_ADD) ||  
($field_info['action'] & PHPGW_ACL_EDIT))
                                {
-                                       $object->set_field( $field, 
phpgw::get_var($field, $field_info['type'] ) );
+                                       if($field_info['type'] == 'json')
+                                       {
+                                               $values = array();
+                                               $custom_fields = 
$object->get_custom_fields();
+                                               $values_attribute = 
phpgw::get_var('values_attribute');
+
+                                               foreach ($custom_fields as $key 
=> $custom_field)
+                                               {
+                                                       
$values[$custom_field['name']] = $values_attribute[$key]['value'];
+                                               }
+                                               $object->set_field( $field, 
$values);
+                                       }
+                                       else
+                                       {
+                                               $object->set_field( $field, 
phpgw::get_var($field, $field_info['type'] ) );
+                                       }
                                }
                        }
+                       $values_attribute = phpgw::get_var('values_attribute');
+                       $object->set_field( 'values_attribute', 
$values_attribute);
+
                        return $object;
                }
 

Modified: 
branches/dev-syncromind-2/eventplanner/inc/class.bovendor_report.inc.php
===================================================================
--- branches/dev-syncromind-2/eventplanner/inc/class.bovendor_report.inc.php    
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/inc/class.bovendor_report.inc.php    
2016-12-18 19:22:14 UTC (rev 16098)
@@ -85,16 +85,13 @@
                        }
 
                        $values =  
eventplanner_sovendor_report::get_instance()->read($params);
-                       $status_text = 
eventplanner_vendor_report::get_status_list();
                        $dateformat = 
$GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'];
                        foreach ($values['results'] as &$entry)
                        {
-                               $entry['status'] = 
$status_text[$entry['status']];
                                $entry['created'] = 
$GLOBALS['phpgw']->common->show_date($entry['created']);
                                $entry['modified'] = 
$GLOBALS['phpgw']->common->show_date($entry['modified']);
                                $entry['date_start'] = 
$GLOBALS['phpgw']->common->show_date($entry['date_start'], $dateformat);
                                $entry['date_end'] = 
$GLOBALS['phpgw']->common->show_date($entry['date_end'], $dateformat);
-                               $entry['case_officer_id'] = 
$entry['case_officer_id'] ? 
$GLOBALS['phpgw']->accounts->get($entry['case_officer_id'])->__toString() : '';
                        }
                        return $values;
                }

Modified: branches/dev-syncromind-2/eventplanner/inc/class.sobooking.inc.php
===================================================================
--- branches/dev-syncromind-2/eventplanner/inc/class.sobooking.inc.php  
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/inc/class.sobooking.inc.php  
2016-12-18 19:22:14 UTC (rev 16098)
@@ -67,17 +67,26 @@
                protected function update( $object )
                {
                        $this->db->transaction_begin();
+                       $this->update_history($object, $this->fields);
+
+                       parent::update($object);
+
+                       return  $this->db->transaction_commit();
+               }
+
+               protected function update_history( $object, $fields )
+               {
        //              $status_text = eventplanner_booking::get_status_list();
                        $dateformat = 
$GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'];
                        $lang_active = lang('active');
                        $lang_inactive = lang('inactive');
 
                        $original = 
$this->read_single($object->get_id());//returned as array()
-                       foreach ($this->fields as $field => $params)
+                       foreach ($fields as $field => $params)
                        {
                                $new_value = $object->$field;
                                $old_value = $original[$field];
-                               if (!empty($params['history']) && ($new_value 
!= $old_value))
+                               if (!empty($params['history']) && $new_value && 
$old_value && ($new_value != $old_value))
                                {
                                        $label = !empty($params['label']) ? 
lang($params['label']) : $field;
                                        switch ($field)
@@ -90,6 +99,16 @@
                                                        $old_value = $old_value 
? $lang_active : $lang_inactive;
                                                        $new_value = $new_value 
? $lang_active : $lang_inactive;
                                                        break;
+                                               case 'from_':
+                                               case 'to_':
+                                                       if(($old_value + 
phpgwapi_datetime::user_timezone()) == $new_value)
+                                                       {
+                                                               continue;
+                                                       }
+
+                                                       $old_value = 
$GLOBALS['phpgw']->common->show_date($old_value);
+                                                       $new_value = 
$GLOBALS['phpgw']->common->show_date($new_value);
+                                                       break;
                                                default:
                                                        break;
                                        }
@@ -107,10 +126,36 @@
                                }
 
                        }
+               }
 
-                       parent::update($object);
+               public function update_active_status($ids, $action )
+               {
+                       if(!$ids || !is_array($ids))
+                       {
+                               return;
+                       }
 
+                       switch ($action)
+                       {
+                               case 'disable':
+                                       $sql = "UPDATE eventplanner_booking SET 
active = 0";
+
+                                       break;
+                               case 'enable':
+                                       $sql = "UPDATE eventplanner_booking SET 
active = 1";
+                                       break;
+
+                               default:
+                                       throw new Exception("action {$action} 
not supported");
+                                       break;
+                       }
+
+                       $sql .= 'WHERE id IN(' . implode(',', $ids) . ')';
+                       $this->db->transaction_begin();
+                       
+                       $this->db->query($sql,__LINE__,__FILE__);
+
+
                        return  $this->db->transaction_commit();
                }
-
        }
\ No newline at end of file

Modified: 
branches/dev-syncromind-2/eventplanner/inc/class.sovendor_report.inc.php
===================================================================
--- branches/dev-syncromind-2/eventplanner/inc/class.sovendor_report.inc.php    
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/inc/class.sovendor_report.inc.php    
2016-12-18 19:22:14 UTC (rev 16098)
@@ -82,7 +82,6 @@
                protected function update( $object )
                {
                        $this->db->transaction_begin();
-                       $status_text = 
eventplanner_vendor_report::get_status_list();
                        $dateformat = 
$GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'];
 
                        $original = 
$this->read_single($object->get_id());//returned as array()

Modified: branches/dev-syncromind-2/eventplanner/inc/class.uiapplication.inc.php
===================================================================
--- branches/dev-syncromind-2/eventplanner/inc/class.uiapplication.inc.php      
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/inc/class.uiapplication.inc.php      
2016-12-18 19:22:14 UTC (rev 16098)
@@ -237,14 +237,12 @@
                        $tabs['calendar'] = array(
                                'label' => lang('calendar'),
                                'link' => '#calendar',
-                               'function' => "set_tab('calendar')"
+                               'function' => "set_tab('calendar')",
+                               'disable'       => $id ? false : true
                        );
 
                        $bocommon = CreateObject('property.bocommon');
 
-                       $GLOBALS['phpgw']->jqcal->add_listener('date_start');
-                       $GLOBALS['phpgw']->jqcal->add_listener('date_end');
-
                        $accounts = 
$GLOBALS['phpgw']->acl->get_user_list_right(PHPGW_ACL_EDIT, '.application', 
'eventplanner');
                        $case_officer_options[] = array('id' => '', 'name' => 
lang('select'), 'selected' => 0);
                        foreach ($accounts as $account)
@@ -281,11 +279,11 @@
                        );
 
                        $dates_def = array(
-                               array('key' => 'id',  'hidden' => true),
+                               array('key' => 'id', 'label' => lang('id'), 
'sortable' => true, 'resizeable' => true,'formatter' => 
'JqueryPortico.formatLink'),
                                array('key' => 'from_', 'label' => 
lang('From'), 'sortable' => false, 'resizeable' => true),
                                array('key' => 'to_', 'label' => lang('To'), 
'sortable' => false, 'resizeable' => true),
                                array('key' => 'active', 'label' => 
lang('active'), 'sortable' => false, 'resizeable' => true),
-                               array('key' => 'where', 'label' => 
lang('where'), 'sortable' => false, 'resizeable' => true),
+                               array('key' => 'location', 'label' => 
lang('location'), 'sortable' => false, 'resizeable' => true),
                                array('key' => 'customer_name', 'label' => 
lang('who'), 'sortable' => true, 'resizeable' => true),
                                array('key' => 'comment', 'label' => 
lang('Note'), 'sortable' => false, 'resizeable' => true),
                                array('key' => 'application_id', 'hidden' => 
true),
@@ -331,7 +329,6 @@
                                        'filter_application_id' => $id,
                                        'filter_active' => 1,
                                        'phpgw_return_as' => 'json'))),
-//                             'requestUrl' => "''",
                                'tabletools' => $tabletools,
                                'ColumnDefs' => $dates_def,
                                'data' => json_encode(array()),
@@ -340,8 +337,13 @@
                                        array('disablePagination' => true)
                                )
                        );
-                       $GLOBALS['phpgw']->jqcal2->add_listener('from_', 
'datetime');
-                       $GLOBALS['phpgw']->jqcal2->add_listener('to_', 
'datetime');
+                       $GLOBALS['phpgw']->jqcal->add_listener('date_start');
+                       $GLOBALS['phpgw']->jqcal->add_listener('date_end');
+                       $GLOBALS['phpgw']->jqcal2->add_listener('from_', 
'datetime', $application->date_start, array(
+                                       'min_date' => date('Y/m/d', 
$application->date_start),
+                                       'max_date' => date('Y/m/d', 
$application->date_end)
+                               )
+                       );
 
                        $application_type_list = 
execMethod('eventplanner.bogeneric.get_list', array('type' => 
'application_type'));
                        $types = (array)$application->types;
@@ -351,7 +353,7 @@
                                {
                                        foreach ($types as $type)
                                        {
-                                               if($type['type_id'] == 
$application_type['id'])
+                                               if((!empty($type['type_id']) && 
$type['type_id'] == $application_type['id']) || ($type == 
$application_type['id']))
                                                {
                                                        
$application_type['selected'] = 1;
                                                        break;
@@ -376,6 +378,7 @@
                                'form_action' => 
$GLOBALS['phpgw']->link('/index.php', array('menuaction' => 
'eventplanner.uiapplication.save')),
                                'cancel_url' => 
$GLOBALS['phpgw']->link('/index.php', array('menuaction' => 
'eventplanner.uiapplication.index',)),
                                'application' => $application,
+                               'new_vendor_url' => 
self::link(array('menuaction' => 'eventplanner.uivendor.add')),
                                'list_case_officer' => array('options' => 
$case_officer_options),
                                'cat_select' => 
$this->cats->formatted_xslt_list(array(
                                        'select_name' => 'category_id',

Modified: branches/dev-syncromind-2/eventplanner/inc/class.uibooking.inc.php
===================================================================
--- branches/dev-syncromind-2/eventplanner/inc/class.uibooking.inc.php  
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/inc/class.uibooking.inc.php  
2016-12-18 19:22:14 UTC (rev 16098)
@@ -1,5 +1,5 @@
 <?php
-/**
+       /**
         * phpGroupWare - eventplanner: a part of a Facilities Management 
System.
         *
         * @author Sigurd Nes <address@hidden>
@@ -41,9 +41,10 @@
                        'view' => true,
                        'edit' => true,
                        'save' => true,
-                       'save_ajax'     => true
+                       'save_ajax' => true,
+                       'update_active_status' => true,
+                       'update_schedule'               => true
                );
-
                protected
                        $fields,
                        $permissions;
@@ -58,7 +59,6 @@
                        $this->permissions = 
eventplanner_booking::get_instance()->get_permission_array();
                }
 
-
                public function index()
                {
                        if (empty($this->permissions[PHPGW_ACL_READ]))
@@ -93,8 +93,8 @@
                                                                'type' => 
'checkbox',
                                                                'name' => 
'filter_active',
                                                                'text' => 
lang('showall'),
-                                                               'value' =>  1,
-                                                               'checked'=> 1,
+                                                               'value' => 1,
+                                                               'checked' => 1,
                                                        )
                                                )
                                        )
@@ -105,7 +105,7 @@
                                                'phpgw_return_as' => 'json'
                                        )),
                                        'allrows' => true,
-                                       'new_item' => 
self::link(array('menuaction' => 'eventplanner.uibooking.add')),
+                       //              'new_item' => 
self::link(array('menuaction' => 'eventplanner.uibooking.add')),
                                        'editor_action' => '',
                                        'field' => parent::_get_fields()
                                )
@@ -147,7 +147,6 @@
 
                        self::render_template_xsl('datatable_jquery', $data);
                }
-
                /*
                 * Edit the price item with the id given in the http variable 
'id'
                 */
@@ -177,6 +176,11 @@
                                'link' => '#first_tab',
                                'function' => "set_tab('first_tab')"
                        );
+                       $tabs['reports'] = array(
+                               'label' => lang('reports'),
+                               'link' => '#reports',
+                               'function' => "set_tab('reports')"
+                       );
 
                        $bocommon = CreateObject('property.bocommon');
 
@@ -188,12 +192,12 @@
                        }
 
                        $comments_def = array(
-                               array('key' => 'from_', 'label' => 
lang('From'), 'sortable' => false, 'resizeable' => true),
-                               array('key' => 'to_', 'label' => lang('To'), 
'sortable' => false, 'resizeable' => true),
-                               array('key' => 'author', 'label' => 
lang('User'), 'sortable' => false, 'resizeable' => true),
-                               array('key' => 'comment', 'label' => 
lang('Note'), 'sortable' => false, 'resizeable' => true)
+                               array('key' => 'value_count', 'label' => '#', 
'sortable' => true, 'resizeable' => true),
+                               array('key' => 'value_date', 'label' => 
lang('Date'), 'sortable' => true, 'resizeable' => true),
+                               array('key' => 'author', 'label' => 
lang('User'), 'sortable' => true, 'resizeable' => true),
+                               array('key' => 'comment', 'label' => 
lang('Note'), 'sortable' => true, 'resizeable' => true)
                        );
- 
+
                        $datatable_def[] = array(
                                'container' => 'datatable-container_0',
                                'requestUrl' => "''",
@@ -205,26 +209,171 @@
                                )
                        );
 
+                       $vendor_report_def = array(
+                               array('key' => 'id', 'label' => lang('id'), 
'sortable' => true, 'resizeable' => true,'formatter' => 
'JqueryPortico.formatLink'),
+                               array('key' => 'created', 'label' => 
lang('Date'), 'sortable' => true, 'resizeable' => true),
+                       );
+
+                       $vendor_report = array();
+
+                       $tabletools = array(
+                               array(
+                                       'my_name' => 'add',
+                                       'text' => lang('add'),
+                                       'type' => 'custom',
+                                       'className' => 'add',
+                                       'custom_code' => "
+                                                               
add_report('vendor');"
+                               )
+                       );
+
+                       $datatable_def[] = array(
+                               'container' => 'datatable-container_1',
+                               'requestUrl' => 
json_encode(self::link(array('menuaction' => 
'eventplanner.uivendor_report.query',
+                                       'filter_booking_id' => $id,
+                                       'filter_active' => 1,
+                                       'phpgw_return_as' => 'json'))),
+                               'ColumnDefs' => $vendor_report_def,
+                               'data' => json_encode($vendor_report),
+                               'tabletools' => $tabletools,
+                               'config' => array(
+                                       array('disableFilter' => true),
+                                       array('disablePagination' => true)
+                               )
+                       );
+
+                       $customer_report_def = array(
+                               array('key' => 'id', 'label' => lang('id'), 
'sortable' => true, 'resizeable' => true,'formatter' => 
'JqueryPortico.formatLink'),
+                               array('key' => 'created', 'label' => 
lang('Date'), 'sortable' => true, 'resizeable' => true),
+                       );
+
+                       $customer_report = array();
+                       $tabletools = array(
+                               array(
+                                       'my_name' => 'add',
+                                       'text' => lang('add'),
+                                       'type' => 'custom',
+                                       'className' => 'add',
+                                       'custom_code' => "
+                                                               
add_report('vendor');"
+                               )
+                       );
+                       $datatable_def[] = array(
+                               'container' => 'datatable-container_2',
+//                             'requestUrl' => 
json_encode(self::link(array('menuaction' => 
'eventplanner.uicustomer_report.query',
+//                                     'filter_booking_id' => $id,
+//                                     'filter_active' => 1,
+//                                     'phpgw_return_as' => 'json'))),
+                               'requestUrl' => "''",
+                               'ColumnDefs' => $customer_report_def,
+                               'data' => json_encode($customer_report),
+                               'tabletools' => $tabletools,
+                               'config' => array(
+                                       array('disableFilter' => true),
+                                       array('disablePagination' => true)
+                               )
+                       );
+
+                       $application = 
createObject('eventplanner.boapplication')->read_single($booking->application_id);
+
+//                     $GLOBALS['phpgw']->jqcal2->add_listener('from_', 
'datetime', $booking->from_, array(
+//                                     'min_date' => date('Y/m/d', 
$application->date_start),
+//                                     'max_date' => date('Y/m/d', 
$application->date_end)
+//                             )
+//                     );
+
+                       $application_type_list = 
execMethod('eventplanner.bogeneric.get_list', array('type' => 
'application_type'));
+                       $types = (array)$application->types;
+                       if($types)
+                       {
+                               foreach ($application_type_list as 
&$application_type)
+                               {
+                                       foreach ($types as $type)
+                                       {
+                                               if((!empty($type['type_id']) && 
$type['type_id'] == $application_type['id']) || ($type == 
$application_type['id']))
+                                               {
+                                                       
$application_type['selected'] = 1;
+                                                       break;
+                                               }
+                                       }
+                               }
+                       }
+
                        $data = array(
                                'datatable_def' => $datatable_def,
                                'form_action' => 
$GLOBALS['phpgw']->link('/index.php', array('menuaction' => 
'eventplanner.uibooking.save')),
                                'cancel_url' => 
$GLOBALS['phpgw']->link('/index.php', array('menuaction' => 
'eventplanner.uibooking.index',)),
                                'booking' => $booking,
+                               'application' => $application,
+                               'application_type_list' => 
$application_type_list,
+                               'new_customer_url' => 
self::link(array('menuaction' => 'eventplanner.uicustomer.add')),
+                               'application_url' => 
self::link(array('menuaction' => 'eventplanner.uiapplication.edit', 'id' => 
$booking->application_id)),
+                               'customer_url' => self::link(array('menuaction' 
=> 'eventplanner.uicustomer.edit', 'id' => $booking->customer_id)),
                                'mode' => $mode,
                                'tabs' => 
phpgwapi_jquery::tabview_generate($tabs, $active_tab),
                                'value_active_tab' => $active_tab
                        );
                        phpgwapi_jquery::formvalidator_generate(array());
                        self::add_javascript('eventplanner', 'portico', 
'booking.edit.js');
+                       phpgwapi_jquery::load_widget('autocomplete');
                        self::render_template_xsl(array('booking', 
'datatable_inline'), array($mode => $data));
                }
-               
+
                public function save()
                {
                        parent::save();
                }
+
                public function save_ajax()
                {
                        return parent::save(true);
                }
+
+               public function update_active_status()
+               {
+                       $ids = phpgw::get_var('ids', 'int');
+                       $action = phpgw::get_var('action', 'string');
+
+                       if ($this->bo->update_active_status($ids, $action))
+                       {
+                               return array(
+                                       'status_kode' => 'ok',
+                                       'status' => lang('ok'),
+                                       'msg' => lang('messages_saved_form')
+                               );
+                       }
+                       else
+                       {
+                               return array
+                               (
+                                       'status_kode' => 'error',
+                                       'status' => lang('error'),
+                                       'msg' => lang('messages_form_error')
+                               );
+                       }
+               }
+
+               public function update_schedule( )
+               {
+                       $id = phpgw::get_var('id', 'int');
+                       $from_ = phpgw::get_var('from_', 'date');
+                       if ($this->bo->update_schedule($id, $from_))
+                       {
+                               return array(
+                                       'status_kode' => 'ok',
+                                       'status' => lang('ok'),
+                                       'msg' => lang('messages_saved_form')
+                               );
+                       }
+                       else
+                       {
+                               return array
+                               (
+                                       'status_kode' => 'error',
+                                       'status' => lang('error'),
+                                       'msg' => lang('messages_form_error')
+                               );
+                       }
+
+               }
        }
\ No newline at end of file

Modified: branches/dev-syncromind-2/eventplanner/inc/class.uicommon.inc.php
===================================================================
--- branches/dev-syncromind-2/eventplanner/inc/class.uicommon.inc.php   
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/inc/class.uicommon.inc.php   
2016-12-18 19:22:14 UTC (rev 16098)
@@ -53,7 +53,7 @@
                {
                        parent::__construct();
                        $called_class = get_called_class();
-                       $this->called_class_arr = explode('_', $called_class);
+                       $this->called_class_arr = explode('_', $called_class, 
2);
                }
 
 
@@ -186,6 +186,15 @@
                                }
                                else
                                {
+                                       foreach ($this->fields as $field => 
$field_info)
+                                       {
+                                               $_temp = $object->$field;
+                                               if($_temp && !is_array($_temp))
+                                               {
+                                                       $object->$field = 
htmlspecialchars_decode(str_replace(array('&amp;','&#40;', '&#41;', 
'&#61;','&#8722;&#8722;','&#59;'), array('&','(', ')', '=', '--',';'), 
$_temp),ENT_QUOTES);
+                                               }
+                                       }
+
                                        $this->edit(array('object'      => 
$object, 'active_tab' => $active_tab));
                                }
                        }

Modified: branches/dev-syncromind-2/eventplanner/inc/class.uicustomer.inc.php
===================================================================
--- branches/dev-syncromind-2/eventplanner/inc/class.uicustomer.inc.php 
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/inc/class.uicustomer.inc.php 
2016-12-18 19:22:14 UTC (rev 16098)
@@ -41,6 +41,7 @@
                        'view' => true,
                        'edit' => true,
                        'save' => true,
+                       'get' => true
                );
 
                protected
@@ -235,7 +236,27 @@
                        self::add_javascript('eventplanner', 'portico', 
'customer.edit.js');
                        self::render_template_xsl(array('customer', 
'datatable_inline'), array($mode => $data));
                }
-               
+
+               /*
+                * Get the customer with the id given in the http variable 'id'
+                */
+
+               public function get( $id = 0 )
+               {
+                       if (empty($this->permissions[PHPGW_ACL_ADD]))
+                       {
+                               phpgw::no_access();
+                       }
+
+                       $id = !empty($id) ? $id : phpgw::get_var('id', 'int');
+
+                       $customer = $this->bo->read_single($id)->toArray();
+
+                       unset($customer['secret']);
+
+                       return $customer;
+               }
+
                public function save()
                {
                        parent::save();

Modified: 
branches/dev-syncromind-2/eventplanner/inc/class.uivendor_report.inc.php
===================================================================
--- branches/dev-syncromind-2/eventplanner/inc/class.uivendor_report.inc.php    
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/inc/class.uivendor_report.inc.php    
2016-12-18 19:22:14 UTC (rev 16098)
@@ -45,7 +45,8 @@
 
                protected
                        $fields,
-                       $permissions;
+                       $permissions,
+                       $custom_fields;
 
                public function __construct()
                {
@@ -59,22 +60,7 @@
                        $this->custom_fields = 
eventplanner_vendor_report::get_instance()->get_custom_fields();
                }
 
-               private function get_status_options( $selected = 0 )
-               {
-                       $status_options = array();
-                       $status_list = 
eventplanner_vendor_report::get_status_list();
 
-                       foreach ($status_list as $_key => $_value)
-                       {
-                               $status_options[] = array(
-                                       'id' => $_key,
-                                       'name' => $_value,
-                                       'selected' => $_key == $selected ? 1 : 0
-                               );
-                       }
-                       return $status_options;
-               }
-
                private function _get_filters()
                {
                        $combos = array();
@@ -88,35 +74,6 @@
                                'requestGenerator' => 'requestWithVendorFilter'
                        );
 
-                       $status_options = $this->get_status_options();
-                       array_unshift($status_options, array('id' => '','name' 
=> lang('all')));
-
-                       $combos[] = array(
-                               'type' => 'filter',
-                               'name' => 'filter_status',
-                               'extra' => '',
-                               'text' => lang('status'),
-                               'list' => $status_options
-                       );
-
-                       $categories = 
$this->cats->formatted_xslt_list(array('format' => 'filter',
-                                       'selected' => $this->cat_id, 'globals' 
=> true, 'use_acl' => $this->_category_acl));
-                       $default_value = array('cat_id' => '', 'name' => 
lang('no category'));
-                       array_unshift($categories['cat_list'], $default_value);
-
-                       $_categories = array();
-                       foreach ($categories['cat_list'] as $_category)
-                       {
-                               $_categories[] = array('id' => 
$_category['cat_id'], 'name' => $_category['name']);
-                       }
-
-                       $combos[] = array('type' => 'filter',
-                               'name' => 'filter_category_id',
-                               'extra' => '',
-                               'text' => lang('category'),
-                               'list' => $_categories
-                       );
-
                        return $combos;
 
                }
@@ -150,7 +107,7 @@
                                                'phpgw_return_as' => 'json'
                                        )),
                                        'allrows' => true,
-                                       'new_item' => 
self::link(array('menuaction' => 'eventplanner.uivendor_report.add')),
+       //                              'new_item' => 
self::link(array('menuaction' => 'eventplanner.uivendor_report.add')),
                                        'editor_action' => '',
                                        'field' => parent::_get_fields()
                                )
@@ -223,7 +180,28 @@
                                $vendor_report = $this->bo->read_single($id);
                        }
 
-                       $custom_values = $vendor_report->json_representation;
+                       $booking_id = $vendor_report->booking_id ? 
$vendor_report->booking_id : phpgw::get_var('booking_id', 'int');
+                       $booking = 
createObject('eventplanner.bobooking')->read_single($booking_id);
+
+                       $application = 
createObject('eventplanner.boapplication')->read_single($booking->application_id);
+                       $application_type_list = 
execMethod('eventplanner.bogeneric.get_list', array('type' => 
'application_type'));
+                       $types = (array)$application->types;
+                       if($types)
+                       {
+                               foreach ($application_type_list as 
&$application_type)
+                               {
+                                       foreach ($types as $type)
+                                       {
+                                               if((!empty($type['type_id']) && 
$type['type_id'] == $application_type['id']) || ($type == 
$application_type['id']))
+                                               {
+                                                       
$application_type['selected'] = 1;
+                                                       break;
+                                               }
+                                       }
+                               }
+                       }
+
+                       $custom_values = $vendor_report->json_representation ? 
$vendor_report->json_representation : array();
                        $custom_fields = 
createObject('booking.custom_fields','eventplanner');
                        $fields = $this->custom_fields;
                        foreach ($fields as $attrib_id => &$attrib)
@@ -259,8 +237,10 @@
                                'form_action' => 
$GLOBALS['phpgw']->link('/index.php', array('menuaction' => 
'eventplanner.uivendor_report.save')),
                                'cancel_url' => 
$GLOBALS['phpgw']->link('/index.php', array('menuaction' => 
'eventplanner.uivendor_report.index',)),
                                'vendor_report' => $vendor_report,
-                               'status_list' => array('options' => 
$this->get_status_options($vendor_report->status)),
-                               'vendor_report_type_list' => 
$vendor_report_type_list,
+                               'booking'               => $booking,
+                               'application'   => $application,
+                               'application_type_list' => 
$application_type_list,
+                               'booking_url' => self::link(array('menuaction' 
=> 'eventplanner.uibooking.edit', 'id' => $booking->id, 'active_tab' => 
'reports')),
                                'mode' => $mode,
                                'tabs' => 
phpgwapi_jquery::tabview_generate($tabs, $active_tab),
                                'value_active_tab' => $active_tab,
@@ -269,7 +249,7 @@
                        phpgwapi_jquery::formvalidator_generate(array('date', 
'security', 'file'));
                        phpgwapi_jquery::load_widget('autocomplete');
                        self::add_javascript('eventplanner', 'portico', 
'vendor_report.edit.js');
-                       self::render_template_xsl(array('vendor_report', 
'datatable_inline', 'attributes_form'), array($mode => $data));
+                       
self::render_template_xsl(array('vendor_report','application_info', 
'datatable_inline', 'attributes_form'), array($mode => $data));
                }
 
                

Modified: 
branches/dev-syncromind-2/eventplanner/inc/model/class.application.inc.php
===================================================================
--- branches/dev-syncromind-2/eventplanner/inc/model/class.application.inc.php  
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/inc/model/class.application.inc.php  
2016-12-18 19:22:14 UTC (rev 16098)
@@ -177,7 +177,7 @@
                                        ),
                                'description' => array('action'=> PHPGW_ACL_ADD 
| PHPGW_ACL_EDIT,
                                        'type' => 'string',
-                                       'label' => 'description',
+                                       'label' => 'application description',
                                        'sortable' => false,
                                        ),
                                'remark' => array('action'=> PHPGW_ACL_ADD | 
PHPGW_ACL_EDIT,
@@ -210,28 +210,6 @@
                                        'label' => 'contact phone',
                                        'history' => true,
                                        ),
-       /*                      'customer_identifier_type' => array(
-                                       'action'=> PHPGW_ACL_ADD | 
PHPGW_ACL_EDIT,
-                                       'type' => 'string',
-                                       'required' => true,
-                                       'label' => 'customer_identifier_type',
-                                       ),
-                               'customer_ssn' => array(
-                                       'action'=> PHPGW_ACL_READ | 
PHPGW_ACL_ADD | PHPGW_ACL_EDIT,
-                                       'type' => 'string',
-                                       'required' => false,
-                                       'query' => true,
-                                       'sf_validator' => 
createObject('booking.sfValidatorNorwegianSSN', array('full_required' => 
false)),
-                                       'label' => 'customer_ssn'
-                                       ),
-                               'customer_organization_number' => array(
-                                       'action'=> PHPGW_ACL_READ | 
PHPGW_ACL_ADD | PHPGW_ACL_EDIT,
-                                       'type' => 'string',
-                                       'required' => false,
-                                       'query' => true,
-                                       'sf_validator' => 
createObject('booking.sfValidatorNorwegianOrganizationNumber', array(), 
array('invalid' => '%field% is invalid')),
-                                       'label' => 
'customer_organization_number'
-                                       ),*/
                                'vendor_id' => array('action'=> PHPGW_ACL_ADD | 
PHPGW_ACL_EDIT,
                                        'type' => 'int',
                                        'label' => 'vendor',

Modified: branches/dev-syncromind-2/eventplanner/inc/model/class.booking.inc.php
===================================================================
--- branches/dev-syncromind-2/eventplanner/inc/model/class.booking.inc.php      
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/inc/model/class.booking.inc.php      
2016-12-18 19:22:14 UTC (rev 16098)
@@ -51,6 +51,11 @@
                        $application_name,
                        $customer_id,
                        $customer_name,
+                       $customer_contact_name,
+                       $customer_contact_email,
+                       $customer_contact_phone,
+                       $location,
+                       $comments,
                        $created,
                        $secret;
 
@@ -148,6 +153,49 @@
                                                'column' => 'name'
                                                )
                                        ),
+                               'customer_contact_name' => array(
+                                       'action'=> PHPGW_ACL_ADD | 
PHPGW_ACL_EDIT,
+                                       'type' => 'string',
+                                       'required' => false,
+                                       'query' => true,
+                                       'label' => 'customer contact name',
+                                       'history' => true,
+                                       ),
+                               'customer_contact_email' => array(
+                                       'action'=> PHPGW_ACL_READ | 
PHPGW_ACL_ADD | PHPGW_ACL_EDIT,
+                                       'type' => 'string',
+                                       'required' => false,
+                                       'query' => true,
+                                       'sf_validator' => 
createObject('booking.sfValidatorEmail', array(), array('invalid' => '%field% 
is invalid')),
+                                       'label' => 'customer contact email',
+                                       'history' => true,
+                                       ),
+                               'customer_contact_phone' => array(
+                                       'action'=> PHPGW_ACL_ADD | 
PHPGW_ACL_EDIT,
+                                       'type' => 'string',
+                                       'required' => false,
+                                       'query' => true,
+                                       'label' => 'customer contact phone',
+                                       'history' => true,
+                                       ),
+                               'location' => array(
+                                       'action'=> PHPGW_ACL_ADD | 
PHPGW_ACL_EDIT,
+                                       'type' => 'string',
+                                       'required' => false,
+                                       'query' => true,
+                                       'label' => 'location',
+                                       'history' => true,
+                                       ),
+                               'comments' => array(
+                                       'action'=> PHPGW_ACL_ADD | 
PHPGW_ACL_EDIT,
+                                       'type' => 'string',
+                                       'manytomany' => array(
+                                               'input_field' => 
'comment_input',
+                                               'table' => 
'eventplanner_booking_comment',
+                                               'key' => 'booking_id',
+                                               'column' => array('time', 
'author', 'comment', 'type'),
+                                               'order' => array('sort' => 
'time', 'dir' => 'ASC')
+                                       )),
                                'created' => array('action'=> PHPGW_ACL_READ,
                                        'type' => 'date',
                                        'label' => 'created',
@@ -189,17 +237,26 @@
                                );
                        }
 
-                       $entity->modified = time();
-                       $entity->active = (int)$entity->active;
+                       if(!$entity->get_id())
+                       {
+                               $entity->status = 
eventplanner_booking::STATUS_REGISTERED;
+                               $entity->secret = self::generate_secret();
+                       }
 
-                       if($entity->get_id())
+                       if (empty($entity->completed))
                        {
+                               $entity->completed = 0;
                        }
-                       else
+
+                       if (!empty($entity->application_id))
                        {
-                               $entity->status = 
eventplanner_booking::STATUS_REGISTERED;
-                               $entity->secret = self::generate_secret();
+                               $application = 
createObject('eventplanner.boapplication')->read_single($entity->application_id);
+                               $entity->to_ = $entity->from_ + 
((int)$application->timespan * 60);
                        }
+
+                       $entity->modified = time();
+                       $entity->active = (int)$entity->active;
+
                }
 
                protected function generate_secret( $length = 10 )

Modified: 
branches/dev-syncromind-2/eventplanner/inc/model/class.customer.inc.php
===================================================================
--- branches/dev-syncromind-2/eventplanner/inc/model/class.customer.inc.php     
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/inc/model/class.customer.inc.php     
2016-12-18 19:22:14 UTC (rev 16098)
@@ -125,7 +125,7 @@
                                        'sortable' => false,
                                        ),
                                'name' => array(
-                                       'action'=> PHPGW_ACL_ADD | 
PHPGW_ACL_EDIT,
+                                       'action'=> PHPGW_ACL_READ | 
PHPGW_ACL_ADD | PHPGW_ACL_EDIT,
                                        'type' => 'string',
                                        'label' => 'name',
                                        'required' => true,
@@ -137,7 +137,7 @@
                                        ),
                                'address_2' => array('action'=> PHPGW_ACL_ADD | 
PHPGW_ACL_EDIT,
                                        'type' => 'string',
-                                       'required' => true),
+                                       'required' => false),
                                'zip_code' => array('action'=> PHPGW_ACL_ADD | 
PHPGW_ACL_EDIT,
                                        'type' => 'string',
                                        'required' => true),
@@ -247,6 +247,10 @@
                                        'type' => 'comment'
                                );
                        }
+                       if (!empty($entity->customer_organization_number))
+                       {
+                               $entity->customer_organization_number = 
str_replace(' ', '', $entity->customer_organization_number);
+                       }
 
                        $entity->modified = time();
                        $entity->active = (int)$entity->active;

Modified: branches/dev-syncromind-2/eventplanner/inc/model/class.vendor.inc.php
===================================================================
--- branches/dev-syncromind-2/eventplanner/inc/model/class.vendor.inc.php       
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/inc/model/class.vendor.inc.php       
2016-12-18 19:22:14 UTC (rev 16098)
@@ -125,7 +125,7 @@
                                        'sortable' => false,
                                        ),
                                'name' => array(
-                                       'action'=> PHPGW_ACL_ADD | 
PHPGW_ACL_EDIT,
+                                       'action'=> PHPGW_ACL_READ | 
PHPGW_ACL_ADD | PHPGW_ACL_EDIT,
                                        'type' => 'string',
                                        'label' => 'name',
                                        'required' => true,
@@ -137,7 +137,7 @@
                                        ),
                                'address_2' => array('action'=> PHPGW_ACL_ADD | 
PHPGW_ACL_EDIT,
                                        'type' => 'string',
-                                       'required' => true),
+                                       'required' => false),
                                'zip_code' => array('action'=> PHPGW_ACL_ADD | 
PHPGW_ACL_EDIT,
                                        'type' => 'string',
                                        'required' => true),

Modified: 
branches/dev-syncromind-2/eventplanner/inc/model/class.vendor_report.inc.php
===================================================================
--- 
branches/dev-syncromind-2/eventplanner/inc/model/class.vendor_report.inc.php    
    2016-12-18 13:23:14 UTC (rev 16097)
+++ 
branches/dev-syncromind-2/eventplanner/inc/model/class.vendor_report.inc.php    
    2016-12-18 19:22:14 UTC (rev 16098)
@@ -26,7 +26,6 @@
         * @subpackage vendor_report
         * @version $Id: $
         */
-
        phpgw::import_class('eventplanner.bovendor_report');
 
        include_class('phpgwapi', 'model', 'inc/model/');
@@ -34,19 +33,15 @@
        class eventplanner_vendor_report extends phpgwapi_model
        {
 
-               const STATUS_REGISTERED = 1;
-               const STATUS_PENDING = 2;
-               const STATUS_REJECTED = 3;
-               const STATUS_APPROVED = 4;
                const acl_location = '.vendor_report';
 
                protected
                        $id,
+                       $booking_id,
+                       $booking_location,
                        $created,
                        $json_representation;
-
                static $custom_fields = array();
-
                protected $field_of_responsibility_name = '.vendor_report';
 
                public function __construct( int $id = null )
@@ -65,16 +60,6 @@
                        return new eventplanner_vendor_report();
                }
 
-               public static function get_status_list()
-               {
-                       return array(
-                               self::STATUS_REGISTERED => lang('registered'),
-                               self::STATUS_PENDING    => lang('pending'),
-                               self::STATUS_REJECTED => lang('rejected'),
-                               self::STATUS_APPROVED   => lang('approved')
-                       );
-               }
-
                public function set_custom_fields()
                {
                        $this->custom_fields = 
$GLOBALS['phpgw']->custom_fields->find('eventplanner', self::acl_location, 0, 
'', 'ASC', 'attrib_sort', true, true);
@@ -82,7 +67,7 @@
 
                public function get_custom_fields()
                {
-                       if(! $this->custom_fields)
+                       if (!$this->custom_fields)
                        {
                                $this->set_custom_fields();
                        }
@@ -91,43 +76,58 @@
 
                public function get_organized_fields()
                {
-                       if(! $this->custom_fields)
+                       if (!$this->custom_fields)
                        {
                                $this->custom_fields = 
createObject('booking.custom_fields', 
'eventplanner')->get_organized_fields(self::acl_location);
                        }
                        return $this->custom_fields;
                }
 
-
-               public static function get_fields($debug = true)
+               public static function get_fields( $debug = true )
                {
-                        $fields = array(
-                               'id' => array('action'=> PHPGW_ACL_READ,
+                       $fields = array(
+                               'id' => array('action' => PHPGW_ACL_READ,
                                        'type' => 'int',
                                        'label' => 'id',
-                                       'sortable'=> true,
+                                       'sortable' => true,
                                        'formatter' => 
'JqueryPortico.formatLink',
-                                       ),
-                               'created' => array('action'=> PHPGW_ACL_READ | 
PHPGW_ACL_ADD,
+                               ),
+                               'booking_id' => array('action' => PHPGW_ACL_ADD 
| PHPGW_ACL_EDIT,
+                                       'type' => 'int',
+                                       'label' => 'booking',
+                                       'sortable' => true,
+                                       'required' => true,
+                               ),
+                               'booking_location' => array('action' => 
PHPGW_ACL_READ,
+                                       'type' => 'string',
+                                       'query' => true,
+                                       'label' => 'location',
+                                       'join' => array(
+                                               'table' => 
'eventplanner_booking',
+                                               'fkey' => 'booking_id',
+                                               'key' => 'id',
+                                               'column' => 'location'
+                                       )
+                               ),
+                               'created' => array('action' => PHPGW_ACL_READ | 
PHPGW_ACL_ADD,
                                        'type' => 'date',
                                        'label' => 'created',
                                        'sortable' => true,
-                                       ),
-                               'json_representation' => array('action'=> 
PHPGW_ACL_ADD | PHPGW_ACL_EDIT,
-                                       'type' => 'jsonb',
+                               ),
+                               'json_representation' => array('action' => 
PHPGW_ACL_ADD | PHPGW_ACL_EDIT,
+                                       'type' => 'json',
                                        'sortable' => false,
-                                       ),
+                               ),
                        );
 
-                       if($debug)
+                       if ($debug)
                        {
                                foreach ($fields as $field => $field_info)
                                {
-                                       
if(!property_exists('eventplanner_vendor_report', $field))
+                                       if 
(!property_exists('eventplanner_vendor_report', $field))
                                        {
-                                          
phpgwapi_cache::message_set('$'."{$field},", 'error');
+                                               phpgwapi_cache::message_set('$' 
. "{$field},", 'error');
                                        }
-
                                }
                        }
                        return $fields;
@@ -150,7 +150,7 @@
                        $entity->modified = time();
                        $entity->active = (int)$entity->active;
 
-                       if(!$entity->get_id())
+                       if (!$entity->get_id())
                        {
                                $entity->created = time();
                                $entity->owner_id = 
$GLOBALS['phpgw_info']['user']['account_id'];
@@ -174,8 +174,8 @@
                        return 
eventplanner_bovendor_report::get_instance()->store($this);
                }
 
-               public function read_single($id)
+               public function read_single( $id )
                {
                        return 
eventplanner_bovendor_report::get_instance()->read_single($id, true);
                }
-       }
+       }
\ No newline at end of file

Modified: branches/dev-syncromind-2/eventplanner/js/portico/application.edit.js
===================================================================
--- branches/dev-syncromind-2/eventplanner/js/portico/application.edit.js       
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/js/portico/application.edit.js       
2016-12-18 19:22:14 UTC (rev 16098)
@@ -1,10 +1,43 @@
 
+var lang;
 var oArgs = {menuaction: 'eventplanner.uivendor.index', organization_number: 
true};
 var strURL = phpGWLink('index.php', oArgs, true);
 JqueryPortico.autocompleteHelper(strURL, 'vendor_name', 'vendor_id', 
'vendor_container', 'name');
 
+validate_submit = function ()
+{
+       var active_tab = $("#active_tab").val();
+       conf = {
+               //      modules: 'date, security, file',
+               validateOnBlur: false,
+               scrollToTopOnError: true,
+               errorMessagePosition: 'top'
+                       //      language: validateLanguage
+       };
+
+       var test = $('form').isValid(false, conf);
+       if (!test)
+       {
+               return;
+       }
+
+       if (active_tab === 'first_tab')
+       {
+               $('#tab-content').responsiveTabs('activate', 1);
+               $("#save_button").val(lang['save']);
+               $("#save_button_bottom").val(lang['save']);
+               $("#active_tab").val('demands');
+       }
+       else
+       {
+               document.form.submit();
+       }
+};
+
 $(document).ready(function ()
 {
+       check_button_names();
+
        $("#number_of_units").change(function ()
        {
                calculate_total_amount();
@@ -52,16 +85,15 @@
                $("#to_").val($("#from_").val());
        });
 
-       var width = 200;
 
        $("#submitbox").css({
                position: 'absolute',
                right: '10px',
                border: '1px solid #B5076D',
                padding: '0 5px 5px 5px',
-               width: width + 'px',
+               width: $("#submitbox").width() + 'px',
                "background - color": '#FFF',
-               display: "block",
+               display: "block"
        });
 
        var offset = $("#submitbox").offset();
@@ -108,24 +140,39 @@
 
 });
 
-function set_tab(tab)
+check_button_names = function ()
 {
-       $("#active_tab").val(tab);
+       var tab = $("#active_tab").val();
        if (tab === 'calendar')
        {
                $("#floating-box").hide();
                $("#submit_group_bottom").hide();
        }
+       else if (tab === 'first_tab')
+       {
+               $("#save_button").val(lang['next']);
+               $("#save_button_bottom").val(lang['next']);
+               $("#floating-box").show();
+               $("#submit_group_bottom").show();
+       }
        else
        {
+               $("#save_button").val(lang['save']);
+               $("#save_button_bottom").val(lang['save']);
                $("#floating-box").show();
                $("#submit_group_bottom").show();
        }
+};
+
+function set_tab(tab)
+{
+       $("#active_tab").val(tab);
+       check_button_names();
 }
 
 function calculate_total_amount()
 {
-       var total_amount = 0
+       var total_amount = 0;
 
        var number_of_units = $("#number_of_units").val();
        var charge_per_unit = $("#charge_per_unit").val();
@@ -139,7 +186,7 @@
 
 function calculate_stage_size()
 {
-       var total_size = 0
+       var total_size = 0;
 
        var stage_width = $("#stage_width").val();
        var stage_depth = $("#stage_depth").val();
@@ -153,6 +200,12 @@
 
 add_booking = function ()
 {
+       var from_ = $("#from_").val();
+       if (!from_)
+       {
+               return;
+       }
+
        oArgs = {
                menuaction: 'eventplanner.uibooking.save_ajax',
                application_id: $("#application_id").val()
@@ -161,41 +214,76 @@
        var requestUrl = phpGWLink('index.php', oArgs, true);
        var htmlString = '';
        $("#receipt").html("");
+       var data =  {from_: from_, active: 1};
 
-       $.ajax({
-               type: 'POST',
-               dataType: 'json',
-               data: {from_: $("#from_").val(), to_: $("#to_").val(), active: 
1},
-               url: requestUrl,
-               success: function (data)
+       JqueryPortico.execute_ajax(requestUrl,
+               function (result)
                {
-                       if (data != null)
+                       if (result.status_kode === 'ok')
                        {
-                               if (data.status_kode == 'ok')
-                               {
-                                       $("#from_").val('');
-                                       $("#to_").val('');
-                                       htmlString += "<div 
class=\"msg_good\">";
-                               }
-                               else
-                               {
-                                       htmlString += "<div class=\"error\">";
-                               }
-                               htmlString += data.msg;
-                               htmlString += '</div>';
-                               $("#receipt").html(htmlString);
+                               $("#from_").val('');
+                               htmlString += "<div class=\"msg_good\">";
                        }
-               }
-       });
-       JqueryPortico.updateinlineTableHelper('datatable-container_1');
+                       else
+                       {
+                               htmlString += "<div class=\"error\">";
+                       }
+                       htmlString += result.msg;
+                       htmlString += '</div>';
+                       $("#receipt").html(htmlString);
+
+                       
JqueryPortico.updateinlineTableHelper('datatable-container_1');
+
+               }, data, "POST", "json"
+       );
+
 };
 
+update_schedule = function (id)
+{
+       var from_ = $("#from_").val();
+       if (!from_)
+       {
+               return;
+       }
+       oArgs = {menuaction: 'eventplanner.uibooking.update_schedule'};
+
+       var requestUrl = phpGWLink('index.php', oArgs, true);
+       var htmlString = '';
+       $("#receipt").html("");
+
+       var data = {from_: from_, id: id};
+
+       JqueryPortico.execute_ajax(requestUrl,
+               function (result)
+               {
+                       if (result.status_kode === 'ok')
+                       {
+                               $("#from_").val('');
+                               htmlString += "<div class=\"msg_good\">";
+                       }
+                       else
+                       {
+                               htmlString += "<div class=\"error\">";
+                       }
+                       htmlString += result.msg;
+                       htmlString += '</div>';
+                       $("#receipt").html(htmlString);
+
+                       
JqueryPortico.updateinlineTableHelper('datatable-container_1');
+
+               }, data, "POST", "json"
+       );
+
+};
+
 this.onActionsClick = function (action)
 {
        $("#receipt").html("");
        if (action === 'add')
        {
                add_booking();
+               return;
        }
 
        var api = $('#datatable-container_1').dataTable().api();
@@ -213,45 +301,49 @@
        {
                var aData = selected[n];
                ids.push(aData['id']);
+
+               if (action === 'edit')
+               {
+                       if (numSelected > 1)
+                       {
+                               alert('There must be only one...');
+                               return false;
+                       }
+                       update_schedule(aData['id']);
+                       return;
+               }
        }
 
        if (ids.length > 0)
        {
-               var data = {"ids": ids, "action": action, from_: 
$("#from_").val(), to_: $("#to_").val()};
+               var data = {"ids": ids, "action": action, from_: 
$("#from_").val()};
 
-               oArgs = {
-                       menuaction: 'eventplanner.uibooking.update',
-                       application_id: $("#application_id").val()
-               };
+               oArgs = {menuaction: 
'eventplanner.uibooking.update_active_status'};
 
                var requestUrl = phpGWLink('index.php', oArgs, true);
 
-               $.ajax({
-                       type: 'POST',
-                       dataType: 'json',
-                       url: requestUrl,
-                       data: data,
-                       success: function (data)
+               var htmlString = '';
+               $("#receipt").html("");
+
+               JqueryPortico.execute_ajax(requestUrl,
+                       function (result)
                        {
-                               if (data != null)
+                               if (result.status_kode === 'ok')
                                {
-                                       if (data.status_kode == 'ok')
-                                       {
-                                               $("#from_").val('');
-                                               $("#to_").val('');
-                                               htmlString += "<div 
class=\"msg_good\">";
-                                       }
-                                       else
-                                       {
-                                               htmlString += "<div 
class=\"error\">";
-                                       }
-                                       htmlString += data.msg;
-                                       htmlString += '</div>';
-                                       $("#receipt").html(htmlString);
+                                       $("#from_").val('');
+                                       htmlString += "<div 
class=\"msg_good\">";
                                }
-                       }
-               });
+                               else
+                               {
+                                       htmlString += "<div class=\"error\">";
+                               }
+                               htmlString += result.msg;
+                               htmlString += '</div>';
+                               $("#receipt").html(htmlString);
 
-               JqueryPortico.updateinlineTableHelper('datatable-container_4');
+                               
JqueryPortico.updateinlineTableHelper('datatable-container_1');
+
+                       }, data, "POST", "json"
+               );
        }
 };

Copied: branches/dev-syncromind-2/eventplanner/js/portico/booking.edit.js (from 
rev 16097, trunk/eventplanner/js/portico/booking.edit.js)
===================================================================
--- branches/dev-syncromind-2/eventplanner/js/portico/booking.edit.js           
                (rev 0)
+++ branches/dev-syncromind-2/eventplanner/js/portico/booking.edit.js   
2016-12-18 19:22:14 UTC (rev 16098)
@@ -0,0 +1,190 @@
+var customer_id_selection;
+var lang;
+var oArgs = {menuaction: 'eventplanner.uicustomer.index', organization_number: 
true};
+var strURL = phpGWLink('index.php', oArgs, true);
+JqueryPortico.autocompleteHelper(strURL, 'customer_name', 'customer_id', 
'customer_container', 'name');
+
+$(window).on('load', function ()
+{
+       customer_id = $('#customer_id').val();
+       if (customer_id)
+       {
+               customer_id_selection = customer_id;
+       }
+       $("#customer_name").on("autocompleteselect", function (event, ui)
+       {
+               var customer_id = ui.item.value;
+               if (customer_id != customer_id_selection)
+               {
+                       populateCustomerContact(customer_id);
+               }
+       });
+});
+
+function populateCustomerContact(customer_id)
+{
+       customer_id = customer_id || $('#customer_id').val();
+
+       if (!customer_id)
+       {
+               return;
+       }
+       oArgs = {
+               menuaction: 'eventplanner.uicustomer.get',
+               id: customer_id
+       };
+
+       var requestUrl = phpGWLink('index.php', oArgs, true);
+       var data = {};
+
+       JqueryPortico.execute_ajax(requestUrl,
+               function (result)
+               {
+                       $("#customer_contact_name").val(result.contact_name);
+                       $("#customer_contact_email").val(result.contact_email);
+                       $("#customer_contact_phone").val(result.contact_phone);
+
+                       var location = result.address_1;
+                       if (result.address_2)
+                       {
+                               location += "\n" + result.address_2;
+                       }
+                       location += "\n" + result.zip_code;
+                       location += ' ' + result.city;
+                       $("#location").val(location);
+
+               }, data, "POST", "json"
+               );
+}
+
+function set_tab(tab)
+{
+       $("#active_tab").val(tab);
+       if (tab === 'reports')
+       {
+               $("#floating-box").hide();
+               $("#submit_group_bottom").hide();
+       }
+       else
+       {
+               $("#floating-box").show();
+               $("#submit_group_bottom").show();
+       }
+}
+
+add_report = function (type)
+{
+       var oArgs;
+       var win;
+       var booking_id = $("#booking_id").val();
+       if (type === 'vendor')
+       {
+               oArgs = {
+                       menuaction: 'eventplanner.uivendor_report.add',
+                       booking_id: booking_id
+               };
+
+               var requestUrl = phpGWLink('index.php', oArgs);
+               win = window.open(requestUrl, '_blank');
+               win.focus();
+
+       }
+       else if (type === 'customer')
+       {
+               oArgs = {
+                       menuaction: 'eventplanner.uicustomer_report.add',
+                       booking_id: booking_id
+               };
+
+               var requestUrl = phpGWLink('index.php', oArgs);
+               win = window.open(requestUrl, '_blank');
+               win.focus();
+
+       }
+
+};
+validate_submit = function ()
+{
+//     var active_tab = $("#active_tab").val();
+       conf = {
+               validateOnBlur: false,
+               scrollToTopOnError: true,
+               errorMessagePosition: 'top'
+       };
+
+       var test = $('form').isValid(false, conf);
+       if (!test)
+       {
+               return;
+       }
+
+       document.form.submit();
+
+};
+
+
+$(document).ready(function ()
+{
+
+       $("#submitbox").css({
+               position: 'absolute',
+               right: '10px',
+               border: '1px solid #B5076D',
+               padding: '0 5px 5px 5px',
+               width: $("#submitbox").width() + 'px',
+               "background - color": '#FFF',
+               display: "block"
+       });
+       var tab = $("#active_tab").val();
+       if (tab === 'reports')
+       {
+               $("#floating-box").hide();
+               $("#submit_group_bottom").hide();
+       }
+       else
+       {
+               $("#floating-box").show();
+               $("#submit_group_bottom").show();
+       }
+
+       var offset = $("#submitbox").offset();
+       var topPadding = 180;
+
+       if ($("#center_content").length === 1)
+       {
+               $("#center_content").scroll(function ()
+               {
+                       if ($("#center_content").scrollTop() > offset.top)
+                       {
+                               $("#submitbox").stop().animate({
+                                       marginTop: 
$("#center_content").scrollTop() - offset.top + topPadding
+                               }, 100);
+                       }
+                       else
+                       {
+                               $("#submitbox").stop().animate({
+                                       marginTop: 0
+                               }, 100);
+                       }
+               });
+       }
+       else
+       {
+               $(window).scroll(function ()
+               {
+                       if ($(window).scrollTop() > offset.top)
+                       {
+                               $("#submitbox").stop().animate({
+                                       marginTop: $(window).scrollTop() - 
offset.top + topPadding
+                               }, 100);
+                       }
+                       else
+                       {
+                               $("#submitbox").stop().animate({
+                                       marginTop: 0
+                               }, 100);
+                       }
+                       ;
+               });
+       }
+});
\ No newline at end of file

Deleted: branches/dev-syncromind-2/eventplanner/js/portico/demo.edit.js
===================================================================
--- branches/dev-syncromind-2/eventplanner/js/portico/demo.edit.js      
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/js/portico/demo.edit.js      
2016-12-18 19:22:14 UTC (rev 16098)
@@ -1,64 +0,0 @@
-var myDataSource, myDataTable, myContextMenu;
-var tableYUI;
-var myPaginator_0;
-var myDataTable_0;
-
-
-/********************************************************************************
- *
- */
-this.addFooterDatatable = function (paginator, datatable)
-{
-       //call getSumPerPage(name of column) in property.js
-       tmp_sum1 = getSumPerPage('budget', 2, paginator, datatable);
-       tmp_sum2 = getSumPerPage('calculation', 2, paginator, datatable);
-
-       if (typeof (tableYUI) == 'undefined')
-       {
-               tableYUI = YAHOO.util.Dom.getElementsByClassName("yui-dt-data", 
"tbody")[0].parentNode;
-               tableYUI.setAttribute("id", "tableYUI");
-       }
-       else
-       {
-               tableYUI.deleteTFoot();
-       }
-
-       //Create ROW
-       newTR = document.createElement('tr');
-
-       td_sum('Sum');
-       td_sum(tmp_sum1);
-       td_sum(tmp_sum2);
-       td_empty(3);
-
-       myfoot = tableYUI.createTFoot();
-       myfoot.setAttribute("id", "myfoot");
-       myfoot.appendChild(newTR);
-}
-
-/********************************************************************************/
-var FormatterCenter = function (elCell, oRecord, oColumn, oData)
-{
-       elCell.innerHTML = "<center>" + oData + "</center>";
-}
-
-var FormatterRight = function (elCell, oRecord, oColumn, oData)
-{
-       elCell.innerHTML = "<div align=\"right\">" + 
YAHOO.util.Number.format(oData, {thousandsSeparator: " "}) + "</div>";
-}
-
-/********************************************************************************/
-YAHOO.util.Event.addListener(window, "load", function ()
-{
-       var loader = new YAHOO.util.YUILoader();
-       loader.addModule({
-               name: "anyone",
-               type: "js",
-               fullpath: property_js
-       });
-
-       loader.require("anyone");
-       loader.insert();
-});
-
-

Deleted: branches/dev-syncromind-2/eventplanner/js/portico/demo.index.js
===================================================================
--- branches/dev-syncromind-2/eventplanner/js/portico/demo.index.js     
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/js/portico/demo.index.js     
2016-12-18 19:22:14 UTC (rev 16098)
@@ -1,77 +0,0 @@
-//--------------------------------------------------------
-// Declaration of location.index vars
-//--------------------------------------------------------
-// define buttons
-var oMenuButton_0;
-var selectsButtons = [
-       {order: 0, var_URL: 'cat_id', name: 'btn_cat_id', style: 
'categorybutton', dependiente: [
-               ]}
-];
-
-
-var oNormalButton_0, oNormalButton_1, oNormalButton_2, oNormalButton_3;
-var normalButtons = [
-       {order: 0, name: 'btn_search', funct: "onSearchClick"},
-       {order: 1, name: 'btn_new', funct: "onNewClick"},
-       {order: 2, name: 'btn_done', funct: "onDoneClick"},
-       {order: 3, name: 'btn_export', funct: "onDownloadClick"}
-];
-
-// define Text buttons
-var textImput = [
-       {order: 0, name: 'query', id: 'txt_query'}
-];
-
-var toolTips =
-[
-       {name: 'btn_export', title: 'download', description: 'Download table to 
your browser', ColumnDescription: ''}
-]
-
-// define the hidden column in datatable
-var config_values =
-{
-       date_search: 0, //if search has link "Data search"
-       particular_done: "property.uilocation.index"
-}
-
-/********************************************************************************/
-var FormatterRight = function (elCell, oRecord, oColumn, oData)
-{
-       elCell.innerHTML = "<div align=\"right\">" + oData + "</div>";
-}
-
-/****************************************************************************************/
-this.particular_setting = function ()
-{
-       if (flag_particular_setting == 'init')
-       {
-       }
-       else if (flag_particular_setting == 'update')
-       {
-       }
-}
-/****************************************************************************************/
-
-this.myParticularRenderEvent = function ()
-{
-       //don't delete it
-       document.getElementById('txt_query').focus();
-}
-/****************************************************************************************/
-YAHOO.util.Event.addListener(window, "load", function ()
-{
-       YAHOO.util.Dom.getElementsByClassName('toolbar', 
'div')[0].style.display = 'none';
-
-       var loader = new YAHOO.util.YUILoader();
-       loader.addModule({
-               name: "anyone", //module name; must be unique
-               type: "js", //can be "js" or "css"
-               fullpath: property_js //'property_js' have the path for 
property.js, is render in HTML
-       });
-
-       loader.require("anyone");
-
-       //Insert JSON utility on the page
-
-       loader.insert();
-});

Modified: branches/dev-syncromind-2/eventplanner/setup/default_records.inc.php
===================================================================
--- branches/dev-syncromind-2/eventplanner/setup/default_records.inc.php        
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/setup/default_records.inc.php        
2016-12-18 19:22:14 UTC (rev 16098)
@@ -21,6 +21,6 @@
        $GLOBALS['phpgw']->locations->add('.customer', 'customer', 
'eventplanner', $allow_grant = true, $custom_tbl = '', $c_function = true);
        $GLOBALS['phpgw']->locations->add('.vendor', 'vendor', 'eventplanner', 
$allow_grant = true, $custom_tbl = '', $c_function = true);
        $GLOBALS['phpgw']->locations->add('.booking', 'booking', 
'eventplanner', $allow_grant = true, $custom_tbl = '', $c_function = true);
-       $GLOBALS['phpgw']->locations->add('.vendor_report', 'vendor_report', 
'eventplanner', $allow_grant = true, $custom_tbl = '', $c_function = true);
-       $GLOBALS['phpgw']->locations->add('.customer_report', 
'customer_report', 'eventplanner', $allow_grant = true, $custom_tbl = '', 
$c_function = true);
+       $GLOBALS['phpgw']->locations->add('.vendor_report', 'vendor_report', 
'eventplanner', $allow_grant = true, $custom_tbl = '', $c_function = true, 
$c_attrib = true);
+       $GLOBALS['phpgw']->locations->add('.customer_report', 
'customer_report', 'eventplanner', $allow_grant = true, $custom_tbl = '', 
$c_function = true, $c_attrib = true);
 

Modified: branches/dev-syncromind-2/eventplanner/setup/phpgw_no.lang
===================================================================
--- branches/dev-syncromind-2/eventplanner/setup/phpgw_no.lang  2016-12-18 
13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/setup/phpgw_no.lang  2016-12-18 
19:22:14 UTC (rev 16098)
@@ -50,7 +50,8 @@
 field %1 is required   eventplanner    no      Feltet %1 er påkrevd
 please select a category !     eventplanner    no      Velg en kategori
 title  eventplanner    no      Programtittel
-description    eventplanner    no      Omtale av program
+description    eventplanner    no      Beskrivelse
+application description        eventplanner    no      Omtale av program
 might be published     eventplanner    no      Kan bli publisert på internett
 other participants     eventplanner    no      Navn på andre medvirkende (+ 
rolle)
 arena requirement      eventplanner    no      Krav til lokale
@@ -61,4 +62,13 @@
 wardrobe       eventplanner    no      Garderobe
 audience limit eventplanner    no      Maksimum antall publikum
 raider eventplanner    no      Raider
-vendor report  eventplanner    no      Utøverrapport
\ No newline at end of file
+vendor report  eventplanner    no      Utøverrapport
+calendar       eventplanner    no      Kalender
+from   eventplanner    no      Fra
+select all     eventplanner    no      Velg alle
+enable eventplanner    no      Aktiver
+disable        eventplanner    no      Deaktiver
+reports        eventplanner    no      Rapporter
+location       eventplanner    no      Lokalisering
+who    eventplanner    no      Hvem
+note   eventplanner    no      Merknad
\ No newline at end of file

Modified: branches/dev-syncromind-2/eventplanner/setup/setup.inc.php
===================================================================
--- branches/dev-syncromind-2/eventplanner/setup/setup.inc.php  2016-12-18 
13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/setup/setup.inc.php  2016-12-18 
19:22:14 UTC (rev 16098)
@@ -11,7 +11,7 @@
         * @version $Id: setup.inc.php 14728 2016-02-11 22:28:46Z sigurdne $
         */
        $setup_info['eventplanner']['name'] = 'eventplanner';
-       $setup_info['eventplanner']['version'] = '0.9.18.001';
+       $setup_info['eventplanner']['version'] = '0.9.18.002';
        $setup_info['eventplanner']['app_order'] = 20;
        $setup_info['eventplanner']['enable'] = 1;
        $setup_info['eventplanner']['app_group'] = 'office';
@@ -58,6 +58,7 @@
                'eventplanner_resource',
                'eventplanner_resource_comment',
                'eventplanner_booking',
+               'eventplanner_booking_comment',
                'eventplanner_booking_cost',
                'eventplanner_booking_resource',
                'eventplanner_order',

Modified: branches/dev-syncromind-2/eventplanner/setup/tables_current.inc.php
===================================================================
--- branches/dev-syncromind-2/eventplanner/setup/tables_current.inc.php 
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/setup/tables_current.inc.php 
2016-12-18 19:22:14 UTC (rev 16098)
@@ -26,7 +26,7 @@
                                'id' => array('type' => 'auto', 'nullable' => 
False),
                                'name' => array('type' => 'varchar', 
'precision' => '255', 'nullable' => False),
                                'address_1' => array('type' => 'varchar', 
'precision' => '255', 'nullable' => False),
-                               'address_2' => array('type' => 'varchar', 
'precision' => '255', 'nullable' => False),
+                               'address_2' => array('type' => 'varchar', 
'precision' => '255', 'nullable' => true),
                                'zip_code' => array('type' => 'varchar', 
'precision' => '10', 'nullable' => False),
                                'city' => array('type' => 'varchar', 
'precision' => '64', 'nullable' => False),
                                'account_number' => array('type' => 'varchar', 
'precision' => '20', 'nullable' => False),
@@ -83,7 +83,7 @@
                                'id' => array('type' => 'auto', 'nullable' => 
False),
                                'name' => array('type' => 'varchar', 
'precision' => '255', 'nullable' => False),
                                'address_1' => array('type' => 'varchar', 
'precision' => '255', 'nullable' => False),
-                               'address_2' => array('type' => 'varchar', 
'precision' => '255', 'nullable' => False),
+                               'address_2' => array('type' => 'varchar', 
'precision' => '255', 'nullable' => true),
                                'zip_code' => array('type' => 'varchar', 
'precision' => '10', 'nullable' => False),
                                'city' => array('type' => 'varchar', 
'precision' => '64', 'nullable' => False),
                                'account_number' => array('type' => 'varchar', 
'precision' => '20', 'nullable' => False),
@@ -132,7 +132,7 @@
                                'category_id' => array('type' => 'int', 
'precision' => '4', 'nullable' => false),
                                'vendor_id' => array('type' => 'int', 
'precision' => '4', 'nullable' => false),
                                'active' => array('type' => 'int', 'nullable' 
=> False, 'precision' => '4', 'default' => 1),
-                               'display_in_dashboard' => array('type' => 
'int', 'nullable' => False, 'precision' => '4','default' => 1),
+                               'display_in_dashboard' => array('type' => 
'int', 'nullable' => True, 'precision' => '4','default' => 1),
                                'status' => array('type' => 'int', 'nullable' 
=> False, 'precision' => 2, 'default' => 1),
                                'created' => array('type' => 'int', 'precision' 
=> '8',  'nullable' => False, 'default' => 'current_timestamp'),
                                'date_start' => array('type' => 'int', 
'precision' => '8', 'nullable' => False),
@@ -269,6 +269,10 @@
                                'completed' => array('type' => 'int', 
'precision' => 4, 'nullable' => False,'default' => '0'),
                                'cost' => array('type' => 'decimal', 
'precision' => 20, 'scale' => 2, 'nullable' => True,'default' => '0.00'),
                                'application_id' => array('type' => 'int', 
'precision' => 4, 'nullable' => True),
+                               'customer_contact_name' => array('type' => 
'text', 'nullable' => True),
+                               'customer_contact_email' => array('type' => 
'text', 'nullable' => True),
+                               'customer_contact_phone' => array('type' => 
'text', 'nullable' => True),
+                               'location' => array('type' => 'text', 
'nullable' => True),
                                'reminder' => array('type' => 'int', 
'precision' => 4, 'nullable' => False, 'default' => '0'),
                                'secret' => array('type' => 'text', 'nullable' 
=> False),
                                'sms_total' => array('type' => 'int', 
'precision' => 4, 'nullable' => True),
@@ -282,6 +286,21 @@
                        'ix' => array(),
                        'uc' => array()
                ),
+               'eventplanner_booking_comment' => array(
+                       'fd' => array(
+                               'id' => array('type' => 'auto', 'nullable' => 
False),
+                               'booking_id' => array('type' => 'int', 
'precision' => '4', 'nullable' => False),
+                               'time' => array('type' => 'int', 'precision' => 
'8', 'nullable' => False),
+                               'author' => array('type' => 'text', 'nullable' 
=> False),
+                               'comment' => array('type' => 'text', 'nullable' 
=> False),
+                               'type' => array('type' => 'varchar', 
'precision' => '20', 'nullable' => false,'default' => 'comment'),
+                       ),
+                       'pk' => array('id'),
+                       'fk' => array(
+                               'eventplanner_booking' => array('booking_id' => 
'id')),
+                       'ix' => array(),
+                       'uc' => array()
+               ),
                'eventplanner_booking_cost' => array(
                        'fd' => array(
                                'id' => array('type' => 'auto', 'nullable' => 
False),

Modified: branches/dev-syncromind-2/eventplanner/setup/tables_update.inc.php
===================================================================
--- branches/dev-syncromind-2/eventplanner/setup/tables_update.inc.php  
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/setup/tables_update.inc.php  
2016-12-18 19:22:14 UTC (rev 16098)
@@ -19,6 +19,24 @@
        {
                $GLOBALS['phpgw_setup']->oProc->m_odb->transaction_begin();
 
+               $GLOBALS['phpgw_setup']->oProc->CreateTable(
+                       'eventplanner_booking_comment', array(
+                                       'fd' => array(
+                                               'id' => array('type' => 'auto', 
'nullable' => False),
+                                               'booking_id' => array('type' => 
'int', 'precision' => '4', 'nullable' => False),
+                                               'time' => array('type' => 
'int', 'precision' => '8', 'nullable' => False),
+                                               'author' => array('type' => 
'text', 'nullable' => False),
+                                               'comment' => array('type' => 
'text', 'nullable' => False),
+                                               'type' => array('type' => 
'varchar', 'precision' => '20', 'nullable' => false,'default' => 'comment'),
+                                       ),
+                                       'pk' => array('id'),
+                                       'fk' => array(
+                                               'eventplanner_booking' => 
array('booking_id' => 'id')),
+                                       'ix' => array(),
+                                       'uc' => array()
+                       )
+               );
+
                if($GLOBALS['phpgw_setup']->oProc->m_odb->transaction_commit())
                {
                        $GLOBALS['setup_info']['eventplanner']['currentver'] = 
'0.9.18.002';

Modified: branches/dev-syncromind-2/eventplanner/templates/base/application.xsl
===================================================================
--- branches/dev-syncromind-2/eventplanner/templates/base/application.xsl       
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/templates/base/application.xsl       
2016-12-18 19:22:14 UTC (rev 16098)
@@ -26,7 +26,8 @@
                        }
                        #submitbox {
                        display: none;
-                       }       </style>
+                       }
+               </style>
                <xsl:variable name="date_format">
                        <xsl:value-of select="php:function('get_phpgw_info', 
'user|preferences|common|dateformat')" />
                </xsl:variable>
@@ -38,7 +39,7 @@
                        </xsl:variable>
 
                        <script type="text/javascript">
-                               var lang = <xsl:value-of 
select="php:function('js_lang', 'Name or company is required')"/>;
+                               var lang = <xsl:value-of 
select="php:function('js_lang', 'Name or company is required', 'next', 
'save')"/>;
                        </script>
                        <form id="form" name="form" method="post" 
action="{$form_action}" class="pure-form pure-form-aligned">
                                <div id="tab-content">
@@ -49,15 +50,15 @@
                                                                <tbody>
                                                                        <tr>
                                                                                
<td width="200px">
-                                                                               
        <xsl:variable name="lang_savel">
-                                                                               
                <xsl:value-of select="php:function('lang', 'save')"/>
+                                                                               
        <xsl:variable name="lang_save">
+                                                                               
                <xsl:value-of select="php:function('lang', 'next')"/>
                                                                                
        </xsl:variable>
-                                                                               
        <input type="submit" class="pure-button pure-button-primary" 
name="save">
+                                                                               
        <input type="button" class="pure-button pure-button-primary" 
name="save" id="save_button" onClick="validate_submit();">
                                                                                
                <xsl:attribute name="value">
-                                                                               
                        <xsl:value-of select="$lang_savel"/>
+                                                                               
                        <xsl:value-of select="$lang_save"/>
                                                                                
                </xsl:attribute>
                                                                                
                <xsl:attribute name="title">
-                                                                               
                        <xsl:value-of select="$lang_savel"/>
+                                                                               
                        <xsl:value-of select="$lang_save"/>
                                                                                
                </xsl:attribute>
                                                                                
        </input>
                                                                                
</td>
@@ -116,7 +117,14 @@
                                                                        
<xsl:attribute name="placeholder">
                                                                                
<xsl:value-of select="$lang_vendor"/>
                                                                        
</xsl:attribute>
+                                                                       
<xsl:attribute name="data-validation">
+                                                                               
<xsl:text>required</xsl:text>
+                                                                       
</xsl:attribute>
                                                                </input>
+                                                               <xsl:text> 
</xsl:text>
+                                                               <a 
href="{new_vendor_url}" target="_blank">
+                                                                       
<xsl:value-of select="php:function('lang', 'new')"/>
+                                                               </a>
                                                                <div 
id="vendor_container"/>
                                                        </div>
                                                        <div 
class="pure-control-group">
@@ -427,7 +435,7 @@
                                                                <label>
                                                                        
<xsl:value-of select="php:function('lang', 'stage')"/>
                                                                </label>
-                                                               <input 
type="text" id="stage_width" name="stage_width" 
value="{application/stage_width}">
+                                                               <input 
type="text" id="stage_width" name="stage_width" 
value="{application/stage_width}" size="2">
                                                                        
<xsl:attribute name="title">
                                                                                
<xsl:value-of select="php:function('lang', 'width')"/>
                                                                        
</xsl:attribute>
@@ -439,7 +447,7 @@
                                                                        
</xsl:attribute>
                                                                </input>
                                                                <xsl:text> X 
</xsl:text>
-                                                               <input 
type="text" id="stage_depth" name="stage_depth" 
value="{application/stage_depth}">
+                                                               <input 
type="text" id="stage_depth" name="stage_depth" 
value="{application/stage_depth}" size="2">
                                                                        
<xsl:attribute name="data-validation">
                                                                                
<xsl:text>number</xsl:text>
                                                                        
</xsl:attribute>
@@ -451,7 +459,7 @@
                                                                        
</xsl:attribute>
                                                                </input>
                                                                <xsl:text> M 
</xsl:text>
-                                                               <input 
id="stage_size" type="text" disabled="disabled"/>
+                                                               <input 
id="stage_size" type="text" disabled="disabled" size="3"/>
                                                        </div>
                                                        <div 
class="pure-control-group">
                                                                <label>
@@ -475,19 +483,18 @@
                                                                <label>
                                                                        
<xsl:value-of select="php:function('lang', 'audience limit')"/>
                                                                </label>
-                                                               <input 
type="text" id="audience_limit" name="audience_limit" 
value="{application/audience_limit}">
+                                                               <input 
type="text" id="audience_limit" name="audience_limit" 
value="{application/audience_limit}"  size="5">
                                                                        
<xsl:attribute name="data-validation">
                                                                                
<xsl:text>required</xsl:text>
                                                                        
</xsl:attribute>
                                                                        
<xsl:attribute name="data-validation-error-msg">
-                                                                               
<xsl:value-of select="php:function('lang', 'audience_limit')"/>
+                                                                               
<xsl:value-of select="php:function('lang', 'audience limit')"/>
                                                                        
</xsl:attribute>
                                                                        
<xsl:attribute name="placeholder">
                                                                                
<xsl:value-of select="php:function('lang', 'integer')"/>
                                                                        
</xsl:attribute>
                                                                </input>
                                                        </div>
-
                                                </fieldset>
                                                <fieldset>
                                                        <legend>
@@ -707,6 +714,14 @@
                                                                        
<xsl:value-of select="php:function('date', $date_format, 
number(application/date_end))"/>
                                                                </xsl:if>
                                                        </div>
+                                                       <div 
class="pure-control-group">
+                                                               <label>
+                                                                       
<xsl:value-of select="php:function('lang', 'timespan')"/>
+                                                               </label>
+                                                               <xsl:if 
test="application/date_end != 0 and application/timespan != ''">
+                                                                       
<xsl:value-of select="application/timespan"/>
+                                                               </xsl:if>
+                                                       </div>
 
                                                        <div 
class="pure-control-group">
                                                                <label>
@@ -715,13 +730,13 @@
                                                                <input 
type="text" id="from_" name="from_" size="16" readonly="readonly">
                                                                </input>
                                                        </div>
-                                                       <div 
class="pure-control-group">
+                                                       <!--div 
class="pure-control-group">
                                                                <label>
                                                                        
<xsl:value-of select="php:function('lang', 'to')"/>
                                                                </label>
                                                                <input 
type="text" id="to_" name="to_" size="16" readonly="readonly">
                                                                </input>
-                                                       </div>
+                                                       </div-->
 
                                                        <div 
class="pure-control-group">
                                                                <label>
@@ -742,20 +757,21 @@
                                                                        
</xsl:for-each>
                                                                </div>
                                                        </div>
-
-
                                                </fieldset>
-
-
-
                                        </div>
 
                                </div>
                                <div id="submit_group_bottom" 
class="proplist-col">
-                                       <input type="submit" class="pure-button 
pure-button-primary" name="save">
+                                       <xsl:variable name="lang_save">
+                                               <xsl:value-of 
select="php:function('lang', 'next')"/>
+                                       </xsl:variable>
+                                       <input type="button" class="pure-button 
pure-button-primary" name="save" id="save_button_bottom" 
onClick="validate_submit();">
                                                <xsl:attribute name="value">
-                                                       <xsl:value-of 
select="php:function('lang', 'save')"/>
+                                                       <xsl:value-of 
select="$lang_save"/>
                                                </xsl:attribute>
+                                               <xsl:attribute name="title">
+                                                       <xsl:value-of 
select="$lang_save"/>
+                                               </xsl:attribute>
                                        </input>
                                        <xsl:variable name="cancel_url">
                                                <xsl:value-of 
select="cancel_url"/>

Copied: 
branches/dev-syncromind-2/eventplanner/templates/base/application_info.xsl 
(from rev 16097, trunk/eventplanner/templates/base/application_info.xsl)
===================================================================
--- branches/dev-syncromind-2/eventplanner/templates/base/application_info.xsl  
                        (rev 0)
+++ branches/dev-syncromind-2/eventplanner/templates/base/application_info.xsl  
2016-12-18 19:22:14 UTC (rev 16098)
@@ -0,0 +1,79 @@
+
+<xsl:template name="application_info" xmlns:php="http://php.net/xsl";>
+       <xsl:param name="application" />
+       <xsl:param name="application_type_list" />
+
+       <div class="pure-control-group">
+               <label>
+                       <xsl:value-of select="php:function('lang', 'vendor')"/>
+               </label>
+               <xsl:value-of select="application/vendor_name"/>
+       </div>
+       <div class="pure-control-group">
+               <label>
+                       <xsl:value-of select="php:function('lang', 
'application')"/>
+               </label>
+               <xsl:value-of select="application/title"/>
+       </div>
+
+       <div class="pure-control-group">
+               <label>
+                       <xsl:value-of select="php:function('lang', 'remark')"/>
+               </label>
+               <xsl:value-of select="application/remark"/>
+       </div>
+
+       <div class="pure-control-group">
+               <label>
+                       <xsl:value-of select="php:function('lang', 'contact 
name')"/>
+               </label>
+               <xsl:value-of select="application/contact_name"/>
+       </div>
+       <div class="pure-control-group">
+               <label>
+                       <xsl:value-of select="php:function('lang', 'contact 
email')"/>
+               </label>
+               <xsl:value-of select="application/contact_email"/>
+       </div>
+       <div class="pure-control-group">
+               <label>
+                       <xsl:value-of select="php:function('lang', 'contact 
phone')"/>
+               </label>
+               <xsl:value-of select="application/contact_phone"/>
+
+       </div>
+       <div class="pure-control-group">
+               <label>
+                       <xsl:value-of select="php:function('lang', 'type')"/>
+               </label>
+               <div class="pure-custom">
+                       <table class="pure-table pure-table-bordered" 
border="0" cellspacing="2" cellpadding="2">
+                               <thead>
+                                       <tr>
+                                               <th>
+                                                       <xsl:value-of 
select="php:function('lang', 'select')"/>
+                                               </th>
+                                               <th>
+                                                       <xsl:value-of 
select="php:function('lang', 'type')"/>
+                                               </th>
+                                       </tr>
+                               </thead>
+                               <tbody>
+                                       <xsl:for-each 
select="application_type_list">
+                                               <tr>
+                                                       <td>
+                                                               <xsl:if 
test="selected = 1">
+                                                                       
<xsl:text>X</xsl:text>
+                                                               </xsl:if>
+                                                       </td>
+                                                       <td>
+                                                               <xsl:value-of 
disable-output-escaping="yes" select="name"/>
+                                                       </td>
+                                               </tr>
+                                       </xsl:for-each>
+                               </tbody>
+                       </table>
+               </div>
+       </div>
+
+</xsl:template>

Modified: branches/dev-syncromind-2/eventplanner/templates/base/booking.xsl
===================================================================
--- branches/dev-syncromind-2/eventplanner/templates/base/booking.xsl   
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/templates/base/booking.xsl   
2016-12-18 19:22:14 UTC (rev 16098)
@@ -14,8 +14,18 @@
 
 <!-- add / edit  -->
 <xsl:template xmlns:php="http://php.net/xsl"; match="edit">
+       <style type="text/css">
+               #floating-box {
+               position: relative;
+               z-index: 1000;
+               }
+               #submitbox {
+               display: none;
+               }
+       </style>
        <xsl:variable name="date_format">
                <xsl:value-of select="php:function('get_phpgw_info', 
'user|preferences|common|dateformat')" />
+               <xsl:text> H:i</xsl:text>
        </xsl:variable>
        <xsl:variable name="form_action">
                <xsl:value-of select="form_action"/>
@@ -24,135 +34,201 @@
                <xsl:value-of select="mode"/>
        </xsl:variable>
 
-       <div>
+       <div class="content">
                <script type="text/javascript">
-                       var lang = <xsl:value-of 
select="php:function('js_lang', 'Name or company is required')"/>;
+                       var lang = <xsl:value-of 
select="php:function('js_lang', 'Name or company is required', 'customer')"/>;
                </script>
                <form id="form" name="form" method="post" 
action="{$form_action}" class="pure-form pure-form-aligned">
                        <div id="tab-content">
                                <xsl:value-of disable-output-escaping="yes" 
select="tabs"/>
+                               <div id="floating-box">
+                                       <div id="submitbox">
+                                               <table width="200px">
+                                                       <tbody>
+                                                               <tr>
+                                                                       <td 
width="200px">
+                                                                               
<xsl:variable name="lang_save">
+                                                                               
        <xsl:value-of select="php:function('lang', 'save')"/>
+                                                                               
</xsl:variable>
+                                                                               
<input type="button" class="pure-button pure-button-primary" name="save" 
id="save_button" onClick="validate_submit();">
+                                                                               
        <xsl:attribute name="value">
+                                                                               
                <xsl:value-of select="$lang_save"/>
+                                                                               
        </xsl:attribute>
+                                                                               
        <xsl:attribute name="title">
+                                                                               
                <xsl:value-of select="$lang_save"/>
+                                                                               
        </xsl:attribute>
+                                                                               
</input>
+                                                                       </td>
+                                                                       <td>
+                                                                               
<xsl:variable name="lang_cancel">
+                                                                               
        <xsl:value-of select="php:function('lang', 'cancel')"/>
+                                                                               
</xsl:variable>
+                                                                               
<input type="button" class="pure-button pure-button-primary" name="done" 
value="{$lang_cancel}" onClick="window.location = '{cancel_url}';">
+                                                                               
        <xsl:attribute name="title">
+                                                                               
                <xsl:value-of select="php:function('lang', 'Back to the ticket 
list')"/>
+                                                                               
        </xsl:attribute>
+                                                                               
</input>
+                                                                       </td>
+                                                               </tr>
+                                                       </tbody>
+                                               </table>
+                                       </div>
+                               </div>
                                <input type="hidden" id="active_tab" 
name="active_tab" value="{value_active_tab}"/>
                                <div id="first_tab">
+                                       <xsl:if test="booking/id > 0">
+                                               <div class="pure-control-group">
+                                                       <label>
+                                                               <xsl:value-of 
select="php:function('lang', 'id')"/>
+                                                       </label>
+                                                       <input type="hidden" 
id="booking_id" name="id" value="{booking/id}"/>
+                                                       <input type="hidden" 
name="application_id" value="{booking/application_id}"/>
+                                                       <xsl:value-of 
select="booking/id"/>
+                                               </div>
+                                       </xsl:if>
                                        <fieldset>
-                                               <xsl:if test="booking/id > 0">
-                                                       <div 
class="pure-control-group">
-                                                               <label>
-                                                                       
<xsl:value-of select="php:function('lang', 'id')"/>
-                                                               </label>
-                                                               <input 
type="hidden" name="id" value="{booking/id}"/>
-                                                               <xsl:value-of 
select="booking/id"/>
-                                                       </div>
-                                               </xsl:if>
+                                               <legend>
+                                                       <xsl:value-of 
select="php:function('lang', 'vendor')"/>
+                                               </legend>
                                                <div class="pure-control-group">
                                                        <label>
-                                                               <xsl:value-of 
select="php:function('lang', 'active')"/>
+                                                               <xsl:value-of 
select="php:function('lang', 'vendor')"/>
                                                        </label>
-                                                       <input type="checkbox" 
name="active" id="active" value="1">
-                                                               <xsl:if 
test="booking/active = 1">
-                                                                       
<xsl:attribute name="checked" value="checked"/>
-                                                               </xsl:if>
-                                                       </input>
+                                                       <xsl:value-of 
select="application/vendor_name"/>
                                                </div>
                                                <div class="pure-control-group">
-                                                       <xsl:variable 
name="lang_category">
-                                                               <xsl:value-of 
select="php:function('lang', 'category')"/>
-                                                       </xsl:variable>
                                                        <label>
-                                                               <xsl:value-of 
select="$lang_category"/>
+                                                               <a 
href="{application_url}" target="_blank">
+                                                                       
<xsl:value-of select="php:function('lang', 'application')"/>
+                                                               </a>
+
                                                        </label>
-                                                       <select 
name="category_id">
-                                                               <xsl:attribute 
name="title">
-                                                                       
<xsl:value-of select="$lang_category"/>
-                                                               </xsl:attribute>
-                                                               <xsl:attribute 
name="data-validation">
-                                                                       
<xsl:text>required</xsl:text>
-                                                               </xsl:attribute>
-                                                               <xsl:attribute 
name="data-validation-error-msg">
-                                                                       
<xsl:value-of select="$lang_category"/>
-                                                               </xsl:attribute>
-                                                               
<xsl:apply-templates select="category_list/options"/>
-                                                       </select>
+                                                       <xsl:value-of 
select="booking/application_name"/>
                                                </div>
+
                                                <div class="pure-control-group">
                                                        <label>
-                                                               <xsl:value-of 
select="php:function('lang', 'name')"/>
+                                                               <xsl:value-of 
select="php:function('lang', 'remark')"/>
                                                        </label>
-                                                       <input type="text" 
name="name" value="{booking/name}">
-                                                               <xsl:attribute 
name="data-validation">
-                                                                       
<xsl:text>required</xsl:text>
-                                                               </xsl:attribute>
-                                                               <xsl:attribute 
name="placeholder">
-                                                                       
<xsl:value-of select="php:function('lang', 'name')"/>
-                                                               </xsl:attribute>
-                                                       </input>
+                                                       <xsl:value-of 
select="application/remark"/>
                                                </div>
+
                                                <div class="pure-control-group">
-                                                       <xsl:variable 
name="lang_address_1">
-                                                               <xsl:value-of 
select="php:function('lang', 'address_1')"/>
-                                                       </xsl:variable>
-                                                       <xsl:variable 
name="lang_address_2">
-                                                               <xsl:value-of 
select="php:function('lang', 'address_2')"/>
-                                                       </xsl:variable>
                                                        <label>
-                                                               <xsl:value-of 
select="php:function('lang', 'address')"/>
+                                                               <xsl:value-of 
select="php:function('lang', 'contact name')"/>
                                                        </label>
-                                                       <input type="text" 
name="address_1" value="{booking/address_1}">
-                                                               <xsl:attribute 
name="data-validation">
-                                                                       
<xsl:text>required</xsl:text>
-                                                               </xsl:attribute>
-                                                               <xsl:attribute 
name="placeholder">
-                                                                       
<xsl:value-of select="$lang_address_1"/>
-                                                               </xsl:attribute>
+                                                       <xsl:value-of 
select="application/contact_name"/>
+                                               </div>
+                                               <div class="pure-control-group">
+                                                       <label>
+                                                               <xsl:value-of 
select="php:function('lang', 'contact email')"/>
+                                                       </label>
+                                                       <xsl:value-of 
select="application/contact_email"/>
+                                               </div>
+                                               <div class="pure-control-group">
+                                                       <label>
+                                                               <xsl:value-of 
select="php:function('lang', 'contact phone')"/>
+                                                       </label>
+                                                       <xsl:value-of 
select="application/contact_phone"/>
 
-                                                       </input>
-                                                       <input type="text" 
name="address_2" value="{booking/address_2}">
-                                                               <xsl:attribute 
name="data-validation">
-                                                                       
<xsl:text>required</xsl:text>
-                                                               </xsl:attribute>
-                                                               <xsl:attribute 
name="placeholder">
-                                                                       
<xsl:value-of select="$lang_address_2"/>
-                                                               </xsl:attribute>
-                                                       </input>
                                                </div>
                                                <div class="pure-control-group">
                                                        <label>
-                                                               <xsl:value-of 
select="php:function('lang', 'postal_code_place')"/>
+                                                               <xsl:value-of 
select="php:function('lang', 'type')"/>
                                                        </label>
-                                                       <input type="text" 
name="zip_code" value="{booking/zip_code}">
+                                                       <div 
class="pure-custom">
+                                                               <table 
class="pure-table pure-table-bordered" border="0" cellspacing="2" 
cellpadding="2">
+                                                                       <thead>
+                                                                               
<tr>
+                                                                               
        <th>
+                                                                               
                <xsl:value-of select="php:function('lang', 'select')"/>
+                                                                               
        </th>
+                                                                               
        <th>
+                                                                               
                <xsl:value-of select="php:function('lang', 'type')"/>
+                                                                               
        </th>
+                                                                               
</tr>
+                                                                       </thead>
+                                                                       <tbody>
+                                                                               
<xsl:for-each select="application_type_list">
+                                                                               
        <tr>
+                                                                               
                <td>
+                                                                               
                        <xsl:if test="selected = 1">
+                                                                               
                                <xsl:text>X</xsl:text>
+                                                                               
                        </xsl:if>
+                                                                               
                </td>
+                                                                               
                <td>
+                                                                               
                        <xsl:value-of disable-output-escaping="yes" 
select="name"/>
+                                                                               
                </td>
+                                                                               
        </tr>
+                                                                               
</xsl:for-each>
+                                                                       </tbody>
+                                                               </table>
+                                                       </div>
+
+                                               </div>
+
+
+
+
+                                       </fieldset>
+
+                                       <fieldset>
+
+                                               <legend>
+                                                       <xsl:value-of 
select="php:function('lang', 'customer')"/>
+                                               </legend>
+
+                                               <div class="pure-control-group">
+                                                       <xsl:variable 
name="lang_customer">
+                                                               <xsl:value-of 
select="php:function('lang', 'customer')"/>
+                                                       </xsl:variable>
+                                                       <label>
+                                                               <xsl:choose>
+                                                                       
<xsl:when test="booking/customer_id > 0">
+                                                                               
<div id="customer_url">
+                                                                               
        <a href="{customer_url}" target="_blank">
+                                                                               
                <xsl:value-of select="$lang_customer"/>
+                                                                               
        </a>
+                                                                               
</div>
+                                                                       
</xsl:when>
+                                                                       
<xsl:otherwise>
+                                                                               
<div id="customer_url">
+                                                                               
        <xsl:value-of select="$lang_customer"/>
+                                                                               
</div>
+                                                                       
</xsl:otherwise>
+                                                               </xsl:choose>
+                                                       </label>
+                                                       <input type="hidden" 
id="customer_id" name="customer_id"  value="{booking/customer_id}">
                                                                <xsl:attribute 
name="data-validation">
                                                                        
<xsl:text>required</xsl:text>
                                                                </xsl:attribute>
+                                                               <xsl:attribute 
name="data-validation-error-msg">
+                                                                       
<xsl:value-of select="$lang_customer"/>
+                                                               </xsl:attribute>
                                                                <xsl:attribute 
name="placeholder">
-                                                                       
<xsl:value-of select="php:function('lang', 'zip_code')"/>
+                                                                       
<xsl:value-of select="$lang_customer"/>
                                                                </xsl:attribute>
                                                        </input>
-                                                       <input type="text" 
name="city" value="{booking/city}">
-                                                               <xsl:attribute 
name="data-validation">
-                                                                       
<xsl:text>required</xsl:text>
-                                                               </xsl:attribute>
+                                                       <input type="text" 
id="customer_name" name="customer_name" value="{booking/customer_name}">
                                                                <xsl:attribute 
name="placeholder">
-                                                                       
<xsl:value-of select="php:function('lang', 'city')"/>
+                                                                       
<xsl:value-of select="$lang_customer"/>
                                                                </xsl:attribute>
-                                                       </input>
-                                               </div>
-                                               <div class="pure-control-group">
-                                                       <label>
-                                                               <xsl:value-of 
select="php:function('lang', 'booking_organization_number')"/>
-                                                       </label>
-                                                       <input type="text" 
id="lastname" name="booking_organization_number" 
value="{booking/booking_organization_number}">
                                                                <xsl:attribute 
name="data-validation">
                                                                        
<xsl:text>required</xsl:text>
                                                                </xsl:attribute>
-                                                               <xsl:attribute 
name="placeholder">
-                                                                       
<xsl:value-of select="php:function('lang', 'booking_organization_number')"/>
-                                                               </xsl:attribute>
                                                        </input>
+                                                       <xsl:text> </xsl:text>
+                                                       <a 
href="{new_customer_url}" target="_blank">
+                                                               <xsl:value-of 
select="php:function('lang', 'new')"/>
+                                                       </a>
+                                                       <div 
id="customer_container"/>
                                                </div>
+
                                                <div class="pure-control-group">
                                                        <label>
                                                                <xsl:value-of 
select="php:function('lang', 'contact name')"/>
                                                        </label>
-                                                       <input type="text" 
name="contact_name" value="{booking/contact_name}">
+                                                       <input type="text" 
id="customer_contact_name"  name="customer_contact_name" 
value="{booking/customer_contact_name}">
                                                                <xsl:attribute 
name="data-validation">
                                                                        
<xsl:text>required</xsl:text>
                                                                </xsl:attribute>
@@ -165,7 +241,7 @@
                                                        <label>
                                                                <xsl:value-of 
select="php:function('lang', 'email')"/>
                                                        </label>
-                                                       <input type="text" 
name="contact_email" id="contact_email" value="{booking/contact_email}">
+                                                       <input type="text" 
id="customer_contact_email" name="customer_contact_email"  
value="{booking/customer_contact_email}">
                                                                <xsl:attribute 
name="data-validation">
                                                                        
<xsl:text>email</xsl:text>
                                                                </xsl:attribute>
@@ -186,7 +262,7 @@
                                                        <label>
                                                                <xsl:value-of 
select="php:function('lang', 'contact phone')"/>
                                                        </label>
-                                                       <input type="text" 
name="contact_phone" value="{booking/contact_phone}">
+                                                       <input type="text" 
id="customer_contact_phone"  name="customer_contact_phone" 
value="{booking/customer_contact_phone}">
                                                                <xsl:attribute 
name="data-validation">
                                                                        
<xsl:text>required</xsl:text>
                                                                </xsl:attribute>
@@ -195,25 +271,79 @@
                                                                </xsl:attribute>
                                                        </input>
                                                </div>
+                                       </fieldset>
+
+                                       <fieldset>
+
+                                               <legend>
+                                                       <xsl:value-of 
select="php:function('lang', 'booking')"/>
+                                               </legend>
+
                                                <div class="pure-control-group">
                                                        <label>
-                                                               <xsl:value-of 
select="php:function('lang', 'account_number')"/>
+                                                               <xsl:value-of 
select="php:function('lang', 'active')"/>
                                                        </label>
-                                                       <input type="text" 
name="account_number" value="{booking/account_number}">
+                                                       <input type="checkbox" 
name="active" id="active" value="1" readonly="readonly">
+                                                               <xsl:if 
test="booking/active = 1">
+                                                                       
<xsl:attribute name="checked" value="checked"/>
+                                                               </xsl:if>
+                                                       </input>
+                                               </div>
+                                               <div class="pure-control-group">
+                                                       <label>
+                                                               <xsl:value-of 
select="php:function('lang', 'completed')"/>
+                                                       </label>
+                                                       <input type="checkbox" 
name="completed" id="completed" value="1">
+                                                               <xsl:if 
test="booking/completed = 1">
+                                                                       
<xsl:attribute name="checked" value="checked"/>
+                                                               </xsl:if>
+                                                       </input>
+                                               </div>
+
+                                               <div class="pure-control-group">
+                                                       <xsl:variable 
name="lang_from">
+                                                               <xsl:value-of 
select="php:function('lang', 'from')"/>
+                                                       </xsl:variable>
+                                                       <label>
+                                                               <xsl:value-of 
select="$lang_from"/>
+                                                       </label>
+                                                       <input type="text" 
id="from_" name="from_" size="16" readonly="readonly">
+                                                               <xsl:if 
test="booking/from_ != 0 and booking/from_ != ''">
+                                                                       
<xsl:attribute name="value">
+                                                                               
<xsl:value-of select="php:function('show_date', number(booking/from_), 
$date_format)"/>
+                                                                       
</xsl:attribute>
+                                                               </xsl:if>
                                                                <xsl:attribute 
name="data-validation">
                                                                        
<xsl:text>required</xsl:text>
                                                                </xsl:attribute>
-                                                               <xsl:attribute 
name="placeholder">
-                                                                       
<xsl:value-of select="php:function('lang', 'account_number')"/>
+                                                               <xsl:attribute 
name="data-validation-error-msg">
+                                                                       
<xsl:value-of select="$lang_from"/>
                                                                </xsl:attribute>
                                                        </input>
                                                </div>
                                                <div class="pure-control-group">
                                                        <label>
-                                                               <xsl:value-of 
select="php:function('lang', 'description')"/>
+                                                               <xsl:value-of 
select="php:function('lang', 'timespan')"/>
                                                        </label>
-                                                       <textarea cols="47" 
rows="7" name="description">
-                                                               <xsl:value-of 
select="booking/description"/>
+                                                       <xsl:value-of 
select="application/timespan"/>
+                                               </div>
+
+                                               <div class="pure-control-group">
+                                                       <label>
+                                                               <xsl:value-of 
select="php:function('lang', 'to')"/>
+                                                       </label>
+                                                       <xsl:value-of 
select="php:function('show_date', number(booking/to_), $date_format)"/>
+                                               </div>
+                                               
+                                               <div class="pure-control-group">
+                                                       <label>
+                                                               <xsl:value-of 
select="php:function('lang', 'location')"/>
+                                                       </label>
+                                                       <textarea cols="47" 
rows="7" id="location" name="location">
+                                                               <xsl:attribute 
name="data-validation">
+                                                                       
<xsl:text>required</xsl:text>
+                                                               </xsl:attribute>
+                                                               <xsl:value-of 
select="booking/location"/>
                                                        </textarea>
                                                </div>
                                                <div class="pure-control-group">
@@ -252,9 +382,56 @@
                                                </div>
                                        </fieldset>
                                </div>
+                               <div id="reports">
+                                       <fieldset>
+                                               <legend>
+                                                       <xsl:value-of 
select="php:function('lang', 'vendor report')"/>
+                                               </legend>
+                                               <div class="pure-control-group">
+                                                       <div 
class="pure-custom">
+                                                               <xsl:for-each 
select="datatable_def">
+                                                                       <xsl:if 
test="container = 'datatable-container_1'">
+                                                                               
<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="tabletools" select ='tabletools'/>
+                                                                               
        <xsl:with-param name="data" select ='data'/>
+                                                                               
        <xsl:with-param name="config" select ='config'/>
+                                                                               
</xsl:call-template>
+                                                                       
</xsl:if>
+                                                               </xsl:for-each>
+                                                       </div>
+                                               </div>
+
+                                       </fieldset>
+                                       <fieldset>
+                                               <legend>
+                                                       <xsl:value-of 
select="php:function('lang', 'customer report')"/>
+                                               </legend>
+                                               <div class="pure-control-group">
+                                                       <div 
class="pure-custom">
+                                                               <xsl:for-each 
select="datatable_def">
+                                                                       <xsl:if 
test="container = 'datatable-container_2'">
+                                                                               
<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="tabletools" select ='tabletools'/>
+                                                                               
        <xsl:with-param name="data" select ='data'/>
+                                                                               
        <xsl:with-param name="config" select ='config'/>
+                                                                               
</xsl:call-template>
+                                                                       
</xsl:if>
+                                                               </xsl:for-each>
+                                                       </div>
+                                               </div>
+
+                                       </fieldset>
+
+                               </div>
                        </div>
-                       <div class="proplist-col">
-                               <input type="submit" class="pure-button 
pure-button-primary" name="save">
+                       <div id="submit_group_bottom">
+                               <input type="button" class="pure-button 
pure-button-primary" name="save" onClick="validate_submit();">
                                        <xsl:attribute name="value">
                                                <xsl:value-of 
select="php:function('lang', 'save')"/>
                                        </xsl:attribute>
@@ -270,6 +447,7 @@
                        </div>
                </form>
        </div>
+
 </xsl:template>
 
 <xsl:template match="options">

Modified: branches/dev-syncromind-2/eventplanner/templates/base/customer.xsl
===================================================================
--- branches/dev-syncromind-2/eventplanner/templates/base/customer.xsl  
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/templates/base/customer.xsl  
2016-12-18 19:22:14 UTC (rev 16098)
@@ -106,9 +106,6 @@
 
                                                        </input>
                                                        <input type="text" 
name="address_2" value="{customer/address_2}">
-                                                               <xsl:attribute 
name="data-validation">
-                                                                       
<xsl:text>required</xsl:text>
-                                                               </xsl:attribute>
                                                                <xsl:attribute 
name="placeholder">
                                                                        
<xsl:value-of select="$lang_address_2"/>
                                                                </xsl:attribute>

Modified: branches/dev-syncromind-2/eventplanner/templates/base/vendor.xsl
===================================================================
--- branches/dev-syncromind-2/eventplanner/templates/base/vendor.xsl    
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/templates/base/vendor.xsl    
2016-12-18 19:22:14 UTC (rev 16098)
@@ -106,9 +106,6 @@
 
                                                        </input>
                                                        <input type="text" 
name="address_2" value="{vendor/address_2}">
-                                                               <xsl:attribute 
name="data-validation">
-                                                                       
<xsl:text>required</xsl:text>
-                                                               </xsl:attribute>
                                                                <xsl:attribute 
name="placeholder">
                                                                        
<xsl:value-of select="$lang_address_2"/>
                                                                </xsl:attribute>
@@ -170,7 +167,7 @@
                                                                        
<xsl:text>email</xsl:text>
                                                                </xsl:attribute>
                                                                <xsl:attribute 
name="placeholder">
-                                                               <xsl:value-of 
select="php:function('lang', 'email')"/>
+                                                                       
<xsl:value-of select="php:function('lang', 'email')"/>
                                                                </xsl:attribute>
                                                        </input>
                                                </div>
@@ -213,6 +210,9 @@
                                                                <xsl:value-of 
select="php:function('lang', 'remark')"/>
                                                        </label>
                                                        <textarea cols="47" 
rows="7" name="remark">
+                                                               <xsl:attribute 
name="data-validation">
+                                                                       
<xsl:text>required</xsl:text>
+                                                               </xsl:attribute>
                                                                <xsl:value-of 
select="vendor/remark"/>
                                                        </textarea>
                                                </div>

Modified: 
branches/dev-syncromind-2/eventplanner/templates/base/vendor_report.xsl
===================================================================
--- branches/dev-syncromind-2/eventplanner/templates/base/vendor_report.xsl     
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/eventplanner/templates/base/vendor_report.xsl     
2016-12-18 19:22:14 UTC (rev 16098)
@@ -16,6 +16,7 @@
 <xsl:template xmlns:php="http://php.net/xsl"; match="edit">
        <xsl:variable name="date_format">
                <xsl:value-of select="php:function('get_phpgw_info', 
'user|preferences|common|dateformat')" />
+               <xsl:text> H:i</xsl:text>
        </xsl:variable>
        <xsl:variable name="form_action">
                <xsl:value-of select="form_action"/>
@@ -33,16 +34,66 @@
                                <xsl:value-of disable-output-escaping="yes" 
select="tabs"/>
                                <input type="hidden" id="active_tab" 
name="active_tab" value="{value_active_tab}"/>
                                <div id="first_tab">
+                                       <xsl:if test="booking/id > 0">
+                                               <div class="pure-control-group">
+                                                       <label>
+                                                               <a 
href="{booking_url}">
+                                                                       
<xsl:value-of select="php:function('lang', 'booking')"/>
+                                                               </a>
+                                                       </label>
+                                                       <input type="hidden" 
name="booking_id" value="{booking/id}"/>
+                                                       <xsl:value-of 
select="booking/id"/>
+                                               </div>
+                                       </xsl:if>
+                                       <xsl:if test="vendor_report/id > 0">
+                                               <div class="pure-control-group">
+                                                       <label>
+                                                               <xsl:value-of 
select="php:function('lang', 'report')"/>
+                                                       </label>
+                                                       <input type="hidden" 
name="id" value="{vendor_report/id}"/>
+                                                       <xsl:value-of 
select="vendor_report/id"/>
+                                               </div>
+                                       </xsl:if>
+                                       <xsl:call-template 
name="application_info">
+                                               <xsl:with-param 
name="application" select ='application'/>
+                                               <xsl:with-param 
name="application_type_list" select ='application_type_list'/>
+                                       </xsl:call-template>
+                                       <div class="pure-control-group">
+                                               <xsl:variable name="lang_from">
+                                                       <xsl:value-of 
select="php:function('lang', 'from')"/>
+                                               </xsl:variable>
+                                               <label>
+                                                       <xsl:value-of 
select="$lang_from"/>
+                                               </label>
+                                               <xsl:value-of 
select="php:function('show_date', number(booking/from_), $date_format)"/>
+                                       </div>
+                                       <div class="pure-control-group">
+                                               <label>
+                                                       <xsl:value-of 
select="php:function('lang', 'timespan')"/>
+                                               </label>
+                                               <xsl:value-of 
select="application/timespan"/>
+                                       </div>
+
+                                       <div class="pure-control-group">
+                                               <label>
+                                                       <xsl:value-of 
select="php:function('lang', 'to')"/>
+                                               </label>
+                                               <xsl:value-of 
select="php:function('show_date', number(booking/to_), $date_format)"/>
+                                       </div>
+                                       <div class="pure-control-group">
+                                               <label>
+                                                       <xsl:value-of 
select="php:function('lang', 'customer')"/>
+                                               </label>
+                                               <xsl:value-of 
select="booking/customer_name"/>
+                                       </div>
+                                       <div class="pure-control-group">
+                                               <label>
+                                                       <xsl:value-of 
select="php:function('lang', 'location')"/>
+                                               </label>
+                                               <xsl:value-of 
select="booking/location"/>
+                                       </div>
+                       
                                        <fieldset>
-                                               <xsl:if test="vendor/id > 0">
-                                                       <div 
class="pure-control-group">
-                                                               <label>
-                                                                       
<xsl:value-of select="php:function('lang', 'id')"/>
-                                                               </label>
-                                                               <input 
type="hidden" name="id" value="{vendor/id}"/>
-                                                               <xsl:value-of 
select="vendor/id"/>
-                                                       </div>
-                                               </xsl:if>
                                                <!--xsl:apply-templates 
select="attributes_group/attributes"/-->
                                                <xsl:call-template 
name="attributes_values"/>
 

Modified: branches/dev-syncromind-2/helpdesk/inc/class.botts.inc.php
===================================================================
--- branches/dev-syncromind-2/helpdesk/inc/class.botts.inc.php  2016-12-18 
13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/helpdesk/inc/class.botts.inc.php  2016-12-18 
19:22:14 UTC (rev 16098)
@@ -978,7 +978,9 @@
                                 */
                                if(!$entry['email'])
                                {
-                                       $entry['email'] = 
"{$entry['account_lid'address@hidden";
+                                       $email_domain = 
!empty($GLOBALS['phpgw_info']['server']['email_domain']) ? 
$GLOBALS['phpgw_info']['server']['email_domain'] : 'bergen.kommune.no';
+
+                                       $entry['email'] = 
"{$entry['account_lid'address@hidden";
                                }
 
                                if ($entry['is_active'] && 
$entry['notification_method'] == 'email' && $entry['email'])

Modified: branches/dev-syncromind-2/phpgwapi/inc/class.jqcal2.inc.php
===================================================================
--- branches/dev-syncromind-2/phpgwapi/inc/class.jqcal2.inc.php 2016-12-18 
13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/phpgwapi/inc/class.jqcal2.inc.php 2016-12-18 
19:22:14 UTC (rev 16098)
@@ -43,7 +43,7 @@
 
                }
 
-               function add_listener($name, $type = 'date', $value = '')
+               function add_listener($name, $type = 'date', $value = 0, 
$config = array())
                {
                        switch($type)
                        {
@@ -59,8 +59,15 @@
                                        $_type = 'date';
                                        $dateformat = "{$this->dateformat}";
                        }
-
-                       $this->_input_modern($name, $_type, $dateformat);
+                       if(ctype_digit($value) && $value)
+                       {
+                               $start_value = date('Y/m/d H:i', $value);
+                       }
+                       else
+                       {
+                               $start_value = '';
+                       }
+                       $this->_input_modern($name, $_type, $dateformat, 
$config, $start_value);
                        return "<input id='{$name}' type='text' 
value='{$value}' size='10' name='{$name}'/>";
                }
 
@@ -70,12 +77,37 @@
                * @access private
                * @param string $name the element ID
                */
-               function _input_modern($id, $type, $dateformat)
+               function _input_modern($id, $type, $dateformat, $config = 
array(), $start_value = '')
                {
                        $datepicker = $type == 'time' ? 0 : 1;
                        $timepicker = $type == 'date' ? 0 : 1;
                        $placeholder = str_ireplace(array('Y','m', 'd', 'H', 
'i'), array('YYYY', 'MM', 'DD', 'HH', 'mm' ),$dateformat);
 
+
+                       if(empty($config['min_date']))
+                       {
+                               $min_date = 0;
+                       }
+                       else
+                       {
+                               $min_date = "'{$config['min_date']}'";
+                       }
+
+                       if(!empty($config['max_date']))
+                       {
+                               $min_date .= ",maxDate:'{$config['max_date']}'";
+                       }
+
+                       if(!$start_value)
+                       {
+                               $start_value = 'new Date()';
+                       }
+                       else
+                       {
+                               $start_value = "new Date('{$start_value}')";
+                       }
+
+
                        $js = <<<JS
                        $(document).ready(function()
                        {
@@ -91,12 +123,12 @@
                                        step: 15,
                                        weeks: true,
                                        dayOfWeekStart:1,
-               //                      mask:true,
-                                       minDate:0
+//                                     mask:true,
+                                       formatDate:'Y/m/d', //Format date for 
minDate and maxDate
+                                       formatTime: 'H:i',
+                                       startDate: {$start_value},
+                                       minDate:{$min_date}
                                });
-//jQuery('#image_button').click(function(){
-//  jQuery('#datetimepicker4').datetimepicker('show'); //support hide,show and 
destroy command
-//});
                        });
 JS;
                        $GLOBALS['phpgw']->js->add_code('', $js);

Modified: branches/dev-syncromind-2/phpgwapi/inc/class.jquery.inc.php
===================================================================
--- branches/dev-syncromind-2/phpgwapi/inc/class.jquery.inc.php 2016-12-18 
13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/phpgwapi/inc/class.jquery.inc.php 2016-12-18 
19:22:14 UTC (rev 16098)
@@ -137,7 +137,7 @@
                                                (
                                                "js/{$_jquery_core}{$_type}",
                                                //      
"tabs/jquery.responsiveTabs{$_type}",
-                                               "tabs/jquery.responsiveTabs",
+                                               
"tabs/jquery.responsiveTabs{$_type}",
                                                'common'
                                        );
 
@@ -386,7 +386,7 @@
                                        form: '#{$form_id}',
                                        validateOnBlur : false,
                                        scrollToTopOnError : false,
-                                       validateHiddenInputs: true,
+                       //              validateHiddenInputs: true,
                                        errorMessagePosition : 
{$errorMessagePosition},
                                        scrollToTopOnError: 
{$scrollToTopOnError}
                                });
@@ -472,11 +472,19 @@
                                        collapsible: 'accordion',
                                        setHash: true,
                                        activate: function(e, tab) {
-                                               $('.info').html('Tab <strong>' 
+ tab.id + '</strong> activated!');
+                                               if(tab.disabled == false)
+                                               {
+                                                       var selector = 
tab.selector;
+                                                       var active_tab = 
selector.replace("#", '');
+
+                                                       if (typeof set_tab === 
"function")
+                                                       {
+                                                               
set_tab(active_tab);
+                                                       }
+                                               }
                                        }
 
                                });
-
                                $('#{$tab_set}').responsiveTabs('activate', 
{$selected});
 
                        };

Modified: branches/dev-syncromind-2/phpgwapi/inc/class.phpgw.inc.php
===================================================================
--- branches/dev-syncromind-2/phpgwapi/inc/class.phpgw.inc.php  2016-12-18 
13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/phpgwapi/inc/class.phpgw.inc.php  2016-12-18 
19:22:14 UTC (rev 16098)
@@ -465,7 +465,7 @@
                                                $value = filter_var($value, 
FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES);
                                                $value = 
htmlspecialchars($value, ENT_QUOTES, 'UTF-8', true);
                                        //      $value = htmlentities($value, 
ENT_QUOTES, 'UTF-8', true);
-                                               $value = str_replace(array('(', 
')', '=', '--',';'),array('&#40;', '&#41;', '&#61;','&#8722;&#8722;','&#59;'), 
$value); // prevent SQL-injection
+                                               $value = 
str_replace(array(';','(', ')', '=', '--'),array('&#59;','&#40;', '&#41;', 
'&#61;','&#8722;&#8722;'), $value); // prevent SQL-injection
                                                break;
 
                                        case 'boolean':
@@ -577,6 +577,10 @@
                                                break;
                                        case 'date':
                                                $value = 
phpgwapi_datetime::date_to_timestamp($value);
+                                               if($value)
+                                               {
+                                                       $value -= 
phpgwapi_datetime::user_timezone();
+                                               }
                                                break;
                                }
                                return $value;

Modified: branches/dev-syncromind-2/phpgwapi/inc/class.socommon.inc.php
===================================================================
--- branches/dev-syncromind-2/phpgwapi/inc/class.socommon.inc.php       
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/phpgwapi/inc/class.socommon.inc.php       
2016-12-18 19:22:14 UTC (rev 16098)
@@ -1,4 +1,5 @@
 <?php
+
        /**
         * phpGroupWare
         *
@@ -10,23 +11,22 @@
         * @subpackage phpgwapi
         * @version $Id: class.custom_fields.inc.php 15409 2016-08-03 11:52:23Z 
sigurdne $
         */
-
        /*
-          This program is free software: you can redistribute it and/or modify
-          it under the terms of the GNU General Public License as published by
-          the Free Software Foundation, either version 2 of the License, or
-          (at your option) any later version.
+         This program is free software: you can redistribute it and/or modify
+         it under the terms of the GNU General Public License as published by
+         the Free Software Foundation, either version 2 of the License, or
+         (at your option) any later version.
 
-          This program is distributed in the hope that it will be useful,
-          but WITHOUT ANY WARRANTY; without even the implied warranty of
-          MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-          GNU Lesser General Public License for more details.
+         This program is distributed in the hope that it will be useful,
+         but WITHOUT ANY WARRANTY; without even the implied warranty of
+         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+         GNU Lesser General Public License for more details.
 
-          You should have received a copy of the GNU General Public License
-          along with this program.  If not, see <http://www.gnu.org/licenses/>.
+         You should have received a copy of the GNU General Public License
+         along with this program.  If not, see <http://www.gnu.org/licenses/>.
         */
 
-       abstract class  phpgwapi_socommon
+       abstract class phpgwapi_socommon
        {
 
                protected $db;
@@ -41,7 +41,7 @@
                protected static $so;
                protected $table_name;
 
-               public function __construct($table_name, $fields)
+               public function __construct( $table_name, $fields )
                {
                        $this->db = & $GLOBALS['phpgw']->db;
                        $this->db2 = clone($GLOBALS['phpgw']->db);
@@ -77,7 +77,7 @@
                /**
                 * Rollback the current transaction
                 *
-                * @return bool True if sucessful, False if fails
+                * @return bool True if successful, False if fails
                 */
                public function transaction_abort()
                {
@@ -112,6 +112,10 @@
                        {
                                return $this->db->db_addslashes($value);
                        }
+                       else if ($type == 'jsonb')
+                       {
+                               return "'" . json_encode($value) . "'";
+                       }
                        return "'" . $this->db->db_addslashes($value) . "'";
                }
 
@@ -169,7 +173,6 @@
                 */
                public abstract static function get_instance();
 
-
                /**
                 * Method for retrieving the db-object (security "forgotten")
                 */
@@ -336,7 +339,7 @@
                        return $this->table_name . '.id=' . $id_value;
                }
 
-               function read_single( $id, $return_object = false)
+               function read_single( $id, $return_object = false )
                {
                        if (!$id && !$return_object)
                        {
@@ -412,7 +415,7 @@
                                        }
                                }
                        }
-                       if($return_object)
+                       if ($return_object)
                        {
                                return $this->populate($row);
                        }
@@ -422,7 +425,6 @@
                        }
                }
 
-
                function _get_conditions( $query, $filters )
                {
                        $clauses = array('1=1');
@@ -480,7 +482,7 @@
                                        }
                                        else
                                        {
-                                               $_column = 
$this->fields[$key]['join'] ? $this->fields[$key]['join']['column'] : $key;     
                             
+                                               $_column = 
$this->fields[$key]['join'] ? $this->fields[$key]['join']['column'] : $key;
                                                $clauses[] = 
"{$table}.{$_column}=" . $this->marshal($val, $this->fields[$key]['type']);
                                        }
                                }
@@ -540,7 +542,6 @@
                        return array($cols, $joins);
                }
 
-
                /**
                 * Implementing classes must return the name of the field used 
in the query
                 * returned from get_query().
@@ -554,7 +555,6 @@
 
                protected abstract function populate( array $data );
 
-
                protected function add( &$object )
                {
                        $object->entry_date = time();
@@ -562,18 +562,39 @@
 
                        $fields = $object::get_fields();
 
-                       foreach ($fields as $field      => $field_info)
+                       foreach ($fields as $field => $field_info)
                        {
-                               if(($field_info['action'] & PHPGW_ACL_ADD)
-                                       && empty($field_info['join'])
-                                       && empty($field_info['related'])
-                                       && empty($field_info['manytomany']))
+                               if (($field_info['action'] & PHPGW_ACL_ADD) && 
empty($field_info['join']) && empty($field_info['related']) && 
empty($field_info['manytomany']))
                                {
-                                       $value_set[$field] = $object->$field;
+                                       if ($field_info['type'] == 'json')
+                                       {
+                                               $value_set[$field] = 
json_encode($object->$field);
+                                       }
+                                       else
+                                       {
+                                               $value_set[$field] = 
$object->$field;
+                                       }
                                }
                        }
-                       
-                       $sql = "INSERT INTO {$this->table_name} (". 
implode(',',  array_keys($value_set))
+//                     $custom_fields = $object::get_custom_fields();
+                       $values_attribute = 
createObject('phpgwapi.custom_fields')->convert_attribute_save($object->values_attribute);
+
+                       if ( $values_attribute)
+                       {
+                               foreach ($values_attribute as $attrib_id => 
$entry)
+                               {
+                                       if ($entry['value'])
+                                       {
+                                               if ($entry['datatype'] == 'C' 
|| $entry['datatype'] == 'T' || $entry['datatype'] == 'V' || $entry['datatype'] 
== 'link')
+                                               {
+                                                       $entry['value'] = 
$this->db->db_addslashes($entry['value']);
+                                               }
+                                               $value_set[$entry['name']] = 
$entry['value'];
+                                       }
+                               }
+                       }
+
+                       $sql = "INSERT INTO {$this->table_name} (" . 
implode(',', array_keys($value_set))
                                . ') VALUES ('
                                . 
$this->db->validate_insert(array_values($value_set))
                                . ')';
@@ -587,7 +608,7 @@
                                $this->db->transaction_begin();
                        }
 
-                       $this->db->query($sql,__LINE__,__FILE__);
+                       $this->db->query($sql, __LINE__, __FILE__);
 
                        $id = $this->db->get_last_insert_id($this->table_name, 
'id');
                        $object->set_id($id);
@@ -615,20 +636,40 @@
 
                        foreach ($this->fields as $field => $field_info)
                        {
-                               if(($field_info['action'] & PHPGW_ACL_EDIT) 
-                                       && empty($field_info['join'])
-                                       && empty($field_info['related'])
-                                       && empty($field_info['manytomany']))
+                               if (($field_info['action'] & PHPGW_ACL_EDIT) && 
empty($field_info['join']) && empty($field_info['related']) && 
empty($field_info['manytomany']))
                                {
-                                       $value_set[$field] = $object->$field;
+                                       if ($field_info['type'] == 'json')
+                                       {
+                                               $value_set[$field] = 
json_encode($object->$field);
+                                       }
+                                       else
+                                       {
+                                               $value_set[$field] = 
$object->$field;
+                                       }
                                }
                        }
+                       $values_attribute = 
createObject('phpgwapi.custom_fields')->convert_attribute_save($object->values_attribute);
 
+                       if ( $values_attribute)
+                       {
+                               foreach ($values_attribute as $attrib_id => 
$entry)
+                               {
+                                       if ($entry['value'])
+                                       {
+                                               if ($entry['datatype'] == 'C' 
|| $entry['datatype'] == 'T' || $entry['datatype'] == 'V' || $entry['datatype'] 
== 'link')
+                                               {
+                                                       $entry['value'] = 
$this->db->db_addslashes($entry['value']);
+                                               }
+                                               $value_set[$entry['name']] = 
$entry['value'];
+                                       }
+                               }
+                       }
+
                        $sql = "UPDATE {$this->table_name} SET "
                                . $this->db->validate_update($value_set)
                                . " WHERE id = {$id}";
 
-                       $ret1 = $this->db->query($sql,__LINE__,__FILE__);
+                       $ret1 = $this->db->query($sql, __LINE__, __FILE__);
 
                        $ret2 = $this->add_manytomany($object);
 
@@ -663,7 +704,7 @@
                                                $colnames = join(',', 
array_keys($colnames));
 
                                                $v = 
$object->get_field($params['manytomany']['input_field']);
-                                               
+
                                                $data = array();
                                                foreach 
($params['manytomany']['column'] as $intOrCol => $paramsOrCol)
                                                {
@@ -687,17 +728,17 @@
                                                }
                                                $v = join(',', $data);
                                                $update_query = "INSERT INTO 
$table ($key, $colnames) VALUES($id, $v)";
-                                               return 
$this->db->query($update_query,__LINE__,__FILE__);
+                                               return 
$this->db->query($update_query, __LINE__, __FILE__);
                                        }
                                        else
                                        {
                                                $colname = 
$params['manytomany']['column'];
                                                $v = 
$this->marshal($object->get_field($params['manytomany']['input_field']), 
$params['type']);
                                                $update_query = "INSERT INTO 
$table ($key, $colname) VALUES($id, $v)";
-                                               return 
$this->db->query($update_query,__LINE__,__FILE__);
+                                               return 
$this->db->query($update_query, __LINE__, __FILE__);
                                        }
                                }
-                               else if(!empty($params['manytomany']) && 
is_array($value))
+                               else if (!empty($params['manytomany']) && 
is_array($value))
                                {
                                        $update_queries = array();
                                        $table = $params['manytomany']['table'];
@@ -755,7 +796,6 @@
                                        {
                                                $this->db->query($update_query, 
__LINE__, __FILE__);
                                        }
-
                                }
                        }
                        return true;
@@ -778,4 +818,4 @@
                                return $this->add($object);
                        }
                }
-       }
+       }
\ No newline at end of file

Modified: branches/dev-syncromind-2/phpgwapi/inc/functions.inc.php
===================================================================
--- branches/dev-syncromind-2/phpgwapi/inc/functions.inc.php    2016-12-18 
13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/phpgwapi/inc/functions.inc.php    2016-12-18 
19:22:14 UTC (rev 16098)
@@ -87,7 +87,17 @@
                }
                return json_encode($strings);
        }
-       
+       /**
+        * Generate formatted datetime for use with xslt templates
+        * @return string datetime
+        */
+       function show_date()
+       {
+               $args = func_get_args();
+               $timestamp = $args[0];
+               $dateformat = !empty($args[1]) ? $args[1] : '';
+               return $GLOBALS['phpgw']->common->show_date($timestamp, 
$dateformat);
+       }
 
 
        /**

Modified: branches/dev-syncromind-2/phpgwapi/inc/model/class.model.inc.php
===================================================================
--- branches/dev-syncromind-2/phpgwapi/inc/model/class.model.inc.php    
2016-12-18 13:23:14 UTC (rev 16097)
+++ branches/dev-syncromind-2/phpgwapi/inc/model/class.model.inc.php    
2016-12-18 19:22:14 UTC (rev 16098)
@@ -76,7 +76,7 @@
                                        {
                                                case 'int':
                                                case 'integert':
-                                                       $value = 
(int)$this->$name;
+                                                       $value = 
empty($this->$name) && $this->$name === '' ? null : (int)$this->$name;
                                                        break;
                                                case 'float':
                                                        $value = 
(float)$this->$name;
@@ -279,7 +279,15 @@
                        return $errors ? false : true;
                }
 
+
                /**
+                * Implement in subclasses
+                */
+               public function get_custom_fields()
+               {
+                       return array();
+               }
+               /**
                 * Implement in subclasses to perform actions on entity before 
validation
                 */
                protected function preValidate( &$entity )

Modified: 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/index.html
===================================================================
--- 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/index.html
    2016-12-18 13:23:14 UTC (rev 16097)
+++ 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/index.html
    2016-12-18 19:22:14 UTC (rev 16098)
@@ -6,7 +6,7 @@
        <meta name="viewport" content="initial-scale=1.0, maximum-scale=2.0">
        <link rel="stylesheet" type="text/css" 
href="../../../examples/resources/syntax/shCore.css">
        <link rel="stylesheet" type="text/css" 
href="../../../examples/resources/demo.css">
-       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.min.js">
+       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.js">
        </script>
        <script type="text/javascript" language="javascript" 
src="../../../examples/resources/syntax/shCore.js">
        </script>

Modified: 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/alwaysAsk.html
===================================================================
--- 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/alwaysAsk.html
 2016-12-18 13:23:14 UTC (rev 16097)
+++ 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/alwaysAsk.html
 2016-12-18 19:22:14 UTC (rev 16098)
@@ -12,7 +12,7 @@
        <style type="text/css" class="init">
        
        </style>
-       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.min.js">
+       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.js">
        </script>
        <script type="text/javascript" language="javascript" 
src="../../../../media/js/jquery.dataTables.js">
        </script>
@@ -51,6 +51,7 @@
                                action if they made a mistake during the drag. 
This example shows <a 
href="//datatables.net/reference/option/autoFill.alwaysAsk"><code 
class="option" title=
                                "AutoFill initialisation 
option">autoFill.alwaysAsk</code></a> set to <code>true</code> - to 
demonstrate, try auto filling a single row or column.</p>
                        </div>
+                       <div class="demo-html"></div>
                        <table id="example" class="display nowrap" 
cellspacing="0" width="100%">
                                <thead>
                                        <tr>
@@ -550,7 +551,7 @@
                                        <p>In addition to the above code, the 
following Javascript library files are loaded for use in this example:</p>
                                        <ul>
                                                <li>
-                                                       <a 
href="//code.jquery.com/jquery-1.12.3.min.js">//code.jquery.com/jquery-1.12.3.min.js</a>
+                                                       <a 
href="//code.jquery.com/jquery-1.12.3.js">//code.jquery.com/jquery-1.12.3.js</a>
                                                </li>
                                                <li>
                                                        <a 
href="../../../../media/js/jquery.dataTables.js">../../../../media/js/jquery.dataTables.js</a>

Modified: 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/columns.html
===================================================================
--- 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/columns.html
   2016-12-18 13:23:14 UTC (rev 16097)
+++ 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/columns.html
   2016-12-18 19:22:14 UTC (rev 16098)
@@ -13,7 +13,7 @@
        <style type="text/css" class="init">
        
        </style>
-       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.min.js">
+       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.js">
        </script>
        <script type="text/javascript" language="javascript" 
src="../../../../media/js/jquery.dataTables.js">
        </script>
@@ -67,6 +67,7 @@
                                
"https://datatables.net/extensions/rowreorder";>RowReorder</a> and <a 
href="https://datatables.net/extensions/keytable";>KeyTable</a>) can make for a 
powerful data
                                editing environment for end users.</p>
                        </div>
+                       <div class="demo-html"></div>
                        <table id="example" class="display" cellspacing="0" 
width="100%">
                                <thead>
                                        <tr>
@@ -576,7 +577,7 @@
                                        <p>In addition to the above code, the 
following Javascript library files are loaded for use in this example:</p>
                                        <ul>
                                                <li>
-                                                       <a 
href="//code.jquery.com/jquery-1.12.3.min.js">//code.jquery.com/jquery-1.12.3.min.js</a>
+                                                       <a 
href="//code.jquery.com/jquery-1.12.3.js">//code.jquery.com/jquery-1.12.3.js</a>
                                                </li>
                                                <li>
                                                        <a 
href="../../../../media/js/jquery.dataTables.js">../../../../media/js/jquery.dataTables.js</a>

Modified: 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/events.html
===================================================================
--- 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/events.html
    2016-12-18 13:23:14 UTC (rev 16097)
+++ 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/events.html
    2016-12-18 19:22:14 UTC (rev 16098)
@@ -12,7 +12,7 @@
        <style type="text/css" class="init">
        
        </style>
-       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.min.js">
+       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.js">
        </script>
        <script type="text/javascript" language="javascript" 
src="../../../../media/js/jquery.dataTables.js">
        </script>
@@ -58,6 +58,7 @@
                                for to adjust the table's column sizes to suit 
the new data. Although this is a trivial example, this listener can be used to 
perform other updates such as writing
                                the filled data to a database.</p>
                        </div>
+                       <div class="demo-html"></div>
                        <table id="example" class="display nowrap" 
cellspacing="0" width="100%">
                                <thead>
                                        <tr>
@@ -559,7 +560,7 @@
                                        <p>In addition to the above code, the 
following Javascript library files are loaded for use in this example:</p>
                                        <ul>
                                                <li>
-                                                       <a 
href="//code.jquery.com/jquery-1.12.3.min.js">//code.jquery.com/jquery-1.12.3.min.js</a>
+                                                       <a 
href="//code.jquery.com/jquery-1.12.3.js">//code.jquery.com/jquery-1.12.3.js</a>
                                                </li>
                                                <li>
                                                        <a 
href="../../../../media/js/jquery.dataTables.js">../../../../media/js/jquery.dataTables.js</a>

Modified: 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/fills.html
===================================================================
--- 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/fills.html
     2016-12-18 13:23:14 UTC (rev 16097)
+++ 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/fills.html
     2016-12-18 19:22:14 UTC (rev 16098)
@@ -12,7 +12,7 @@
        <style type="text/css" class="init">
        
        </style>
-       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.min.js">
+       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.js">
        </script>
        <script type="text/javascript" language="javascript" 
src="../../../../media/js/jquery.dataTables.js">
        </script>
@@ -53,6 +53,7 @@
                                </ul>
                                <p>Additional fills can also be added <a 
href="plugins.html">using plug-ins</a> if you require further options.</p>
                        </div>
+                       <div class="demo-html"></div>
                        <table id="example" class="display nowrap" 
cellspacing="0" width="100%">
                                <thead>
                                        <tr>
@@ -550,7 +551,7 @@
                                        <p>In addition to the above code, the 
following Javascript library files are loaded for use in this example:</p>
                                        <ul>
                                                <li>
-                                                       <a 
href="//code.jquery.com/jquery-1.12.3.min.js">//code.jquery.com/jquery-1.12.3.min.js</a>
+                                                       <a 
href="//code.jquery.com/jquery-1.12.3.js">//code.jquery.com/jquery-1.12.3.js</a>
                                                </li>
                                                <li>
                                                        <a 
href="../../../../media/js/jquery.dataTables.js">../../../../media/js/jquery.dataTables.js</a>

Modified: 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/focus.html
===================================================================
--- 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/focus.html
     2016-12-18 13:23:14 UTC (rev 16097)
+++ 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/focus.html
     2016-12-18 19:22:14 UTC (rev 16098)
@@ -12,7 +12,7 @@
        <style type="text/css" class="init">
        
        </style>
-       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.min.js">
+       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.js">
        </script>
        <script type="text/javascript" language="javascript" 
src="../../../../media/js/jquery.dataTables.js">
        </script>
@@ -56,6 +56,7 @@
                                <p>This example shows the <code class="string" 
title="String">click</code> behaviour. Click a cell to show the auto fill 
handle. Note that a click outside of the
                                table will cause the handle to be removed.</p>
                        </div>
+                       <div class="demo-html"></div>
                        <table id="example" class="display nowrap" 
cellspacing="0" width="100%">
                                <thead>
                                        <tr>
@@ -555,7 +556,7 @@
                                        <p>In addition to the above code, the 
following Javascript library files are loaded for use in this example:</p>
                                        <ul>
                                                <li>
-                                                       <a 
href="//code.jquery.com/jquery-1.12.3.min.js">//code.jquery.com/jquery-1.12.3.min.js</a>
+                                                       <a 
href="//code.jquery.com/jquery-1.12.3.js">//code.jquery.com/jquery-1.12.3.js</a>
                                                </li>
                                                <li>
                                                        <a 
href="../../../../media/js/jquery.dataTables.js">../../../../media/js/jquery.dataTables.js</a>

Modified: 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/index.html
===================================================================
--- 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/index.html
     2016-12-18 13:23:14 UTC (rev 16097)
+++ 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/index.html
     2016-12-18 19:22:14 UTC (rev 16098)
@@ -6,7 +6,7 @@
        <meta name="viewport" content="initial-scale=1.0, maximum-scale=2.0">
        <link rel="stylesheet" type="text/css" 
href="../../../../examples/resources/syntax/shCore.css">
        <link rel="stylesheet" type="text/css" 
href="../../../../examples/resources/demo.css">
-       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.min.js">
+       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.js">
        </script>
        <script type="text/javascript" language="javascript" 
src="../../../../examples/resources/syntax/shCore.js">
        </script>

Modified: 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/keyTable.html
===================================================================
--- 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/keyTable.html
  2016-12-18 13:23:14 UTC (rev 16097)
+++ 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/keyTable.html
  2016-12-18 19:22:14 UTC (rev 16098)
@@ -13,7 +13,7 @@
        <style type="text/css" class="init">
        
        </style>
-       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.min.js">
+       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.js">
        </script>
        <script type="text/javascript" language="javascript" 
src="../../../../media/js/jquery.dataTables.js">
        </script>
@@ -45,12 +45,13 @@
                        <div class="info">
                                <p>If you are looking to emulate the UI of 
spreadsheet programs such as Excel with DataTables, the combination of <a href=
                                
"https://datatables.net/extensions/keytable";>KeyTable</a> and AutoFill will 
take you a long way there!</p>
-                               <p>AutoFill will automatically detect when 
KeyTable is used on the same table and later its focus option (<a href=
+                               <p>AutoFill will automatically detect when 
KeyTable is used on the same table and alter its focus option (<a href=
                                
"//datatables.net/reference/option/autoFill.focus"><code class="option" 
title="AutoFill initialisation option">autoFill.focus</code></a>) so the 
focused cell will
                                show the auto fill handle. Thus all that needs 
to be done is to initialise both AutoFill and KeyTable with <a href=
                                
"//datatables.net/reference/option/autoFill"><code class="option" 
title="AutoFill initialisation option">autoFill</code></a> and <a href=
                                "//datatables.net/reference/option/keys"><code 
class="option" title="KeyTable initialisation option">keys</code></a> 
respectively).</p>
                        </div>
+                       <div class="demo-html"></div>
                        <table id="example" class="display" cellspacing="0" 
width="100%">
                                <thead>
                                        <tr>
@@ -549,7 +550,7 @@
                                        <p>In addition to the above code, the 
following Javascript library files are loaded for use in this example:</p>
                                        <ul>
                                                <li>
-                                                       <a 
href="//code.jquery.com/jquery-1.12.3.min.js">//code.jquery.com/jquery-1.12.3.min.js</a>
+                                                       <a 
href="//code.jquery.com/jquery-1.12.3.js">//code.jquery.com/jquery-1.12.3.js</a>
                                                </li>
                                                <li>
                                                        <a 
href="../../../../media/js/jquery.dataTables.js">../../../../media/js/jquery.dataTables.js</a>

Modified: 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/plugins.html
===================================================================
--- 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/plugins.html
   2016-12-18 13:23:14 UTC (rev 16097)
+++ 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/plugins.html
   2016-12-18 19:22:14 UTC (rev 16098)
@@ -12,7 +12,7 @@
        <style type="text/css" class="init">
        
        </style>
-       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.min.js">
+       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.js">
        </script>
        <script type="text/javascript" language="javascript" 
src="../../../../media/js/jquery.dataTables.js">
        </script>
@@ -78,6 +78,7 @@
                                <p>For full details about creating fill 
plug-ins for AutoFill, please refer to the <a 
href="https://datatables.net/extensions/autofill";>online
                                documentation</a>.</p>
                        </div>
+                       <div class="demo-html"></div>
                        <table id="example" class="display nowrap" 
cellspacing="0" width="100%">
                                <thead>
                                        <tr>
@@ -599,7 +600,7 @@
                                        <p>In addition to the above code, the 
following Javascript library files are loaded for use in this example:</p>
                                        <ul>
                                                <li>
-                                                       <a 
href="//code.jquery.com/jquery-1.12.3.min.js">//code.jquery.com/jquery-1.12.3.min.js</a>
+                                                       <a 
href="//code.jquery.com/jquery-1.12.3.js">//code.jquery.com/jquery-1.12.3.js</a>
                                                </li>
                                                <li>
                                                        <a 
href="../../../../media/js/jquery.dataTables.js">../../../../media/js/jquery.dataTables.js</a>

Modified: 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/scrolling.html
===================================================================
--- 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/scrolling.html
 2016-12-18 13:23:14 UTC (rev 16097)
+++ 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/scrolling.html
 2016-12-18 19:22:14 UTC (rev 16098)
@@ -12,7 +12,7 @@
        <style type="text/css" class="init">
        
        </style>
-       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.min.js">
+       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.js">
        </script>
        <script type="text/javascript" language="javascript" 
src="../../../../media/js/jquery.dataTables.js">
        </script>
@@ -46,6 +46,7 @@
                                <p>When dragging an AutoFill handle, the table 
(if DataTables scrolling is enabled) or the window will be automatically 
scrolled, as you approach the edge of the
                                scrolling component. The example below shows 
the effect with DataTables scrolling (and also window if needed).</p>
                        </div>
+                       <div class="demo-html"></div>
                        <table id="example" class="display nowrap" 
cellspacing="0" width="100%">
                                <thead>
                                        <tr>
@@ -547,7 +548,7 @@
                                        <p>In addition to the above code, the 
following Javascript library files are loaded for use in this example:</p>
                                        <ul>
                                                <li>
-                                                       <a 
href="//code.jquery.com/jquery-1.12.3.min.js">//code.jquery.com/jquery-1.12.3.min.js</a>
+                                                       <a 
href="//code.jquery.com/jquery-1.12.3.js">//code.jquery.com/jquery-1.12.3.js</a>
                                                </li>
                                                <li>
                                                        <a 
href="../../../../media/js/jquery.dataTables.js">../../../../media/js/jquery.dataTables.js</a>

Modified: 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/simple.html
===================================================================
--- 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/simple.html
    2016-12-18 13:23:14 UTC (rev 16097)
+++ 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/initialisation/simple.html
    2016-12-18 19:22:14 UTC (rev 16098)
@@ -12,7 +12,7 @@
        <style type="text/css" class="init">
        
        </style>
-       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.min.js">
+       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.js">
        </script>
        <script type="text/javascript" language="javascript" 
src="../../../../media/js/jquery.dataTables.js">
        </script>
@@ -45,6 +45,7 @@
                                "AutoFill initialisation 
option">autoFill</code></a> option as shown in the example below. This can be 
set to be <code>true</code> to use the AutoFill
                                configuration defaults, or used as an object to 
specify options.</p>
                        </div>
+                       <div class="demo-html"></div>
                        <table id="example" class="display nowrap" 
cellspacing="0" width="100%">
                                <thead>
                                        <tr>
@@ -542,7 +543,7 @@
                                        <p>In addition to the above code, the 
following Javascript library files are loaded for use in this example:</p>
                                        <ul>
                                                <li>
-                                                       <a 
href="//code.jquery.com/jquery-1.12.3.min.js">//code.jquery.com/jquery-1.12.3.min.js</a>
+                                                       <a 
href="//code.jquery.com/jquery-1.12.3.js">//code.jquery.com/jquery-1.12.3.js</a>
                                                </li>
                                                <li>
                                                        <a 
href="../../../../media/js/jquery.dataTables.js">../../../../media/js/jquery.dataTables.js</a>

Modified: 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/styling/bootstrap.html
===================================================================
--- 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/styling/bootstrap.html
        2016-12-18 13:23:14 UTC (rev 16097)
+++ 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/styling/bootstrap.html
        2016-12-18 19:22:14 UTC (rev 16098)
@@ -13,7 +13,7 @@
        <style type="text/css" class="init">
        
        </style>
-       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.min.js">
+       <script type="text/javascript" language="javascript" 
src="//code.jquery.com/jquery-1.12.3.js">
        </script>
        <script type="text/javascript" language="javascript" 
src="../../../../media/js/jquery.dataTables.js">
        </script>
@@ -50,6 +50,7 @@
                                The <a 
href="//datatables.net/manual/styling/bootstrap">DataTables / Bootstrap 
integration</a> provides seamless integration for DataTables to be used in a
                                Bootstrap page.</p>
                        </div>
+                       <div class="demo-html"></div>
                        <table id="example" class="table table-striped 
table-bordered" cellspacing="0" width="100%">
                                <thead>
                                        <tr>
@@ -547,7 +548,7 @@
                                        <p>In addition to the above code, the 
following Javascript library files are loaded for use in this example:</p>
                                        <ul>
                                                <li>
-                                                       <a 
href="//code.jquery.com/jquery-1.12.3.min.js">//code.jquery.com/jquery-1.12.3.min.js</a>
+                                                       <a 
href="//code.jquery.com/jquery-1.12.3.js">//code.jquery.com/jquery-1.12.3.js</a>
                                                </li>
                                                <li>
                                                        <a 
href="../../../../media/js/jquery.dataTables.js">../../../../media/js/jquery.dataTables.js</a>

Modified: 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/styling/bootstrap4.html
===================================================================
--- 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/styling/bootstrap4.html
       2016-12-18 13:23:14 UTC (rev 16097)
+++ 
branches/dev-syncromind-2/phpgwapi/js/DataTables/extensions/AutoFill/examples/styling/bootstrap4.html
       2016-12-18 19:22:14 UTC (rev 16098)
@@ -5,7 +5,7 @@
        <link rel="shortcut icon" type="image/ico" 
href="http://www.datatables.net/favicon.ico";>
        <meta name="viewport" content="initial-scale=1.0, maximum-scale=2.0">
        <title>AutoFill example - Bootstrap 4 styling</title>

@@ Diff output truncated at 153600 characters. @@



reply via email to

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