Merge branch 'master' into 'levi'
# Conflicts: # interface.php
This commit is contained in:
		
						commit
						b34faa2aef
					
				
							
								
								
									
										15
									
								
								index.php
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								index.php
									
									
									
									
									
								
							@ -52,11 +52,12 @@
 | 
				
			|||||||
        <section class="upload-popup-inner-container" id="infoform">
 | 
					        <section class="upload-popup-inner-container" id="infoform">
 | 
				
			||||||
            <section style="margin: 0em 0em;">
 | 
					            <section style="margin: 0em 0em;">
 | 
				
			||||||
                <label for="author">Alkotó:*</label><br>
 | 
					                <label for="author">Alkotó:*</label><br>
 | 
				
			||||||
                <input type="text" id="author" style="width: 440px;" placeholder="Arthur Dent"><br><br>
 | 
					                <input type="text" id="author" style="width: 55%;" placeholder="Arthur Dent">
 | 
				
			||||||
 | 
					                <input type="text" id="author_group" style="margin-left: 0.0em; width: 38.5%;" placeholder="szürke csoport"><br><br>
 | 
				
			||||||
                <label for="imgtitle">Cím:*</label><br>
 | 
					                <label for="imgtitle">Cím:*</label><br>
 | 
				
			||||||
                <input type="text" id="imgtitle" style="width: 440px;" placeholder="Negyvenkettő"><br><br>
 | 
					                <input type="text" id="imgtitle" style="width: 95%;" placeholder="Negyvenkettő"><br><br>
 | 
				
			||||||
                <label for="description">Leírás:</label><br>
 | 
					                <label for="description">Leírás:</label><br>
 | 
				
			||||||
                <textarea id="description" style="width: 440px; height: 5em;"
 | 
					                <textarea id="description" style="width: 95%; height: 5em;"
 | 
				
			||||||
                          placeholder="A válasz az életet, a világmindenséget, meg mindent érintő kérdésre."></textarea><br><br>
 | 
					                          placeholder="A válasz az életet, a világmindenséget, meg mindent érintő kérdésre."></textarea><br><br>
 | 
				
			||||||
                <input type="checkbox" id="autocorrchkbox">Kérek automatikus képkorrekciót! (expozíció, élesítés)<br><br>
 | 
					                <input type="checkbox" id="autocorrchkbox">Kérek automatikus képkorrekciót! (expozíció, élesítés)<br><br>
 | 
				
			||||||
                <input type="checkbox" id="respchkbox">A feltöltött tartalmamért <i>teljes</i> felelősséget vállalok.<br><br>
 | 
					                <input type="checkbox" id="respchkbox">A feltöltött tartalmamért <i>teljes</i> felelősséget vállalok.<br><br>
 | 
				
			||||||
@ -65,14 +66,6 @@
 | 
				
			|||||||
                <section class="btn" onclick="publish()" id="publishbtn">Mehet!</section>
 | 
					                <section class="btn" onclick="publish()" id="publishbtn">Mehet!</section>
 | 
				
			||||||
            </section>
 | 
					            </section>
 | 
				
			||||||
        </section>
 | 
					        </section>
 | 
				
			||||||
        <section class="upload-popup-inner-container" id="imgcorrection">
 | 
					 | 
				
			||||||
            <section style="margin: 3em 0em;">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            </section>
 | 
					 | 
				
			||||||
            <section style="text-align: right;">
 | 
					 | 
				
			||||||
                <section class="btn" onclick="publish()" id="publishbtn">Mehet!</section>
 | 
					 | 
				
			||||||
            </section>
 | 
					 | 
				
			||||||
        </section>
 | 
					 | 
				
			||||||
    </section>
 | 
					    </section>
 | 
				
			||||||
</section>
 | 
					</section>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -21,12 +21,14 @@ function only_alpha_numeric($input)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// felhasználó IP címének meghatározása... nem is olyan triviális
 | 
					// felhasználó IP címének meghatározása... nem is olyan triviális
 | 
				
			||||||
