README.md edited

This commit is contained in:
2024-12-06 10:45:08 +09:00
parent 09e4edee6b
commit 1aa387aa59
13921 changed files with 2057290 additions and 10 deletions

View File

@@ -0,0 +1,30 @@
{% load i18n %}
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{% url 'admin:index' %}" title="{% trans 'Go back to admin homepage' %}"><i class="fas fa-tachometer-alt"></i> {% trans 'Home' %}</a></li>
<li class="breadcrumb-item"><a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a></li>
{% if not instance.is_root and instance.is_smart_folder %}
<li class="breadcrumb-item">
<a href="{% url 'admin:filer-directory_listing-root' %}" title="{% trans 'Go back to root folder' %}">{% trans "root" %}</a>
</li>
{% endif %}
{% for ancestor_folder in instance.logical_path %}
<li class="breadcrumb-item">
<a href="{{ ancestor_folder.get_admin_directory_listing_url_path }}" title="{% blocktrans with ancestor_folder.name as folder_name %}Go back to '{{ folder_name }}' folder{% endblocktrans %}">
{% if ancestor_folder.label %}
{{ ancestor_folder.label }}
{% else %}
{{ ancestor_folder.name }}
{% endif %}
</a>
</li>
{% endfor %}
{% if breadcrumbs_action %}
<li class="breadcrumb-item">{% if instance.label or instance.name %}
<a href="{{ instance.get_admin_directory_listing_url_path }}" title="{% blocktrans with instance.name as folder_name %}Go back to '{{ folder_name }}' folder{% endblocktrans %}">{% if instance.label %}{{ instance.label }}{% else %}{{ instance.name }}{% endif %}</a></li>
{% endif %}
<li class="breadcrumb-item active">{{ breadcrumbs_action }}</li>
{% else %}
<li class="breadcrumb-item active">{% if instance.label %}{{ instance.label }}{% else %}{{ instance.name }}{% endif %}</li>
{% endif %}
</ol>

View File

@@ -0,0 +1,33 @@
{% extends "admin/change_form.html" %}
{% load i18n admin_modify static filer_admin_tags %}
{% block breadcrumbs %}
{% with original as instance %}
{% include "admin/filer/breadcrumbs.html" %}
{% endwith %}
{% endblock %}
{% block extrastyle %}
{{ block.super }}
<link rel="stylesheet" type="text/css" href="{% static 'filer/css/admin_filer.css' %}">
{% endblock %}
{% block after_field_sets %}
{% filer_admin_context_hidden_formfields %}
{% endblock %}
{% block file_sidebar %}
{% with original.duplicates as duplicates %}
{% if duplicates %}
<div class="file-duplicates">
<h3>{% trans "Duplicates" %}</h3>
<ul>
{% for duplicate in duplicates %}
<li><a href="{{ duplicate.get_admin_change_url }}">{{ duplicate }}</a></li>
{% endfor %}
</ul>
</div>
{% endif %}
{% endwith %}
{% endblock %}

View File

