blob: 142463df4d4ba14552c9b0647768154a22a93f80 [file] [log] [blame]
# 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.
import ew as ew_core
import ew.jinja2_ew as ew
from pylons import tmpl_context as c
from allura.lib import validators as V
from allura.lib.widgets import form_fields as ffw
from allura.lib.widgets.forms import CsrfForm
from allura import model as M
from .form_fields import SubmitButton
# Discussion forms
class _SubscriptionTable(ew.TableField):
class hidden_fields(ew_core.NameList):
subscription_id = ew.HiddenField(validator=V.Ming(M.Mailbox))
tool_id = ew.HiddenField()
project_id = ew.HiddenField()
topic = ew.HiddenField()
artifact_index_id = ew.HiddenField()
class fields(ew_core.NameList):
project_name = ffw.DisplayOnlyField(
label='Project', show_label=True, with_hidden_input=False)
tool = ffw.DisplayOnlyField(
label='Tool', show_label=True, with_hidden_input=False)
artifact_title = ew.LinkField(
label='Item(s)', show_label=True, plaintext_if_no_href=True)
# unsubscribe = SubmitButton()
subscribed = ew.Checkbox(suppress_label=True)
class SubscriptionForm(CsrfForm):
defaults = dict(
ew.SimpleForm.defaults,
id='user-subs-form',
submit_text='Save')
template = 'jinja:allura:templates/widgets/user_subs_form.html'
@property
def fields(self):
return [
_SubscriptionTable(name='subscriptions'),
ew.SingleSelectField(
name='email_format',
show_label=False,
options=[
ew.Option(py_value='plain', label='Plain Text'),
ew.Option(py_value='both', label='HTML')]),
]
class SubscribeForm(ew.SimpleForm):
template = 'jinja:allura:templates/widgets/subscribe.html'
defaults = dict(
ew.SimpleForm.defaults,
thing='tool',
style='icon',
value=None)
class fields(ew_core.NameList):
subscribe = SubmitButton()
unsubscribe = SubmitButton()
shortname = ew.HiddenField()
def from_python(self, value, state):
return value
def resources(self):
for r in super(SubscribeForm, self).resources():
yield r
if not c.user.is_anonymous():
yield ew.JSLink('js/subscriptions.js', location='body_js_tail') # location, to force after react js files