</html> entfernen
[kivitendo-erp.git] / templates / webpages / csv_import / form.html
index bc23d54..6d21fb2 100644 (file)
@@ -1,4 +1,7 @@
-[% USE HTML %][% USE LxERP %][% USE L %]
+[%- USE HTML %]
+[%- USE LxERP %]
+[%- USE L %]
+[%- USE T8 %]
 <body>
 
  <div class="listtop">[% FORM.title %]</div>
@@ -6,6 +9,7 @@
  [%- INCLUDE 'common/flash.html' %]
 
  <form method="post" action="controller.pl" enctype="multipart/form-data">
+  [% L.hidden_tag('form_sent', '1') %]
   [% L.hidden_tag('action', 'CsvImport/dispatch') %]
   [% L.hidden_tag('profile.type', SELF.profile.type) %]
 
@@ -23,7 +27,7 @@
     <tr>
      <th align="right">[%- LxERP.t8('Existing profiles') %]:</th>
      <td>
-      [% L.select_tag('profile.id', L.options_for_select(SELF.all_profiles, title => 'name', default => SELF.profile.id), style => 'width: 300px') %]
+      [% L.select_tag('profile.id', SELF.all_profiles, title_key = 'name', default = SELF.profile.id, style = 'width: 300px') %]
      </td>
      <td>
       [% L.submit_tag('action_new', LxERP.t8('Load profile')) %]
 
   <hr>
 
+  <h2>[%- LxERP.t8('Help on column names') %]</h2>
+
+  <div class="help_toggle">
+   <a href="#" onClick="javascript:$('.help_toggle').toggle()">[% LxERP.t8("Show help text") %]</a>
+  </div>
+
+  <div class="help_toggle" style="display:none">
+   <p><a href="#" onClick="javascript:$('.help_toggle').toggle()">[% LxERP.t8("Hide help text") %]</a></p>
+
+   <table>
+    <tr class="listheading">
+     <th>[%- LxERP.t8('Column name') %]</th>
+     <th>[%- LxERP.t8('Meaning') %]</th>
+    </tr>
+
+    [%- FOREACH row = SELF.displayable_columns %]
+     <tr class="listrow[% loop.count % 2 %]">
+      <td>[%- HTML.escape(row.name) %]</td>
+      <td>[%- HTML.escape(row.description) %]</td>
+     </tr>
+    [%- END %]
+   </table>
+
+[%- IF SELF.type == 'contacts' %]
+   <p>
+    [%- LxERP.t8('At least one of the columns #1, customer, customernumber, vendor, vendornumber (depending on the target table) is required for matching the entry to an existing customer or vendor.', 'cp_cv_id') %]
+   </p>
+
+[%- ELSIF SELF.type == 'addresses' %]
+   <p>
+    [%- LxERP.t8('At least one of the columns #1, customer, customernumber, vendor, vendornumber (depending on the target table) is required for matching the entry to an existing customer or vendor.', 'trans_id') %]
+   </p>
+
+[%- ELSIF SELF.type == 'parts' %]
+   <p>
+    [%- LxERP.t8("If the article type is set to 'mixed' then a column called 'type' must be present.") %]
+    [% LxERP.t8("Type can be either 'part' or 'service'.") %]
+   </p>
+[%- END %]
+
+   <p>
+    [%- L.submit_tag('action_download_sample', LxERP.t8('Download sample file')) %]
+   </p>
+
+  </div>
+
+  <hr>
+
   <h2>[%- LxERP.t8('Settings') %]</h2>
 
   <table>
    <tr>
     <th align="right">[%- LxERP.t8('Number Format') %]:</th>
     <td colspan="10">
-     [% SET options = L.options_for_select([ '1.000,00', '1000,00', '1,000.00', '1000.00' ], default => SELF.profile.get('numberformat')) %]
-     [% L.select_tag('settings.numberformat', options, style => 'width: 300px') %]
+     [% L.select_tag('settings.numberformat', ['1.000,00', '1000,00', '1,000.00', '1000.00'], default = SELF.profile.get('numberformat'), style = 'width: 300px') %]
     </td>
    </tr>
 
    <tr>
     <th align="right">[%- LxERP.t8('Charset') %]:</th>
