Opening a Dialog
view codeOpening a static Dialog
The layout of the Dialog is fully described by the referenced HTML template: either the default "#dialog_generic" of a specific one.
You can fully customize the rendering with CSS; the default styles are provided by static/frontend_forms/css/frontend_forms.css
dialog1 = new Dialog({ dialog_selector: '#dialog_generic', html: '<h1>Static content goes here ...</h1>', width: '600px', min_height: '200px', title: '<i class="fa fa-calculator"></i> Select an object ...', footer_text: 'testing dialog ...', enable_trace: true }); dialog1.open()
A simple static Dialog
Opening a dynamic Dialog
In most cases, you will rather produce the dialog content dynamically.
To obtain that, just add an "url" option to the Djalog constructor, and it will be automatically used to obtain the Dialog content from the server via an Ajax call.
dialog1 = new Dialog({ ... url: "/samples/simple-content", ...
Sometimes it is convenient to reuse the very same single view to render either a modal dialog, or a standalone HTML page.
This can be easily accomplished providing:
- an "inner" template which renders the content
- an "outer" container template which renders the full page, then includes the "inner" template
- in the view, detect the call context and render one or another
def simple_content2(request): # Either render only the modal content, or a full standalone page if request.is_ajax(): template_name = 'frontend/includes/simple_content2_inner.html' else: template_name = 'frontend/includes/simple_content2.html' return render(request, template_name, { })
here, the "inner" template provides the content:
<div class="row"> <div class="col-sm-4"> <p>Similique vitae iure sunt voluptatum numquam iste eaque, accusamus tenetur repellat esse dolorum consequuntur, ipsa doloribus commodi. Facilis similique reprehenderit aliquam beatae consequuntur explicabo laudantium, saepe dolore eius possimus, cupiditate tempora corrupti nulla asperiores quibusdam accusamus dolor nesciunt cum, quasi fugit odio, beatae non ipsum?</p> </div> <div class="col-sm-4"> <p>Quas ea maiores, totam adipisci omnis tempore commodi maxime eaque. Cumque id in fugiat tempore excepturi, ratione nostrum a. Neque ad nisi, modi perferendis beatae enim error minima distinctio nostrum quis, earum eos eaque reiciendis eligendi, laborum culpa consequuntur, asperiores eligendi ducimus aut? Tempore minima accusamus inventore recusandae suscipit soluta pariatur adipisci hic, quasi adipisci placeat dolore ea et est animi, asperiores esse veritatis corporis eaque rem nulla in, nobis error illo iste impedit inventore deserunt officiis, vero pariatur similique illum.</p> </div> <div class="col-sm-4"> <p>Doloribus adipisci autem cumque odio, magnam assumenda quas sit?</p> </div> </div>
while the "outer" one renders the full page:
{% extends "base.html" %}
{% load static staticfiles i18n %}
{% block content %}
{% include 'frontend/includes/simple_content2_inner.html' %}
{% endblock content %}