src/pyams_media/zmi/video.py
changeset 105 f2cf11a82a79
parent 101 0cb6cb0ac01c
child 106 5409ce8b714a
--- a/src/pyams_media/zmi/video.py	Thu Sep 20 13:42:05 2018 +0200
+++ b/src/pyams_media/zmi/video.py	Thu Sep 20 13:47:23 2018 +0200
@@ -12,36 +12,31 @@
 
 __docformat__ = 'restructuredtext'
 
-
-# import standard library
 from datetime import datetime
 from decimal import Decimal
 
-# import interfaces
-from pyams_file.interfaces import IVideo, IThumbnails, IMediaWidget
-from pyams_form.interfaces.form import IWidgetsPrefixViewletsManager, IFormHelp
-from pyams_skin.interfaces.viewlet import IContextActions
-from pyams_utils.interfaces import MANAGE_PERMISSION, VIEW_PERMISSION
-from pyams_zmi.layer import IAdminLayer
+from z3c.form import field, button
 from z3c.form.interfaces import HIDDEN_MODE
+from zope.interface import Interface, alsoProvides
 
-# import packages
-from pyams_form.form import AJAXAddForm
+from pyams_file.interfaces import IVideo, IThumbnails, IMediaWidget
+from pyams_form.form import AJAXAddForm, ajax_config
 from pyams_form.help import FormHelp
+from pyams_form.interfaces.form import IWidgetsPrefixViewletsManager, IFormHelp
 from pyams_form.schema import CloseButton
+from pyams_media import _
 from pyams_pagelet.pagelet import pagelet_config
+from pyams_skin.interfaces.viewlet import IContextActions
 from pyams_skin.layer import IPyAMSLayer
 from pyams_skin.viewlet.toolbar import ToolbarActionItem
 from pyams_template.template import template_config
 from pyams_utils.adapter import adapter_config
+from pyams_utils.interfaces import MANAGE_PERMISSION, VIEW_PERMISSION
+from pyams_utils.interfaces.data import IObjectData
 from pyams_utils.schema import DottedDecimalField
 from pyams_viewlet.viewlet import viewlet_config, Viewlet
 from pyams_zmi.form import AdminDialogAddForm, AdminDialogDisplayForm
-from pyramid.view import view_config
-from z3c.form import field, button
-from zope.interface import Interface
-
-from pyams_media import _
+from pyams_zmi.layer import IAdminLayer
 
 
 #
@@ -101,6 +96,8 @@
 
 
 @pagelet_config(name='video-thumbnail.html', context=IVideo, layer=IPyAMSLayer, permission=MANAGE_PERMISSION)
+@ajax_config(name='video-thumbnail.json', context=IVideo, layer=IPyAMSLayer, permission=MANAGE_PERMISSION,
+             base=AJAXAddForm)
 class VideoThumbnailEditForm(AdminDialogAddForm):
     """Video thumbnail selection form"""
 
@@ -125,6 +122,10 @@
         super(VideoThumbnailEditForm, self).updateActions()
         if 'select' in self.actions:
             self.actions['select'].addClass('btn-primary')
+            self.object_data = {
+                'ams-form-data-init-callback': 'PyAMS_media.pausePlayer'
+            }
+            alsoProvides(self, IObjectData)
 
     def createAndAdd(self, data):
         data = data.get(self, data)
@@ -137,12 +138,6 @@
             thumbnailer.clear_thumbnails()
             return thumbnailer.get_thumbnail('{0[0]}x{0[1]}'.format(size), 'png', time)
 
-
-@view_config(name='video-thumbnail.json', context=IVideo, request_type=IPyAMSLayer,
-             permission=MANAGE_PERMISSION, renderer='json', xhr=True)
-class VideoThumbnailAJAXEditForm(AJAXAddForm, VideoThumbnailEditForm):
-    """Video thumbnail selection form, JSON renderer"""
-
     def get_ajax_output(self, changes):
         translate = self.request.localizer.translate
         if changes: