Author: asemonella
Date: Mon Jun 2 07:01:19 2014
New Revision: 1599098
URL: http://svn.apache.org/r1599098
Log:
#618 QCT, update select field values when switching product.
Modified:
bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/js/theme.js
bloodhound/trunk/bloodhound_theme/bhtheme/theme.py
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=1599098&r1=1599097&r2=1599098&view=diff
==============================================================================
--- bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/js/theme.js (original)
+++ bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/js/theme.js Mon Jun 2
07:01:19 2014
@@ -126,8 +126,27 @@ $(function() {
}
}
+ // Update QCT select fields on product change.
$('#field-product').change(function(e) {
set_qct_more_enabled($(this).val());
+ $qct_form = $('#qct-form');
+ var product = $qct_form.find('#field-product').val()
+ if(product) {
+ var form_token = $qct_form.find('input[name="__FORM_TOKEN"]').val();
+ var fields_to_update = ['version', 'type'];
+ $.post('update-menus', { product: product, __FORM_TOKEN: form_token,
+ fields_to_update: fields_to_update }).done(function(data) {
+ $.each(data, function(i, v) {
+ $field = $('#field-' + i);
+ $field.empty();
+ $field.append('<option value="">Choose...</option>');
+ $.each(v, function(i, v) {
+ $field.append('<option value="' + v + '">' + v + '</option>');
+ });
+
+ });
+ });
+ }
});
set_qct_more_enabled($('#field-product').val());
Modified: bloodhound/trunk/bloodhound_theme/bhtheme/theme.py
URL:
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/bhtheme/theme.py?rev=1599098&r1=1599097&r2=1599098&view=diff
==============================================================================
--- bloodhound/trunk/bloodhound_theme/bhtheme/theme.py (original)
+++ bloodhound/trunk/bloodhound_theme/bhtheme/theme.py Mon Jun 2 07:01:19 2014
@@ -28,6 +28,7 @@ from trac.config import ListOption, Opti
from trac.core import Component, TracError, implements
from trac.mimeview.api import get_mimetype
from trac.resource import get_resource_url, Neighborhood, Resource
+from trac.ticket.api import TicketSystem
from trac.ticket.model import Ticket, Milestone
from trac.ticket.notification import TicketNotifyEmail
from trac.ticket.web_ui import TicketModule
@@ -518,6 +519,21 @@ class BloodhoundTheme(ThemeBase):
tag.a(_('Source'),
href=req.href.wiki('TracRepositoryAdmin')))
+class QCTSelectFieldUpdate(Component):
+ implements(IRequestHandler)
+
+ def match_request(self, req):
+ return req.path_info == '/update-menus'
+
+ def process_request(self, req):
+ product = req.args.get('product')
+ fields_to_update = req.args.get('fields_to_update[]');
+ env = ProductEnvironment(self.env.parent, req.args.get('product'))
+ ticket_fields = TicketSystem(env).get_ticket_fields()
+ data = dict([f['name'], f['options']] for f in ticket_fields
+ if f['type'] == 'select' and f['name'] in fields_to_update)
+ req.send(to_json(data), 'application/json')
+
class QuickCreateTicketDialog(Component):
implements(IRequestFilter, IRequestHandler)