<?php

include_once __DIR__.'/core.php';

if (empty($id_record) && !empty($id_module)) {
    redirect(ROOTDIR.'/controller.php?id_module='.$id_module);
} elseif (empty($id_record) && empty($id_module)) {
    redirect(ROOTDIR.'/index.php');
}

include_once App::filepath('include|custom|', 'top.php');

// Lettura parametri iniziali del modulo
$module = Modules::get($id_module);

if (empty($module) || empty($module['enabled'])) {
    die(tr('Accesso negato'));
}

$module_dir = $module['directory'];

// Inclusione elementi fondamentali del modulo
include $docroot.'/actions.php';

// Widget in alto
echo '{( "name": "widgets", "id_module": "'.$id_module.'", "id_record": "'.$id_record.'", "position": "top", "place": "editor" )}';

$advanced_sessions = get_var('Attiva notifica di presenza utenti sul record');
if ($advanced_sessions) {
    $dbo->query('DELETE FROM zz_semaphores WHERE id_utente='.prepare($_SESSION['id_utente']).' AND posizione='.prepare($id_module.', '.$id_record));
    $dbo->query('INSERT INTO zz_semaphores (id_utente, posizione, updated) VALUES ('.prepare($_SESSION['id_utente']).', '.prepare($id_module.', '.$id_record).', NOW())');

    echo '
		<div class="box box-warning box-solid text-center info-active hide">
			<div class="box-header with-border">
				<h3 class="box-title"><i class="fa fa-warning"></i> '.tr('Attenzione!').'</h3>
			</div>
			<div class="box-body">
				<p>'.tr('I seguenti utenti stanno visualizzando questa pagina').':</p>
				<ul class="list">
				</ul>
				<p>'.tr('Prestare attenzione prima di effettuare modifiche, poichè queste potrebbero essere perse a causa di multipli salvataggi contemporanei').'.</p>
			</div>
		</div>';
}

if (empty($records)) {
    echo '
		<p>'.tr('Record non trovato').'.</p>';
} else {
    /*
        * Lettura eventuali plugins modulo da inserire come tab
        */
    echo '
		<div class="nav-tabs-custom">
			<ul class="nav nav-tabs pull-right" id="tabs" role="tablist">
				<li class="pull-left active header">';

    // Verifico se ho impostato un nome modulo personalizzato
    $name = $module['title'];

    echo '
					<a data-toggle="tab" href="#tab_0">
						<i class="'.$module['icon'].'"></i> '.$name;
    // Pulsante "Aggiungi" solo se il modulo è di tipo "table" e se esiste il template per la popup
    if (file_exists($docroot.'/modules/'.$module_dir.'/add.php') && $module['permessi'] == 'rw') {
        echo '
						<button type="button" class="btn btn-primary" data-toggle="modal" data-title="'.tr('Aggiungi').'..." data-target="#bs-popup" data-href="add.php?id_module='.$id_module.'"><i class="fa fa-plus"></i></button>';
    }
    echo '
					</a>
				</li>';

    $plugins = $dbo->fetchArray('SELECT id, title FROM zz_plugins WHERE idmodule_to='.prepare($id_module)." AND position='tab' AND enabled = 1 ORDER BY zz_plugins.order DESC");

    foreach ($plugins as $plugin) {
        echo '
				<li>
					<a data-toggle="tab" href="#tab_'.$plugin['id'].'" id="link-tab_'.$plugin['id'].'">'.$plugin['title'].'</a>
				</li>';
    }

    echo '
			</ul>

			<div class="tab-content">
                <div id="tab_0" class="tab-pane active">';

    // Pulsanti di default
    echo '
                    <div id="pulsanti">
                        <a class="btn btn-warning" href="'.ROOTDIR.'/controller.php?id_module='.$id_module.'">
                            <i class="fa fa-chevron-left"></i> '.tr("Torna all'elenco").'
                        </a>

                        <div class="pull-right">
                            {( "name": "button", "type": "print", "id_module": "'.$id_module.'", "id_record": "'.$id_record.'" )}

                            {( "name": "button", "type": "email", "id_module": "'.$id_module.'", "id_record": "'.$id_record.'" )}

                            <a class="btn btn-success" id="save">
                                <i class="fa fa-check"></i> '.tr('Salva').'
                            </a>
                        </div>
                    </div>

                    <script>
                    $(document).ready(function(){
                        var form = $("#module-edit").find("form").first();

                        // Aggiunta del submit
                        form.prepend(\'<button type="submit" id="submit" class="hide"></button>\');

                        $("#save").click(function(){
                            $("#submit").trigger("click");
                        });';

    // Pulsanti dinamici
    if (!isMobile()) {
        echo '
                        $("#pulsanti").affix({
                            offset: {
                                top: 200
                            }
                        });

                        if ($("#pulsanti").hasClass("affix")) {
                            $("#pulsanti").css("width", $("#tab_0").css("width"));
                        }

                        $("#pulsanti").on("affix.bs.affix", function(){
                            $("#pulsanti").css("width", $("#tab_0").css("width"));
                        });

                        $("#pulsanti").on("affix-top.bs.affix", function(){
                            $("#pulsanti").css("width", "100%");
                        });';
    }

    echo '
                    });
                    </script>

                    <div class="clearfix"></div>
                    <br>';

    // Pulsanti personalizzati
    ob_start();
    include Modules::filepath($id_module, 'buttons.php');
    $buttons = ob_get_clean();

    if (!empty($buttons)) {
        echo '
                    <div class="pull-right" id="pulsanti-modulo">
                        '.$buttons.'
                    </div>

                    <div class="clearfix"></div>
                    <br>';
    }

    // Contenuti del modulo
    echo '

                    <div id="module-edit">';

    // Lettura template modulo (verifico se ci sono template personalizzati, altrimenti uso quello base)
    if (file_exists($docroot.'/modules/'.$module_dir.'/custom/edit.php')) {
        include $docroot.'/modules/'.$module_dir.'/custom/edit.php';
    } elseif (file_exists($docroot.'/modules/'.$module_dir.'/custom/edit.html')) {
        include $docroot.'/modules/'.$module_dir.'/custom/edit.html';
    } elseif (file_exists($docroot.'/modules/'.$module_dir.'/edit.php')) {
        include $docroot.'/modules/'.$module_dir.'/edit.php';
    } elseif (file_exists($docroot.'/modules/'.$module_dir.'/edit.html')) {
        include $docroot.'/modules/'.$module_dir.'/edit.html';
    }

    echo '
                    </div>
                </div>';

    // Campi personalizzati
    echo '

                <div class="hide" id="custom_fields_top-edit">
                    {( "name": "custom_fields", "id_module": "'.$id_module.'", "id_record": "'.$id_record.'", "position": "top" )}
                </div>

                <div class="hide" id="custom_fields_bottom-edit">
                    {( "name": "custom_fields", "id_module": "'.$id_module.'", "id_record": "'.$id_record.'" )}
                </div>

                <script>
                $(document).ready(function(){
                    var form = $("#custom_fields_top-edit").parent().find("form").first();

                    // Campi a inizio form
                    form.prepend($("#custom_fields_top-edit").html());

                    // Campi a fine form
                    var last = form.find(".panel").last();
                    if (!last.length) {
                        last = form.find(".row").eq(-2);
                    }

                    last.after($("#custom_fields_bottom-edit").html());
                });
                </script>';

    foreach ($plugins as $plugin) {
        echo '
				<div id="tab_'.$plugin['id'].'" class="tab-pane">';

        $id_plugin = $plugin['id'];

        include $docroot.'/include/manager.php';

        echo '
				</div>';
    }

    echo '
			</div>
		</div>';
}

redirectOperation($id_module, $id_record);

// Widget in basso
echo '{( "name": "widgets", "id_module": "'.$id_module.'", "id_record": "'.$id_record.'", "position": "right", "place": "editor" )}';

echo '
		<hr>
        <a href="'.ROOTDIR.'/controller.php?id_module='.$id_module.'">
            <i class="fa fa-chevron-left"></i> '.tr('Indietro').'
        </a>';

echo '
<script>';

// Se l'utente ha i permessi in sola lettura per il modulo, converto tutti i campi di testo in span
if ($module['permessi'] == 'r') {
    ?>
			$(document).ready( function(){
				$('input, textarea, select', 'section.content').attr('readonly', 'true');
				$('select, input[type="checkbox"]').prop('disabled', true);
				$('a.btn, button, input[type=button], input[type=submit]', 'section.content').hide();
				$('a.btn-info, button.btn-info, input[type=button].btn-info', 'section.content').show();
			});
<?php
} ?>

		var content_was_modified = false;

		//controllo se digito qualche valore o cambio qualche select
		$("input, textarea, select").bind("change paste keyup", function(event) {
			if( event.keyCode >= 32 ){
				content_was_modified = true;
			}
		});

		//tolgo il controllo se sto salvando
		$(".btn-success, button[type=submit]").bind("click", function() {
			content_was_modified = false;
		});

		// questo controllo blocca il modulo vendita al banco, dopo la lettura con barcode, appare il messaggio di conferma
		window.onbeforeunload = function(){
			if(content_was_modified) {
				return  'Uscire senza salvare?';
			}
		};
<?php
if ($advanced_sessions) {
        ?>

		function getActiveUsers(){
			$.getJSON('<?php echo ROOTDIR; ?>/call.php', {
				id_module: <?php echo $id_module; ?>,
				id_record: <?php echo $id_record; ?>
			},
			function(data) {
				if (data.length != 0) {
					$(".info-active").removeClass("hide");
					$(".info-active .list").html("");
					$.each( data, function( key, val ) {
						$(".info-active .list").append("<li>"+val.username+"</li>");
					});
				}
				else $(".info-active").addClass("hide");
			});
		}

		getActiveUsers();

		setInterval(getActiveUsers, <?php echo get_var('Timeout notifica di presenza (minuti)') * 1000; ?>);
<?php
    }
?>
	</script>
<?php

include_once App::filepath('include|custom|', 'bottom.php');