From 67c100e87797dd3eea9612a02ffbb0d9c7db3301 Mon Sep 17 00:00:00 2001
From: anonymous <anonymous>
Date: Fri, 7 Dec 2018 15:42:15 +0100
Subject: [PATCH] ODPSH-152: error string

---
 ckanext/odsh/fanstatic/odsh_guessformat.js    |   1 +
 .../odsh/i18n/de/LC_MESSAGES/ckanext-odsh.mo  | Bin 4887 -> 4966 bytes
 .../odsh/i18n/de/LC_MESSAGES/ckanext-odsh.po  |   3 ++
 ckanext/odsh/plugin.py                        |   3 +-
 ckanext/odsh/templates/macros/form.html       |  38 ++++++++++--------
 .../package/snippets/resource_form.html       |   8 +---
 6 files changed, 29 insertions(+), 24 deletions(-)

diff --git a/ckanext/odsh/fanstatic/odsh_guessformat.js b/ckanext/odsh/fanstatic/odsh_guessformat.js
index 3efcbff8..8c922753 100644
--- a/ckanext/odsh/fanstatic/odsh_guessformat.js
+++ b/ckanext/odsh/fanstatic/odsh_guessformat.js
@@ -7,6 +7,7 @@ ckan.module('odsh_guessformat', function ($)
     let c = $('#field-format')
     let onChange = function (filename)
     {
+            console.log(known_formats)
         let ext = filename.slice((filename.lastIndexOf(".") - 1 >>> 0) + 2).toLowerCase();
         if (ext !== undefined && known_formats.indexOf(ext) > -1)
         {
diff --git a/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.mo b/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.mo
index 173ee064cb100313b273394e6ebb9789255edd06..7be3b9dd8e3005b739e5a055e89edb4793ba60ca 100644
GIT binary patch
delta 1358
zcmbQP_Drq*o)F7a1_lO(00ssI83qQ1IZPlP0?V*6FbFX)FvzkpFmN+4Fc`2hFsL#x
zFxap{)F-hrFt9Q(Fx0a$Ft9T)FtkF|^|CTB@G~$l%w%O?P-b9YSjo!3z{SA8aF&&U
zL6Cug;RY)Mg8~CXJ;N(j1_nt61_o|6h=eK|M4>qw#6l-Fhy{LZ5Ql`YF)*+(FfgRE
zF)(m4Ffin?F)&ClFfdd=#V4{s95MrH&H||Z)lm73Yzz#13=9lA*gzhsXJ9za#=xM$
zz`*d9je$Xgfq_AYoq<7?fq_Atoq>Uufq}u59pb=Xc8JDYc8Izfc8CKfvNJG9GcYjB
zWoKZ}W?*30$qw=PQ+5UhDFz0Huj~vAEDQ_`0vrqsJPZsBq8t!&lsFg|bn6)y7z{ZW
z7(^Ku7~(k~J}u>7VBlb2V5sJR__PJ8p&Kebi-UndoPmL1F$ct=-5d}LPD9mQfQsLT
zs(;S`3DF-=d1g+CdLd2*hI&w(iE~0Ml!ww9oRA<i<b*iDk`v-n2dG9LP6h^H1_p*e
zPKd)(IUx?J<^%;P1H)uaaNIKN<YZuwV_;yo1?B(bgoLCN7bNOTxESggK<Ukni-AFp
zfq}u1i-Ez5fq|ibi-Ey{fq`K+7X!ltMh1p2T#%?}<$=WYWF7_vLk0$hH9Qat@9{w7
zS$H8qECi+Hc_9we;e|x86E6dU7%1&P#p`(M85q<U7#ODTGBC)4EaZh4bQ`MRB`+kd
z{_{dYgpZGbL4bjQL5vR)GU|Mgpw;7pBu+~x-v=rm4yEJxAW@qN<!AFj(oj)7A0*MV
z^Fe}YGan>dUE+f{=sh1K==u2}iBg&$;v-9bNRa#ULxM7$pMgP(fq|irpMgOUl#Tfz
zLA{Tkfk6|L-S{CMV-kQwoqzzuoO%@j1_mPr1_mnuh=sWV5SR7}Kn$KN0P*QuD1V6n
zB=M{hfP~y;0f<j-2|z;Vy#OQ|e;0s+6sI7>94SGF15^Yd@<xIT49uYX?;;3Ed>&AR
zflxXcN~a1!QhB~0#K3w%h=V3T`O^g%7&I6d7*+@}Fz7NcFkBRbq>2B6kPuT9f_Ttb
z2$BZMgdjejEd;Vxg@IwC5ZEOQyM!1REEyOW_6adCI5RLX{1Ac!osIBjF4nayY-#yL
exrrs4=WwQQOkT^!&ZXc67Enmc+x%Hjg%JSFj&w!<

delta 1320
zcmaE+HeId$o)F7a1_lNOe+C8y83qQ1DNG<90`sskFbFX)Fz~W6FmN+4FetDxFsL#x
zFzB#C)CaLLFt9Q(Fyyl`Ft9T)FqA^o)v_`$@G~$lbh0uqC^IlH%w%O?;9_84*vrbm
zAjrVLaDtVAL4kpxp5YcN1A`<31H*5qgeV(Cp*kDHLL)Ya1$Jx@hq$mYFt9N&Fod%)
zFmN(3FvPJjFi0>kFl0c*8`&TZ>42Iu0jhsCRDK~F0|Ore1H%e7kVonn7`C%9FsLvv
zFx+KhU=U$oU|?crV31{CU=U|#VBlq7U@&EeIMA6LqA`{oqArIW;=o3B1_o&c28LdC
z1_o^g28NaF5T9RVXJC+GU|@L4&cMI|3Q!IP1|9|m238J;IYJx^47&9U3=E1K3=E>6
zDBytjG?jyafrEj8A)5o@(-NqLYN&V@2LppR0|Uck4v0moIUpA7hN?RN6+aJEf1d*q
zqA#HGpP}lRI2jn~L2<^;39*nLN=tA;f>4nY;s8xfh))eTAr{$iGB5};FfcfBLL45-
z32{(1Cn!i67@9d5800`9!3mCIh7+8S5PZoAi85v`1_n?v<K<$gXV7C{U=ZM9VDMsK
zV6f+6V6b3dVCdpvV3@$jz;Kug5(ObVkT_1_VPG(1U|^``fmpPb2O@u&2NJXoq4YZ*
zh{JyKK%!QVmw`cyfq}t{7b5P<%fO(<z`&5qThG8C53-OKV$dq6f*rh&I6B7*35mPB
z3=9IGxa5U|$Twa{kpAU`BuWlG2w$2HBCiIeb@?DsY69h3@j=p#BOfHKgw^vwf~tuR
zlARXvK^(M?4-(|}_#lb#6(7Xq9Q=@=mg9#6r5Qg1gBAk=g9ASUgCZ!+@I!*Sm!E+_
zlYxO@IX}c>7x^JkcAp<&&S!oG1|tRrhI&o`h=n!+5SPXXKnzY2fcPW_$}bjx#C@#*
zB<Pw1AU;_s012Ue0+4)tOaKy6H=z1n3P2q287j{x$iTqNz`!6Z2u^eL4B~<i3l*TW
z7L+y-grsgeL5P8Vf)EGAL-}cf3=A3!3=HLh3=Fyq3=9hdA!*{AAjD^11R-&+E(Gzh
yj}X{Gh9n_~1G0q}7%V{<K3|A|!5NfVg&;xpR%o*n>spr0FE~9pHv0>SGXele_-Y0K

diff --git a/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.po b/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.po
index f4dd560b..8dda226a 100644
--- a/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.po
+++ b/ckanext/odsh/i18n/de/LC_MESSAGES/ckanext-odsh.po
@@ -210,6 +210,9 @@ msgstr "Bitte geben sie einen Namen für den Datensatz ein"
 msgid "odsh_resource_description_error_label"
 msgstr "Bitte beschreiben Sie Ihren Datensatz"
 
+msgid "odsh_resource_format_error_label"
+msgstr "Bitte geben Sie ein Format an"
+
 msgid "Followers"
 msgstr "Abonennten"
 
diff --git a/ckanext/odsh/plugin.py b/ckanext/odsh/plugin.py
index 93aff5c8..da8a03fb 100644
--- a/ckanext/odsh/plugin.py
+++ b/ckanext/odsh/plugin.py
@@ -265,7 +265,8 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
                 schema['tag_string'][i] = odsh_tag_string_convert
 
         schema['resources'].update({
-                'url' : [ toolkit.get_converter('not_empty') ]
+                'url' : [ toolkit.get_converter('not_empty') ],
+                'format' : [ toolkit.get_converter('not_empty') ]
                 })
 
     def create_package_schema(self):
diff --git a/ckanext/odsh/templates/macros/form.html b/ckanext/odsh/templates/macros/form.html
index 5e8607d8..d519c3fe 100644
--- a/ckanext/odsh/templates/macros/form.html
+++ b/ckanext/odsh/templates/macros/form.html
@@ -26,13 +26,17 @@ is_required=false) %}
 
 {% call input_block(id or name, label, error, classes, extra_html=extra_html, is_required=is_required) %}
 <div class="row-fluid">
-  <div class="span6">
-    <input id="{{ id or name }}" type="{{ _type }}" name="{{ name }}" value="{{ value | empty_and_escape }}" placeholder="{{ placeholder }}"
-	   {{ onFocus }} {{ attributes(attrs) }} />
-  </div>
-  <div class="span6 inline-error">
-    {{error}}
-  </div>
+    <div class="span6">
+        <input id="{{ id or name }}" type="{{ _type }}" name="{{ name }}" value="{{ value | empty_and_escape }}"
+            placeholder="{{ placeholder }}" {{ onFocus }} {{ attributes(attrs) }} />
+    </div>
+    <div class="span6 inline-error">
+        {% if error is string %}
+        {{error}}
+        {% else %}
+        {{error|first}}
+        {% endif %}
+    </div>
 </div>
 {% endcall %}
 {% endmacro %}
@@ -45,7 +49,7 @@ is_required=false) %}
 
 {% call input_block(id or name, label, error, classes, extra_html=extra_html, is_required=is_required) %}
 <input id="{{ id or name }}" type="{{ _type }}" name="{{ name }}" value="{{ value | empty_and_escape }}" placeholder="{{ placeholder }}"
-       {{ onFocus }} {{ attributes(attrs) }} />
+    {{ onFocus }} {{ attributes(attrs) }} />
 {% endcall %}
 {% endmacro %}
 
@@ -157,14 +161,14 @@ options - A list/tuple of fields to be used as <options>.
         {% call input_block(id or name, label or name, error, classes, control_classes=["editor"],
         extra_html=extra_html, is_required=is_required) %}
         <div class="row-fluid">
-          <div class="span6">
-            <textarea id="{{ id or name }}" name="{{ name }}" cols="20" rows="5" placeholder="{{ placeholder }}"
-		      {{ attributes(attrs) }}>{{ value | empty_and_escape }}</textarea>
-	  </div>
-	  <div class="span6 inline-error">
-	    {{error}}
-	  </div>
-	</div>
+            <div class="span6">
+                <textarea id="{{ id or name }}" name="{{ name }}" cols="20" rows="5" placeholder="{{ placeholder }}"
+                    {{ attributes(attrs) }}>{{ value | empty_and_escape }}</textarea>
+            </div>
+            <div class="span6 inline-error">
+                {{error}}
+            </div>
+        </div>
         {% endcall %}
         {% endmacro %}
 
@@ -493,4 +497,4 @@ options - A list/tuple of fields to be used as <options>.
 
             {% if is_upload_enabled %}</div>{% endif %}
 
-        {% endmacro %}
+        {% endmacro %}
\ No newline at end of file
diff --git a/ckanext/odsh/templates/package/snippets/resource_form.html b/ckanext/odsh/templates/package/snippets/resource_form.html
index 417553c6..151321c0 100644
--- a/ckanext/odsh/templates/package/snippets/resource_form.html
+++ b/ckanext/odsh/templates/package/snippets/resource_form.html
@@ -1,4 +1,3 @@
-
 {% resource 'odsh/odsh_image-upload.js' %}
 {% import 'macros/form.html' as form %}
 
@@ -72,12 +71,9 @@
       {% resource 'odsh/odsh_guessformat.js' %}
 
       {% set format_attrs = {'data-module': 'odsh_guessformat', 'data-module-formats':h.odsh_upload_known_formats()} %}
+      {% set error_string = _('odsh_resource_format_error_label') if errors.format %}
 
-      {% call form.input('format', id='field-format', label=_('Format'), placeholder=_('eg. CSV, XML or JSON'), value=data.format, error=errors.format, classes=['control-medium'],attrs=format_attrs) %}
-        <span class="info-block info-block-small">
-          <i class="fa fa-info-circle"></i>
-          {{ _('This will be guessed automatically. Leave blank if you wish') }}
-        </span>
+      {% call form.input('format', id='field-format', label=_('Format'), placeholder=_('eg. CSV, XML or JSON'), value=data.format, error=error_string, classes=['control-medium'],attrs=format_attrs) %}
       {% endcall %}
     {% endblock %}
     {% endblock %}
-- 
GitLab