Fix minor bugs with hanging protocol editor
- Hide dropdown after clicking Import button - Clone the selected protocol, updateselect it and update protocol selector when a protocol is saved as - Update protocol selector after a protocol is renamed
This commit is contained in:
parent
1d2c1c55fe
commit
c581b0fd2c
@ -33,7 +33,7 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a class="btn-file">
|
<a id="importProtocol" class="btn-file">
|
||||||
Import <input type="file"> <i class="fa fa-upload"></i>
|
Import <input type="file"> <i class="fa fa-upload"></i>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@ -190,9 +190,22 @@ Template.protocolEditor.events({
|
|||||||
openTextEntryDialog(title, instructions, currentValue, function(value) {
|
openTextEntryDialog(title, instructions, currentValue, function(value) {
|
||||||
// Update the name with the entered text
|
// Update the name with the entered text
|
||||||
selectedProtocol.name = value;
|
selectedProtocol.name = value;
|
||||||
HP.ProtocolStore.updateProtocol(selectedProtocol.id, selectedProtocol)
|
|
||||||
|
// Update the protocol
|
||||||
|
HP.ProtocolStore.updateProtocol(selectedProtocol.id, selectedProtocol);
|
||||||
|
|
||||||
|
// Update the protocol selector
|
||||||
|
updateProtocolSelect();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* Import a Protocol
|
||||||
|
*/
|
||||||
|
'click #importProtocol'() {
|
||||||
|
// Hide the protocol dropdown manually, because it is not hidden automatically
|
||||||
|
// when it has input as a child
|
||||||
|
$("#protocolDropdown").dropdown('toggle');
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* Triggers a custom event when for the HTML5 File input when files are selected
|
* Triggers a custom event when for the HTML5 File input when files are selected
|
||||||
*
|
*
|
||||||
@ -226,9 +239,13 @@ Template.protocolEditor.events({
|
|||||||
var reader = new FileReader();
|
var reader = new FileReader();
|
||||||
|
|
||||||
reader.onload = () => {
|
reader.onload = () => {
|
||||||
|
var protocolToImport = JSON.parse(reader.result);
|
||||||
|
|
||||||
// Insert the protocol
|
// Insert the protocol
|
||||||
var toImport = JSON.parse(reader.result);
|
HP.ProtocolStore.addProtocol(protocolToImport);
|
||||||
HP.ProtocolStore.addProtocol(toImport);
|
|
||||||
|
// Update the protocol selector to display the imported Protocol
|
||||||
|
updateProtocolSelect();
|
||||||
};
|
};
|
||||||
|
|
||||||
// Instruct the FileReader to read the (first) selected file
|
// Instruct the FileReader to read the (first) selected file
|
||||||
@ -283,28 +300,37 @@ Template.protocolEditor.events({
|
|||||||
'click #saveAsProtocol'() {
|
'click #saveAsProtocol'() {
|
||||||
var selectedProtocol = this;
|
var selectedProtocol = this;
|
||||||
|
|
||||||
|
// Clone the selected Protocol
|
||||||
|
var protocol = selectedProtocol.createClone();
|
||||||
|
|
||||||
// Define some details for the text entry dialog
|
// Define some details for the text entry dialog
|
||||||
var title = 'Save Protocol As';
|
var title = 'Save Protocol As';
|
||||||
var instructions = 'Enter a new name';
|
var instructions = 'Enter a new name';
|
||||||
var currentValue = selectedProtocol.name;
|
var currentValue = protocol.name;
|
||||||
|
|
||||||
// Open the text entry dialog with the details above
|
// Open the text entry dialog with the details above
|
||||||
// and fire the callback function when finished.
|
// and fire the callback function when finished.
|
||||||
openTextEntryDialog(title, instructions, currentValue, function(value) {
|
openTextEntryDialog(title, instructions, currentValue, function(value) {
|
||||||
// Create a new ID for the protocol
|
// Create a new ID for the protocol
|
||||||
selectedProtocol.id = Random.id();
|
protocol.id = Random.id();
|
||||||
|
|
||||||
// Update the name with the entered text
|
// Update the name with the entered text
|
||||||
selectedProtocol.name = value;
|
protocol.name = value;
|
||||||
|
|
||||||
// Unlock the protocol
|
// Unlock the protocol
|
||||||
selectedProtocol.locked = false;
|
protocol.locked = false;
|
||||||
|
|
||||||
// Update the Protocol's modifiedDate and modifiedBy User details
|
// Update the Protocol's modifiedDate and modifiedBy User details
|
||||||
selectedProtocol.protocolWasModified();
|
protocol.protocolWasModified();
|
||||||
|
|
||||||
// Insert the new Protocol
|
// Insert the new Protocol
|
||||||
HP.ProtocolStore.addProtocol(selectedProtocol);
|
HP.ProtocolStore.addProtocol(protocol);
|
||||||
|
|
||||||
|
// Activate the new Protocol using the ProtocolEngine
|
||||||
|
ProtocolEngine.setHangingProtocol(protocol);
|
||||||
|
|
||||||
|
// Update the protocol selector to display the new Protocols
|
||||||
|
updateProtocolSelect();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user