// https://stackoverflow.com/a/2031935
 | 
					// https://stackoverflow.com/a/2031935
 | 
				
			||||||
function get_client_ip(){
 | 
					function get_client_ip()
 | 
				
			||||||
    foreach (array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED') as $key){
 | 
					{
 | 
				
			||||||
        if (array_key_exists($key, $_SERVER) === true){
 | 
					    foreach (array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED') as $key) {
 | 
				
			||||||
            foreach (explode(',', $_SERVER[$key]) as $ip){
 | 
					        if (array_key_exists($key, $_SERVER) === true) {
 | 
				
			||||||
 | 
					            foreach (explode(',', $_SERVER[$key]) as $ip) {
 | 
				
			||||||
                $ip = trim($ip); // just to be safe
 | 
					                $ip = trim($ip); // just to be safe
 | 
				
			||||||
                if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false){
 | 
					                if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 |
 | 
				
			||||||
 | 
					                        FILTER_FLAG_IPV6 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) {
 | 
				
			||||||
                    return $ip;
 | 
					                    return $ip;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@ -56,7 +58,7 @@ function incoming_from_uid($uid)
 | 
				
			|||||||
 *  -1: ismeretlen hiba
 | 
					 *  -1: ismeretlen hiba
 | 
				
			||||||
 *  -2: MIME-hiba
 | 
					 *  -2: MIME-hiba
 | 
				
			||||||
 *  -3: mérethiba
 | 
					 *  -3: mérethiba
 | 
				
			||||||
 *  -3: elérte a feltöltési limitet
 | 
					 *  -4: elérte a feltöltési limitet
 | 
				
			||||||
 * string: egyedi azonosító, a feltöltés sikerült
 | 
					 * string: egyedi azonosító, a feltöltés sikerült
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -71,7 +73,7 @@ function process_uploaded_file($file_info)
 | 
				
			|||||||
    $ip = mysqli_real_escape_string($dbconn, get_client_ip()); // escape, biztos ami biztos
 | 
					    $ip = mysqli_real_escape_string($dbconn, get_client_ip()); // escape, biztos ami biztos
 | 
				
			||||||
    $query = "SELECT COUNT(No) FROM server_access WHERE Timestamp > TIMESTAMPADD(MINUTE, -10, CURRENT_TIMESTAMP) AND IP = '$ip';";
 | 
					    $query = "SELECT COUNT(No) FROM server_access WHERE Timestamp > TIMESTAMPADD(MINUTE, -10, CURRENT_TIMESTAMP) AND IP = '$ip';";
 | 
				
			||||||
    $ret = (int)mysqli_query($dbconn, $query)->fetch_assoc()["COUNT(No)"];
 | 
					    $ret = (int)mysqli_query($dbconn, $query)->fetch_assoc()["COUNT(No)"];
 | 
				
			||||||
    if ($ret === false || $ret >= UPLOAD_LIMIT_10MIN){
 | 
					    if ($ret === false || $ret >= UPLOAD_LIMIT_10MIN) {
 | 
				
			||||||
        return LIMIT_ERROR;
 | 
					        return LIMIT_ERROR;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -108,7 +110,25 @@ function process_uploaded_file($file_info)
 | 
				
			|||||||
    return $tmp_uid;
 | 
					    return $tmp_uid;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// csoportnév ellenőrzése
 | 
				
			||||||
 | 
					function verify_group($g)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    // EZ ÍGY NEM JÓ!! EZT LE KELLENE TÖLTENI A KÖZI OLDALÁRÓL!!!
 | 
				
			||||||
 | 
					    $groups = ["bíbor", "tejszín", "borostyán", "azúr", "türkiz", "aquamarin", "burgundi", "zafír", "mangó",
 | 
				
			||||||
 | 
					        "levendula", "bambusz", "csipkebogyó", "mustár", "parázs", "áfonya"];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return in_array($g, $groups);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// kép publikálása
 | 
					// kép publikálása
 | 
				
			||||||
 | 
					// visszatérési értékek:
 | 
				
			||||||
 | 
					//   0: OK
 | 
				
			||||||
 | 
					//  -1: a kép már fel van töltve
 | 
				
			||||||
 | 
					//  -2: hibás csoportnév
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					define("DUPLICATE_IMAGE", -1);
 | 
				
			||||||
 | 
					define("NONEXISTENT_GROUP", -2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define("THUMB_LARGEST_SIDE", 400);
 | 
					define("THUMB_LARGEST_SIDE", 400);
 | 
				
			||||||
function publish_image($artwork_details)
 | 
					function publish_image($artwork_details)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -117,6 +137,23 @@ function publish_image($artwork_details)
 | 
				
			|||||||
    $MAX_THUMB_IMAGE_FILESIZE_STR = "100k"; // bélyegkép maximális mérete
 | 
					    $MAX_THUMB_IMAGE_FILESIZE_STR = "100k"; // bélyegkép maximális mérete
 | 
				
			||||||
    $THUMB_IMAGE_LARGEST_DIM = THUMB_LARGEST_SIDE; // bélyegkép hosszabb oldalának mérete
 | 
					    $THUMB_IMAGE_LARGEST_DIM = THUMB_LARGEST_SIDE; // bélyegkép hosszabb oldalának mérete
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // -----------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // adatbázis...
 | 
				
			||||||
 | 
					    global $dbconn;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // felhasználótól jött adatok, ellenőrizni kell
 | 
				
			||||||
 | 
					    $author = mysqli_real_escape_string($dbconn, $artwork_details["author"]);
 | 
				
			||||||
 | 
					    $title = mysqli_real_escape_string($dbconn, $artwork_details["title"]);
 | 
				
			||||||
 | 
					    $desc = mysqli_real_escape_string($dbconn, $artwork_details["desc"]);
 | 
				
			||||||
 | 
					    $group = mysqli_real_escape_string($dbconn, $artwork_details["group"]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // csoport ellenőrzése
 | 
				
			||||||
 | 
					    if (!verify_group($group)) {
 | 
				
			||||||
 | 
					        return NONEXISTENT_GROUP;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // fájlnevek meghatározása
 | 
				
			||||||
    $incoming_filename = incoming_from_uid(only_alpha_numeric($artwork_details["uid"]));
 | 
					    $incoming_filename = incoming_from_uid(only_alpha_numeric($artwork_details["uid"]));
 | 
				
			||||||
    $final_filename = date("Y_m_d_H_i_s") . bin2hex(openssl_random_pseudo_bytes(4)) . ".jpg";
 | 
					    $final_filename = date("Y_m_d_H_i_s") . bin2hex(openssl_random_pseudo_bytes(4)) . ".jpg";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -126,16 +163,17 @@ function publish_image($artwork_details)
 | 
				
			|||||||
    // korrekciós parancs
 | 
					    // korrekciós parancs
 | 
				
			||||||
    $autocorrect = $artwork_details["autocorrect"];
 | 
					    $autocorrect = $artwork_details["autocorrect"];
 | 
				
			||||||
    $img_autocorrect = $autocorrect ? "-normalize -sharpen 5" : "";
 | 
					    $img_autocorrect = $autocorrect ? "-normalize -sharpen 5" : "";
 | 
				
			||||||
 | 
					    $strip_exifdata = "-strip";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ha a fájl nagyobb, mint 2MB, akkor visszatömörítjük
 | 
					    // ha a fájl nagyobb, mint 2MB, akkor visszatömörítjük
 | 
				
			||||||
    $filesize = filesize($incoming_filename);
 | 
					    $filesize = filesize($incoming_filename);
 | 
				
			||||||
    if ($filesize > $MAX_LARGE_IMAGE_FILESIZE) {
 | 
					    if ($filesize > $MAX_LARGE_IMAGE_FILESIZE) {
 | 
				
			||||||
        $cmd = "convert -define jpeg:extent=$MAX_LARGE_IMAGE_FILESIZE_STR $img_autocorrect $incoming_filename $large_filename";
 | 
					        $cmd = "convert -define jpeg:extent=$MAX_LARGE_IMAGE_FILESIZE_STR $img_autocorrect $strip_exifdata $incoming_filename $large_filename";
 | 
				
			||||||
        shell_exec($cmd);
 | 
					        shell_exec($cmd);
 | 
				
			||||||
        unlink($incoming_filename); // törlés az incoming-ból
 | 
					        unlink($incoming_filename); // törlés az incoming-ból
 | 
				
			||||||
    } else { //...ha nem volt túl nagy a fájl
 | 
					    } else { //...ha nem volt túl nagy a fájl
 | 
				
			||||||
        if ($autocorrect) {
 | 
					        if ($autocorrect) {
 | 
				
			||||||
            $cmd = "convert $img_autocorrect $incoming_filename $large_filename";
 | 
					            $cmd = "convert $img_autocorrect $strip_exifdata $incoming_filename $large_filename";
 | 
				
			||||||
            shell_exec($cmd);
 | 
					            shell_exec($cmd);
 | 
				
			||||||
            unlink($incoming_filename); // törlés az incoming-ból
 | 
					            unlink($incoming_filename); // törlés az incoming-ból
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
@ -145,27 +183,21 @@ function publish_image($artwork_details)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    // bélyegkép elkészítése
 | 
					    // bélyegkép elkészítése
 | 
				
			||||||
    $thumb_filename = THUMBNAIL_DIR . DIRECTORY_SEPARATOR . $final_filename;
 | 
					    $thumb_filename = THUMBNAIL_DIR . DIRECTORY_SEPARATOR . $final_filename;
 | 
				
			||||||
    $cmd = "convert -define jpeg:extent=$MAX_THUMB_IMAGE_FILESIZE_STR -resize \"$THUMB_IMAGE_LARGEST_DIM>\" $large_filename $thumb_filename";
 | 
					    $cmd = "convert $strip_exifdata -define jpeg:extent=$MAX_THUMB_IMAGE_FILESIZE_STR -thumbnail \"$THUMB_IMAGE_LARGEST_DIM>\" $large_filename $thumb_filename";
 | 
				
			||||||
    shell_exec($cmd);
 | 
					    shell_exec($cmd);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // átlagszín kiszámítása
 | 
					    // átlagszín kiszámítása
 | 
				
			||||||
    $cmd = "convert $thumb_filename -resize 1x1\! -format \"rgb(%[fx:int(255*r+.5)],%[fx:int(255*g+.5)],%[fx:int(255*b+.5)])\" info:-";
 | 
					    $cmd = "convert $thumb_filename -resize 1x1\! -format \"rgb(%[fx:int(255*r+.5)],%[fx:int(255*g+.5)],%[fx:int(255*b+.5)])\" info:-";
 | 
				
			||||||
    $color_mean = shell_exec($cmd);
 | 
					    $color_mean = shell_exec($cmd);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // beírás az adatbázisba
 | 
					 | 
				
			||||||
    global $dbconn;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //echo mysqli_error($dbconn);
 | 
					    //echo mysqli_error($dbconn);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $img_sizes = getimagesize($thumb_filename);
 | 
					    $img_sizes = getimagesize($thumb_filename);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // felhasználótól jött adatok, ellenőrizni kell
 | 
					 | 
				
			||||||
    $author = mysqli_real_escape_string($dbconn, $artwork_details["author"]);
 | 
					 | 
				
			||||||
    $title = mysqli_real_escape_string($dbconn, $artwork_details["title"]);
 | 
					 | 
				
			||||||
    $desc = mysqli_real_escape_string($dbconn, $artwork_details["desc"]);
 | 
					 | 
				
			||||||
    $uid = md5_file($thumb_filename); // valami random...
 | 
					    $uid = md5_file($thumb_filename); // valami random...
 | 
				
			||||||
    $aspect_ratio = $img_sizes[0] / $img_sizes[1];
 | 
					    $aspect_ratio = $img_sizes[0] / $img_sizes[1];
 | 
				
			||||||
    $query = "INSERT INTO publish_table (Author,Title,Description,Image_FileName,AspectRatio,ColorMean,Approved,Confirmed,UID,TS) VALUES('$author', '$title', '$desc', '$final_filename', $aspect_ratio, '$color_mean', 1, 0, '$uid', CURRENT_TIMESTAMP);";
 | 
					
 | 
				
			||||||
 | 
					    $query = "INSERT INTO publish_table (Author,AuthorGroup,Title,Description,Image_FileName,AspectRatio,ColorMean,Approved,Confirmed,UID,TS) VALUES('$author', '$group', '$title', '$desc', '$final_filename', $aspect_ratio, '$color_mean', 1, 0, '$uid', CURRENT_TIMESTAMP);";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $res = mysqli_query($dbconn, $query);
 | 
					    $res = mysqli_query($dbconn, $query);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -173,7 +205,7 @@ function publish_image($artwork_details)
 | 
				
			|||||||
    if ($res === false) {
 | 
					    if ($res === false) {
 | 
				
			||||||
        unlink($large_filename);
 | 
					        unlink($large_filename);
 | 
				
			||||||
        unlink($thumb_filename);
 | 
					        unlink($thumb_filename);
 | 
				
			||||||
        return -1;
 | 
					        return DUPLICATE_IMAGE;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
@ -217,7 +249,8 @@ function get_batch($offset, $n)
 | 
				
			|||||||
    $batch = [];
 | 
					    $batch = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // kívánt mennyiségű képinformáció lekérdezése
 | 
					    // kívánt mennyiségű képinformáció lekérdezése
 | 
				
			||||||
    $query = "SELECT Image_FileName,AspectRatio,ColorMean,Author,Title,Description,UID FROM publish_table WHERE Approved=1 ORDER BY No DESC Limit $n OFFSET $offset;";
 | 
					    $query = "SELECT Image_FileName,AspectRatio,ColorMean,Author,AuthorGroup,Title,Description,UID FROM publish_table WHERE Approved=1 ORDER BY No DESC Limit $n OFFSET $offset;";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $ret = mysqli_query($dbconn, $query);
 | 
					    $ret = mysqli_query($dbconn, $query);
 | 
				
			||||||
    while (($row = $ret->fetch_assoc()) != NULL) {
 | 
					    while (($row = $ret->fetch_assoc()) != NULL) {
 | 
				
			||||||
        $batch[] = $row;
 | 
					        $batch[] = $row;
 | 
				
			||||||
@ -237,7 +270,8 @@ function get_update_batch($last_uid)
 | 
				
			|||||||
    $batch = [];
 | 
					    $batch = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // az utolsó UID óta érkezett sorok kiválogatása
 | 
					    // az utolsó UID óta érkezett sorok kiválogatása
 | 
				
			||||||
    $query = "SELECT Image_FileName,AspectRatio,ColorMean,Author,Description,Title,UID FROM publish_table WHERE No > (SELECT No FROM publish_table WHERE UID = '$last_uid') AND Approved=1;";
 | 
					    $query = "SELECT Image_FileName,AspectRatio,ColorMean,Author,AuthorGroup,Description,Title,UID FROM publish_table WHERE No > (SELECT No FROM publish_table WHERE UID = '$last_uid') AND Approved=1;";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $ret = mysqli_query($dbconn, $query);
 | 
					    $ret = mysqli_query($dbconn, $query);
 | 
				
			||||||
    while (($row = $ret->fetch_assoc()) != NULL) {
 | 
					    while (($row = $ret->fetch_assoc()) != NULL) {
 | 
				
			||||||
        $batch[] = $row;
 | 
					        $batch[] = $row;
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										65
									
								
								js/phw.js
									
									
									
									
									
								
							
							
						
						
									
										65
									
								
								js/phw.js
									
									
									
									
									
								
							@ -23,6 +23,7 @@ var upload_popup_id = "uploadpup";
 | 
				
			|||||||
var publish_btn_id = "publishbtn";
 | 
					var publish_btn_id = "publishbtn";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var image_uid = null;
 | 
					var image_uid = null;
 | 
				
			||||||
 | 
					var processing_busy = false; // feldolgozás folyamatban
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function determine_sliding_unit() {
 | 
					function determine_sliding_unit() {
 | 
				
			||||||
    if (window.innerWidth > 600) { // számítógépes megjelenítés
 | 
					    if (window.innerWidth > 600) { // számítógépes megjelenítés
 | 
				
			||||||
@ -45,21 +46,24 @@ function pup_reset() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    // mezők törlése
 | 
					    // mezők törlése
 | 
				
			||||||
    o("author").value = "";
 | 
					    o("author").value = "";
 | 
				
			||||||
 | 
					    o("author_group").value = "";
 | 
				
			||||||
    o("imgtitle").value = "";
 | 
					    o("imgtitle").value = "";
 | 
				
			||||||
    o("description").value = "";
 | 
					    o("description").value = "";
 | 
				
			||||||
 | 
					    o("fileselector").value = "";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// kép publikálása
 | 
					// kép publikálása
 | 
				
			||||||
function publish() {
 | 
					function publish() {
 | 
				
			||||||
    if (image_uid == null) { // csak, ha érvényes...
 | 
					    if (processing_busy || image_uid == null) { // csak, ha érvényes...
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // mezők kinyerése
 | 
					    // mezők kinyerése
 | 
				
			||||||
    let author = o("author").value;
 | 
					    let author = o("author").value.trim();
 | 
				
			||||||
    let title = o("imgtitle").value;
 | 
					    let title = o("imgtitle").value.trim();
 | 
				
			||||||
    let desc = o("description").value;
 | 
					    let desc = o("description").value.trim();
 | 
				
			||||||
    let autocorr = o("autocorrchkbox").checked;
 | 
					    let autocorr = o("autocorrchkbox").checked;
 | 
				
			||||||
 | 
					    let group = o("author_group").value.trim();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ha a kötelező mezők nincsenek kitöltve, akkor nem lehet beküldeni
 | 
					    // ha a kötelező mezők nincsenek kitöltve, akkor nem lehet beküldeni
 | 
				
			||||||
    if (author.trim() === "" || title.trim() === "") {
 | 
					    if (author.trim() === "" || title.trim() === "") {
 | 
				
			||||||
@ -78,7 +82,8 @@ function publish() {
 | 
				
			|||||||
        author: author,
 | 
					        author: author,
 | 
				
			||||||
        title: title,
 | 
					        title: title,
 | 
				
			||||||
        desc: desc,
 | 
					        desc: desc,
 | 
				
			||||||
        autocorrect: autocorr
 | 
					        autocorrect: autocorr,
 | 
				
			||||||
 | 
					        group: group
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // küldés
 | 
					    // küldés
 | 
				
			||||||
@ -90,24 +95,43 @@ function publish() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    req.onreadystatechange = state => {
 | 
					    req.onreadystatechange = state => {
 | 
				
			||||||
        if (req.status === 200 && req.readyState === 4) {
 | 
					        if (req.status === 200 && req.readyState === 4) {
 | 
				
			||||||
            close_upload_pup(); // popup resetelése
 | 
					            let close_if_needed = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (Number(req.response) === 0) {
 | 
					            if (Number(req.response) === 0) {
 | 
				
			||||||
                alert("Sikeres feltöltés!");
 | 
					                alert("Sikeres feltöltés!");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                req_update(); // frissítés kérése
 | 
				
			||||||
            } else if (Number(req.response) === -1) {
 | 
					            } else if (Number(req.response) === -1) {
 | 
				
			||||||
                alert("Ugyanezt képet már korábban feltöltötték!");
 | 
					                alert("Ugyanezt képet már korábban feltöltötték!");
 | 
				
			||||||
 | 
					            } else if (Number(req.response) === -2) {
 | 
				
			||||||
 | 
					                alert("A megadott csoport nem létezik!");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                close_if_needed = false; // nem kell bezárni, mert valószínűleg csak elírta
 | 
				
			||||||
 | 
					                o("author_group").focus(); // fókuszálás a csoport mezőre
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                alert("Valami nem stimmel!\nHa ismételten nem sikerül, kérlek jelezd a hibát!");
 | 
					                alert("Valami nem stimmel!\nHa ismételten nem sikerül, kérlek jelezd a hibát!");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // bezárás, ha szükséges
 | 
				
			||||||
 | 
					            if (close_if_needed) {
 | 
				
			||||||
 | 
					                // UID elfelejtése
 | 
				
			||||||
 | 
					                image_uid = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                // popup resetelése
 | 
				
			||||||
 | 
					                close_upload_pup();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            processing_busy = false;
 | 
				
			||||||
 | 
					            o(publish_btn_id).innerText = "Mehet!";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    req.open("POST", "interface.php");
 | 
					    req.open("POST", "interface.php");
 | 
				
			||||||
    req.send(formData);
 | 
					    req.send(formData);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // UID elfelejtése
 | 
					    // feldolgozás folyamatban
 | 
				
			||||||
    image_uid = null;
 | 
					    processing_busy = true;
 | 
				
			||||||
    o(publish_btn_id).innerText = "Türelem..."
 | 
					    o(publish_btn_id).innerHTML = "Türelem... <img src='media/loading.svg' height='16'>";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// feltöltés után kapott válasz feldolgozása
 | 
					// feltöltés után kapott válasz feldolgozása
 | 
				
			||||||
@ -172,6 +196,8 @@ function open_upload_pup() {
 | 
				
			|||||||
    let display = o("display");
 | 
					    let display = o("display");
 | 
				
			||||||
    display.style.filter = "blur(10px)";
 | 
					    display.style.filter = "blur(10px)";
 | 
				
			||||||
    scroll_enable(false);
 | 
					    scroll_enable(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    o("fileselector").value = "";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// feltöltőablak bezárása
 | 
					// feltöltőablak bezárása
 | 
				
			||||||
@ -222,7 +248,6 @@ var wall_height = 0; // a fal magassága, pixelben
 | 
				
			|||||||
var dynamic_load_distance = 200; // ennyi pixellel a fal alja előtt indítja a dinamikus betöltést
 | 
					var dynamic_load_distance = 200; // ennyi pixellel a fal alja előtt indítja a dinamikus betöltést
 | 
				
			||||||
var dynamic_loading_under_way = false; // dinamikus töltés folyamatban, ne indítsunk új requestet
 | 
					var dynamic_loading_under_way = false; // dinamikus töltés folyamatban, ne indítsunk új requestet
 | 
				
			||||||
var update_interval = 10000; // automatikus frissítés 10 másodpercenként
 | 
					var update_interval = 10000; // automatikus frissítés 10 másodpercenként
 | 
				
			||||||
var max_scaled_size_factor = 1.2; // hányszorosa lehet a nagyított kép az eredetinek
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
var thumbnails = [];
 | 
					var thumbnails = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -247,7 +272,7 @@ function init_photowall() {
 | 
				
			|||||||
    // automatikus frissítés
 | 
					    // automatikus frissítés
 | 
				
			||||||
    setInterval(() => {
 | 
					    setInterval(() => {
 | 
				
			||||||
        req_update();
 | 
					        req_update();
 | 
				
			||||||
    }, 10000);
 | 
					    }, update_interval);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// inicializálási lánc
 | 
					// inicializálási lánc
 | 
				
			||||||
@ -446,10 +471,15 @@ function compose_wall() {
 | 
				
			|||||||
    window.scrollTo(0, scroll_pos);
 | 
					    window.scrollTo(0, scroll_pos);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// frissítés folyamatban
 | 
				
			||||||
 | 
					var update_in_progress = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// frissítés lekérése
 | 
					// frissítés lekérése
 | 
				
			||||||
function req_update() {
 | 
					function req_update() {
 | 
				
			||||||
 | 
					    if (!update_in_progress) {
 | 
				
			||||||
 | 
					        update_in_progress = true;
 | 
				
			||||||
        async_req("update", recv_update, {last_uid: last_uid});
 | 
					        async_req("update", recv_update, {last_uid: last_uid});
 | 
				
			||||||
}
 | 
					    }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// frissítés fogadása
 | 
					// frissítés fogadása
 | 
				
			||||||
function recv_update(state, resp) {
 | 
					function recv_update(state, resp) {
 | 
				
			||||||
@ -475,6 +505,9 @@ function recv_update(state, resp) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    // fal összeállítása
 | 
					    // fal összeállítása
 | 
				
			||||||
    compose_wall();
 | 
					    compose_wall();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // update kész
 | 
				
			||||||
 | 
					    update_in_progress = false;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -633,6 +666,7 @@ function place_artcaptions() {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var viewer_open = false;
 | 
					var viewer_open = false;
 | 
				
			||||||
 | 
					var group_logo_repository = "https://mkkozi.hu/user/plugins/mkk-groups/logos";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// képnézegető megynitása
 | 
					// képnézegető megynitása
 | 
				
			||||||
function open_viewer(details) {
 | 
					function open_viewer(details) {
 | 
				
			||||||
@ -652,6 +686,13 @@ function open_viewer(details) {
 | 
				
			|||||||
    captions_bgcolor.a = 0.6;
 | 
					    captions_bgcolor.a = 0.6;
 | 
				
			||||||
    o("artcaptions").style.backgroundColor = captions_bgcolor.to_rgba();*/
 | 
					    o("artcaptions").style.backgroundColor = captions_bgcolor.to_rgba();*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // csoportlogó megjelenítése
 | 
				
			||||||
 | 
					    let glogo = document.createElement("img");
 | 
				
			||||||
 | 
					    glogo.src = `${group_logo_repository}/${details.AuthorGroup}.png`;
 | 
				
			||||||
 | 
					    glogo.alt = `(${details.AuthorGroup})`;
 | 
				
			||||||
 | 
					    glogo.classList.add("art-author-group");
 | 
				
			||||||
 | 
					    o("artauthor").appendChild(glogo);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // nézegető visszaállítása
 | 
					    // nézegető visszaállítása
 | 
				
			||||||
    change_viewer_magnification(1.0, true);
 | 
					    change_viewer_magnification(1.0, true);
 | 
				
			||||||
    change_viewer_offset({x: 0, y: 0}, true);
 | 
					    change_viewer_offset({x: 0, y: 0}, true);
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										6
									
								
								phw.css
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								phw.css
									
									
									
									
									
								
							@ -299,6 +299,12 @@ span.art-desc {
 | 
				
			|||||||
    margin-top: 0.5em;
 | 
					    margin-top: 0.5em;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					img.art-author-group {
 | 
				
			||||||
 | 
					    height: 1.45em;
 | 
				
			||||||
 | 
					    margin-left: 0.5em;
 | 
				
			||||||
 | 
					    vertical-align: middle;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@keyframes hide-art-caption {
 | 
					@keyframes hide-art-caption {
 | 
				
			||||||
    0% { max-height: 100vh; background-color: rgba(0, 0, 0, 0.6); }
 | 
					    0% { max-height: 100vh; background-color: rgba(0, 0, 0, 0.6); }
 | 
				
			||||||
    80% { max-height: 100vh; background-color: rgba(0, 0, 0, 0.6); }
 | 
					    80% { max-height: 100vh; background-color: rgba(0, 0, 0, 0.6); }
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user