Refactor plugin configuration
[cascardo/ipsilon.git] / templates / admin / plugin_config.html
1 {% extends "master-admin.html" %}
2 {% block main %}
3 {% if user.is_admin %}
4
5     <div class = "row">
6         <div class="col-md-3 col-sm-3 col-xs-6">
7             <h2>{{ title }}</h2>
8         </div>
9         <div class="col-md-3 col-sm-3 col-xs-6" role="alert">
10           {% if message %}
11             <div class="alert alert-{{message_type}}">
12                 <p>{{ message }}</p>
13             </div>
14           {% endif %}
15         </div>
16     </div>
17
18     <hr>
19
20     <div id="options">
21         <form class="form-horizontal" role="form" id="{{ name }}" action="{{ action }}" method="post" enctype="application/x-www-form-urlencoded">
22         {% for k, v in config.iteritems() %}
23             <div class="form-group">
24               <label class="col-sm-2" for="{{ v.name }}">{{ v.name }}:</label>
25               <div class="col-sm-10">
26               {%- set value = v.get_value() -%}
27               {% if v.__class__.__name__ in ['String', 'Template'] -%}
28                 <input type="text" class="form-control" name="{{ v.name }}"
29                   {%- if value %}
30                     value="{{ value }}"
31                   {%- endif -%}
32                 >
33               {% elif v.__class__.__name__ == 'List' -%}
34                 <textarea class="form-control" name="{{ v.name }}">
35                   {%- if value %}
36                     {{- value|join('\n') -}}
37                   {%- endif -%}
38                 </textarea>
39               {% elif v.__class__.__name__ == 'Choice' -%}
40                 {% set entries = v.get_allowed() -%}
41                 <div class="row">
42                 {% for e in entries -%}
43                   <div class="col-md-4">
44                     <input type="checkbox" name="{{ v.name }}_{{ e }}"
45                       {%- if value and e in value %}
46                         checked="true"
47                       {%- endif -%}
48                     >&nbsp;{{ e }}
49                   </div>
50                 {% endfor %}
51                 </div>
52               {% elif v.__class__.__name__ == 'Pick' -%}
53                 {% set entries = v.get_allowed() -%}
54                 <div class="row">
55                 {% for e in entries -%}
56                   <div class="col-md-4">
57                     <input type="radio" name="{{ v.name }}" value="{{ e }}"
58                       {%- if e == value %}
59                         checked="true"
60                       {%- endif -%}
61                     >&nbsp;{{ e }}
62                   </div>
63                 {% endfor %}
64                 </div>
65               {% elif v.__class__.__name__ == 'Condition' -%}
66                 <input type="checkbox" name="{{ v.name }}"
67                   {%- if value %}
68                     checked="true"
69                   {% endif -%}
70                 >
71               {% else -%}
72                 {{ v.__class__.__name__ }}
73               {% endif -%}
74                 <span class="help-block">{{ v.description }}</span>
75               </div>
76             </div>
77             <hr>
78         {% endfor %}
79
80           <p>
81             <button id="submit" class="btn btn-primary" name="submit" type="submit" value="Submit">
82             Save
83             </button>
84             <a href="{{ back }}" class="btn btn-default" title="Back">Back</a>
85           </p>
86         </form>
87     </div>
88
89 {% endif %}
90 {% endblock %}