-    <td colspan="10">[% L.select_tag('settings.charset', L.options_for_select(SELF.all_charsets, default => SELF.profile.get('charset')), style => 'width: 300px') %]</td>
+    <td colspan="10">[% L.select_tag('settings.charset', SELF.all_charsets, default = SELF.profile.get('charset'), style = 'width: 300px') %]</td>
    </tr>
 
    <tr>
     </td>
    </tr>
 
-   <tr>
-    <th align="right">[%- LxERP.t8('Check for duplicates') %]:</th>
-    <td colspan="10">
-     [% opts = [ [ 'no_check',  LxERP.t8('Do not check for duplicates') ],
-                 [ 'check_csv', LxERP.t8('Discard duplicate entries in CSV file') ],
-                 [ 'check_db',  LxERP.t8('Discard entries with duplicates in database or CSV file') ] ] %]
-     [% L.select_tag('settings.duplicates', L.options_for_select(opts, default => SELF.profile.get('duplicates')), style => 'width: 300px') %]
-    </td>
-   </tr>
+   [% duplicate_fields = SELF.worker.get_duplicate_check_fields() %]
+   [% IF ( duplicate_fields.size ) %]
+     <tr>
+       <th align="right">[%- LxERP.t8('Check for duplicates') %]:</th>
+
+       <td colspan=10>
+         [% FOREACH key = duplicate_fields.keys %]
+           <input type="checkbox" name="settings.duplicates_[% key | html %]" id="settings.duplicates_[% key | html %]" value="1"[% IF ( SELF.profile.get('duplicates_'_ key) || (duplicate_fields.$key.default && !FORM.form_sent ) ) %] checked="checked"[% END %]\>
+           <label for="settings.duplicates_[% key | html %]">[% duplicate_fields.$key.label | html %]</label>
+         [% END %]
+       </td>
+     </tr>
+
+     <tr>
+       <th align="right"></th>
+
+       <td colspan=10>
+         [% opts = [ [ 'no_check',  LxERP.t8('Do not check for duplicates') ],
+                     [ 'check_csv', LxERP.t8('Discard duplicate entries in CSV file') ],
+                     [ 'check_db',  LxERP.t8('Discard entries with duplicates in database or CSV file') ] ] %]
+         [% L.select_tag('settings.duplicates', opts, default = SELF.profile.get('duplicates'), style = 'width: 300px') %]
+       </td>
+     </tr>
+   [% END %]
 
 [%- IF SELF.type == 'parts' %]
  [%- INCLUDE 'csv_import/_form_parts.html' %]
  [%- INCLUDE 'csv_import/_form_customers_vendors.html' %]
 [%- END %]
 
+   <tr>
+    <th align="right">[%- LxERP.t8('Preview Mode') %]:</th>
+    <td colspan="10">
+      [% L.radio_button_tag('settings.full_preview', value=2, checked=SELF.profile.get('full_preview')==2, label=LxERP.t8('Full Preview')) %]
+      [% L.radio_button_tag('settings.full_preview', value=1, checked=SELF.profile.get('full_preview')==1, label=LxERP.t8('Only Warnings and Errors')) %]
+      [% L.radio_button_tag('settings.full_preview', value=0, checked=!SELF.profile.get('full_preview'),   label=LxERP.t8('First 20 Lines')) %]
+    </td>
+   </tr>
+
    <tr>
     <th align="right">[%- LxERP.t8('Import file') %]:</th>
     <td colspan="10">[% L.input_tag('file', '', type => 'file', accept => '*') %]</td>
   </table>
 
   [% L.submit_tag('action_test', LxERP.t8('Test and preview')) %]
-  [% IF SELF.import_status && SELF.data.size %]
+  [% IF (SELF.import_status == 'tested') && SELF.num_importable %]
    [% L.submit_tag('action_import', LxERP.t8('Import')) %]
   [%- END %]
 
  </form>
 
  [%- IF SELF.import_status %]
-  [%- PROCESS 'csv_import/_data.html' %]
+  [%- IF SELF.errors %]
+   [%- PROCESS 'csv_import/_errors.html' %]
+  [%- END %]
+
+  [%- PROCESS 'csv_import/_result.html' %]
+  [%- PROCESS 'csv_import/_preview.html' %]
  [%- END %]
 
  <script type="text/javascript">
     -->
  </script>
 </body>
-</html>