scinote-web/app/controllers/repository_rows_controller.rb

415 lines
15 KiB
Ruby
Raw Normal View History

2017-06-06 23:35:29 +08:00
class RepositoryRowsController < ApplicationController
include InputSanitizeHelper
include ActionView::Helpers::TextHelper
include ApplicationHelper
2020-05-08 17:56:29 +08:00
include MyModulesHelper
2017-06-06 23:35:29 +08:00
MAX_PRINTABLE_ITEM_NAME_LENGTH = 64
before_action :load_repository, except: %i(show print_modal print)
before_action :load_repository_or_snapshot, only: %i(print_modal print)
Version 1.25.0 (#4087) * Add initial implementation of inventory stock management [SCI-6402] * Add stock column type (#3786) * Add stock column type * Create new stock column [SCI-6410] * Small fixed for stock column [SCI-6410] * Add stock column validations [SCI-6410] Co-authored-by: Anton <anton@scinote.net> * Add stock table renders [SCI-6412] (#3787) Co-authored-by: Anton <anton@scinote.net> * Implemented stock management modal [SCI-6417] (#3788) * Implement inventory stock management modal [SCI-6417] * Add generalized validation mechanic, some bugfixes [SCI-6417] * Fix permission check and method name in RepositoryStockValue [SCI-6417] * Add stock and consumption to assigned items section [SCI-6434] (#3793) * Added UPDATE_STOCK_CONSUMPTION to MyModule permissons [SCI-6418] (#3781) * Fix invalid return in reports jobs [SCI-6409] (#3777) * Added UPDATE_STOCK_CONSUMPTION to MyModule permissons [SCI-6418] * Add current/new amount section to stock [SCI-6416] (#3791) Co-authored-by: Anton <anton@scinote.net> * Task stock consumption modal[SCI-6444][SCI-6445] (#3798) Add main logic for consumption on task [SCI-6444] Co-authored-by: Anton <anton@scinote.net> * Add stock management columns to snapshots [SCI-6448] * Handle stock management in full table views [SCI-6440] * Implement stock management activities [SCI-6452] (#3810) * Implement stock management activities [SCI-6452] * PR code fixes [SCI-6452] * Implement import for repository stock values [SCI-6461] (#3818) * Add permissions checking to assigned items view on tasks [SCI-6435] (#3801) * Add front-end validation for comments field [SCI-6464] (#3829) Co-authored-by: Anton <anton@scinote.net> * Add stock consumption to pdf and docx [SCI-6460] (#3816) Co-authored-by: Anton <anton@scinote.net> * Add support of repository snapshots to assigned items section [SCI-6439] (#3828) * Change subject of Repository (#3838) * Fixed full view assigned items modal stock consumption (#3846) * Implement repository snapshots displaying on assigned items full view modal [SCI-6442] (#3862) * Implement low stock threshold column [SCI-6555] (#3907) * Stock column fixes [SCI-6455] (#3878) * Fix issues with stock column management [SCI-6455] * Refactor stock column in datatables [SCI-6455] * Fix tests [SCI-6486] (#3913) * Fix tests [SCI-6486] * Fix rspec tests [SCI-6486] Co-authored-by: Anton <anton@scinote.net> * Implement basic logic for Date/DateTime/Stock reminders [SCI-6554] (#3911) * Implement basic logic for Date/DateTime/Stock reminders [SCI-6554] * Implement bell icon [SCI-6500] * Refactor reminder cells scope [SCI-6554] * Add red dot for date/datetime reminder [SCI-6499] (#3924) Co-authored-by: Anton <anton@scinote.net> * Add reminders to stock modal [SCI-6557] (#3917) Co-authored-by: Anton <anton@scinote.net> * Add flyout for repository reminders [SCI-6501] (#3926) Co-authored-by: Anton <anton@scinote.net> * Fix moving experiment [SCI-6602] (#3927) * Update Rails to 6.1.4.7 [SCI-6615] (#3928) * Task inventory activity for assigned item consumption [SCI-6453] (#3830) * Add task inventory activity [SCI-6453] * Apply user's time zone in advanced filters for time data type [SCI-6585] (#3930) * Bump version to 1.24.2 * Implement hidden repository cell reminders [SCI-6504] (#3933) * Low stock flyout reminders [SCI-6502] (#3932) * Display low stock flyout reminder [SCI-6502] * Display low stock flyout reminder [SCI-6502] * Adapt showing stock reminders for every bell icon click [SCI-6502] * Correct hound error [SCI-6502] * Fix event registration for fetching reminder data [SCI-6502] * Fix event registration for fetching reminder data [SCI-6502] * Fix hound [SCI-6502] * Remove not needed line [SCI-6502] * Add reminder template [SCI-6502] * Add clearing messages [SCI-6502] * Displaying low stock warning [SCI-6497] (#3912) * Low stock warning [SCI-6497 * Fix some bugs [SCI-6497] * Fix to long line [SCI-6497] * Clean not needed information in renderes [SCI-6497] * Icon bell reminder for an assigned item on the task [SCI-6506] (#3929) * Add bell icon on assigned task [SCI-6506] * Add flyout and improve quering [SCI-6506] * Refactor repository toolbar [SCI-6545] (#3943) Co-authored-by: Anton <anton@scinote.net> * Add datetime reminders to columns modal [SCI-6556] (#3934) Co-authored-by: Anton <anton@scinote.net> * Hide reminders for archived repositories [SCI-6609] (#3941) * Hide reminders for archived repositories [SCI-6609] * Always pass repository in datatable helper [SCI-6609] * Handle locked stock consumption state [SCI-6608] (#3942) * Change env variable name for s3 bucket region [SCI-6603] (#3944) * Add last_transition_error column to tasks [SCI-6610] (#3949) * Add microtransactions to stock consumptions [SCI-6626] (#3948) Co-authored-by: Anton <anton@scinote.net> * Date remidner flyout [SCI-6503] (#3937) * Implement date reminder flyout [SCI-6503] * Show only days left for date reminder [SCI-6503] * Pluralize day in reminders [SCI-6503] * Create partials for different reminders [SCI-6503] * Unify css for reminder [SCI-6503] * Add micro interactions for stock modal [SCI-6625] (#3947) Co-authored-by: Anton <anton@scinote.net> * Hide options to add New Tags for users without permissions on Task level [SCI-6573] (#3945) * Bump lodash-es from 4.17.15 to 4.17.21 (#3939) Bumps [lodash-es](https://github.com/lodash/lodash) from 4.17.15 to 4.17.21. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.21) --- updated-dependencies: - dependency-name: lodash-es dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Implement clearing hidden repository reminders [SCI-6507] (#3936) * Add stock filters [SCI-6547] (#3938) Co-authored-by: Anton <anton@scinote.net> * Fix assign view for task repository [SCI-6648] (#3954) Co-authored-by: Anton <anton@scinote.net> * Add micro-interactions to reminders flyout [SCI-6627] (#3951) Co-authored-by: Anton <anton@scinote.net> * Improve error reporting in task status transition [SCI-6611] (#3952) * Add ordering to global search results [SCI-6639] (#3960) * Fix multiple stock bugs [SCI-6651] (#3959) Co-authored-by: Anton <anton@scinote.net> * Fix large previews for csv files [SCI-6619] (#3961) * Add alias to cell sort query, to prevent join conflicts [SCI-6649] (#3953) * Add alias to cell sort query, to prevent join conflicts [SCI-6649] * Added value_type to join condition to make use of DB index [SCI-6649] * Update front end validation for columns managment [SCI-6657] (#3962) Co-authored-by: Anton <anton@scinote.net> * Print protocol smart annotation and table improvements [SCI-6566] (#3925) * Improve table printing in the print menu [SCI-6566] * Open smart annotation in new tab for print view [SCI-6566] * Unify naming of same parameter [SCI-6566] * Fix typo [SCI-6566] * Fix hound errors [SCI-6566] * Add stock management toggling [SCI-6653] (#3967) Co-authored-by: Anton <anton@scinote.net> * Fix caching of an experiment card dropdown [SCI-6606] (#3963) * Add stock consumption permission to user roles [SCI-6665] (#3966) * Show archive icon only on archived projects in the header [SCI-6617] (#3965) * Fix assigned items fullview modal [SCI-6664] (#3968) * Implement hide all repository reminders button [SCI-6505] (#3940) * Viewer role does not see any tasks in archived project [SCI-6616] (#3958) * Fix viewer role not see any tasks in archived project [SCI-6616] * Fix rollback for add read archive permission migration [SCI-6616] * Stock modal bugs [SCI-6667] (#3970) Co-authored-by: Anton <anton@scinote.net> * Always use Tika text extractor in server mode [SCI-6658] (#3957) * Implement stock consumption via the API [SCI-6642] (#3964) * Implement stock consumption via the API [SCI-6642] * Remove unnecessary attribute from InventoryItemSerializer [SCI-6642] * Amend permission check, add nested transaction support to consume_stock method [SCI-6642] * Toolbar fixes [SCI-6670] (#3973) Co-authored-by: Anton <anton@scinote.net> * Make stock column work properly with different orders [SCI-6677] (#3974) * Fix filters loading for stock filter [SCI-6687] (#3975) Co-authored-by: Anton <anton@scinote.net> * Hide reminders and disable stock consumption for archived items [SCI-6689] (#3978) * Fix red dot for datetime columns [SCI-6684] (#3977) Co-authored-by: Anton <anton@scinote.net> * Fix saving of inventory date time reminders saving [SCI-6672] (#3976) * Bump puma from 5.6.2 to 5.6.4 (#3972) Bumps [puma](https://github.com/puma/puma) from 5.6.2 to 5.6.4. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.6.2...v5.6.4) --- updated-dependencies: - dependency-name: puma dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Don't load reminders if the stock feature is disabled [SCI-6673] (#3981) * Don't load reminders if the stock feature is disabled [SCI-6673] * Don't load reminders if the stock feature is disabled [SCI-6673] * Unify stock management enabled check [6673] * Update repository card view for stock [SCI-6685] (#3982) Co-authored-by: Anton <anton@scinote.net> * Disable stock managememnt for all tables in my module context [SCI-6692] (#3983) * Implement failed snapshot pop-up on task screen [SCI-6612] (#3950) * Implement failed snapshot pop-up on task screen [SCI-6612] * Copy change [SCI-6612] * Proper handling of snapshot transition error [SCI-6612] * Move modal auto open logic to JS file [SCI-6612] * Remove unnecessary .html_safe [SCI-6612] * Fix assigning and consuming items [SCI-6686] (#3985) * Repository toolbar CSS fixes [SCI-6676] (#3984) Co-authored-by: Anton <anton@scinote.net> * Add basic validation to reminder value to prevent integer overflow errors [SCI-6693] (#3986) * Fix reminder dropdown on task screen [SCI-6678] (#3987) Co-authored-by: Anton <anton@scinote.net> * Fix inventory sorting with date time reminders [SCI-6683] (#3980) * Fix css stock modal [SCI-6675] (#3989) Co-authored-by: Anton <anton@scinote.net> * Stock column management UX/UI fixes [SCI-6674] (#3979) * Fix red dot for dates in repository [SCI-6696] (#3991) Co-authored-by: Anton <anton@scinote.net> * Added styling for failed snapshots in sidebar [SCI-6636] (#3990) * Added styling for failed snapshots in sidebar [SCI-6636] * Simplify markup for failed icon [SCI-6636] * Turn off autocomplete for stock amount/reminder [SCI-6694] (#3988) * Override error styling in stock column management [SCI-6674] (#3995) * Fix repository full view tables without stock management [SCI-6703] (#3994) * Add pagination to projects list [SCI-6655] * Add reminder preset to date(time) reminders [SCI-6693] (#3996) * Fix color on consumption link [SCI-6686] (#3992) * Fix sorting by date time columns in inventories [SCI-6683] (#4002) * Improve loading of the dashboard [SCI-6618] (#4001) * Stock modal UX fixes [SCI-6714] (#3998) Co-authored-by: Anton <anton@scinote.net> * Fix css for stotck modal [SCI-6698] (#3999) Co-authored-by: Anton <anton@scinote.net> * API: add endpoint for updating of stock [SCI-6549] (#3955) * Add test for Stock repository cell [SCI-6549] * Create and update stock inventory cell [SCI-6549] * Fix hound errors [SCI-6549] * Fix ledger recording [SCI-6549] * Fix api endpoint [SCI-6549] * Fix hound [SCI-6549] * Fix collapsing of assigned items tables [SCI-6705] (#4000) * API: add endpoint for creating stock column [SCI-6550] (#3956) * Add test for repositoty stock column api [SCI-6550] * Create and update stock column [SCI-6550] * Change stock unit [SCI-6550] * Fix hound [SCI-6550] * Fix on delete [SCI-6550] * Fix houd [SCI-6550] * Removed autofocus clear on open reminder flyout [SCI-6690] (#4003) * Removed clear autofocus on open reminder flyout [SCI-6690] * Fix hound [SCI-6690] * Adding/changing stock consumption [SCI-6708] (#4005) * Adding/changing stock consumption [SCI-6708] * Fix hound [SCI-6708] * Remove date red dots for snapshots [SCI-6715] (#4004) Co-authored-by: Anton <anton@scinote.net> * Add snapshot error message below task status [SCI-6614] (#4009) * Add repository snapshot error modal [SCI-6613] (#3993) * Bump nokogiri from 1.13.3 to 1.13.4 (#4008) Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.13.3 to 1.13.4. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/v1.13.4/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.13.3...v1.13.4) --- updated-dependencies: - dependency-name: nokogiri dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add pagination for experiments [SCI-6656] * Fix sorting by time and time range columns [SCI-6683] (#4011) * Bump moment from 2.24.0 to 2.29.2 (#4006) Bumps [moment](https://github.com/moment/moment) from 2.24.0 to 2.29.2. - [Release notes](https://github.com/moment/moment/releases) - [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md) - [Commits](https://github.com/moment/moment/compare/2.24.0...2.29.2) --- updated-dependencies: - dependency-name: moment dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Align items in assigned item section [SCI-6707] (#4007) * Add locking and unique index to repository row assigning [SCI-6591] (#3921) * tmp (#3935) * Revert "tmp (#3935)" (#4014) This reverts commit 043086d55fe0c7adeac528662e1433ccdb91aed0. * Move cursor to end of value when focusing consumption amount [SCI-6727] (#4013) * Fix removing stock reminder threshold [SCI-6724] (#4010) * Stock small ux fixes [SCI-6714] (#4015) Co-authored-by: Anton <anton@scinote.net> * Add aibility to delete stock column [SCI-6723] (#4017) Co-authored-by: Anton <anton@scinote.net> * Fix red dot for date reminders [SCI-6696] (#4016) Co-authored-by: Anton <anton@scinote.net> * Change the way setting stock works [SCI-6730] (#4018) * Fix error modal opening on successful snapshot [SCI-6726] (#4019) * Refactor and fix display of stock warnings and stock consumption [SCI-6734] (#4021) * Refactor and fix how stock consumption is displayed [SCI-6734] * Refactor and fix display of stock warnings [SCI-6734] * Fix stock consumption in reports [SCI-6735] * Fix markup * Focus authenticator code field [SCI-6716] (#4022) * Hide reminders settings and red dots if stock is disabled [SCI-6673] (#4024) * Fix decimals in stock consumption modal [SCI-6732] * Add edit title for stock consumption modal [SCI-6731] * Highlight negative stock in modal with red [SCI-6729] * Stock management test [SCI-6420] (#3946) * Initial test for stock management * Repository stock values adding [does not work] SCI-6420 * Fix typos SCI-6420 * Fix test [SCI-6420] * Test changes [SCI-6402] * Remove locking test [SCI-6420] * Remove lock [SCI-6420] * Remove serializer [SCI-6420] * Fix stock test and add ledger creation on consume [SCI-6420] * Fix inviting users to team [SCI-6725] (#4026) * Improve stock ledger records creation [SCI-6419] * Fix stock modal add/remove value preset value [SCI-6740] * API GET repository stock column output fix [SCI-6550] (#4030) * Add include stock unit items to Stock column get [SCI-6550] * Fix stock column test [SCI-6550] * Fix hound [SCI-6550] * Move list-type column includes to param, unify naming [SCI-6738] (#4036) * Add default includes for inventory columns with lists [SCI-6738] * Move list-type column includes to param, unify naming [SCI-6738] * Fix snapshot consumption display [SCI-6734] (#4035) * Fix decimal render function [SCI-6742] (#4037) Co-authored-by: Anton <anton@scinote.net> * Add comment to repository stock activities [SCI-6746] * Fix default stock column default units selection [SCI-6744] * Add negative validation for stock [SCI-6743] * Highlight negative value in consumption modal [SCI-6741] * Fix snapshot creation with stock consumption [SCI-6762] * Update stock value without reloading the table [SCI-6745] (#4041) * Allow tag creation on task level if you have permission [SCI-6573] (#4031) * Enable team normal user to edit repository files [SCI-6765] (#4049) * Add negative validation for treshold [SCI-6743] * Copy fix [SCI-6762] (#4048) * Add bell icon for negative stock [SCI-6770] * Fix formatting of stock consumption on tasks [SCI-6737] (#4050) * Fix duplicated inventories on tasks for export all [SCI-6776] * Stock / stock consumption display fixes [SCI-6771] (#4054) * Fix blank stock consumption representation in reports [SCI-6769] * Upgrade Rails to 6.1.5.1 * Show last page message only after second page [SCI-6761] * Small CSS fixes for repository [SCI-6767] * Added validations for date(time) column reminder [SCI-6775] (#4063) * Upgrade Ruby to 2.7.6 * Open repository on print view [SCI-6566] (#4055) * Fix saving of new date time columns with reminders [SCI-6774] (#4068) * Improve input field for adding new team [SCI-6155] * Allow deleteion of stock columns when stock management is disabled [SCI-6800] * Update default label template [SCI-6763] (#4064) * Stock editing and reminder fixes [SCI-6803] (#4078) * Fix stock editing after adding new value [SCI-6803] * Don't load reminders for snapshots [SCI-6803] * Improve loading time of canvas view/edit [SCI-6797] * Fix stock consumption rounding [SCI-6807] * Fix displaying of stock consumption units [SCI-6795] * Fix task dropdown actions [SCI-6817] * Fix archived tasks view [SCI-6822] * Fix display of repository snapshot with stock consumption [SCI-6824] * Fix duplicated counters on task card [SCI-6825] * Bump version to 1.25.0 Co-authored-by: Oleksii Kriuchykhin <okriuchykhin@biosistemika.com> Co-authored-by: aignatov-bio <47317017+aignatov-bio@users.noreply.github.com> Co-authored-by: Anton <anton@scinote.net> Co-authored-by: ajugo <andrej.jugovic7@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-11 16:39:51 +08:00
before_action :load_repository_row, only: %i(update assigned_task_list active_reminder_repository_cells)
before_action :check_read_permissions, except: %i(show create update delete_records copy_records reminder_repository_cells)
before_action :check_snapshotting_status, only: %i(create update delete_records copy_records)
2017-06-06 23:35:29 +08:00
before_action :check_create_permissions, only: :create
before_action :check_delete_permissions, only: %i(delete_records archive_records restore_records)
before_action :check_manage_permissions, only: %i(update copy_records)
2017-06-06 23:35:29 +08:00
def index
@draw = params[:draw].to_i
per_page = params[:length] == '-1' ? 100 : params[:length].to_i
page = (params[:start].to_i / per_page) + 1
datatable_service = RepositoryDatatableService.new(@repository, params, current_user)
@all_rows_count = datatable_service.all_count
@columns_mappings = datatable_service.mappings
@repository_rows = datatable_service.repository_rows
.preload(:repository_columns,
:created_by,
repository_cells: { value: @repository.cell_preload_includes })
.page(page)
.per(per_page)
2020-06-24 17:22:28 +08:00
@repository_rows = @repository_rows.where(archived: params[:archived]) unless @repository.archived?
rescue RepositoryFilters::ColumnNotFoundException
render json: { custom_error: I18n.t('repositories.show.repository_filter.errors.column_not_found') }
rescue RepositoryFilters::ValueNotFoundException
render json: { custom_error: I18n.t('repositories.show.repository_filter.errors.value_not_found') }
end
2017-06-06 23:35:29 +08:00
def create
2019-12-10 15:43:26 +08:00
service = RepositoryRows::CreateRepositoryRowService
.call(repository: @repository, user: current_user, params: update_params)
2017-06-22 23:26:11 +08:00
2019-12-10 15:43:26 +08:00
if service.succeed?
repository_row = service.repository_row
log_activity(:create_item_inventory, repository_row)
repository_row.repository_cells.where(value_type: 'RepositoryTextValue').each do |repository_cell|
record_annotation_notification(repository_row, repository_cell)
end
2019-12-10 15:43:26 +08:00
render json: { id: service.repository_row.id, flash: t('repositories.create.success_flash',
record: escape_input(repository_row.name),
2019-12-10 15:43:26 +08:00
repository: escape_input(@repository.name)) },
status: :ok
else
render json: service.errors, status: :bad_request
2017-06-06 23:35:29 +08:00
end
end
def show
@repository_row = RepositoryRow.find_by(id: params[:id])
2020-08-11 19:33:44 +08:00
return render_404 unless @repository_row
return render_404 unless @repository_row.repository_id == params[:repository_id].to_i
return render_403 unless can_read_repository?(@repository_row.repository)
2020-08-11 16:27:23 +08:00
@assigned_modules = @repository_row.my_modules.joins(experiment: :project)
@viewable_modules = @assigned_modules.viewable_by_user(current_user, current_user.teams)
@private_modules = @assigned_modules - @viewable_modules
respond_to do |format|
format.json do
render json: {
html: render_to_string(
partial: 'repositories/repository_row_info_modal.html.erb'
)
}
end
end
end
def print_modal
@repository_rows = @repository.repository_rows.where(id: params[:rows])
@printers = LabelPrinter.all
respond_to do |format|
format.json do
render json: {
html: render_to_string(
partial: 'repositories/print_label_modal.html.erb'
)
}
end
end
end
def print
# reset all potential error states for printers and discard all jobs
# rubocop:disable Rails/SkipsModelValidations
LabelPrinter.update_all(status: :ready, current_print_job_ids: [])
# rubocop:enable Rails/SkipsModelValidations
label_printer = LabelPrinter.find(params[:label_printer_id])
job_ids = RepositoryRow.where(id: params[:repository_row_ids]).flat_map do |repository_row|
LabelPrinters::PrintJob.perform_later(
label_printer,
LabelTemplate.first.render( # Currently we will only use the default template
item_id: repository_row.code,
item_name: repository_row.name.truncate(MAX_PRINTABLE_ITEM_NAME_LENGTH)
),
params[:copies].to_i
).job_id
end
label_printer.update!(current_print_job_ids: job_ids * params[:copies].to_i)
render json: {
html: render_to_string(
partial: 'label_printers/print_progress_modal.html.erb',
locals: { starting_item_count: label_printer.current_print_job_ids.length,
label_printer: label_printer }
)
}
end
2017-06-06 23:35:29 +08:00
def update
2019-12-10 15:43:26 +08:00
row_update = RepositoryRows::UpdateRepositoryRowService
.call(repository_row: @repository_row, user: current_user, params: update_params)
2017-06-06 23:35:29 +08:00
2019-12-10 15:43:26 +08:00
if row_update.succeed?
if row_update.record_updated
log_activity(:edit_item_inventory, @repository_row)
@repository_row.repository_cells.where(value_type: 'RepositoryTextValue').each do |repository_cell|
record_annotation_notification(@repository_row, repository_cell)
end
end
render json: {
id: @repository_row.id,
flash: t(
'repositories.update.success_flash',
record: escape_input(@repository_row.name),
repository: escape_input(@repository.name)
)
}, status: :ok
2018-04-16 20:10:49 +08:00
else
2019-12-10 15:43:26 +08:00
render json: row_update.errors, status: :bad_request
2018-04-16 20:10:49 +08:00
end
end
2017-06-06 23:35:29 +08:00
def delete_records
deleted_count = 0
2017-12-20 00:53:45 +08:00
if selected_params
selected_params.each do |row_id|
row = @repository.repository_rows.find_by(id: row_id)
2019-07-12 22:43:54 +08:00
next unless row && can_manage_repository_rows?(@repository)
2019-03-07 14:38:34 +08:00
2019-07-12 22:43:54 +08:00
log_activity(:delete_item_inventory, row)
row.destroy && deleted_count += 1
2017-06-06 23:35:29 +08:00
end
if deleted_count.zero?
flash = t('repositories.destroy.no_deleted_records_flash',
2017-12-20 00:53:45 +08:00
other_records_number: selected_params.count)
elsif deleted_count != selected_params.count
not_deleted_count = selected_params.count - deleted_count
2017-06-06 23:35:29 +08:00
flash = t('repositories.destroy.contains_other_records_flash',
records_number: deleted_count,
other_records_number: not_deleted_count)
else
flash = t('repositories.destroy.success_flash',
records_number: deleted_count)
end
respond_to do |format|
color = deleted_count.zero? ? 'info' : 'success'
format.json { render json: { flash: flash, color: color }, status: :ok }
2017-06-06 23:35:29 +08:00
end
else
respond_to do |format|
format.json do
render json: {
flash: t('repositories.destroy.no_records_selected_flash')
}, status: :bad_request
end
end
end
end
def copy_records
2018-04-13 17:47:33 +08:00
duplicate_service = RepositoryActions::DuplicateRows.new(
2020-06-11 22:11:23 +08:00
current_user, @repository, selected_rows_in_repo_params
2018-04-13 17:47:33 +08:00
)
duplicate_service.call
render json: {
flash: t('repositories.copy_records_report',
number: duplicate_service.number_of_duplicated_items)
}, status: :ok
end
def available_rows
2021-07-23 17:56:28 +08:00
if @repository.repository_rows.active.blank?
no_items_string =
"#{t('projects.reports.new.save_PDF_to_inventory_modal.no_items')} " \
"#{link_to(t('projects.reports.new.save_PDF_to_inventory_modal.here'),
repository_path(@repository),
data: { 'no-turbolink' => true })}"
render json: { no_items: no_items_string },
status: :ok
else
render json: { results: load_available_rows },
status: :ok
end
end
def assigned_task_list
assigned_modules = @repository_row.my_modules.joins(experiment: :project)
2020-05-28 21:35:19 +08:00
.where_attributes_like(
['my_modules.name', 'experiments.name', 'projects.name'],
params[:query],
whole_phrase: true
)
viewable_modules = assigned_modules.viewable_by_user(current_user, current_user.teams)
private_modules_number = assigned_modules.where.not(id: viewable_modules).count
2020-04-28 18:41:59 +08:00
render json: {
2020-05-07 18:51:18 +08:00
html: render_to_string(partial: 'shared/my_modules_list_partial.html.erb', locals: {
my_modules: viewable_modules,
private_modules_number: private_modules_number
2020-05-07 18:51:18 +08:00
})
2020-04-28 18:41:59 +08:00
}
end
Version 1.25.0 (#4087) * Add initial implementation of inventory stock management [SCI-6402] * Add stock column type (#3786) * Add stock column type * Create new stock column [SCI-6410] * Small fixed for stock column [SCI-6410] * Add stock column validations [SCI-6410] Co-authored-by: Anton <anton@scinote.net> * Add stock table renders [SCI-6412] (#3787) Co-authored-by: Anton <anton@scinote.net> * Implemented stock management modal [SCI-6417] (#3788) * Implement inventory stock management modal [SCI-6417] * Add generalized validation mechanic, some bugfixes [SCI-6417] * Fix permission check and method name in RepositoryStockValue [SCI-6417] * Add stock and consumption to assigned items section [SCI-6434] (#3793) * Added UPDATE_STOCK_CONSUMPTION to MyModule permissons [SCI-6418] (#3781) * Fix invalid return in reports jobs [SCI-6409] (#3777) * Added UPDATE_STOCK_CONSUMPTION to MyModule permissons [SCI-6418] * Add current/new amount section to stock [SCI-6416] (#3791) Co-authored-by: Anton <anton@scinote.net> * Task stock consumption modal[SCI-6444][SCI-6445] (#3798) Add main logic for consumption on task [SCI-6444] Co-authored-by: Anton <anton@scinote.net> * Add stock management columns to snapshots [SCI-6448] * Handle stock management in full table views [SCI-6440] * Implement stock management activities [SCI-6452] (#3810) * Implement stock management activities [SCI-6452] * PR code fixes [SCI-6452] * Implement import for repository stock values [SCI-6461] (#3818) * Add permissions checking to assigned items view on tasks [SCI-6435] (#3801) * Add front-end validation for comments field [SCI-6464] (#3829) Co-authored-by: Anton <anton@scinote.net> * Add stock consumption to pdf and docx [SCI-6460] (#3816) Co-authored-by: Anton <anton@scinote.net> * Add support of repository snapshots to assigned items section [SCI-6439] (#3828) * Change subject of Repository (#3838) * Fixed full view assigned items modal stock consumption (#3846) * Implement repository snapshots displaying on assigned items full view modal [SCI-6442] (#3862) * Implement low stock threshold column [SCI-6555] (#3907) * Stock column fixes [SCI-6455] (#3878) * Fix issues with stock column management [SCI-6455] * Refactor stock column in datatables [SCI-6455] * Fix tests [SCI-6486] (#3913) * Fix tests [SCI-6486] * Fix rspec tests [SCI-6486] Co-authored-by: Anton <anton@scinote.net> * Implement basic logic for Date/DateTime/Stock reminders [SCI-6554] (#3911) * Implement basic logic for Date/DateTime/Stock reminders [SCI-6554] * Implement bell icon [SCI-6500] * Refactor reminder cells scope [SCI-6554] * Add red dot for date/datetime reminder [SCI-6499] (#3924) Co-authored-by: Anton <anton@scinote.net> * Add reminders to stock modal [SCI-6557] (#3917) Co-authored-by: Anton <anton@scinote.net> * Add flyout for repository reminders [SCI-6501] (#3926) Co-authored-by: Anton <anton@scinote.net> * Fix moving experiment [SCI-6602] (#3927) * Update Rails to 6.1.4.7 [SCI-6615] (#3928) * Task inventory activity for assigned item consumption [SCI-6453] (#3830) * Add task inventory activity [SCI-6453] * Apply user's time zone in advanced filters for time data type [SCI-6585] (#3930) * Bump version to 1.24.2 * Implement hidden repository cell reminders [SCI-6504] (#3933) * Low stock flyout reminders [SCI-6502] (#3932) * Display low stock flyout reminder [SCI-6502] * Display low stock flyout reminder [SCI-6502] * Adapt showing stock reminders for every bell icon click [SCI-6502] * Correct hound error [SCI-6502] * Fix event registration for fetching reminder data [SCI-6502] * Fix event registration for fetching reminder data [SCI-6502] * Fix hound [SCI-6502] * Remove not needed line [SCI-6502] * Add reminder template [SCI-6502] * Add clearing messages [SCI-6502] * Displaying low stock warning [SCI-6497] (#3912) * Low stock warning [SCI-6497 * Fix some bugs [SCI-6497] * Fix to long line [SCI-6497] * Clean not needed information in renderes [SCI-6497] * Icon bell reminder for an assigned item on the task [SCI-6506] (#3929) * Add bell icon on assigned task [SCI-6506] * Add flyout and improve quering [SCI-6506] * Refactor repository toolbar [SCI-6545] (#3943) Co-authored-by: Anton <anton@scinote.net> * Add datetime reminders to columns modal [SCI-6556] (#3934) Co-authored-by: Anton <anton@scinote.net> * Hide reminders for archived repositories [SCI-6609] (#3941) * Hide reminders for archived repositories [SCI-6609] * Always pass repository in datatable helper [SCI-6609] * Handle locked stock consumption state [SCI-6608] (#3942) * Change env variable name for s3 bucket region [SCI-6603] (#3944) * Add last_transition_error column to tasks [SCI-6610] (#3949) * Add microtransactions to stock consumptions [SCI-6626] (#3948) Co-authored-by: Anton <anton@scinote.net> * Date remidner flyout [SCI-6503] (#3937) * Implement date reminder flyout [SCI-6503] * Show only days left for date reminder [SCI-6503] * Pluralize day in reminders [SCI-6503] * Create partials for different reminders [SCI-6503] * Unify css for reminder [SCI-6503] * Add micro interactions for stock modal [SCI-6625] (#3947) Co-authored-by: Anton <anton@scinote.net> * Hide options to add New Tags for users without permissions on Task level [SCI-6573] (#3945) * Bump lodash-es from 4.17.15 to 4.17.21 (#3939) Bumps [lodash-es](https://github.com/lodash/lodash) from 4.17.15 to 4.17.21. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.21) --- updated-dependencies: - dependency-name: lodash-es dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Implement clearing hidden repository reminders [SCI-6507] (#3936) * Add stock filters [SCI-6547] (#3938) Co-authored-by: Anton <anton@scinote.net> * Fix assign view for task repository [SCI-6648] (#3954) Co-authored-by: Anton <anton@scinote.net> * Add micro-interactions to reminders flyout [SCI-6627] (#3951) Co-authored-by: Anton <anton@scinote.net> * Improve error reporting in task status transition [SCI-6611] (#3952) * Add ordering to global search results [SCI-6639] (#3960) * Fix multiple stock bugs [SCI-6651] (#3959) Co-authored-by: Anton <anton@scinote.net> * Fix large previews for csv files [SCI-6619] (#3961) * Add alias to cell sort query, to prevent join conflicts [SCI-6649] (#3953) * Add alias to cell sort query, to prevent join conflicts [SCI-6649] * Added value_type to join condition to make use of DB index [SCI-6649] * Update front end validation for columns managment [SCI-6657] (#3962) Co-authored-by: Anton <anton@scinote.net> * Print protocol smart annotation and table improvements [SCI-6566] (#3925) * Improve table printing in the print menu [SCI-6566] * Open smart annotation in new tab for print view [SCI-6566] * Unify naming of same parameter [SCI-6566] * Fix typo [SCI-6566] * Fix hound errors [SCI-6566] * Add stock management toggling [SCI-6653] (#3967) Co-authored-by: Anton <anton@scinote.net> * Fix caching of an experiment card dropdown [SCI-6606] (#3963) * Add stock consumption permission to user roles [SCI-6665] (#3966) * Show archive icon only on archived projects in the header [SCI-6617] (#3965) * Fix assigned items fullview modal [SCI-6664] (#3968) * Implement hide all repository reminders button [SCI-6505] (#3940) * Viewer role does not see any tasks in archived project [SCI-6616] (#3958) * Fix viewer role not see any tasks in archived project [SCI-6616] * Fix rollback for add read archive permission migration [SCI-6616] * Stock modal bugs [SCI-6667] (#3970) Co-authored-by: Anton <anton@scinote.net> * Always use Tika text extractor in server mode [SCI-6658] (#3957) * Implement stock consumption via the API [SCI-6642] (#3964) * Implement stock consumption via the API [SCI-6642] * Remove unnecessary attribute from InventoryItemSerializer [SCI-6642] * Amend permission check, add nested transaction support to consume_stock method [SCI-6642] * Toolbar fixes [SCI-6670] (#3973) Co-authored-by: Anton <anton@scinote.net> * Make stock column work properly with different orders [SCI-6677] (#3974) * Fix filters loading for stock filter [SCI-6687] (#3975) Co-authored-by: Anton <anton@scinote.net> * Hide reminders and disable stock consumption for archived items [SCI-6689] (#3978) * Fix red dot for datetime columns [SCI-6684] (#3977) Co-authored-by: Anton <anton@scinote.net> * Fix saving of inventory date time reminders saving [SCI-6672] (#3976) * Bump puma from 5.6.2 to 5.6.4 (#3972) Bumps [puma](https://github.com/puma/puma) from 5.6.2 to 5.6.4. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.6.2...v5.6.4) --- updated-dependencies: - dependency-name: puma dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Don't load reminders if the stock feature is disabled [SCI-6673] (#3981) * Don't load reminders if the stock feature is disabled [SCI-6673] * Don't load reminders if the stock feature is disabled [SCI-6673] * Unify stock management enabled check [6673] * Update repository card view for stock [SCI-6685] (#3982) Co-authored-by: Anton <anton@scinote.net> * Disable stock managememnt for all tables in my module context [SCI-6692] (#3983) * Implement failed snapshot pop-up on task screen [SCI-6612] (#3950) * Implement failed snapshot pop-up on task screen [SCI-6612] * Copy change [SCI-6612] * Proper handling of snapshot transition error [SCI-6612] * Move modal auto open logic to JS file [SCI-6612] * Remove unnecessary .html_safe [SCI-6612] * Fix assigning and consuming items [SCI-6686] (#3985) * Repository toolbar CSS fixes [SCI-6676] (#3984) Co-authored-by: Anton <anton@scinote.net> * Add basic validation to reminder value to prevent integer overflow errors [SCI-6693] (#3986) * Fix reminder dropdown on task screen [SCI-6678] (#3987) Co-authored-by: Anton <anton@scinote.net> * Fix inventory sorting with date time reminders [SCI-6683] (#3980) * Fix css stock modal [SCI-6675] (#3989) Co-authored-by: Anton <anton@scinote.net> * Stock column management UX/UI fixes [SCI-6674] (#3979) * Fix red dot for dates in repository [SCI-6696] (#3991) Co-authored-by: Anton <anton@scinote.net> * Added styling for failed snapshots in sidebar [SCI-6636] (#3990) * Added styling for failed snapshots in sidebar [SCI-6636] * Simplify markup for failed icon [SCI-6636] * Turn off autocomplete for stock amount/reminder [SCI-6694] (#3988) * Override error styling in stock column management [SCI-6674] (#3995) * Fix repository full view tables without stock management [SCI-6703] (#3994) * Add pagination to projects list [SCI-6655] * Add reminder preset to date(time) reminders [SCI-6693] (#3996) * Fix color on consumption link [SCI-6686] (#3992) * Fix sorting by date time columns in inventories [SCI-6683] (#4002) * Improve loading of the dashboard [SCI-6618] (#4001) * Stock modal UX fixes [SCI-6714] (#3998) Co-authored-by: Anton <anton@scinote.net> * Fix css for stotck modal [SCI-6698] (#3999) Co-authored-by: Anton <anton@scinote.net> * API: add endpoint for updating of stock [SCI-6549] (#3955) * Add test for Stock repository cell [SCI-6549] * Create and update stock inventory cell [SCI-6549] * Fix hound errors [SCI-6549] * Fix ledger recording [SCI-6549] * Fix api endpoint [SCI-6549] * Fix hound [SCI-6549] * Fix collapsing of assigned items tables [SCI-6705] (#4000) * API: add endpoint for creating stock column [SCI-6550] (#3956) * Add test for repositoty stock column api [SCI-6550] * Create and update stock column [SCI-6550] * Change stock unit [SCI-6550] * Fix hound [SCI-6550] * Fix on delete [SCI-6550] * Fix houd [SCI-6550] * Removed autofocus clear on open reminder flyout [SCI-6690] (#4003) * Removed clear autofocus on open reminder flyout [SCI-6690] * Fix hound [SCI-6690] * Adding/changing stock consumption [SCI-6708] (#4005) * Adding/changing stock consumption [SCI-6708] * Fix hound [SCI-6708] * Remove date red dots for snapshots [SCI-6715] (#4004) Co-authored-by: Anton <anton@scinote.net> * Add snapshot error message below task status [SCI-6614] (#4009) * Add repository snapshot error modal [SCI-6613] (#3993) * Bump nokogiri from 1.13.3 to 1.13.4 (#4008) Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.13.3 to 1.13.4. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/v1.13.4/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.13.3...v1.13.4) --- updated-dependencies: - dependency-name: nokogiri dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add pagination for experiments [SCI-6656] * Fix sorting by time and time range columns [SCI-6683] (#4011) * Bump moment from 2.24.0 to 2.29.2 (#4006) Bumps [moment](https://github.com/moment/moment) from 2.24.0 to 2.29.2. - [Release notes](https://github.com/moment/moment/releases) - [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md) - [Commits](https://github.com/moment/moment/compare/2.24.0...2.29.2) --- updated-dependencies: - dependency-name: moment dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Align items in assigned item section [SCI-6707] (#4007) * Add locking and unique index to repository row assigning [SCI-6591] (#3921) * tmp (#3935) * Revert "tmp (#3935)" (#4014) This reverts commit 043086d55fe0c7adeac528662e1433ccdb91aed0. * Move cursor to end of value when focusing consumption amount [SCI-6727] (#4013) * Fix removing stock reminder threshold [SCI-6724] (#4010) * Stock small ux fixes [SCI-6714] (#4015) Co-authored-by: Anton <anton@scinote.net> * Add aibility to delete stock column [SCI-6723] (#4017) Co-authored-by: Anton <anton@scinote.net> * Fix red dot for date reminders [SCI-6696] (#4016) Co-authored-by: Anton <anton@scinote.net> * Change the way setting stock works [SCI-6730] (#4018) * Fix error modal opening on successful snapshot [SCI-6726] (#4019) * Refactor and fix display of stock warnings and stock consumption [SCI-6734] (#4021) * Refactor and fix how stock consumption is displayed [SCI-6734] * Refactor and fix display of stock warnings [SCI-6734] * Fix stock consumption in reports [SCI-6735] * Fix markup * Focus authenticator code field [SCI-6716] (#4022) * Hide reminders settings and red dots if stock is disabled [SCI-6673] (#4024) * Fix decimals in stock consumption modal [SCI-6732] * Add edit title for stock consumption modal [SCI-6731] * Highlight negative stock in modal with red [SCI-6729] * Stock management test [SCI-6420] (#3946) * Initial test for stock management * Repository stock values adding [does not work] SCI-6420 * Fix typos SCI-6420 * Fix test [SCI-6420] * Test changes [SCI-6402] * Remove locking test [SCI-6420] * Remove lock [SCI-6420] * Remove serializer [SCI-6420] * Fix stock test and add ledger creation on consume [SCI-6420] * Fix inviting users to team [SCI-6725] (#4026) * Improve stock ledger records creation [SCI-6419] * Fix stock modal add/remove value preset value [SCI-6740] * API GET repository stock column output fix [SCI-6550] (#4030) * Add include stock unit items to Stock column get [SCI-6550] * Fix stock column test [SCI-6550] * Fix hound [SCI-6550] * Move list-type column includes to param, unify naming [SCI-6738] (#4036) * Add default includes for inventory columns with lists [SCI-6738] * Move list-type column includes to param, unify naming [SCI-6738] * Fix snapshot consumption display [SCI-6734] (#4035) * Fix decimal render function [SCI-6742] (#4037) Co-authored-by: Anton <anton@scinote.net> * Add comment to repository stock activities [SCI-6746] * Fix default stock column default units selection [SCI-6744] * Add negative validation for stock [SCI-6743] * Highlight negative value in consumption modal [SCI-6741] * Fix snapshot creation with stock consumption [SCI-6762] * Update stock value without reloading the table [SCI-6745] (#4041) * Allow tag creation on task level if you have permission [SCI-6573] (#4031) * Enable team normal user to edit repository files [SCI-6765] (#4049) * Add negative validation for treshold [SCI-6743] * Copy fix [SCI-6762] (#4048) * Add bell icon for negative stock [SCI-6770] * Fix formatting of stock consumption on tasks [SCI-6737] (#4050) * Fix duplicated inventories on tasks for export all [SCI-6776] * Stock / stock consumption display fixes [SCI-6771] (#4054) * Fix blank stock consumption representation in reports [SCI-6769] * Upgrade Rails to 6.1.5.1 * Show last page message only after second page [SCI-6761] * Small CSS fixes for repository [SCI-6767] * Added validations for date(time) column reminder [SCI-6775] (#4063) * Upgrade Ruby to 2.7.6 * Open repository on print view [SCI-6566] (#4055) * Fix saving of new date time columns with reminders [SCI-6774] (#4068) * Improve input field for adding new team [SCI-6155] * Allow deleteion of stock columns when stock management is disabled [SCI-6800] * Update default label template [SCI-6763] (#4064) * Stock editing and reminder fixes [SCI-6803] (#4078) * Fix stock editing after adding new value [SCI-6803] * Don't load reminders for snapshots [SCI-6803] * Improve loading time of canvas view/edit [SCI-6797] * Fix stock consumption rounding [SCI-6807] * Fix displaying of stock consumption units [SCI-6795] * Fix task dropdown actions [SCI-6817] * Fix archived tasks view [SCI-6822] * Fix display of repository snapshot with stock consumption [SCI-6824] * Fix duplicated counters on task card [SCI-6825] * Bump version to 1.25.0 Co-authored-by: Oleksii Kriuchykhin <okriuchykhin@biosistemika.com> Co-authored-by: aignatov-bio <47317017+aignatov-bio@users.noreply.github.com> Co-authored-by: Anton <anton@scinote.net> Co-authored-by: ajugo <andrej.jugovic7@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-11 16:39:51 +08:00
def reminder_repository_cells
render json: @repository_row.repository_cells.with_active_reminder(current_user)
end
def archive_records
service = RepositoryActions::ArchiveRowsService.call(repository: @repository,
2020-06-11 22:11:23 +08:00
repository_rows: selected_rows_in_repo_params,
user: current_user,
team: current_team)
if service.succeed?
render json: { flash: t('repositories.archive_records.success_flash', repository: @repository.name) }, status: :ok
else
render json: { error: service.error_message }, status: :unprocessable_entity
end
end
def restore_records
service = RepositoryActions::RestoreRowsService.call(repository: @repository,
2020-06-11 22:11:23 +08:00
repository_rows: selected_rows_in_repo_params,
user: current_user,
team: current_team)
if service.succeed?
render json: { flash: t('repositories.restore_records.success_flash', repository: @repository.name) }, status: :ok
else
render json: { error: service.error_message }, status: :unprocessable_entity
end
end
Version 1.25.0 (#4087) * Add initial implementation of inventory stock management [SCI-6402] * Add stock column type (#3786) * Add stock column type * Create new stock column [SCI-6410] * Small fixed for stock column [SCI-6410] * Add stock column validations [SCI-6410] Co-authored-by: Anton <anton@scinote.net> * Add stock table renders [SCI-6412] (#3787) Co-authored-by: Anton <anton@scinote.net> * Implemented stock management modal [SCI-6417] (#3788) * Implement inventory stock management modal [SCI-6417] * Add generalized validation mechanic, some bugfixes [SCI-6417] * Fix permission check and method name in RepositoryStockValue [SCI-6417] * Add stock and consumption to assigned items section [SCI-6434] (#3793) * Added UPDATE_STOCK_CONSUMPTION to MyModule permissons [SCI-6418] (#3781) * Fix invalid return in reports jobs [SCI-6409] (#3777) * Added UPDATE_STOCK_CONSUMPTION to MyModule permissons [SCI-6418] * Add current/new amount section to stock [SCI-6416] (#3791) Co-authored-by: Anton <anton@scinote.net> * Task stock consumption modal[SCI-6444][SCI-6445] (#3798) Add main logic for consumption on task [SCI-6444] Co-authored-by: Anton <anton@scinote.net> * Add stock management columns to snapshots [SCI-6448] * Handle stock management in full table views [SCI-6440] * Implement stock management activities [SCI-6452] (#3810) * Implement stock management activities [SCI-6452] * PR code fixes [SCI-6452] * Implement import for repository stock values [SCI-6461] (#3818) * Add permissions checking to assigned items view on tasks [SCI-6435] (#3801) * Add front-end validation for comments field [SCI-6464] (#3829) Co-authored-by: Anton <anton@scinote.net> * Add stock consumption to pdf and docx [SCI-6460] (#3816) Co-authored-by: Anton <anton@scinote.net> * Add support of repository snapshots to assigned items section [SCI-6439] (#3828) * Change subject of Repository (#3838) * Fixed full view assigned items modal stock consumption (#3846) * Implement repository snapshots displaying on assigned items full view modal [SCI-6442] (#3862) * Implement low stock threshold column [SCI-6555] (#3907) * Stock column fixes [SCI-6455] (#3878) * Fix issues with stock column management [SCI-6455] * Refactor stock column in datatables [SCI-6455] * Fix tests [SCI-6486] (#3913) * Fix tests [SCI-6486] * Fix rspec tests [SCI-6486] Co-authored-by: Anton <anton@scinote.net> * Implement basic logic for Date/DateTime/Stock reminders [SCI-6554] (#3911) * Implement basic logic for Date/DateTime/Stock reminders [SCI-6554] * Implement bell icon [SCI-6500] * Refactor reminder cells scope [SCI-6554] * Add red dot for date/datetime reminder [SCI-6499] (#3924) Co-authored-by: Anton <anton@scinote.net> * Add reminders to stock modal [SCI-6557] (#3917) Co-authored-by: Anton <anton@scinote.net> * Add flyout for repository reminders [SCI-6501] (#3926) Co-authored-by: Anton <anton@scinote.net> * Fix moving experiment [SCI-6602] (#3927) * Update Rails to 6.1.4.7 [SCI-6615] (#3928) * Task inventory activity for assigned item consumption [SCI-6453] (#3830) * Add task inventory activity [SCI-6453] * Apply user's time zone in advanced filters for time data type [SCI-6585] (#3930) * Bump version to 1.24.2 * Implement hidden repository cell reminders [SCI-6504] (#3933) * Low stock flyout reminders [SCI-6502] (#3932) * Display low stock flyout reminder [SCI-6502] * Display low stock flyout reminder [SCI-6502] * Adapt showing stock reminders for every bell icon click [SCI-6502] * Correct hound error [SCI-6502] * Fix event registration for fetching reminder data [SCI-6502] * Fix event registration for fetching reminder data [SCI-6502] * Fix hound [SCI-6502] * Remove not needed line [SCI-6502] * Add reminder template [SCI-6502] * Add clearing messages [SCI-6502] * Displaying low stock warning [SCI-6497] (#3912) * Low stock warning [SCI-6497 * Fix some bugs [SCI-6497] * Fix to long line [SCI-6497] * Clean not needed information in renderes [SCI-6497] * Icon bell reminder for an assigned item on the task [SCI-6506] (#3929) * Add bell icon on assigned task [SCI-6506] * Add flyout and improve quering [SCI-6506] * Refactor repository toolbar [SCI-6545] (#3943) Co-authored-by: Anton <anton@scinote.net> * Add datetime reminders to columns modal [SCI-6556] (#3934) Co-authored-by: Anton <anton@scinote.net> * Hide reminders for archived repositories [SCI-6609] (#3941) * Hide reminders for archived repositories [SCI-6609] * Always pass repository in datatable helper [SCI-6609] * Handle locked stock consumption state [SCI-6608] (#3942) * Change env variable name for s3 bucket region [SCI-6603] (#3944) * Add last_transition_error column to tasks [SCI-6610] (#3949) * Add microtransactions to stock consumptions [SCI-6626] (#3948) Co-authored-by: Anton <anton@scinote.net> * Date remidner flyout [SCI-6503] (#3937) * Implement date reminder flyout [SCI-6503] * Show only days left for date reminder [SCI-6503] * Pluralize day in reminders [SCI-6503] * Create partials for different reminders [SCI-6503] * Unify css for reminder [SCI-6503] * Add micro interactions for stock modal [SCI-6625] (#3947) Co-authored-by: Anton <anton@scinote.net> * Hide options to add New Tags for users without permissions on Task level [SCI-6573] (#3945) * Bump lodash-es from 4.17.15 to 4.17.21 (#3939) Bumps [lodash-es](https://github.com/lodash/lodash) from 4.17.15 to 4.17.21. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.21) --- updated-dependencies: - dependency-name: lodash-es dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Implement clearing hidden repository reminders [SCI-6507] (#3936) * Add stock filters [SCI-6547] (#3938) Co-authored-by: Anton <anton@scinote.net> * Fix assign view for task repository [SCI-6648] (#3954) Co-authored-by: Anton <anton@scinote.net> * Add micro-interactions to reminders flyout [SCI-6627] (#3951) Co-authored-by: Anton <anton@scinote.net> * Improve error reporting in task status transition [SCI-6611] (#3952) * Add ordering to global search results [SCI-6639] (#3960) * Fix multiple stock bugs [SCI-6651] (#3959) Co-authored-by: Anton <anton@scinote.net> * Fix large previews for csv files [SCI-6619] (#3961) * Add alias to cell sort query, to prevent join conflicts [SCI-6649] (#3953) * Add alias to cell sort query, to prevent join conflicts [SCI-6649] * Added value_type to join condition to make use of DB index [SCI-6649] * Update front end validation for columns managment [SCI-6657] (#3962) Co-authored-by: Anton <anton@scinote.net> * Print protocol smart annotation and table improvements [SCI-6566] (#3925) * Improve table printing in the print menu [SCI-6566] * Open smart annotation in new tab for print view [SCI-6566] * Unify naming of same parameter [SCI-6566] * Fix typo [SCI-6566] * Fix hound errors [SCI-6566] * Add stock management toggling [SCI-6653] (#3967) Co-authored-by: Anton <anton@scinote.net> * Fix caching of an experiment card dropdown [SCI-6606] (#3963) * Add stock consumption permission to user roles [SCI-6665] (#3966) * Show archive icon only on archived projects in the header [SCI-6617] (#3965) * Fix assigned items fullview modal [SCI-6664] (#3968) * Implement hide all repository reminders button [SCI-6505] (#3940) * Viewer role does not see any tasks in archived project [SCI-6616] (#3958) * Fix viewer role not see any tasks in archived project [SCI-6616] * Fix rollback for add read archive permission migration [SCI-6616] * Stock modal bugs [SCI-6667] (#3970) Co-authored-by: Anton <anton@scinote.net> * Always use Tika text extractor in server mode [SCI-6658] (#3957) * Implement stock consumption via the API [SCI-6642] (#3964) * Implement stock consumption via the API [SCI-6642] * Remove unnecessary attribute from InventoryItemSerializer [SCI-6642] * Amend permission check, add nested transaction support to consume_stock method [SCI-6642] * Toolbar fixes [SCI-6670] (#3973) Co-authored-by: Anton <anton@scinote.net> * Make stock column work properly with different orders [SCI-6677] (#3974) * Fix filters loading for stock filter [SCI-6687] (#3975) Co-authored-by: Anton <anton@scinote.net> * Hide reminders and disable stock consumption for archived items [SCI-6689] (#3978) * Fix red dot for datetime columns [SCI-6684] (#3977) Co-authored-by: Anton <anton@scinote.net> * Fix saving of inventory date time reminders saving [SCI-6672] (#3976) * Bump puma from 5.6.2 to 5.6.4 (#3972) Bumps [puma](https://github.com/puma/puma) from 5.6.2 to 5.6.4. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.6.2...v5.6.4) --- updated-dependencies: - dependency-name: puma dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Don't load reminders if the stock feature is disabled [SCI-6673] (#3981) * Don't load reminders if the stock feature is disabled [SCI-6673] * Don't load reminders if the stock feature is disabled [SCI-6673] * Unify stock management enabled check [6673] * Update repository card view for stock [SCI-6685] (#3982) Co-authored-by: Anton <anton@scinote.net> * Disable stock managememnt for all tables in my module context [SCI-6692] (#3983) * Implement failed snapshot pop-up on task screen [SCI-6612] (#3950) * Implement failed snapshot pop-up on task screen [SCI-6612] * Copy change [SCI-6612] * Proper handling of snapshot transition error [SCI-6612] * Move modal auto open logic to JS file [SCI-6612] * Remove unnecessary .html_safe [SCI-6612] * Fix assigning and consuming items [SCI-6686] (#3985) * Repository toolbar CSS fixes [SCI-6676] (#3984) Co-authored-by: Anton <anton@scinote.net> * Add basic validation to reminder value to prevent integer overflow errors [SCI-6693] (#3986) * Fix reminder dropdown on task screen [SCI-6678] (#3987) Co-authored-by: Anton <anton@scinote.net> * Fix inventory sorting with date time reminders [SCI-6683] (#3980) * Fix css stock modal [SCI-6675] (#3989) Co-authored-by: Anton <anton@scinote.net> * Stock column management UX/UI fixes [SCI-6674] (#3979) * Fix red dot for dates in repository [SCI-6696] (#3991) Co-authored-by: Anton <anton@scinote.net> * Added styling for failed snapshots in sidebar [SCI-6636] (#3990) * Added styling for failed snapshots in sidebar [SCI-6636] * Simplify markup for failed icon [SCI-6636] * Turn off autocomplete for stock amount/reminder [SCI-6694] (#3988) * Override error styling in stock column management [SCI-6674] (#3995) * Fix repository full view tables without stock management [SCI-6703] (#3994) * Add pagination to projects list [SCI-6655] * Add reminder preset to date(time) reminders [SCI-6693] (#3996) * Fix color on consumption link [SCI-6686] (#3992) * Fix sorting by date time columns in inventories [SCI-6683] (#4002) * Improve loading of the dashboard [SCI-6618] (#4001) * Stock modal UX fixes [SCI-6714] (#3998) Co-authored-by: Anton <anton@scinote.net> * Fix css for stotck modal [SCI-6698] (#3999) Co-authored-by: Anton <anton@scinote.net> * API: add endpoint for updating of stock [SCI-6549] (#3955) * Add test for Stock repository cell [SCI-6549] * Create and update stock inventory cell [SCI-6549] * Fix hound errors [SCI-6549] * Fix ledger recording [SCI-6549] * Fix api endpoint [SCI-6549] * Fix hound [SCI-6549] * Fix collapsing of assigned items tables [SCI-6705] (#4000) * API: add endpoint for creating stock column [SCI-6550] (#3956) * Add test for repositoty stock column api [SCI-6550] * Create and update stock column [SCI-6550] * Change stock unit [SCI-6550] * Fix hound [SCI-6550] * Fix on delete [SCI-6550] * Fix houd [SCI-6550] * Removed autofocus clear on open reminder flyout [SCI-6690] (#4003) * Removed clear autofocus on open reminder flyout [SCI-6690] * Fix hound [SCI-6690] * Adding/changing stock consumption [SCI-6708] (#4005) * Adding/changing stock consumption [SCI-6708] * Fix hound [SCI-6708] * Remove date red dots for snapshots [SCI-6715] (#4004) Co-authored-by: Anton <anton@scinote.net> * Add snapshot error message below task status [SCI-6614] (#4009) * Add repository snapshot error modal [SCI-6613] (#3993) * Bump nokogiri from 1.13.3 to 1.13.4 (#4008) Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.13.3 to 1.13.4. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/v1.13.4/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.13.3...v1.13.4) --- updated-dependencies: - dependency-name: nokogiri dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add pagination for experiments [SCI-6656] * Fix sorting by time and time range columns [SCI-6683] (#4011) * Bump moment from 2.24.0 to 2.29.2 (#4006) Bumps [moment](https://github.com/moment/moment) from 2.24.0 to 2.29.2. - [Release notes](https://github.com/moment/moment/releases) - [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md) - [Commits](https://github.com/moment/moment/compare/2.24.0...2.29.2) --- updated-dependencies: - dependency-name: moment dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Align items in assigned item section [SCI-6707] (#4007) * Add locking and unique index to repository row assigning [SCI-6591] (#3921) * tmp (#3935) * Revert "tmp (#3935)" (#4014) This reverts commit 043086d55fe0c7adeac528662e1433ccdb91aed0. * Move cursor to end of value when focusing consumption amount [SCI-6727] (#4013) * Fix removing stock reminder threshold [SCI-6724] (#4010) * Stock small ux fixes [SCI-6714] (#4015) Co-authored-by: Anton <anton@scinote.net> * Add aibility to delete stock column [SCI-6723] (#4017) Co-authored-by: Anton <anton@scinote.net> * Fix red dot for date reminders [SCI-6696] (#4016) Co-authored-by: Anton <anton@scinote.net> * Change the way setting stock works [SCI-6730] (#4018) * Fix error modal opening on successful snapshot [SCI-6726] (#4019) * Refactor and fix display of stock warnings and stock consumption [SCI-6734] (#4021) * Refactor and fix how stock consumption is displayed [SCI-6734] * Refactor and fix display of stock warnings [SCI-6734] * Fix stock consumption in reports [SCI-6735] * Fix markup * Focus authenticator code field [SCI-6716] (#4022) * Hide reminders settings and red dots if stock is disabled [SCI-6673] (#4024) * Fix decimals in stock consumption modal [SCI-6732] * Add edit title for stock consumption modal [SCI-6731] * Highlight negative stock in modal with red [SCI-6729] * Stock management test [SCI-6420] (#3946) * Initial test for stock management * Repository stock values adding [does not work] SCI-6420 * Fix typos SCI-6420 * Fix test [SCI-6420] * Test changes [SCI-6402] * Remove locking test [SCI-6420] * Remove lock [SCI-6420] * Remove serializer [SCI-6420] * Fix stock test and add ledger creation on consume [SCI-6420] * Fix inviting users to team [SCI-6725] (#4026) * Improve stock ledger records creation [SCI-6419] * Fix stock modal add/remove value preset value [SCI-6740] * API GET repository stock column output fix [SCI-6550] (#4030) * Add include stock unit items to Stock column get [SCI-6550] * Fix stock column test [SCI-6550] * Fix hound [SCI-6550] * Move list-type column includes to param, unify naming [SCI-6738] (#4036) * Add default includes for inventory columns with lists [SCI-6738] * Move list-type column includes to param, unify naming [SCI-6738] * Fix snapshot consumption display [SCI-6734] (#4035) * Fix decimal render function [SCI-6742] (#4037) Co-authored-by: Anton <anton@scinote.net> * Add comment to repository stock activities [SCI-6746] * Fix default stock column default units selection [SCI-6744] * Add negative validation for stock [SCI-6743] * Highlight negative value in consumption modal [SCI-6741] * Fix snapshot creation with stock consumption [SCI-6762] * Update stock value without reloading the table [SCI-6745] (#4041) * Allow tag creation on task level if you have permission [SCI-6573] (#4031) * Enable team normal user to edit repository files [SCI-6765] (#4049) * Add negative validation for treshold [SCI-6743] * Copy fix [SCI-6762] (#4048) * Add bell icon for negative stock [SCI-6770] * Fix formatting of stock consumption on tasks [SCI-6737] (#4050) * Fix duplicated inventories on tasks for export all [SCI-6776] * Stock / stock consumption display fixes [SCI-6771] (#4054) * Fix blank stock consumption representation in reports [SCI-6769] * Upgrade Rails to 6.1.5.1 * Show last page message only after second page [SCI-6761] * Small CSS fixes for repository [SCI-6767] * Added validations for date(time) column reminder [SCI-6775] (#4063) * Upgrade Ruby to 2.7.6 * Open repository on print view [SCI-6566] (#4055) * Fix saving of new date time columns with reminders [SCI-6774] (#4068) * Improve input field for adding new team [SCI-6155] * Allow deleteion of stock columns when stock management is disabled [SCI-6800] * Update default label template [SCI-6763] (#4064) * Stock editing and reminder fixes [SCI-6803] (#4078) * Fix stock editing after adding new value [SCI-6803] * Don't load reminders for snapshots [SCI-6803] * Improve loading time of canvas view/edit [SCI-6797] * Fix stock consumption rounding [SCI-6807] * Fix displaying of stock consumption units [SCI-6795] * Fix task dropdown actions [SCI-6817] * Fix archived tasks view [SCI-6822] * Fix display of repository snapshot with stock consumption [SCI-6824] * Fix duplicated counters on task card [SCI-6825] * Bump version to 1.25.0 Co-authored-by: Oleksii Kriuchykhin <okriuchykhin@biosistemika.com> Co-authored-by: aignatov-bio <47317017+aignatov-bio@users.noreply.github.com> Co-authored-by: Anton <anton@scinote.net> Co-authored-by: ajugo <andrej.jugovic7@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-11 16:39:51 +08:00
def active_reminder_repository_cells
reminder_cells = @repository_row.repository_cells.with_active_reminder(current_user).distinct
render json: {
html: render_to_string(partial: 'shared/repository_row_reminder.html.erb', locals: {
reminders: reminder_cells
})
}
end
2017-06-06 23:35:29 +08:00
private
include StringUtility
AvailableRepositoryRow = Struct.new(:id, :name, :has_file_attached)
def load_repository
@repository = Repository.accessible_by_teams(current_team)
.eager_load(:repository_columns)
.find_by(id: params[:repository_id])
render_404 unless @repository
end
def load_repository_or_snapshot
@repository = Repository.accessible_by_teams(current_team).find_by(id: params[:repository_id])
@repository ||= RepositorySnapshot.find_by(id: params[:repository_id])
render_404 unless @repository
end
def load_repository_row
@repository_row = @repository.repository_rows.eager_load(:repository_columns).find_by(id: params[:id])
render_404 unless @repository_row
2017-06-06 23:35:29 +08:00
end
def check_read_permissions
render_403 unless can_read_repository?(@repository)
end
def check_snapshotting_status
return if @repository.repository_snapshots.provisioning.none?
respond_to do |format|
format.json do
render json: {
flash: t('repositories.index.snapshot_provisioning_in_progress')
}, status: :unprocessable_entity
end
end
end
2017-06-06 23:35:29 +08:00
def check_create_permissions
2019-07-12 22:43:54 +08:00
render_403 unless can_create_repository_rows?(@repository)
2017-06-06 23:35:29 +08:00
end
def check_manage_permissions
2019-07-12 22:43:54 +08:00
render_403 unless can_manage_repository_rows?(@repository)
2017-06-06 23:35:29 +08:00
end
2019-11-22 20:23:02 +08:00
def check_delete_permissions
render_403 unless can_delete_repository_rows?(@repository)
end
def remove_file_columns_params
JSON.parse(params.fetch(:remove_file_columns) { '[]' })
end
2017-12-20 00:53:45 +08:00
def selected_params
params.permit(selected_rows: []).to_h[:selected_rows]
2017-06-06 23:35:29 +08:00
end
2020-06-11 22:11:23 +08:00
# Selected rows in scope of current @repository
def selected_rows_in_repo_params
process_ids = params[:selected_rows].map(&:to_i).uniq
@repository.repository_rows.where(id: process_ids).pluck(:id)
end
def load_available_rows
@repository.repository_rows
.active
.includes(:repository_cells)
.name_like(search_params[:q])
.limit(Constants::SEARCH_LIMIT)
.select(:id, :name)
.collect do |row|
with_asset_cell = row.repository_cells.where(
'repository_cells.repository_column_id = ?',
search_params[:repository_column_id]
)
AvailableRepositoryRow.new(row.id,
2018-05-17 17:21:34 +08:00
ellipsize(row.name, 75, 50),
with_asset_cell.present?)
end
end
def search_params
params.permit(:q, :repository_id, :repository_column_id)
end
2017-06-06 23:35:29 +08:00
def record_annotation_notification(record, cell, old_text = nil)
smart_annotation_notification(
old_text: old_text,
2017-06-06 23:35:29 +08:00
new_text: cell.value.data,
title: t('notifications.repository_annotation_title',
user: current_user.full_name,
column: cell.repository_column.name,
record: record.name,
repository: record.repository.name),
2017-06-06 23:35:29 +08:00
message: t('notifications.repository_annotation_message_html',
record: link_to(record.name, repository_url(@repository)),
column: link_to(cell.repository_column.name, repository_url(@repository)))
2017-06-06 23:35:29 +08:00
)
end
def fetch_list_items(cell)
return [] if cell.value_type != 'RepositoryListValue'
RepositoryListItem.where(repository: @repository)
.where(repository_column: cell.repository_column)
.limit(Constants::SEARCH_LIMIT)
.pluck(:id, :data)
.map { |li| [li[0], escape_input(li[1])] }
end
def fetch_columns_list_items
collection = []
@repository.repository_columns
.list_type
.preload(:repository_list_items)
.each do |column|
collection << {
column_id: column.id,
list_items: column.repository_list_items
.limit(Constants::SEARCH_LIMIT)
.pluck(:id, :data)
.map { |li| [li[0], escape_input(li[1])] }
}
end
collection
end
2019-03-07 14:38:34 +08:00
2019-12-10 15:43:26 +08:00
def update_params
params.permit(repository_row: {}, repository_cells: {}).to_h
end
2019-03-07 14:38:34 +08:00
def log_activity(type_of, repository_row)
Activities::CreateActivityService
.call(activity_type: type_of,
owner: current_user,
subject: @repository,
team: current_team,
message_items: {
repository_row: repository_row.id,
repository: @repository.id
})
end
2017-06-06 23:35:29 +08:00
end