diff --git a/CHANGES.rst b/CHANGES.rst index d50e7f9679..babddd7587 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -4,6 +4,7 @@ Changelog 2.0.0rc3 (unreleased) --------------------- +- #1660 Cleanup unused ajax endpoints for reports and js - #1659 Fix language in datepicker widgets diff --git a/src/bika/lims/browser/reports/__init__.py b/src/bika/lims/browser/reports/__init__.py index 6d51fe9387..45b5a876fc 100644 --- a/src/bika/lims/browser/reports/__init__.py +++ b/src/bika/lims/browser/reports/__init__.py @@ -315,62 +315,3 @@ def __call__(self): self.request.RESPONSE.write(result) return - - -class ReferenceAnalysisQC_Samples(BrowserView): - - def __init__(self, context, request): - BrowserView.__init__(self, context, request) - self.context = context - self.request = request - - def __call__(self): - plone.protect.CheckAuthenticator(self.request) - # get Supplier from request - supplier = self.request.form.get('SupplierUID', '') - supplier = self.reference_catalog.lookupObject(supplier) - if supplier: - # get ReferenceSamples for this supplier - samples = self.bika_catalog(portal_type='ReferenceSample', - path={"query": "/".join( - supplier.getPhysicalPath()), - "level": 0}) - ret = [] - for sample in samples: - sample = sample.getObject() - UID = sample.UID() - title = sample.Title() - definition = sample.getReferenceDefinition() - if definition: - title = "%s (%s)" % (title, definition.Title()) - ret.append((UID, title)) - return json.dumps(ret) - - -class ReferenceAnalysisQC_Services(BrowserView): - - def __init__(self, context, request): - BrowserView.__init__(self, context, request) - - def __call__(self): - plone.protect.CheckAuthenticator(self.request) - # get Sample from request - sample_uid = self.request.form.get('SampleUID', '') - uc = getToolByName(self.context, 'uid_catalog') - brains = uc(UID=sample_uid) - if brains: - sample = brains[0].getObject() - # get ReferenceSamples for this supplier - analyses = self.bika_analysis_catalog( - portal_type='ReferenceAnalysis', - path={"query": "/".join(sample.getPhysicalPath()), "level": 0}) - ret = {} - for analysis in analyses: - if analysis.getServiceUID in ret: - ret[analysis.getServiceUID]['analyses'].append(analysis.UID) - else: - ret[analysis.getServiceUID] = { - 'title': analysis.Title, - 'analyses': [analysis.UID]} - ret = [[k, v['title'], v['analyses']] for k, v in ret.items()] - return json.dumps(ret) diff --git a/src/bika/lims/browser/reports/configure.zcml b/src/bika/lims/browser/reports/configure.zcml index 1458251799..9c861f3c46 100644 --- a/src/bika/lims/browser/reports/configure.zcml +++ b/src/bika/lims/browser/reports/configure.zcml @@ -45,21 +45,4 @@ permission="zope.Public" /> - - - - - - - diff --git a/src/senaite/core/browser/static/js/bika.lims.reports.js b/src/senaite/core/browser/static/js/bika.lims.reports.js index a3d20a865f..149a87cfe9 100644 --- a/src/senaite/core/browser/static/js/bika.lims.reports.js +++ b/src/senaite/core/browser/static/js/bika.lims.reports.js @@ -1,60 +1,50 @@ -/** - * Controller class for Bika LIMS Reports + +/* Please use this command to compile this file into the parent `js` directory: + coffee --no-header -w -o ../ -c bika.lims.reports.coffee */ -function ReportFolderView() { - - var that = this; - - /** - * Entry-point method for AnalysisServiceEditView - */ - that.load = function() { - - $("a[id$='_selector']").click(function(event){ - $(".criteria").toggle(false); - event.preventDefault(); - var div_id = $(this).attr("id").split("_selector")[0]; - $("[id='"+div_id+"']").toggle(true); - }); - - // AJAX: Set ReferenceSamples dropdown when Supplier is selected - $("#SupplierUID").change(function(){ - var val = $(this).val(); - $.getJSON("referenceanalysisqc_samples", - {"SupplierUID":val, - "_authenticator": $("input[name='_authenticator']").val()}, - function(data){ - $("#SampleUID").empty().append(""); - if(data){ - for(var i=0;i"+sample[1]+""); - } - } - } - ); - }); - - // AJAX: Set ReferenceServices dropdown when ReferenceSample is selected - $("#SampleUID").change(function(){ - var val = $(this).val(); - $.getJSON("referenceanalysisqc_services", - {"SampleUID":val, - "_authenticator": $("input[name='_authenticator']").val()}, - function(data){ - $("#ReferenceServiceUID").empty().append(""); - if(data){ - for(var i=0;i"+service[1]+""); - } - } - } - ); - }); - - // Reference QC: reset the dropdowns on page reload - $("#SupplierUID").val(""); +(function() { + var bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; + + window.ReportFolderView = (function() { + function ReportFolderView() { + this.on_toggle_change = bind(this.on_toggle_change, this); + this.bind_eventhandler = bind(this.bind_eventhandler, this); + this.load = bind(this.load, this); } -} + + ReportFolderView.prototype.load = function() { + console.debug("ReportFolderView::load"); + return this.bind_eventhandler(); + }; + + + /* INITIALIZERS */ + + ReportFolderView.prototype.bind_eventhandler = function() { + + /* + * Binds callbacks on elements + */ + console.debug("ReportFolderView::bind_eventhandler"); + return $("body").on("click", "a[id$='_selector']", this.on_toggle_change); + }; + + ReportFolderView.prototype.on_toggle_change = function(event) { + + /** + * Event handler when the toggle anchor is clicked + */ + var div_id; + console.debug("°°° ReportFolderView::on_toggle_change °°°"); + event.preventDefault(); + $(".criteria").toggle(false); + div_id = event.currentTarget.id.split("_selector")[0]; + return $("[id='" + div_id + "']").toggle(true); + }; + + return ReportFolderView; + + })(); + +}).call(this); diff --git a/src/senaite/core/browser/static/js/coffee/bika.lims.reports.coffee b/src/senaite/core/browser/static/js/coffee/bika.lims.reports.coffee new file mode 100644 index 0000000000..0883320dc8 --- /dev/null +++ b/src/senaite/core/browser/static/js/coffee/bika.lims.reports.coffee @@ -0,0 +1,36 @@ +### Please use this command to compile this file into the parent `js` directory: + coffee --no-header -w -o ../ -c bika.lims.reports.coffee +### + + +class window.ReportFolderView + + load: => + console.debug "ReportFolderView::load" + + # initialize toggle anchors + @bind_eventhandler() + + + ### INITIALIZERS ### + + bind_eventhandler: => + ### + * Binds callbacks on elements + ### + console.debug "ReportFolderView::bind_eventhandler" + + # When the anchor for a given report is selected, display the report form + $("body").on "click", "a[id$='_selector']", @on_toggle_change + + + on_toggle_change: (event) => + ###* + * Event handler when the toggle anchor is clicked + ### + console.debug "°°° ReportFolderView::on_toggle_change °°°" + + event.preventDefault() + $(".criteria").toggle false + div_id = event.currentTarget.id.split("_selector")[0] + $("[id='"+div_id+"']").toggle true