Gemorroj / forum

wapinet forum
GNU General Public License v3.0
2 stars 1 forks source link

Удаление тем и сообщений только через POST #17

Closed Gemorroj closed 8 years ago

Gemorroj commented 8 years ago

Перед удалением темы или сообщения, выводить попап с подтверждением действия. Далее запрос на удаление должен отправляться методом POST

tipsun91 commented 8 years ago

У меня не получается, чтоб работало 2 popupMenu. 1 - это меню действий {Ред., Уд.}. 2 - это подтверждение удаления, окошко не отображается.

<ul data-role="listview" data-inset="true" data-split-icon="edit" data-split-theme="a">
        {% for post in posts %}
            <li class="ui-li-divider ui-bar-inherit ui-first-child" data-role="list-divider">{{ post.user.username }}: {{ post.createdAt|date }}</li>
            <li>
                <a>
                    <p>{{ post.text }}</p>
                </a>
                {% if app.user and is_granted('EDIT', post) %}
                    {# {{ path('post_edit', {'id': post.id}) }} #}
                    <a href="#post{{ post.id }}" data-rel="popup" data-transition="slideup" class="ui-btn ui-icon-gear ui-btn-icon-left ui-btn-a">Управление</a>
                    <div data-role="popup" id="post{{ post.id }}" data-theme="b">
                        <ul data-role="listview" data-inset="true" style="min-width:210px;">
                            <li data-role="list-divider">Действие</li>
                            <li><a href="{{ path('post_edit', {'id': post.id}) }}">Редактировать</a></li>
                            <li>
                                <a href="#postDelete{{ post.id }}" data-rel="popup" data-position-to="window" data-transition="pop" class="ui-btn ui-corner-all ui-shadow ui-btn-inline ui-icon-delete ui-btn-icon-left ui-btn-b">Удалить</a>
                            </li>
                        </ul>
                    </div>
                    <div data-role="popup" id="postDelete{{ post.id }}" data-overlay-theme="b" data-theme="b" data-dismissible="false" style="max-width:400px;">
                        <div data-role="header" data-theme="a">
                            <h1>Удалить сообщение?</h1>
                        </div>
                        <div role="main" class="ui-content">
                            <h3 class="ui-title">Вы уверены в том, что хотите удалить данное сообщение?</h3>
                            <p>Подтверждение</p>
                            <a href="#" class="ui-btn ui-corner-all ui-shadow ui-btn-inline ui-btn-b" data-rel="back">Отмена</a>
                            <a href="{{ path('post_delete', {'id': post.id}) }}" class="ui-btn ui-corner-all ui-shadow ui-btn-inline ui-btn-b" data-rel="back" data-transition="flow">Удаление</a>
                        </div>
                    </div>
                {% endif %}
            </li>
        {% else %}
            <li>Пусто</li>
        {% endfor %}
    </ul>
Gemorroj commented 8 years ago

не не не. должно быть всего 2 попапа, а не по 2 на каждый пост.

Gemorroj commented 8 years ago

на js нужно динамически их создавать.

tipsun91 commented 8 years ago

Не работает ссылка на другой popup через popup

{% extends '@Forum/layout/layout.html.twig' %}

{% block title %}{{ topic.forum.title }} / {{ topic.title }}{% endblock %}

{% block javascripts %}
    <script type="text/javascript">
        /*$.mobile.switchPopup = function(sourceElement, destinationElement, onswitched) {
            var afterClose = function() {
                destinationElement.popup("open");
                sourceElement.off("popupafterclose", afterClose);

                if (onswitched && typeof onswitched === "function"){
                    onswitched();
                }
            };

            sourceElement.on("popupafterclose", afterClose);
            sourceElement.popup("close");
        };*/

        /*
        $( document ).ready(function() {
            $( '#post' ).click(function( event ) {
                console.log( $( this ).attr('data-id') );
                $( '#actions' ).popup( 'open' );
            });

            $( '#post_delete' ).click(function( event ) {
                $( '#actions' ).popup( 'close' );
                $( '#popupDialog' ).popup( 'open' );
            });
        });

        $('#popupDialog').on('click', function () {
            $('#actions').popup('close');
            setTimeout( function() { $('#dialog').popup('open'); }, 100 );
        });
        */
    </script><!-- PopupMenu -->
{% endblock %}

{% block content %}
    {% block popup %}
        <!-- \ActionsPopup -->
        <div id="actions" data-role="popup" data-theme="b">
            <ul data-role="listview" data-inset="true" style="min-width:210px;">
                <li data-role="list-divider">Действие</li>
                {% if is_granted('EDIT', topic) or is_granted('EDIT', post) %}
                    <li><a id="post_edit">Редактировать</a></li>
                {% endif %}
                {% if is_granted('DELETE', topic) or is_granted('DELETE', post) %}
                    <!-- Link to confirmPopup -->
                    <li><a id="link2confirm" href="#confirm" data-rel="popup" data-position-to="window" data-transition="pop" class="ui-btn ui-corner-all ui-shadow ui-btn-inline ui-icon-delete ui-btn-icon-left ui-btn-b">Delete page...</a></li>
                {% endif %}
            </ul>
        </div>
        <!-- /actionsPopup -->
        <!-- \confirmPopup -->
        <div data-role="popup" id="confirm" data-overlay-theme="b" data-theme="b" data-dismissible="false" style="max-width:400px;">
            <div data-role="header" data-theme="a">
                <h1>Delete Page?</h1>
            </div>
            <div role="main" class="ui-content">
                <h3 class="ui-title">Are you sure you want to delete this page?</h3>
                <p>This action cannot be undone.</p>
                <a href="#" class="ui-btn ui-corner-all ui-shadow ui-btn-inline ui-btn-b" data-rel="back">Cancel</a>
                <a href="#" class="ui-btn ui-corner-all ui-shadow ui-btn-inline ui-btn-b" data-rel="back" data-transition="flow">Delete</a>
            </div>
        </div>
        <!-- /ConfirmPopup -->
    {% endblock %}
    <ul data-role="listview" data-inset="true" data-split-icon="edit" data-split-theme="a">
        {% for post in posts %}
            <li class="ui-li-divider ui-bar-inherit ui-first-child" data-role="list-divider">{{ post.user.username }}: {{ post.createdAt|date }}</li>
            <li>
                <a data-id="{{ post.id }}" id="post" href="#">
                    <p>{{ post.text }}</p>
                </a>
                {% if app.user and (is_granted('DELETE', post) or is_granted('EDIT', post)) %}
                    <!-- Link to actionsPopup -->
                    <a href="#actions" data-rel="popup" data-transition="slideup" class="ui-btn ui-icon-gear ui-btn-icon-left ui-btn-a">Управление</a>
                {% endif %}
            </li>
        {% else %}
            <li>Пусто</li>
        {% endfor %}
    </ul>
    {% include 'ForumBundle:layout:paginate.html.twig' with {'data': posts} %}

    {{ form_start(form) }}
        {{ form_widget(form) }}
    {{ form_end(form) }}

{% endblock %}
Gemorroj commented 8 years ago

делай 2 кнопки (отдельно удаление и редактирование). примерно как на скриншоте. -1 p.s. да кстати, примерно даже как тут на гитхабе.