mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-02-27 17:30:32 +08:00
Merge pull request #893 from Zanz2/step_desc_2small_SCI-1833
Fixed validations lengths and added workarounds for bugs [SCI-1833]
This commit is contained in:
commit
bb8aef3b73
3 changed files with 67 additions and 59 deletions
|
@ -976,7 +976,7 @@ class ProtocolsController < ApplicationController
|
|||
br +
|
||||
pio_eval_len(
|
||||
sanitize_input(iterating_key),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_MEDIUM
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
) +
|
||||
br
|
||||
else
|
||||
|
@ -996,7 +996,7 @@ class ProtocolsController < ApplicationController
|
|||
t('protocols.protocols_io_import.comp_append.expected_result') +
|
||||
pio_eval_len(
|
||||
sanitize_input(iterating_key),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_MEDIUM
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
) +
|
||||
'<br>'
|
||||
return append
|
||||
|
@ -1015,12 +1015,12 @@ class ProtocolsController < ApplicationController
|
|||
append = t('protocols.protocols_io_import.comp_append.soft_packg.title') +
|
||||
pio_eval_len(
|
||||
sanitize_input(iterating_key['name']),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_MEDIUM
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
) +
|
||||
t('protocols.protocols_io_import.comp_append.soft_packg.dev') +
|
||||
pio_eval_len(
|
||||
sanitize_input(iterating_key['developer']),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_MEDIUM
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
) +
|
||||
t('protocols.protocols_io_import.comp_append.soft_packg.vers') +
|
||||
pio_eval_len(
|
||||
|
@ -1030,12 +1030,12 @@ class ProtocolsController < ApplicationController
|
|||
t('protocols.protocols_io_import.comp_append.general_link') +
|
||||
pio_eval_len(
|
||||
sanitize_input(iterating_key['link']),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_BIG
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
) +
|
||||
t('protocols.protocols_io_import.comp_append.soft_packg.repo') +
|
||||
pio_eval_len(
|
||||
sanitize_input(iterating_key['repository']),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_BIG
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
) +
|
||||
t('protocols.protocols_io_import.comp_append.soft_packg.os') +
|
||||
pio_eval_len(
|
||||
|
@ -1057,12 +1057,12 @@ class ProtocolsController < ApplicationController
|
|||
append = t('protocols.protocols_io_import.comp_append.dataset.title') +
|
||||
pio_eval_len(
|
||||
sanitize_input(iterating_key['name']),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_MEDIUM
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
) +
|
||||
t('protocols.protocols_io_import.comp_append.general_link') +
|
||||
pio_eval_len(
|
||||
sanitize_input(iterating_key['link']),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_BIG
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
)
|
||||
return append
|
||||
end
|
||||
|
@ -1077,17 +1077,17 @@ class ProtocolsController < ApplicationController
|
|||
append = t('protocols.protocols_io_import.comp_append.command.title') +
|
||||
pio_eval_len(
|
||||
sanitize_input(iterating_key['name']),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_MEDIUM
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
) +
|
||||
t('protocols.protocols_io_import.comp_append.command.desc') +
|
||||
pio_eval_len(
|
||||
sanitize_input(iterating_key['description']),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_MEDIUM
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
) +
|
||||
t('protocols.protocols_io_import.comp_append.command.os') +
|
||||
pio_eval_len(
|
||||
sanitize_input(iterating_key['os_name']),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_MEDIUM
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
) +
|
||||
' , ' +
|
||||
pio_eval_len(
|
||||
|
@ -1109,19 +1109,19 @@ class ProtocolsController < ApplicationController
|
|||
) +
|
||||
pio_eval_len(
|
||||
sanitize_input(iterating_key['protocol_name']),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_MEDIUM
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
) +
|
||||
t(
|
||||
'protocols.protocols_io_import.comp_append.sub_protocol.author'
|
||||
) +
|
||||
pio_eval_len(
|
||||
sanitize_input(iterating_key['full_name']),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_MEDIUM
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
) +
|
||||
t('protocols.protocols_io_import.comp_append.general_link') +
|
||||
pio_eval_len(
|
||||
sanitize_input(iterating_key['link']),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_BIG
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
)
|
||||
return append
|
||||
end
|
||||
|
@ -1137,12 +1137,12 @@ class ProtocolsController < ApplicationController
|
|||
) +
|
||||
pio_eval_len(
|
||||
sanitize_input(iterating_key['body']),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_MEDIUM
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
) +
|
||||
t('protocols.protocols_io_import.comp_append.general_link') +
|
||||
pio_eval_len(
|
||||
sanitize_input(iterating_key['link']),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_BIG
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
)
|
||||
return append
|
||||
end
|
||||
|
|
|
@ -13,9 +13,7 @@ module ProtocolsIoHelper
|
|||
TEXT_MAX_LENGTH -
|
||||
(PIO_ELEMENT_RESERVED_LENGTH_SMALL * 2 +
|
||||
PIO_ELEMENT_RESERVED_LENGTH_MEDIUM * 8 +
|
||||
PIO_ELEMENT_RESERVED_LENGTH_BIG * 2 +
|
||||
400)
|
||||
# 400 is for en.yml text
|
||||
PIO_ELEMENT_RESERVED_LENGTH_BIG * 2)
|
||||
# -- 2 small = created at , publish date PROTOCOL ATTRIBUTES
|
||||
# -- 8 medium = description,tags,before_start,warning,guidelines,
|
||||
# manuscript_citation,keywords,vendor_name PROTOCOL ATTRIBUTES
|
||||
|
@ -24,24 +22,23 @@ module ProtocolsIoHelper
|
|||
# PROTOCOLS.IO STEP ATTRIBUTES
|
||||
PIO_S_AVAILABLE_LENGTH =
|
||||
TEXT_MAX_LENGTH -
|
||||
(PIO_ELEMENT_RESERVED_LENGTH_SMALL * 4 +
|
||||
PIO_ELEMENT_RESERVED_LENGTH_MEDIUM * 11 +
|
||||
PIO_ELEMENT_RESERVED_LENGTH_BIG * 5 +
|
||||
550)
|
||||
# 550 reserved for en.yml translations
|
||||
# -- 4 small = software_package version, software_package os_name,
|
||||
# software_package os_version, commands os_version
|
||||
# -- 11 medium = description,expected_result,software_package name,
|
||||
# software_package developer,dataset name,commands name,commands description,
|
||||
# commands os_name, sub protocol name, sub protocol full name (author),
|
||||
# safety_information,
|
||||
# -- 5 big = software_package link, software_package repository,
|
||||
# dataset link, sub protocol link, safety_information link
|
||||
(PIO_ELEMENT_RESERVED_LENGTH_SMALL * 20)
|
||||
# -- 20 small = description,expected_result,safety_information
|
||||
# software_package version, software_package os_name,
|
||||
# software_package os_version,software_package link,
|
||||
# software_package repository,software_package developer,software_package name
|
||||
# commands os_version,commands os_name, commands name,commands description,
|
||||
# sub protocol full name (author), sub protocol name, sub protocol link,
|
||||
# dataset link,dataset name, safety_information link,
|
||||
# -- 0 medium =
|
||||
# -- 0 big =
|
||||
|
||||
PIO_TITLE_TOOLONG_LEN =
|
||||
I18n.t('protocols.protocols_io_import.title_too_long').length + 5
|
||||
I18n.t('protocols.protocols_io_import.title_too_long').length + 2
|
||||
PIO_STEP_TOOLONG_LEN =
|
||||
I18n.t('protocols.protocols_io_import.too_long').length + 5
|
||||
I18n.t('protocols.protocols_io_import.too_long').length
|
||||
# The + 2 above (in title) is there because if the length was at the limit,
|
||||
# the cutter method had issues, this gives it some space
|
||||
def protocolsio_string_to_table_element(description_string)
|
||||
string_without_tables = string_html_table_remove(description_string)
|
||||
table_regex = %r{<table\b[^>]*>(.*?)<\/table>}m
|
||||
|
@ -97,19 +94,30 @@ module ProtocolsIoHelper
|
|||
end
|
||||
|
||||
def pio_eval_title_len(text)
|
||||
text += ' ' if text.length < Constants::NAME_MIN_LENGTH
|
||||
if text.length > Constants::NAME_MAX_LENGTH
|
||||
text =
|
||||
text[0..(Constants::NAME_MAX_LENGTH - PIO_TITLE_TOOLONG_LEN)] +
|
||||
t('protocols.protocols_io_import.title_too_long')
|
||||
@toolong = true
|
||||
if text
|
||||
text += ' ' if text.length < Constants::NAME_MIN_LENGTH
|
||||
if text.length > Constants::NAME_MAX_LENGTH
|
||||
text =
|
||||
text[0..(Constants::NAME_MAX_LENGTH - PIO_TITLE_TOOLONG_LEN)] +
|
||||
t('protocols.protocols_io_import.title_too_long')
|
||||
@toolong = true
|
||||
end
|
||||
text
|
||||
end
|
||||
text
|
||||
end
|
||||
|
||||
def pio_eval_len(text, reserved)
|
||||
if text
|
||||
text_end = reserved + @remaining - PIO_STEP_TOOLONG_LEN
|
||||
text_end = 2 if text_end < 2
|
||||
# Since steps have very low reserved values now (below 100),
|
||||
# the above sets their index to 1 if its negative
|
||||
# (length of toolong text is about 90 chars, and if remaining is 0,
|
||||
# then the negative index just gets set to 1. this is a workaround
|
||||
|
||||
# it would also be possible to not count the length of the "too long" text
|
||||
# or setting the import reserved value to 95,but then available characters
|
||||
# will be like before (around 7600)
|
||||
if text.length - reserved > @remaining
|
||||
text =
|
||||
close_open_html_tags(
|
||||
|
@ -117,8 +125,8 @@ module ProtocolsIoHelper
|
|||
)
|
||||
@toolong = true
|
||||
@remaining = 0
|
||||
else
|
||||
@remaining -= (text.length - reserved)
|
||||
elsif (text.length - reserved) > 0
|
||||
@remaining -= text.length - reserved
|
||||
end
|
||||
text
|
||||
end
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
<br><strong><%= t('protocols.protocols_io_import.preview.strng_s_desc') %></strong>
|
||||
<% s_desc = pio_eval_len(
|
||||
sanitize_input(string_html_table_remove(key['data'])),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_MEDIUM
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
)%>
|
||||
<%= s_desc.html_safe %><br>
|
||||
<% when '17' %>
|
||||
|
@ -52,7 +52,7 @@
|
|||
<br><strong><%= t('protocols.protocols_io_import.preview.s_exp_res') %></strong>
|
||||
<% s_exp_res = pio_eval_len(
|
||||
sanitize_input(string_html_table_remove(key['data'])),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_MEDIUM
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
)%>
|
||||
<%= s_exp_res.html_safe %>
|
||||
<br>
|
||||
|
@ -65,12 +65,12 @@
|
|||
<strong><%= not_null(key['name'])+': ' %></strong>
|
||||
<%= pio_eval_len(
|
||||
sanitize_input(string_html_table_remove(not_null(key['source_data']['name'])).html_safe),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_MEDIUM
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
).html_safe %>
|
||||
<br><%= t('protocols.protocols_io_import.preview.dev') %>
|
||||
<%= pio_eval_len(
|
||||
sanitize_input(not_null(key['source_data']['developer']).html_safe),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_MEDIUM
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
).html_safe %>
|
||||
<br><%= t('protocols.protocols_io_import.preview.vers') %>
|
||||
<%= pio_eval_len(
|
||||
|
@ -80,12 +80,12 @@
|
|||
<br><%= t('protocols.protocols_io_import.preview.s_link') %>
|
||||
<%= pio_eval_len(
|
||||
sanitize_input(not_null(key['source_data']['link']).html_safe),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_BIG
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
).html_safe %>
|
||||
<br><%= t('protocols.protocols_io_import.preview.repo') %>
|
||||
<%= pio_eval_len(
|
||||
sanitize_input(not_null(key['source_data']['repository']).html_safe),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_BIG
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
).html_safe %>
|
||||
<br><%= t('protocols.protocols_io_import.preview.os') %>
|
||||
<%= pio_eval_len(
|
||||
|
@ -103,12 +103,12 @@
|
|||
<strong><%= not_null(key['name'])+': ' %></strong>
|
||||
<%= pio_eval_len(
|
||||
sanitize_input(string_html_table_remove(not_null(key['source_data']['name'])).html_safe),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_MEDIUM
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
).html_safe %>
|
||||
<br><%= t('protocols.protocols_io_import.preview.s_link') %>
|
||||
<%= pio_eval_len(
|
||||
sanitize_input(not_null(key['source_data']['link']).html_safe),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_BIG
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
).html_safe %>
|
||||
<% when '15'%>
|
||||
<% step_info_string += not_null(key['source_data']['description']) %>
|
||||
|
@ -116,19 +116,19 @@
|
|||
<strong><%= key['name']+': ' %></strong>
|
||||
<% s_cmd = pio_eval_len(
|
||||
sanitize_input(not_null(key['source_data']['name'])),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_MEDIUM
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
) %>
|
||||
<%= s_cmd.html_safe %>
|
||||
<br><%= t('protocols.protocols_io_import.preview.s_desc') %>
|
||||
<% s_cmd_desc = pio_eval_len(
|
||||
sanitize_input(string_html_table_remove(not_null(key['source_data']['description']))),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_MEDIUM
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
) %>
|
||||
<% s_cmd_desc.html_safe %>
|
||||
<br><%= t('protocols.protocols_io_import.preview.os') %>
|
||||
<%= pio_eval_len(
|
||||
sanitize_input(not_null(key['source_data']['os_name']).html_safe),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_MEDIUM
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
).html_safe +
|
||||
' , '+
|
||||
pio_eval_len(
|
||||
|
@ -139,19 +139,19 @@
|
|||
<br><strong><%= t('protocols.protocols_io_import.preview.sub_prot') %></strong>
|
||||
<%= pio_eval_len(
|
||||
sanitize_input(not_null(key['source_data']['protocol_name']).html_safe),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_MEDIUM
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
).html_safe %>
|
||||
<br><%= t('protocols.protocols_io_import.preview.auth') %>
|
||||
<%= pio_eval_len(
|
||||
sanitize_input(not_null(key['source_data']['full_name']).html_safe),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_MEDIUM
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
).html_safe %>
|
||||
<br>
|
||||
<% if key['source_data']['link'].present? %>
|
||||
<%= t('protocols.protocols_io_import.preview.s_nobr_link') %>
|
||||
<%= pio_eval_len(
|
||||
sanitize_input(key['source_data']['link'].html_safe),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_BIG
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
).html_safe %>
|
||||
<% end %>
|
||||
<% when '19'%>
|
||||
|
@ -160,13 +160,13 @@
|
|||
<strong><%= key['name']+': ' %></strong>
|
||||
<% s_safety = pio_eval_len(
|
||||
sanitize_input(string_html_table_remove(not_null(key['source_data']['body']))),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_MEDIUM
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
) %>
|
||||
<%= s_safety.html_safe %>
|
||||
<br><%= t('protocols.protocols_io_import.preview.s_link') %>
|
||||
<%= pio_eval_len(
|
||||
sanitize_input(not_null(key['source_data']['link']).html_safe),
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_BIG
|
||||
ProtocolsIoHelper::PIO_ELEMENT_RESERVED_LENGTH_SMALL
|
||||
).html_safe %>
|
||||
<% when '20'%>
|
||||
<% else %>
|
||||
|
|
Loading…
Reference in a new issue