diff --git a/app/assets/javascripts/repositories/renderers/view_renderers.js b/app/assets/javascripts/repositories/renderers/view_renderers.js
index d7069ba34..6d606150f 100644
--- a/app/assets/javascripts/repositories/renderers/view_renderers.js
+++ b/app/assets/javascripts/repositories/renderers/view_renderers.js
@@ -200,16 +200,23 @@ $.fn.dataTable.render.AssignedTasksValue = function(data, row) {
};
$.fn.dataTable.render.RepositoryStockValue = function(data) {
+ var stockAlertTag;
if (data) {
if (data.value) {
+ if (data.value.stock_amount <= 0) {
+ stockAlertTag = 'stock-alert';
+ } else {
+ stockAlertTag = parseFloat(data.value.stock_amount) < parseFloat(data.value.low_stock_threshold)
+ ? 'stock-low-stock-alert' : '';
+ }
+
if (data.stock_managable) {
- return `
+ return `
${data.value.stock_formatted}
`;
}
return `
+ ${data.stock_managable !== undefined ? stockAlertTag : ''}">
${data.value.stock_formatted}
`;
}
diff --git a/app/assets/stylesheets/my_modules/repositories.scss b/app/assets/stylesheets/my_modules/repositories.scss
index ddbca76d2..1a44231ac 100644
--- a/app/assets/stylesheets/my_modules/repositories.scss
+++ b/app/assets/stylesheets/my_modules/repositories.scss
@@ -192,6 +192,23 @@
grid-area: table;
padding: 0;
}
+
+ .stock-low-stock-alert {
+ &::before {
+ @include font-awesome;
+ color: $brand-warning;
+ content: $font-fas-exclamation-triangle;
+ }
+ }
+
+ .stock-alert {
+ color: $brand-danger;
+
+ &::before {
+ @include font-awesome;
+ content: $font-fas-exclamation-triangle;
+ }
+ }
}
}
diff --git a/app/assets/stylesheets/repository/repository_table.scss b/app/assets/stylesheets/repository/repository_table.scss
index beb305074..0d5114978 100644
--- a/app/assets/stylesheets/repository/repository_table.scss
+++ b/app/assets/stylesheets/repository/repository_table.scss
@@ -189,7 +189,7 @@
// Stock
.stock-value-view-render {
- cursor: pointer;
+
&:hover {
text-decoration: none;
@@ -203,6 +203,15 @@
content: $font-fas-exclamation-triangle;
}
}
+
+ &.stock-low-stock-alert {
+ &::before {
+ @include font-awesome;
+ color: $brand-warning;
+ content: $font-fas-exclamation-triangle;
+ }
+ }
+
}
.not-assigned-stock {
diff --git a/app/serializers/repository_datatable/repository_stock_value_serializer.rb b/app/serializers/repository_datatable/repository_stock_value_serializer.rb
index 81baf372d..06952bd2f 100644
--- a/app/serializers/repository_datatable/repository_stock_value_serializer.rb
+++ b/app/serializers/repository_datatable/repository_stock_value_serializer.rb
@@ -7,7 +7,8 @@ module RepositoryDatatable
def value
{
stock_formatted: object.formatted,
- stock_amount: object.data
+ stock_amount: object.data,
+ low_stock_threshold: object.low_stock_threshold
}
end
end