aboutsummaryrefslogtreecommitdiffstats
path: root/view
diff options
context:
space:
mode:
Diffstat (limited to 'view')
-rw-r--r--view/css/full.css5
-rw-r--r--view/css/minimal.css3
-rw-r--r--view/css/mod_pdledit_gui.css3
-rw-r--r--view/css/widgets.css11
-rw-r--r--view/fr/htconfig.tpl89
-rw-r--r--view/fr/invite.material.subject.tpl1
-rw-r--r--view/fr/invite.material.tpl1
-rw-r--r--view/fr/lostpass_eml.tpl62
-rw-r--r--view/fr/passchanged_eml.tpl40
-rw-r--r--view/fr/update_fail_eml.tpl37
-rw-r--r--view/pdl/mod_admin.pdl3
-rw-r--r--view/pdl/mod_appman.pdl3
-rw-r--r--view/pdl/mod_apps.pdl3
-rw-r--r--view/pdl/mod_articles.pdl3
-rw-r--r--view/pdl/mod_blocks.pdl3
-rw-r--r--view/pdl/mod_cal.pdl3
-rw-r--r--view/pdl/mod_cards.pdl3
-rw-r--r--view/pdl/mod_cdav.pdl3
-rw-r--r--view/pdl/mod_channel.pdl3
-rw-r--r--view/pdl/mod_chanview.pdl3
-rw-r--r--view/pdl/mod_chat.pdl3
-rw-r--r--view/pdl/mod_cloud.pdl3
-rw-r--r--view/pdl/mod_common.pdl3
-rw-r--r--view/pdl/mod_connect.pdl3
-rw-r--r--view/pdl/mod_connections.pdl3
-rw-r--r--view/pdl/mod_connedit.pdl3
-rw-r--r--view/pdl/mod_defperms.pdl3
-rw-r--r--view/pdl/mod_directory.pdl3
-rw-r--r--view/pdl/mod_display.pdl3
-rw-r--r--view/pdl/mod_editblock.pdl3
-rw-r--r--view/pdl/mod_editlayout.pdl3
-rw-r--r--view/pdl/mod_editwebpage.pdl3
-rw-r--r--view/pdl/mod_go.pdl3
-rw-r--r--view/pdl/mod_group.pdl3
-rw-r--r--view/pdl/mod_help.pdl3
-rw-r--r--view/pdl/mod_id.pdl3
-rw-r--r--view/pdl/mod_import_items.pdl5
-rw-r--r--view/pdl/mod_layouts.pdl3
-rw-r--r--view/pdl/mod_locs.pdl3
-rw-r--r--view/pdl/mod_menu.pdl3
-rw-r--r--view/pdl/mod_mitem.pdl3
-rw-r--r--view/pdl/mod_moderate.pdl5
-rw-r--r--view/pdl/mod_permcats.pdl3
-rw-r--r--view/pdl/mod_photos.pdl3
-rw-r--r--view/pdl/mod_profile.pdl3
-rw-r--r--view/pdl/mod_profile_photo.pdl3
-rw-r--r--view/pdl/mod_profiles.pdl3
-rw-r--r--view/pdl/mod_profperm.pdl3
-rw-r--r--view/pdl/mod_pubstream.pdl3
-rw-r--r--view/pdl/mod_rate.pdl7
-rw-r--r--view/pdl/mod_ratings.pdl11
-rw-r--r--view/pdl/mod_search.pdl3
-rw-r--r--view/pdl/mod_settings.pdl3
-rw-r--r--view/pdl/mod_sharedwithme.pdl5
-rw-r--r--view/pdl/mod_sources.pdl3
-rw-r--r--view/pdl/mod_suggest.pdl3
-rw-r--r--view/pdl/mod_thing.pdl3
-rw-r--r--view/pdl/mod_tokens.pdl3
-rw-r--r--view/pdl/mod_uexport.pdl3
-rw-r--r--view/pdl/mod_viewconnections.pdl3
-rw-r--r--view/pdl/mod_webpages.pdl3
-rw-r--r--view/pdl/mod_wiki.pdl3
-rw-r--r--view/php/default.php14
-rw-r--r--view/php/full.php15
-rw-r--r--view/php/minimal.php39
-rw-r--r--view/php/none.php9
-rw-r--r--view/php/zen.php16
-rw-r--r--view/theme/redbasic/css/style.css2
-rw-r--r--view/theme/redbasic/js/redbasic.js15
-rw-r--r--view/theme/redbasic/php/style.php9
-rw-r--r--view/theme/redbasic/schema/bootstrap-nightfall.css1898
-rw-r--r--view/theme/redbasic/schema/dark.css14
-rw-r--r--view/tpl/login.tpl8
-rw-r--r--view/tpl/navbar_default.tpl43
-rw-r--r--view/tpl/pdledit_gui.tpl243
-rw-r--r--view/tpl/pdledit_gui_item.tpl18
-rw-r--r--view/tpl/pdledit_gui_templates.tpl11
-rw-r--r--view/tpl/photo_album_portfolio.tpl2
-rw-r--r--view/tpl/settings.tpl4
-rw-r--r--view/tpl/suggest_widget.tpl2
80 files changed, 2601 insertions, 187 deletions
diff --git a/view/css/full.css b/view/css/full.css
index 3f9a01d24..1a36c9b08 100644
--- a/view/css/full.css
+++ b/view/css/full.css
@@ -7,7 +7,6 @@ header #banner {
}
section {
- display: block;
- min-height: 112px;
- margin: 50px 10px;
+ height: 100vh;
+ padding: 4.5rem 7px 200px 7px;
}
diff --git a/view/css/minimal.css b/view/css/minimal.css
new file mode 100644
index 000000000..3bd04a5df
--- /dev/null
+++ b/view/css/minimal.css
@@ -0,0 +1,3 @@
+section {
+ height: 100vh;
+}
diff --git a/view/css/mod_pdledit_gui.css b/view/css/mod_pdledit_gui.css
new file mode 100644
index 000000000..dcda842dc
--- /dev/null
+++ b/view/css/mod_pdledit_gui.css
@@ -0,0 +1,3 @@
+.aside_wrapper {
+ min-height: 70vh;
+}
diff --git a/view/css/widgets.css b/view/css/widgets.css
index 0a091272c..ebe0f47b0 100644
--- a/view/css/widgets.css
+++ b/view/css/widgets.css
@@ -136,17 +136,6 @@ li:hover .group-edit-icon {
}
-/* tasklist */
-
-.tasklist-tasks {
- max-height: 300px;
- overflow-y: auto;
-}
-
-#tasklist-new-summary {
- width: 250px;
-}
-
/* cover photo */
#cover-photo {
diff --git a/view/fr/htconfig.tpl b/view/fr/htconfig.tpl
index ddc1d1053..563877247 100644
--- a/view/fr/htconfig.tpl
+++ b/view/fr/htconfig.tpl
@@ -1,9 +1,8 @@
<?php
-// Set the following for your MySQL installation
+// Définissez les éléments suivants pour votre installation MySQL
// Utilisez ces informations pour configurer votre instance de BD (MySQL)
-// Copy or rename this file to .htconfig.php
-// Copier ou renomer ce fichier .htconfig.php et placer le à la racine de l'installation de la Matrice Rouge.
+// Copier ou renomer ce fichier .htconfig.php et placer le à la racine de l'installation.
$db_host = '{{$dbhost}}';
$db_port = '{{$dbport}}';
@@ -13,52 +12,74 @@ $db_data = '{{$dbdata}}';
$db_type = '{{$dbtype}}'; // an integer. 0 or unset for mysql, 1 for postgres
/*
- * Note: Plusieurs de ces réglages seront disponibles via le panneau d'administration
- * après l'installation. Lorsque des modifications sont apportés à travers le panneau d'administration
- * elle sont automatiquement enregistrées dans la base de données.
- * Les configurations inscrites dans la BD prévalent sur celles de ce fichier de configuration.
+ * Note: Plusieurs de ces réglages seront disponibles via le panneau d'administration
+ * après l'installation. Lorsque des modifications sont apportés à travers le panneau d'administration
+ * elle sont automatiquement enregistrées dans la base de données.
+ * Les configurations inscrites dans la BD prévalent sur celles de ce fichier de configuration.
*
- * En cas de difficultés d'accès au panneau d'administration, nous mettons à votre disposition,
+ * En cas de difficultés d'accès au panneau d'administration, nous mettons à votre disposition,
* un outil en ligne de commande est disponible [util/config] pour rechercher et apporter des modifications
- * sur les entrées dans la BD.
+ * sur les entrées dans la BD.
*
- */
+ */
-// Choisissez votre emplacement géographique. Si vous n'êtes pas certain, utilisez "America/Los_Angeles".
-// Vous pourrez le changer plus tard et ce réglage n'affecte que les visiteurs anonymes.
+// Choisissez votre emplacement géographique. Si vous n'êtes pas certain, utilisez "America/Los_Angeles".
+// Vous pourrez le changer plus tard et ce réglage n'affecte que les visiteurs anonymes.
App::$config['system']['timezone'] = '{{$timezone}}';
-// Quel sera le nom de votre site?
+// Quels Sont l'url et le nom de votre site ? Ne pas mettre le slash à la fin
App::$config['system']['baseurl'] = '{{$siteurl}}';
App::$config['system']['sitename'] = "Hubzilla";
App::$config['system']['location_hash'] = '{{$site_id}}';
-// These lines set additional security headers to be sent with all responses
-// You may wish to set transport_security_header to 0 if your server already sends
-// this header. content_security_policy may need to be disabled if you wish to
-// run the piwik analytics plugin or include other offsite resources on a page
+// Ces lignes définissent des en-têtes de sécurité supplémentaires à envoyer avec toutes les réponses.
+// Vous pouvez définir transport_security_header à 0 si votre serveur envoie déjà cet en-tête.
+// Content_security_policy peut être désactivé si vous souhaitez utiliser le plugin d'analyse Piwik ou inclure d'autres sites web.
+// Utiliser le plugin piwik analytics ou ajouter d'autres ressources hors site sur une page.
App::$config['system']['transport_security_header'] = 1;
App::$config['system']['content_security_policy'] = 1;
+App::$config['system']['ssl_cookie_protection'] = 1;
// Vos choix sont REGISTER_OPEN, REGISTER_APPROVE, ou REGISTER_CLOSED.
-// Soyez certains de créer votre compte personnel avant de déclarer
-// votre site REGISTER_CLOSED. 'register_text' (si vous décider de l'utiliser)
-// renvois son contenu systématiquement sur la page d'enregistrement des nouveaux membres.
+// Soyez certains de créer votre compte personnel avant de déclarer
+// votre site REGISTER_CLOSED. 'register_text' (si vous décider de l'utiliser)
+// renvois son contenu systématiquement sur la page d'enregistrement des nouveaux membres.
// REGISTER_APPROVE requiert la configuration de 'admin_email' avec l'adresse de courriel
-// d'un membre déjà inscrit qui pourra autoriser et/ou approuver/supprimer la demande.
+// d'un membre déjà inscrit qui pourra autoriser et/ou approuver/supprimer la demande.
App::$config['system']['register_policy'] = REGISTER_OPEN;
App::$config['system']['register_text'] = '';
App::$config['system']['admin_email'] = '{{$adminmail}}';
-// taille maximale pour l'importation d'un message, 0 est illimité
+// Il est recommandé de laisser cette valeur à 1. La valeur 0 permet aux personnes de s'inscrire sans avoir à prouver qu'elles possèdent une adresse électronique.
+// vérifier que cette adresse électronique leur appartient.
+
+App::$config['system']['verify_email'] = 1;
+
+// Restrictions d'accès au site. Par défaut, nous allons créer des sites privés.
+// Vous avez le choix entre ACCESS_PRIVATE, ACCESS_PAID, ACCESS_TIERED et ACCESS_FREE.
+// Si vous laissez REGISTER_OPEN ci-dessus, n'importe qui peut s'inscrire sur votre site.
+// Cependant, votre site ne sera pas répertorié comme un hub ouvert aux inscriptions.
+// Nous utiliserons la politique d'accès au système (ci-dessous)
+// pour déterminer s'il faut ou non inscrire votre site dans l'annuaire
+// comme un hub ouvert où tout le monde peut créer des comptes. Vous avez le choix entre :
+// inscription payante, à plusieurs niveaux ou gratuite : détermine la façon dont ces inscriptions seront présentées.
+
+ App::$config['system']['access_policy'] = ACCESS_PRIVATE;
+
+ // Si vous gérez un site public, vous souhaitez peut-être que les visiteurs soient dirigés // vers une "page d'accueil" où vous pouvez décrire en détail les caractéristiques, les politiques ou les services proposés.
+ // Il doit s'agir d'une URL absolue commençant par http:// ou https:// .
+
+ App::$config['system']['sellpage'] = '';
+
+// taille maximale pour l'importation d'un message, 0 est illimité
App::$config['system']['max_import_size'] = 200000;
-// taille maximale pour le téléversement de photos
+// taille maximale pour le téléversement de photos
App::$config['system']['maximagesize'] = 8000000;
@@ -66,15 +87,25 @@ App::$config['system']['maximagesize'] = 8000000;
App::$config['system']['php_path'] = '{{$phpath}}';
-// configurez la façon dont votre site communique avec les autres serveurs. [Répertoire des membres inscrits à la Matrice]
-// DIRECTORY_MODE_NORMAL = client du répertoire de membres, nous vous trouverons un répertoire accessible autre serveur.
-// DIRECTORY_MODE_SECONDARY = copie mirroir du répertoire des membres.
-// DIRECTORY_MODE_PRIMARY = répertoire des membres principal.
-// DIRECTORY_MODE_STANDALONE = "autonome/déconnecté" ou répertoire de membres privés
+// configurez la façon dont votre site communique avec les autres serveurs. [Répertoire des membres inscrits à la Matrice]
+// DIRECTORY_MODE_NORMAL = client du répertoire de membres, nous vous trouverons un répertoire accessible autre serveur.
+// DIRECTORY_MODE_SECONDARY = copie mirroir du répertoire des membres.
+// DIRECTORY_MODE_PRIMARY = répertoire des membres principal.
+// DIRECTORY_MODE_STANDALONE = "autonome/déconnecté" ou répertoire de membres privés
App::$config['system']['directory_mode'] = DIRECTORY_MODE_NORMAL;
-// Thème par défaut
+// Thème par défaut
App::$config['system']['theme'] = 'redbasic';
+// Configuration de l'enregistrement des erreurs PHP
+// Avant de faire cela, assurez-vous que le serveur web a la permission de créer et d'écrire dans le fichier php.out dans le répertoire web correspondant.
+// de créer et d'écrire dans le fichier php.out dans le répertoire web correspondant,
+// ou changez le nom (ci-dessous) pour un fichier/chemin où cela est autorisé.
+// Décommentez les 4 lignes suivantes pour activer la journalisation des erreurs PHP.
+
+//error_reporting(E_ERROR | E_WARNING | E_PARSE ) ;
+//ini_set('error_log', 'php.out') ;
+//ini_set('log_errors', '1') ;
+//ini_set('display_errors', '0') ;
diff --git a/view/fr/invite.material.subject.tpl b/view/fr/invite.material.subject.tpl
new file mode 100644
index 000000000..4f3ff1c7a
--- /dev/null
+++ b/view/fr/invite.material.subject.tpl
@@ -0,0 +1 @@
+Invitation {{$invite_loc}}
diff --git a/view/fr/invite.material.tpl b/view/fr/invite.material.tpl
new file mode 100644
index 000000000..6d9b770b7
--- /dev/null
+++ b/view/fr/invite.material.tpl
@@ -0,0 +1 @@
+{{* tpl en matériel, pour inviter avec des données essentielles *}}
diff --git a/view/fr/lostpass_eml.tpl b/view/fr/lostpass_eml.tpl
index 0421d41a8..81e426af6 100644
--- a/view/fr/lostpass_eml.tpl
+++ b/view/fr/lostpass_eml.tpl
@@ -1,30 +1,32 @@
-
-Cher {{$username}},
- Une demande pour réinitialiser votre mot de passe a récemment été reçue par {{$sitename}}
-Pour confirmer cette requête, veuillez suivre le lien de vérification
-ci-dessous ou en faire un copier-coller dans la barre d'adresse de votre navigateur.
-
-Si vous N'AVEZ PAS demandé ce changement, NE SUIVEZ PAS ce lien, ignorez-le simplement et/ou supprimez ce courriel.
-
-Votre mot de passe ne sera pas changé à moins que nous puissions vérifier vos intentions.
-
-Suivez ce lien pour confirmer votre identité:
-
-{{$reset_link}}
-
-Vous recevrez ensuite un second courriel avec votre nouveau mot de passe.
-
-Vous pouvez changer ce mot de passe à partir des réglages du profil après vous être connecté.
-
-Voici les détails de connexion:
-
-Emplacement du site:⇥{{$siteurl}}
-Utilisateur:⇥{{$email}}
-
-
-
-
-Sincèrement,
- L'administrateur {{$sitename}}
-
- \ No newline at end of file
+Cher {{$username}},
+
+Une demande pour réinitialiser votre mot de passe a récemment été reçue par {{$sitename}}
+Pour confirmer cette requête, veuillez suivre le lien de vérification
+ci-dessous ou en faire un copier-coller dans la barre d'adresse de votre navigateur.
+
+Si vous N'AVEZ PAS demandé ce changement, NE SUIVEZ PAS ce lien, ignorez-le simplement et/ou supprimez ce courriel.
+
+Votre mot de passe ne sera pas changé à moins que nous puissions vérifier vos intentions.
+
+Suivez ce lien pour confirmer votre identité:
+
+{{$reset_link}}
+
+Vous recevrez ensuite un second courriel avec votre nouveau mot de passe.
+
+Vous pouvez changer ce mot de passe à partir des réglages du profil après vous être connecté.
+
+Voici les détails de connexion:
+
+Emplacement du site: {{$siteurl}}
+Utilisateur: {{$email}}
+
+
+Sincèrement,
+L'administrateur de {{$sitename}}
+
+--
+Conditions d'utilisation :
+{{$siteurl}}/help/TermsOfService
+
+
diff --git a/view/fr/passchanged_eml.tpl b/view/fr/passchanged_eml.tpl
index 7c4e3d7bb..c70e45f6b 100644
--- a/view/fr/passchanged_eml.tpl
+++ b/view/fr/passchanged_eml.tpl
@@ -1,19 +1,21 @@
-
-Cher {{$username}},
- Votre mot de passe a bien été réinitialisé.
-Veuillez conserver cette information (ou changer immédiatement ce mot de passe temporaire).
-
-
-Voici les détails de connexion:
-
-Emplacement du site:⇥{{$siteurl}}
-Utilisateur:⇥{{$email}}
-Mot de passe:⇥{{$new_password}}
-
-Vous pouvez changer ce mot de passe à partir des réglages du profil après vous être connecté.
-
-
-Sincèrement,
- L'administrateur {{$sitename}}
-
- \ No newline at end of file
+Cher {{$username}},
+
+Votre mot de passe a bien été réinitialisé.
+Veuillez conserver cette information (ou changer immédiatement ce mot de passe temporaire).
+
+
+Voici les détails de connexion:
+
+Emplacement du site : {{$siteurl}}
+Utilisateur : {{$email}}
+Mot de passe : {{$new_password}}
+
+Vous pouvez changer ce mot de passe à partir des Paramètres / Paramètres du compte après vous être connecté.
+
+
+Sincèrement,
+L'administrateur {{$sitename}}
+
+--
+Conditions d'utilisation :
+{{$siteurl}}/help/TermsOfService
diff --git a/view/fr/update_fail_eml.tpl b/view/fr/update_fail_eml.tpl
index 5fbad2c8a..5548579ed 100644
--- a/view/fr/update_fail_eml.tpl
+++ b/view/fr/update_fail_eml.tpl
@@ -1,16 +1,21 @@
-Bonjour,
-Je suis le serveur web de {{$sitename}};
-
-Les développeurs de la Matrice Rouge ont lancé une mise à jour {{$update}} récemment,
-toutefois, lorsque j'ai essayé de l'installer, quelques choses d'inattendu s'est produit.
-
-Nous devons corriger la situation et cela requiert votre intervention.
-
-Veuillez contacter un développeur de la Matrice Rouge si vous avez des difficultés à déterminer
-la meilleure approche pour résoudre le problème. Ma base de donnée est peut-être corrompue.
-
-Le message d'erreur est '{{$error}}'.
-
-Veuillez accepter mes plus humbles excuses pour les désagréments,
-
- votre serveur web a {{$siteurl}} \ No newline at end of file
+Bonjour,
+Je suis le serveur web de {{$sitename}};
+
+Les développeurs du projet ont récemment publié la mise à jour {{$update}}, mais lors de la tentative d'installation, quelque chose s'est mal passé.
+
+Ce problème doit être résolu rapidement et nécessite votre intervention.
+
+Veuillez contacter un développeur du projet si vous ne parvenez pas à résoudre le problème par vous-même. La base de données de votre installation est peut-être corrompue.
+
+Le message d'erreur est '{{$error}}'.
+
+Vous pouvez tenter de réappliquer cette mise à jour en vous rendant à l'adresse suivante (avec un compte administrateur) :
+
+{{$baseurl}}/admin/dbsync
+
+
+{{$source}}
+
+Veuillez nous excuser pour ce désagrément,
+
+votre serveur Web à {{$siteurl}}}}
diff --git a/view/pdl/mod_admin.pdl b/view/pdl/mod_admin.pdl
index 1cf49750d..3c9633a69 100644
--- a/view/pdl/mod_admin.pdl
+++ b/view/pdl/mod_admin.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=admin][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_appman.pdl b/view/pdl/mod_appman.pdl
index ad8843890..71306785e 100644
--- a/view/pdl/mod_appman.pdl
+++ b/view/pdl/mod_appman.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=appstore][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_apps.pdl b/view/pdl/mod_apps.pdl
index 32e2ce560..be9e15366 100644
--- a/view/pdl/mod_apps.pdl
+++ b/view/pdl/mod_apps.pdl
@@ -2,6 +2,9 @@
[widget=appstore][/widget]
[widget=appcategories][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_articles.pdl b/view/pdl/mod_articles.pdl
index 490917358..051e89278 100644
--- a/view/pdl/mod_articles.pdl
+++ b/view/pdl/mod_articles.pdl
@@ -5,6 +5,9 @@
[widget=tasklist][/widget]
[widget=notes][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_blocks.pdl b/view/pdl/mod_blocks.pdl
index 4a90a4f36..c0ccacdc7 100644
--- a/view/pdl/mod_blocks.pdl
+++ b/view/pdl/mod_blocks.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=design_tools][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_cal.pdl b/view/pdl/mod_cal.pdl
index d7e5d29f3..47af1ed38 100644
--- a/view/pdl/mod_cal.pdl
+++ b/view/pdl/mod_cal.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=profile][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_cards.pdl b/view/pdl/mod_cards.pdl
index fd08121fc..2252659a3 100644
--- a/view/pdl/mod_cards.pdl
+++ b/view/pdl/mod_cards.pdl
@@ -4,6 +4,9 @@
[widget=tasklist][/widget]
[widget=notes][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_cdav.pdl b/view/pdl/mod_cdav.pdl
index c0f9a511f..be5b491ae 100644
--- a/view/pdl/mod_cdav.pdl
+++ b/view/pdl/mod_cdav.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=cdav][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_channel.pdl b/view/pdl/mod_channel.pdl
index 5857fca95..80333afdc 100644
--- a/view/pdl/mod_channel.pdl
+++ b/view/pdl/mod_channel.pdl
@@ -8,6 +8,9 @@
[widget=categories][/widget]
[widget=tagcloud_wall][var=limit]24[/var][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_chanview.pdl b/view/pdl/mod_chanview.pdl
index a5461df50..0527ac00c 100644
--- a/view/pdl/mod_chanview.pdl
+++ b/view/pdl/mod_chanview.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=vcard][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_chat.pdl b/view/pdl/mod_chat.pdl
index 8a79b4b12..b761e3361 100644
--- a/view/pdl/mod_chat.pdl
+++ b/view/pdl/mod_chat.pdl
@@ -5,6 +5,9 @@
[widget=suggestedchats][/widget]
[widget=chatroom_members][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_cloud.pdl b/view/pdl/mod_cloud.pdl
index 7f40e7ea0..699aff1f8 100644
--- a/view/pdl/mod_cloud.pdl
+++ b/view/pdl/mod_cloud.pdl
@@ -2,6 +2,9 @@
[widget=profile][/widget]
[widget=categories][var=files]1[/var][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_common.pdl b/view/pdl/mod_common.pdl
index 7e15fc869..df722e5bf 100644
--- a/view/pdl/mod_common.pdl
+++ b/view/pdl/mod_common.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=fullprofile][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_connect.pdl b/view/pdl/mod_connect.pdl
index d7e5d29f3..47af1ed38 100644
--- a/view/pdl/mod_connect.pdl
+++ b/view/pdl/mod_connect.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=profile][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_connections.pdl b/view/pdl/mod_connections.pdl
index 3c3dfd313..992ed9ca4 100644
--- a/view/pdl/mod_connections.pdl
+++ b/view/pdl/mod_connections.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=findpeople][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_connedit.pdl b/view/pdl/mod_connedit.pdl
index a5461df50..0527ac00c 100644
--- a/view/pdl/mod_connedit.pdl
+++ b/view/pdl/mod_connedit.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=vcard][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_defperms.pdl b/view/pdl/mod_defperms.pdl
index 37c85c765..759dbf039 100644
--- a/view/pdl/mod_defperms.pdl
+++ b/view/pdl/mod_defperms.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=settings_menu][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_directory.pdl b/view/pdl/mod_directory.pdl
index 3840691b4..56ce119f8 100644
--- a/view/pdl/mod_directory.pdl
+++ b/view/pdl/mod_directory.pdl
@@ -3,6 +3,9 @@
[widget=dirsort][/widget]
[widget=dirtags][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_display.pdl b/view/pdl/mod_display.pdl
index a5461df50..0527ac00c 100644
--- a/view/pdl/mod_display.pdl
+++ b/view/pdl/mod_display.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=vcard][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_editblock.pdl b/view/pdl/mod_editblock.pdl
index 4a90a4f36..c0ccacdc7 100644
--- a/view/pdl/mod_editblock.pdl
+++ b/view/pdl/mod_editblock.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=design_tools][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_editlayout.pdl b/view/pdl/mod_editlayout.pdl
index 4a90a4f36..c0ccacdc7 100644
--- a/view/pdl/mod_editlayout.pdl
+++ b/view/pdl/mod_editlayout.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=design_tools][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_editwebpage.pdl b/view/pdl/mod_editwebpage.pdl
index 4a90a4f36..c0ccacdc7 100644
--- a/view/pdl/mod_editwebpage.pdl
+++ b/view/pdl/mod_editwebpage.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=design_tools][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_go.pdl b/view/pdl/mod_go.pdl
index 7e15fc869..df722e5bf 100644
--- a/view/pdl/mod_go.pdl
+++ b/view/pdl/mod_go.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=fullprofile][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_group.pdl b/view/pdl/mod_group.pdl
index 749ede18c..523f24178 100644
--- a/view/pdl/mod_group.pdl
+++ b/view/pdl/mod_group.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=privacygroups][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_help.pdl b/view/pdl/mod_help.pdl
index 4bb380cc9..6f8a41226 100644
--- a/view/pdl/mod_help.pdl
+++ b/view/pdl/mod_help.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=helpindex][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_id.pdl b/view/pdl/mod_id.pdl
index 7e15fc869..df722e5bf 100644
--- a/view/pdl/mod_id.pdl
+++ b/view/pdl/mod_id.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=fullprofile][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_import_items.pdl b/view/pdl/mod_import_items.pdl
index e657fa88b..9f0bb4d9a 100644
--- a/view/pdl/mod_import_items.pdl
+++ b/view/pdl/mod_import_items.pdl
@@ -1,3 +1,8 @@
+[region=aside]
+[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[/region]
diff --git a/view/pdl/mod_layouts.pdl b/view/pdl/mod_layouts.pdl
index 4a90a4f36..c0ccacdc7 100644
--- a/view/pdl/mod_layouts.pdl
+++ b/view/pdl/mod_layouts.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=design_tools][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_locs.pdl b/view/pdl/mod_locs.pdl
index 37c85c765..759dbf039 100644
--- a/view/pdl/mod_locs.pdl
+++ b/view/pdl/mod_locs.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=settings_menu][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_menu.pdl b/view/pdl/mod_menu.pdl
index 4a90a4f36..c0ccacdc7 100644
--- a/view/pdl/mod_menu.pdl
+++ b/view/pdl/mod_menu.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=design_tools][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_mitem.pdl b/view/pdl/mod_mitem.pdl
index 0cca7fd85..f0b03c854 100644
--- a/view/pdl/mod_mitem.pdl
+++ b/view/pdl/mod_mitem.pdl
@@ -2,6 +2,9 @@
[widget=design_tools][/widget]
[widget=menu_preview][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_moderate.pdl b/view/pdl/mod_moderate.pdl
index 95f069031..11cdb4672 100644
--- a/view/pdl/mod_moderate.pdl
+++ b/view/pdl/mod_moderate.pdl
@@ -1,3 +1,8 @@
+[region=aside]
+[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_permcats.pdl b/view/pdl/mod_permcats.pdl
index bc6c89920..996b073da 100644
--- a/view/pdl/mod_permcats.pdl
+++ b/view/pdl/mod_permcats.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=permcats][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_photos.pdl b/view/pdl/mod_photos.pdl
index bdcc087f3..4b544faa9 100644
--- a/view/pdl/mod_photos.pdl
+++ b/view/pdl/mod_photos.pdl
@@ -2,6 +2,9 @@
[widget=profile][/widget]
[widget=photo_albums][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_profile.pdl b/view/pdl/mod_profile.pdl
index 7e15fc869..df722e5bf 100644
--- a/view/pdl/mod_profile.pdl
+++ b/view/pdl/mod_profile.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=fullprofile][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_profile_photo.pdl b/view/pdl/mod_profile_photo.pdl
index 7e15fc869..df722e5bf 100644
--- a/view/pdl/mod_profile_photo.pdl
+++ b/view/pdl/mod_profile_photo.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=fullprofile][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_profiles.pdl b/view/pdl/mod_profiles.pdl
index 7e15fc869..df722e5bf 100644
--- a/view/pdl/mod_profiles.pdl
+++ b/view/pdl/mod_profiles.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=fullprofile][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_profperm.pdl b/view/pdl/mod_profperm.pdl
index d7e5d29f3..47af1ed38 100644
--- a/view/pdl/mod_profperm.pdl
+++ b/view/pdl/mod_profperm.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=profile][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_pubstream.pdl b/view/pdl/mod_pubstream.pdl
index 539900155..914218e19 100644
--- a/view/pdl/mod_pubstream.pdl
+++ b/view/pdl/mod_pubstream.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=pubtagcloud][var=trending]8[/var][var=limit]20[/var][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_rate.pdl b/view/pdl/mod_rate.pdl
deleted file mode 100644
index a5461df50..000000000
--- a/view/pdl/mod_rate.pdl
+++ /dev/null
@@ -1,7 +0,0 @@
-[region=aside]
-[widget=vcard][/widget]
-[/region]
-[region=right_aside]
-[widget=notifications][/widget]
-[widget=newmember][/widget]
-[/region]
diff --git a/view/pdl/mod_ratings.pdl b/view/pdl/mod_ratings.pdl
deleted file mode 100644
index f6e87cb7c..000000000
--- a/view/pdl/mod_ratings.pdl
+++ /dev/null
@@ -1,11 +0,0 @@
-[region=aside]
-[widget=pubsites][/widget]
-[widget=vcard][/widget]
-[widget=rating][/widget]
-[widget=suggestions][/widget]
-[widget=findpeople][/widget]
-[/region]
-[region=right_aside]
-[widget=notifications][/widget]
-[widget=newmember][/widget]
-[/region]
diff --git a/view/pdl/mod_search.pdl b/view/pdl/mod_search.pdl
index ed1f77c5a..11cdb4672 100644
--- a/view/pdl/mod_search.pdl
+++ b/view/pdl/mod_search.pdl
@@ -1,5 +1,8 @@
[region=aside]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_settings.pdl b/view/pdl/mod_settings.pdl
index 37c85c765..759dbf039 100644
--- a/view/pdl/mod_settings.pdl
+++ b/view/pdl/mod_settings.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=settings_menu][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_sharedwithme.pdl b/view/pdl/mod_sharedwithme.pdl
index 95f069031..11cdb4672 100644
--- a/view/pdl/mod_sharedwithme.pdl
+++ b/view/pdl/mod_sharedwithme.pdl
@@ -1,3 +1,8 @@
+[region=aside]
+[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_sources.pdl b/view/pdl/mod_sources.pdl
index 37c85c765..759dbf039 100644
--- a/view/pdl/mod_sources.pdl
+++ b/view/pdl/mod_sources.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=settings_menu][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_suggest.pdl b/view/pdl/mod_suggest.pdl
index b74391cba..7878bca4e 100644
--- a/view/pdl/mod_suggest.pdl
+++ b/view/pdl/mod_suggest.pdl
@@ -2,6 +2,9 @@
[widget=follow][/widget]
[widget=findpeople][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_thing.pdl b/view/pdl/mod_thing.pdl
index 7e15fc869..df722e5bf 100644
--- a/view/pdl/mod_thing.pdl
+++ b/view/pdl/mod_thing.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=fullprofile][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_tokens.pdl b/view/pdl/mod_tokens.pdl
index 97bdc3ab4..6a81829fe 100644
--- a/view/pdl/mod_tokens.pdl
+++ b/view/pdl/mod_tokens.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=tokens][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_uexport.pdl b/view/pdl/mod_uexport.pdl
index ed1f77c5a..11cdb4672 100644
--- a/view/pdl/mod_uexport.pdl
+++ b/view/pdl/mod_uexport.pdl
@@ -1,5 +1,8 @@
[region=aside]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_viewconnections.pdl b/view/pdl/mod_viewconnections.pdl
index d7e5d29f3..47af1ed38 100644
--- a/view/pdl/mod_viewconnections.pdl
+++ b/view/pdl/mod_viewconnections.pdl
@@ -1,6 +1,9 @@
[region=aside]
[widget=profile][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_webpages.pdl b/view/pdl/mod_webpages.pdl
index d13bf8862..87945fb5f 100644
--- a/view/pdl/mod_webpages.pdl
+++ b/view/pdl/mod_webpages.pdl
@@ -2,6 +2,9 @@
[widget=design_tools][/widget]
[widget=website_portation_tools][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_wiki.pdl b/view/pdl/mod_wiki.pdl
index db8faa0d9..e650e364e 100644
--- a/view/pdl/mod_wiki.pdl
+++ b/view/pdl/mod_wiki.pdl
@@ -2,6 +2,9 @@
[widget=profile][/widget]
[widget=wiki_pages][/widget]
[/region]
+[region=content]
+$content
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/php/default.php b/view/php/default.php
index 64d58a0c1..10e150906 100644
--- a/view/php/default.php
+++ b/view/php/default.php
@@ -1,3 +1,15 @@
+<?php
+/**
+ * * Name: default
+ * * Description: Hubzilla default 3-column layout
+ * * Version: 1
+ * * Author: Mario Vavti
+ * * Maintainer: Mario Vavti
+ * * ContentRegion: aside, left_aside_wrapper
+ * * ContentRegion: content, region_2
+ * * ContentRegion: right_aside, right_aside_wrapper
+ */
+?>
<!DOCTYPE html >
<html prefix="og: http://ogp.me/ns#">
<head>
@@ -8,7 +20,7 @@
<body <?php if($page['direction']) echo 'dir="rtl"' ?> >
<?php if(x($page,'banner')) echo $page['banner']; ?>
<header><?php if(x($page,'header')) echo $page['header']; ?></header>
- <?php if(x($page,'nav')) echo $page['nav']; ?></nav>
+ <?php if(x($page,'nav')) echo $page['nav']; ?>
<main>
<div class="content">
<div class="columns">
diff --git a/view/php/full.php b/view/php/full.php
index 1a9cd9a84..d855fb650 100644
--- a/view/php/full.php
+++ b/view/php/full.php
@@ -1,3 +1,13 @@
+<?php
+/**
+ * * Name: full
+ * * Description: A single column full width layout with the hubzilla navbar
+ * * Version: 1
+ * * Author: None
+ * * Maintainer: None
+ * * ContentRegion: content, region_1
+ */
+?>
<!DOCTYPE html >
<html prefix="og: http://ogp.me/ns#">
<head>
@@ -8,8 +18,9 @@
<body <?php if($page['direction']) echo 'dir="rtl"' ?> >
<?php if(x($page,'banner')) echo $page['banner']; ?>
<header><?php if(x($page,'header')) echo $page['header']; ?></header>
- <nav class="navbar fixed-top navbar-expand-lg navbar-dark bg-dark"><?php if(x($page,'nav')) echo $page['nav']; ?></nav>
- <section id="region_2"><?php if(x($page,'content')) echo $page['content']; ?>
+ <?php if(x($page,'nav')) echo $page['nav']; ?>
+ <section id="region_1">
+ <?php if(x($page,'content')) echo $page['content']; ?>
<div id="page-footer"></div>
</section>
</body>
diff --git a/view/php/minimal.php b/view/php/minimal.php
index 3572f3b5c..3fab0c5f9 100644
--- a/view/php/minimal.php
+++ b/view/php/minimal.php
@@ -1,14 +1,25 @@
-<!DOCTYPE html >
-<html prefix="og: http://ogp.me/ns#">
-<head>
- <title><?php if(x($page,'title')) echo $page['title'] ?></title>
- <script>var baseurl="<?php echo z_root() ?>";</script>
- <?php if(x($page,'htmlhead')) echo $page['htmlhead'] ?>
-</head>
-<body>
- <section style="margin:0px!important; padding:0px!important; float:none!important;display:block!important;"><?php if(x($page,'content')) echo $page['content']; ?>
- <div id="page-footer"></div>
- </section>
-</body>
-</html>
-
+<?php
+/**
+ * * Name: full
+ * * Description: A single column full width layout without a navbar
+ * * Version: 1
+ * * Author: None
+ * * Maintainer: None
+ * * ContentRegion: content, region_1
+ */
+?>
+<!DOCTYPE html >
+<html prefix="og: http://ogp.me/ns#">
+<head>
+ <title><?php if(x($page,'title')) echo $page['title'] ?></title>
+ <script>var baseurl="<?php echo z_root() ?>";</script>
+ <?php if(x($page,'htmlhead')) echo $page['htmlhead'] ?>
+</head>
+<body>
+ <section id="region_1">
+ <?php if(x($page,'content')) echo $page['content']; ?>
+ <div id="page-footer"></div>
+ </section>
+</body>
+</html>
+
diff --git a/view/php/none.php b/view/php/none.php
index 51d0e83dc..5e92310b7 100644
--- a/view/php/none.php
+++ b/view/php/none.php
@@ -1 +1,10 @@
+<?php
+/**
+ * * Name: none
+ * * Description: A barebones empty single page template
+ * * Version: 1
+ * * Author: None
+ * * Maintainer: None
+ */
+?>
<?php if(x($page,'content')) echo $page['content']; ?>
diff --git a/view/php/zen.php b/view/php/zen.php
index a96cf722f..24aae951b 100644
--- a/view/php/zen.php
+++ b/view/php/zen.php
@@ -1,11 +1,11 @@
<!DOCTYPE html>
<html prefix="og: http://ogp.me/ns#">
-<head>
- <title><?php if(x($page,'title')) echo $page['title'] ?></title>
- <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1">
- <?php if(x($page,'htmlhead')) echo $page['htmlhead'] ?>
-</head>
-<body>
- <?php if(x($page,'content')) echo $page['content']; ?>
-</body>
+ <head>
+ <title><?php if(x($page,'title')) echo $page['title'] ?></title>
+ <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1">
+ <?php if(x($page,'htmlhead')) echo $page['htmlhead'] ?>
+ </head>
+ <body>
+ <?php if(x($page,'content')) echo $page['content']; ?>
+ </body>
</html>
diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css
index cea9b8ae5..ebbc1aaa3 100644
--- a/view/theme/redbasic/css/style.css
+++ b/view/theme/redbasic/css/style.css
@@ -1728,7 +1728,7 @@ dl.bb-dl > dd > li {
text-align: center;
}
-#login-main, .rmagic-button {
+.login-wrapper {
max-width: 400px;
margin-top: 20px;
margin-left: auto;
diff --git a/view/theme/redbasic/js/redbasic.js b/view/theme/redbasic/js/redbasic.js
index c0c03d4f8..04469cb85 100644
--- a/view/theme/redbasic/js/redbasic.js
+++ b/view/theme/redbasic/js/redbasic.js
@@ -17,8 +17,13 @@ $(document).ready(function() {
}
$('#css3-calc').remove(); // Remove the test element
- stickyScroll('.aside_spacer_left', '.aside_spacer_top_left', '.content', parseFloat(window.getComputedStyle(document.querySelector('#region_1')).getPropertyValue('padding-top')), 0);
- stickyScroll('.aside_spacer_right', '.aside_spacer_top_right', '.content', parseFloat(window.getComputedStyle(document.querySelector('#region_3')).getPropertyValue('padding-top')), 20);
+ if (document.querySelector('#region_1')) {
+ stickyScroll('.aside_spacer_left', '.aside_spacer_top_left', '.content', parseFloat(window.getComputedStyle(document.querySelector('#region_1')).getPropertyValue('padding-top')), 0);
+ }
+
+ if (document.querySelector('#region_3')) {
+ stickyScroll('.aside_spacer_right', '.aside_spacer_top_right', '.content', parseFloat(window.getComputedStyle(document.querySelector('#region_3')).getPropertyValue('padding-top')), 20);
+ }
$('#expand-aside').on('click', function() {
if($('main').hasClass('region_1-on')){
@@ -121,8 +126,14 @@ function setStyle(element, cssProperty) {
}
function stickyScroll(sticky, stickyTop, container, topOffset, bottomOffset) {
+
var lastScrollTop = 0;
var sticky = document.querySelector(sticky);
+
+ if (!sticky) {
+ return;
+ }
+
var stickyHeight = sticky.getBoundingClientRect().height;
var stickyTop = document.querySelector(stickyTop);
var content = document.querySelector(container);
diff --git a/view/theme/redbasic/php/style.php b/view/theme/redbasic/php/style.php
index 9cb835ec6..3dbc29a96 100644
--- a/view/theme/redbasic/php/style.php
+++ b/view/theme/redbasic/php/style.php
@@ -36,9 +36,8 @@ if(! App::$install) {
// not --- like the mobile theme does instead.
// Allow layouts to over-ride the schema
-
-if($_REQUEST['schema']) {
- $schema = $_REQUEST['schema'];
+if (isset($_REQUEST['schema']) && preg_match('/^[\w_-]+$/i', $_REQUEST['schema'])) {
+ $schema = $_REQUEST['schema'];
}
if (($schema) && ($schema != '---')) {
@@ -112,6 +111,10 @@ if(file_exists('view/theme/redbasic/css/style.css')) {
$x = file_get_contents('view/theme/redbasic/css/style.css');
+ if($schema === 'dark' && file_exists('view/theme/redbasic/schema/bootstrap-nightfall.css')) {
+ $x .= file_get_contents('view/theme/redbasic/schema/bootstrap-nightfall.css');
+ }
+
if($narrow_navbar && file_exists('view/theme/redbasic/css/narrow_navbar.css')) {
$x .= file_get_contents('view/theme/redbasic/css/narrow_navbar.css');
}
diff --git a/view/theme/redbasic/schema/bootstrap-nightfall.css b/view/theme/redbasic/schema/bootstrap-nightfall.css
new file mode 100644
index 000000000..d9cb8cc63
--- /dev/null
+++ b/view/theme/redbasic/schema/bootstrap-nightfall.css
@@ -0,0 +1,1898 @@
+/*!
+ * Bootstrap v5.1.3 (https://getbootstrap.com/)
+ * Copyright 2011-2022 The Bootstrap Authors
+ * Copyright 2011-2022 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ *
+ * Bootstrap-Nightfall v1.1.3 (https://vinorodrigues.github.io/bootstrap-dark-5/)
+ * Copyright 2020-2022 Vino Rodrigues
+ * This version is an extraction with only the dark elements, or deltas, of the
+ * dark theme. Used as a bootstrap plugin.
+ */
+:root {
+ color-scheme: dark;
+}
+
+:root {
+ --bs-blue: #375a7f;
+ --bs-indigo: #673ab7;
+ --bs-purple: #654ea3;
+ --bs-pink: #e83e8c;
+ --bs-red: #e74c3c;
+ --bs-orange: #fd7e14;
+ --bs-yellow: #f39c12;
+ --bs-green: #00bc8c;
+ --bs-teal: #45b5aa;
+ --bs-cyan: #17a2b8;
+ --bs-white: #fafafa;
+ --bs-black: #111;
+ --bs-gray: #7e7e7e;
+ --bs-gray-dark: #121212;
+ --bs-gray-100: #e1e1e1;
+ --bs-gray-200: #cfcfcf;
+ --bs-gray-300: #b1b1b1;
+ --bs-gray-400: #9e9e9e;
+ --bs-gray-500: #7e7e7e;
+ --bs-gray-600: #626262;
+ --bs-gray-700: #515151;
+ --bs-gray-800: #3b3b3b;
+ --bs-gray-900: #222;
+ --bs-primary: #375a7f;
+ --bs-secondary: #626262;
+ --bs-success: #00bc8c;
+ --bs-info: #17a2b8;
+ --bs-warning: #f39c12;
+ --bs-danger: #e74c3c;
+ --bs-light: #9e9e9e;
+ --bs-dark: #3b3b3b;
+ --bs-primary-rgb: 55, 90, 127;
+ --bs-secondary-rgb: 98, 98, 98;
+ --bs-success-rgb: 0, 188, 140;
+ --bs-info-rgb: 23, 162, 184;
+ --bs-warning-rgb: 243, 156, 18;
+ --bs-danger-rgb: 231, 76, 60;
+ --bs-light-rgb: 158, 158, 158;
+ --bs-dark-rgb: 59, 59, 59;
+ --bs-white-rgb: 250, 250, 250;
+ --bs-black-rgb: 17, 17, 17;
+ --bs-body-color-rgb: 225, 225, 225;
+ --bs-body-bg-rgb: 34, 34, 34;
+ --bs-body-color: #e1e1e1;
+ --bs-body-bg: #222;
+ --bs-gradient: linear-gradient(180deg, rgba(17, 17, 17, 0.15), rgba(17, 17, 17, 0));
+}
+
+hr {
+ color: #fafafa;
+ background-color: currentColor;
+ opacity: 0.1;
+}
+
+mark {
+ background-color: rgba(243, 156, 18, 0.5);
+}
+
+a {
+ color: #5f7b99;
+}
+a:hover {
+ color: #4b6b8c;
+}
+
+a:not([href]):not([class]), a:not([href]):not([class]):hover {
+ color: inherit;
+}
+
+pre {
+ color: #e1e1e1;
+}
+pre code {
+ color: inherit;
+}
+
+code {
+ color: #45b5aa;
+}
+a > code {
+ color: inherit;
+}
+
+kbd {
+ color: #e1e1e1;
+ background-color: #3b3b3b;
+}
+
+caption {
+ color: #9e9e9e;
+}
+
+.blockquote-footer {
+ color: #626262;
+}
+
+.img-thumbnail {
+ background-color: #222;
+ border: 1px solid #515151;
+}
+
+.figure-caption {
+ color: #9e9e9e;
+}
+
+.table {
+ --bs-table-color: #e1e1e1;
+ --bs-table-bg: transparent;
+ --bs-table-border-color: #515151;
+ --bs-table-accent-bg: transparent;
+ --bs-table-striped-color: #e1e1e1;
+ --bs-table-striped-bg: rgba(250, 250, 250, 0.05);
+ --bs-table-active-color: #e1e1e1;
+ --bs-table-active-bg: rgba(250, 250, 250, 0.1);
+ --bs-table-hover-color: #e1e1e1;
+ --bs-table-hover-bg: rgba(250, 250, 250, 0.075);
+ color: #e1e1e1;
+ border-color: #515151;
+}
+.table > :not(:first-child) {
+ border-top: 2px solid currentColor;
+}
+
+.table-primary {
+ --bs-table-color: #fff;
+ --bs-table-bg: #1c2d40;
+ --bs-table-border-color: #334253;
+ --bs-table-striped-bg: #27384a;
+ --bs-table-striped-color: #fff;
+ --bs-table-active-bg: #334253;
+ --bs-table-active-color: #fff;
+ --bs-table-hover-bg: #2d3d4e;
+ --bs-table-hover-color: #fff;
+ color: #fff;
+ border-color: #334253;
+}
+
+.table-secondary {
+ --bs-table-color: #fff;
+ --bs-table-bg: #313131;
+ --bs-table-border-color: #464646;
+ --bs-table-striped-bg: #3b3b3b;
+ --bs-table-striped-color: #fff;
+ --bs-table-active-bg: #464646;
+ --bs-table-active-color: #fff;
+ --bs-table-hover-bg: #404040;
+ --bs-table-hover-color: #fff;
+ color: #fff;
+ border-color: #464646;
+}
+
+.table-success {
+ --bs-table-color: #fff;
+ --bs-table-bg: #005e46;
+ --bs-table-border-color: #1a6e59;
+ --bs-table-striped-bg: #0d664f;
+ --bs-table-striped-color: #fff;
+ --bs-table-active-bg: #1a6e59;
+ --bs-table-active-color: #fff;
+ --bs-table-hover-bg: #136a54;
+ --bs-table-hover-color: #fff;
+ color: #fff;
+ border-color: #1a6e59;
+}
+
+.table-info {
+ --bs-table-color: #fff;
+ --bs-table-bg: #0c515c;
+ --bs-table-border-color: #24626c;
+ --bs-table-striped-bg: #185a64;
+ --bs-table-striped-color: #fff;
+ --bs-table-active-bg: #24626c;
+ --bs-table-active-color: #fff;
+ --bs-table-hover-bg: #1e5e68;
+ --bs-table-hover-color: #fff;
+ color: #fff;
+ border-color: #24626c;
+}
+
+.table-warning {
+ --bs-table-color: #fff;
+ --bs-table-bg: #7a4e09;
+ --bs-table-border-color: #876022;
+ --bs-table-striped-bg: #815715;
+ --bs-table-striped-color: #fff;
+ --bs-table-active-bg: #876022;
+ --bs-table-active-color: #fff;
+ --bs-table-hover-bg: #845b1b;
+ --bs-table-hover-color: #fff;
+ color: #fff;
+ border-color: #876022;
+}
+
+.table-danger {
+ --bs-table-color: #fff;
+ --bs-table-bg: #74261e;
+ --bs-table-border-color: #823c35;
+ --bs-table-striped-bg: #7b3129;
+ --bs-table-striped-color: #fff;
+ --bs-table-active-bg: #823c35;
+ --bs-table-active-color: #fff;
+ --bs-table-hover-bg: #7e362f;
+ --bs-table-hover-color: #fff;
+ color: #fff;
+ border-color: #823c35;
+}
+
+.table-light {
+ --bs-table-color: #000;
+ --bs-table-bg: #9e9e9e;
+ --bs-table-border-color: #8e8e8e;
+ --bs-table-striped-bg: #969696;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #8e8e8e;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #929292;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #8e8e8e;
+}
+
+.table-dark {
+ --bs-table-color: #fff;
+ --bs-table-bg: #3b3b3b;
+ --bs-table-border-color: #4f4f4f;
+ --bs-table-striped-bg: #454545;
+ --bs-table-striped-color: #fff;
+ --bs-table-active-bg: #4f4f4f;
+ --bs-table-active-color: #fff;
+ --bs-table-hover-bg: #4a4a4a;
+ --bs-table-hover-color: #fff;
+ color: #fff;
+ border-color: #4f4f4f;
+}
+
+.form-text {
+ color: #9e9e9e;
+}
+
+.form-control {
+ color: #b1b1b1;
+ background-color: #222;
+ border: 1px solid #515151;
+}
+.form-control:focus {
+ color: #b1b1b1;
+ background-color: #222;
+ border-color: #9badbf;
+ box-shadow: 0 0 0 0.25rem rgba(55, 90, 127, 0.25);
+}
+.form-control::-moz-placeholder {
+ color: #5a5a5a;
+}
+.form-control::placeholder {
+ color: #5a5a5a;
+}
+.form-control:disabled, .form-control[readonly] {
+ background-color: #222;
+}
+.form-control::-webkit-file-upload-button {
+ color: #b1b1b1;
+ background-color: #3b3b3b;
+ border-color: inherit;
+}
+.form-control::file-selector-button {
+ color: #b1b1b1;
+ background-color: #3b3b3b;
+ border-color: inherit;
+}
+.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button {
+ background-color: #383838;
+}
+.form-control:hover:not(:disabled):not([readonly])::file-selector-button {
+ background-color: #383838;
+}
+.form-control::-webkit-file-upload-button {
+ color: #b1b1b1;
+ background-color: #3b3b3b;
+ border-color: inherit;
+}
+.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button {
+ background-color: #383838;
+}
+
+.form-control-plaintext {
+ color: #e1e1e1;
+ background-color: transparent;
+ border: solid transparent;
+}
+
+.form-select {
+ color: #b1b1b1;
+ background-color: #222;
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23cfcfcf' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
+ border: 1px solid #515151;
+}
+.form-select:focus {
+ border-color: #9badbf;
+ box-shadow: 0 0 0 0.25rem rgba(55, 90, 127, 0.25);
+}
+.form-select[multiple], .form-select[size]:not([size="1"]) {
+ background-image: none;
+}
+.form-select:disabled {
+ background-color: #3b3b3b;
+}
+.form-select:-moz-focusring {
+ color: transparent;
+ text-shadow: 0 0 0 #b1b1b1;
+}
+
+.form-check-input {
+ background-color: #222;
+ border: 1px solid rgba(255, 255, 255, 0.25);
+}
+.form-check-input:active {
+ filter: brightness(90%);
+}
+.form-check-input:focus {
+ border-color: #9badbf;
+ box-shadow: 0 0 0 0.25rem rgba(55, 90, 127, 0.25);
+}
+.form-check-input:checked {
+ background-color: #375a7f;
+ border-color: #375a7f;
+}
+.form-check-input:checked[type=checkbox] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fafafa' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
+}
+.form-check-input:checked[type=radio] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fafafa'/%3e%3c/svg%3e");
+}
+.form-check-input[type=checkbox]:indeterminate {
+ background-color: #375a7f;
+ border-color: #375a7f;
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fafafa' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e");
+}
+.form-check-input:disabled {
+ opacity: 0.5;
+}
+.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {
+ opacity: 0.5;
+}
+
+.form-switch .form-check-input {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28250, 250, 250, 0.25%29'/%3e%3c/svg%3e");
+}
+.form-switch .form-check-input:focus {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%239badbf'/%3e%3c/svg%3e");
+}
+.form-switch .form-check-input:checked {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fafafa'/%3e%3c/svg%3e");
+}
+
+.btn-check[disabled] + .btn, .btn-check:disabled + .btn {
+ opacity: 0.65;
+}
+
+.form-range:focus::-webkit-slider-thumb {
+ box-shadow: 0 0 0 1px #222, 0 0 0 0.25rem rgba(55, 90, 127, 0.25);
+}
+.form-range:focus::-moz-range-thumb {
+ box-shadow: 0 0 0 1px #222, 0 0 0 0.25rem rgba(55, 90, 127, 0.25);
+}
+.form-range::-webkit-slider-thumb {
+ background-color: #375a7f;
+ border: 0;
+}
+.form-range::-webkit-slider-thumb:active {
+ background-color: #c3ced9;
+}
+.form-range::-webkit-slider-runnable-track {
+ background-color: #515151;
+}
+.form-range::-moz-range-thumb {
+ background-color: #375a7f;
+ border: 0;
+}
+.form-range::-moz-range-thumb:active {
+ background-color: #c3ced9;
+}
+.form-range::-moz-range-track {
+ background-color: #515151;
+}
+.form-range:disabled {
+ pointer-events: none;
+}
+.form-range:disabled::-webkit-slider-thumb {
+ background-color: #7e7e7e;
+}
+.form-range:disabled::-moz-range-thumb {
+ background-color: #7e7e7e;
+}
+
+.form-floating > .form-control::-moz-placeholder {
+ color: transparent;
+}
+
+.form-floating > .form-control::placeholder {
+ color: transparent;
+}
+.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label {
+ opacity: 0.65;
+}
+.form-floating > .form-control:focus ~ label,
+.form-floating > .form-control:not(:placeholder-shown) ~ label,
+.form-floating > .form-select ~ label {
+ opacity: 0.65;
+}
+.form-floating > .form-control:-webkit-autofill ~ label {
+ opacity: 0.65;
+}
+
+.input-group-text {
+ color: #b1b1b1;
+ background-color: #3b3b3b;
+ border: 1px solid #515151;
+}
+
+.valid-feedback {
+ color: #00bc8c;
+}
+
+.valid-tooltip {
+ color: #111;
+ background-color: rgba(0, 188, 140, 0.9);
+}
+
+.was-validated .form-control:valid, .form-control.is-valid {
+ border-color: #00bc8c;
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300bc8c' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
+}
+.was-validated .form-control:valid:focus, .form-control.is-valid:focus {
+ border-color: #00bc8c;
+ box-shadow: 0 0 0 0.25rem rgba(0, 188, 140, 0.25);
+}
+
+.was-validated .form-select:valid, .form-select.is-valid {
+ border-color: #00bc8c;
+}
+.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23cfcfcf' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300bc8c' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
+}
+.was-validated .form-select:valid[multiple], .was-validated .form-select:valid[size]:not([size="1"]), .form-select.is-valid[multiple], .form-select.is-valid[size]:not([size="1"]) {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2300bc8c' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
+}
+.was-validated .form-select:valid:focus, .form-select.is-valid:focus {
+ border-color: #00bc8c;
+ box-shadow: 0 0 0 0.25rem rgba(0, 188, 140, 0.25);
+}
+
+.was-validated .form-check-input:valid, .form-check-input.is-valid {
+ border-color: #00bc8c;
+}
+.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked {
+ background-color: #00bc8c;
+}
+.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus {
+ box-shadow: 0 0 0 0.25rem rgba(0, 188, 140, 0.25);
+}
+.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
+ color: #00bc8c;
+}
+
+.invalid-feedback {
+ color: #e74c3c;
+}
+
+.invalid-tooltip {
+ color: #fafafa;
+ background-color: rgba(231, 76, 60, 0.9);
+}
+
+.was-validated .form-control:invalid, .form-control.is-invalid {
+ border-color: #e74c3c;
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23e74c3c'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
+}
+.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {
+ border-color: #e74c3c;
+ box-shadow: 0 0 0 0.25rem rgba(231, 76, 60, 0.25);
+}
+
+.was-validated .form-select:invalid, .form-select.is-invalid {
+ border-color: #e74c3c;
+}
+.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23cfcfcf' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23e74c3c'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
+}
+.was-validated .form-select:invalid[multiple], .was-validated .form-select:invalid[size]:not([size="1"]), .form-select.is-invalid[multiple], .form-select.is-invalid[size]:not([size="1"]) {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23e74c3c'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
+}
+.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus {
+ border-color: #e74c3c;
+ box-shadow: 0 0 0 0.25rem rgba(231, 76, 60, 0.25);
+}
+
+.was-validated .form-check-input:invalid, .form-check-input.is-invalid {
+ border-color: #e74c3c;
+}
+.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked {
+ background-color: #e74c3c;
+}
+.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus {
+ box-shadow: 0 0 0 0.25rem rgba(231, 76, 60, 0.25);
+}
+.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
+ color: #e74c3c;
+}
+
+.btn {
+ color: #e1e1e1;
+ background-color: transparent;
+ border: 1px solid transparent;
+}
+.btn:hover {
+ color: #e1e1e1;
+}
+.btn-check:focus + .btn, .btn:focus {
+ box-shadow: 0 0 0 0.25rem rgba(55, 90, 127, 0.25);
+}
+.btn:disabled, .btn.disabled, fieldset:disabled .btn {
+ opacity: 0.65;
+}
+
+.btn-primary {
+ color: #fafafa;
+ background-color: #375a7f;
+ border-color: #375a7f;
+}
+.btn-primary:hover {
+ color: #fafafa;
+ background-color: #2f4d6c;
+ border-color: #2c4866;
+}
+.btn-check:focus + .btn-primary, .btn-primary:focus {
+ color: #fafafa;
+ background-color: #2f4d6c;
+ border-color: #2c4866;
+ box-shadow: 0 0 0 0.25rem rgba(84, 114, 145, 0.5);
+}
+.btn-check:checked + .btn-primary, .btn-check:active + .btn-primary, .btn-primary:active, .btn-primary.active, .show > .btn-primary.dropdown-toggle {
+ color: #fafafa;
+ background-color: #2c4866;
+ border-color: #29445f;
+}
+.btn-check:checked + .btn-primary:focus, .btn-check:active + .btn-primary:focus, .btn-primary:active:focus, .btn-primary.active:focus, .show > .btn-primary.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(84, 114, 145, 0.5);
+}
+.btn-primary:disabled, .btn-primary.disabled {
+ color: #fafafa;
+ background-color: #375a7f;
+ border-color: #375a7f;
+}
+
+.btn-secondary {
+ color: #fafafa;
+ background-color: #626262;
+ border-color: #626262;
+}
+.btn-secondary:hover {
+ color: #fafafa;
+ background-color: #535353;
+ border-color: #4e4e4e;
+}
+.btn-check:focus + .btn-secondary, .btn-secondary:focus {
+ color: #fafafa;
+ background-color: #535353;
+ border-color: #4e4e4e;
+ box-shadow: 0 0 0 0.25rem rgba(121, 121, 121, 0.5);
+}
+.btn-check:checked + .btn-secondary, .btn-check:active + .btn-secondary, .btn-secondary:active, .btn-secondary.active, .show > .btn-secondary.dropdown-toggle {
+ color: #fafafa;
+ background-color: #4e4e4e;
+ border-color: #4a4a4a;
+}
+.btn-check:checked + .btn-secondary:focus, .btn-check:active + .btn-secondary:focus, .btn-secondary:active:focus, .btn-secondary.active:focus, .show > .btn-secondary.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(121, 121, 121, 0.5);
+}
+.btn-secondary:disabled, .btn-secondary.disabled {
+ color: #fafafa;
+ background-color: #626262;
+ border-color: #626262;
+}
+
+.btn-success {
+ color: #111;
+ background-color: #00bc8c;
+ border-color: #00bc8c;
+}
+.btn-success:hover {
+ color: #111;
+ background-color: #26c69d;
+ border-color: #1ac398;
+}
+.btn-check:focus + .btn-success, .btn-success:focus {
+ color: #111;
+ background-color: #26c69d;
+ border-color: #1ac398;
+ box-shadow: 0 0 0 0.25rem rgba(3, 162, 122, 0.5);
+}
+.btn-check:checked + .btn-success, .btn-check:active + .btn-success, .btn-success:active, .btn-success.active, .show > .btn-success.dropdown-toggle {
+ color: #111;
+ background-color: #33c9a3;
+ border-color: #1ac398;
+}
+.btn-check:checked + .btn-success:focus, .btn-check:active + .btn-success:focus, .btn-success:active:focus, .btn-success.active:focus, .show > .btn-success.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(3, 162, 122, 0.5);
+}
+.btn-success:disabled, .btn-success.disabled {
+ color: #111;
+ background-color: #00bc8c;
+ border-color: #00bc8c;
+}
+
+.btn-info {
+ color: #fafafa;
+ background-color: #17a2b8;
+ border-color: #17a2b8;
+}
+.btn-info:hover {
+ color: #fafafa;
+ background-color: #148a9c;
+ border-color: #128293;
+}
+.btn-check:focus + .btn-info, .btn-info:focus {
+ color: #fafafa;
+ background-color: #148a9c;
+ border-color: #128293;
+ box-shadow: 0 0 0 0.25rem rgba(57, 175, 194, 0.5);
+}
+.btn-check:checked + .btn-info, .btn-check:active + .btn-info, .btn-info:active, .btn-info.active, .show > .btn-info.dropdown-toggle {
+ color: #fafafa;
+ background-color: #128293;
+ border-color: #117a8a;
+}
+.btn-check:checked + .btn-info:focus, .btn-check:active + .btn-info:focus, .btn-info:active:focus, .btn-info.active:focus, .show > .btn-info.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(57, 175, 194, 0.5);
+}
+.btn-info:disabled, .btn-info.disabled {
+ color: #fafafa;
+ background-color: #17a2b8;
+ border-color: #17a2b8;
+}
+
+.btn-warning {
+ color: #111;
+ background-color: #f39c12;
+ border-color: #f39c12;
+}
+.btn-warning:hover {
+ color: #111;
+ background-color: #f5ab36;
+ border-color: #f4a62a;
+}
+.btn-check:focus + .btn-warning, .btn-warning:focus {
+ color: #111;
+ background-color: #f5ab36;
+ border-color: #f4a62a;
+ box-shadow: 0 0 0 0.25rem rgba(209, 135, 18, 0.5);
+}
+.btn-check:checked + .btn-warning, .btn-check:active + .btn-warning, .btn-warning:active, .btn-warning.active, .show > .btn-warning.dropdown-toggle {
+ color: #111;
+ background-color: #f5b041;
+ border-color: #f4a62a;
+}
+.btn-check:checked + .btn-warning:focus, .btn-check:active + .btn-warning:focus, .btn-warning:active:focus, .btn-warning.active:focus, .show > .btn-warning.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(209, 135, 18, 0.5);
+}
+.btn-warning:disabled, .btn-warning.disabled {
+ color: #111;
+ background-color: #f39c12;
+ border-color: #f39c12;
+}
+
+.btn-danger {
+ color: #fafafa;
+ background-color: #e74c3c;
+ border-color: #e74c3c;
+}
+.btn-danger:hover {
+ color: #fafafa;
+ background-color: #c44133;
+ border-color: #b93d30;
+}
+.btn-check:focus + .btn-danger, .btn-danger:focus {
+ color: #fafafa;
+ background-color: #c44133;
+ border-color: #b93d30;
+ box-shadow: 0 0 0 0.25rem rgba(234, 102, 89, 0.5);
+}
+.btn-check:checked + .btn-danger, .btn-check:active + .btn-danger, .btn-danger:active, .btn-danger.active, .show > .btn-danger.dropdown-toggle {
+ color: #fafafa;
+ background-color: #b93d30;
+ border-color: #ad392d;
+}
+.btn-check:checked + .btn-danger:focus, .btn-check:active + .btn-danger:focus, .btn-danger:active:focus, .btn-danger.active:focus, .show > .btn-danger.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(234, 102, 89, 0.5);
+}
+.btn-danger:disabled, .btn-danger.disabled {
+ color: #fafafa;
+ background-color: #e74c3c;
+ border-color: #e74c3c;
+}
+
+.btn-light {
+ color: #fafafa;
+ background-color: #9e9e9e;
+ border-color: #9e9e9e;
+}
+.btn-light:hover {
+ color: #fafafa;
+ background-color: #868686;
+ border-color: #7e7e7e;
+}
+.btn-check:focus + .btn-light, .btn-light:focus {
+ color: #fafafa;
+ background-color: #868686;
+ border-color: #7e7e7e;
+ box-shadow: 0 0 0 0.25rem rgba(172, 172, 172, 0.5);
+}
+.btn-check:checked + .btn-light, .btn-check:active + .btn-light, .btn-light:active, .btn-light.active, .show > .btn-light.dropdown-toggle {
+ color: #fafafa;
+ background-color: #7e7e7e;
+ border-color: #777777;
+}
+.btn-check:checked + .btn-light:focus, .btn-check:active + .btn-light:focus, .btn-light:active:focus, .btn-light.active:focus, .show > .btn-light.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(172, 172, 172, 0.5);
+}
+.btn-light:disabled, .btn-light.disabled {
+ color: #fafafa;
+ background-color: #9e9e9e;
+ border-color: #9e9e9e;
+}
+
+.btn-dark {
+ color: #fafafa;
+ background-color: #3b3b3b;
+ border-color: #3b3b3b;
+}
+.btn-dark:hover {
+ color: #fafafa;
+ background-color: #323232;
+ border-color: #2f2f2f;
+}
+.btn-check:focus + .btn-dark, .btn-dark:focus {
+ color: #fafafa;
+ background-color: #323232;
+ border-color: #2f2f2f;
+ box-shadow: 0 0 0 0.25rem rgba(88, 88, 88, 0.5);
+}
+.btn-check:checked + .btn-dark, .btn-check:active + .btn-dark, .btn-dark:active, .btn-dark.active, .show > .btn-dark.dropdown-toggle {
+ color: #fafafa;
+ background-color: #2f2f2f;
+ border-color: #2c2c2c;
+}
+.btn-check:checked + .btn-dark:focus, .btn-check:active + .btn-dark:focus, .btn-dark:active:focus, .btn-dark.active:focus, .show > .btn-dark.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(88, 88, 88, 0.5);
+}
+.btn-dark:disabled, .btn-dark.disabled {
+ color: #fafafa;
+ background-color: #3b3b3b;
+ border-color: #3b3b3b;
+}
+
+.btn-outline-primary {
+ color: #375a7f;
+ border-color: #375a7f;
+}
+.btn-outline-primary:hover {
+ color: #fff;
+ background-color: #375a7f;
+ border-color: #375a7f;
+}
+.btn-check:focus + .btn-outline-primary, .btn-outline-primary:focus {
+ box-shadow: 0 0 0 0.25rem rgba(55, 90, 127, 0.5);
+}
+.btn-check:checked + .btn-outline-primary, .btn-check:active + .btn-outline-primary, .btn-outline-primary:active, .btn-outline-primary.active, .btn-outline-primary.dropdown-toggle.show {
+ color: #fff;
+ background-color: #375a7f;
+ border-color: #375a7f;
+}
+.btn-check:checked + .btn-outline-primary:focus, .btn-check:active + .btn-outline-primary:focus, .btn-outline-primary:active:focus, .btn-outline-primary.active:focus, .btn-outline-primary.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(55, 90, 127, 0.5);
+}
+.btn-outline-primary:disabled, .btn-outline-primary.disabled {
+ color: #375a7f;
+ background-color: transparent;
+}
+
+.btn-outline-secondary {
+ color: #626262;
+ border-color: #626262;
+}
+.btn-outline-secondary:hover {
+ color: #fff;
+ background-color: #626262;
+ border-color: #626262;
+}
+.btn-check:focus + .btn-outline-secondary, .btn-outline-secondary:focus {
+ box-shadow: 0 0 0 0.25rem rgba(98, 98, 98, 0.5);
+}
+.btn-check:checked + .btn-outline-secondary, .btn-check:active + .btn-outline-secondary, .btn-outline-secondary:active, .btn-outline-secondary.active, .btn-outline-secondary.dropdown-toggle.show {
+ color: #fff;
+ background-color: #626262;
+ border-color: #626262;
+}
+.btn-check:checked + .btn-outline-secondary:focus, .btn-check:active + .btn-outline-secondary:focus, .btn-outline-secondary:active:focus, .btn-outline-secondary.active:focus, .btn-outline-secondary.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(98, 98, 98, 0.5);
+}
+.btn-outline-secondary:disabled, .btn-outline-secondary.disabled {
+ color: #626262;
+ background-color: transparent;
+}
+
+.btn-outline-success {
+ color: #00bc8c;
+ border-color: #00bc8c;
+}
+.btn-outline-success:hover {
+ color: #000;
+ background-color: #00bc8c;
+ border-color: #00bc8c;
+}
+.btn-check:focus + .btn-outline-success, .btn-outline-success:focus {
+ box-shadow: 0 0 0 0.25rem rgba(0, 188, 140, 0.5);
+}
+.btn-check:checked + .btn-outline-success, .btn-check:active + .btn-outline-success, .btn-outline-success:active, .btn-outline-success.active, .btn-outline-success.dropdown-toggle.show {
+ color: #000;
+ background-color: #00bc8c;
+ border-color: #00bc8c;
+}
+.btn-check:checked + .btn-outline-success:focus, .btn-check:active + .btn-outline-success:focus, .btn-outline-success:active:focus, .btn-outline-success.active:focus, .btn-outline-success.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(0, 188, 140, 0.5);
+}
+.btn-outline-success:disabled, .btn-outline-success.disabled {
+ color: #00bc8c;
+ background-color: transparent;
+}
+
+.btn-outline-info {
+ color: #17a2b8;
+ border-color: #17a2b8;
+}
+.btn-outline-info:hover {
+ color: #000;
+ background-color: #17a2b8;
+ border-color: #17a2b8;
+}
+.btn-check:focus + .btn-outline-info, .btn-outline-info:focus {
+ box-shadow: 0 0 0 0.25rem rgba(23, 162, 184, 0.5);
+}
+.btn-check:checked + .btn-outline-info, .btn-check:active + .btn-outline-info, .btn-outline-info:active, .btn-outline-info.active, .btn-outline-info.dropdown-toggle.show {
+ color: #000;
+ background-color: #17a2b8;
+ border-color: #17a2b8;
+}
+.btn-check:checked + .btn-outline-info:focus, .btn-check:active + .btn-outline-info:focus, .btn-outline-info:active:focus, .btn-outline-info.active:focus, .btn-outline-info.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(23, 162, 184, 0.5);
+}
+.btn-outline-info:disabled, .btn-outline-info.disabled {
+ color: #17a2b8;
+ background-color: transparent;
+}
+
+.btn-outline-warning {
+ color: #f39c12;
+ border-color: #f39c12;
+}
+.btn-outline-warning:hover {
+ color: #000;
+ background-color: #f39c12;
+ border-color: #f39c12;
+}
+.btn-check:focus + .btn-outline-warning, .btn-outline-warning:focus {
+ box-shadow: 0 0 0 0.25rem rgba(243, 156, 18, 0.5);
+}
+.btn-check:checked + .btn-outline-warning, .btn-check:active + .btn-outline-warning, .btn-outline-warning:active, .btn-outline-warning.active, .btn-outline-warning.dropdown-toggle.show {
+ color: #000;
+ background-color: #f39c12;
+ border-color: #f39c12;
+}
+.btn-check:checked + .btn-outline-warning:focus, .btn-check:active + .btn-outline-warning:focus, .btn-outline-warning:active:focus, .btn-outline-warning.active:focus, .btn-outline-warning.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(243, 156, 18, 0.5);
+}
+.btn-outline-warning:disabled, .btn-outline-warning.disabled {
+ color: #f39c12;
+ background-color: transparent;
+}
+
+.btn-outline-danger {
+ color: #e74c3c;
+ border-color: #e74c3c;
+}
+.btn-outline-danger:hover {
+ color: #000;
+ background-color: #e74c3c;
+ border-color: #e74c3c;
+}
+.btn-check:focus + .btn-outline-danger, .btn-outline-danger:focus {
+ box-shadow: 0 0 0 0.25rem rgba(231, 76, 60, 0.5);
+}
+.btn-check:checked + .btn-outline-danger, .btn-check:active + .btn-outline-danger, .btn-outline-danger:active, .btn-outline-danger.active, .btn-outline-danger.dropdown-toggle.show {
+ color: #000;
+ background-color: #e74c3c;
+ border-color: #e74c3c;
+}
+.btn-check:checked + .btn-outline-danger:focus, .btn-check:active + .btn-outline-danger:focus, .btn-outline-danger:active:focus, .btn-outline-danger.active:focus, .btn-outline-danger.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(231, 76, 60, 0.5);
+}
+.btn-outline-danger:disabled, .btn-outline-danger.disabled {
+ color: #e74c3c;
+ background-color: transparent;
+}
+
+.btn-outline-light {
+ color: #9e9e9e;
+ border-color: #9e9e9e;
+}
+.btn-outline-light:hover {
+ color: #000;
+ background-color: #9e9e9e;
+ border-color: #9e9e9e;
+}
+.btn-check:focus + .btn-outline-light, .btn-outline-light:focus {
+ box-shadow: 0 0 0 0.25rem rgba(158, 158, 158, 0.5);
+}
+.btn-check:checked + .btn-outline-light, .btn-check:active + .btn-outline-light, .btn-outline-light:active, .btn-outline-light.active, .btn-outline-light.dropdown-toggle.show {
+ color: #000;
+ background-color: #9e9e9e;
+ border-color: #9e9e9e;
+}
+.btn-check:checked + .btn-outline-light:focus, .btn-check:active + .btn-outline-light:focus, .btn-outline-light:active:focus, .btn-outline-light.active:focus, .btn-outline-light.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(158, 158, 158, 0.5);
+}
+.btn-outline-light:disabled, .btn-outline-light.disabled {
+ color: #9e9e9e;
+ background-color: transparent;
+}
+
+.btn-outline-dark {
+ color: #3b3b3b;
+ border-color: #3b3b3b;
+}
+.btn-outline-dark:hover {
+ color: #fff;
+ background-color: #3b3b3b;
+ border-color: #3b3b3b;
+}
+.btn-check:focus + .btn-outline-dark, .btn-outline-dark:focus {
+ box-shadow: 0 0 0 0.25rem rgba(59, 59, 59, 0.5);
+}
+.btn-check:checked + .btn-outline-dark, .btn-check:active + .btn-outline-dark, .btn-outline-dark:active, .btn-outline-dark.active, .btn-outline-dark.dropdown-toggle.show {
+ color: #fff;
+ background-color: #3b3b3b;
+ border-color: #3b3b3b;
+}
+.btn-check:checked + .btn-outline-dark:focus, .btn-check:active + .btn-outline-dark:focus, .btn-outline-dark:active:focus, .btn-outline-dark.active:focus, .btn-outline-dark.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(59, 59, 59, 0.5);
+}
+.btn-outline-dark:disabled, .btn-outline-dark.disabled {
+ color: #3b3b3b;
+ background-color: transparent;
+}
+
+.btn-link {
+ color: #5f7b99;
+}
+.btn-link:hover {
+ color: #4b6b8c;
+}
+.btn-link:disabled, .btn-link.disabled {
+ color: #626262;
+}
+
+.dropdown-menu {
+ color: #e1e1e1;
+ background-color: #111;
+ border: 1px solid rgba(250, 250, 250, 0.15);
+}
+
+.dropdown-divider {
+ border-top: 1px solid rgba(250, 250, 250, 0.15);
+}
+
+.dropdown-item {
+ color: #f8f9fa;
+ background-color: transparent;
+ border: 0;
+}
+.dropdown-item:hover, .dropdown-item:focus {
+ color: #dfe0e1;
+ background-color: #343a40;
+}
+.dropdown-item.active, .dropdown-item:active {
+ color: #fafafa;
+ background-color: #375a7f;
+}
+.dropdown-item.disabled, .dropdown-item:disabled {
+ color: #7e7e7e;
+ background-color: transparent;
+}
+
+.dropdown-header {
+ color: #9e9e9e;
+}
+
+.dropdown-item-text {
+ color: #f8f9fa;
+}
+
+.dropdown-menu-dark {
+ color: #515151;
+ background-color: #cfcfcf;
+ border-color: rgba(250, 250, 250, 0.15);
+}
+.dropdown-menu-dark .dropdown-item {
+ color: #515151;
+}
+.dropdown-menu-dark .dropdown-item:hover, .dropdown-menu-dark .dropdown-item:focus {
+ color: #111;
+ background-color: rgba(17, 17, 17, 0.15);
+}
+.dropdown-menu-dark .dropdown-item.active, .dropdown-menu-dark .dropdown-item:active {
+ color: #fafafa;
+ background-color: #375a7f;
+}
+.dropdown-menu-dark .dropdown-item.disabled, .dropdown-menu-dark .dropdown-item:disabled {
+ color: #7e7e7e;
+}
+.dropdown-menu-dark .dropdown-divider {
+ border-color: rgba(250, 250, 250, 0.15);
+}
+.dropdown-menu-dark .dropdown-item-text {
+ color: #515151;
+}
+.dropdown-menu-dark .dropdown-header {
+ color: #7e7e7e;
+}
+
+.nav-link {
+ color: #5f7b99;
+}
+.nav-link:hover, .nav-link:focus {
+ color: #4b6b8c;
+}
+.nav-link.disabled {
+ color: #9e9e9e;
+}
+
+.nav-tabs {
+ border-bottom: 1px solid #515151;
+}
+.nav-tabs .nav-link {
+ border: 1px solid transparent;
+}
+.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
+ border-color: #3b3b3b #3b3b3b #515151;
+}
+.nav-tabs .nav-link.disabled {
+ color: #9e9e9e;
+ background-color: transparent;
+ border-color: transparent;
+}
+.nav-tabs .nav-link.active,
+.nav-tabs .nav-item.show .nav-link {
+ color: #b1b1b1;
+ background-color: #222;
+ border-color: #515151 #515151 #222;
+}
+
+.nav-pills .nav-link.active,
+.nav-pills .show > .nav-link {
+ color: #fafafa;
+ background-color: #375a7f;
+}
+
+.navbar-toggler {
+ background-color: transparent;
+ border: 1px solid transparent;
+}
+
+.navbar-light .navbar-brand {
+ color: rgba(250, 250, 250, 0.9);
+}
+.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {
+ color: rgba(250, 250, 250, 0.9);
+}
+.navbar-light .navbar-nav .nav-link {
+ color: rgba(250, 250, 250, 0.55);
+}
+.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {
+ color: rgba(250, 250, 250, 0.7);
+}
+.navbar-light .navbar-nav .nav-link.disabled {
+ color: rgba(250, 250, 250, 0.3);
+}
+.navbar-light .navbar-nav .show > .nav-link,
+.navbar-light .navbar-nav .nav-link.active {
+ color: rgba(250, 250, 250, 0.9);
+}
+.navbar-light .navbar-toggler {
+ color: rgba(250, 250, 250, 0.55);
+ border-color: rgba(250, 250, 250, 0.1);
+}
+.navbar-light .navbar-toggler-icon {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28250, 250, 250, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
+}
+.navbar-light .navbar-text {
+ color: rgba(250, 250, 250, 0.55);
+}
+.navbar-light .navbar-text a,
+.navbar-light .navbar-text a:hover,
+.navbar-light .navbar-text a:focus {
+ color: rgba(250, 250, 250, 0.9);
+}
+
+.navbar-dark .navbar-brand {
+ color: #fafafa;
+}
+.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {
+ color: #fafafa;
+}
+.navbar-dark .navbar-nav .nav-link {
+ color: rgba(250, 250, 250, 0.55);
+}
+.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {
+ color: rgba(250, 250, 250, 0.75);
+}
+.navbar-dark .navbar-nav .nav-link.disabled {
+ color: rgba(250, 250, 250, 0.25);
+}
+.navbar-dark .navbar-nav .show > .nav-link,
+.navbar-dark .navbar-nav .nav-link.active {
+ color: #fafafa;
+}
+.navbar-dark .navbar-toggler {
+ color: rgba(250, 250, 250, 0.55);
+ border-color: rgba(250, 250, 250, 0.1);
+}
+.navbar-dark .navbar-toggler-icon {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28250, 250, 250, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
+}
+.navbar-dark .navbar-text {
+ color: rgba(250, 250, 250, 0.55);
+}
+.navbar-dark .navbar-text a,
+.navbar-dark .navbar-text a:hover,
+.navbar-dark .navbar-text a:focus {
+ color: #fafafa;
+}
+
+.card {
+ background-color: #222;
+ border: 1px solid rgba(250, 250, 250, 0.125);
+}
+
+.card-header {
+ background-color: rgba(250, 250, 250, 0.03);
+ border-bottom: 1px solid rgba(250, 250, 250, 0.125);
+}
+
+.card-footer {
+ background-color: rgba(250, 250, 250, 0.03);
+ border-top: 1px solid rgba(250, 250, 250, 0.125);
+}
+
+.accordion-button {
+ color: #e1e1e1;
+ background-color: #222;
+}
+.accordion-button:not(.collapsed) {
+ color: #879cb2;
+ background-color: #1c2d40;
+ box-shadow: inset 0 -1px 0 rgba(250, 250, 250, 0.125);
+}
+.accordion-button:not(.collapsed)::after {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23879cb2'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
+}
+.accordion-button::after {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23e1e1e1'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
+}
+.accordion-button:hover {
+ z-index: 2;
+}
+.accordion-button:focus {
+ border-color: #9badbf;
+ box-shadow: 0 0 0 0.25rem rgba(55, 90, 127, 0.25);
+}
+
+.accordion-item {
+ background-color: #222;
+ border: 1px solid rgba(250, 250, 250, 0.125);
+}
+
+.accordion-flush .accordion-collapse {
+ border-width: 0;
+}
+.accordion-flush .accordion-item {
+ border-right: 0;
+ border-left: 0;
+}
+.accordion-flush .accordion-item:first-child {
+ border-top: 0;
+}
+.accordion-flush .accordion-item:last-child {
+ border-bottom: 0;
+}
+
+.breadcrumb-item + .breadcrumb-item::before {
+ color: #9e9e9e;
+}
+.breadcrumb-item.active {
+ color: #9e9e9e;
+}
+
+.page-link {
+ color: #5f7b99;
+ background-color: #3b3b3b;
+ border: 1px solid #515151;
+}
+.page-link:hover {
+ color: #4b6b8c;
+ background-color: #515151;
+ border-color: #515151;
+}
+.page-link:focus {
+ color: #4b6b8c;
+ background-color: #3b3b3b;
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(55, 90, 127, 0.25);
+}
+
+.page-item.active .page-link {
+ color: #fafafa;
+ background-color: #375a7f;
+ border-color: #375a7f;
+}
+.page-item.disabled .page-link {
+ color: #5a5a5a;
+ background-color: #222;
+ border-color: #515151;
+}
+
+.badge {
+ color: #fafafa;
+}
+
+.alert-heading {
+ color: inherit;
+}
+
+.alert-primary {
+ color: #738ca5;
+ background-color: #1c2d40;
+ border-color: #21364c;
+}
+.alert-primary .alert-link {
+ color: #5c7084;
+}
+
+.alert-secondary {
+ color: #919191;
+ background-color: #313131;
+ border-color: #3b3b3b;
+}
+.alert-secondary .alert-link {
+ color: #747474;
+}
+
+.alert-success {
+ color: #4dd0af;
+ background-color: #005e46;
+ border-color: #007154;
+}
+.alert-success .alert-link {
+ color: #3ea68c;
+}
+
+.alert-info {
+ color: #5dbecd;
+ background-color: #0c515c;
+ border-color: #0e616e;
+}
+.alert-info .alert-link {
+ color: #4a98a4;
+}
+
+.alert-warning {
+ color: #f7ba59;
+ background-color: #7a4e09;
+ border-color: #925e0b;
+}
+.alert-warning .alert-link {
+ color: #c69547;
+}
+
+.alert-danger {
+ color: #ee8277;
+ background-color: #74261e;
+ border-color: #8b2e24;
+}
+.alert-danger .alert-link {
+ color: #be685f;
+}
+
+.alert-light {
+ color: #bbbbbb;
+ background-color: #4f4f4f;
+ border-color: #5f5f5f;
+}
+.alert-light .alert-link {
+ color: #969696;
+}
+
+.alert-dark {
+ color: #767676;
+ background-color: #1e1e1e;
+ border-color: #232323;
+}
+.alert-dark .alert-link {
+ color: #5e5e5e;
+}
+
+.progress {
+ background-color: #3b3b3b;
+}
+
+.progress-bar {
+ color: #111;
+ background-color: #375a7f;
+}
+
+.list-group-item-action {
+ color: #b1b1b1;
+}
+.list-group-item-action:hover, .list-group-item-action:focus {
+ color: #b1b1b1;
+ background-color: #2f2f2f;
+}
+.list-group-item-action:active {
+ color: #e1e1e1;
+ background-color: #3b3b3b;
+}
+
+.list-group-item {
+ color: #e1e1e1;
+ background-color: #222;
+ border: 1px solid rgba(250, 250, 250, 0.125);
+}
+.list-group-item.disabled, .list-group-item:disabled {
+ color: #9e9e9e;
+ background-color: #222;
+}
+.list-group-item.active {
+ color: #fafafa;
+ background-color: #375a7f;
+ border-color: #375a7f;
+}
+
+.list-group-flush > .list-group-item {
+ border-width: 0 0 1px;
+}
+.list-group-flush > .list-group-item:last-child {
+ border-bottom-width: 0;
+}
+
+.list-group-item-primary {
+ color: #738ca5;
+ background-color: #1c2d40;
+}
+.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {
+ color: #738ca5;
+ background-color: #19293a;
+}
+.list-group-item-primary.list-group-item-action.active {
+ color: #fff;
+ background-color: #738ca5;
+ border-color: #738ca5;
+}
+
+.list-group-item-secondary {
+ color: #919191;
+ background-color: #313131;
+}
+.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {
+ color: #919191;
+ background-color: #2c2c2c;
+}
+.list-group-item-secondary.list-group-item-action.active {
+ color: #fff;
+ background-color: #919191;
+ border-color: #919191;
+}
+
+.list-group-item-success {
+ color: #4dd0af;
+ background-color: #005e46;
+}
+.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {
+ color: #4dd0af;
+ background-color: #00553f;
+}
+.list-group-item-success.list-group-item-action.active {
+ color: #fff;
+ background-color: #4dd0af;
+ border-color: #4dd0af;
+}
+
+.list-group-item-info {
+ color: #5dbecd;
+ background-color: #0c515c;
+}
+.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {
+ color: #5dbecd;
+ background-color: #0b4953;
+}
+.list-group-item-info.list-group-item-action.active {
+ color: #fff;
+ background-color: #5dbecd;
+ border-color: #5dbecd;
+}
+
+.list-group-item-warning {
+ color: #f7ba59;
+ background-color: #7a4e09;
+}
+.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {
+ color: #f7ba59;
+ background-color: #6e4608;
+}
+.list-group-item-warning.list-group-item-action.active {
+ color: #fff;
+ background-color: #f7ba59;
+ border-color: #f7ba59;
+}
+
+.list-group-item-danger {
+ color: #ee8277;
+ background-color: #74261e;
+}
+.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {
+ color: #ee8277;
+ background-color: #68221b;
+}
+.list-group-item-danger.list-group-item-action.active {
+ color: #fff;
+ background-color: #ee8277;
+ border-color: #ee8277;
+}
+
+.list-group-item-light {
+ color: #bbbbbb;
+ background-color: #4f4f4f;
+}
+.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {
+ color: #bbbbbb;
+ background-color: #474747;
+}
+.list-group-item-light.list-group-item-action.active {
+ color: #fff;
+ background-color: #bbbbbb;
+ border-color: #bbbbbb;
+}
+
+.list-group-item-dark {
+ color: #767676;
+ background-color: #1e1e1e;
+}
+.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {
+ color: #767676;
+ background-color: #1b1b1b;
+}
+.list-group-item-dark.list-group-item-action.active {
+ color: #fff;
+ background-color: #767676;
+ border-color: #767676;
+}
+
+.btn-close {
+ color: #fafafa;
+ background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fafafa'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;
+ opacity: 0.5;
+}
+.btn-close:hover {
+ color: #fafafa;
+ opacity: 0.75;
+}
+.btn-close:focus {
+ box-shadow: 0 0 0 0.25rem rgba(55, 90, 127, 0.25);
+ opacity: 1;
+}
+.btn-close:disabled, .btn-close.disabled {
+ opacity: 0.25;
+}
+
+.btn-close-white {
+ filter: invert(1) grayscale(100%) brightness(200%);
+}
+
+.toast {
+ background-color: rgba(17, 17, 17, 0.85);
+ border: 1px solid rgba(250, 250, 250, 0.1);
+ box-shadow: 0 0.5rem 1rem rgba(17, 17, 17, 0.15);
+}
+
+.toast-header {
+ color: #9e9e9e;
+ background-color: rgba(17, 17, 17, 0.85);
+ border-bottom: 1px solid rgba(250, 250, 250, 0.05);
+}
+
+.modal-content {
+ background-color: #2f2f2f;
+ border: 1px solid rgba(250, 250, 250, 0.2);
+}
+
+.modal-backdrop {
+ background-color: #111;
+}
+.modal-backdrop.fade {
+ opacity: 0;
+}
+.modal-backdrop.show {
+ opacity: 0.85;
+}
+
+.modal-header {
+ border-bottom: 1px solid #515151;
+}
+
+.modal-footer {
+ border-top: 1px solid #515151;
+}
+
+.tooltip {
+ opacity: 0;
+}
+.tooltip.show {
+ opacity: 0.9;
+}
+
+.bs-tooltip-top .tooltip-arrow::before,
+.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before {
+ border-top-color: #fafafa;
+}
+
+.bs-tooltip-end .tooltip-arrow::before,
+.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before {
+ border-right-color: #fafafa;
+}
+
+.bs-tooltip-bottom .tooltip-arrow::before,
+.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before {
+ border-bottom-color: #fafafa;
+}
+
+.bs-tooltip-start .tooltip-arrow::before,
+.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before {
+ border-left-color: #fafafa;
+}
+
+.tooltip-inner {
+ color: #111;
+ background-color: #fafafa;
+}
+
+.popover {
+ background-color: #111;
+ border: 1px solid rgba(250, 250, 250, 0.2);
+}
+.popover .popover-arrow::before, .popover .popover-arrow::after {
+ border-color: transparent;
+ border-style: solid;
+}
+
+.bs-popover-top > .popover-arrow::before,
+.bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before {
+ border-top-color: rgba(250, 250, 250, 0.25);
+}
+.bs-popover-top > .popover-arrow::after,
+.bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {
+ border-top-color: #111;
+}
+
+.bs-popover-end > .popover-arrow::before,
+.bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before {
+ border-right-color: rgba(250, 250, 250, 0.25);
+}
+.bs-popover-end > .popover-arrow::after,
+.bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {
+ border-right-color: #111;
+}
+
+.bs-popover-bottom > .popover-arrow::before,
+.bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before {
+ border-bottom-color: rgba(250, 250, 250, 0.25);
+}
+.bs-popover-bottom > .popover-arrow::after,
+.bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {
+ border-bottom-color: #111;
+}
+.bs-popover-bottom .popover-header::before,
+.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before {
+ border-bottom: 1px solid #1f1f1f;
+}
+
+.bs-popover-start > .popover-arrow::before,
+.bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before {
+ border-left-color: rgba(250, 250, 250, 0.25);
+}
+.bs-popover-start > .popover-arrow::after,
+.bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {
+ border-left-color: #111;
+}
+
+.popover-header {
+ background-color: #1f1f1f;
+ border-bottom: 1px solid rgba(250, 250, 250, 0.2);
+}
+
+.popover-body {
+ color: #e1e1e1;
+}
+
+.carousel-control-prev,
+.carousel-control-next {
+ color: #fafafa;
+ opacity: 0.5;
+}
+.carousel-control-prev:hover, .carousel-control-prev:focus,
+.carousel-control-next:hover,
+.carousel-control-next:focus {
+ color: #fafafa;
+ opacity: 0.9;
+}
+
+.carousel-control-prev-icon {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fafafa'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e");
+}
+
+.carousel-control-next-icon {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fafafa'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
+}
+
+.carousel-indicators [data-bs-target] {
+ background-color: #111;
+ opacity: 0.5;
+}
+.carousel-indicators .active {
+ opacity: 1;
+}
+
+.carousel-caption {
+ color: #111;
+}
+
+.carousel-dark .carousel-control-prev-icon,
+.carousel-dark .carousel-control-next-icon {
+ filter: invert(1) grayscale(100);
+}
+.carousel-dark .carousel-indicators [data-bs-target] {
+ background-color: #fafafa;
+}
+.carousel-dark .carousel-caption {
+ color: #fafafa;
+}
+
+.offcanvas {
+ background-color: #2f2f2f;
+}
+
+.offcanvas-backdrop {
+ background-color: #111;
+}
+.offcanvas-backdrop.fade {
+ opacity: 0;
+}
+.offcanvas-backdrop.show {
+ opacity: 0.85;
+}
+
+.offcanvas-start {
+ border-right: 1px solid rgba(250, 250, 250, 0.2);
+}
+
+.offcanvas-end {
+ border-left: 1px solid rgba(250, 250, 250, 0.2);
+}
+
+.offcanvas-top {
+ border-bottom: 1px solid rgba(250, 250, 250, 0.2);
+}
+
+.offcanvas-bottom {
+ border-top: 1px solid rgba(250, 250, 250, 0.2);
+}
+
+.placeholder {
+ background-color: currentColor;
+ opacity: 0.5;
+}
+
+@-webkit-keyframes placeholder-glow {
+ 50% {
+ opacity: 0.2;
+ }
+}
+
+@keyframes placeholder-glow {
+ 50% {
+ opacity: 0.2;
+ }
+}
+.placeholder-wave {
+ -webkit-mask-image: linear-gradient(130deg, #fafafa 55%, rgba(255, 255, 255, 0.8) 75%, #fafafa 95%);
+ mask-image: linear-gradient(130deg, #fafafa 55%, rgba(255, 255, 255, 0.8) 75%, #fafafa 95%);
+}
+
+.link-primary {
+ color: #375a7f;
+}
+.link-primary:hover, .link-primary:focus {
+ color: #2c4866;
+}
+
+.link-secondary {
+ color: #626262;
+}
+.link-secondary:hover, .link-secondary:focus {
+ color: #4e4e4e;
+}
+
+.link-success {
+ color: #00bc8c;
+}
+.link-success:hover, .link-success:focus {
+ color: #33c9a3;
+}
+
+.link-info {
+ color: #17a2b8;
+}
+.link-info:hover, .link-info:focus {
+ color: #128293;
+}
+
+.link-warning {
+ color: #f39c12;
+}
+.link-warning:hover, .link-warning:focus {
+ color: #f5b041;
+}
+
+.link-danger {
+ color: #e74c3c;
+}
+.link-danger:hover, .link-danger:focus {
+ color: #b93d30;
+}
+
+.link-light {
+ color: #9e9e9e;
+}
+.link-light:hover, .link-light:focus {
+ color: #7e7e7e;
+}
+
+.link-dark {
+ color: #3b3b3b;
+}
+.link-dark:hover, .link-dark:focus {
+ color: #2f2f2f;
+}
+
+.vr {
+ background-color: currentColor;
+ opacity: 0.1;
+}
+
+.shadow {
+ box-shadow: 0 0.5rem 1rem rgba(17, 17, 17, 0.15) !important;
+}
+
+.shadow-sm {
+ box-shadow: 0 0.125rem 0.25rem rgba(17, 17, 17, 0.075) !important;
+}
+
+.shadow-lg {
+ box-shadow: 0 1rem 3rem rgba(17, 17, 17, 0.175) !important;
+}
+
+.border {
+ border: 1px solid #515151 !important;
+}
+
+.border-top {
+ border-top: 1px solid #515151 !important;
+}
+
+.border-end {
+ border-right: 1px solid #515151 !important;
+}
+
+.border-bottom {
+ border-bottom: 1px solid #515151 !important;
+}
+
+.border-start {
+ border-left: 1px solid #515151 !important;
+}
+
+.border-primary {
+ border-color: #375a7f !important;
+}
+
+.border-secondary {
+ border-color: #626262 !important;
+}
+
+.border-success {
+ border-color: #00bc8c !important;
+}
+
+.border-info {
+ border-color: #17a2b8 !important;
+}
+
+.border-warning {
+ border-color: #f39c12 !important;
+}
+
+.border-danger {
+ border-color: #e74c3c !important;
+}
+
+.border-light {
+ border-color: #9e9e9e !important;
+}
+
+.border-dark {
+ border-color: #3b3b3b !important;
+}
+
+.border-white {
+ border-color: #fafafa !important;
+}
+
+.border-black {
+ border-color: #111 !important;
+}
+
+.text-muted {
+ --bs-text-opacity: 1;
+ color: #9e9e9e !important;
+}
+
+.text-white-50 {
+ --bs-text-opacity: 1;
+ color: rgba(250, 250, 250, 0.5) !important;
+}
+
+.text-black-50 {
+ --bs-text-opacity: 1;
+ color: rgba(17, 17, 17, 0.5) !important;
+}
+
+.bg-black {
+ --bs-bg-opacity: 1;
+ background-color: #111 !important;
+}
+
+body::-moz-selection {
+ color: #cfcfcf;
+ background: rgba(23, 162, 184, 0.5);
+}
+
+body::selection {
+ color: #cfcfcf;
+ background: rgba(23, 162, 184, 0.5);
+}
+
+/*# sourceMappingURL=bootstrap-nightfall.css.map */ \ No newline at end of file
diff --git a/view/theme/redbasic/schema/dark.css b/view/theme/redbasic/schema/dark.css
index bf55fec72..e7049a1c5 100644
--- a/view/theme/redbasic/schema/dark.css
+++ b/view/theme/redbasic/schema/dark.css
@@ -157,6 +157,10 @@ option {
color:#fff !important;
}
+.dropdown-item {
+ color: $font_colour;
+}
+
a.btn, aside a {
font-weight: 400 !important;
}
@@ -164,7 +168,7 @@ a.btn, aside a {
.btn {
background-color: #1e1e1e;
border-color: #222;
- color: #ccc;
+ color: $font_colour;
text-shadow: none;
box-shadow: none;
}
@@ -181,7 +185,7 @@ a.btn, aside a {
}
.btn-primary, input#event-submit, input#rmagic-submit-button, input#lostpass-submit-button {
- background-color: #337AB7;
+ background-color: #20537E;
color: #FFF;
}
@@ -192,8 +196,8 @@ a.btn, aside a {
}
.btn-success {
- color: #FFF !important;
- background-color: #5CB85C !important;
+ color: #ccc !important;
+ background-color: #336A33 !important;
border-color: #4CAE4C !important;
}
@@ -216,7 +220,7 @@ a.btn, aside a {
}
.btn-danger, form#chat-destroy > input {
- background-color: #D9534F !important;
+ background-color: #B22A26 !important;
border-color: #D43F3A !important;
color: #FFF !important;
}
diff --git a/view/tpl/login.tpl b/view/tpl/login.tpl
index cc4616b16..ead524193 100644
--- a/view/tpl/login.tpl
+++ b/view/tpl/login.tpl
@@ -1,13 +1,13 @@
<form action="{{$dest_url}}" id="{{$form_id}}" method="post" >
<input type="hidden" name="auth-params" value="login" />
- <div id="login-main" class="d-grid gap-2">
+ <div class="login-wrapper d-grid gap-2">
{{include file="field_input.tpl" field=$lname}}
{{include file="field_password.tpl" field=$lpassword}}
{{include file="field_checkbox.tpl" field=$remember_me}}
<button type="submit" name="submit" class="btn btn-primary">{{$login}}</button>
- {{if $register}}<a href="{{$register.link}}" title="{{$register.title}}" id="register-link" class="float-end">{{$register.desc}}</a>{{/if}}
- {{if $lostlink}}<a href="lostpass" title="{{$lostpass}}" id="lost-password-link" >{{$lostlink}}</a>{{/if}}
-<hr>
+ {{if $register}}<a href="{{$register.link}}" title="{{$register.title}}" class="register-link float-end">{{$register.desc}}</a>{{/if}}
+ {{if $lostlink}}<a href="lostpass" title="{{$lostpass}}" class="lost-pass-link">{{$lostlink}}</a>{{/if}}
+ <hr>
<a href="rmagic" class="btn btn-outline-success">{{$remote_login}}</a>
</div>
{{foreach $hiddens as $k=>$v}}
diff --git a/view/tpl/navbar_default.tpl b/view/tpl/navbar_default.tpl
index 8d6d5dfd7..0dccd4404 100644
--- a/view/tpl/navbar_default.tpl
+++ b/view/tpl/navbar_default.tpl
@@ -1,23 +1,5 @@
<nav class="navbar fixed-top navbar-expand-lg navbar-dark bg-dark">
<div class="container-fluid flex-nowrap">
- {{if $nav.login && !$userinfo}}
- <div class="d-lg-none pt-1 pb-1">
- {{if $nav.loginmenu.1.4}}
- <a class="btn btn-primary btn-sm text-white" href="#" title="{{$nav.loginmenu.1.3}}" id="{{$nav.loginmenu.1.4}}_collapse" data-bs-toggle="modal" data-bs-target="#nav-login">
- {{$nav.loginmenu.1.1}}
- </a>
- {{else}}
- <a class="btn btn-primary btn-sm text-white" href="login" title="{{$nav.loginmenu.1.3}}">
- {{$nav.loginmenu.1.1}}
- </a>
- {{/if}}
- {{if $nav.register}}
- <a class="btn btn-warning btn-sm text-dark" href="{{$nav.register.0}}" title="{{$nav.register.3}}" id="{{$nav.register.4}}" >
- {{$nav.register.1}}
- </a>
- {{/if}}
- </div>
- {{/if}}
{{if $userinfo}}
<div class="d-flex" style="max-width: 50%">
<div class="dropdown">
@@ -83,8 +65,9 @@
{{/if}}
{{/if}}
</div>
+ {{else}}
+ <div id="banner" class="navbar-text d-lg-none">{{$banner}}</div>
{{/if}}
-
<div class="navbar-toggler-right">
{{if $nav.help.6}}
<button id="context-help-btn" class="navbar-toggler border-0" type="button" onclick="contextualHelp(); return false;">
@@ -179,6 +162,25 @@
</nav>
<div class="offcanvas offcanvas-end" tabindex="-1" id="app-bin" aria-labelledby="app-bin-label">
<div class="offcanvas-header">
+ {{if $nav.login && !$userinfo}}
+ <div class="d-lg-none pt-1 pb-1">
+ {{if $nav.loginmenu.1.4}}
+ <a class="btn btn-primary btn-sm text-white" href="#" title="{{$nav.loginmenu.1.3}}" id="{{$nav.loginmenu.1.4}}_collapse" data-bs-toggle="modal" data-bs-target="#nav-login">
+ {{$nav.loginmenu.1.1}}
+ </a>
+ {{else}}
+ <a class="btn btn-primary btn-sm text-white" href="login" title="{{$nav.loginmenu.1.3}}">
+ {{$nav.loginmenu.1.1}}
+ </a>
+ {{/if}}
+ {{if $nav.register}}
+ <a class="btn btn-warning btn-sm text-dark" href="{{$nav.register.0}}" title="{{$nav.register.3}}" id="{{$nav.register.4}}" >
+ {{$nav.register.1}}
+ </a>
+ {{/if}}
+ </div>
+ <div class="d-lg-flex"></div>
+ {{else}}
<div class="lh-1" id="app-bin-label">
{{if $name}}
<img src="{{$thumb}}" class="menu-img-2">
@@ -189,7 +191,10 @@
{{/if}}
</div>
<i id="app-bin-trash" class="fa fa-2x fa-fw fa-trash-o d-none"></i>
+ {{/if}}
+
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
+
</div>
<div class="offcanvas-body pt-0">
{{if $channel_apps.0}}
diff --git a/view/tpl/pdledit_gui.tpl b/view/tpl/pdledit_gui.tpl
new file mode 100644
index 000000000..8c4ca3e50
--- /dev/null
+++ b/view/tpl/pdledit_gui.tpl
@@ -0,0 +1,243 @@
+<div id="pdledit_gui_offcanvas" class="offcanvas offcanvas-lg offcanvas-bottom shadow border rounded-top start-50 translate-middle-x" tabindex="-1" data-bs-backdrop="false" data-bs-scroll="true" style="min-width: 300px">
+ <div id="pdledit_gui_offcanvas_body" class="offcanvas-body"></div>
+ <div class="offcanvas-header">
+ <div class="offcanvas-title h3"></div>
+ <button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
+ </div>
+</div>
+
+<div id="pdledit_gui_offcanvas_edit" class="offcanvas offcanvas-lg offcanvas-bottom shadow border rounded-top start-50 translate-middle-x" tabindex="-1" data-bs-backdrop="false" data-bs-scroll="true" style="min-width: 300px">
+ <div id="pdledit_gui_offcanvas_edit_body" class="offcanvas-body">
+ <textarea id="pdledit_gui_offcanvas_edit_textarea" class="form-control font-monospace h-100"></textarea>
+ </div>
+ <div class="offcanvas-header">
+ <button id="pdledit_gui_offcanvas_edit_submit" type="button" class="btn btn-primary">Submit</button>
+ <button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
+ </div>
+</div>
+
+<div id="pdledit_gui_offcanvas_submit" class="offcanvas offcanvas-lg offcanvas-bottom shadow border rounded-top start-50 translate-middle-x" tabindex="-1" data-bs-backdrop="false" data-bs-scroll="true" style="min-width: 300px">
+ <div id="pdledit_gui_offcanvas_submit_body" class="offcanvas-body"></div>
+ <div class="offcanvas-header">
+ <button id="pdledit_gui_offcanvas_submit_submit" type="button" class="btn btn-primary">Submit</button>
+ <button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
+ </div>
+</div>
+
+<ul class="nav position-fixed bottom-0 start-50 bg-light translate-middle-x text-uppercase" style="min-width: 300px">
+ <li class="nav-item">
+ <a id="pdledit_gui_modules" class="nav-link" href="#">Modules</a>
+ </li>
+ <li class="nav-item">
+ <a id="pdledit_gui_templates" class="nav-link" href="#">Templates</a>
+ </li>
+ <li class="nav-item">
+ <a id="pdledit_gui_items" class="nav-link" href="#">Items</a>
+ </li>
+ <li class="nav-item">
+ <a id="pdledit_gui_src" class="nav-link" href="#">Source</a>
+ </li>
+ {{if $module_modified}}
+ <li class="nav-item">
+ <a id="pdledit_gui_reset" class="nav-link" href="#">Reset</a>
+ </li>
+ {{/if}}
+ <li class="nav-item">
+ <a id="pdledit_gui_save" class="nav-link" href="#">Apply</a>
+ </li>
+</ul>
+
+<script>
+ $(document).ready(function() {
+ let poi;
+ let regions = [];
+ let content_regions = [];
+ let page_src = atob('{{$page_src}}');
+
+ let offcanvas = new bootstrap.Offcanvas(document.getElementById('pdledit_gui_offcanvas'));
+ let edit_offcanvas = new bootstrap.Offcanvas(document.getElementById('pdledit_gui_offcanvas_edit'));
+ let submit_offcanvas = new bootstrap.Offcanvas(document.getElementById('pdledit_gui_offcanvas_submit'));
+
+ {{foreach $content_regions as $content_region}}
+ regions.push('{{$content_region.0}}');
+ content_regions.push('{{$content_region.1}}');
+
+ let sortable_{{$content_region.1}} = document.getElementById('{{$content_region.1}}');
+ new Sortable(sortable_{{$content_region.1}}, {
+ group: 'shared',
+ handle: '.pdledit_gui_item_handle',
+ animation: 150
+ });
+ {{/foreach}}
+
+ let sortable_items = document.getElementById('pdledit_gui_offcanvas_body');
+ new Sortable(sortable_items, {
+ group: {
+ name: 'shared',
+ pull: 'clone',
+ put: false
+ },
+ sort: false,
+ handle: '.pdledit_gui_item_handle',
+ animation: 150,
+ onEnd: function (e) {
+ $(e.item).find('button').removeClass('disabled');
+ }
+ });
+
+ $(document).on('click', '.pdledit_gui_item_src', function(e) {
+ poi = this.closest('.pdledit_gui_item');
+ let src = atob(poi.dataset.src);
+ $('#pdledit_gui_offcanvas_edit_textarea').val(src);
+ $('#pdledit_gui_offcanvas_edit_textarea').bbco_autocomplete('comanche');
+ edit_offcanvas.show();
+ });
+
+ $(document).on('click', '.pdledit_gui_item_remove', function(e) {
+ poi = this.closest('.pdledit_gui_item');
+ $(poi).remove();
+ });
+
+ $(document).on('click', '#pdledit_gui_offcanvas_edit_submit', function(e) {
+ let src = $('#pdledit_gui_offcanvas_edit_textarea').val();
+
+ if (poi) {
+ poi.dataset.src = btoa(src);
+ }
+ else {
+ $.post(
+ 'pdledit_gui',
+ {
+ 'save_src': 1,
+ 'module': '{{$module}}',
+ 'src': $('#pdledit_gui_offcanvas_edit_textarea').val()
+ }
+ )
+ .done(function(data) {
+ if (data.success) {
+ window.location.href = 'pdledit_gui/' + data.module;
+ }
+ });
+ }
+
+ edit_offcanvas.hide();
+ });
+
+ $(document).on('click', '#pdledit_gui_offcanvas_submit_submit', function(e) {
+ if ($('#pdledit_gui_templates_form').length) {
+ $.post(
+ 'pdledit_gui',
+ {
+ 'save_template': 1,
+ 'module': '{{$module}}',
+ 'data': $('#pdledit_gui_templates_form').serializeArray()
+ }
+ )
+ .done(function(data) {
+ if (data.success) {
+ window.location.href = 'pdledit_gui/' + data.module;
+ }
+ });
+ }
+
+ submit_offcanvas.hide();
+ });
+
+ $(document).on('click', '#pdledit_gui_src', function(e) {
+ e.preventDefault();
+ poi = null; // this is important!
+
+ let obj = {};
+
+ content_regions.forEach(function (content_region, i) {
+ let data_src = [];
+ $('#' + content_region + ' > .card').each(function () {
+ data_src.push(atob(this.dataset.src));
+ });
+ obj[regions[i]] = data_src;
+ });
+
+ for (let [region, entries] of Object.entries(obj)) {
+ let region_pdl = '';
+
+ entries.forEach(function (entry) {
+ region_pdl = region_pdl.concat(entry + "\r\n");
+ });
+
+ let regex_str = '\\[region=' + region + '\\](.*?)\\[\\/region\\]';
+ let replace_str = '[region=' + region + ']' + "\r\n" + region_pdl + "\r\n" + '[/region]'
+ let regex = new RegExp(regex_str, 'ism');
+
+ page_src = page_src.replace(regex, replace_str);
+ }
+
+ $('#pdledit_gui_offcanvas_edit_textarea').val(page_src);
+ $('#pdledit_gui_offcanvas_edit_textarea').bbco_autocomplete('comanche');
+ edit_offcanvas.show();
+ });
+
+ $(document).on('click', '#pdledit_gui_items', function(e) {
+ e.preventDefault();
+ $('#pdledit_gui_offcanvas_body').html(atob('{{$items}}'));
+ offcanvas.show();
+ });
+
+ $(document).on('click', '#pdledit_gui_templates', function(e) {
+ e.preventDefault();
+ $('#pdledit_gui_offcanvas_submit_body').html(atob('{{$templates}}'));
+
+ submit_offcanvas.show();
+ });
+
+ $(document).on('click', '#pdledit_gui_modules', function(e) {
+ e.preventDefault();
+ $('#pdledit_gui_offcanvas_body').html(atob('{{$modules}}'));
+ offcanvas.show();
+ });
+
+ $(document).on('click', '#pdledit_gui_save', function(e) {
+ e.preventDefault();
+
+ let obj = {};
+
+ content_regions.forEach(function (content_region, i) {
+ let data_src = [];
+ $('#' + content_region + ' > .card').each(function () {
+ data_src.push(this.dataset.src);
+ });
+ obj[regions[i]] = data_src;
+ });
+
+ $.post(
+ 'pdledit_gui',
+ {
+ 'save': 1,
+ 'module': '{{$module}}',
+ 'data': JSON.stringify(obj)
+ }
+ )
+ .done(function(data) {
+ if (data.success) {
+ window.location.href = 'pdledit_gui/' + data.module;
+ }
+ });
+ });
+
+ $(document).on('click', '#pdledit_gui_reset', function(e) {
+ e.preventDefault();
+ $.post(
+ 'pdledit_gui',
+ {
+ 'reset': 1,
+ 'module': '{{$module}}'
+ }
+ )
+ .done(function(data) {
+ if (data.success) {
+ window.location.href = 'pdledit_gui/' + data.module;
+ }
+ });
+ });
+
+ });
+</script>
diff --git a/view/tpl/pdledit_gui_item.tpl b/view/tpl/pdledit_gui_item.tpl
new file mode 100644
index 000000000..9d0095ed4
--- /dev/null
+++ b/view/tpl/pdledit_gui_item.tpl
@@ -0,0 +1,18 @@
+<div class="pdledit_gui_item card mb-3" data-src="{{$entry.src}}">
+ <div class="card-header d-flex justify-content-between">
+ <span class="text-uppercase">{{$entry.name}}</span>
+ <div class="badge rounded-pill{{if $entry.type === 'widget'}} bg-info text-dark{{/if}}{{if $entry.type === 'content'}} bg-primary{{/if}}{{if $entry.type === 'menu'}} bg-secondary{{/if}}{{if $entry.type === 'block'}} bg-warning text-dark{{/if}}">
+ {{$entry.type}}
+ </div>
+ </div>
+ <div class="card-body">
+ {{if $entry.desc}}
+ <div class="mb-3 text-muted">{{$entry.desc}}</div>
+ {{/if}}
+ {{if $entry.type !== 'content'}}
+ <button type="button" class="btn btn-sm btn-outline-primary pdledit_gui_item_src{{if $disable_controls}} disabled{{/if}}">Edit</button>
+ <button type="button" class="btn btn-sm btn-outline-danger pdledit_gui_item_remove{{if $disable_controls}} disabled{{/if}}">Remove</button>
+ <i class="fa fa-fw fa-arrows-alt m-2 float-end cursor-pointer pdledit_gui_item_handle"></i>
+ {{/if}}
+ </div>
+</div>
diff --git a/view/tpl/pdledit_gui_templates.tpl b/view/tpl/pdledit_gui_templates.tpl
new file mode 100644
index 000000000..0f3d8a7b6
--- /dev/null
+++ b/view/tpl/pdledit_gui_templates.tpl
@@ -0,0 +1,11 @@
+<form id="pdledit_gui_templates_form">
+ {{foreach $templates as $template}}
+ <div class="form-check mb-2">
+ <input class="form-check-input" type="radio" name="template" id="id_template_{{$template.name}}" value="{{$template.name}}" {{if $template.name == $active}} checked{{/if}}>
+ <label class="form-check-label" for="id_template_{{$template.name}}">
+ {{$template.name}}
+ </label>
+ <small class="text-muted">{{$template.desc}}</small>
+ </div>
+ {{/foreach}}
+</form>
diff --git a/view/tpl/photo_album_portfolio.tpl b/view/tpl/photo_album_portfolio.tpl
index 1635e0ae1..e939ac3e1 100644
--- a/view/tpl/photo_album_portfolio.tpl
+++ b/view/tpl/photo_album_portfolio.tpl
@@ -1,7 +1,7 @@
{{if isset($mode) && $mode == 'orbit'}}
<div class="row">
<div class="orbit small-12 medium-9 large-9 columns" id="photo-album-contents-{{$album_id}}" role="region" aria-label="portfolioOrbit-{{$album_id}}" data-orbit data-options="animInFromLeft:fade-in; animInFromRight:fade-in; animOutToLeft:fade-out; animOutToRight:fade-out;">
-
+
<ul class="orbit-container">
<button class="orbit-previous"><span class="show-for-sr">Previous Slide</span>&#9664;&#xFE0E;</button>
<button class="orbit-next"><span class="show-for-sr">Next Slide</span>&#9654;&#xFE0E;</button>
diff --git a/view/tpl/settings.tpl b/view/tpl/settings.tpl
index 9b23d7d82..2c617834a 100644
--- a/view/tpl/settings.tpl
+++ b/view/tpl/settings.tpl
@@ -26,6 +26,10 @@
{{include file="field_input.tpl" field=$photo_path}}
{{include file="field_input.tpl" field=$attach_path}}
{{include file="field_input.tpl" field=$expire}}
+
+ {{include file="field_textarea.tpl" field=$message_filter_excl}}
+ {{include file="field_textarea.tpl" field=$message_filter_incl}}
+
{{if $basic_addon}}
{{$basic_addon}}
{{/if}}
diff --git a/view/tpl/suggest_widget.tpl b/view/tpl/suggest_widget.tpl
index 7b9afa668..d4a5a56f9 100644
--- a/view/tpl/suggest_widget.tpl
+++ b/view/tpl/suggest_widget.tpl
@@ -6,5 +6,5 @@
{{/foreach}}
{{/if}}
<div class="clear"></div>
-<div class="suggest-widget-more"><a href="suggest">{{$more}}</a></div>
+<div class="suggest-widget-more"><a href="directory?f=&suggest=1">{{$more}}</a></div>
</div>