Баха Волков

Баха Волков

С нами с 10 ноября 2016; Место в рейтинге пользователей: #12
Баха Волков
02 июня 2023, 12:29
+1
Кроме того, команда работает над новым большим проектом для сообщества, релиз которого будет чуть позже.
Абсолютно не понимаю о чем речь
Баха Волков
24 мая 2023, 19:03
+1
Есть какая-нибудь информация по срокам появления поддержки modx3? Спасибо
1. Данный компонент отлично работает с MODX 3, с одним, но — не работают файловые чанки и вы можете установить его вручную скачав транспортный пакет с github.

2. Есть черновой вариант полной поддержки MODX 3, но я занят по работе и кое-что масштабное готовлю для сообщества.

Как будет время доделаю
Баха Волков
17 мая 2023, 16:45
0
Причина простая, файловые сниппеты не поддерживаются, также как и на AjaxForm
Баха Волков
04 мая 2023, 09:09
0
Официальный маркетплейс болеет, т.к. там ведутся работы. Не только FetchIt недоступен, но и некоторые другие. Используйте modstore.pro
Баха Волков
17 апреля 2023, 08:42
+1
На данный момент можно установить вручную скачав отсюда, не будут работать только файловые чанки.
Баха Волков
09 апреля 2023, 19:28
1
+10
За внедрение линтеров получу много проклятий, наверное, но так действительно лучше
Баха Волков
27 марта 2023, 09:08
0
А рекапча поддерживается?
На данный момент можно использовать компонент reCaptchaV3, он отработает также как и с AjaxForm.

Не планируете расширять функционал, чтоб можно было чанки загружать?
Пока в планах такого нет, но всё может изменится
Баха Волков
23 марта 2023, 19:33
0
Обыкновенная переменная со ссылкой на объект document:

var D = document;
let D = document;
const D = document;

Не знаю зачем ему она, видимо для того чтобы писать короче
Баха Волков
23 марта 2023, 11:18
+1
Пожалуйста

1. Помни, это может поменяться, обращай внимания на обновления FetchIt
2. Пиши так:

let a = D.querySelector('.modalTmp form').getAttribute('data-fetchit')
// или
let a = D.querySelector('.modalTmp form').dataset.fetchit
Баха Волков
22 марта 2023, 20:12
+1
Если коротко, то так:

const fetchitInstance = new FetchIt(form: HTMLFormElement, config: {
  action: string,
  assetsUrl: string,
  actionUrl: string,
  inputInvalidClass: string,
  customInvalidClass: string,
  clearFieldsOnSuccess: boolean,
  pageId: number,
});

// или

FetchIt.create(config: {
  action: string,
  assetsUrl: string,
  actionUrl: string,
  inputInvalidClass: string,
  customInvalidClass: string,
  clearFieldsOnSuccess: boolean,
  pageId: number,
});

Но проблема в том, что конфиг генерируется во время рендера страницы. Так уж задумано. Я подумаю как можно облегчить такие задачи в будущем
Баха Волков
22 марта 2023, 11:22
0
В серверной части FetchIt практически является форком AjaxForm.
Баха Волков
21 марта 2023, 19:30
+1
Кстати, тут меня в комментариях @Лёша спросил про возможность показа сообщения в самой форме и я показал как это можно реализовать, но дело в том, что такая возможность была в альфа версии компонента, но я потом убрал такой функционал из коробки. Если проявите интерес, то я могу вернуть его.
Баха Волков
21 марта 2023, 19:17
+2
просто потому что я не могу придумать для чего это может понадобиться лично мне. А добавлять что-то, чтобы было такое себе.
Ну Артур, ну какой ты молодец. Добавлять авторизацию и регистрацию — это не «такое себе», просто я не понял и это вообще другое.

Хорошо, ты не смог придумать, а я представь — смог. Тык, тык и тык.

Грубо говоря да, но при желании всегда можно расширить класс.
Прости, но мне придётся поязвить — ты же обязательно покажешь как расширить класс? Т.е. для простой задачи добавить и/или изменить значение в форму перед её отправкой, нужно манипулировать с DOM или расширить класс? Прикольно.

Нет смысла обновлять то, что и так работает.
Я уже понял. Именно с этим лозунгом ты сменил jquery-form на XMLHttpRequest

Когда такая возможность появится — перепишу.
Ты проигнорировал вопрос про асинхронность в XMLHttpRequest, но это приводит к более веселой ситуации: А когда в XMLHttpRequest появится (спойлер — не появится, но есть библиотеки-обёртки над ним в которых реализована асинхронность) ты обратно перепишешь с Fetch API на XMLHttpRequest?
Баха Волков
21 марта 2023, 18:11
+1
Какой API нужен компоненту для отправки форм ajax'ом?
Банально — такой, такой и такой

Какие задачи связанные с отправкой формы нельзя решить используя AjaxFormitLogin?
Добавление и/или изменение значений отправляемых на сервер, например. Или ты хочешь предложить манипулировать DOM для этого?

AjaxForm тянул jQuery и jGrowl, AjaxFormitLogin тянет IziToast только для того, чтобы из коробки были уведомления. В документации написано как отключить их и заменить.
Ну мне то объяснять уж не стоило. Ответ на вопрос «Почему?» я знаю, тут другой несколько вопрос «Зачем?». Каждый раз когда зависимость обновиться, нужно будет обновить компонент? Ну прикольно. А еще бывают «прикольные приколы», когда разработчик sweetalert2 захочет выразить свой личный протест в OpenSource проекте, то как быть с этим?

Тут важно, не каждая зависимость это плохо, но это тот самый случай, когда легко и безболезненно можно обойтись и без него.

Fetch API не позволяет отслеживать процесс загрузки файлов, а мне это нужно.
Позиция ясна. А это единственная причина? Fetch API пока не позволяет. Но знаешь в чём загвоздка? Работа над введением этой возможности ведётся и оно точно появится, а ведётся ли работа над асинхронностью в XMLHttpRequest?
Баха Волков
21 марта 2023, 13:21
+1
Я так понял эти компоненты идентичны
Проблем у AjaxFormitLogin множество.

  • Отсутствие API
  • Нехватка событий (есть одно afl_complete) что не позволяет решать разные задачи
  • Повторение недостатка AjaxForm (AjaxForm тянул зависимость ввиде jgrowl, а AjaxFormitLogin теперь тянет iziToast)
  • Самое главное, AjaxFormitLogin заменил громоздкий jquery-form на XMLHttpRequest — это нонсенс
Баха Волков
21 марта 2023, 13:10
+1
так что вопрос — а можно показывать сообщение об успешной отправке в самой форме?
Да, легче легкого. Например, в чанке формы указываете какой-то элемент:

<form id="form-1">
    <!-- какая-то разметка -->
    <div class="successMessage"></div>
    <!-- какая-то разметка -->
<form>

document.addEventListener('fetchit:success', (e) => {
  const { form } = e.detail;

  if (form.getAttribute('id') === 'form-1') {
    const successMessage = form.querySelector('.successMessage');
    successMessage.innerHTML = 'Форма отправлена';

    // И вообще, делаете что хотите
  }
});

Именно поэтому я реализовал JS API (документация) таким образом, чтобы можно было реализовать разные сценарии.

Кстати, в версии альфа такая возможность была в коробке, но я выпилил в пользу API, но если люди захотят, то могу вернуть эту возможность.