WebshopApi: ShopImage
[kivitendo-erp.git] / templates / webpages / client_config / _features.html
index 8e128f3..48b1ba3 100644 (file)
   <tr>
     <td align="right">[% LxERP.t8('Storage Type for generated/imported PDF Documents') %]</td>
     <td>[% L.select_tag('defaults.doc_storage_for_documents',
-         [ [ 'Filesystem', LxERP.t8('Files') ],[ 'Webdav', LxERP.t8('WebDAV') ],[ 'ExtDMS', LxERP.t8('ext.DMS') ],[ 'DB', LxERP.t8('Database') ]  ],
-                               default = SELF.defaults.doc_storage_for_documents) %]</td> 
+         [ [ 'None', LxERP.t8('None') ],[ 'Filesystem', LxERP.t8('Files') ],[ 'Webdav', LxERP.t8('WebDAV') ],[ 'ExtDMS', LxERP.t8('ext.DMS') ],[ 'DB', LxERP.t8('Database') ]  ],
+                               default = SELF.defaults.doc_storage_for_documents,
+                               onchange="return checkavailable_filebackend(this);") %]</td>
     <td>[% LxERP.t8('Use this storage backend for all generated PDF-Files') %]</td>
   </tr>
   <tr>
     <td align="right">[% LxERP.t8('Storage Type for Attachments') %]</td>
     <td>[% L.select_tag('defaults.doc_storage_for_attachments',
-         [ [ 'Filesystem', LxERP.t8('Files') ],[ 'Webdav', LxERP.t8('WebDAV') ],[ 'ExtDMS', LxERP.t8('ext.DMS') ],[ 'DB', LxERP.t8('Database') ]  ],
-                               default = SELF.defaults.doc_storage_for_attachments) %]</td> 
+         [ [ 'None', LxERP.t8('None') ], [ 'Filesystem', LxERP.t8('Files') ],[ 'Webdav', LxERP.t8('WebDAV') ],[ 'ExtDMS', LxERP.t8('ext.DMS') ],[ 'DB', LxERP.t8('Database') ]  ],
+                               default = SELF.defaults.doc_storage_for_attachments,
+                               onchange="return checkavailable_filebackend(this);") %]</td>
     <td>[% LxERP.t8('Use this storage backend for all uploaded attachments') %]</td>
   </tr>
   <tr>
     <td align="right">[% LxERP.t8('Storage Type for images') %]</td>
     <td>[% L.select_tag('defaults.doc_storage_for_images',
-         [ [ 'Filesystem', LxERP.t8('Files') ],[ 'Webdav', LxERP.t8('WebDAV') ],[ 'ExtDMS', LxERP.t8('ext.DMS') ],[ 'DB', LxERP.t8('Database') ]  ],
-                               default = SELF.defaults.doc_storage_for_images) %]</td> 
+         [ [ 'None', LxERP.t8('None') ], [ 'Filesystem', LxERP.t8('Files') ],[ 'Webdav', LxERP.t8('WebDAV') ],[ 'ExtDMS', LxERP.t8('ext.DMS') ],[ 'DB', LxERP.t8('Database') ]  ],
+                               default = SELF.defaults.doc_storage_for_images,
+                               onchange="return checkavailable_filebackend(this);") %]</td>
+    <td>[% LxERP.t8('Use this storage backend for uploaded images') %]</td>
+  </tr>
+  <tr>
+    <td align="right">[% LxERP.t8('Storage Type for shopimages') %]</td>
+    <td>[% L.select_tag('defaults.doc_storage_for_shopimages',
+         [ [ 'None', LxERP.t8('None') ], [ 'Filesystem', LxERP.t8('Files') ],[ 'Webdav', LxERP.t8('WebDAV') ],[ 'ExtDMS', LxERP.t8('ext.DMS') ],[ 'DB', LxERP.t8('Database') ]  ],
+                               default = SELF.defaults.doc_storage_for_shopimages,
+                               onchange="return checkavailable_filebackend(this);") %]</td>
     <td>[% LxERP.t8('Use this storage backend for uploaded images') %]</td>
   </tr>
   <tr>
@@ -62,8 +73,9 @@
   </tr>
   <tr>
    <td align="right">[% LxERP.t8('max filesize') %]</td>
-   <td>[% L.input_tag('defaults.doc_max_filesize',SELF.defaults.doc_max_filesize, size=>10) %]</td>
-   <td>[% LxERP.t8('The maximum of uploadable filesize') %]</td>
+   <td>[% L.input_tag('doc_max_filesize_MB','', size=10, onchange="verifyMBSize(this);") %]
+       [% L.hidden_tag('defaults.doc_max_filesize',SELF.defaults.doc_max_filesize) %] MB</td>
+   <td>[% LxERP.t8('The maximum of uploadable filesize in Megabyte') %]</td>
   </tr>
   <tr><td class="listheading" colspan="4">[% LxERP.t8("Storage Backends") %]</td></tr>
   <tr>
    <td>[% L.yes_no_tag('defaults.doc_files', SELF.defaults.doc_files) %]</td>
    <td>[% LxERP.t8('Use File Storage backend') %]</td>
   </tr>
