mirror of
				https://github.com/sissbruecker/linkding.git
				synced 2025-11-03 20:44:05 +01:00 
			
		
		
		
	* Replace flexbox grid with CSS grid * Update new and edit forms * Update settings views * Update auth views * Fix margin in menu * Remove unused Spectre modules * Simplify navbar * Reuse CSS variables * Fix grid gap on small screen sizes * Simplify grid system * Improve section headers * Restructure SASS files * Cleanup base styles * Update test
		
			
				
	
	
		
			244 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			244 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
{% extends "bookmarks/layout.html" %}
 | 
						|
{% load widget_tweaks %}
 | 
						|
 | 
						|
{% block content %}
 | 
						|
  <div class="settings-page">
 | 
						|
 | 
						|
    {% include 'settings/nav.html' %}
 | 
						|
 | 
						|
    {# Profile section #}
 | 
						|
    <section class="content-area">
 | 
						|
      <h2>Profile</h2>
 | 
						|
      <p>
 | 
						|
        <a href="{% url 'change_password' %}">Change password</a>
 | 
						|
      </p>
 | 
						|
      <form action="{% url 'bookmarks:settings.general' %}" method="post" novalidate>
 | 
						|
        {% csrf_token %}
 | 
						|
        <div class="form-group">
 | 
						|
          <label for="{{ form.theme.id_for_label }}" class="form-label">Theme</label>
 | 
						|
          {{ form.theme|add_class:"form-select width-25 width-sm-100" }}
 | 
						|
          <div class="form-input-hint">
 | 
						|
            Whether to use a light or dark theme, or automatically adjust the theme based on your system's settings.
 | 
						|
          </div>
 | 
						|
        </div>
 | 
						|
        <div class="form-group">
 | 
						|
          <label for="{{ form.bookmark_date_display.id_for_label }}" class="form-label">Bookmark date format</label>
 | 
						|
          {{ form.bookmark_date_display|add_class:"form-select width-25 width-sm-100" }}
 | 
						|
          <div class="form-input-hint">
 | 
						|
            Whether to show bookmark dates as relative (how long ago), or as absolute dates. Alternatively the date can
 | 
						|
            be hidden.
 | 
						|
          </div>
 | 
						|
        </div>
 | 
						|
        <div class="form-group">
 | 
						|
          <label for="{{ form.display_url.id_for_label }}" class="form-checkbox">
 | 
						|
            {{ form.display_url }}
 | 
						|
            <i class="form-icon"></i> Show bookmark URL
 | 
						|
          </label>
 | 
						|
          <div class="form-input-hint">
 | 
						|
            When enabled, this setting displays the bookmark URL below the title.
 | 
						|
          </div>
 | 
						|
        </div>
 | 
						|
        <div class="form-group">
 | 
						|
          <label for="{{ form.permanent_notes.id_for_label }}" class="form-checkbox">
 | 
						|
            {{ form.permanent_notes }}
 | 
						|
            <i class="form-icon"></i> Show notes permanently
 | 
						|
          </label>
 | 
						|
          <div class="form-input-hint">
 | 
						|
            Whether to show bookmark notes permanently, without having to toggle them individually.
 | 
						|
            Alternatively the keyboard shortcut <code>e</code> can be used to temporarily show all notes.
 | 
						|
          </div>
 | 
						|
        </div>
 | 
						|
        <div class="form-group">
 | 
						|
          <label for="{{ form.bookmark_link_target.id_for_label }}" class="form-label">Open bookmarks in</label>
 | 
						|
          {{ form.bookmark_link_target|add_class:"form-select width-25 width-sm-100" }}
 | 
						|
          <div class="form-input-hint">
 | 
						|
            Whether to open bookmarks a new page or in the same page.
 | 
						|
          </div>
 | 
						|
        </div>
 | 
						|
        <div class="form-group">
 | 
						|
          <label for="{{ form.tag_search.id_for_label }}" class="form-label">Tag search</label>
 | 
						|
          {{ form.tag_search|add_class:"form-select width-25 width-sm-100" }}
 | 
						|
          <div class="form-input-hint">
 | 
						|
            In strict mode, tags must be prefixed with a hash character (#).
 | 
						|
            In lax mode, tags can also be searched without the hash character.
 | 
						|
            Note that tags without the hash character are indistinguishable from search terms, which means the search
 | 
						|
            result will also include bookmarks where a search term matches otherwise.
 | 
						|
          </div>
 | 
						|
        </div>
 | 
						|
        <div class="form-group">
 | 
						|
          <label for="{{ form.enable_favicons.id_for_label }}" class="form-checkbox">
 | 
						|
            {{ form.enable_favicons }}
 | 
						|
            <i class="form-icon"></i> Enable Favicons
 | 
						|
          </label>
 | 
						|
          <div class="form-input-hint">
 | 
						|
            Automatically loads favicons for bookmarked websites and displays them next to each bookmark.
 | 
						|
            By default, this feature uses a <b>Google service</b> to download favicons.
 | 
						|
            If you don't want to use this service, check the <a
 | 
						|
              href="https://github.com/sissbruecker/linkding/blob/master/docs/Options.md#ld_favicon_provider"
 | 
						|
              target="_blank">options documentation</a> on how to configure a custom favicon provider.
 | 
						|
            Icons are downloaded in the background, and it may take a while for them to show up.
 | 
						|
          </div>
 | 
						|
          {% if request.user_profile.enable_favicons and enable_refresh_favicons %}
 | 
						|
            <button class="btn mt-2" name="refresh_favicons">Refresh Favicons</button>
 | 
						|
          {% endif %}
 | 
						|
          {% if refresh_favicons_success_message %}
 | 
						|
            <div class="has-success">
 | 
						|
              <p class="form-input-hint">
 | 
						|
                {{ refresh_favicons_success_message }}
 | 
						|
              </p>
 | 
						|
            </div>
 | 
						|
          {% endif %}
 | 
						|
        </div>
 | 
						|
        <div class="form-group">
 | 
						|
          <label for="{{ form.web_archive_integration.id_for_label }}" class="form-label">Internet Archive
 | 
						|
            integration</label>
 | 
						|
          {{ form.web_archive_integration|add_class:"form-select width-25 width-sm-100" }}
 | 
						|
          <div class="form-input-hint">
 | 
						|
            Enabling this feature will automatically create snapshots of bookmarked websites on the <a
 | 
						|
              href="https://web.archive.org/" target="_blank" rel="noopener">Internet Archive Wayback
 | 
						|
            Machine</a>.
 | 
						|
            This allows to preserve, and later access the website as it was at the point in time it was bookmarked, in
 | 
						|
            case it goes offline or its content is modified.
 | 
						|
            Please consider donating to the <a href="https://archive.org/donate/index.php" target="_blank"
 | 
						|
                                               rel="noopener">Internet Archive</a> if you make use of this feature.
 | 
						|
          </div>
 | 
						|
        </div>
 | 
						|
        <div class="form-group">
 | 
						|
          <label for="{{ form.enable_sharing.id_for_label }}" class="form-checkbox">
 | 
						|
            {{ form.enable_sharing }}
 | 
						|
            <i class="form-icon"></i> Enable bookmark sharing
 | 
						|
          </label>
 | 
						|
          <div class="form-input-hint">
 | 
						|
            Allows to share bookmarks with other users, and to view shared bookmarks.
 | 
						|
            Disabling this feature will hide all previously shared bookmarks from other users.
 | 
						|
          </div>
 | 
						|
        </div>
 | 
						|
        <div class="form-group">
 | 
						|
          <label for="{{ form.enable_public_sharing.id_for_label }}" class="form-checkbox">
 | 
						|
            {{ form.enable_public_sharing }}
 | 
						|
            <i class="form-icon"></i> Enable public bookmark sharing
 | 
						|
          </label>
 | 
						|
          <div class="form-input-hint">
 | 
						|
            Makes shared bookmarks publicly accessible, without requiring a login.
 | 
						|
            That means that anyone with a link to this instance can view shared bookmarks via the <a
 | 
						|
              href="{% url 'bookmarks:shared' %}">shared bookmarks page</a>.
 | 
						|
          </div>
 | 
						|
        </div>
 | 
						|
        <div class="form-group">
 | 
						|
          <input type="submit" name="update_profile" value="Save" class="btn btn-primary mt-2">
 | 
						|
          {% if update_profile_success_message %}
 | 
						|
            <div class="has-success">
 | 
						|
              <p class="form-input-hint">
 | 
						|
                {{ update_profile_success_message }}
 | 
						|
              </p>
 | 
						|
            </div>
 | 
						|
          {% endif %}
 | 
						|
        </div>
 | 
						|
      </form>
 | 
						|
    </section>
 | 
						|
 | 
						|
    {# Import section #}
 | 
						|
    <section class="content-area">
 | 
						|
      <h2>Import</h2>
 | 
						|
      <p>Import bookmarks and tags in the Netscape HTML format. This will execute a sync where new bookmarks are
 | 
						|
        added and existing ones are updated.</p>
 | 
						|
      <form method="post" enctype="multipart/form-data" action="{% url 'bookmarks:settings.import' %}">
 | 
						|
        {% csrf_token %}
 | 
						|
        <div class="form-group">
 | 
						|
          <label for="import_map_private_flag" class="form-checkbox">
 | 
						|
            <input type="checkbox" id="import_map_private_flag" name="map_private_flag">
 | 
						|
            <i class="form-icon"></i> Import public bookmarks as shared
 | 
						|
          </label>
 | 
						|
          <div class="form-input-hint">
 | 
						|
            When importing bookmarks from a service that supports marking bookmarks as public or private (using the <code>PRIVATE</code> attribute), enabling this option will import all bookmarks that are marked as not private as shared bookmarks.
 | 
						|
            Otherwise, all bookmarks will be imported as private bookmarks.
 | 
						|
          </div>
 | 
						|
        </div>
 | 
						|
        <div class="form-group">
 | 
						|
          <div class="input-group width-75 width-md-100">
 | 
						|
            <input class="form-input" type="file" name="import_file">
 | 
						|
            <input type="submit" class="input-group-btn btn btn-primary" value="Upload">
 | 
						|
          </div>
 | 
						|
          {% if import_success_message %}
 | 
						|
            <div class="has-success">
 | 
						|
              <p class="form-input-hint">
 | 
						|
                {{ import_success_message }}
 | 
						|
              </p>
 | 
						|
            </div>
 | 
						|
          {% endif %}
 | 
						|
          {% if import_errors_message %}
 | 
						|
            <div class="has-error">
 | 
						|
              <p class="form-input-hint">
 | 
						|
                {{ import_errors_message }}
 | 
						|
              </p>
 | 
						|
            </div>
 | 
						|
          {% endif %}
 | 
						|
        </div>
 | 
						|
      </form>
 | 
						|
    </section>
 | 
						|
 | 
						|
    {# Export section #}
 | 
						|
    <section class="content-area">
 | 
						|
      <h2>Export</h2>
 | 
						|
      <p>Export all bookmarks in Netscape HTML format.</p>
 | 
						|
      <p>
 | 
						|
        Note that exporting bookmark notes is currently not supported due to limitations of the format.
 | 
						|
        For proper backups please use a database backup as described in the documentation.
 | 
						|
      </p>
 | 
						|
      <a class="btn btn-primary" href="{% url 'bookmarks:settings.export' %}">Download (.html)</a>
 | 
						|
      {% if export_error %}
 | 
						|
        <div class="has-error">
 | 
						|
          <p class="form-input-hint">
 | 
						|
            {{ export_error }}
 | 
						|
          </p>
 | 
						|
        </div>
 | 
						|
      {% endif %}
 | 
						|
    </section>
 | 
						|
 | 
						|
    {# About section #}
 | 
						|
    <section class="content-area about">
 | 
						|
      <h2>About</h2>
 | 
						|
      <table class="table">
 | 
						|
        <tbody>
 | 
						|
        <tr>
 | 
						|
          <td>Version</td>
 | 
						|
          <td>{{ version_info }}</td>
 | 
						|
        </tr>
 | 
						|
        <tr>
 | 
						|
          <td rowspan="3" style="vertical-align: top">Links</td>
 | 
						|
          <td><a href="https://github.com/sissbruecker/linkding/"
 | 
						|
                 target="_blank">GitHub</a></td>
 | 
						|
        </tr>
 | 
						|
        <tr>
 | 
						|
          <td><a href="https://github.com/sissbruecker/linkding#documentation"
 | 
						|
                 target="_blank">Documentation</a></td>
 | 
						|
        </tr>
 | 
						|
        <tr>
 | 
						|
          <td><a href="https://github.com/sissbruecker/linkding/blob/master/CHANGELOG.md"
 | 
						|
                 target="_blank">Changelog</a></td>
 | 
						|
        </tr>
 | 
						|
        </tbody>
 | 
						|
      </table>
 | 
						|
    </section>
 | 
						|
  </div>
 | 
						|
 | 
						|
  <script>
 | 
						|
    // Automatically disable public bookmark sharing if bookmark sharing is disabled
 | 
						|
    const enableSharing = document.getElementById("{{ form.enable_sharing.id_for_label }}");
 | 
						|
    const enablePublicSharing = document.getElementById("{{ form.enable_public_sharing.id_for_label }}");
 | 
						|
 | 
						|
    function updatePublicSharing() {
 | 
						|
      if (enableSharing.checked) {
 | 
						|
        enablePublicSharing.disabled = false;
 | 
						|
      } else {
 | 
						|
        enablePublicSharing.disabled = true;
 | 
						|
        enablePublicSharing.checked = false;
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
    updatePublicSharing();
 | 
						|
    enableSharing.addEventListener("change", updatePublicSharing);
 | 
						|
  </script>
 | 
						|
 | 
						|
{% endblock %}
 |