$(document).ready(function(){
//drug type by select
$(document).on('change', '.medication-type-select', function(e) {
var $selectBox = $(e.currentTarget);
var selectedMedicationType = $selectBox.val();
var $medForm = $selectBox.closest('.med-form');
var $providerHospital = $medForm.find('.provider-hospital');
var $standard = $medForm.find('.standard');
var $drugBySelect = $medForm.find('.drug-by-select');
var $providerGp = $medForm.find('.provider-gp');
switch (selectedMedicationType) {
case "antibiotic":
$providerGp.prop("checked", true);
$standard.hide();
$drugBySelect.show();
break;
case "esa":
$providerHospital.prop("checked", true);
$standard.hide();
$drugBySelect.show();
break;
case "immunosuppressant":
$providerGp.prop("checked", true);
$standard.hide();
$drugBySelect.show();
break;
default:
$providerGp.prop("checked", true);
$standard.show();
$drugBySelect.hide();
break;
}
$.ajax({
url: '/drugs/drugs/selected_drugs.json',
data: { medication_switch: selectedMedicationType },
success: function(json) {
var $drugSelectBox = $medForm.find('.drug-select');
var option_template = ""
$drugSelectBox.html('');
$drugSelectBox.append(_.template(option_template)({ id: null, name: 'Please select' }));
// console.log(json);
for (var i = 0; i < json.length; i++) {
var drugId = json[i][0];
var drugName = json[i][1];
var optionHtml = _.template(option_template)({ id: drugId, name: drugName });
$drugSelectBox.append(optionHtml);
}
},
error: function(json) {
console.log("Drug list failed to load");
console.log(json);
}
});
});
// drug search
var timer,
// TODO: Get rid of this.
drugAdminTemplate = "
>",
medicationsTemplate = " class='drug-select-link' data-drug-id=<%=id%>><%= name %>";
// $(document).on('change', '.medication-type-select', function(e) {
$(document).on('keyup', '.find_drug', function(e) {
var $drugSearchInput = $(e.currentTarget),
query = $drugSearchInput.val();
$medForm = $drugSearchInput.closest('.med-form');
$drugResults = $drugSearchInput.siblings('.drug-results');
if(timer) clearTimeout(timer);
timer = setTimeout(function() {
if (query.length > 2) {
$.ajax({
url: '/drugs/drugs.json',
data: { q : { name_or_drug_types_name_cont : query } },
success: function(json) {
$drugResults.html('').show();
for (var i = 0; i < json.length; i++) {
var htmlTemplate = location.pathname === '/drugs' ? drugAdminTemplate : medicationsTemplate,
resultsHtml = _.template(htmlTemplate)(json[i]);
$drugResults.append(resultsHtml);
}
}
});
}
}, 500);
});
// set hidden value of chosen medication via search
$('body').on('click', '.drug-select-link', function(e) {
var $bullet = $(e.currentTarget);
var $medForm = $bullet.closest('.med-form');
var drugId = $bullet.data('drug-id');
$medForm.find('.selected-drug-id').val(drugId);
// Show the selected drug
$medForm.find('.find_drug').val($bullet.html());
$medForm.find('.drug-results').hide();
});
// set hidden value of chosen medication via select dropdown
$(document).on('change', '.medication-type-select', function(e) {
var $bullet = $(e.currentTarget);
var $medForm = $bullet.closest('.med-form');
var delay = 1000;
setTimeout(function(){
var selectedDrug = $medForm.find('.drug-select').val();
$medForm.find('.selected-drug-id').val(selectedDrug);
}, delay);
$('.drug-select').unbind().change(function(e) {
var $bullet = $(e.currentTarget);
var $medForm = $bullet.closest('.med-form');
var selectedDrug = $medForm.find('.drug-select').val();
$medForm.find('.selected-drug-id').val(selectedDrug);
});
});
});