74 |
74 |
75 |
75 |
76 class ImagemapAreasTable(BaseTable): |
76 class ImagemapAreasTable(BaseTable): |
77 """Image map areas table""" |
77 """Image map areas table""" |
78 |
78 |
|
79 prefix = 'imagemaps' |
|
80 |
79 hide_header = True |
81 hide_header = True |
80 cssClasses = {'table': 'table table-bordered table-striped table-hover table-tight'} |
82 cssClasses = {'table': 'table table-bordered table-striped table-hover table-tight'} |
81 |
83 |
82 def __init__(self, context, request): |
84 def __init__(self, context, request): |
83 super(ImagemapAreasTable, self).__init__(context, request) |
85 super(ImagemapAreasTable, self).__init__(context, request) |
85 alsoProvides(self, IObjectData) |
87 alsoProvides(self, IObjectData) |
86 |
88 |
87 @property |
89 @property |
88 def data_attributes(self): |
90 def data_attributes(self): |
89 attributes = super(ImagemapAreasTable, self).data_attributes |
91 attributes = super(ImagemapAreasTable, self).data_attributes |
90 attributes['table'] = {'data-ams-location': absolute_url(self.context, self.request), |
92 attributes['table'] = { |
91 'data-ams-datatable-sort': 'false', |
93 'data-ams-location': absolute_url(self.context, self.request), |
92 'data-ams-datatable-pagination': 'false'} |
94 'data-ams-datatable-sort': 'false', |
|
95 'data-ams-datatable-pagination': 'false' |
|
96 } |
93 return attributes |
97 return attributes |
94 |
98 |
95 @reify |
99 @reify |
96 def values(self): |
100 def values(self): |
97 return list(super(ImagemapAreasTable, self).values) |
101 return list(super(ImagemapAreasTable, self).values) |
162 def delete_imagemap_area(request): |
166 def delete_imagemap_area(request): |
163 """Delete image map area""" |
167 """Delete image map area""" |
164 translate = request.localizer.translate |
168 translate = request.localizer.translate |
165 name = request.params.get('object_name') |
169 name = request.params.get('object_name') |
166 if not name: |
170 if not name: |
167 return {'status': 'message', |
171 return { |
168 'messagebox': {'status': 'error', |
172 'status': 'message', |
169 'content': translate(_("No provided object_name argument!"))}} |
173 'messagebox': { |
|
174 'status': 'error', |
|
175 'content': translate(_("No provided object_name argument!")) |
|
176 } |
|
177 } |
170 if '++' in name: |
178 if '++' in name: |
171 try: |
179 try: |
172 name = name.split('++', 2)[2] |
180 name = name.split('++', 2)[2] |
173 except IndexError: |
181 except IndexError: |
174 return {'status': 'message', |
182 return { |
175 'messagebox': {'status': 'error', |
183 'status': 'message', |
176 'content': translate(_("Bad query object_name parameter value!"))}} |
184 'messagebox': { |
|
185 'status': 'error', |
|
186 'content': translate(_("Bad query object_name parameter value!")) |
|
187 } |
|
188 } |
177 if name not in request.context.areas: |
189 if name not in request.context.areas: |
178 return {'status': 'message', |
190 return { |
179 'messagebox': {'status': 'error', |
191 'status': 'message', |
180 'content': translate(_("Given area name doesn't exist!"))}} |
192 'messagebox': { |
|
193 'status': 'error', |
|
194 'content': translate(_("Given area name doesn't exist!")) |
|
195 } |
|
196 } |
181 request.context.remove_area(name) |
197 request.context.remove_area(name) |
182 return {'status': 'success'} |
198 return {'status': 'success'} |