@@ -0,0 +1,75 @@
{% extends "admin/delete_selected_confirmation.html" %}
{% load i18n static admin_urls static jazzmin %}
{% block breadcrumbs %}
{% include "admin/filer/breadcrumbs.html" %}
{% endblock %}
{% block content %}
<div class="col-12">
<div class="card card-danger card-outline">
<div class="card-header with-border">
<h4 class="card-title">
{% trans 'Delete multiple objects' %}
</h4>
</div>
<div class="card-body">
<div id="content-main">
{% if perms_lacking or protected %}
{% if perms_lacking %}
<p>{% blocktrans %}Deleting the selected files and/or folders would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:{% endblocktrans %}</p>
<ol>
{% for obj in perms_lacking %}
<li>{{ obj }}</li>
{% endfor %}
</ol>
{% endif %}
{% if protected %}
<p>{% blocktrans %}Deleting the selected files and/or folders would require deleting the following protected related objects:{% endblocktrans %}</p>
<ol>
{% for obj in protected %}
<li>{{ obj }}</li>
{% endfor %}
</ol>
{% endif %}
{% else %}
<p>{% blocktrans %}Are you sure you want to delete the selected files and/or folders? All of the following objects and their related items will be deleted:{% endblocktrans %}</p>
<div class="row">
<div class="col-12 col-sm-9">
<h4>{% trans "Objects" %}</h4>
{% for deletable_object in deletable_objects %}
<ol>{{ deletable_object|unordered_list }}</ol>
{% endfor %}
</div>
<div class="col-12 col-sm-3">
<form action="" method="post">
{% csrf_token %}
{% for f in files_queryset %}
<input type="hidden" name="{{ action_checkbox_name }}" value="file-{{ f.pk }}">
{% endfor %}
{% for f in folders_queryset %}
<input type="hidden" name="{{ action_checkbox_name }}" value="folder-{{ f.pk }}">
{% endfor %}
{% if is_popup %}
<input type="hidden" name="_popup" value="1">
{% if select_folder %}<input type="hidden" name="select_folder" value="1">{% endif %}
{% endif %}
<input type="hidden" name="action" value="delete_files_or_folders">
<input type="hidden" name="post" value="yes">
<div class="form-group">
<input type="submit" class="btn {{ jazzmin_ui.button_classes.danger }} form-control" value="{% trans 'Yes, Im sure' %}">
</div>
<div class="form-group">
<a href="#" onclick="window.history.back(); return false;" class="btn {{ jazzmin_ui.button_classes.danger }} cancel-link form-control">{% trans "No, take me back" %}</a>
</div>
</form>
</div>
</div>
{% endif %}
</div>
</div>
</div>
</div>
{% endblock %}

View File

