%!
import splunk.models.base
from splunk.appserver.mrsparkle.lib import util
%>
##
## XSS protection
##
<%def name="csrf_hidden_input()">
%def>
##
## core HTML form widgets
##
<%def name="textbox(name, model=None, value=None, disabled=False, size=40, **html_attrs)">
%def>
<%def name="textarea(name, model=None, value=None, disabled=False, rows=5, cols=60, **html_attrs)">
<%
if value != None:
input_value = value
elif isinstance(model, splunk.models.base.SplunkAppObjModel) and hasattr(model, name) and getattr(model, name) != None:
input_value = getattr(model, name)
else:
input_value = ''
%>
\
%def>
<%def name="checkbox(name, model=None, value=None, disabled=False, **html_attrs)">
%def>
<%def name="radioset(name, model=None, value=None, disabled=False, options=[], orientation='H', id_offset=0, id=None, **html_attrs)">
<%
# try to lookup model value if nothing is explicitly set
if value == None and model and hasattr(model, name):
value = getattr(model, name)
%>
% for i, item in enumerate(options, id_offset):
<%
if isinstance(item, tuple) or isinstance(item, list):
option_value = item[0]
label = item[1]
else:
option_value = item
label = item
%>
\
% endfor
%def>
<%def name="select(name, model=None, value=None, disabled=False, options=[], **html_attrs)">
<%
# try to lookup model value if nothing is explicitly set
if value == None and model and hasattr(model, name):
value = getattr(model, name)
%>
%def>
<%def name="accumulator(name, model=None, values=[], disabled=False, options=[], size='10', available_label='Available fields', selected_label='Selected fields', **html_attrs)">
<%
## build a plain list of values (not labels) to use for quick
## membership testing
if len(values) > 0 and (isinstance(values[0], list) or isinstance(values[0], tuple)):
raw_values = [v[0] for v in values]
else:
raw_values = values
%>
${available_label|h}
% for option in options:
<%
if isinstance(option, list) or isinstance(option, tuple):
option_value = option[0]
option_label = option[1]
is_enabled = True
if len(option) > 2 and option[2] != None:
is_enabled = option[2]
else:
option_value = option
option_label = option
is_enabled = True
is_chosen = (option_value in raw_values)
css_class = []
if not is_enabled:
css_class.append('disabled')
if is_chosen:
css_class.append('chosen')
%>
${option_label | h}
\
% endfor
${selected_label|h}
% for option in values:
<%
if isinstance(option, list) or isinstance(option, tuple):
option_value = option[0]
option_label = option[1]
is_enabled = True
if len(option) > 2 and option[2] != None:
is_enabled = option[2]
else:
option_value = option
option_label = option
is_enabled = True
%>
${option_label | h}
% endfor
%def>
##
## accumulator2 is an alternate version that uses