mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-30 17:04:31 +08:00
Add data-e2e to task protocol and linked modals [SCI-12154]
This commit is contained in:
parent
16cad0d637
commit
f857744fe7
8 changed files with 170 additions and 36 deletions
|
@ -12,7 +12,7 @@
|
|||
<a class="task-section-caret" tabindex="0" role="button" data-toggle="collapse" href="#protocol-content" aria-expanded="true" aria-controls="protocol-content">
|
||||
<i class="sn-icon sn-icon-right"></i>
|
||||
<div class="task-section-title truncate">
|
||||
<h2>{{ i18n.t('Protocol') }}</h2>
|
||||
<h2 data-e2e="e2e-TX-task-protocol-sectionTitle">{{ i18n.t('Protocol') }}</h2>
|
||||
</div>
|
||||
</a>
|
||||
</template>
|
||||
|
@ -29,16 +29,30 @@
|
|||
:title="i18n.t('protocols.steps.new_step_title')"
|
||||
@keyup.enter="addStep(steps.length)"
|
||||
@click="addStep(steps.length)"
|
||||
tabindex="0">
|
||||
tabindex="0"
|
||||
data-e2e="e2e-BT-task-protocol-newStep">
|
||||
<span class="sn-icon sn-icon-new-task" aria-hidden="true"></span>
|
||||
<span class="tw-hidden xl:inline">{{ i18n.t("protocols.steps.new_step") }}</span>
|
||||
</a>
|
||||
<template v-if="steps.length > 0">
|
||||
<button :title="i18n.t('protocols.steps.collapse_label')" v-if="!stepCollapsed" class="btn btn-secondary icon-btn xl:!px-4" @click="collapseSteps" tabindex="0">
|
||||
<button
|
||||
:title="i18n.t('protocols.steps.collapse_label')"
|
||||
v-if="!stepCollapsed"
|
||||
class="btn btn-secondary icon-btn xl:!px-4"
|
||||
@click="collapseSteps"
|
||||
tabindex="0"
|
||||
data-e2e="e2e-BT-task-protocol-collapseAll"
|
||||
>
|
||||
<i class="sn-icon sn-icon-collapse-all"></i>
|
||||
<span class="tw-hidden xl:inline">{{ i18n.t("protocols.steps.collapse_label") }}</span>
|
||||
</button>
|
||||
<button v-else :title="i18n.t('protocols.steps.expand_label')" class="btn btn-secondary icon-btn xl:!px-4" @click="expandSteps" tabindex="0">
|
||||
<button v-else
|
||||
:title="i18n.t('protocols.steps.expand_label')"
|
||||
class="btn btn-secondary icon-btn xl:!px-4"
|
||||
@click="expandSteps"
|
||||
tabindex="0"
|
||||
data-e2e="e2e-BT-task-protocol-expandAll"
|
||||
>
|
||||
<i class="sn-icon sn-icon-expand-all"></i>
|
||||
<span class="tw-hidden xl:inline">{{ i18n.t("protocols.steps.expand_label") }}</span>
|
||||
</button>
|
||||
|
@ -51,7 +65,13 @@
|
|||
@protocol:add_protocol_steps="addSteps"
|
||||
:canDeleteSteps="steps.length > 0 && urls.delete_steps_url !== null"
|
||||
/>
|
||||
<button class="btn btn-light icon-btn" data-toggle="modal" data-target="#print-protocol-modal" tabindex="0">
|
||||
<button
|
||||
class="btn btn-light icon-btn"
|
||||
data-toggle="modal"
|
||||
data-target="#print-protocol-modal"
|
||||
tabindex="0"
|
||||
data-e2e="e2e-BT-task-protocol-print"
|
||||
>
|
||||
<span class="sn-icon sn-icon-printer" aria-hidden="true"></span>
|
||||
</button>
|
||||
<a v-if="steps.length > 0 && urls.reorder_steps_url"
|
||||
|
@ -60,13 +80,20 @@
|
|||
@click="startStepReorder"
|
||||
@keyup.enter="startStepReorder"
|
||||
:class="{'disabled': steps.length == 1}"
|
||||
tabindex="0" >
|
||||
tabindex="0"
|
||||
data-e2e="e2e-BT-task-protocol-reorderSteps"
|
||||
>
|
||||
<i class="sn-icon sn-icon-sort" aria-hidden="true"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="protocol-content" class="protocol-content collapse in" aria-expanded="true">
|
||||
<div
|
||||
id="protocol-content"
|
||||
class="protocol-content collapse in"
|
||||
aria-expanded="true"
|
||||
data-e2e="e2e-CO-task-protocol-content"
|
||||
>
|
||||
<div class="sci-divider" v-if="!inRepository"></div>
|
||||
<div class="mb-4">
|
||||
<div class="protocol-name mt-4" v-if="!inRepository">
|
||||
|
@ -78,6 +105,7 @@
|
|||
:allowBlank="!inRepository"
|
||||
:attributeName="`${i18n.t('Protocol')} ${i18n.t('name')}`"
|
||||
@update="updateName"
|
||||
:dataE2e="'task-protocol-title'"
|
||||
/>
|
||||
<span v-else>
|
||||
{{ protocol.attributes.name }}
|
||||
|
|
|
@ -1,18 +1,26 @@
|
|||
<template>
|
||||
<div ref="modal" class="modal" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-dialog" role="document" data-e2e="e2e-MD-protocol-addProtocolSteps">
|
||||
<form @submit.prevent="submit">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<button
|
||||
type="button"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
aria-label="Close"
|
||||
data-e2e="e2e-BT-protocol-addProtocolStepsModal-close"
|
||||
>
|
||||
<i class="sn-icon sn-icon-close"></i>
|
||||
</button>
|
||||
<h4 class="modal-title truncate !block" >
|
||||
<h4 class="modal-title truncate !block" data-e2e="e2e-TX-protocol-addProtocolStepsModal-title">
|
||||
{{ i18n.t('protocols.steps.modals.add_protocol_steps.title') }}
|
||||
</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p class="mb-6">{{ i18n.t('protocols.steps.modals.add_protocol_steps.description')}}</p>
|
||||
<p class="mb-6" data-e2e="e2e-TX-protocol-addProtocolStepsModal-description">
|
||||
{{ i18n.t('protocols.steps.modals.add_protocol_steps.description')}}
|
||||
</p>
|
||||
<div class="mb-6">
|
||||
<label class="sci-label">{{ i18n.t('protocols.steps.modals.add_protocol_steps.protocol_label') }}</label>
|
||||
<SelectDropdown
|
||||
|
@ -21,6 +29,7 @@
|
|||
:searchable="true"
|
||||
:value="selectedProtocol"
|
||||
@change="selectedProtocol = $event"
|
||||
:e2eValue="'e2e-DD-protocol-addProtocolStepsModal-selectProtocol'"
|
||||
></SelectDropdown>
|
||||
</div>
|
||||
<div class="relative">
|
||||
|
@ -36,12 +45,25 @@
|
|||
:searchable="true"
|
||||
:value="selectedSteps"
|
||||
@change="selectedSteps= $event"
|
||||
:e2eValue="'e2e-DD-protocol-addProtocolStepsModal-selectSteps'"
|
||||
></SelectDropdown>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">{{ i18n.t('general.cancel') }}</button>
|
||||
<button class="btn btn-primary" :disabled="submitting || !validObject" type="submit">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-secondary"
|
||||
data-dismiss="modal"
|
||||
data-e2e="e2e-BT-protocol-addProtocolStepsModal-cancel"
|
||||
>
|
||||
{{ i18n.t('general.cancel') }}
|
||||
</button>
|
||||
<button
|
||||
class="btn btn-primary"
|
||||
:disabled="submitting || !validObject"
|
||||
type="submit"
|
||||
data-e2e="e2e-BT-protocol-addProtocolStepsModal-addSteps"
|
||||
>
|
||||
{{ i18n.t('protocols.steps.modals.add_protocol_steps.confirm') }}
|
||||
</button>
|
||||
</div>
|
||||
|
|
|
@ -1,20 +1,44 @@
|
|||
<template>
|
||||
<div ref="modal" @keydown.esc="cancel" class="modal delete-steps-modal" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-content" data-e2e="e2e-MD-task-protocol-deleteAllSteps">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="sn-icon sn-icon-close"></i></button>
|
||||
<h4 class="modal-title">
|
||||
<button
|
||||
type="button"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
aria-label="Close"
|
||||
data-e2e="e2e-BT-task-protocol-deleteAllStepsModal-close"
|
||||
>
|
||||
<i class="sn-icon sn-icon-close"></i>
|
||||
</button>
|
||||
<h4 class="modal-title" data-e2e="e2e-TX-task-protocol-deleteAllStepsModal-title">
|
||||
{{ i18n.t('protocols.steps.modals.delete_steps.title')}}
|
||||
</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>{{ i18n.t('protocols.steps.modals.delete_steps.description_1')}}</p>
|
||||
<p class="warning">{{ i18n.t('protocols.steps.modals.delete_steps.description_2')}}</p>
|
||||
<p data-e2e="e2e-TX-task-protocol-deleteAllStepsModal-description">
|
||||
{{ i18n.t('protocols.steps.modals.delete_steps.description_1')}}
|
||||
</p>
|
||||
<p class="warning" data-e2e="e2e-TX-task-protocol-deleteAllStepsModal-warning">
|
||||
{{ i18n.t('protocols.steps.modals.delete_steps.description_2')}}
|
||||
</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-secondary" @click="cancel">{{ i18n.t('general.cancel') }}</button>
|
||||
<button class="btn btn-danger" @click="confirm">{{ i18n.t('protocols.steps.modals.delete_steps.confirm')}}</button>
|
||||
<button
|
||||
class="btn btn-secondary"
|
||||
@click="cancel"
|
||||
data-e2e="e2e-BT-task-protocol-deleteAllStepsModal-cancel"
|
||||
>
|
||||
{{ i18n.t('general.cancel') }}
|
||||
</button>
|
||||
<button
|
||||
class="btn btn-danger"
|
||||
@click="confirm"
|
||||
data-e2e="e2e-BT-task-protocol-deleteAllStepsModal-delete"
|
||||
>
|
||||
{{ i18n.t('protocols.steps.modals.delete_steps.confirm')}}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
aria-haspopup="true"
|
||||
aria-expanded="true"
|
||||
tabindex="0"
|
||||
data-e2e="e2e-DD-task-protocol-actions"
|
||||
>
|
||||
<span>{{ i18n.t("my_modules.protocol.options_dropdown.title") }}</span>
|
||||
<span class="sn-icon sn-icon-down"></span>
|
||||
|
@ -22,6 +23,7 @@
|
|||
ref="loadProtocol"
|
||||
data-action="load-from-repository"
|
||||
@click="loadProtocol"
|
||||
data-e2e="e2e-DO-task-protocol-actions-loadFromRepository"
|
||||
>
|
||||
<span>{{ i18n.t("my_modules.protocol.options_dropdown.load_from_repo") }}</span>
|
||||
</a>
|
||||
|
@ -30,6 +32,7 @@
|
|||
<a class="!px-3 !py-2.5 hover:!bg-sn-super-light-blue !text-sn-blue"
|
||||
data-turbolinks="false"
|
||||
@click.prevent="openAddStepsModal()"
|
||||
data-e2e="e2e-DO-task-protocol-actions-addProtocolSteps"
|
||||
>
|
||||
<span>{{
|
||||
i18n.t("my_modules.protocol.options_dropdown.add_protocol_steps")
|
||||
|
@ -42,6 +45,7 @@
|
|||
data-target="#newProtocolModal"
|
||||
v-bind:data-protocol-name="protocol.attributes.name"
|
||||
:class="{ disabled: !protocol.attributes.urls.save_to_repo_url }"
|
||||
data-e2e="e2e-DO-task-protocol-actions-saveAsNewTemplate"
|
||||
>
|
||||
<span>{{
|
||||
i18n.t("my_modules.protocol.options_dropdown.save_to_repo")
|
||||
|
@ -53,6 +57,7 @@
|
|||
data-turbolinks="false"
|
||||
:href="protocol.attributes.urls.export_url"
|
||||
:class="{ disabled: !protocol.attributes.urls.export_url }"
|
||||
data-e2e="e2e-DO-task-protocol-actions-exportProtocol"
|
||||
>
|
||||
<span>{{
|
||||
i18n.t("my_modules.protocol.options_dropdown.export")
|
||||
|
@ -64,6 +69,7 @@
|
|||
ref="updateProtocol"
|
||||
data-action="update-self"
|
||||
@click="updateProtocol"
|
||||
data-e2e="e2e-DO-task-protocol-actions-updateProtocol"
|
||||
>
|
||||
<span>{{
|
||||
i18n.t("my_modules.protocol.options_dropdown.update_protocol")
|
||||
|
@ -75,6 +81,7 @@
|
|||
ref="unlinkProtocol"
|
||||
data-action="unlink"
|
||||
@click="unlinkProtocol"
|
||||
data-e2e="e2e-DO-task-protocol-actions-unlinkProtocol"
|
||||
>
|
||||
<span>{{
|
||||
i18n.t("my_modules.protocol.options_dropdown.unlink")
|
||||
|
@ -86,6 +93,7 @@
|
|||
ref="revertProtocol"
|
||||
data-action="revert"
|
||||
@click="revertProtocol"
|
||||
data-e2e="e2e-DO-task-protocol-actions-revertProtocol"
|
||||
>
|
||||
<span>{{
|
||||
i18n.t("my_modules.protocol.options_dropdown.revert_protocol")
|
||||
|
@ -96,6 +104,7 @@
|
|||
<a class="!px-3 !py-2.5 hover:!bg-sn-super-light-blue !text-sn-blue"
|
||||
data-turbolinks="false"
|
||||
@click.prevent="openStepsDeletingModal()"
|
||||
data-e2e="e2e-DO-task-protocol-actions-deleteAllSteps"
|
||||
>
|
||||
<span>{{
|
||||
i18n.t("my_modules.protocol.options_dropdown.delete_steps")
|
||||
|
|
|
@ -1,17 +1,42 @@
|
|||
<div class="modal" id="confirm-link-update-modal" tabindex="-1" role="dialog" aria-labelledby="confirm-link-update-modal-label">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-content" data-e2e="e2e-MD-task-protocol-updateRevertFromTemplates">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="sn-icon sn-icon-close"></i></button>
|
||||
<h4 class="modal-title" id="confirm-link-update-modal-label"></h4>
|
||||
<button
|
||||
type="button"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
aria-label="Close"
|
||||
data-e2e="e2e-BT-task-protocol-updateRevertFromTemplatesModal-close"
|
||||
>
|
||||
<i class="sn-icon sn-icon-close"></i>
|
||||
</button>
|
||||
<h4
|
||||
class="modal-title"
|
||||
id="confirm-link-update-modal-label"
|
||||
data-e2e="e2e-TX-task-protocol-updateRevertFromTemplatesModal-title"
|
||||
></h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p class="message"></p>
|
||||
<p class="warning"><%= t('my_modules.protocols.confirm_link_update_modal.warning') %></p>
|
||||
<p class="message" data-e2e="e2e-TX-task-protocol-updateRevertFromTemplates-description"></p>
|
||||
<p class="warning" data-e2e="e2e-TX-task-protocol-updateRevertFromTemplates-warning">
|
||||
<%= t('my_modules.protocols.confirm_link_update_modal.warning') %>
|
||||
</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal"><%= t("general.cancel") %></button>
|
||||
<button type="button" class="btn btn-success" data-action="submit"></button>
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-secondary"
|
||||
data-dismiss="modal"
|
||||
data-e2e="e2e-BT-task-protocol-updateRevertFromTemplatesModal-cancel">
|
||||
<%= t("general.cancel") %>
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-success"
|
||||
data-action="submit"
|
||||
data-e2e="e2e-BT-task-protocol-updateRevertFromTemplatesModal-confirm"
|
||||
></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,16 +1,42 @@
|
|||
<div class="modal" id="load-from-repository-modal" tabindex="-1" role="dialog" aria-labelledby="load-from-repository-modal-label" data-url="<%= load_from_repository_protocol_path(@protocol) %>">
|
||||
<div class="modal-dialog modal-lg" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-content" data-e2e="e2e-MD-task-protocol-loadTemplate">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="sn-icon sn-icon-close"></i></button>
|
||||
<h2 class="modal-title" id="load-from-repository-modal-label">
|
||||
<button
|
||||
type="button"
|
||||
class="close"
|
||||
data-dismiss="modal"
|
||||
aria-label="Close"
|
||||
data-e2e="e2e-BT-task-protocol-loadTemplateModal-close"
|
||||
>
|
||||
<i class="sn-icon sn-icon-close"></i>
|
||||
</button>
|
||||
<h2
|
||||
class="modal-title"
|
||||
id="load-from-repository-modal-label"
|
||||
data-e2e="e2e-TX-task-protocol-loadTemplateModal-title"
|
||||
>
|
||||
<%= t("my_modules.protocols.load_from_repository_modal.title") %>
|
||||
</h2>
|
||||
</div>
|
||||
<div class="modal-body"></div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal"><%= t("general.cancel") %></button>
|
||||
<button type="button" class="btn btn-primary" data-action="submit"><%= t("my_modules.protocols.load_from_repository_modal.load") %></button>
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-secondary"
|
||||
data-dismiss="modal"
|
||||
data-e2e="e2e-BT-task-protocol-loadTemplateModal-cancel"
|
||||
>
|
||||
<%= t("general.cancel") %>
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-primary"
|
||||
data-action="submit"
|
||||
data-e2e="e2e-BT-task-protocol-loadTemplateModal-load"
|
||||
>
|
||||
<%= t("my_modules.protocols.load_from_repository_modal.load") %>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
data-role="datatable"
|
||||
data-source="<%= load_from_repository_datatable_protocol_path(@protocol) %>">
|
||||
<thead>
|
||||
<tr>
|
||||
<tr>
|
||||
<th class="all" id="protocol-name"><%= t("my_modules.protocols.load_from_repository_modal.thead_name") %></th>
|
||||
<th class="min-tablet-p" id="protocol-versions"><%= t("my_modules.protocols.load_from_repository_modal.thead_version") %></th>
|
||||
<th class="min-tablet-l" id="protocol-id"><%= t("my_modules.protocols.load_from_repository_modal.thead_id") %></th>
|
||||
|
@ -18,7 +18,7 @@
|
|||
<th class="min-desktop" id="protocol-published-on"><%= t("my_modules.protocols.load_from_repository_modal.thead_published_on") %></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody></tbody>
|
||||
<tbody data-e2e="e2e-CO-task-protocol-loadTemplateModal-table"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<div class="flex items-center dropdown my-module-protocol-status whitespace-nowrap">
|
||||
<% if @protocol.linked? %>
|
||||
<span class="status-label linked">
|
||||
<span class="status-label linked" data-e2e="e2e-TX-task-protocol-statusLinked">
|
||||
[<%= t("my_modules.protocols.protocol_status_bar.linked") %>]
|
||||
</span>
|
||||
<% else %>
|
||||
<span class="status-label">
|
||||
<span class="status-label" data-e2e="e2e-TX-task-protocol-statusUnlinked">
|
||||
[<%= t("my_modules.protocols.protocol_status_bar.unlinked") %>]
|
||||
</span>
|
||||
<% end %>
|
||||
|
|
Loading…
Add table
Reference in a new issue