@@ -0,0 +1,36 @@
{% extends "admin/filer/change_form.html" %}
{% load admin_modify static %}
{% block extrahead %}
{{ block.super }}
{# upload stuff #}
<script type="text/javascript">
var __jQuery = django.jQuery;
window.jQuery = (__jQuery) ? __jQuery : window.jQuery || undefined;
window.$ = window.jQuery;
</script>
<script src="{% static 'filer/js/libs/class.min.js' %}"></script>
<script src="{% static 'filer/js/libs/jquery-ui.min.js' %}"></script>
<script src="{% static 'filer/js/libs/jquery.cookie.min.js' %}"></script>
<script src="{% static 'filer/js/libs/fileuploader.min.js' %}"></script>
<script src="{% static 'filer/js/libs/mediator.min.js' %}"></script>
<script src="{% static 'filer/js/libs/retina.min.js' %}"></script>
<script src="{% static 'admin/js/admin/RelatedObjectLookups.js' %}"></script>
<script src="{% static 'filer/js/addons/popup_handling.js' %}"></script>
<script src="{% static 'filer/js/addons/focal-point.js' %}"></script>
<script src="{% static 'filer/js/addons/toggler.js' %}"></script>
<script src="{% static 'filer/js/base.js' %}"></script>
<script type="text/javascript">
var __jQuery;
var __$;
// reassign jQuery if jQuery is already loaded
__jQuery = (window.jQuery) ? window.jQuery.noConflict(true) : undefined;
__$ = __jQuery;
</script>
{% endblock %}
{% block submit_buttons_bottom %}
{% include "admin/filer/tools/detail_info.html" with file=True %}
{{ block.super }}
{% endblock %}

View File

@@ -0,0 +1,33 @@
{% extends "admin/change_form.html" %}
{% load i18n admin_modify static filer_admin_tags %}
{% block breadcrumbs %}
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{% url 'admin:index' %}" title="{% trans 'Go back to admin homepage' %}"><i class="fas fa-tachometer-alt"></i> {% trans 'Home' %}</a></li>
<li class="breadcrumb-item"><a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a></li>
<li class="breadcrumb-item">
<a href="{% url 'admin:filer-directory_listing-root' %}" title="{% trans 'Go back to' %} '{% trans 'root'|title %}' {% trans 'folder' %}">{% trans "root"|title %}</a>
</li>
{% for ancestor_folder in original.get_ancestors %}
<li class="breadcrumb-item">
<a href="{% url 'admin:filer-directory_listing' ancestor_folder.id %}" title="{% blocktrans with ancestor_folder.name as folder_name %}Go back to '{{ folder_name }}' folder{% endblocktrans %}">{{ ancestor_folder.name }}</a>
</li>
{% endfor %}
<li class="breadcrumb-item active">{{ original.name }}</li>
</ol>
{% endblock %}
{% block coltype %}{% if is_popup %}colM{% else %}colMS{% endif %}{% endblock %}
{% block object-tools %}
{% if change and not is_popup %}
<a class="btn btn-block {{ jazzmin_ui.button_classes.secondary }} btn-sm" href="{% url history_url object_id %}">{% trans 'History' %}</a>
{% if has_absolute_url %}
<a href="../../../r/{{ content_type_id }}/{{ object_id }}/" class="btn btn-block {{ jazzmin_ui.button_classes.secondary }} btn-sm">{% trans "View on site" %}</a>
{% endif%}
{% endif %}
{% endblock %}
{% block after_field_sets %}
{% filer_admin_context_hidden_formfields %}
{% endblock %}

View File

@@ -0,0 +1,258 @@
{% extends "admin/filer/base_site.html" %}
{% load i18n static filer_admin_tags %}
{% block extrahead %}
{{ block.super }}
{% if action_form and actions_on_top or actions_on_bottom %}
<script type="text/javascript">
(function($) {
$(document).ready(function($) {
$('tr input.action-select').actions();
});
})(django.jQuery);
</script>
{% endif %}
{% endblock %}
{% block coltype %}{% endblock %}
{% block bodyclass %}change-list filebrowser{% endblock %}
{% block extrastyle %}
{{ block.super }}
{{ media.css }}
{% if action_form %}
{% url 'admin:jsi18n' as jsi18nurl %}
<script type="text/javascript" src="{{ jsi18nurl|default:'../../jsi18n/' }}"></script>
{% endif %}
{% if query.pop %}
<style type="text/css">
#header {
display: none;
}
</style>
{% endif %}
{% endblock %}
{% block breadcrumbs %}
{% if not is_popup %}
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{% url 'admin:index' %}" title="{% trans 'Go back to admin homepage' %}"><i class="fas fa-tachometer-alt"></i> {% trans 'Home' %}</a></li>
<li class="breadcrumb-item"><a href="{% url 'admin:app_list' app_label='filer' %}">Файлы</a></li>
{% if not folder.is_root and folder.is_smart_folder %}
<li class="breadcrumb-item"><a href="{% url 'admin:filer-directory_listing-root' %}" title="{% trans 'Go back to root folder' %}">{% trans "root" %}</a></li>
{% endif %}
{% for ancestor_folder in folder.logical_path %}
<li class="breadcrumb-item">
<a href="{{ ancestor_folder.get_admin_directory_listing_url_path }}"
title="{% blocktrans with ancestor_folder.name as folder_name %}Go back to '{{ folder_name }}' folder{% endblocktrans %}">
{% if ancestor_folder.label %}{{ ancestor_folder.label }}{% else %}{{ ancestor_folder.name }}{% endif %}
</a>
</li>
{% endfor %}
{% if breadcrumbs_action %}
<li class="breadcrumb-item">
<a href="{{ folder.get_admin_directory_listing_url_path }}"
title="{% blocktrans with folder.name as folder_name %}Go back to '{{ folder_name }}' folder{% endblocktrans %}">
{% if folder.label %}
{{ folder.label }}
{% else %}
{{ folder.name }}
{% endif %}
</a>
</li>
<li class="breadcrumb-item active">{{ breadcrumbs_action }}</li>
{% else %}
{% if folder.label %}
<li class="breadcrumb-item active">{{ folder.label }}</li>
{% else %}
<li class="breadcrumb-item active">{{ folder.name }}</li>
{% endif %}
{% endif %}
</ol>
<div class="breadcrumbs">
</div>
{% endif %}
{% endblock %}
{% block content %}
<div class="navigator-top-nav clearfix">
<div class="breadcrumbs-container-wrapper">
<div class="breadcrumbs-container">
<div class="breadcrumbs-container-inner">
{% for ancestor_folder in instance.logical_path %}
{{ ancestor_folder }}
{% endfor %}
<div class="navigator-breadcrumbs">
<div class="filer-navigator-breadcrumbs-dropdown-container filer-dropdown-container">
<a href="#" data-toggle="filer-dropdown" aria-expanded="false">
<img src="{% static 'filer/icons/breadcrubms_dropdown_28_28.png' %}" alt="" width="28" height="28">
</a>
<ul class="filer-dropdown-menu navigator-breadcrumbs-dropdown">
{% for folder in folder.logical_path %}
<li>
<a href="{% url 'admin:filer-directory_listing' folder.id %}{% filer_admin_context_url_params %}"
title="{% trans 'Go back to the parent folder' %}">
<img src="{% static 'filer/icons/plainfolder_48x48.png' %}" alt="{% trans 'Folder Icon' %}" width="28" height="28">
{{ folder.name }}
</a>
</li>
{% endfor %}
<li>
<a href="{% url 'admin:filer-directory_listing-root' %}{% filer_admin_context_url_params %}"
title="{% trans 'Go back to' %} {% trans 'root'|title %} {% trans 'folder' %}">
<img src="{% static 'filer/icons/root_28x28.png' %}" alt="{% trans 'Folder Icon' %}" width="28" height="28">
Root
</a>
</li>
</ul>
</div>
{% if not folder.is_root or folder.is_smart_folder %}
<span class="icon fa fa-chevron-right"></span>
{% endif %}
</div>
<div class="navigator-breadcrumbs-name-dropdown-wrapper">
{% if not folder.is_root or folder.is_smart_folder %}
<div class="navigator-breadcrumbs-folder-name-wrapper">
<span class="navigator-breadcrumbs-folder-name">
<span class="navigator-breadcrumbs-folder-name-inner">
{{ folder.name }}
</span>
</span>
</div>
<div class="filer-dropdown-container filer-dropdown-container-down">
{% if not is_popup and folder.file_type == 'Folder' and permissions.has_edit_permission %}
<a href="#" data-toggle="filer-dropdown" aria-expanded="false">
<span class="fa fa-caret-down"></span>
</a>
<ul class="filer-dropdown-menu">
<li>
<a href="{% url 'admin:filer_folder_change' folder.id %}" title="{% trans 'Change current folder details' %}">{% trans "Change" %}</a>
</li>
</ul>
{% endif %}
</div>
{% endif %}
<div class="empty-filer-header-cell"></div>
</div>
<form class="filter-files-container js-filter-files-container" action="." method="get" class="js-filer-search-form">
<div class="filter-filers-container-inner">
<button class="navigator-button filter-files-button" title="{% trans 'Click here to run search for entered phrase' %}"><span class="icon fa fa-search"></span></button>
<div class="filter-search-wrapper">
{% filer_admin_context_hidden_formfields %}
<input type="text" placeholder="{% trans 'Search' %}" class="filter-files-field js-filter-files" value="{{ search_string }}" name="q">
<div class="filer-dropdown-container filer-dropdown-container-down">
<a href="#" data-toggle="filer-dropdown" aria-expanded="false">
<span class="fa fa-caret-down"></span>
</a>
</div>
<ul class="filer-dropdown-menu filer-dropdown-menu-checkboxes">
<span class="fa fa-close js-close-dropdown-menu-checkboxes"><span class="sr-only">{% trans "Close" %}</span></span>
<li>
<p>{% trans "Limit" %}</p>
<label>
<input type="checkbox" id="limit_search_to_folder"
name="limit_search_to_folder"
{% if limit_search_to_folder %}checked="checked"{% endif %}
title="{% trans 'Check it to limit the search to current folder' %}">
{% trans "Limit the search to current folder" %}
</label>
</li>
</ul>
</div>
</div>
</form>
</div>
</div>
<div class="tools-container">
{% block object-tools %}
<div class="navigator-tools">
{% if not is_popup %}
<div class="actions-wrapper">
<ul class="actions-separated-list">
<li>
<a href="#" class="js-action-delete" title="{% trans 'Delete' %}"><span class="fa fa-trash"></span></a>
</li>
<li>
<a href="#" class="js-action-copy" title="{% trans 'Copy' %}"><span class="fa fa-copy"></span></a>
</li>
<li>
<a href="#" class="js-action-move" title="{% trans 'Move' %}"><span class="fa fa-cut"></span></a>
</li>
</ul>
<div class="filer-dropdown-container js-actions-menu">
<a href="#" data-toggle="filer-dropdown" aria-expanded="false" class="nav-button nav-button-dots">
<span class="fa fa-ellipsis-h"></span>
</a>
<ul class="create-menu-dropdown filer-dropdown-menu">
{# This list is populated in javascript #}
</ul>
</div>
</div>
{% endif %}
{% block object-tools-items %}
<div class="navigator-button-wrapper">
{% if folder.can_have_subfolders and can_make_folder %}
<a href="{% url 'admin:filer-directory_listing-make_root_folder' %}?parent_id={{ folder.id }}{% if is_popup %}&amp;_popup=1{% endif %}"
title="{% trans 'Adds a new Folder' %}"
class="navigator-button"
onclick="return showAddAnotherPopup(this);">
{% trans "New Folder" %}
</a>
{% endif %}
{% if permissions.has_add_children_permission and not folder.is_root %}
<a href="#" id="id_upload_button" title="{% trans 'Upload Files' %}"
class="navigator-button navigator-button-upload js-upload-button"
data-url="{% url 'admin:filer-ajax_upload' folder_id=folder.id %}"
data-max-uploader-connections="{{ uploader_connections }}">
{% trans "Upload Files" %}
</a>
{% elif folder.is_unsorted_uploads %}
<a href="#" id="id_upload_button" title="{% trans 'Upload Files' %}"
class="navigator-button navigator-button-upload js-upload-button"
data-url="{% url 'admin:filer-ajax_upload' %}"
data-max-uploader-connections="{{ uploader_connections }}">
{% trans "Upload Files" %}
</a>
{% endif %}
{% if folder.is_root and not folder.is_unsorted_uploads %}
<span class="js-upload-button-disabled upload-button-disabled js-filer-tooltip filer-tooltip-wrapper"
title="{% trans 'You have to select a folder first' %}">
<a href="#" class="navigator-button navigator-button-upload" disabled>
{% trans "Upload Files" %}
</a>
</span>
{% endif %}
</div>
{% endblock %}
</div>
{% endblock %}
</div>
</div>
</div>
<div id="content-main">
{% include "admin/filer/tools/search_form.html" %}
<div class="js-navigator navigator{% if not actions_on_top and not actions_on_bottom %}navigator-no-actions{% endif %}">
<form class="js-navigator-form" method="post">
{% csrf_token %}
{% filer_admin_context_hidden_formfields %}
{% if action_form and actions_on_top and paginator.count and not is_popup %}
{% filer_actions %}
{% endif %}
{% include "admin/filer/folder/directory_table_list.html" %}
{% if action_form and actions_on_bottom and paginator.count and not is_popup %}
{% filer_actions %}
{% endif %}
</form>
</div>
</div>
{% endblock %}

View File

@@ -0,0 +1,36 @@
{% extends "admin/filer/change_form.html" %}
{% load admin_modify static %}
{% block extrahead %}
{{ block.super }}
{# upload stuff #}
<script type="text/javascript">
var __jQuery = django.jQuery;
window.jQuery = (__jQuery) ? __jQuery : window.jQuery || undefined;
window.$ = window.jQuery;
</script>
<script src="{% static 'filer/js/libs/class.min.js' %}"></script>
<script src="{% static 'filer/js/libs/jquery-ui.min.js' %}"></script>
<script src="{% static 'filer/js/libs/jquery.cookie.min.js' %}"></script>
<script src="{% static 'filer/js/libs/fileuploader.min.js' %}"></script>
<script src="{% static 'filer/js/libs/mediator.min.js' %}"></script>
<script src="{% static 'filer/js/libs/retina.min.js' %}"></script>
<script src="{% static 'admin/js/admin/RelatedObjectLookups.js' %}"></script>
<script src="{% static 'filer/js/addons/popup_handling.js' %}"></script>
<script src="{% static 'filer/js/addons/focal-point.js' %}"></script>
<script src="{% static 'filer/js/addons/toggler.js' %}"></script>
<script src="{% static 'filer/js/base.js' %}"></script>
<script type="text/javascript">
var __jQuery;
var __$;
// reassign jQuery if jQuery is already loaded
__jQuery = (window.jQuery) ? window.jQuery.noConflict(true) : undefined;
__$ = __jQuery;
</script>
{% endblock %}
{% block submit_buttons_bottom %}
{% include "admin/filer/tools/detail_info.html" %}
{{ block.super }}
{% endblock %}

View File

@@ -0,0 +1,55 @@
{% load filer_admin_tags i18n static jazzmin %}
<div class="card">
<div class="card-header">
<h3 class="card-title">
<span class="icon fa fa-file{% if original.file_type == 'Image' %}-image-o{% endif %}"></span>
{{ original }}
</h3>
</div>
<div class="card-body">
<div class="image-preview-container">
{% if file %}
<img src="{% if original.icons.48 %}{{ original.icons.48 }}{% else %}{% static 'filer/icons/missingfile_48x48.png' %}{% endif %}">
{% else %}
<div class="image-preview js-focal-point" data-location-selector="#id_subject_location">
<img src="{{ original.thumbnails.admin_sidebar_preview }}" data-ratio="{{ adminform.form.sidebar_image_ratio }}" class="js-focal-point-image">
<div class="image-preview-field">
<div class="js-focal-point-circle image-preview-circle hidden"></div>
</div>
</div>
{% endif %}
</div>
{% if original.file_type or original.modified_at or original.uploaded_at or original.width or original.height or original.size or original.owner %}
<ul>
{% if original.file_type %}
<li><b>{% trans "Type" %}</b>: {{ original.extension|upper }} {{ original.file_type }}</li>
{% endif %}
{% if original.width or original.height %}
<li><b>{% trans "Size" %}</b>: {{ original.width }}x{{ original.height }} px</li>
{% endif %}
{% if original.size %}
<li><b>{% trans "File-size" %}</b>: {{ original.size|filesizeformat }}</li>
{% endif %}
{% if original.modified_at %}
<li><b>{% trans "Modified" %}</b>: {{ original.modified_at }}</li>
{% endif %}
{% if original.uploaded_at %}
<li><b>{% trans "Created" %}</b>: {{ original.uploaded_at }}</li>
{% endif %}
{% if original.owner %}
<li><b>{% trans "Owner" %}</b>: <span class="icon fa fa-user"></span> {{ original.owner }}</li>
{% endif %}
</ul>
{% endif %}
<div class="text-center">
<a href="{{ original.url }}" target="_blank" class="btn {{ jazzmin_ui.button_classes.info }} form-control" download="{{ original.original_filename }}">
{% if file %}
{% trans "Open file" %}
{% else %}
{% trans "Full size preview" %}
{% endif %}
</a>
</div>
</div>
</div>