Dziś trochę nietypowy artykuł. Od wersji 1.6 twórcy Presta Shop stworzyli mechanizm blokowania przycisku zapisywania np. produktu:
(Przycisk oczywiście jest animowany i obrazek powyżej to zrzut ekranu)
Tak naprawdę ten button występuje wszędzie tam, gdzie procesy w tle uniemożliwiają wysłanie formularza, który aktualizuje lub zapisuje jakieś dane.
Jest to o tyle denerwujące, że czasem (szczególnie na wolnych łączach lub przeładowanych serwerach gdzie jest nasz sklep) ładowanie tego elementu trwa mniej więcej „wieczność” 😉 A my np. chcemy jedynie zaktualizować cenę jednego produktu i wyjść z pracy..
Można przeprogramować całe zaplecze naszego oprogramowania i definitywnie pozbyć się tego powiedzmy sobie wprost – dziwactwa. Jednak dzisiaj pokażemy doraźny sposób na pozbycie się tego problemu. Nie usunie on tej przypadłości trwale, bo nie zalecamy definitywnego pozbycia się tego rozwiązania. W końcu po coś służy i tak daleko idąca operacja mogła by być dość nieobliczalna w skutkach..
Czasem nasze rozwiązanie też nie jest skuteczne – bo istotnie w tle są ładowane obligatoryjne informacje bez których nie zapiszemy rekordu.
Jak to zrobić pokażemy na podstawie przeglądarki MOZILLA FIREFOX:
- instalujemy darmowy dodatek do analizy „w locie” kodu html: https://addons.mozilla.org/pl/firefox/addon/firebug/
- klikamy na loadujący się przycisk prawym przyciskiem myszki i wybieramy opcję „zbadaj za pomocą firebuga” – zobacz obrazek
- w wyskakującym oknie znajdujemy węzeł (poprzez rozwianie węzłów za pomocą plusika) który odpowiada naszemu przyciskowi. Po najechaniu na kod z węzłem <button> powinien on się podświetlić – zobacz obrazek
- W naszym węźle <button> klikamy prawym przyciskiem na atrybut: disabled=”disabled” i wybieramy opcję „usuń atrybut disabled” – zobacz obrazek
- Po tej operacji – przycisk powinien zmienić wygląd (nie będzie poszarzały) i będzie możliwy do kliknięcia.
a co jeśli mam to „wiecznie” tzn. dodaję produkt, a te przyciski ciągle się ładują.. nigdy nie przestają. Każdorazowe używanie firebuga jest uciążliwe. Masz na to jakiś pomysł?
Trzeba by to bylo zrobić na sztywno w kontrolerze edytującym produkt. Tzn usunąć mechanizm dodawania atrybutu disabled do tego przycisku. Siedzi to jak myślę w Javascript. Jednak mimo że jest to maksymalnie denerwujące rozwiązanie to w tle są prawdopodobne wypełniane niektóre pola produktu. Przynajmniej na starcie edycji. Jak szybko zapiszesz produkt zaraz po jego otwarciu pewne dane mogą być utracone. Na pewno takie sztywne rozwiązanie i jego użytkowanie musiałoby iść z parze z robieniem kopii bezpieczeństwa sklepu przynajmniej przez pierwszy okres użytkowania
Albo zrobić warunek aby to wyłączyć tylko przy dodawaniu nowego produktu bo tak jest u Ciebie jak rozumiem.
usunałem we wszystkich widokach templatki w dodawaniu produktu disabled no i oczywiście staram się nie zapisywać od razu po wczytaniu..
googlałem o tym trochę i wiele osób ma podobny problem ..
dzięki za pomoc