-  <tr>
-   <td align="right">[% LxERP.t8('Root path for file storage') %]</td>
-   <td>[% L.input_tag('defaults.doc_files_rootpath',SELF.defaults.doc_files_rootpath, style=style) %]</td>
-   <td>[% LxERP.t8('This is the root directory for the File storage backend, must be writable for webserver') %]</td>
-  </tr>
   <tr>
    <td align="right">[% LxERP.t8('WebDAV') %]</td>
    <td>[% L.yes_no_tag('defaults.doc_webdav', SELF.defaults.doc_webdav) %]</td>
@@ -83,7 +90,7 @@
   </tr>
   <tr>
    <td align="right">[% LxERP.t8('Database') %]</td>
-   <td>[% L.yes_no_tag('defaults.doc_database', SELF.defaults.doc_database) %]</td>
+   <td>[% L.yes_no_tag('defaults.doc_database', SELF.defaults.doc_database, disabled=1) %]</td>
    <td>[% LxERP.t8('Use Database Storage backend (not implemented yet!)') %]</td>
   </tr>
 
    <td>[% 'Manually sent E-Mails will have their BCC field appended with this address. Will not trigger for employees without the right to send bcc, and will not apply to mails sent by automated jobs.' | $T8 %]</td>
   </tr>
 
+  <tr>
+   <td align="right">[% LxERP.t8('Send a BCC to logged in user?') %]</td>
+   <td>
+     [% L.yes_no_tag('defaults.bcc_to_login', SELF.defaults.bcc_to_login) %]
+   </td>
+   <td>
+     [% LxERP.t8('Send a blind copy of all outgoing emails to current user\'s email address?') %]
+   </td>
+ </tr>
+
   <tr>
    <td align="right">[% LxERP.t8('Email journal') %]</td>
    <td>
    <td align="right">[% LxERP.t8('Add Customer/Vendor Number as a reference add-on for SEPA export.') %]</td>
    <td>[% L.yes_no_tag('defaults.sepa_reference_add_vc_vc_id', SELF.defaults.sepa_reference_add_vc_vc_id) %]</td>
   </tr>
- </table>
+
+  <tr><td class="listheading" colspan="4">[% LxERP.t8("Experimental Features") %]</td></tr>
+  <tr>
+   <td align="right">[% LxERP.t8('Enable experimental features') %]</td>
+   <td>[% L.yes_no_tag('defaults.feature_experimental', SELF.defaults.feature_experimental) %]</td>
+   <td>[% LxERP.t8('Experimental features are:') %] [% LxERP.t8('new order controller') %], [% LxERP.t8('Assortment') %]</td>
+  </tr>
+
+ <tr><td class="listheading" colspan="4">[% LxERP.t8("Shipped Quantity Algorithm") %]</td></tr>
+ <tr>
+  <td align="right">[% LxERP.t8('Require stock out to consider a delivery order position delivered?') %]</td>
+  <td>[% L.yes_no_tag('defaults.shipped_qty_require_stock_out', SELF.defaults.shipped_qty_require_stock_out) %]</td>
+  <td>[% LxERP.t8('If yes, delivery order positions are considered "delivered" only if they have been stocked out of the inventory. Otherwise saving the delivery order is considered delivered.') %]</td>
+ </tr>
+ <tr>
+  <td align="right">[% LxERP.t8('Use fill up when calculating shipped quantities?') %]</td>
+  <td>[% L.yes_no_tag('defaults.shipped_qty_fill_up', SELF.defaults.shipped_qty_fill_up) %]</td>
+  <td>[% LxERP.t8('Linked positions will always be reconciled first. If this is set to yes, unlinked positions will be reconciled in a second step. This is necessary in very old databases (with open delivery orders from before 3.4.0) and in businesses where delivery orders are frequently amended. Usually the direct links are faster and more accurate. Defaults to true for historical reasons only.') %]</td>
+ </tr>
+ <tr>
+  <td align="right">[% LxERP.t8('Position identity fields for fill up?') %]</td>
+  <td>
+    [% L.select_tag("defaults.shipped_qty_item_identity_fields[]", SELF.available_shipped_qty_item_identity_fields, id="defaults_shipped_qty_item_identity_fields", multiple=1, default=SELF.defaults.shipped_qty_item_identity_fields) %]
+    [% L.multiselect2side("defaults_shipped_qty_item_identity_fields", labelsx=LxERP.t8("Available identity fields"), labeldx=LxERP.t8("Selected identity fields")) %]</td>
+  <td>[% LxERP.t8('Only applies if the previous is set to true. When filling up unlinked positions, consider them matches if ALL of these fields match. For example, in a business with variants that are defined by a special description, description needs to be part of the identity. If delivering several similar order positions by delivery date is common, reqdate should be included in the identity. Serialnumber is useful when the serialnumber in the order and delivery order has to match.') %]</td>
+ </tr>
+
+
+</table>
 </div>