# HG changeset patch # User Aurelien Campeas # Date 1245751976 -7200 # Node ID 8969443bd21c2ccf07be05147cf30417d63f38e1 # Parent c9263a17aed55a3b3b23dc110dbb0ea04ca4acfe# Parent ffd6c68bc485ab3193b0b639e40f660ba8ca04c3 merge diff -r c9263a17aed5 -r 8969443bd21c interfaces.py --- a/interfaces.py Tue Jun 23 11:48:40 2009 +0200 +++ b/interfaces.py Tue Jun 23 12:12:56 2009 +0200 @@ -197,6 +197,14 @@ """interface for items that do have a begin date 'start' and an end date 'stop' """ + @property + def start(self): + """return start date""" + + @property + def stop(self): + """return stop state""" + class ICalendarViews(Interface): """calendar views interface""" def matching_dates(self, begin, end): diff -r c9263a17aed5 -r 8969443bd21c web/data/cubicweb.preferences.js --- a/web/data/cubicweb.preferences.js Tue Jun 23 11:48:40 2009 +0200 +++ b/web/data/cubicweb.preferences.js Tue Jun 23 12:12:56 2009 +0200 @@ -4,6 +4,8 @@ * move me in a more appropriate place */ +var prefsValues = {}; + function togglePrefVisibility(elemId) { clearPreviousMessages(); jQuery('#' + elemId).toggleClass('hidden'); @@ -21,7 +23,6 @@ _toggleFieldset(fieldsetid, 0, linklabel, linkhref); } - function _toggleFieldset(fieldsetid, closeaction, linklabel, linkhref){ jQuery('#'+fieldsetid).find('div.openlink').each(function(){ var link = A({'href' : "javascript:noop();", @@ -75,7 +76,6 @@ jQuery('#err-value:' + formid).remove(); } - function checkValues(form, success){ var unfreezeButtons = false; jQuery(form).find('select').each(function () { @@ -100,8 +100,8 @@ } function _checkValue(input, unfreezeButtons){ - var currentValueInput = jQuery("input[name=current-" + input.attr('name') + "]"); - if (currentValueInput.val() != input.val()){ + var currentValue = prefsValues[input.attr('name')]; + if (currentValue != input.val()){ input.addClass('changed'); unfreezeButtons = true; }else{ @@ -112,27 +112,22 @@ return unfreezeButtons; } - function setCurrentValues(form){ - jQuery(form).find('input[name^=current-value]').each(function () { - var currentValueInput = jQuery(this); - var name = currentValueInput.attr('name').split('-')[1]; - jQuery(form).find("[name=" + name + "]").each(function (){ - var input = jQuery(this); - if(input.attr('type') == 'radio'){ - // NOTE: there seems to be a bug with jQuery(input).attr('checked') - // in our case, we can't rely on its value, we use - // the DOM API instead. - if(input[0].checked){ - currentValueInput.val(input.val()); - } - }else{ - currentValueInput.val(input.val()); - } - }); - }); + jQuery(form).find('input[name^=value]').each(function () { + var input = jQuery(this); + if(input.attr('type') == 'radio'){ + // NOTE: there seems to be a bug with jQuery(input).attr('checked') + // in our case, we can't rely on its value, we use + // the DOM API instead. + if(input[0].checked){ + prefsValues[input.attr('name')] = input.val(); + } + }else{ + prefsValues[input.attr('name')] = input.val(); + } + }); } - + function initEvents(){ jQuery('form').each(function() { var form = jQuery(this); @@ -153,4 +148,3 @@ $(document).ready(function() { initEvents(); }); - diff -r c9263a17aed5 -r 8969443bd21c web/views/cwproperties.py --- a/web/views/cwproperties.py Tue Jun 23 11:48:40 2009 +0200 +++ b/web/views/cwproperties.py Tue Jun 23 12:12:56 2009 +0200 @@ -139,7 +139,6 @@ w(u'

%s

\n' % (make_togglable_link('fieldset_' + group, label.capitalize()))) w(u'
' % (group, status)) - # create selection sorted_objects = sorted((self.req.__('%s_%s' % (group, o)), o, f) for o, f in objects.iteritems()) @@ -217,10 +216,9 @@ eidparam=True)) subform.vreg = self.vreg subform.form_add_hidden('pkey', key, eidparam=True) - subform.form_add_hidden("current-value:%s" % entity.eid,) form.form_add_subform(subform) return subform - + def is_user_prefs(cls, req, rset, row=None, col=0, **kwargs): return req.user.eid == rset[row or 0][col] @@ -303,7 +301,7 @@ choices = entity.vreg.user_property_keys() return [(u'', u'')] + sorted(zip((_(v) for v in choices), choices)) - + class PropertyValueField(StringField): """specific field for CWProperty.value which will be different according to the selected key type and vocabulary information @@ -355,7 +353,6 @@ self.choices = field.vocabulary(form) self.widget = wdg - uicfg.autoform_field.tag_attribute(('CWProperty', 'pkey'), PropertyKeyField) uicfg.autoform_field.tag_attribute(('CWProperty', 'value'), PropertyValueField) diff -r c9263a17aed5 -r 8969443bd21c web/views/idownloadable.py --- a/web/views/idownloadable.py Tue Jun 23 11:48:40 2009 +0200 +++ b/web/views/idownloadable.py Tue Jun 23 12:12:56 2009 +0200 @@ -125,7 +125,7 @@ """the secondary view is a link to download the file""" entity = self.entity(row, col) url = html_escape(entity.absolute_url()) - name = html_escape(entity.download_file_name()) + name = html_escape(title or entity.download_file_name()) durl = html_escape(entity.download_url()) self.w(u'%s [%s]' % (url, name, durl, self.req._('download'))) diff -r c9263a17aed5 -r 8969443bd21c web/views/primary.py --- a/web/views/primary.py Tue Jun 23 11:48:40 2009 +0200 +++ b/web/views/primary.py Tue Jun 23 12:12:56 2009 +0200 @@ -54,6 +54,7 @@ self.w(u'
') self.w(u'
') self.w(u'
') + self.content_navigation_components('navcontenttop') try: self.render_entity_attributes(entity) except TypeError: # XXX bw compat @@ -61,7 +62,6 @@ 'deprecated (%s)' % self.__class__) self.render_entity_attributes(entity, []) self.w(u'
') - self.content_navigation_components('navcontenttop') if self.main_related_section: try: self.render_entity_relations(entity)