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>Numquam magnam optio ea rem maxime veritatis hic repellendus? Consequuntur tenetur veniam totam explicabo placeat sunt quae soluta? Ab dicta doloremque sed accusamus ad necessitatibus voluptatum officiis hic harum est, aperiam inventore porro quae obcaecati recusandae maxime dolores, placeat molestiae aut nostrum ut libero nobis excepturi atque? Accusantium sapiente doloribus id dicta sed dolorem odit veniam, laboriosam voluptatum libero suscipit dolorem cupiditate repudiandae minima non eaque dignissimos, similique obcaecati quis maiores laudantium consequatur sed reiciendis iste alias assumenda perspiciatis, veniam nobis vel non ipsa, obcaecati velit quam suscipit aperiam?</p> </div> <div class="col-sm-4"> <p>Magni ex repellat asperiores nesciunt reiciendis accusamus, obcaecati vel suscipit amet illum eum reprehenderit. Tempora deserunt nam dignissimos illo dolorem veniam repudiandae officia aliquam aspernatur, alias similique molestias eligendi minima totam praesentium qui necessitatibus recusandae incidunt maxime, provident numquam tenetur enim et. Autem ipsa necessitatibus aut expedita non? Cum voluptates veniam aspernatur ratione?</p> </div> <div class="col-sm-4"> <p>Ab nulla sed enim porro ipsam consectetur exercitationem optio facere, porro laborum a quia consequuntur optio molestiae rerum ipsum perferendis voluptatum, a doloremque voluptatum iste reprehenderit praesentium repellendus perspiciatis magni maxime laborum consectetur, velit natus officiis magnam nihil eos hic optio consequuntur aut.</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 %}