summaryrefslogtreecommitdiffstats
path: root/templates/base/footer.tmpl
blob: fcf2f91b8c00cb193aedf12c66e8f0b33a7cc3e7 (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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
{{/*
<html>
<body>
	<div>
*/}}

	{{template "custom/body_inner_post" .}}

	</div>

	{{template "custom/body_outer_post" .}}

	{{template "base/footer_content" .}}

	<script src="{{StaticUrlPrefix}}/js/jquery.js?v={{MD5 AppVer}}"></script>
{{if .RequireSimpleMDE}}
	<script src="{{StaticUrlPrefix}}/vendor/plugins/simplemde/simplemde.min.js"></script>
	<script src="{{StaticUrlPrefix}}/vendor/plugins/codemirror/addon/mode/loadmode.js"></script>
	<script src="{{StaticUrlPrefix}}/vendor/plugins/codemirror/mode/meta.js"></script>
	<script>
		CodeMirror.modeURL =  "{{StaticUrlPrefix}}/vendor/plugins/codemirror/mode/%N/%N.js";
	</script>
{{end}}

<!-- Third-party libraries -->
{{if .RequireMinicolors}}
	<script src="{{StaticUrlPrefix}}/vendor/plugins/jquery.minicolors/jquery.minicolors.min.js"></script>
{{end}}
{{if .RequireDatetimepicker}}
	<script src="{{StaticUrlPrefix}}/vendor/plugins/jquery.datetimepicker/jquery.datetimepicker.js"></script>
{{end}}
{{if .RequireDropzone}}
	<script src="{{StaticUrlPrefix}}/vendor/plugins/dropzone/dropzone.js"></script>
{{end}}
{{if .RequireU2F}}
	<script src="{{StaticUrlPrefix}}/vendor/plugins/u2f/index.js"></script>
{{end}}
{{if .EnableCaptcha}}
	{{if eq .CaptchaType "recaptcha"}}
		<script src='{{ URLJoin .RecaptchaURL "api.js"}}' async></script>
	{{end}}
{{end}}
{{if .RequireTribute}}
	<script src="{{StaticUrlPrefix}}/vendor/plugins/tribute/tribute.min.js"></script>
	<script>
		var issuesTribute = new Tribute({
			values: [
			{{ range .Assignees }}
			{key: '{{.Name}} {{.FullName}}', value: '{{.Name}}',
			name: '{{.Name}}', fullname: '{{.FullName}}', avatar: '{{.RelAvatarLink}}'},
			{{ end }}
			],
			noMatchTemplate: function () { return null },
			menuItemTemplate: function (item) {
				var user = item.original;
				var item = $('<div/>')
				item.append($('<img/>', {'src': user.avatar}))
				item.append($('<span/>', {'class': 'name'}).text(user.name))
				if (user.fullname && user.fullname != '') {
					item.append($('<span/>', {'class': 'fullname'}).text(user.fullname))
				}
				return item.html();
			}
		});
		var content = document.getElementById('content');
		if (content != null) {
			issuesTribute.attach(content);
		}
	</script>
	<script>
		var emojiTribute = new Tribute({
			collection: [{
				trigger: ':',
				requireLeadingSpace: true,
				values: function (text, cb) {
					var array = emojify.emojiNames;
					var data = [];
					for(var j=0; j<array.length; j++) {
						if(array[j].indexOf(text) !== -1) {
							data.push(array[j]);
							if(data.length > 5) {
								break;
							}
						}
					}
					cb(data);
				},
				lookup: function (item) {
					return item;
				},
				selectTemplate: function (item) {
					if (typeof item === 'undefined') return null;
					return ':' + item.original + ':';
				},
				menuItemTemplate: function (item) {
					return '<img class="emoji" src="{{StaticUrlPrefix}}/vendor/plugins/emojify/images/' + item.original + '.png"/>' + item.original;
				}
			}]
		});
		var emojiInputs = document.querySelectorAll('.emoji-input');
		if (emojiInputs.length > 0) {
			emojiTribute.attach(emojiInputs);
		}
		var content = document.getElementById('content');
		if (content != null) {
			emojiTribute.attach(document.getElementById('content'));
		}
	</script>
{{end}}
	<script src="{{StaticUrlPrefix}}/vendor/plugins/emojify/emojify.custom.js"></script>
	<script src="{{StaticUrlPrefix}}/fomantic/semantic.min.js?v={{MD5 AppVer}}"></script>
	<script src="{{StaticUrlPrefix}}/js/index.js?v={{MD5 AppVer}}"></script>
{{template "custom/footer" .}}
</body>
</html>