diff --git a/app/assets/stylesheets/bootstrap_and_overrides.css.less b/app/assets/stylesheets/bootstrap_and_overrides.css.less
index 002ae8cc..e3db2709 100644
--- a/app/assets/stylesheets/bootstrap_and_overrides.css.less
+++ b/app/assets/stylesheets/bootstrap_and_overrides.css.less
@@ -233,9 +233,9 @@ tr.unavailable {
margin-bottom: 0;
}
-// entering units
+// allow content to appear without sudden table change (receive)
.units_delta {
- width: 2em;
+ min-width: 3.5em;
}
// ********* Tweaks & fixes
@@ -297,9 +297,16 @@ input.package {
i.package {
.package-image(left);
min-width: 18px;
+ min-height: 18px;
+ vertical-align: baseline;
font-style: normal;
padding-left: 20px;
- @media (max-width: 768px) { padding-left: 0; }
+ @media (max-width: 979px) { padding-left: 0; }
+}
+i.package.icon-only {
+ padding-left: 6px;
+ background-position: right;
+ display: inline-block;
}
.package { color: tint(@textColor, @nonessentialDim); }
.used .package { color: tint(@articleUsedColor, @nonessentialDim); }
diff --git a/app/helpers/orders_helper.rb b/app/helpers/orders_helper.rb
index e81576a9..4203723b 100644
--- a/app/helpers/orders_helper.rb
+++ b/app/helpers/orders_helper.rb
@@ -27,14 +27,27 @@ module OrdersHelper
end
# can be article or article_price
- def pkg_helper(article, icon=true)
+ # icon: `false` to not show the icon
+ # soft_uq: `true` to hide unit quantity specifier on small screens
+ # sensible in tables with multiple columns calling `pkg_helper`
+ def pkg_helper(article, options={})
return nil if article.unit_quantity == 1
- if icon
- " × #{article.unit_quantity}".html_safe
+ uq_text = "× #{article.unit_quantity}"
+ uq_text = "#{uq_text}" if options[:soft_uq]
+ if options[:icon].nil? or options[:icon]
+ pkg_helper_icon(uq_text).html_safe
else
- " × #{article.unit_quantity}".html_safe
+ pkg_helper_icon(uq_text, tag: 'span').html_safe
end
end
+ def pkg_helper_icon(c=nil, options={})
+ options = {tag: 'i', class: ''}.merge(options)
+ if c.nil?
+ c = " "
+ options[:class] += " icon-only"
+ end
+ "<#{options[:tag]} class='package #{options[:class]}'>#{c}#{options[:tag]}>"
+ end
def article_price_change_hint(order_article, gross=false)
return nil if order_article.article.price == order_article.price.price
diff --git a/app/views/orders/_edit_amount.html.haml b/app/views/orders/_edit_amount.html.haml
index 9b38ddda..fb761d27 100644
--- a/app/views/orders/_edit_amount.html.haml
+++ b/app/views/orders/_edit_amount.html.haml
@@ -17,10 +17,10 @@
-#%td # TODO implement invoice screen
- unless order_article.units_billed.nil?
= order_article.units_billed
- = pkg_helper order_article.article
+ = pkg_helper order_article.article, soft_uq: true
%td.units_received_cell
= receive_input_field(form)
- = pkg_helper order_article.article_price, false
+ = pkg_helper order_article.article_price, icon: false, soft_uq: true
/ TODO add almost invisible text_field for entering single units
%td.units_delta
%td
diff --git a/app/views/orders/_edit_amounts.html.haml b/app/views/orders/_edit_amounts.html.haml
index 795e7e5e..2afbd58c 100644
--- a/app/views/orders/_edit_amounts.html.haml
+++ b/app/views/orders/_edit_amounts.html.haml
@@ -16,10 +16,13 @@
} else if (units == expected) {
// equal value
html = '';
- } else if (units < expected) {
- html = '- '+(expected-units)+'';
- } else /*if (units> expected)*/ {
- html = '+ '+(units-expected)+'';
+ } else {
+ if (units < expected) {
+ html = '- '+(expected-units)+'';
+ } else /*if (units> expected)*/ {
+ html = '+ '+(units-expected)+'';
+ }
+ html += '#{j pkg_helper_icon}';
}
$(input).closest('tr').find('.units_delta').html(html);