jsTree: открыть папку добавления (или любую опцию правой кнопкой мыши) с модальным

Я унаследовал несколько закодированную программу загрузки, и она использует jsTree для вывода списка загруженных файлов. Когда вы щелкаете jsTree правой кнопкой мыши, вы получаете окно с некоторыми параметрами (Загрузить файл, Добавить папку, Удалить папку и т. д.). Они ведут на отдельные страницы. Мне было интересно, возможно ли, что когда вы нажимаете эти параметры, такие как «Добавить папку», это вызывает модальное всплывающее окно, а не переход на отдельную страницу?

Вот код, с которым я пытаюсь работать:

function buildTreeViewContextMenu(node)
{
    var items = {};
    if ($(node).attr('id') == 'trash')
    {
        <?php if($totalTrash > 0): ?>
        var items = {
            "Empty": {
                "label": "<?php echo t('empty_trash', 'Empty Trash'); ?>",
                "action": function(obj) {
                    confirmEmptyTrash();
                }
            }
        };
        <?php endif; ?>
    }
    else if ($(node).attr('id') == '-1')
    {
        var items = {
            "Upload": {
                "label": "<?php echo t('upload_files', 'Upload Files'); ?>",
                "separator_after": true,
                "action": function(obj) {

                    window.location='/';
                }
            },

            "Add": {
                "label": "<?php echo t('add_folder', 'Add Folder'); ?>",
                "action": function(obj) {                       
                    window.location='/view/folder/add?p='+obj.attr("id"); // this part I want to convert to a modal
                }
            }
        };

    }

И, например, вот модальное окно «Добавить папку»:

<div class="panel-body">
            <!-- Modal -->
            <div class="modal fade" id="modalAddFolder" tabindex="-1" role="dialog" aria-labelledby="modalAddFolder" aria-hidden="true">
                    <div class="modal-dialog">
                            <div class="modal-content">
                                <div class="modal-header">
                                        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                                        <h4 class="modal-title">Add Folder</h4>
                                </div>
                                <div class="modal-body">
                                    <?php require_once("folder/add.php"); ?>
                                </div>
                        </div>
                </div>
        </div>
        <!-- /Add Folder modal -->
    </div>
    <!-- /modal -->

Я пытался работать с этой страницей, но не в состоянии интегрировать его.


person Hybride    schedule 14.02.2014    source источник


Ответы (1)


Разобрался - надеюсь, это поможет кому-то еще. Это было намного проще, чем я думал:

Вы можете просто вызвать модальное окно с помощью некоторого jQuery (я не знаю, почему я не думал, что не могу смешивать javascript / jQuery - может быть, это не очень хорошая практика, но на данный момент это работает.)

 "Add": {
        "label": "<?php echo t('add_folder', 'Add Folder'); ?>",
         "action": function(obj) {
           $('#modalAddFolder').modal('show'); 
           }
          },

В отличие от window.location, этот не инициирует переменные, но при необходимости их можно легко присоединить.

person Hybride    schedule 16.02.2014