[#8024] ticket:872 Cleanup
diff --git a/Allura/allura/controllers/site_admin.py b/Allura/allura/controllers/site_admin.py
index 878e9aa..0faebdf 100644
--- a/Allura/allura/controllers/site_admin.py
+++ b/Allura/allura/controllers/site_admin.py
@@ -431,11 +431,6 @@
note = M.notification.SiteNotification.query.get(_id=bson.ObjectId(id))
return SiteNotificationController(note=note), remainder
- def _check_security(self):
- with h.push_context(config.get('site_admin_project', 'allura'),
- neighborhood=config.get('site_admin_project_nbhd', 'Projects')):
- require_access(c.project, 'admin')
-
@expose('jinja:allura:templates/site_admin_site_notifications_list.html')
@with_trailing_slash
def index(self, page=0, limit=25):
@@ -455,13 +450,15 @@
'limit': limit
}
- @expose('jinja:allura:templates/site_admin_site_notifications_new.html')
+ @expose('jinja:allura:templates/site_admin_site_notifications_create_update.html')
@without_trailing_slash
def new(self, **kw):
"""Render the New SiteNotification form"""
return dict(
form_errors=c.form_errors or {},
form_values=c.form_values or {},
+ form_title='New Site Notification',
+ form_action='create'
)
@expose()
@@ -476,12 +473,14 @@
ThreadLocalORMSession().flush_all()
redirect('../site_notifications')
- @expose('jinja:allura:templates/site_admin_site_notifications_edit.html')
- def edit(self):
+ @expose('jinja:allura:templates/site_admin_site_notifications_create_update.html')
+ def edit(self, **kw):
if c.form_values:
return dict(
form_errors=c.form_errors or {},
form_values=c.form_values or {},
+ form_title='Edit Site Notification',
+ form_action='update'
)
form_value = {}
form_value['active'] = str(self.note.active)
@@ -491,7 +490,9 @@
form_value['page_regex'] = self.note.page_regex if self.note.page_regex is not None else ''
form_value['page_tool_type'] = self.note.page_tool_type if self.note.page_tool_type is not None else ''
return dict(form_errors={},
- form_values=form_value)
+ form_values=form_value,
+ form_title='Edit Site Notification',
+ form_action='update')
@expose()
@require_post()
@@ -507,6 +508,7 @@
redirect('..')
@expose()
+ @require_post()
def delete(self):
self.note.delete()
ThreadLocalORMSession().flush_all()
@@ -758,10 +760,3 @@
def update_sidebar_menu(self, links):
links.append(SitemapEntry('Stats', '/nf/admin/stats',
ui_icon=g.icons['stats']))
-
-
-class SNEditC(object):
- @expose()
- @with_trailing_slash
- def _default(self, *args, **kwargs):
- redirect('/')
diff --git a/Allura/allura/lib/validators.py b/Allura/allura/lib/validators.py
index 1f2bf6a..e0e8e06 100644
--- a/Allura/allura/lib/validators.py
+++ b/Allura/allura/lib/validators.py
@@ -309,7 +309,7 @@
class CreateSiteNotificationSchema(fe.Schema):
active = fev.StringBool()
impressions = fev.Int(not_empty=True)
- content = fev.NotEmpty(messages=dict(empty='Please enter a value'))
+ content = fev.UnicodeString(not_empty=True)
user_role = fev.FancyValidator(not_empty=False, if_empty=None)
page_regex = fev.FancyValidator(not_empty=False, if_empty=None)
page_tool_type = fev.FancyValidator(not_empty=False, if_empty=None)
diff --git a/Allura/allura/templates/site_admin_site_notifications_new.html b/Allura/allura/templates/site_admin_site_notifications_create_update.html
similarity index 97%
rename from Allura/allura/templates/site_admin_site_notifications_new.html
rename to Allura/allura/templates/site_admin_site_notifications_create_update.html
index 8123d97..f9ba0ed 100644
--- a/Allura/allura/templates/site_admin_site_notifications_new.html
+++ b/Allura/allura/templates/site_admin_site_notifications_create_update.html
@@ -63,8 +63,8 @@
{% endmacro %}
{% block content %}
-<h2>New Site Notification</h2>
-<form method="POST" action="create" id="newnote">
+<h2>{{ form_title }}</h2>
+<form method="POST" action="{{ form_action }}">
<div>
<label>Active</label>
<div class="input">
diff --git a/Allura/allura/templates/site_admin_site_notifications_edit.html b/Allura/allura/templates/site_admin_site_notifications_edit.html
deleted file mode 100644
index 07dc916..0000000
--- a/Allura/allura/templates/site_admin_site_notifications_edit.html
+++ /dev/null
@@ -1,118 +0,0 @@
-{#-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
--#}
-{% set page="task_manager" %}
-{% set sidebar_rel = '../' %}
-{% extends 'allura:templates/site_admin.html' %}
-
-{% block extra_css %}
-<style>
- form {
- margin: 1em;
- }
- form > div {
- margin-bottom: 1em;
- }
- form > div > *{
- display: inline-block;
- vertical-align: top;
- }
- form > div input,
- form > div textarea,
- form > div select,
- form > .input {
- display: block;
- width: 300px;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- }
- form > div label {
- width: 100px;
- }
- .error {
- width: 300px;
- background: none;
- border: none;
- color: #f00;
- margin: 0;
- padding: 0 0 0 .8em;
- }
-</style>
-{% endblock %}
-
-{% macro error(field) %}
- {% if form_errors.get(field) %}
- <span class="error">{{form_errors.get(field)}}</span>
- {% endif %}
-{% endmacro %}
-
-{% block content %}
-<h2>Edit Site Notification</h2>
-<form method="POST" action="update" id="editnote">
- <div>
- <label>Active</label>
- <div class="input">
- <select name="active">
- <option value="False">No</option>
- <option value="True" {%- if form_values.get('active') == 'True' -%}selected{%- endif -%}>Yes</option>
- </select>
- </div>
- {{error('active')}}
- </div>
- <div>
- <label>Impressions</label>
- <div class="input">
- <input name="impressions" value="{{form_values.get('impressions', '0')}}" />
- </div>
- {{error('impressions')}}
- </div>
- <div>
- <label>Content</label>
- <div class="input">
- <textarea name="content" rows="4">{{form_values.get('content', '')}}</textarea>
- </div>
- {{error('content')}}
- </div>
- <div>
- <label>User Role</label>
- <div class="input">
- <input name="user_role" value="{{form_values.get('user_role', '')}}" />
- </div>
- {{error('user_role')}}
- </div>
- <div>
- <label>Page Regex</label>
- <div class="input">
- <input name="page_regex" value="{{form_values.get('page_regex', '')}}" />
- </div>
- {{error('page_regex')}}
- </div>
- <div>
- <label>Page Type</label>
- <div class="input">
- <input name="page_tool_type" value="{{form_values.get('page_tool_type', '')}}" />
- </div>
- {{error('page_tool_type')}}
- </div>
-
-
- <input type="submit" value="Save"/><br/>
- {{lib.csrf_token()}}
-</form>
-{% endblock %}
diff --git a/Allura/allura/templates/site_admin_site_notifications_list.html b/Allura/allura/templates/site_admin_site_notifications_list.html
index f400a96..e795c94 100644
--- a/Allura/allura/templates/site_admin_site_notifications_list.html
+++ b/Allura/allura/templates/site_admin_site_notifications_list.html
@@ -45,8 +45,8 @@
<td><small class="tooltip" title="{{ note.page_regex }}">{{ note.page_regex|truncate(20) if note.page_regex}}</small></td>
<td><small>{{ note.page_tool_type if note.page_tool_type}}</small></td>
<td>
- <a href="{{ note._id }}/edit">Edit</a><br>
- <a href="{{ note._id }}/delete">Delete</a>
+ <a href="{{ note._id }}/edit">Edit</a><br>
+ <a href="{{ note._id }}/delete" class="sn_delete">Delete</a>
</td>
</tr>
{% endfor %}
@@ -69,19 +69,22 @@
{% block extra_js %}
<script>
- $(document).ready(function() {
- $(".tooltip").tooltipster({
- animation: 'fade',
- delay: 200,
- theme: 'tooltipster-light',
- trigger: 'hover',
- iconCloning: false
- }).focus(function () {
- $(this).tooltipster('show');
- }).blur(function () {
- $(this).tooltipster('hide');
+ $(document).ready(function() {
+ $(".sn_delete").on("click", function(e){
+ e.preventDefault();
+ var elem = this;
+ $.ajax({
+ type: 'POST',
+ url: elem.href,
+ data: {
+ '_session_id': $.cookie('_session_id')
+ },
+ success: function(data) {
+ $(elem).parent().parent().remove();
+ }
+ });
});
- });
+ });
</script>
{% endblock %}
diff --git a/Allura/allura/tests/functional/test_site_admin.py b/Allura/allura/tests/functional/test_site_admin.py
index c8f98cc..41aa8d3 100644
--- a/Allura/allura/tests/functional/test_site_admin.py
+++ b/Allura/allura/tests/functional/test_site_admin.py
@@ -317,7 +317,7 @@
count = M.notification.SiteNotification.query.find().count()
- self.app.get('/nf/admin/site_notifications/{}/delete'.format(note._id))
+ self.app.post('/nf/admin/site_notifications/{}/delete'.format(note._id))
assert M.notification.SiteNotification.query.find().count() == count -1
assert M.notification.SiteNotification.query.get(_id=bson.ObjectId(note._id)) is None