<NME> extend.twig
<BEF> {# Page: NavSecondary > Extend Bolt #}

{% extends '@bolt/_base/_page-nav.twig' %}

{% block page_nav 'ExtendBolt' %}

{% block page_title __('general.phrase.extensions') %}

{% block page_subtitle %}
    {{ __('page.extend.pagetitle', {'%BOLTNAME%': config.get('general/branding/name') }) }}
{% endblock %}

{# clear default messages, because we use them in a different spot, in this template #}
{% block messages "" %}

{% block page_main %}
    {{ include('@bolt/extend/_package.twig') }}

    {% if context.messages is not empty %}
        <div class="row">
            <div class="col-xs-12">
                <div class="alert alert-info alert-dismissible">
                    <button type="button" class="close" data-dismiss="alert">×</button>
                    {% for message in context.messages %}
                        {{ message }}<br>
                    {% endfor %}
                </div>
            </div>
        </div>
    {% endif %}

    <div class="row extend-bolt-container">
        <div class="col-md-9">

            {% if not context.writeable %}
            {% set msg = __('page.extend.message.ext-dir-missing', {'%DIRECTORY%': context.extensionsPath}) %}
            <div class="alert alert-warning alert-dismissible">
                <button type="button" class="close" data-dismiss="alert">×</button>
                    {{ msg|ymllink }}
            </div>
            {% endif %}

            {% if not context.enabled %}
            {% set msg = __('page.extend.message.loading-disabled', {'%CONFIG%': 'config.yml'|ymllink }) %}
            <div class="alert alert-warning alert-dismissible">
                <button type="button" class="close" data-dismiss="alert">×</button>
                    {{ msg|ymllink }}
            </div>
            {% endif %}

            {{ include('@bolt/_sub/_messages.twig') }}

            <section>
                <h2>{{ __('page.extend.headline.install-new-extension') }}</h2>
                <p>
                    {% if context.writeable and context.online %}
                    {{ __('page.extend.message.add-extension-with-form') }}
                    {% endif %}
                    {{ __('page.extend.message.discover-by-visiting') }}
                    <a href="{{ context.site }}" target="_blank">{{ context.site }}</a>
                </p>
                {% if context.writeable and context.online %}
                <div class="install-container">
                        <div class="auto-search hide-block"></div>
                        <input type="text" name="check-package" placeholder="Extension name eg: bolt/widget">
                        <a class="btn btn-primary check-package" data-request="check-package" data-toggle="modal" data-target="#installModal">
                            <i class="icon-gears"></i> {{ __('page.extend.button.browse-versions') }}
                        </a>

                        <div class="modal fade" id="installModal" tabindex="-1" role="dialog">
                            <div class="modal-dialog">
                                <div class="modal-content">
                                    {{ include('@bolt/extend/_action-modal.twig') }}
                                </div>
                            </div>
                        </div>
                </div>
                {% endif %}
            </section>

            <hr>

            {# Console for UI feedback #}
            {{ include('@bolt/extend/_feedback.twig') }}

            <section class="installed-container">
                <h2>{{ __('page.extend.headline.currently-installed') }}</h2>
                {% if context.writeable %}
                <pre class="installed console" data-request="installed">{{ __('page.extend.message.checking-installed-packages') }}..</pre>
                {% else %}
                <pre class="installed">{{ __('page.extend.message.no-package-check-in-readmode') }}</pre>
                {% endif %}
                <div class="installed-list hide-block">
                    <div class="installed-list-items">

                    </div>
                </div>
            </section>

            {# Modal for readmes  #}
            {{ include('@bolt/extend/_readme.twig') }}

            <hr>
            {% if context.bundled %}
                <section class="installed-container">
                    <h2>{{ __('page.extend.headline.bundled') }}</h2>
                <div class="install-container">
                        <div class="auto-search hide-block"></div>
                        <input type="text" name="check-package" placeholder="Extension name eg: bolt/widget">
                        <a class="btn btn-tertiary check-package" data-request='check-package' data-toggle="modal" data-target="#installModal">
                            <i class="icon-gears"></i> {{ __('Browse Versions') }}
                        </a>

                                </tr>
                                </thead>

                                <tbody>
                                {% for ext in context.bundled %}
                                    <tr>
                                        <td class="id"><strong>{{ ext.displayName }}</strong></td>
                                        <td><code>{{ ext.className }}</code></td>
                                    </tr>
                                {% endfor %}
                                </tbody>
                            </table>
                        </div>
                    </div>
                </section>
            {% endif %}

        </div>

        <aside class="col-md-3">
            <div class="panel panel-default">
                <div class="panel-heading"><i class="fa fa-cog fa-fw"></i>{{ __('page.extend.options') }}</div>
                <div class="panel-body">
                        {% set disabled = (not context.writeable or not context.online) %}
                        <p><strong>{{ __('page.extend.message.check-for-updates') }}</strong></p>
                        <div class="btn-group">
                            <a class="btn btn-tertiary{% if disabled %} disabled{% endif %} clickspinner" data-request="update-check">
                                <i class="fa fa-refresh fa-fw"></i> {{ __('page.extend.button.update-check') }}
                            </a>
                        </div>
                        <p>{{ __('page.extend.message.shows-updates') }}</p>
                        <hr>
                        <p><strong>{{ __('page.extend.message.maintenance') }}</strong></p>
                        <div class="btn-group">
                            <a class="btn btn-tertiary{% if disabled %} disabled{% endif %} clickspinner" data-request="update-run">
                                <i class="fa fa-refresh fa-fw"></i> {{ __('page.extend.button.update-all') }}
                            </a>
                            <button type="button" class="btn btn-tertiary dropdown-toggle {% if disabled %} disabled{% endif %}" data-toggle="dropdown">
                                <span class="caret"></span>
                                <span class="sr-only">Toggle Dropdown</span>
                            </button>
                            <ul class="dropdown-menu pull-right" role="menu">
                                <li>
                                    <a href="#" class="{% if disabled %} disabled{% endif %} clickspinner" data-request="install-run">
                                        <i class="fa fa-download fa-fw"></i> {{ __('page.extend.button.install-all') }}
                                    </a>
                                </li>
                                <li>
                                    <a href="#" class="{% if disabled %} disabled{% endif %} clickspinner" data-request="autoload-dump">
                                        <i class="fa fa-refresh fa-fw"></i> {{ __('page.extend.button.autoload-dump') }}
                                    </a>
                                </li>
                            </ul>
                        </div>
                        <p>
                            <strong>{{ __('page.extend.button.update-all') }}:</strong>
                            {{ __('page.extend.message.installs-updates') }}
                        </p>
                        <p>
                            <strong>{{ __('page.extend.button.install-all') }}:</strong>
                            {{ __('page.extend.message.installs-all-listed-packages') }}
                        </p>
                        <p>
                            <strong>{{ __('page.extend.button.autoload-dump') }}:</strong>
                            {{ __('page.extend.message.autoload-dump') }}
                        </p>
                </div>
            </div>
        </aside>

    </div>

    {{ data('extend.text.autoloader-start',   __('page.extend.message.autoloader-start')) }}
    {{ data('extend.text.autoloader-update',  __('page.extend.message.autoloader-update')) }}
    {{ data('extend.text.bad-json',           __('page.extend.message.bad-json')) }}
    {{ data('extend.text.confirm-remove',     __('page.extend.message.confirm-remove')) }}
    {{ data('extend.text.copying',            __('page.extend.message.copying')) }}
    {{ data('extend.text.install-all',        __('page.extend.message.install-all')) }}
    {{ data('extend.text.install-running',    __('page.extend.message.installation-running')) }}
    {{ data('extend.text.installing',         __('page.extend.message.installing')) }}
    {{ data('extend.text.no-stable',          __('page.extend.message.no-stable-versions-available')) }}
    {{ data('extend.text.no-test',            __('page.extend.message.no-test-versions-available')) }}
    {{ data('extend.text.overwrite',          __('page.extend.message.overwrite')) }}
    {{ data('extend.text.removing',           __('page.extend.message.removing')) }}
    {{ data('extend.text.running-update',     __('page.extend.message.running-update')) }}
    {{ data('extend.text.running-update-all', __('page.extend.message.running-update-all')) }}
    {{ data('extend.text.updating',           __('page.extend.message.updating')) }}
    {{ data('extend.text.updated',            __('page.extend.message.updated')) }}

    {{ data('extend.sitever',             context.extendVersion) }}
    {{ data('extend.siteurl',             context.site) }}
    {{ data('extend.baseurl',             global.request.basePath ~ '/' ~ app['controller.backend.extend.mount_prefix']|trim('/') ~ '/') }}

{% endblock page_main %}

<MSG> Unify extend.twig template to use double quotes on html attributes
<DFF> @@ -107,7 +107,7 @@
                 <div class="install-container">
                         <div class="auto-search hide-block"></div>
                         <input type="text" name="check-package" placeholder="Extension name eg: bolt/widget">
-                        <a class="btn btn-tertiary check-package" data-request='check-package' data-toggle="modal" data-target="#installModal">
+                        <a class="btn btn-tertiary check-package" data-request="check-package" data-toggle="modal" data-target="#installModal">
                             <i class="icon-gears"></i> {{ __('Browse Versions') }}
                         </a>
 

{'addition_count': 1, 'commit_subject': 'Unify extend.twig template to use double quotes on html attributes', 'deletion_count': 1, 'file_extension': '.twig', 'lang': 'twig', 'license': 'mit', 'repo_name': 'bolt/bolt'}