aboutsummaryrefslogtreecommitdiff
path: root/app/templates/packages/create_edit.html
blob: 24a23b6330d833e2bfb38fffbcb7f8e164e5d603 (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
{% extends "base.html" %}

{% block title %}
	{{ package.title or "Create Package" }}
	{% if not package and author != current_user %}
		for {{ author.display_name }}
	{% endif %}
{% endblock %}

{% block content %}
	<h1>Create Package</h1>

	<script>
		meta_packages = [
			{% for m in mpackages %}
				{# This is safe as name can only contain `[a-z0-9_]` #}
				{
					id: "{{ m.name }}",
					value: "{{ m.name }}",
					toString: function() { return "{{ m.name }}"; },
				},
			{% endfor %}
		]

		function escape(unsafe) {
			return unsafe
				.replace(/&/g, "&amp;")
				.replace(/</g, "&lt;")
				.replace(/>/g, "&gt;")
				.replace(/"/g, "&quot;")
				.replace(/'/g, "&#039;");
		}

		all_packages = meta_packages.slice();

		{% for p in packages %}
			all_packages.push({
				id: "{{ p.author.username }}/{{ p.name }}",
				value: escape({{ p.title | tojson }} + " by " + {{ p.author.display_name | tojson }}),
				toString: function() { return  escape({{ p.title | tojson }} + " by " + {{ p.author.display_name | tojson }} + " only"); },
			});
		{% endfor %}
	</script>

	{% from "macros/forms.html" import render_field, render_submit_field, form_includes, render_multiselect_field, render_mpackage_field, render_deps_field %}
	{{ form_includes() }}

	<form method="POST" action="" class="tableform">
		{{ form.hidden_tag() }}

		<h2 class="pkg_meta">Package</h2>

		{{ render_field(form.type, class_="pkg_meta") }}
		{{ render_field(form.name, class_="pkg_meta") }}
		{{ render_field(form.title, class_="pkg_meta") }}
		{{ render_field(form.shortDesc, class_="pkg_meta") }}
		{{ render_field(form.desc, class_="pkg_meta") }}
		{{ render_multiselect_field(form.tags, class_="pkg_meta") }}
		{{ render_field(form.license, class_="pkg_meta") }}

		<div class="pkg_meta">
			<h2 class="not_txp">Dependency Info</h2>

			{{ render_mpackage_field(form.provides_str, class_="not_txp", placeholder="Comma separated list") }}
			{{ render_deps_field(form.harddep_str, class_="not_txp not_game", placeholder="Comma separated list") }}
			{{ render_deps_field(form.softdep_str, class_="not_txp not_game", placeholder="Comma separated list") }}
		</div>

		<h2 class="pkg_meta">Repository and Links</h2>

		<div class="pkg_wiz_1">
			<p>Enter the repo URL for the package.
			If it's hosted on Github then metadata will automatically be imported.</p>

			<p>Leave blank if you don't have a repo.</p>
		</div>

		{{ render_field(form.repo, class_="pkg_repo") }}

		<div class="pkg_wiz_1">
			<a id="pkg_wiz_1_next" class="button button-primary">Next</a>
		</div>

		<div class="pkg_wiz_2">
			Importing...
		</div>

		{{ render_field(form.website, class_="pkg_meta") }}
		{{ render_field(form.issueTracker, class_="pkg_meta") }}
		{{ render_field(form.forums, class_="pkg_meta") }}
		<div class="pkg_meta">{{ render_submit_field(form.submit) }}</div>
	</form>

	{% if enable_wizard %}
		<script src="/static/url.min.js"></script>
		<script src="/static/polltask.js"></script>
		<script src="/static/package_create.js"></script>
		<noscript>
			<div class="box box_grey alert alert-warning">
				<span class="icon_message"></span>
				Javascript is needed to automatically import metadata from VCS.
			</div>
		</noscript>
	{% endif %}
	<script src="/static/package_edit.js"></script>
{% endblock %}