X-Git-Url: https://scm.cri.ensmp.fr/git/Portfolio.git/blobdiff_plain/17094a1109d383befd9b700262a8237e11e64543..362525bf290b43724237432ce8480f5dbd7049b8:/skins/lightbox_view.py diff --git a/skins/lightbox_view.py b/skins/lightbox_view.py index 7fb12dc..1a06cef 100755 --- a/skins/lightbox_view.py +++ b/skins/lightbox_view.py @@ -1,27 +1,66 @@ -##parameters=load='',unload='',**kw +##parameters= +from Products.Portfolio.utils import translate +_ = lambda msg : translate(msg, context) options = {} buttons = [] -lightboxSelected = False sd = context.session_data_manager.getSessionData(create = 1) path = context.getPhysicalPath() +req = context.REQUEST +form = req.form +fg = form.get + +# check if lighbox is selected +sessionpath = sd.get('lightboxpath', None) +lightboxSelected = False +if sessionpath == path : + lightboxSelected = True + buttons.append({'name': 'unload', 'value': 'Unload from my selection'}) +else : + buttons.append({'name':'load', 'value': 'Load in my selection'}) -if load : +# form processing +if fg('load') : sd.set('lightboxpath', path) selection = context.getUidList() sd.set('objects_selection', selection) sd.set('objects_selection_dict', dict([(uid, True) for uid in selection])) -elif unload : + +elif fg('unload') : sd.set('lightboxpath', None) sd.set('objects_selection', []) sd.set('objects_selection_dict', {}) -sessionpath = sd.get('lightboxpath', None) -if sessionpath == path : - lightboxSelected = True - buttons.append({'name': 'unload', 'value': 'Unload from my selection'}) -else : - buttons.append({'name':'load', 'value': 'Load in my selection'}) +elif fg('delete.x') or form.has_key('delete') : + uids = fg('uids', []) + if not lightboxSelected : + for uid in [int(uid) for uid in uids] : + context.remove(uid) + else : + selection = sd.get('objects_selection', []) + selDict = sd.get('objects_selection_dict', {}) + for uid in [int(uid) for uid in uids] : + context.remove(uid) + selection.remove(uid) + del selDict[uid] + + sd['objects_selection'] = selection + sd['objects_selection_dict'] = selDict + + # ui feedback message + if uids : + if len(uids) == 1 : + msg = _('Photo removed.') + else : + msg = _('Removed photos.') + else : + msg = _('Nothing to remove.') + + if fg('ajax') : + context.REQUEST.RESPONSE.setHeader('Content-Type', 'text/xml;;charset=utf-8') + return '%s' % msg + else : + context.setStatus(True, msg) options['buttons'] = buttons