в каком файле искать url, на который выкидывает после создания нового товара? ​

По кнопке "сохранить" отправляется форма <form action="?module=product&action=save" и запускается создание нового товара. А по окончании выкидывает на неудобную нам карточку свежесозданого товара.(в админке перебрасывает на страницу  (сайт/webasyst/shop/?action=products#/product/927/))
А хотелось бы сразу к списку всех товаров. В каком файле прописан или собирается этот url?

1 ответ

  • 1
    enso_studio@mail.ru 1 августа 2019 00:00 #

    подобные вещи лучше реализовывать с помощью переопределения базовых js событий

    • +1
      Billy01 Billy01 1 августа 2019 16:14 #

      Ну вот собственно мне и нужно то место в коде, где это базовое событие определяется...

      А ставить на кнопку всякого рода js нашлёпки вроде редиректа или обновления страницы - не вариант. Ибо до процедуры создания товара ID нового товара, который является частью нужного URL, системе не известен. (да, его можно вычислить, но это уже совсем другая история, которой хотелось бы избежать.)

      • +1
        enso_studio@mail.ru enso_studio@mail.ru 1 августа 2019 17:41 #

        это не важно, используй Proxy на windows.location, proxy-polyfill поможет избежать проблем с совместимостью

        • 0
          Billy01 Billy01 3 августа 2019 19:48 #

          У меня такое ощущение, что мы с вами говорим о разных,  абсолютно не связанных вещах:
             Во-первых, на кой ляд мне обёртка, если при наличии данных можно сделать и без неё? 
          вся трабла в отсутствии новых данных на момент сабмита.
             А во-вторых, потом вебассист перебрасывает в другую часть страницы, которая давно загружена,(ещё до начала заполнения названия товара) и в процессе добавления новой позиции она- страница http://мойсайт.ru/webasyst/shop/?action=products# так и не обновляется. 
             Что, в третьих, делает бессмысленным яваскрипты, размещенные в том месте, ибо они уже свой первый запуск отработали, а новых событий load, как и DOMContentLoaded не происходит. (каюсь, может не хватает опыта, но я просто не представляю как их ещё можно оттуда вызвать)

          быть может вы подскажете в какое именно место страницы администрирования продуктов предлагали вставить обернутый в proxy скрипт?

          • -2
            enso_studio@mail.ru enso_studio@mail.ru 4 августа 2019 02:32 #

            сначало навыеживатся, а потом может быть подcкажете... успехов))

            • 0
              Billy01 Billy01 7 августа 2019 11:36 #

              А может, прежде, чем писать "не важно" стоит сначала внимательно почитать задачу, вникнуть в проблему, или хотя бы не считать попытку разжевать по пунктам "выёживанием"?
              Ответа-то от вас так и не поступило...

              • 0
                enso_studio@mail.ru enso_studio@mail.ru 10 августа 2019 12:12 #

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

                'use strict';
                
                let $form = $('#s-product-save');
                $form.on('submit', function () {
                    new Proxy(
                        window.location,
                        {
                            set(target, prop, value) {
                                if (prop in target) {
                                    if (prop == 'hash' && /^#\/product\/[\d]+\/$/.test(value)) {
                                        window.location = '/webasyst/shop/?action=products#/products/';
                                    }
                                    target[prop] = value;
                                    return true;
                                }
                                return false;
                            }
                        }
                    );
                });
                
                // Если вебасистовский обработчик уже добавлен, то ставим наш перед ним
                let handlers = jQuery._data($form.get(0), 'events').submit;
                handlers.reverse();

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите