Add support for new options to plugin_config.html
[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               {% elif v.__class__.__name__ == 'ComplexList' -%}
72                 <table class="table table-striped">
73                 <tr><th>#</th><th>Name</th><th>Delete</th></tr>
74                 {% for line in value -%}
75                     {%- set basename = "%s %d-"|format(v.name, loop.index0) -%}
76                 <tr>
77                     <td>{{loop.index}}</td>
78                     <td>
79                       <input type="text" name="{{basename}}name"
80                         {%- if line.__class__.__name__ == 'list' -%}
81                           value="{{ line|join(' / ') }}"
82                         {%- else -%}
83                           value="{{ line }}"
84                         {%- endif -%}
85                       >
86                     </td>
87                     <td>
88                       <input type="checkbox" name="{{basename}}delete">
89                       <!-- Never cheked by default -->
90                     </td>
91                 </tr>
92                 {% endfor -%}
93                 </table>
94               {% elif v.__class__.__name__ == 'MappingList' -%}
95                 <table class="table table-striped">
96                 <tr><th>#</th><th>From</th><th>To</th><th>Delete</th></tr>
97                 {% for line in value -%}
98                     {%- set basename = "%s %d-"|format(v.name, loop.index0) -%}
99                 <tr>
100                     <td>{{loop.index}}</td>
101                     <td>
102                       <input type="text" name="{{basename}}from"
103                         {% if line[0].__class__.__name__ == 'list' -%}
104                           value="{{ line[0]|join(' / ') }}"
105                         {% else -%}
106                           value="{{ line[0] }}"
107                         {% endif -%}
108                       >
109                     </td>
110                     <td>
111                       <input type="text" name="{{basename}}to"
112                         {% if line[1].__class__.__name__ == 'list' -%}
113                           value="{{ line[1]|join(' / ') }}"
114                         {% else -%}
115                           value="{{ line[1] }}"
116                         {% endif -%}
117                       >
118                     </td>
119                     <td>
120                       <input type="checkbox" name="{{basename}}delete">
121                       <!-- Never cheked by default -->
122                     </td>
123                 </tr>
124                 {% endfor -%}
125                 </table>
126               {% else -%}
127                 {{ v.__class__.__name__ }}
128               {% endif -%}
129                 <span class="help-block">{{ v.description }}</span>
130               </div>
131             </div>
132             <hr>
133         {% endfor %}
134
135           <p>
136             <button id="submit" class="btn btn-primary" name="submit" type="submit" value="Submit">
137             Save
138             </button>
139             <a href="{{ back }}" class="btn btn-default" title="Back">Back</a>
140           </p>
141         </form>
142     </div>
143
144 {% endif %}
145 {% endblock %}