src/pyams_content/features/redirect/zmi/container.py
changeset 869 ae7f0471e337
parent 864 209432f09f9f
child 873 5f40601f9cb0
equal deleted inserted replaced
868:1fcd5c845d1d 869:ae7f0471e337
     7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
     7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
     8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
     9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
    10 # FOR A PARTICULAR PURPOSE.
    10 # FOR A PARTICULAR PURPOSE.
    11 #
    11 #
    12 from pyams_form.form import ajax_config, AJAXAddForm
       
    13 from pyams_form.interfaces.form import IWidgetsSuffixViewletsManager
       
    14 from pyams_form.schema import CloseButton
       
    15 from pyams_skin.help import ContentHelp
       
    16 from pyams_skin.interfaces.viewlet import IToolbarViewletManager
       
    17 from pyams_skin.skin import apply_skin
       
    18 from pyams_skin.viewlet.toolbar import ToolbarAction
       
    19 from pyams_template.template import template_config
       
    20 from pyams_utils.request import copy_request
       
    21 from pyams_zmi.form import AdminDialogAddForm
       
    22 
    12 
    23 __docformat__ = 'restructuredtext'
    13 __docformat__ = 'restructuredtext'
    24 
    14 
    25 
    15 
    26 # import standard library
    16 # import standard library
    27 import json
    17 import json
    28 
    18 
    29 # import interfaces
    19 # import interfaces
    30 from pyams_content.features.redirect.interfaces import IRedirectionManagerTarget, IRedirectionManager
    20 from pyams_content.features.redirect.interfaces import IRedirectionManagerTarget, IRedirectionManager
    31 from pyams_content.interfaces import MANAGE_SITE_ROOT_PERMISSION
    21 from pyams_content.interfaces import MANAGE_SITE_ROOT_PERMISSION
       
    22 from pyams_form.interfaces.form import IWidgetsSuffixViewletsManager
    32 from pyams_i18n.interfaces import II18n
    23 from pyams_i18n.interfaces import II18n
    33 from pyams_sequence.interfaces import ISequentialIdInfo
    24 from pyams_sequence.interfaces import ISequentialIdInfo
    34 from pyams_skin.interfaces import IPageHeader, IUserSkinnable, IContentHelp
    25 from pyams_skin.interfaces import IPageHeader, IUserSkinnable, IContentHelp
       
    26 from pyams_skin.interfaces.viewlet import IToolbarViewletManager
    35 from pyams_skin.layer import IPyAMSLayer
    27 from pyams_skin.layer import IPyAMSLayer
    36 from pyams_zmi.interfaces.menu import ISiteManagementMenu
    28 from pyams_zmi.interfaces.menu import ISiteManagementMenu
    37 from pyams_zmi.layer import IAdminLayer
    29 from pyams_zmi.layer import IAdminLayer
    38 from z3c.table.interfaces import IValues, IColumn
    30 from z3c.table.interfaces import IValues, IColumn
    39 
    31 
    40 # import packages
    32 # import packages
    41 from pyams_content.skin import pyams_content
    33 from pyams_content.skin import pyams_content
       
    34 from pyams_form.form import AJAXAddForm
       
    35 from pyams_form.schema import CloseButton
    42 from pyams_pagelet.pagelet import pagelet_config
    36 from pyams_pagelet.pagelet import pagelet_config
       
    37 from pyams_skin.help import ContentHelp
    43 from pyams_skin.page import DefaultPageHeaderAdapter
    38 from pyams_skin.page import DefaultPageHeaderAdapter
       
    39 from pyams_skin.skin import apply_skin
    44 from pyams_skin.table import BaseTable, SorterColumn, VisibilitySwitcherColumn, TrashColumn, I18nColumn
    40 from pyams_skin.table import BaseTable, SorterColumn, VisibilitySwitcherColumn, TrashColumn, I18nColumn
    45 from pyams_skin.viewlet.menu import MenuItem
    41 from pyams_skin.viewlet.menu import MenuItem
       
    42 from pyams_skin.viewlet.toolbar import ToolbarAction
       
    43 from pyams_template.template import template_config
    46 from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter
    44 from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter
    47 from pyams_utils.fanstatic import get_resource_path
    45 from pyams_utils.fanstatic import get_resource_path
       
    46 from pyams_utils.request import copy_request
    48 from pyams_utils.url import absolute_url
    47 from pyams_utils.url import absolute_url
    49 from pyams_viewlet.viewlet import viewlet_config, Viewlet
    48 from pyams_viewlet.viewlet import viewlet_config, Viewlet
       
    49 from pyams_zmi.form import AdminDialogAddForm
    50 from pyams_zmi.view import ContainerAdminView
    50 from pyams_zmi.view import ContainerAdminView
    51 from pyramid.decorator import reify
    51 from pyramid.decorator import reify
    52 from pyramid.exceptions import NotFound
    52 from pyramid.exceptions import NotFound
    53 from pyramid.view import view_config
    53 from pyramid.view import view_config
    54 from z3c.form import field, button
    54 from z3c.form import field, button
   360     def get_ajax_output(self, changes):
   360     def get_ajax_output(self, changes):
   361         message = []
   361         message = []
   362         translate = self.request.localizer.translate
   362         translate = self.request.localizer.translate
   363         for rule, source_url, target_url in changes:
   363         for rule, source_url, target_url in changes:
   364             if not message:
   364             if not message:
   365                 message.append('{:<40}  {:<40}  =>  {:<40}'.format(translate(_("URL pattern")),
   365                 message.append('{:<40} | {:<40} | {:<40}'.format(translate(_("Input URL")),
   366                                                                    translate(_("Input URL")),
   366                                                                  translate(_("URL pattern")),
   367                                                                    translate(_("Output URL"))))
   367                                                                  translate(_("Output URL"))))
   368                 message.append('{:<40}  {:<40}  =>  {:<40}'.format('-' * 40, '-' * 40, '-' * 40))
   368                 message.append('{:<40}-|-{:<40}-|-{:<40}'.format('-' * 40, '-' * 40, '-' * 40))
   369             message.append('{:<40}  {:<40}  =>  {:<40}'.format(rule.url_pattern, source_url, target_url))
   369             message.append('{:<40} | {:<40} | {:<40}'.format(source_url, rule.url_pattern, target_url))
   370         if not message:
   370         if not message:
   371             message.append(translate(_("No matching rule!")))
   371             message.append(translate(_("No matching rule!")))
   372         return {
   372         return {
   373             'status': 'success',
   373             'status': 'success',
   374             'content': {'html': '\n'.join(message)},
   374             'content': {'html': '\n'.join(message)},