diff --git a/README.md b/README.md
index d75aa85..ac7a350 100644
--- a/README.md
+++ b/README.md
@@ -20,9 +20,11 @@ Eine moderne, webbasierte Anwendung zur Verwaltung von Packlisten für Wanderung
## Funktionen
* **Artikeldatenbank:** Erfasse deine gesamte Ausrüstung mit Bild, Gewicht, Hersteller und Kategorie.
+* **Rucksack-Management:** Definiere deine Rucksäcke inkl. Fächern (Deckelfach, Bodenfach, etc.).
* **Intelligente Packlisten:**
* **Drag & Drop Editor:** Ziehe Artikel einfach aus deinem Bestand in die Liste.
- * **Verschachtelung (Nesting):** Organisiere deine Liste logisch. Ziehe Socken *in* den Packsack und den Packsack *in* den Rucksack.
+ * **Container-Logik:** Weise Trägern Rucksäcke zu. Die Fächer erscheinen automatisch als Ordner, in die du packen kannst.
+ * **Verschachtelung (Nesting):** Organisiere deine Liste logisch (z.B. Erste-Hilfe-Set im Deckelfach).
* **Haushalts-Modus:** Teile deinen Artikelbestand und deine Listen mit Familie oder Freunden.
* **Gewichtskalkulation:** Sieh sofort, wie schwer dein Rucksack ist und wie viel Gewicht auf welche Kategorie (z.B. "Kochen", "Schlafen") entfällt.
* **Druck-Optimierung:** Generiere eine übersichtliche PDF/Druckansicht zum Abhaken.
@@ -38,14 +40,14 @@ Eine moderne, webbasierte Anwendung zur Verwaltung von Packlisten für Wanderung
* MariaDB / MySQL Datenbank
* PHP-Erweiterungen: `mysqli`, `gd` (für Bildbearbeitung)
-### Schritt-für-Schritt
+### Neuinstallation
1. **Dateien hochladen:**
Kopiere alle Dateien aus diesem Repository in das Web-Verzeichnis deines Servers (z.B. `/var/www/html/packliste`).
2. **Datenbank einrichten:**
* Erstelle eine leere Datenbank (z.B. `packliste`).
- * Importiere die Datei `packliste.sql` in diese Datenbank (z.B. via phpMyAdmin oder Konsole).
+ * Importiere `packliste.sql` und anschließend `mysql_update.sql` (für die neuesten Features).
3. **Konfiguration:**
* Erstelle eine Datei `config.ini` **außerhalb** des öffentlichen Web-Verzeichnisses (z.B. ein Verzeichnis höher als `index.php`).
@@ -58,8 +60,10 @@ Eine moderne, webbasierte Anwendung zur Verwaltung von Packlisten für Wanderung
```
* *Hinweis:* Die Anwendung sucht standardmäßig unter `../config.ini`.
-4. **Berechtigungen:**
- Stelle sicher, dass der Webserver Schreibrechte auf den Ordner `uploads/` und `uploads/images/` hat.
+### Upgrade (Vorhandene Installation)
+
+1. Führe das SQL-Skript `mysql_update.sql` auf deiner Datenbank aus.
+2. Überschreibe die PHP-Dateien mit der neuesten Version.
---
@@ -73,66 +77,40 @@ Nach der Registrierung landest du auf dem Dashboard. Die App ist darauf ausgeleg
* **Mitglieder einladen:** Als Admin des Haushalts kannst du andere registrierte Benutzer per Benutzernamen einladen. Diese sehen nach dem Login eine Einladung, die sie annehmen können.
* **Vorteil:** Alle Artikel, die als "Für Haushalt freigegeben" markiert sind, können von allen Mitgliedern in deren Packlisten verwendet werden.
-### 2. Ausrüstung verwalten (Artikel)
+### 2. Ausrüstung verwalten (Artikel & Rucksäcke)
-Unter **"Artikel"** pflegst du deinen Bestand.
+* **Artikel:** Pfleg deinen Bestand unter "Artikel". Du kannst Bilder hochladen, eine URL angeben oder Bilder per Copy & Paste einfügen.
+* **Rucksäcke:** Unter **"Rucksäcke"** legst du deine Transportmittel an. Definiere hier auch die **Fächer** (z.B. Hauptfach, Deckelfach, Hüftgurt). Diese dienen später als Container in deinen Listen.
-* **Erstellen:** Klicke auf "Neuen Artikel hinzufügen".
-* **Bilder:** Du kannst Bilder hochladen, eine URL angeben oder (am Desktop sehr praktisch) ein Bild einfach per **Strg+V (Copy & Paste)** in das markierte Feld einfügen.
-* **Eigenschaften:**
- * **Gewicht:** Sei präzise! Das ist die Basis für die Statistiken.
- * **Verbrauchsartikel:** Markiere Dinge wie Gas, Essen oder Sonnencreme. Diese haben in Packlisten standardmäßig die Menge 1, können aber beliebig erhöht werden.
- * **Lagerort:** Hilft dir, das Zeug zu Hause wiederzufinden.
-* **Listenansicht:** Die Artikelliste ist nach Kategorien gruppiert. Du kannst Kategorien ein- und ausklappen und oben über das Suchfeld blitzschnell filtern (z.B. nach "Zelt" oder "Merino").
-
-### 3. Stammdaten (Kategorien, Orte, Hersteller)
-
-Damit alles ordentlich bleibt, solltest du die Stammdaten pflegen:
-
-* **Kategorien:** Definiere grobe Gruppen wie "Schlafen", "Küche", "Kleidung".
-* **Lagerorte:** Hierarchisch aufgebaut (z.B. "Kellerregal" -> "Kiste 3").
-* **Hersteller:** Wird oft beim Artikelanlegen automatisch mit angelegt, kann hier aber bereinigt werden.
-
-### 4. Packlisten erstellen & bearbeiten
+### 3. Packlisten erstellen & bearbeiten
Dies ist das Herzstück der Anwendung.
1. Gehe zu **"Packlisten"** und erstelle eine neue Liste.
-2. Klicke in der Übersicht auf **"Artikel verwalten"** (das Box-Icon) oder "Bearbeiten".
+2. **Rucksack-Zuweisung:** Wähle direkt beim Erstellen (oder später unter "Details bearbeiten"), wer welchen Rucksack trägt.
+3. Klicke in der Übersicht auf **"Artikel verwalten"** (das Box-Icon).
#### Der Packlisten-Editor (Drag & Drop)
Der Editor ist zweigeteilt:
* **Links:** Dein verfügbarer Artikelbestand (filterbar).
-* **Rechts:** Deine Packliste, gruppiert nach Trägern (Personen im Haushalt).
+* **Rechts:** Deine Packliste, gruppiert nach Trägern und deren Rucksäcken/Fächern.
**Bedienung:**
-* **Hinzufügen:** Ziehe einen Artikel von links nach rechts in den Bereich einer Person.
-* **Verschachteln (Nesting):** Das Killer-Feature! Du kannst Artikel **in** andere Artikel ziehen.
- * *Beispiel:* Ziehe den "Schlafsack" auf den "Rucksack". Der Schlafsack ist nun logisch im Rucksack verpackt.
- * Dies hilft enorm, die Übersicht zu behalten und beim Packen strukturiert vorzugehen.
+* **Packen:** Ziehe Artikel in die entsprechenden Fächer deines Rucksacks.
+* **Verschachteln:** Du kannst Artikel auch in andere Artikel ziehen (z.B. "Socken" in "Packbeutel").
* **Sortieren:** Ziehe Artikel nach oben oder unten, um die Reihenfolge zu ändern.
-* **Menge:** Ändere die Anzahl direkt im Eingabefeld.
-* **Komponenten:** Wenn du einen Artikel hinzufügst, der selbst Unter-Artikel im Bestand definiert hat (z.B. "Zelt" besteht aus "Zeltplane", "Gestänge", "Heringen"), fragt dich die App, ob diese Komponenten automatisch mit auf die Liste sollen.
-### 5. Drucken & Export
+### 4. Drucken & Export
Klicke in der Packlisten-Übersicht auf **"Details ansehen"** (Augen-Icon).
-* **Ansicht:** Du siehst eine hierarchische Baumstruktur deiner Liste.
-* **Statistiken:** Rechts (oder mobil unten) siehst du Diagramme zur Gewichtsverteilung nach Kategorie und Träger.
-* **Drucken:** Klicke auf "Drucken". Die Ansicht ist speziell für Papier optimiert:
- * Farben und Bilder werden reduziert.
- * Checkboxen zum manuellen Abhaken werden eingeblendet.
- * Ideal als Checkliste für den Rucksack-Pack-Abend.
+* **Ansicht:** Du siehst eine hierarchische Baumstruktur deiner Liste. Rucksäcke sind grün hinterlegt.
+* **Drucken:** Klicke auf "Drucken". Die Ansicht ist speziell für Papier optimiert (fettgedruckte Fächer, Checkboxen für Artikel).
-### 6. Profil & Einstellungen
+### 5. Profil & Einstellungen
-Unter **"Profil"** kannst du:
-* Dein Passwort und Benutzernamen ändern.
-* **App-Einstellungen:**
- * *Tabellenanzeige:* Wie viele Items pro Seite?
- * *Kategorien:* Sollen in der Artikelübersicht alle Kategorien standardmäßig eingeklappt sein? (Nützlich bei sehr vielen Artikeln).
+Unter **"Profil"** kannst du dein Passwort ändern und App-Einstellungen vornehmen.
---
diff --git a/add_packing_list.php b/add_packing_list.php
deleted file mode 100644
index d21e539..0000000
--- a/add_packing_list.php
+++ /dev/null
@@ -1,110 +0,0 @@
-prepare("SELECT household_id FROM users WHERE id = ?");
- $stmt_household->bind_param("i", $current_user_id);
- $stmt_household->execute();
- $household_id_for_user = $stmt_household->get_result()->fetch_assoc()['household_id'];
- $stmt_household->close();
-
- $name = trim($_POST['name']);
- $description = trim($_POST['description']);
- $household_id = isset($_POST['is_household_list']) && $household_id_for_user ? $household_id_for_user : NULL;
-
- if (empty($name)) {
- $message = '
+
+
diff --git a/api_packing_list_handler.php b/src/api_packing_list_handler.php
old mode 100644
new mode 100755
similarity index 61%
rename from api_packing_list_handler.php
rename to src/api_packing_list_handler.php
index 89825f0..5df171a
--- a/api_packing_list_handler.php
+++ b/src/api_packing_list_handler.php
@@ -69,7 +69,7 @@ try {
if(!$stmt_delete->execute()) throw new Exception("Fehler beim Löschen der alten Liste.");
$stmt_delete->close();
- $stmt_insert = $conn->prepare("INSERT INTO packing_list_items (packing_list_id, article_id, quantity, carrier_user_id, order_index, parent_packing_list_item_id) VALUES (?, ?, ?, ?, ?, ?)");
+ $stmt_insert = $conn->prepare("INSERT INTO packing_list_items (packing_list_id, article_id, quantity, carrier_user_id, order_index, parent_packing_list_item_id, backpack_id, backpack_compartment_id, name) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)");
$id_map = []; // Mappt temporäre Frontend-IDs auf neue DB-IDs
foreach ($items_from_frontend as $index => $item_data) {
@@ -77,6 +77,26 @@ try {
$article_id = intval($item_data['article_id']);
$carrier_id = ($item_data['carrier_id'] === 'null') ? NULL : intval($item_data['carrier_id']);
+ // New fields
+ $backpack_id = !empty($item_data['backpack_id']) ? intval($item_data['backpack_id']) : NULL;
+ $backpack_compartment_id = !empty($item_data['backpack_compartment_id']) ? intval($item_data['backpack_compartment_id']) : NULL;
+ // For normal items, name is NULL (fetched from articles). For containers, name might be set if needed, but usually containers are created via edit_packing_list_details.
+ // If this sync receives items that are containers (backpack_id set), we might not have 'name' in payload if it came from DOM.
+ // Actually, the containers are created in 'edit_details'. Sync just re-orders them.
+ // We need to preserve the 'name' if it exists in the old record, or pass it from frontend.
+ // Simplified: If article_id is 0 or null, we might need a name.
+ // BUT: The frontend sends 'article_id' from dataset. Containers created in backend have article_id=0 (or NULL).
+ // Let's assume for now we just persist what we get. If article_id is missing, we rely on DB to handle it (it's nullable?).
+ // Wait, the previous INSERT required article_id. We need to change article_id column to be NULLable or handle 0.
+
+ $article_id_val = ($article_id > 0) ? $article_id : NULL;
+ $name_val = NULL; // Only needed if we were passing names from frontend, which we aren't really for existing items.
+
+ // Re-fetch name for containers if we are re-inserting them?
+ // The sync deletes and re-inserts. If we don't provide a name for a container (which has no article_id), it will be lost!
+ // We MUST fetch the name from the frontend payload or the old DB record.
+ // Let's adding 'name' to payload in frontend is best.
+
// WICHTIG: Parent-ID muss bereits gemappt sein. Das Frontend MUSS Eltern VOR Kindern senden.
// Die rekursive "traverse"-Funktion im JS garantiert dies (Pre-Order Traversal).
$parent_pli_id = isset($item_data['parent_pli_id']) && isset($id_map[$item_data['parent_pli_id']]) ? $id_map[$item_data['parent_pli_id']] : null;
@@ -84,7 +104,7 @@ try {
$quantity = isset($old_quantities[$pli_id_frontend]) ? intval($old_quantities[$pli_id_frontend]) : 1;
if ($quantity < 1) $quantity = 1;
- $stmt_insert->bind_param("iiiiii", $packing_list_id, $article_id, $quantity, $carrier_id, $index, $parent_pli_id);
+ $stmt_insert->bind_param("iiiiiiiis", $packing_list_id, $article_id_val, $quantity, $carrier_id, $index, $parent_pli_id, $backpack_id, $backpack_compartment_id, $name_val);
if(!$stmt_insert->execute()) throw new Exception("Fehler beim Einfügen von Artikel " . $article_id . ": " . $stmt_insert->error);
$new_db_id = $conn->insert_id;
$id_map[$pli_id_frontend] = $new_db_id;
@@ -108,21 +128,56 @@ try {
foreach ($child_items as $child) {
$temp_index++;
- $stmt_insert->bind_param("iiiiii", $packing_list_id, $child['id'], 1, $carrier_id, $temp_index, $new_db_id);
+ // Child items are normal items
+ $stmt_insert->bind_param("iiiiiiiis", $packing_list_id, $child['id'], 1, $carrier_id, $temp_index, $new_db_id, $null_val, $null_val, $null_val);
+ $null_val = NULL;
if(!$stmt_insert->execute()) throw new Exception("Fehler beim Einfügen von Kind-Artikel " . $child['id']);
}
}
}
}
$stmt_insert->close();
+
+ // Post-Fix: Restore names for containers from Backpack tables if they were lost because we didn't send them from frontend.
+ // Actually, better to just UPDATE them based on IDs after insertion.
+ // Update Root Names
+ $conn->query("UPDATE packing_list_items pli JOIN backpacks b ON pli.backpack_id = b.id SET pli.name = CONCAT('Rucksack: ', b.name) WHERE pli.packing_list_id = $packing_list_id AND pli.backpack_id IS NOT NULL");
+ // Update Compartment Names
+ $conn->query("UPDATE packing_list_items pli JOIN backpack_compartments bc ON pli.backpack_compartment_id = bc.id SET pli.name = bc.name WHERE pli.packing_list_id = $packing_list_id AND pli.backpack_compartment_id IS NOT NULL");
+
break;
case 'delete_item':
$item_id = intval($data['item_id']);
- $stmt_update_children = $conn->prepare("UPDATE packing_list_items SET parent_packing_list_item_id = NULL WHERE parent_packing_list_item_id = ?");
- $stmt_update_children->bind_param("i", $item_id); $stmt_update_children->execute(); $stmt_update_children->close();
- $stmt_delete = $conn->prepare("DELETE FROM packing_list_items WHERE id = ? AND packing_list_id = ?");
- $stmt_delete->bind_param("ii", $item_id, $packing_list_id); $stmt_delete->execute(); $stmt_delete->close();
+
+ // Recursive Delete Logic using CTE if MySQL 8+ or manual recursion
+ // Manual recursion to be safe on older DBs:
+ $ids_to_delete = [$item_id];
+ $i = 0;
+ while($i < count($ids_to_delete)) {
+ $current_parent = $ids_to_delete[$i];
+ $stmt_children = $conn->prepare("SELECT id FROM packing_list_items WHERE parent_packing_list_item_id = ?");
+ $stmt_children->bind_param("i", $current_parent);
+ $stmt_children->execute();
+ $result = $stmt_children->get_result();
+ while($row = $result->fetch_assoc()) {
+ $ids_to_delete[] = $row['id'];
+ }
+ $stmt_children->close();
+ $i++;
+ }
+
+ // Delete all gathered IDs
+ $in_query = implode(',', array_fill(0, count($ids_to_delete), '?'));
+ $types = str_repeat('i', count($ids_to_delete));
+ $stmt_delete = $conn->prepare("DELETE FROM packing_list_items WHERE id IN ($in_query) AND packing_list_id = ?");
+
+ // Combine ID params and list ID
+ $delete_params = array_merge($ids_to_delete, [$packing_list_id]);
+ $delete_types = $types . 'i';
+ $stmt_delete->bind_param($delete_types, ...$delete_params);
+ $stmt_delete->execute();
+ $stmt_delete->close();
break;
case 'update_quantity':
$item_id = intval($data['item_id']);
@@ -169,7 +224,7 @@ function user_can_edit_list($conn, $packing_list_id, $user_id) {
}
function get_all_items($conn, $packing_list_id) {
- $stmt = $conn->prepare("SELECT pli.id, pli.article_id, pli.quantity, pli.parent_packing_list_item_id, pli.carrier_user_id, a.name, a.weight_grams, a.product_designation, a.consumable, m.name as manufacturer_name FROM packing_list_items pli JOIN articles a ON pli.article_id = a.id LEFT JOIN manufacturers m ON a.manufacturer_id = m.id WHERE pli.packing_list_id = ? ORDER BY pli.order_index ASC, pli.id ASC");
+ $stmt = $conn->prepare("SELECT pli.id, pli.article_id, pli.quantity, pli.parent_packing_list_item_id, pli.carrier_user_id, pli.backpack_id, pli.backpack_compartment_id, COALESCE(a.name, pli.name) as name, a.weight_grams, a.product_designation, a.consumable, m.name as manufacturer_name FROM packing_list_items pli LEFT JOIN articles a ON pli.article_id = a.id LEFT JOIN manufacturers m ON a.manufacturer_id = m.id WHERE pli.packing_list_id = ? ORDER BY pli.order_index ASC, pli.id ASC");
$stmt->bind_param("i", $packing_list_id);
$stmt->execute();
$result = $stmt->get_result()->fetch_all(MYSQLI_ASSOC);
diff --git a/articles.php b/src/articles.php
old mode 100644
new mode 100755
similarity index 100%
rename from articles.php
rename to src/articles.php
diff --git a/assets/css/style.css b/src/assets/css/style.css
old mode 100644
new mode 100755
similarity index 98%
rename from assets/css/style.css
rename to src/assets/css/style.css
index ffb6494..4ef2d41
--- a/assets/css/style.css
+++ b/src/assets/css/style.css
@@ -750,9 +750,22 @@ body::before {
padding: 0.75rem;
}
-.toggle-tree-btn {
- color: var(--color-secondary);
- transition: color 0.2s;
+.save-feedback {
+ position: fixed;
+ bottom: 20px;
+ left: 50%;
+ transform: translateX(-50%);
+ background-color: var(--color-primary-dark);
+ color: #fff;
+ padding: 10px 20px;
+ border-radius: 30px;
+ box-shadow: 0 4px 15px rgba(0,0,0,0.2);
+ z-index: 9999;
+ opacity: 0;
+ transition: opacity 0.3s ease-in-out;
+ pointer-events: none;
+ font-weight: 600;
+ font-size: 0.9rem;
}
/* --- Articles Table Styles --- */
/* Sticky Header */
diff --git a/src/backpack_utils.php b/src/backpack_utils.php
new file mode 100644
index 0000000..9000edf
--- /dev/null
+++ b/src/backpack_utils.php
@@ -0,0 +1,73 @@
+query("SELECT name FROM backpacks WHERE id = $backpack_id")->fetch_assoc();
+
+ // 2. Check/Create Root Item
+ // Use NULL safe comparison or check for NULL explicitly
+ // We need to allow for existing items that might be named differently if user renamed them?
+ // No, we stick to structure.
+ $root_id = 0;
+ $stmt = $conn->prepare("SELECT id FROM packing_list_items WHERE packing_list_id = ? AND carrier_user_id = ? AND backpack_id = ?");
+ $stmt->bind_param("iii", $list_id, $user_id, $backpack_id);
+ $stmt->execute();
+ $res = $stmt->get_result();
+
+ if ($row = $res->fetch_assoc()) {
+ $root_id = $row['id'];
+ } else {
+ // Create Root
+ $name = "Rucksack: " . $bp['name'];
+ // Use correct column count and NULLs
+ $stmt_ins = $conn->prepare("INSERT INTO packing_list_items (packing_list_id, carrier_user_id, name, backpack_id, quantity, article_id, order_index, parent_packing_list_item_id) VALUES (?, ?, ?, ?, 1, NULL, 0, NULL)");
+ $stmt_ins->bind_param("iisi", $list_id, $user_id, $name, $backpack_id);
+ $stmt_ins->execute();
+ $root_id = $stmt_ins->insert_id;
+ }
+
+ // 3. Sync Compartments
+ $comps = $conn->query("SELECT id, name FROM backpack_compartments WHERE backpack_id = $backpack_id ORDER BY sort_order ASC");
+ while ($comp = $comps->fetch_assoc()) {
+ // Check if item exists for this compartment AND this user
+ $stmt_c = $conn->prepare("SELECT id FROM packing_list_items WHERE packing_list_id = ? AND backpack_compartment_id = ? AND carrier_user_id = ?");
+ $stmt_c->bind_param("iii", $list_id, $comp['id'], $user_id);
+ $stmt_c->execute();
+ if ($stmt_c->get_result()->num_rows == 0) {
+ // Create Compartment Item
+ $c_name = $comp['name'];
+ $stmt_ins_c = $conn->prepare("INSERT INTO packing_list_items (packing_list_id, carrier_user_id, name, backpack_compartment_id, parent_packing_list_item_id, quantity, article_id, order_index) VALUES (?, ?, ?, ?, ?, 1, NULL, 0)");
+ $stmt_ins_c->bind_param("iisii", $list_id, $user_id, $c_name, $comp['id'], $root_id);
+ $stmt_ins_c->execute();
+ }
+ }
+}
+
+// Helper to get backpacks for a specific user context
+function get_available_backpacks_for_user($conn, $target_user_id, $household_id) {
+ // Check connection
+ if (!$conn || $conn->connect_errno) {
+ // Reconnect or fail gracefully?
+ // For now, assume caller must keep it open.
+ return [];
+ }
+
+ $bps = [];
+ $sql_bp = "SELECT id, name, user_id FROM backpacks WHERE user_id = ?";
+ if ($household_id) {
+ $sql_bp .= " OR household_id = ?";
+ $stmt_bp = $conn->prepare($sql_bp);
+ $stmt_bp->bind_param("ii", $target_user_id, $household_id);
+ } else {
+ $stmt_bp = $conn->prepare($sql_bp);
+ $stmt_bp->bind_param("i", $target_user_id);
+ }
+ $stmt_bp->execute();
+ $res_bp = $stmt_bp->get_result();
+ while ($row = $res_bp->fetch_assoc()) {
+ $bps[] = $row;
+ }
+ return $bps;
+}
+?>
\ No newline at end of file
diff --git a/src/backpacks.php b/src/backpacks.php
new file mode 100755
index 0000000..105352c
--- /dev/null
+++ b/src/backpacks.php
@@ -0,0 +1,137 @@
+prepare("SELECT id FROM backpacks WHERE id = ? AND user_id = ?");
+ $stmt->bind_param("ii", $delete_id, $user_id);
+ $stmt->execute();
+ if ($stmt->get_result()->num_rows > 0) {
+ $stmt_del = $conn->prepare("DELETE FROM backpacks WHERE id = ?");
+ $stmt_del->bind_param("i", $delete_id);
+ if ($stmt_del->execute()) {
+ $message = '
Rucksack gelöscht.
';
+ } else {
+ $message = '
Fehler beim Löschen: ' . $conn->error . '
';
+ }
+ } else {
+ $message = '
Keine Berechtigung.
';
+ }
+}
+
+// Fetch Backpacks (Personal + Household)
+// Logic: Show my backpacks AND backpacks from my household (if I'm in one)
+$household_id = null;
+$stmt_hh = $conn->prepare("SELECT household_id FROM users WHERE id = ?");
+$stmt_hh->bind_param("i", $user_id);
+$stmt_hh->execute();
+$res_hh = $stmt_hh->get_result();
+if ($row = $res_hh->fetch_assoc()) {
+ $household_id = $row['household_id'];
+}
+
+$backpacks = [];
+$sql = "SELECT b.*, u.username as owner_name
+ FROM backpacks b
+ JOIN users u ON b.user_id = u.id
+ WHERE b.user_id = ?";
+
+if ($household_id) {
+ $sql .= " OR (b.household_id = ?)";
+}
+$sql .= " ORDER BY b.name ASC";
+
+$stmt = $conn->prepare($sql);
+if ($household_id) {
+ $stmt->bind_param("ii", $user_id, $household_id);
+} else {
+ $stmt->bind_param("i", $user_id);
+}
+$stmt->execute();
+$result = $stmt->get_result();
+while ($row = $result->fetch_assoc()) {
+ $backpacks[] = $row;
+}
+
+?>
+
+
+
+
\ No newline at end of file
diff --git a/footer.php b/src/footer.php
old mode 100644
new mode 100755
similarity index 100%
rename from footer.php
rename to src/footer.php
diff --git a/header.php b/src/header.php
old mode 100644
new mode 100755
similarity index 97%
rename from header.php
rename to src/header.php
index ec7a4ad..2e92098
--- a/header.php
+++ b/src/header.php
@@ -53,6 +53,7 @@ if (isset($_SESSION['user_id'])) {
+
+
+
+
+
\ No newline at end of file
diff --git a/packing_lists.php b/src/packing_lists.php
old mode 100644
new mode 100755
similarity index 100%
rename from packing_lists.php
rename to src/packing_lists.php
diff --git a/print_packing_list.php b/src/print_packing_list.php
old mode 100644
new mode 100755
similarity index 83%
rename from print_packing_list.php
rename to src/print_packing_list.php
index b197dc3..8a2b091
--- a/print_packing_list.php
+++ b/src/print_packing_list.php
@@ -51,8 +51,8 @@ if ($packing_list_id > 0) {
}
if ($packing_list) {
- // Artikel der Packliste abrufen
- $stmt = $conn->prepare("SELECT pli.id AS packing_list_item_id, pli.article_id, pli.quantity, pli.parent_packing_list_item_id, a.name, a.weight_grams, c.name AS category_name, a.consumable, a.image_url FROM packing_list_items pli JOIN articles a ON pli.article_id = a.id LEFT JOIN categories c ON a.category_id = c.id WHERE pli.packing_list_id = ? ORDER BY pli.parent_packing_list_item_id ASC, a.name ASC");
+ // Artikel der Packliste abrufen - LEFT JOIN für Container Support
+ $stmt = $conn->prepare("SELECT pli.id AS packing_list_item_id, pli.article_id, pli.quantity, pli.parent_packing_list_item_id, pli.backpack_id, pli.backpack_compartment_id, COALESCE(a.name, pli.name) AS name, a.weight_grams, c.name AS category_name, a.consumable, a.image_url FROM packing_list_items pli LEFT JOIN articles a ON pli.article_id = a.id LEFT JOIN categories c ON a.category_id = c.id WHERE pli.packing_list_id = ? ORDER BY pli.parent_packing_list_item_id ASC, pli.order_index ASC");
if ($stmt) {
$stmt->bind_param("i", $packing_list_id);
$stmt->execute();
@@ -60,7 +60,8 @@ if ($packing_list) {
$raw_packing_list_items = [];
while ($row = $result->fetch_assoc()) {
$raw_packing_list_items[] = $row;
- $item_total_weight = $row['weight_grams'] * $row['quantity'];
+ $item_weight = $row['weight_grams'] ?? 0;
+ $item_total_weight = $item_weight * $row['quantity'];
$total_weight_grams += $item_total_weight;
$category_name = $row['category_name'] ?: 'Unkategorisiert';
if (!isset($weight_by_category[$category_name])) {
@@ -101,19 +102,32 @@ $total_weight_without_consumables = $total_weight_grams - $total_consumable_weig
function renderPrintablePackingListItemsRecursive($items, $level = 0) {
$html = '
';
if (!empty($item['children'])) {
$html .= renderPrintablePackingListItemsRecursive($item['children'], $level + 1);
diff --git a/public_list.php b/src/public_list.php
old mode 100644
new mode 100755
similarity index 100%
rename from public_list.php
rename to src/public_list.php
diff --git a/register.php b/src/register.php
old mode 100644
new mode 100755
similarity index 100%
rename from register.php
rename to src/register.php
diff --git a/rucksack_icon.png b/src/rucksack_icon.png
old mode 100644
new mode 100755
similarity index 100%
rename from rucksack_icon.png
rename to src/rucksack_icon.png
diff --git a/share_packing_list.php b/src/share_packing_list.php
old mode 100644
new mode 100755
similarity index 100%
rename from share_packing_list.php
rename to src/share_packing_list.php
diff --git a/storage_locations.php b/src/storage_locations.php
old mode 100644
new mode 100755
similarity index 100%
rename from storage_locations.php
rename to src/storage_locations.php
diff --git a/uploads/6852fc1190bc2.png b/src/uploads/6852fc1190bc2.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/6852fc1190bc2.png
rename to src/uploads/6852fc1190bc2.png
diff --git a/uploads/685306028b828.png b/src/uploads/685306028b828.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/685306028b828.png
rename to src/uploads/685306028b828.png
diff --git a/uploads/685306a5be4af.png b/src/uploads/685306a5be4af.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/685306a5be4af.png
rename to src/uploads/685306a5be4af.png
diff --git a/uploads/68530b5956db3.png b/src/uploads/68530b5956db3.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/68530b5956db3.png
rename to src/uploads/68530b5956db3.png
diff --git a/uploads/685314e648206.png b/src/uploads/685314e648206.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/685314e648206.png
rename to src/uploads/685314e648206.png
diff --git a/uploads/6853157b136ce.png b/src/uploads/6853157b136ce.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/6853157b136ce.png
rename to src/uploads/6853157b136ce.png
diff --git a/uploads/images/img_68519d40cefc91.06373491.png b/src/uploads/images/img_68519d40cefc91.06373491.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_68519d40cefc91.06373491.png
rename to src/uploads/images/img_68519d40cefc91.06373491.png
diff --git a/uploads/images/img_68528c880b1401.14908112.jpg b/src/uploads/images/img_68528c880b1401.14908112.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_68528c880b1401.14908112.jpg
rename to src/uploads/images/img_68528c880b1401.14908112.jpg
diff --git a/uploads/images/img_6852aa2e9a9ac8.18122970.png b/src/uploads/images/img_6852aa2e9a9ac8.18122970.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6852aa2e9a9ac8.18122970.png
rename to src/uploads/images/img_6852aa2e9a9ac8.18122970.png
diff --git a/uploads/images/img_6852aae52a8590.99789219.png b/src/uploads/images/img_6852aae52a8590.99789219.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6852aae52a8590.99789219.png
rename to src/uploads/images/img_6852aae52a8590.99789219.png
diff --git a/uploads/images/img_6852d1707d0af4.43646571.png b/src/uploads/images/img_6852d1707d0af4.43646571.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6852d1707d0af4.43646571.png
rename to src/uploads/images/img_6852d1707d0af4.43646571.png
diff --git a/uploads/images/img_68530888b01da3.01042792.png b/src/uploads/images/img_68530888b01da3.01042792.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_68530888b01da3.01042792.png
rename to src/uploads/images/img_68530888b01da3.01042792.png
diff --git a/uploads/images/img_685308945b37e1.08844156.png b/src/uploads/images/img_685308945b37e1.08844156.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_685308945b37e1.08844156.png
rename to src/uploads/images/img_685308945b37e1.08844156.png
diff --git a/uploads/images/img_6853093a3b0fb7.10685249.png b/src/uploads/images/img_6853093a3b0fb7.10685249.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6853093a3b0fb7.10685249.png
rename to src/uploads/images/img_6853093a3b0fb7.10685249.png
diff --git a/uploads/images/img_68530974a15736.57910512.png b/src/uploads/images/img_68530974a15736.57910512.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_68530974a15736.57910512.png
rename to src/uploads/images/img_68530974a15736.57910512.png
diff --git a/uploads/images/img_685309b775df63.28364476.png b/src/uploads/images/img_685309b775df63.28364476.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_685309b775df63.28364476.png
rename to src/uploads/images/img_685309b775df63.28364476.png
diff --git a/uploads/images/img_68530a6f2c08f5.96614673.png b/src/uploads/images/img_68530a6f2c08f5.96614673.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_68530a6f2c08f5.96614673.png
rename to src/uploads/images/img_68530a6f2c08f5.96614673.png
diff --git a/uploads/images/img_68530aff6faf10.53187686.png b/src/uploads/images/img_68530aff6faf10.53187686.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_68530aff6faf10.53187686.png
rename to src/uploads/images/img_68530aff6faf10.53187686.png
diff --git a/uploads/images/img_68530ba765f0c1.87888941.png b/src/uploads/images/img_68530ba765f0c1.87888941.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_68530ba765f0c1.87888941.png
rename to src/uploads/images/img_68530ba765f0c1.87888941.png
diff --git a/uploads/images/img_68530bdb75d1a9.18204952.png b/src/uploads/images/img_68530bdb75d1a9.18204952.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_68530bdb75d1a9.18204952.png
rename to src/uploads/images/img_68530bdb75d1a9.18204952.png
diff --git a/uploads/images/img_68530c8fc7ce78.25162975.png b/src/uploads/images/img_68530c8fc7ce78.25162975.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_68530c8fc7ce78.25162975.png
rename to src/uploads/images/img_68530c8fc7ce78.25162975.png
diff --git a/uploads/images/img_68530d38ce6cd7.76753737.png b/src/uploads/images/img_68530d38ce6cd7.76753737.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_68530d38ce6cd7.76753737.png
rename to src/uploads/images/img_68530d38ce6cd7.76753737.png
diff --git a/uploads/images/img_68530e3263a8f3.11354541.png b/src/uploads/images/img_68530e3263a8f3.11354541.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_68530e3263a8f3.11354541.png
rename to src/uploads/images/img_68530e3263a8f3.11354541.png
diff --git a/uploads/images/img_68530fbf34fd66.94667834.png b/src/uploads/images/img_68530fbf34fd66.94667834.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_68530fbf34fd66.94667834.png
rename to src/uploads/images/img_68530fbf34fd66.94667834.png
diff --git a/uploads/images/img_685310c0348007.20030955.png b/src/uploads/images/img_685310c0348007.20030955.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_685310c0348007.20030955.png
rename to src/uploads/images/img_685310c0348007.20030955.png
diff --git a/uploads/images/img_68531110a66323.47909040.png b/src/uploads/images/img_68531110a66323.47909040.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_68531110a66323.47909040.png
rename to src/uploads/images/img_68531110a66323.47909040.png
diff --git a/uploads/images/img_685311fd9dc421.95301293.png b/src/uploads/images/img_685311fd9dc421.95301293.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_685311fd9dc421.95301293.png
rename to src/uploads/images/img_685311fd9dc421.95301293.png
diff --git a/uploads/images/img_685312afc6c000.67281690.png b/src/uploads/images/img_685312afc6c000.67281690.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_685312afc6c000.67281690.png
rename to src/uploads/images/img_685312afc6c000.67281690.png
diff --git a/uploads/images/img_685313c68df985.82769092.png b/src/uploads/images/img_685313c68df985.82769092.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_685313c68df985.82769092.png
rename to src/uploads/images/img_685313c68df985.82769092.png
diff --git a/uploads/images/img_685314c336de58.35409547.png b/src/uploads/images/img_685314c336de58.35409547.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_685314c336de58.35409547.png
rename to src/uploads/images/img_685314c336de58.35409547.png
diff --git a/uploads/images/img_68531517362e81.34960172.png b/src/uploads/images/img_68531517362e81.34960172.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_68531517362e81.34960172.png
rename to src/uploads/images/img_68531517362e81.34960172.png
diff --git a/uploads/images/img_685316a6098399.74821974.png b/src/uploads/images/img_685316a6098399.74821974.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_685316a6098399.74821974.png
rename to src/uploads/images/img_685316a6098399.74821974.png
diff --git a/uploads/images/img_68531a8befbae4.75954207.png b/src/uploads/images/img_68531a8befbae4.75954207.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_68531a8befbae4.75954207.png
rename to src/uploads/images/img_68531a8befbae4.75954207.png
diff --git a/uploads/images/img_68555c338e1915.37648028.png b/src/uploads/images/img_68555c338e1915.37648028.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_68555c338e1915.37648028.png
rename to src/uploads/images/img_68555c338e1915.37648028.png
diff --git a/uploads/images/img_68555e40030f77.87225795.png b/src/uploads/images/img_68555e40030f77.87225795.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_68555e40030f77.87225795.png
rename to src/uploads/images/img_68555e40030f77.87225795.png
diff --git a/uploads/images/img_68692cad8256a4.61815158.png b/src/uploads/images/img_68692cad8256a4.61815158.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_68692cad8256a4.61815158.png
rename to src/uploads/images/img_68692cad8256a4.61815158.png
diff --git a/uploads/images/img_686eade3358e94.97676456.jpg b/src/uploads/images/img_686eade3358e94.97676456.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686eade3358e94.97676456.jpg
rename to src/uploads/images/img_686eade3358e94.97676456.jpg
diff --git a/uploads/images/img_686eb198525ec7.50536364.jpg b/src/uploads/images/img_686eb198525ec7.50536364.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686eb198525ec7.50536364.jpg
rename to src/uploads/images/img_686eb198525ec7.50536364.jpg
diff --git a/uploads/images/img_686eb1ef18f034.45725063.png b/src/uploads/images/img_686eb1ef18f034.45725063.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686eb1ef18f034.45725063.png
rename to src/uploads/images/img_686eb1ef18f034.45725063.png
diff --git a/uploads/images/img_686eb212d64645.26126428.png b/src/uploads/images/img_686eb212d64645.26126428.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686eb212d64645.26126428.png
rename to src/uploads/images/img_686eb212d64645.26126428.png
diff --git a/uploads/images/img_686eb271e0c6a9.39415484.jpg b/src/uploads/images/img_686eb271e0c6a9.39415484.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686eb271e0c6a9.39415484.jpg
rename to src/uploads/images/img_686eb271e0c6a9.39415484.jpg
diff --git a/uploads/images/img_686eb3086df945.36369833.png b/src/uploads/images/img_686eb3086df945.36369833.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686eb3086df945.36369833.png
rename to src/uploads/images/img_686eb3086df945.36369833.png
diff --git a/uploads/images/img_686eb33807fd63.00035931.png b/src/uploads/images/img_686eb33807fd63.00035931.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686eb33807fd63.00035931.png
rename to src/uploads/images/img_686eb33807fd63.00035931.png
diff --git a/uploads/images/img_686eb5bc838ae5.80233818.png b/src/uploads/images/img_686eb5bc838ae5.80233818.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686eb5bc838ae5.80233818.png
rename to src/uploads/images/img_686eb5bc838ae5.80233818.png
diff --git a/uploads/images/img_686ebd1e6af955.32076521.png b/src/uploads/images/img_686ebd1e6af955.32076521.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686ebd1e6af955.32076521.png
rename to src/uploads/images/img_686ebd1e6af955.32076521.png
diff --git a/uploads/images/img_686ebdb32de4d3.21230679.jpg b/src/uploads/images/img_686ebdb32de4d3.21230679.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686ebdb32de4d3.21230679.jpg
rename to src/uploads/images/img_686ebdb32de4d3.21230679.jpg
diff --git a/uploads/images/img_686ebe5846ea42.68414437.jpg b/src/uploads/images/img_686ebe5846ea42.68414437.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686ebe5846ea42.68414437.jpg
rename to src/uploads/images/img_686ebe5846ea42.68414437.jpg
diff --git a/uploads/images/img_686ebeb3473cf8.68015324.jpg b/src/uploads/images/img_686ebeb3473cf8.68015324.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686ebeb3473cf8.68015324.jpg
rename to src/uploads/images/img_686ebeb3473cf8.68015324.jpg
diff --git a/uploads/images/img_686ebeec251778.89470573.jpg b/src/uploads/images/img_686ebeec251778.89470573.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686ebeec251778.89470573.jpg
rename to src/uploads/images/img_686ebeec251778.89470573.jpg
diff --git a/uploads/images/img_686ebfa1bee290.81344086.png b/src/uploads/images/img_686ebfa1bee290.81344086.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686ebfa1bee290.81344086.png
rename to src/uploads/images/img_686ebfa1bee290.81344086.png
diff --git a/uploads/images/img_686ec0042d3ad8.71473135.jpg b/src/uploads/images/img_686ec0042d3ad8.71473135.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686ec0042d3ad8.71473135.jpg
rename to src/uploads/images/img_686ec0042d3ad8.71473135.jpg
diff --git a/uploads/images/img_686ec04d316485.12649368.png b/src/uploads/images/img_686ec04d316485.12649368.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686ec04d316485.12649368.png
rename to src/uploads/images/img_686ec04d316485.12649368.png
diff --git a/uploads/images/img_686ec070bc29e1.89910936.jpg b/src/uploads/images/img_686ec070bc29e1.89910936.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686ec070bc29e1.89910936.jpg
rename to src/uploads/images/img_686ec070bc29e1.89910936.jpg
diff --git a/uploads/images/img_686f30ac792db4.81124214.jpg b/src/uploads/images/img_686f30ac792db4.81124214.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f30ac792db4.81124214.jpg
rename to src/uploads/images/img_686f30ac792db4.81124214.jpg
diff --git a/uploads/images/img_686f30d181b9d3.27666927.jpg b/src/uploads/images/img_686f30d181b9d3.27666927.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f30d181b9d3.27666927.jpg
rename to src/uploads/images/img_686f30d181b9d3.27666927.jpg
diff --git a/uploads/images/img_686f30fc1384a1.47381841.jpg b/src/uploads/images/img_686f30fc1384a1.47381841.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f30fc1384a1.47381841.jpg
rename to src/uploads/images/img_686f30fc1384a1.47381841.jpg
diff --git a/uploads/images/img_686f31607f1ef4.88047468.jpg b/src/uploads/images/img_686f31607f1ef4.88047468.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f31607f1ef4.88047468.jpg
rename to src/uploads/images/img_686f31607f1ef4.88047468.jpg
diff --git a/uploads/images/img_686f317edd6d15.06826823.jpg b/src/uploads/images/img_686f317edd6d15.06826823.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f317edd6d15.06826823.jpg
rename to src/uploads/images/img_686f317edd6d15.06826823.jpg
diff --git a/uploads/images/img_686f31c24a1eb8.68836662.png b/src/uploads/images/img_686f31c24a1eb8.68836662.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f31c24a1eb8.68836662.png
rename to src/uploads/images/img_686f31c24a1eb8.68836662.png
diff --git a/uploads/images/img_686f31e47abfd0.63425175.jpg b/src/uploads/images/img_686f31e47abfd0.63425175.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f31e47abfd0.63425175.jpg
rename to src/uploads/images/img_686f31e47abfd0.63425175.jpg
diff --git a/uploads/images/img_686f3279b68214.98565257.jpg b/src/uploads/images/img_686f3279b68214.98565257.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f3279b68214.98565257.jpg
rename to src/uploads/images/img_686f3279b68214.98565257.jpg
diff --git a/uploads/images/img_686f3303e805a2.81536340.png b/src/uploads/images/img_686f3303e805a2.81536340.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f3303e805a2.81536340.png
rename to src/uploads/images/img_686f3303e805a2.81536340.png
diff --git a/uploads/images/img_686f333fee46c9.36367057.jpg b/src/uploads/images/img_686f333fee46c9.36367057.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f333fee46c9.36367057.jpg
rename to src/uploads/images/img_686f333fee46c9.36367057.jpg
diff --git a/uploads/images/img_686f338c360455.17276035.png b/src/uploads/images/img_686f338c360455.17276035.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f338c360455.17276035.png
rename to src/uploads/images/img_686f338c360455.17276035.png
diff --git a/uploads/images/img_686f33cdb1c4e2.11987545.png b/src/uploads/images/img_686f33cdb1c4e2.11987545.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f33cdb1c4e2.11987545.png
rename to src/uploads/images/img_686f33cdb1c4e2.11987545.png
diff --git a/uploads/images/img_686f33f86534c1.78395780.jpg b/src/uploads/images/img_686f33f86534c1.78395780.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f33f86534c1.78395780.jpg
rename to src/uploads/images/img_686f33f86534c1.78395780.jpg
diff --git a/uploads/images/img_686f34baadbfe5.18832378.png b/src/uploads/images/img_686f34baadbfe5.18832378.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f34baadbfe5.18832378.png
rename to src/uploads/images/img_686f34baadbfe5.18832378.png
diff --git a/uploads/images/img_686f34e7636910.40820361.png b/src/uploads/images/img_686f34e7636910.40820361.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f34e7636910.40820361.png
rename to src/uploads/images/img_686f34e7636910.40820361.png
diff --git a/uploads/images/img_686f356cb64139.39735084.jpg b/src/uploads/images/img_686f356cb64139.39735084.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f356cb64139.39735084.jpg
rename to src/uploads/images/img_686f356cb64139.39735084.jpg
diff --git a/uploads/images/img_686f35958b7936.67005045.png b/src/uploads/images/img_686f35958b7936.67005045.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f35958b7936.67005045.png
rename to src/uploads/images/img_686f35958b7936.67005045.png
diff --git a/uploads/images/img_686f35ae363884.64628771.png b/src/uploads/images/img_686f35ae363884.64628771.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f35ae363884.64628771.png
rename to src/uploads/images/img_686f35ae363884.64628771.png
diff --git a/uploads/images/img_686f370f1976e2.93287285.jpg b/src/uploads/images/img_686f370f1976e2.93287285.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f370f1976e2.93287285.jpg
rename to src/uploads/images/img_686f370f1976e2.93287285.jpg
diff --git a/uploads/images/img_686f3730560947.83615495.jpg b/src/uploads/images/img_686f3730560947.83615495.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f3730560947.83615495.jpg
rename to src/uploads/images/img_686f3730560947.83615495.jpg
diff --git a/uploads/images/img_686f3749a170b4.13348961.jpg b/src/uploads/images/img_686f3749a170b4.13348961.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f3749a170b4.13348961.jpg
rename to src/uploads/images/img_686f3749a170b4.13348961.jpg
diff --git a/uploads/images/img_686f37a6ba9275.53457633.jpg b/src/uploads/images/img_686f37a6ba9275.53457633.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f37a6ba9275.53457633.jpg
rename to src/uploads/images/img_686f37a6ba9275.53457633.jpg
diff --git a/uploads/images/img_686f37caede896.58256974.jpg b/src/uploads/images/img_686f37caede896.58256974.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f37caede896.58256974.jpg
rename to src/uploads/images/img_686f37caede896.58256974.jpg
diff --git a/uploads/images/img_686f37ed51ac20.50338733.jpg b/src/uploads/images/img_686f37ed51ac20.50338733.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f37ed51ac20.50338733.jpg
rename to src/uploads/images/img_686f37ed51ac20.50338733.jpg
diff --git a/uploads/images/img_686f380db80c43.30914740.jpg b/src/uploads/images/img_686f380db80c43.30914740.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f380db80c43.30914740.jpg
rename to src/uploads/images/img_686f380db80c43.30914740.jpg
diff --git a/uploads/images/img_686f38899806b0.95257065.jpg b/src/uploads/images/img_686f38899806b0.95257065.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f38899806b0.95257065.jpg
rename to src/uploads/images/img_686f38899806b0.95257065.jpg
diff --git a/uploads/images/img_686f394288dcd3.19768162.jpg b/src/uploads/images/img_686f394288dcd3.19768162.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f394288dcd3.19768162.jpg
rename to src/uploads/images/img_686f394288dcd3.19768162.jpg
diff --git a/uploads/images/img_686f39aa04eae3.04553530.jpg b/src/uploads/images/img_686f39aa04eae3.04553530.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f39aa04eae3.04553530.jpg
rename to src/uploads/images/img_686f39aa04eae3.04553530.jpg
diff --git a/uploads/images/img_686f39cf707ac1.84361658.jpg b/src/uploads/images/img_686f39cf707ac1.84361658.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f39cf707ac1.84361658.jpg
rename to src/uploads/images/img_686f39cf707ac1.84361658.jpg
diff --git a/uploads/images/img_686f39f4215f93.08395251.jpg b/src/uploads/images/img_686f39f4215f93.08395251.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f39f4215f93.08395251.jpg
rename to src/uploads/images/img_686f39f4215f93.08395251.jpg
diff --git a/uploads/images/img_686f3a1a2a0037.73633683.jpg b/src/uploads/images/img_686f3a1a2a0037.73633683.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f3a1a2a0037.73633683.jpg
rename to src/uploads/images/img_686f3a1a2a0037.73633683.jpg
diff --git a/uploads/images/img_686f3a3ed01497.37713003.jpg b/src/uploads/images/img_686f3a3ed01497.37713003.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f3a3ed01497.37713003.jpg
rename to src/uploads/images/img_686f3a3ed01497.37713003.jpg
diff --git a/uploads/images/img_686f3a6c250bc7.48101159.png b/src/uploads/images/img_686f3a6c250bc7.48101159.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f3a6c250bc7.48101159.png
rename to src/uploads/images/img_686f3a6c250bc7.48101159.png
diff --git a/uploads/images/img_686f3ae3139633.97704617.jpg b/src/uploads/images/img_686f3ae3139633.97704617.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f3ae3139633.97704617.jpg
rename to src/uploads/images/img_686f3ae3139633.97704617.jpg
diff --git a/uploads/images/img_686f3b1524cca5.24631513.jpg b/src/uploads/images/img_686f3b1524cca5.24631513.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f3b1524cca5.24631513.jpg
rename to src/uploads/images/img_686f3b1524cca5.24631513.jpg
diff --git a/uploads/images/img_686f3b7f1f9584.32874426.png b/src/uploads/images/img_686f3b7f1f9584.32874426.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f3b7f1f9584.32874426.png
rename to src/uploads/images/img_686f3b7f1f9584.32874426.png
diff --git a/uploads/images/img_686f3bd6938593.78159430.jpg b/src/uploads/images/img_686f3bd6938593.78159430.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f3bd6938593.78159430.jpg
rename to src/uploads/images/img_686f3bd6938593.78159430.jpg
diff --git a/uploads/images/img_686f3bf8e10f33.28531721.jpg b/src/uploads/images/img_686f3bf8e10f33.28531721.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f3bf8e10f33.28531721.jpg
rename to src/uploads/images/img_686f3bf8e10f33.28531721.jpg
diff --git a/uploads/images/img_686f3c3348eca6.43106907.png b/src/uploads/images/img_686f3c3348eca6.43106907.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f3c3348eca6.43106907.png
rename to src/uploads/images/img_686f3c3348eca6.43106907.png
diff --git a/uploads/images/img_686f3f91377274.81536093.png b/src/uploads/images/img_686f3f91377274.81536093.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f3f91377274.81536093.png
rename to src/uploads/images/img_686f3f91377274.81536093.png
diff --git a/uploads/images/img_686f3fcc3451e3.78098415.png b/src/uploads/images/img_686f3fcc3451e3.78098415.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f3fcc3451e3.78098415.png
rename to src/uploads/images/img_686f3fcc3451e3.78098415.png
diff --git a/uploads/images/img_686f3fe298ed30.69854145.jpg b/src/uploads/images/img_686f3fe298ed30.69854145.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f3fe298ed30.69854145.jpg
rename to src/uploads/images/img_686f3fe298ed30.69854145.jpg
diff --git a/uploads/images/img_686f4002627178.11334024.jpg b/src/uploads/images/img_686f4002627178.11334024.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f4002627178.11334024.jpg
rename to src/uploads/images/img_686f4002627178.11334024.jpg
diff --git a/uploads/images/img_686f402c97cfe8.90268871.png b/src/uploads/images/img_686f402c97cfe8.90268871.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f402c97cfe8.90268871.png
rename to src/uploads/images/img_686f402c97cfe8.90268871.png
diff --git a/uploads/images/img_686f405d63dbb8.12860271.jpg b/src/uploads/images/img_686f405d63dbb8.12860271.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f405d63dbb8.12860271.jpg
rename to src/uploads/images/img_686f405d63dbb8.12860271.jpg
diff --git a/uploads/images/img_686f409b3c88d2.06994506.jpg b/src/uploads/images/img_686f409b3c88d2.06994506.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f409b3c88d2.06994506.jpg
rename to src/uploads/images/img_686f409b3c88d2.06994506.jpg
diff --git a/uploads/images/img_686f40cc12b408.77224909.png b/src/uploads/images/img_686f40cc12b408.77224909.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f40cc12b408.77224909.png
rename to src/uploads/images/img_686f40cc12b408.77224909.png
diff --git a/uploads/images/img_686f40f1e8cbb2.29751856.jpg b/src/uploads/images/img_686f40f1e8cbb2.29751856.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f40f1e8cbb2.29751856.jpg
rename to src/uploads/images/img_686f40f1e8cbb2.29751856.jpg
diff --git a/uploads/images/img_686f4111d6ed06.84644823.jpg b/src/uploads/images/img_686f4111d6ed06.84644823.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f4111d6ed06.84644823.jpg
rename to src/uploads/images/img_686f4111d6ed06.84644823.jpg
diff --git a/uploads/images/img_686f412c5a2956.93448132.jpg b/src/uploads/images/img_686f412c5a2956.93448132.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f412c5a2956.93448132.jpg
rename to src/uploads/images/img_686f412c5a2956.93448132.jpg
diff --git a/uploads/images/img_686f4146060367.49904903.jpg b/src/uploads/images/img_686f4146060367.49904903.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f4146060367.49904903.jpg
rename to src/uploads/images/img_686f4146060367.49904903.jpg
diff --git a/uploads/images/img_686f417d2dbc09.25939228.png b/src/uploads/images/img_686f417d2dbc09.25939228.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f417d2dbc09.25939228.png
rename to src/uploads/images/img_686f417d2dbc09.25939228.png
diff --git a/uploads/images/img_686f41b265bbd0.31608008.jpg b/src/uploads/images/img_686f41b265bbd0.31608008.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f41b265bbd0.31608008.jpg
rename to src/uploads/images/img_686f41b265bbd0.31608008.jpg
diff --git a/uploads/images/img_686f41cfea6790.97454515.jpg b/src/uploads/images/img_686f41cfea6790.97454515.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f41cfea6790.97454515.jpg
rename to src/uploads/images/img_686f41cfea6790.97454515.jpg
diff --git a/uploads/images/img_686f422f9e5c79.40048338.jpg b/src/uploads/images/img_686f422f9e5c79.40048338.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f422f9e5c79.40048338.jpg
rename to src/uploads/images/img_686f422f9e5c79.40048338.jpg
diff --git a/uploads/images/img_686f425206f4f7.13457068.jpg b/src/uploads/images/img_686f425206f4f7.13457068.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f425206f4f7.13457068.jpg
rename to src/uploads/images/img_686f425206f4f7.13457068.jpg
diff --git a/uploads/images/img_686f426b0e7ae4.55634973.jpg b/src/uploads/images/img_686f426b0e7ae4.55634973.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f426b0e7ae4.55634973.jpg
rename to src/uploads/images/img_686f426b0e7ae4.55634973.jpg
diff --git a/uploads/images/img_686f42c706e886.11815798.png b/src/uploads/images/img_686f42c706e886.11815798.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_686f42c706e886.11815798.png
rename to src/uploads/images/img_686f42c706e886.11815798.png
diff --git a/uploads/images/img_6873b410d0e190.70763660.png b/src/uploads/images/img_6873b410d0e190.70763660.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873b410d0e190.70763660.png
rename to src/uploads/images/img_6873b410d0e190.70763660.png
diff --git a/uploads/images/img_6873b8bd938336.03772389.jpg b/src/uploads/images/img_6873b8bd938336.03772389.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873b8bd938336.03772389.jpg
rename to src/uploads/images/img_6873b8bd938336.03772389.jpg
diff --git a/uploads/images/img_6873b91e0b0263.24840975.jpg b/src/uploads/images/img_6873b91e0b0263.24840975.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873b91e0b0263.24840975.jpg
rename to src/uploads/images/img_6873b91e0b0263.24840975.jpg
diff --git a/uploads/images/img_6873b945b1ba27.21790853.jpg b/src/uploads/images/img_6873b945b1ba27.21790853.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873b945b1ba27.21790853.jpg
rename to src/uploads/images/img_6873b945b1ba27.21790853.jpg
diff --git a/uploads/images/img_6873b96e694b37.93563817.jpg b/src/uploads/images/img_6873b96e694b37.93563817.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873b96e694b37.93563817.jpg
rename to src/uploads/images/img_6873b96e694b37.93563817.jpg
diff --git a/uploads/images/img_6873b98a89afb2.71421223.jpg b/src/uploads/images/img_6873b98a89afb2.71421223.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873b98a89afb2.71421223.jpg
rename to src/uploads/images/img_6873b98a89afb2.71421223.jpg
diff --git a/uploads/images/img_6873b9c491a469.36216723.jpg b/src/uploads/images/img_6873b9c491a469.36216723.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873b9c491a469.36216723.jpg
rename to src/uploads/images/img_6873b9c491a469.36216723.jpg
diff --git a/uploads/images/img_6873b9ec466f38.53632322.jpg b/src/uploads/images/img_6873b9ec466f38.53632322.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873b9ec466f38.53632322.jpg
rename to src/uploads/images/img_6873b9ec466f38.53632322.jpg
diff --git a/uploads/images/img_6873ba0e5ab3a0.49345850.jpg b/src/uploads/images/img_6873ba0e5ab3a0.49345850.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873ba0e5ab3a0.49345850.jpg
rename to src/uploads/images/img_6873ba0e5ab3a0.49345850.jpg
diff --git a/uploads/images/img_6873ba2deeac42.04951342.jpg b/src/uploads/images/img_6873ba2deeac42.04951342.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873ba2deeac42.04951342.jpg
rename to src/uploads/images/img_6873ba2deeac42.04951342.jpg
diff --git a/uploads/images/img_6873ba9c868ea7.34060573.jpg b/src/uploads/images/img_6873ba9c868ea7.34060573.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873ba9c868ea7.34060573.jpg
rename to src/uploads/images/img_6873ba9c868ea7.34060573.jpg
diff --git a/uploads/images/img_6873babb355b43.65572551.jpg b/src/uploads/images/img_6873babb355b43.65572551.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873babb355b43.65572551.jpg
rename to src/uploads/images/img_6873babb355b43.65572551.jpg
diff --git a/uploads/images/img_6873bace9b2965.08368704.jpg b/src/uploads/images/img_6873bace9b2965.08368704.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873bace9b2965.08368704.jpg
rename to src/uploads/images/img_6873bace9b2965.08368704.jpg
diff --git a/uploads/images/img_6873bb3fa98129.49270048.jpg b/src/uploads/images/img_6873bb3fa98129.49270048.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873bb3fa98129.49270048.jpg
rename to src/uploads/images/img_6873bb3fa98129.49270048.jpg
diff --git a/uploads/images/img_6873bba15c7182.77829017.jpg b/src/uploads/images/img_6873bba15c7182.77829017.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873bba15c7182.77829017.jpg
rename to src/uploads/images/img_6873bba15c7182.77829017.jpg
diff --git a/uploads/images/img_6873bc17e68ff5.86485666.png b/src/uploads/images/img_6873bc17e68ff5.86485666.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873bc17e68ff5.86485666.png
rename to src/uploads/images/img_6873bc17e68ff5.86485666.png
diff --git a/uploads/images/img_6873bd94881b06.21895503.jpg b/src/uploads/images/img_6873bd94881b06.21895503.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873bd94881b06.21895503.jpg
rename to src/uploads/images/img_6873bd94881b06.21895503.jpg
diff --git a/uploads/images/img_6873bdc7a7bd46.75059159.jpg b/src/uploads/images/img_6873bdc7a7bd46.75059159.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873bdc7a7bd46.75059159.jpg
rename to src/uploads/images/img_6873bdc7a7bd46.75059159.jpg
diff --git a/uploads/images/img_6873be00a05e82.75679206.png b/src/uploads/images/img_6873be00a05e82.75679206.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873be00a05e82.75679206.png
rename to src/uploads/images/img_6873be00a05e82.75679206.png
diff --git a/uploads/images/img_6873be2b34b1b2.79150303.jpg b/src/uploads/images/img_6873be2b34b1b2.79150303.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873be2b34b1b2.79150303.jpg
rename to src/uploads/images/img_6873be2b34b1b2.79150303.jpg
diff --git a/uploads/images/img_6873be68654222.43815825.jpg b/src/uploads/images/img_6873be68654222.43815825.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873be68654222.43815825.jpg
rename to src/uploads/images/img_6873be68654222.43815825.jpg
diff --git a/uploads/images/img_6873bfbdd860f1.17553831.jpg b/src/uploads/images/img_6873bfbdd860f1.17553831.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873bfbdd860f1.17553831.jpg
rename to src/uploads/images/img_6873bfbdd860f1.17553831.jpg
diff --git a/uploads/images/img_6873bfe7aa3eb3.84414915.jpg b/src/uploads/images/img_6873bfe7aa3eb3.84414915.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873bfe7aa3eb3.84414915.jpg
rename to src/uploads/images/img_6873bfe7aa3eb3.84414915.jpg
diff --git a/uploads/images/img_6873c07a83da25.07480567.png b/src/uploads/images/img_6873c07a83da25.07480567.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873c07a83da25.07480567.png
rename to src/uploads/images/img_6873c07a83da25.07480567.png
diff --git a/uploads/images/img_6873c09b4d6ed6.07697329.png b/src/uploads/images/img_6873c09b4d6ed6.07697329.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873c09b4d6ed6.07697329.png
rename to src/uploads/images/img_6873c09b4d6ed6.07697329.png
diff --git a/uploads/images/img_6873c0b984f254.28085995.png b/src/uploads/images/img_6873c0b984f254.28085995.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873c0b984f254.28085995.png
rename to src/uploads/images/img_6873c0b984f254.28085995.png
diff --git a/uploads/images/img_6873c0d3605c28.29852415.png b/src/uploads/images/img_6873c0d3605c28.29852415.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873c0d3605c28.29852415.png
rename to src/uploads/images/img_6873c0d3605c28.29852415.png
diff --git a/uploads/images/img_6873c19457dcf3.78644240.jpg b/src/uploads/images/img_6873c19457dcf3.78644240.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873c19457dcf3.78644240.jpg
rename to src/uploads/images/img_6873c19457dcf3.78644240.jpg
diff --git a/uploads/images/img_6873c1f1d7b799.62140749.jpg b/src/uploads/images/img_6873c1f1d7b799.62140749.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873c1f1d7b799.62140749.jpg
rename to src/uploads/images/img_6873c1f1d7b799.62140749.jpg
diff --git a/uploads/images/img_6873c223b84d99.45142413.jpg b/src/uploads/images/img_6873c223b84d99.45142413.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873c223b84d99.45142413.jpg
rename to src/uploads/images/img_6873c223b84d99.45142413.jpg
diff --git a/uploads/images/img_6873c28714b535.33163245.jpg b/src/uploads/images/img_6873c28714b535.33163245.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873c28714b535.33163245.jpg
rename to src/uploads/images/img_6873c28714b535.33163245.jpg
diff --git a/uploads/images/img_6873c2dca705b4.21033807.png b/src/uploads/images/img_6873c2dca705b4.21033807.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873c2dca705b4.21033807.png
rename to src/uploads/images/img_6873c2dca705b4.21033807.png
diff --git a/uploads/images/img_6873c2f43fead9.02978111.png b/src/uploads/images/img_6873c2f43fead9.02978111.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873c2f43fead9.02978111.png
rename to src/uploads/images/img_6873c2f43fead9.02978111.png
diff --git a/uploads/images/img_6873c330c78632.00215359.jpg b/src/uploads/images/img_6873c330c78632.00215359.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873c330c78632.00215359.jpg
rename to src/uploads/images/img_6873c330c78632.00215359.jpg
diff --git a/uploads/images/img_6873c365a2deb4.01451936.jpg b/src/uploads/images/img_6873c365a2deb4.01451936.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873c365a2deb4.01451936.jpg
rename to src/uploads/images/img_6873c365a2deb4.01451936.jpg
diff --git a/uploads/images/img_6873c398f0bf15.08946989.jpg b/src/uploads/images/img_6873c398f0bf15.08946989.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873c398f0bf15.08946989.jpg
rename to src/uploads/images/img_6873c398f0bf15.08946989.jpg
diff --git a/uploads/images/img_6873c471f0bb46.02642451.png b/src/uploads/images/img_6873c471f0bb46.02642451.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873c471f0bb46.02642451.png
rename to src/uploads/images/img_6873c471f0bb46.02642451.png
diff --git a/uploads/images/img_6873c7272527f1.79250951.png b/src/uploads/images/img_6873c7272527f1.79250951.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873c7272527f1.79250951.png
rename to src/uploads/images/img_6873c7272527f1.79250951.png
diff --git a/uploads/images/img_6873c8d07c88e7.53514986.png b/src/uploads/images/img_6873c8d07c88e7.53514986.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873c8d07c88e7.53514986.png
rename to src/uploads/images/img_6873c8d07c88e7.53514986.png
diff --git a/uploads/images/img_6873c9bb265099.98985276.png b/src/uploads/images/img_6873c9bb265099.98985276.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873c9bb265099.98985276.png
rename to src/uploads/images/img_6873c9bb265099.98985276.png
diff --git a/uploads/images/img_6873cab3e36435.36992325.png b/src/uploads/images/img_6873cab3e36435.36992325.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873cab3e36435.36992325.png
rename to src/uploads/images/img_6873cab3e36435.36992325.png
diff --git a/uploads/images/img_6873cadea2eb20.24231592.png b/src/uploads/images/img_6873cadea2eb20.24231592.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873cadea2eb20.24231592.png
rename to src/uploads/images/img_6873cadea2eb20.24231592.png
diff --git a/uploads/images/img_6873cb07b661d1.33616769.png b/src/uploads/images/img_6873cb07b661d1.33616769.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873cb07b661d1.33616769.png
rename to src/uploads/images/img_6873cb07b661d1.33616769.png
diff --git a/uploads/images/img_6873cbf36b9123.03417581.png b/src/uploads/images/img_6873cbf36b9123.03417581.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873cbf36b9123.03417581.png
rename to src/uploads/images/img_6873cbf36b9123.03417581.png
diff --git a/uploads/images/img_6873cc2ec0b635.94772493.png b/src/uploads/images/img_6873cc2ec0b635.94772493.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873cc2ec0b635.94772493.png
rename to src/uploads/images/img_6873cc2ec0b635.94772493.png
diff --git a/uploads/images/img_6873fc8dba6b61.51783154.jpg b/src/uploads/images/img_6873fc8dba6b61.51783154.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873fc8dba6b61.51783154.jpg
rename to src/uploads/images/img_6873fc8dba6b61.51783154.jpg
diff --git a/uploads/images/img_6873fca5d74c69.87509606.jpg b/src/uploads/images/img_6873fca5d74c69.87509606.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873fca5d74c69.87509606.jpg
rename to src/uploads/images/img_6873fca5d74c69.87509606.jpg
diff --git a/uploads/images/img_6873fcbc592a81.71907231.jpg b/src/uploads/images/img_6873fcbc592a81.71907231.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873fcbc592a81.71907231.jpg
rename to src/uploads/images/img_6873fcbc592a81.71907231.jpg
diff --git a/uploads/images/img_6873fcda30d246.96270936.jpg b/src/uploads/images/img_6873fcda30d246.96270936.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873fcda30d246.96270936.jpg
rename to src/uploads/images/img_6873fcda30d246.96270936.jpg
diff --git a/uploads/images/img_6873fcff027a31.27424643.jpg b/src/uploads/images/img_6873fcff027a31.27424643.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873fcff027a31.27424643.jpg
rename to src/uploads/images/img_6873fcff027a31.27424643.jpg
diff --git a/uploads/images/img_6873fd1dcdb330.70889760.jpg b/src/uploads/images/img_6873fd1dcdb330.70889760.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873fd1dcdb330.70889760.jpg
rename to src/uploads/images/img_6873fd1dcdb330.70889760.jpg
diff --git a/uploads/images/img_6873fd47ba9b38.58891857.png b/src/uploads/images/img_6873fd47ba9b38.58891857.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873fd47ba9b38.58891857.png
rename to src/uploads/images/img_6873fd47ba9b38.58891857.png
diff --git a/uploads/images/img_6873fd608e9e98.26192169.jpg b/src/uploads/images/img_6873fd608e9e98.26192169.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873fd608e9e98.26192169.jpg
rename to src/uploads/images/img_6873fd608e9e98.26192169.jpg
diff --git a/uploads/images/img_6873fd919d2231.57835779.jpg b/src/uploads/images/img_6873fd919d2231.57835779.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873fd919d2231.57835779.jpg
rename to src/uploads/images/img_6873fd919d2231.57835779.jpg
diff --git a/uploads/images/img_6873fdb0a94ea6.69909445.jpg b/src/uploads/images/img_6873fdb0a94ea6.69909445.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873fdb0a94ea6.69909445.jpg
rename to src/uploads/images/img_6873fdb0a94ea6.69909445.jpg
diff --git a/uploads/images/img_6873fdc3daf237.38891265.jpg b/src/uploads/images/img_6873fdc3daf237.38891265.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873fdc3daf237.38891265.jpg
rename to src/uploads/images/img_6873fdc3daf237.38891265.jpg
diff --git a/uploads/images/img_6873fdf6dba980.47825518.jpg b/src/uploads/images/img_6873fdf6dba980.47825518.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873fdf6dba980.47825518.jpg
rename to src/uploads/images/img_6873fdf6dba980.47825518.jpg
diff --git a/uploads/images/img_6873fe0e730e81.53394437.jpg b/src/uploads/images/img_6873fe0e730e81.53394437.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873fe0e730e81.53394437.jpg
rename to src/uploads/images/img_6873fe0e730e81.53394437.jpg
diff --git a/uploads/images/img_6873fe1ff36020.44091511.jpg b/src/uploads/images/img_6873fe1ff36020.44091511.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873fe1ff36020.44091511.jpg
rename to src/uploads/images/img_6873fe1ff36020.44091511.jpg
diff --git a/uploads/images/img_6873fe3900e621.75546414.png b/src/uploads/images/img_6873fe3900e621.75546414.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873fe3900e621.75546414.png
rename to src/uploads/images/img_6873fe3900e621.75546414.png
diff --git a/uploads/images/img_6873fe65db7d23.31893984.jpg b/src/uploads/images/img_6873fe65db7d23.31893984.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873fe65db7d23.31893984.jpg
rename to src/uploads/images/img_6873fe65db7d23.31893984.jpg
diff --git a/uploads/images/img_6873fe7d6f7db6.03372700.jpg b/src/uploads/images/img_6873fe7d6f7db6.03372700.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873fe7d6f7db6.03372700.jpg
rename to src/uploads/images/img_6873fe7d6f7db6.03372700.jpg
diff --git a/uploads/images/img_6873fe8d33b227.86495307.jpg b/src/uploads/images/img_6873fe8d33b227.86495307.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873fe8d33b227.86495307.jpg
rename to src/uploads/images/img_6873fe8d33b227.86495307.jpg
diff --git a/uploads/images/img_6873fee5abf3f2.20579342.jpg b/src/uploads/images/img_6873fee5abf3f2.20579342.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873fee5abf3f2.20579342.jpg
rename to src/uploads/images/img_6873fee5abf3f2.20579342.jpg
diff --git a/uploads/images/img_6873ff810199c5.98467484.jpg b/src/uploads/images/img_6873ff810199c5.98467484.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873ff810199c5.98467484.jpg
rename to src/uploads/images/img_6873ff810199c5.98467484.jpg
diff --git a/uploads/images/img_6873ffd9552582.08292227.jpg b/src/uploads/images/img_6873ffd9552582.08292227.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_6873ffd9552582.08292227.jpg
rename to src/uploads/images/img_6873ffd9552582.08292227.jpg
diff --git a/uploads/images/img_687400a1157fa5.34296195.jpg b/src/uploads/images/img_687400a1157fa5.34296195.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_687400a1157fa5.34296195.jpg
rename to src/uploads/images/img_687400a1157fa5.34296195.jpg
diff --git a/uploads/images/img_687400e51b6b68.76009900.png b/src/uploads/images/img_687400e51b6b68.76009900.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_687400e51b6b68.76009900.png
rename to src/uploads/images/img_687400e51b6b68.76009900.png
diff --git a/uploads/images/img_68749b63c95922.22044870.png b/src/uploads/images/img_68749b63c95922.22044870.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_68749b63c95922.22044870.png
rename to src/uploads/images/img_68749b63c95922.22044870.png
diff --git a/uploads/images/img_paste_68692d8ae02cf4.92621791.png b/src/uploads/images/img_paste_68692d8ae02cf4.92621791.png
old mode 100644
new mode 100755
similarity index 100%
rename from uploads/images/img_paste_68692d8ae02cf4.92621791.png
rename to src/uploads/images/img_paste_68692d8ae02cf4.92621791.png
diff --git a/user_profile.php b/src/user_profile.php
old mode 100644
new mode 100755
similarity index 100%
rename from user_profile.php
rename to src/user_profile.php
diff --git a/wallpaper.jpg b/src/wallpaper.jpg
old mode 100644
new mode 100755
similarity index 100%
rename from wallpaper.jpg
rename to src/wallpaper.jpg