30 |
30 |
31 # import packages |
31 # import packages |
32 from pyams_form.form import AJAXEditForm |
32 from pyams_form.form import AJAXEditForm |
33 from pyams_i18n.column import I18nAttrColumn |
33 from pyams_i18n.column import I18nAttrColumn |
34 from pyams_pagelet.pagelet import pagelet_config |
34 from pyams_pagelet.pagelet import pagelet_config |
35 from pyams_skin.container import ContainerView |
35 from pyams_skin.container import ContainerView, delete_container_element |
36 from pyams_skin.page import DefaultPageHeaderAdapter |
36 from pyams_skin.page import DefaultPageHeaderAdapter |
37 from pyams_skin.table import DefaultElementEditorAdapter, BaseTable, I18nColumn, TrashColumn |
37 from pyams_skin.table import DefaultElementEditorAdapter, BaseTable, I18nColumn, TrashColumn |
38 from pyams_skin.viewlet.menu import MenuItem |
38 from pyams_skin.viewlet.menu import MenuItem |
39 from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter |
39 from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter |
40 from pyams_utils.registry import query_utility |
40 from pyams_utils.registry import query_utility |
86 |
86 |
87 @property |
87 @property |
88 def data_attributes(self): |
88 def data_attributes(self): |
89 manager = query_utility(IMapManager) |
89 manager = query_utility(IMapManager) |
90 attributes = super(MapManagerLayersTable, self).data_attributes |
90 attributes = super(MapManagerLayersTable, self).data_attributes |
91 table_attrs = {'data-ams-location': absolute_url(manager, self.request), |
91 attributes.setdefault('table', {}).update({ |
92 'data-ams-delete-target': 'delete-layer.json'} |
92 'data-ams-location': absolute_url(manager, self.request) |
93 if 'table' in attributes: |
93 }) |
94 attributes['table'].update(table_attrs) |
|
95 else: |
|
96 attributes['table'] = table_attrs |
|
97 return attributes |
94 return attributes |
98 |
95 |
99 |
96 |
100 @adapter_config(name='name', context=(Interface, IAdminLayer, MapManagerLayersTable), provides=IColumn) |
97 @adapter_config(name='name', context=(Interface, IAdminLayer, MapManagerLayersTable), provides=IColumn) |
101 class MapManagerLayersNameColumn(I18nColumn, GetAttrColumn): |
98 class MapManagerLayersNameColumn(I18nColumn, GetAttrColumn): |
134 |
131 |
135 icon_hint = _("Delete layer") |
132 icon_hint = _("Delete layer") |
136 permission = MANAGE_SYSTEM_PERMISSION |
133 permission = MANAGE_SYSTEM_PERMISSION |
137 |
134 |
138 |
135 |
|
136 @view_config(name='delete-element.json', context=IMapManager, request_type=IPyAMSLayer, |
|
137 permission=MANAGE_SYSTEM_PERMISSION, renderer='json', xhr=True) |
|
138 def delete_map_manager_layer(request): |
|
139 """Delete layer from map manager""" |
|
140 return delete_container_element(request, ignore_permission=True) |
|
141 |
|
142 |
139 @adapter_config(context=(ISite, IAdminLayer, MapManagerLayersTable), provides=IValues) |
143 @adapter_config(context=(ISite, IAdminLayer, MapManagerLayersTable), provides=IValues) |
140 class MapManagerValuesAdapter(ContextRequestViewAdapter): |
144 class MapManagerValuesAdapter(ContextRequestViewAdapter): |
141 """Map manager layers table values adapter""" |
145 """Map manager layers table values adapter""" |
142 |
146 |
143 @property |
147 @property |
180 |
184 |
181 @pagelet_config(name='configuration.html', context=IMapManager, layer=IPyAMSLayer, permission=MANAGE_SYSTEM_PERMISSION) |
185 @pagelet_config(name='configuration.html', context=IMapManager, layer=IPyAMSLayer, permission=MANAGE_SYSTEM_PERMISSION) |
182 class MapManagerConfigurationEditForm(AdminDialogEditForm): |
186 class MapManagerConfigurationEditForm(AdminDialogEditForm): |
183 """Map manager edit form""" |
187 """Map manager edit form""" |
184 |
188 |
|
189 prefix = 'map_configuration.' |
|
190 |
185 title = _("Maps manager") |
191 title = _("Maps manager") |
186 legend = _("Default map configuration") |
192 legend = _("Default map configuration") |
187 icon_css_class = 'fa fa-fw fa-map-marker' |
193 icon_css_class = 'fa fa-fw fa-map-marker' |
188 dialog_class = 'modal-large' |
194 dialog_class = 'modal-large' |
189 |
195 |
198 |
204 |
199 @view_config(name='configuration.json', context=IMapManager, request_type=IPyAMSLayer, |
205 @view_config(name='configuration.json', context=IMapManager, request_type=IPyAMSLayer, |
200 permission=MANAGE_SYSTEM_PERMISSION, renderer='json', xhr=True) |
206 permission=MANAGE_SYSTEM_PERMISSION, renderer='json', xhr=True) |
201 class MapManagerConfigurationAJAXEditForm(AJAXEditForm, MapManagerConfigurationEditForm): |
207 class MapManagerConfigurationAJAXEditForm(AJAXEditForm, MapManagerConfigurationEditForm): |
202 """Map manager edit form, JSON renderer""" |
208 """Map manager edit form, JSON renderer""" |
203 |
|
204 |
|
205 @view_config(name='delete-layer.json', context=IMapManager, request_type=IPyAMSLayer, |
|
206 permission=MANAGE_SYSTEM_PERMISSION, renderer='json', xhr=True) |
|
207 def delete_map_manager_layer(request): |
|
208 """Delete layer from map manager""" |
|
209 translate = request.localizer.translate |
|
210 name = request.params.get('object_name') |
|
211 if not name: |
|
212 return {'status': 'message', |
|
213 'messagebox': {'status': 'error', |
|
214 'content': translate(_("No provided object_name argument!"))}} |
|
215 if name not in request.context: |
|
216 return {'status': 'message', |
|
217 'messagebox': {'status': 'error', |
|
218 'content': translate(_("Given layer name doesn't exist!"))}} |
|
219 del request.context[name] |
|
220 return {'status': 'success'} |
|
221 |
209 |
222 |
210 |
223 @view_config(name='get-map-configuration.json', context=Interface, request_type=IPyAMSLayer, |
211 @view_config(name='get-map-configuration.json', context=Interface, request_type=IPyAMSLayer, |
224 renderer='json', xhr=True) |
212 renderer='json', xhr=True) |
225 def get_map_configuration(request): |
213 def get_map_configuration(request): |