Skip to content
Snippets Groups Projects
Verified Commit b7954fe6 authored by Jayesh's avatar Jayesh :cat2: Committed by Antoine R. Dumont
Browse files

Add browse existing requests table view

Add different screens for anonymous and logged in user
Improve template style

Related to T3987
parent 978b244b
No related branches found
No related tags found
No related merge requests found
/**
* Copyright (C) 2022 The Software Heritage developers
* See the AUTHORS file at the top-level directory of this distribution
* License: GNU Affero General Public License version 3, or any later version
* See top-level LICENSE file for more information
*/
export function initAddForge() {
$(document).ready(() => {
// populateRequests
$('#requestForm').submit(function(event) {
event.preventDefault();
$.ajax({
data: $(this).serialize(),
type: $(this).attr('method'),
url: $(this).attr('action'),
success: function(response) {
$('#userMessage').text('Your request has been submitted');
$('#userMessage').addClass('badge-success');
},
error: function(request, status, error) {
$('#userMessage').text('Sorry following error happened, ' + error);
$('#userMessage').addClass('badge-danger');
}
});
});
});
}
......@@ -3,5 +3,5 @@ from django.conf.urls import url
from swh.web.add_forge_now import views
urlpatterns = [
url(r"^add/$", views.submit_request, name="forge-add"),
url(r"^add/$", views.create_request, name="forge-add"),
]
......@@ -88,6 +88,7 @@ urlpatterns = [
),
]
FORGE_TYPES = [
("cgit", "cgit"),
("gitlab", "gitlab"),
......@@ -98,14 +99,22 @@ FORGE_TYPES = [
class RequestForm(forms.Form):
forge_type = forms.ChoiceField(choices=FORGE_TYPES)
forge_url = forms.CharField(label="Forge contact name", max_length=100)
forge_contact_email = forms.CharField(label="Forge contact email", max_length=100)
forge_type.widget.attrs.update({"class": "form-control"})
forge_url = forms.CharField(label="Forge contact name", max_length=200)
forge_url.widget.attrs.update({"class": "form-control"})
forge_contact_email = forms.EmailField(label="Forge contact email", max_length=100)
forge_contact_email.widget.attrs.update({"class": "form-control"})
forge_contact_name = forms.CharField(label="Forge contact name", max_length=100)
forge_contact_comment = forms.CharField(label="Comment", max_length=100)
forge_contact_name.widget.attrs.update({"class": "form-control"})
forge_contact_comment = forms.CharField(label="Comment", widget=forms.Textarea)
forge_contact_comment.widget.attrs.update({"class": "form-control", "rows": "3"})
def submit_request(request):
def create_request(request):
request_form = RequestForm()
existing = AddForgeRequest.objects.all()
return render(
request, "add_forge_now/submit-request.html", {"request_form": request_form}
request,
"add_forge_now/create-request.html",
{"request_form": request_form, "existing": existing},
)
{% extends "../layout.html" %}
{% comment %}
Copyright (C) 2022 The Software Heritage developers
See the AUTHORS file at the top-level directory of this distribution
License: GNU Affero General Public License version 3, or any later version
See top-level LICENSE file for more information
{% endcomment %}
{% load render_bundle from webpack_loader %}
{% load static %}
{% block header %}
{% render_bundle 'add_forge' %}
{% endblock %}
{% block title %}{{ heading }} – Software Heritage archive{% endblock %}
{% block navbar-content %}
<h4>Add forge now</h4>
{% endblock %}
{% block content %}
<div class="col-md-12 offset-md-1">
<p>
<a class="link-info" data-toggle="collapse" href="#requestForm" role="button" aria-expanded="false">
<h5 style="padding-bottom: 10px;">
Submit an add forge Request {% if not user.is_authenticated %}(Need to be logged in){% endif %}
</h5>
</a>
</p>
<form method="POST" action="{% url 'api-1-add-forge-request-create' %}"
id="requestForm" class="collapse {% if user.is_authenticated %} show {% endif %}">
{% csrf_token %}
<div class="form-row">
<div class="form-group col-md-3">
<label for="swh-input-forge-type">Forge type</label>
{{ request_form.forge_type }}
</div>
<div class="form-group col-md-4">
<label for="swh-input-forge-url">Forge url</label>
{{ request_form.forge_url }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-3">
<label for="swh-input-forge-contact-name">Forge contact name</label>
{{ request_form.forge_contact_name }}
</div>
<div class="form-group col-md-4">
<label for="swh-input-forge-contact-email">Forge contact email</label>
{{ request_form.forge_contact_email }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-7">
<label for="swh-input-forge-comment">Comment</label>
{{ request_form.forge_contact_comment }}
</div>
</div>
<div class="form-row">
<div class="col-md-7">
<input type="submit" value="Submit Add Request" class="btn btn-secondary float-right">
</div>
</div>
<div class="form-row">
<div class="col-md-7">
<h3 class="text-center">
<span id="userMessage" class="badge"></span>
</h3>
</div>
</div>
</form>
<div class="col-md-7">
<ul class="nav nav-tabs" style="padding-left: 5px;">
<li class="nav-item"><a class="nav-link active" data-toggle="tab" id="swh-add-forge-request-help-tab" href="#swh-add-forge-requests-help">Help</a></li>
<li class="nav-item"><a class="nav-link" data-toggle="tab" id="swh-add-forge-requests-list-tab" href="#swh-add-forge-requests-list">Browse Requests</a></li>
</ul>
<div class="tab-content">
<div id="swh-add-forge-requests-help" class="tab-pane active">
Help text
</div>
<div id="swh-add-forge-requests-list" class="tab-pane">
<table class="table table-striped">
<thead>
<tr>
<th scope="col">Date</th>
<th scope="col">Type</th>
<th scope="col">URL</th>
<th scope="col">Status</th>
</tr>
</thead>
<tbody>
{% for each in existing %}
<tr>
<td>{{ each.submission_date }}</td>
<td>{{ each.forge_type }}</td>
<td>{{ each.forge_url }}</td>
<td>{{ each.status }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
</div>
<script>
swh.add_forge.initAddForge()
</script>
{% endblock %}
{% extends "../layout.html" %}
{% comment %}
Copyright (C) 2021 The Software Heritage developers
See the AUTHORS file at the top-level directory of this distribution
License: GNU Affero General Public License version 3, or any later version
See top-level LICENSE file for more information
{% endcomment %}
{% load render_bundle from webpack_loader %}
{% load static %}
{% block title %}{{ heading }} &ndash; Software Heritage archive{% endblock %}
{% block header %}
{% endblock %}
{% block navbar-content %}
<h4>Add forge now</h4>
{% endblock %}
{% block content %}
<form method="POST" action="/api/1/add-forge/request/create" id="submitform">
{% csrf_token %}
<div class="form-row">
<div class="col-md-1"></div>
<div class="form-group col-md-2">
<label for="swh-input-forge-type">Forge type</label>
{{ request_form.forge_type }}
</div>
<div class="form-group col-md-3">
<label for="swh-input-forge-url">Forge url</label>
{{ request_form.forge_url }}
</div>
</div>
<div class="form-row">
<div class="col-md-1"></div>
<div class="form-group col-md-2">
<label for="swh-input-forge-contact-name">Forge contact name</label>
{{ request_form.forge_contact_name }}
</div>
<div class="form-group col-md-2">
<label for="swh-input-forge-contact-email">Forge contact email</label>
{{ request_form.forge_contact_email }}
</div>
</div>
<div class="form-row">
<div class="col-md-1"></div>
<div class="form-group col-md-2">
<label for="swh-input-forge-comment">Comment</label>
{{ request_form.forge_contact_comment }}
</div>
</div>
<input type="submit" value="Submit">
<p id="userMessage"></p>
</form>
<script type="text/javascript">
$(document).ready(() => {
$( "#submitform" ).submit(function(event) {
event.preventDefault();
$.ajax({
data: $(this).serialize(),
type: $(this).attr('method'),
url: $(this).attr('action'),
success: function(response) {
$("#userMessage").text("Your request has been submitted")
},
error: function(request, status, error) {
$("#userMessage").text("Some unknown error happened")
}
});
});
});
</script>
{% endblock %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment