/* --------------------------------------------------------------
 *  demo_for_ai_admin.js – скрипт для админки.
 *
 *  Техники:
 *   – api() – уже существующая функция CMS,
 *   – _() и __() для локализации,
 *   – notify() и notify_answer() для уведомлений.
 * -------------------------------------------------------------- */

document.addEventListener( "DOMContentLoaded", function () {

    // Функция перевода
    function __( str ) {
        return _( str, "demo_for_ai.mod.php" );
    }

    const page = document.querySelector( "#demo_for_ai" );

    // Создание записи
    page.querySelector( ".button.create" ).addEventListener( "click", function () {
        const data = {
            fn:      "demo_for_ai_create",
            title:   page.querySelector( "input[name=title]" ).value,
            content: page.querySelector( "textarea[name=content]" ).value
        }
        api( data, function ( answer ) {
            notify_answer( answer );
            if ( answer.result ) {
                // Демонстрация возможности перевода на стороне js
                const msg = __( "record_created" );
                notify( msg, "success", 3000 );
            }
        } );
    } );

    // Удалить запись
    page.querySelector( ".button.del" ).addEventListener( "click", function () {
        const data = {
            fn: "demo_for_ai_delete",
            id: page.querySelector( "input[name=id]" ).value
        }

        api( data, function ( answer ) {
            notify_answer( answer );
            if ( answer.result ) {
                // При успешном удалении можно очистить поле ID
                page.querySelector( "input[name=id]" ).value = "";
                notify( __( "record_deleted" ), "success", 3000 );
            }
        } );
    } );

    // Добавляем обработчик кнопки «Получить запись»
    page.querySelector( ".button.get" ).addEventListener( "click", function () {
        const data = {
            fn:   "demo_for_ai_get",
            id:   page.querySelector( "input[name=id]" ).value
        };

        api( data, function ( answer ) {
            notify_answer( answer );
        } );
    } );

    // Скопировать код модуля
    document.querySelector( `#modules .modules [data-module="demo_for_ai.mod.php"] .link` )
    .addEventListener( "click", function( event ) {
        api( { fn: "demo_for_ai_get_files" }, function( answer ) {
            if ( ! answer.result ) {
                return;
            }
            console.log( answer.result.files );
            console.log( "size: " + answer.result.size );
            console.log( "lines: " + answer.result.lines );
            console.log( "files count: " + answer.result.count );

            let tmp = document.createElement( "textarea" );
            document.body.appendChild( tmp );
            tmp.value = answer.result.files;
            tmp.select();
            let r = document.execCommand("copy");
            tmp.remove();

            notify( r ? __( "copyed" ) : __( "copy_error" ), r ? "success" : "error", 3000 );
        } );
    } );

} );