diff --git a/app/controllers/concerns/active_storage/check_blob_permissions.rb b/app/controllers/concerns/active_storage/check_blob_permissions.rb
index 2c99d9b7e..d23952ff6 100644
--- a/app/controllers/concerns/active_storage/check_blob_permissions.rb
+++ b/app/controllers/concerns/active_storage/check_blob_permissions.rb
@@ -28,6 +28,8 @@ module ActiveStorage
check_tinymce_asset_read_permissions(attachment.record)
when 'Experiment'
can_read_experiment?(attachment.record)
+ when 'StorageLocation'
+ can_read_storage_location?(attachment.record)
when 'Report'
can_read_project?(attachment.record.project)
when 'User'
diff --git a/app/controllers/storage_locations_controller.rb b/app/controllers/storage_locations_controller.rb
index 2c14340bb..aa3622e38 100644
--- a/app/controllers/storage_locations_controller.rb
+++ b/app/controllers/storage_locations_controller.rb
@@ -10,7 +10,10 @@ class StorageLocationsController < ApplicationController
def index
respond_to do |format|
- format.html
+ format.html do
+ @parent_location = StorageLocation.viewable_by_user(current_user)
+ .find_by(id: storage_location_params[:parent_id]) if storage_location_params[:parent_id]
+ end
format.json do
storage_locations = Lists::StorageLocationsService.new(current_user, current_team, params).call
render json: storage_locations, each_serializer: Lists::StorageLocationSerializer,
diff --git a/app/javascript/vue/storage_locations/modals/assign/position_selector.vue b/app/javascript/vue/storage_locations/modals/assign/position_selector.vue
index 0bdbd9ef0..1385c8978 100644
--- a/app/javascript/vue/storage_locations/modals/assign/position_selector.vue
+++ b/app/javascript/vue/storage_locations/modals/assign/position_selector.vue
@@ -62,7 +62,7 @@ export default {
return available_positions_storage_location_path(this.selectedContainerId);
},
availableRows() {
- return Object.keys(this.availablePositions).map((row) => [row, row]);
+ return Object.keys(this.availablePositions).map((row) => [row, this.convertNumberToLetter(row)]);
},
availableColumns() {
return (this.availablePositions[this.selectedRow] || []).map((col) => [col, col]);
@@ -74,6 +74,12 @@ export default {
selectedRow: null,
selectedColumn: null
};
+ },
+ methods: {
+ convertNumberToLetter(number) {
+ const charCode = 96 + parseInt(number, 10);
+ return String.fromCharCode(charCode).toUpperCase();
+ }
}
};
diff --git a/app/javascript/vue/storage_locations/renderers/storage_name_renderer.vue b/app/javascript/vue/storage_locations/renderers/storage_name_renderer.vue
new file mode 100644
index 000000000..4a448a265
--- /dev/null
+++ b/app/javascript/vue/storage_locations/renderers/storage_name_renderer.vue
@@ -0,0 +1,45 @@
+
+
+
+