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