blob: c9a4d928187bf36328d8774d2854c41984ba1bea (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
{% for pair in resource.spec %}
{% assign name = pair[0] %}
{% assign spec = pair[1] %}
{% assign type = spec.type %}
<div class="property {{type}} {% if spec.hidden %}hidden{% endif %}">
<label for="{{name}}">{{name | capitalize}}</label>
{% if type == 'string' %}
<input
name="{{name}}" type="text" value="{{spec.value}}">
{% elsif type == 'text' %}
<textarea
name="{{name}}">{{spec.value}}</textarea>
{% elsif type == 'enum' %}
<select
name="{{name}}">
{% for option in spec.options %}
<option value="{{option}}" {% if option == spec.value %}selected{% endif %}>{{option | capitalize}}</option>
{% endfor %}
</select>
{% elsif type == 'video' %}
<div class="video group {% if spec.value.url %}loaded{% endif %}">
<input name="{{name}}[url]" type="text" value="{{spec.value.url}}" class="url" placeholder="Enter a video URL">
<input name="{{name}}[type]" type="hidden" value="{{spec.value.type}}" class="video-type" hidden>
<input name="{{name}}[token]" type="hidden" value="{{spec.value.token}}" class="video-token" hidden>
<label>Title</label>
<input name="{{name}}[title]" type="text" value="{{spec.value.title}}" class="video-title">
<label>Thumbnail</label>
<input name="{{name}}[thumb]" type="text" value="{{spec.value.thumb}}" class="video-thumb">
</div>
{% elsif type == 'image' %}
<div class="image group {% if spec.value.uri %}loaded{% endif %}">
<div class="fields">
<div class="add-image-button">
<input type="file" accept="image/*">
<button>+ Add image</button>
</div>
<input class="add-image-url" type="text" placeholder="+ Add URL">
</div>
<div class="image-element">
<input class="uri" type="hidden" name="{{name}}[uri]" value="{{spec.value.uri}}">
<textarea class="caption" name="{{name}}[caption]">{{spec.value.caption}}</textarea>
<img src="{{spec.value.uri}}" alt="{{spec.value.caption}}">
<button class="remove-image">x</button>
</div>
</div>
{% elsif type == 'captioned-image-list' %}
<div class="image-list group loaded">
<div class="fields">
<div class="add-image-button">
<input type="file" accept="image/*" multiple>
<button>+ Add images</button>
</div>
<input class="add-image-url" type="text" placeholder="+ Add URL">
</div>
<script type="text/html" id="captioned-image-template">
<li class="image-element">
<input class="uri" type="hidden" name="{{name}}[][uri]" value="">
<textarea class="caption" name="{{name}}[][caption]"></textarea>
<img alt="{{image.caption}}">
<button class="remove-image">x</button>
</li>
</script>
<ol>
{% for image in spec.value %}
<li class="image-element">
<input type="hidden" name="{{name}}[{{forloop.index0}}][uri]" value="{{image.uri}}">
<textarea class="caption" name="{{name}}[{{forloop.index0}}][caption]">{{image.caption}}</textarea>
<img src="{{image.uri}}" alt="{{image.caption}}">
<button class="remove-image">x</button>
</li>
{% endfor %}
</ol>
</div>
{% elsif type == 'meta' %}
<input class="hidden" type="hidden" name="{{name}}" value="{{spec.value}}">
{% else %}
<p><pre style="color: red">Admin template doesn't support '{{type}}' properties!</pre></p>
{% endif %}
</div>
{% endfor %}
|