Author: gjm Date: Thu Dec 12 16:37:31 2013 New Revision: 1550449 URL: http://svn.apache.org/r1550449 Log: adds the ability to pass fields set in the qct form to the newticket page - towards #617, patch from antony
Modified: bloodhound/trunk/bloodhound_multiproduct/multiproduct/ticket/web_ui.py bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/js/theme.js Modified: bloodhound/trunk/bloodhound_multiproduct/multiproduct/ticket/web_ui.py URL: http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/multiproduct/ticket/web_ui.py?rev=1550449&r1=1550448&r2=1550449&view=diff ============================================================================== --- bloodhound/trunk/bloodhound_multiproduct/multiproduct/ticket/web_ui.py (original) +++ bloodhound/trunk/bloodhound_multiproduct/multiproduct/ticket/web_ui.py Thu Dec 12 16:37:31 2013 @@ -50,13 +50,29 @@ class ProductTicketModule(TicketModule): def process_request(self, req): """Override for TicketModule process_request""" ticketid = req.args.get('id') - productid = req.args.get('productid','') + productid = req.args.get('productid', '') + qct_product = req.args.get('product') # From QCT form if not ticketid: # if /newticket is executed in global scope (from QCT), redirect # the request to /products/<first_product_in_DB>/newticket - if not productid and not isinstance(self.env, ProductEnvironment): + # + # If here from "More fields" link then pass along QCT form fields. + # If product arg present then redirect to + # /products/<qct_product>/newticket . + + if not productid and not qct_product and not isinstance(self.env, + ProductEnvironment): products = Product.select(self.env, {'fields': ['prefix']}) - req.redirect(req.href.products(products[0].prefix, 'newticket')) + req.redirect(req.href.products(products[0].prefix, 'newticket', + req.args)) + elif qct_product: + # Most likely arrived here via the QCT "More fields" link. + # Use <qct_product> to redirect to the appropriate product + # scope + + req.args.pop('product') # don't reenter block on redirect. + req.redirect(req.href.products(qct_product, 'newticket', + req.args)) return self._process_newticket_request(req) if req.path_info in ('/newticket', '/products'): Modified: bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/js/theme.js URL: http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/js/theme.js?rev=1550449&r1=1550448&r2=1550449&view=diff ============================================================================== --- bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/js/theme.js (original) +++ bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/js/theme.js Thu Dec 12 16:37:31 2013 @@ -93,6 +93,17 @@ $( function () { content : function () { return qct_info.msg; } }); + /** + * Pass QCT form fields to full ticket form when "More fields" is clicked + */ + $('#qct-more').click(function(e) { + e.preventDefault(); + var href = $(this).attr('href'); + var params = $('#qct-form').serialize(); + params = params.replace(/field_/g, ''); // map to newticket querystring + window.location = href + '?' + params; + }); + $('body').on('click.close', '#qct-alert-close', function (e) { qct_alert_close() });