Nepřekresluje se snippet, i když response je správná

mobcz
Člen | 9
+
0
-

Zdravím,

mám problém s nepřekreslujícím se snippetem.
Na jiných stránkách u webu mi to funguje v pořádku, i na téhle problémové v response dostanu snippet photosWrap se správnou hodnotou a to samé pro alertBox. Bohužel ale na stránce se reálně nic nepřekreslí.
Na stránce mám Dropzone.js formulář pro nahrávání fotek a ty se zpracovávají ve funkci uploadPhoto().
Nesetkal jste se prosím někdo s něčím podobným a podařilo se Vám to vyřešit? Nebo netušíte někdo prosím, v čem by mohla být chyba? Kód přikládám níže, díky moc! (snippet alertBox je v @layout.latte)

Latte

<form n:name="uploadPhotosForm" class="dropzone ajax" id="my-dropzone"></form>

<br />
<hr />
<br />
{snippet photosWrap}
    {foreach $presenter->getPhotos() as $key => $photo}
        <p>{$photo['name']}</p>
    {/foreach}
{/snippet}

PHP

	public function uploadPhotos($form)
	{
		$values = $form->getValues(true);
		$file = $form->getHttpData($form::DATA_FILE, 'file');

		$path = __DIR__ . "/../../www/gallery/".$values['albumName'];
		$thumbPath = __DIR__ . "/../../www/gallery/".$values['albumName'] . "_thumbs";

		if (!file_exists($path)) {
			mkdir($path, 0777, true);
		}
		if (!file_exists($thumbPath)) {
			mkdir($thumbPath, 0777, true);
		}

		$actual_name = pathinfo($file->name,PATHINFO_FILENAME);
		$original_name = $actual_name;
		$extension = pathinfo($file->name, PATHINFO_EXTENSION);

		$i = 1;
		$name = $file->name;
		while(file_exists($path.'/'.$actual_name.".".$extension))
		{
			$actual_name = (string)$original_name.$i;
			$name = $actual_name.".".$extension;
			$i++;
		}

		$file->move($path .'/'. $name);

		$image = Image::fromFile($path .'/'. $name);
		if($image->getWidth() > $image->getHeight()) {
			$image->resize(240, 240, Image::EXACT | Image::SHRINK_ONLY);
		}
		else {
			$image->resize(240, 240, Image::EXACT | Image::SHRINK_ONLY);
		}
		$image->sharpen();
		$image->save($path . '_thumbs/'. $name);

		$newRow = $this->database->table('gallery_photos')->insert([
			'albums' => $values['albumId'],
			'name' => $name,
			'title' => $name,
			'description' => null,
			'locale' => 'cz',
			'system_created' => $this->getCurrentTimestamp()
		]);

		$lastId = $this->database->table('gallery_photos')->select('id')->order('id DESC')->limit(1)->fetch();

		$this->setFlashMessage(1, 'success', Constants::SUCCESS_PHOTO_UPLOADED);
		$this->redrawControl('alertBox');
		$this->redrawControl('photosWrap');
	}
steelbull
Člen | 241
+
0
-

Problem bude potom v JavaScripte. Mas urcite naloadovanu kniznicu nette.ajax.js?

mobcz
Člen | 9
+
0
-

Musel jsem nakonec získat v javascriptu response od Dropzone a v závislosti na ní volat handler, který snippet překreslí.

<script>
    $(function() {
        Dropzone.autoDiscover = false;

        $(function() {
            // Now that the DOM is fully loaded, create the dropzone, and setup the
            // event listeners
            var myDropzone = new Dropzone("#my-dropzone");
            myDropzone.on("complete", function(file) {
                $.nette.ajax({
                    'url': {link updatePhotos!}
                });
            });
        })
    });
    </script>