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>Beatae tempore officia. Cupiditate fugiat sint dignissimos ad saepe unde dolore tenetur aspernatur exercitationem vero, molestiae aspernatur quae nihil, iure a cupiditate laborum est expedita aspernatur doloremque? Eius animi fugiat quasi doloremque quod sunt ab possimus quos vel, deleniti enim fugiat magnam molestiae explicabo.</p> </div> <div class="col-sm-4"> <p>Cupiditate aspernatur ipsam sit debitis, animi hic iste, saepe vitae aliquid molestiae incidunt sed est voluptate expedita, id impedit temporibus. Enim odit quae recusandae dolorum laudantium vitae rem, itaque commodi deserunt libero sed laboriosam assumenda eligendi iure neque, vitae corporis voluptatibus repudiandae optio?</p> </div> <div class="col-sm-4"> <p>In perferendis laboriosam temporibus mollitia voluptate similique voluptas animi id cumque, excepturi ratione ab vero quod eum, placeat in qui id repudiandae laborum, cumque vel quod facilis aperiam ad odio perferendis. Maxime asperiores consequuntur labore ipsum optio dolores, maiores iusto rerum odio voluptatum incidunt sapiente ullam ratione minima, eos debitis ipsam alias iste dolorem eius odit numquam explicabo asperiores impedit, impedit aut cupiditate dolorem, molestiae ad alias nostrum recusandae obcaecati delectus ipsam? Et ea quod harum sunt optio architecto placeat, tempore velit quae tenetur quasi ducimus deleniti quod voluptatem doloribus earum excepturi, nihil excepturi voluptatem ipsum?</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 %}