aboutsummaryrefslogtreecommitdiff
path: root/app/templates
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2018-05-27 22:55:46 +0100
committerGitHub <noreply@github.com>2018-05-27 22:55:46 +0100
commitd046de8057d42d4653af6d7c6c7ff557319d1bae (patch)
tree0361d8515fa3b3d16b0222a27048158262d76376 /app/templates
parente85298d890a3fdaa3ac1919092aa495cf480a61f (diff)
parent05e536b1217633fd612b8ee94360e8afef3c527c (diff)
downloadcheatdb-d046de8057d42d4653af6d7c6c7ff557319d1bae.tar.xz
Merge pull request #78 from minetest/dev
Add meta packages, remove current dependencies
Diffstat (limited to 'app/templates')
-rw-r--r--app/templates/admin/list.html3
-rw-r--r--app/templates/macros/forms.html40
-rw-r--r--app/templates/meta/list.html15
-rw-r--r--app/templates/meta/view.html12
-rw-r--r--app/templates/packages/create_edit.html55
-rw-r--r--app/templates/packages/editrequest_create_edit.html2
-rw-r--r--app/templates/packages/view.html39
7 files changed, 144 insertions, 22 deletions
diff --git a/app/templates/admin/list.html b/app/templates/admin/list.html
index 3c15fa9..284919d 100644
--- a/app/templates/admin/list.html
+++ b/app/templates/admin/list.html
@@ -17,8 +17,9 @@
<form method="post" action="" class="box-body">
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
<select name="action">
- <option value="importusers" selected>Create users from mod list</option>
+ <option value="importusers">Create users from mod list</option>
<option value="importscreenshots">Import screenshots from VCS</option>
+ <option value="importdepends" selected>Import dependencies from downloads</option>
</select>
<input type="submit" value="Perform" />
</form>
diff --git a/app/templates/macros/forms.html b/app/templates/macros/forms.html
index b23711a..7700fe2 100644
--- a/app/templates/macros/forms.html
+++ b/app/templates/macros/forms.html
@@ -26,7 +26,7 @@
{% if not label %}{% set label=field.label.text %}{% endif %}
<label for="{{ field.id }}" class="control-label">{{ label|safe }}</label>
{% endif %}
- <div class="multichoice_selector">
+ <div class="multichoice_selector bulletselector">
<input type="text" placeholder="Start typing to see suggestions">
<div class="clearboth"></div>
</div>
@@ -39,6 +39,44 @@
</div>
{% endmacro %}
+{% macro render_mpackage_field(field, label=None, label_visible=true, right_url=None, right_label=None) -%}
+ <div class="form-group {% if field.errors %}has-error{% endif %} {{ kwargs.pop('class_', '') }}">
+ {% if field.type != 'HiddenField' and label_visible %}
+ {% if not label %}{% set label=field.label.text %}{% endif %}
+ <label for="{{ field.id }}" class="control-label">{{ label|safe }}</label>
+ {% endif %}
+ <div class="metapackage_selector bulletselector">
+ <input type="text" placeholder="Comma-seperated values">
+ <div class="clearboth"></div>
+ </div>
+ {{ field(class_='form-control', **kwargs) }}
+ {% if field.errors %}
+ {% for e in field.errors %}
+ <p class="help-block">{{ e }}</p>
+ {% endfor %}
+ {% endif %}
+ </div>
+{% endmacro %}
+
+{% macro render_deps_field(field, label=None, label_visible=true, right_url=None, right_label=None) -%}
+ <div class="form-group {% if field.errors %}has-error{% endif %} {{ kwargs.pop('class_', '') }}">
+ {% if field.type != 'HiddenField' and label_visible %}
+ {% if not label %}{% set label=field.label.text %}{% endif %}
+ <label for="{{ field.id }}" class="control-label">{{ label|safe }}</label>
+ {% endif %}
+ <div class="deps_selector bulletselector">
+ <input type="text" placeholder="Comma-seperated values">
+ <div class="clearboth"></div>
+ </div>
+ {{ field(class_='form-control', **kwargs) }}
+ {% if field.errors %}
+ {% for e in field.errors %}
+ <p class="help-block">{{ e }}</p>
+ {% endfor %}
+ {% endif %}
+ </div>
+{% endmacro %}
+
{% macro render_checkbox_field(field, label=None) -%}
{% if not label %}{% set label=field.label.text %}{% endif %}
<div class="checkbox">
diff --git a/app/templates/meta/list.html b/app/templates/meta/list.html
new file mode 100644
index 0000000..5fec732
--- /dev/null
+++ b/app/templates/meta/list.html
@@ -0,0 +1,15 @@
+{% extends "base.html" %}
+
+{% block title %}
+Meta Packages
+{% endblock %}
+
+{% block content %}
+ <ul>
+ {% for meta in mpackages %}
+ <li><a href="{{ url_for('meta_package_page', name=meta.name) }}">{{ meta.name }}</a> ({{ meta.packages | count }} packages)</li>
+ {% else %}
+ <li><i>No meta packages found.</i></li>
+ {% endfor %}
+ </ul>
+{% endblock %}
diff --git a/app/templates/meta/view.html b/app/templates/meta/view.html
new file mode 100644
index 0000000..c5473b9
--- /dev/null
+++ b/app/templates/meta/view.html
@@ -0,0 +1,12 @@
+{% extends "base.html" %}
+
+{% block title %}
+Packages providing '{{ mpackage.name }}''
+{% endblock %}
+
+{% block content %}
+ <h1>Packages providing '{{ mpackage.name }}''</h1>
+
+ {% from "macros/packagegridtile.html" import render_pkggrid %}
+ {{ render_pkggrid(mpackage.packages) }}
+{% endblock %}
diff --git a/app/templates/packages/create_edit.html b/app/templates/packages/create_edit.html
index fc3715a..24a23b6 100644
--- a/app/templates/packages/create_edit.html
+++ b/app/templates/packages/create_edit.html
@@ -8,23 +8,65 @@
{% endblock %}
{% block content %}
- <h2>Create Package</h2>
+ <h1>Create Package</h1>
- {% from "macros/forms.html" import render_field, render_submit_field, form_includes, render_multiselect_field %}
+ <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_field(form.type, class_="pkg_meta") }}
- {{ render_field(form.license, class_="pkg_meta") }}
{{ render_multiselect_field(form.tags, class_="pkg_meta") }}
- {{ render_multiselect_field(form.harddeps, class_="pkg_meta") }}
- {{ render_multiselect_field(form.softdeps, 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.
@@ -60,4 +102,5 @@
</div>
</noscript>
{% endif %}
+ <script src="/static/package_edit.js"></script>
{% endblock %}
diff --git a/app/templates/packages/editrequest_create_edit.html b/app/templates/packages/editrequest_create_edit.html
index 987a292..d245206 100644
--- a/app/templates/packages/editrequest_create_edit.html
+++ b/app/templates/packages/editrequest_create_edit.html
@@ -18,8 +18,6 @@
{{ render_field(form.type) }}
{{ render_field(form.license) }}
{{ render_multiselect_field(form.tags) }}
- {{ render_multiselect_field(form.harddeps) }}
- {{ render_multiselect_field(form.softdeps) }}
{{ render_field(form.repo) }}
{{ render_field(form.website) }}
{{ render_field(form.issueTracker) }}
diff --git a/app/templates/packages/view.html b/app/templates/packages/view.html
index d6b74a6..2844636 100644
--- a/app/templates/packages/view.html
+++ b/app/templates/packages/view.html
@@ -68,6 +68,15 @@
<td>{{ package.name }}</td>
</tr>
<tr>
+ <td>Provides</td>
+ <td>{% for meta in package.provides %}
+ <a href="{{ url_for('meta_package_page', name=meta.name) }}">{{ meta.name }}</a>
+ {%- if not loop.last %}
+ ,
+ {% endif %}
+ {% endfor %}</td>
+ </tr>
+ <tr>
<td>Author</td>
<td class="{{ package.author.rank }}">
<a href="{{ url_for('user_profile_page', username=package.author.username) }}">
@@ -153,23 +162,29 @@
{% endfor %}
</ul>
- <table class="table-topalign">
+ <!-- <table class="table-topalign">
<tr>
- <td>
+ <td> -->
<h3>Dependencies</h3>
<ul>
- {% for p in package.harddeps %}
- <li><a href="{{ p.getDetailsURL() }}">{{ p.title }}</a> by {{ p.author.display_name }}</li>
+ {% for dep in package.dependencies %}
+ <li>
+ {%- if dep.package %}
+ <a href="{{ dep.package.getDetailsURL() }}">{{ dep.package.title }}</a> by {{ dep.package.author.display_name }}
+ {% elif dep.meta_package %}
+ <a href="{{ url_for('meta_package_page', name=dep.meta_package.name) }}">{{ dep.meta_package.name }}</a>
+ {% else %}
+ {{ "Excepted package or meta_package in dep!" | throw }}
+ {% endif %}
+ {% if dep.optional %}
+ [optional]
+ {% endif %}
+ </li>
{% else %}
- {% if not package.softdeps %}
- <li>No dependencies.</li>
- {% endif %}
- {% endfor %}
- {% for p in package.softdeps %}
- <li><a href="{{ p.getDetailsURL() }}">{{ p.title }}</a> by {{ p.author.display_name }} [optional]</li>
+ <li><i>No dependencies</i></li>
{% endfor %}
</ul>
- </td>
+ <!-- </td>
<td>
<h3>Required by</h3>
<ul>
@@ -186,7 +201,7 @@
</ul>
</td>
</tr>
- </table>
+ </table> -->
{% if current_user.is_authenticated or requests %}
<h3>Edit Requests</h3>