From e8e6a0906702dc7b569ef4f0b2d9486d772ba562 Mon Sep 17 00:00:00 2001 From: Minteck Date: Sun, 31 Oct 2021 11:49:13 +0100 Subject: Initial commit --- .gitignore | 5 + .idea/.gitignore | 8 + .idea/Familine.iml | 9 ++ .idea/deployment.xml | 33 ++++ .idea/dictionaries/Minteck.xml | 3 + .idea/inspectionProfiles/Project_Default.xml | 8 + .idea/jsLibraryMappings.xml | 6 + .idea/modules.xml | 8 + .idea/php.xml | 4 + .idea/sshConfigs.xml | 8 + .idea/webServers.xml | 14 ++ app/session.php | 34 ++++ dark.css | 92 +++++++++++ favicon.svg | 69 ++++++++ icns/badge-filled.png | Bin 0 -> 3511 bytes icns/badge-symbolic.png | Bin 0 -> 3984 bytes icns/badge.png | Bin 0 -> 14049 bytes icns/bucks.png | Bin 0 -> 13123 bytes icns/cinema-filled.png | Bin 0 -> 3315 bytes icns/cinema-symbolic.png | Bin 0 -> 4990 bytes icns/cinema.png | Bin 0 -> 13823 bytes icns/cloud-link.png | Bin 0 -> 33246 bytes icns/contacts-filled.png | Bin 0 -> 3105 bytes icns/contacts-symbolic.png | Bin 0 -> 4038 bytes icns/contacts.png | Bin 0 -> 10925 bytes icns/famidata.png | Bin 0 -> 375 bytes icns/familine-camera.svg | 16 ++ icns/familine-console.svg | 21 +++ icns/familine-docs.svg | 13 ++ icns/familine-help.svg | 13 ++ icns/familine-money.svg | 15 ++ icns/familine-movies.svg | 13 ++ icns/familine-photos.svg | 34 ++++ icns/familine-planning.svg | 14 ++ icns/familine-review.svg | 13 ++ icns/familine-share.svg | 13 ++ icns/familine-you.svg | 17 ++ icns/familine.svg | 69 ++++++++ icns/help-filled.png | Bin 0 -> 5251 bytes icns/help-symbolic.png | Bin 0 -> 6677 bytes icns/help.png | Bin 0 -> 12722 bytes icns/home-filled.png | Bin 0 -> 2557 bytes icns/home-symbolic.png | Bin 0 -> 2886 bytes icns/home.png | Bin 0 -> 9893 bytes icns/money-filled.png | Bin 0 -> 4441 bytes icns/money-symbolic.png | Bin 0 -> 4977 bytes icns/money.png | Bin 0 -> 9655 bytes icns/music.png | Bin 0 -> 3450 bytes icns/open-book-filled.png | Bin 0 -> 2493 bytes icns/open-book-symbolic.png | Bin 0 -> 2735 bytes icns/open-book.png | Bin 0 -> 2079 bytes icns/opus.svg | 18 +++ icns/pause-filled.png | Bin 0 -> 288 bytes icns/pause-symbolic.png | Bin 0 -> 299 bytes icns/pip.png | Bin 0 -> 974 bytes icns/play-filled.png | Bin 0 -> 435 bytes icns/play-symbolic.png | Bin 0 -> 580 bytes icns/radio-filled.png | Bin 0 -> 4329 bytes icns/radio-symbolic.png | Bin 0 -> 4514 bytes icns/radio.png | Bin 0 -> 8243 bytes icns/settings-filled.png | Bin 0 -> 5192 bytes icns/settings-symbolic.png | Bin 0 -> 7419 bytes icns/settings.png | Bin 0 -> 12301 bytes icns/share-filled.png | Bin 0 -> 3457 bytes icns/share-symbolic.png | Bin 0 -> 4941 bytes icns/share.png | Bin 0 -> 11049 bytes icns/solve-filled.png | Bin 0 -> 5225 bytes icns/solve-symbolic.png | Bin 0 -> 6088 bytes icns/solve.png | Bin 0 -> 16776 bytes icns/speaker.png | Bin 0 -> 722 bytes icns/window-close.png | Bin 0 -> 220 bytes icns/window-maximize.png | Bin 0 -> 223 bytes icns/window-minimize.png | Bin 0 -> 263 bytes icns/window-reduce.png | Bin 0 -> 468 bytes index.php | 98 +++++++++++ js/home.js | 12 ++ js/iframe.js | 48 ++++++ js/loading.js | 32 ++++ js/navigation.js | 110 +++++++++++++ js/statusbar.js | 4 + loader.svg | 52 ++++++ login/embed/index.php | 6 + login/index.php | 6 + native.css | 68 ++++++++ oauth/embed/index.php | 45 ++++++ oauth/index.php | 45 ++++++ private/.htaccess | 1 + private/session.php | 30 ++++ radio.css | 52 ++++++ radio.embed.css | 3 + robots.txt | 3 + sample.html | 11 ++ statusbar.php | 134 +++++++++++++++ styles.css | 233 +++++++++++++++++++++++++++ version.txt | 1 + welcome/index.php | 4 + 96 files changed, 1568 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/Familine.iml create mode 100644 .idea/deployment.xml create mode 100644 .idea/dictionaries/Minteck.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/jsLibraryMappings.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/php.xml create mode 100644 .idea/sshConfigs.xml create mode 100644 .idea/webServers.xml create mode 100644 app/session.php create mode 100644 dark.css create mode 100644 favicon.svg create mode 100644 icns/badge-filled.png create mode 100644 icns/badge-symbolic.png create mode 100644 icns/badge.png create mode 100644 icns/bucks.png create mode 100644 icns/cinema-filled.png create mode 100644 icns/cinema-symbolic.png create mode 100644 icns/cinema.png create mode 100644 icns/cloud-link.png create mode 100644 icns/contacts-filled.png create mode 100644 icns/contacts-symbolic.png create mode 100644 icns/contacts.png create mode 100644 icns/famidata.png create mode 100644 icns/familine-camera.svg create mode 100644 icns/familine-console.svg create mode 100644 icns/familine-docs.svg create mode 100644 icns/familine-help.svg create mode 100644 icns/familine-money.svg create mode 100644 icns/familine-movies.svg create mode 100644 icns/familine-photos.svg create mode 100644 icns/familine-planning.svg create mode 100644 icns/familine-review.svg create mode 100644 icns/familine-share.svg create mode 100644 icns/familine-you.svg create mode 100644 icns/familine.svg create mode 100644 icns/help-filled.png create mode 100644 icns/help-symbolic.png create mode 100644 icns/help.png create mode 100644 icns/home-filled.png create mode 100644 icns/home-symbolic.png create mode 100644 icns/home.png create mode 100644 icns/money-filled.png create mode 100644 icns/money-symbolic.png create mode 100644 icns/money.png create mode 100644 icns/music.png create mode 100644 icns/open-book-filled.png create mode 100644 icns/open-book-symbolic.png create mode 100644 icns/open-book.png create mode 100644 icns/opus.svg create mode 100644 icns/pause-filled.png create mode 100644 icns/pause-symbolic.png create mode 100644 icns/pip.png create mode 100644 icns/play-filled.png create mode 100644 icns/play-symbolic.png create mode 100644 icns/radio-filled.png create mode 100644 icns/radio-symbolic.png create mode 100644 icns/radio.png create mode 100644 icns/settings-filled.png create mode 100644 icns/settings-symbolic.png create mode 100644 icns/settings.png create mode 100644 icns/share-filled.png create mode 100644 icns/share-symbolic.png create mode 100644 icns/share.png create mode 100644 icns/solve-filled.png create mode 100644 icns/solve-symbolic.png create mode 100644 icns/solve.png create mode 100644 icns/speaker.png create mode 100644 icns/window-close.png create mode 100644 icns/window-maximize.png create mode 100644 icns/window-minimize.png create mode 100644 icns/window-reduce.png create mode 100644 index.php create mode 100644 js/home.js create mode 100644 js/iframe.js create mode 100644 js/loading.js create mode 100644 js/navigation.js create mode 100644 js/statusbar.js create mode 100644 loader.svg create mode 100644 login/embed/index.php create mode 100644 login/index.php create mode 100644 native.css create mode 100644 oauth/embed/index.php create mode 100644 oauth/index.php create mode 100644 private/.htaccess create mode 100644 private/session.php create mode 100644 radio.css create mode 100644 radio.embed.css create mode 100644 robots.txt create mode 100644 sample.html create mode 100644 statusbar.php create mode 100644 styles.css create mode 100644 version.txt create mode 100644 welcome/index.php diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0698a7f --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +private/app.json +app/console +app/help +app/money +private/FamilineConfig.json \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..73a9019 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/../../../../:\Projets\Familine\.idea/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/Familine.iml b/.idea/Familine.iml new file mode 100644 index 0000000..efaccc6 --- /dev/null +++ b/.idea/Familine.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/deployment.xml b/.idea/deployment.xml new file mode 100644 index 0000000..6d5cc82 --- /dev/null +++ b/.idea/deployment.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/dictionaries/Minteck.xml b/.idea/dictionaries/Minteck.xml new file mode 100644 index 0000000..61a53e6 --- /dev/null +++ b/.idea/dictionaries/Minteck.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..8e370fa --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml new file mode 100644 index 0000000..61a4bd9 --- /dev/null +++ b/.idea/jsLibraryMappings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..e03b09a --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/php.xml b/.idea/php.xml new file mode 100644 index 0000000..7341688 --- /dev/null +++ b/.idea/php.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/sshConfigs.xml b/.idea/sshConfigs.xml new file mode 100644 index 0000000..f4cd94d --- /dev/null +++ b/.idea/sshConfigs.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/webServers.xml b/.idea/webServers.xml new file mode 100644 index 0000000..c2a0bab --- /dev/null +++ b/.idea/webServers.xml @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/app/session.php b/app/session.php new file mode 100644 index 0000000..9f38ca4 --- /dev/null +++ b/app/session.php @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/icns/badge-filled.png b/icns/badge-filled.png new file mode 100644 index 0000000..6b29fc8 Binary files /dev/null and b/icns/badge-filled.png differ diff --git a/icns/badge-symbolic.png b/icns/badge-symbolic.png new file mode 100644 index 0000000..93d28cf Binary files /dev/null and b/icns/badge-symbolic.png differ diff --git a/icns/badge.png b/icns/badge.png new file mode 100644 index 0000000..339b169 Binary files /dev/null and b/icns/badge.png differ diff --git a/icns/bucks.png b/icns/bucks.png new file mode 100644 index 0000000..eb81f63 Binary files /dev/null and b/icns/bucks.png differ diff --git a/icns/cinema-filled.png b/icns/cinema-filled.png new file mode 100644 index 0000000..41b13f9 Binary files /dev/null and b/icns/cinema-filled.png differ diff --git a/icns/cinema-symbolic.png b/icns/cinema-symbolic.png new file mode 100644 index 0000000..d594e70 Binary files /dev/null and b/icns/cinema-symbolic.png differ diff --git a/icns/cinema.png b/icns/cinema.png new file mode 100644 index 0000000..4ba70ec Binary files /dev/null and b/icns/cinema.png differ diff --git a/icns/cloud-link.png b/icns/cloud-link.png new file mode 100644 index 0000000..7ab6584 Binary files /dev/null and b/icns/cloud-link.png differ diff --git a/icns/contacts-filled.png b/icns/contacts-filled.png new file mode 100644 index 0000000..0129625 Binary files /dev/null and b/icns/contacts-filled.png differ diff --git a/icns/contacts-symbolic.png b/icns/contacts-symbolic.png new file mode 100644 index 0000000..aa88c7f Binary files /dev/null and b/icns/contacts-symbolic.png differ diff --git a/icns/contacts.png b/icns/contacts.png new file mode 100644 index 0000000..ab2c527 Binary files /dev/null and b/icns/contacts.png differ diff --git a/icns/famidata.png b/icns/famidata.png new file mode 100644 index 0000000..4709e1d Binary files /dev/null and b/icns/famidata.png differ diff --git a/icns/familine-camera.svg b/icns/familine-camera.svg new file mode 100644 index 0000000..c736d0c --- /dev/null +++ b/icns/familine-camera.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + diff --git a/icns/familine-console.svg b/icns/familine-console.svg new file mode 100644 index 0000000..a07610a --- /dev/null +++ b/icns/familine-console.svg @@ -0,0 +1,21 @@ + + + + + + + diff --git a/icns/familine-docs.svg b/icns/familine-docs.svg new file mode 100644 index 0000000..a351c85 --- /dev/null +++ b/icns/familine-docs.svg @@ -0,0 +1,13 @@ + + + + + + + diff --git a/icns/familine-help.svg b/icns/familine-help.svg new file mode 100644 index 0000000..64873a9 --- /dev/null +++ b/icns/familine-help.svg @@ -0,0 +1,13 @@ + + + + + + + diff --git a/icns/familine-money.svg b/icns/familine-money.svg new file mode 100644 index 0000000..f0c8227 --- /dev/null +++ b/icns/familine-money.svg @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/icns/familine-movies.svg b/icns/familine-movies.svg new file mode 100644 index 0000000..25db0e5 --- /dev/null +++ b/icns/familine-movies.svg @@ -0,0 +1,13 @@ + + + + + + + diff --git a/icns/familine-photos.svg b/icns/familine-photos.svg new file mode 100644 index 0000000..ff9dd77 --- /dev/null +++ b/icns/familine-photos.svg @@ -0,0 +1,34 @@ + + + + + + + diff --git a/icns/familine-planning.svg b/icns/familine-planning.svg new file mode 100644 index 0000000..a0f6833 --- /dev/null +++ b/icns/familine-planning.svg @@ -0,0 +1,14 @@ + + + + + + + diff --git a/icns/familine-review.svg b/icns/familine-review.svg new file mode 100644 index 0000000..fa60445 --- /dev/null +++ b/icns/familine-review.svg @@ -0,0 +1,13 @@ + + + + + + + diff --git a/icns/familine-share.svg b/icns/familine-share.svg new file mode 100644 index 0000000..08995e5 --- /dev/null +++ b/icns/familine-share.svg @@ -0,0 +1,13 @@ + + + + + + + diff --git a/icns/familine-you.svg b/icns/familine-you.svg new file mode 100644 index 0000000..6c3a35d --- /dev/null +++ b/icns/familine-you.svg @@ -0,0 +1,17 @@ + + + + + + + diff --git a/icns/familine.svg b/icns/familine.svg new file mode 100644 index 0000000..05c2b04 --- /dev/null +++ b/icns/familine.svg @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/icns/help-filled.png b/icns/help-filled.png new file mode 100644 index 0000000..68c9bde Binary files /dev/null and b/icns/help-filled.png differ diff --git a/icns/help-symbolic.png b/icns/help-symbolic.png new file mode 100644 index 0000000..d34d296 Binary files /dev/null and b/icns/help-symbolic.png differ diff --git a/icns/help.png b/icns/help.png new file mode 100644 index 0000000..48351c8 Binary files /dev/null and b/icns/help.png differ diff --git a/icns/home-filled.png b/icns/home-filled.png new file mode 100644 index 0000000..1b60d9c Binary files /dev/null and b/icns/home-filled.png differ diff --git a/icns/home-symbolic.png b/icns/home-symbolic.png new file mode 100644 index 0000000..245c1ed Binary files /dev/null and b/icns/home-symbolic.png differ diff --git a/icns/home.png b/icns/home.png new file mode 100644 index 0000000..2ea5ba9 Binary files /dev/null and b/icns/home.png differ diff --git a/icns/money-filled.png b/icns/money-filled.png new file mode 100644 index 0000000..88ffac6 Binary files /dev/null and b/icns/money-filled.png differ diff --git a/icns/money-symbolic.png b/icns/money-symbolic.png new file mode 100644 index 0000000..0cdf491 Binary files /dev/null and b/icns/money-symbolic.png differ diff --git a/icns/money.png b/icns/money.png new file mode 100644 index 0000000..f54c90f Binary files /dev/null and b/icns/money.png differ diff --git a/icns/music.png b/icns/music.png new file mode 100644 index 0000000..c75888a Binary files /dev/null and b/icns/music.png differ diff --git a/icns/open-book-filled.png b/icns/open-book-filled.png new file mode 100644 index 0000000..767c991 Binary files /dev/null and b/icns/open-book-filled.png differ diff --git a/icns/open-book-symbolic.png b/icns/open-book-symbolic.png new file mode 100644 index 0000000..7513aa9 Binary files /dev/null and b/icns/open-book-symbolic.png differ diff --git a/icns/open-book.png b/icns/open-book.png new file mode 100644 index 0000000..5310c50 Binary files /dev/null and b/icns/open-book.png differ diff --git a/icns/opus.svg b/icns/opus.svg new file mode 100644 index 0000000..9e18abe --- /dev/null +++ b/icns/opus.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/icns/pause-filled.png b/icns/pause-filled.png new file mode 100644 index 0000000..01c3a52 Binary files /dev/null and b/icns/pause-filled.png differ diff --git a/icns/pause-symbolic.png b/icns/pause-symbolic.png new file mode 100644 index 0000000..99b9d7e Binary files /dev/null and b/icns/pause-symbolic.png differ diff --git a/icns/pip.png b/icns/pip.png new file mode 100644 index 0000000..3f9a6bf Binary files /dev/null and b/icns/pip.png differ diff --git a/icns/play-filled.png b/icns/play-filled.png new file mode 100644 index 0000000..823cf38 Binary files /dev/null and b/icns/play-filled.png differ diff --git a/icns/play-symbolic.png b/icns/play-symbolic.png new file mode 100644 index 0000000..289f629 Binary files /dev/null and b/icns/play-symbolic.png differ diff --git a/icns/radio-filled.png b/icns/radio-filled.png new file mode 100644 index 0000000..b952384 Binary files /dev/null and b/icns/radio-filled.png differ diff --git a/icns/radio-symbolic.png b/icns/radio-symbolic.png new file mode 100644 index 0000000..5003c35 Binary files /dev/null and b/icns/radio-symbolic.png differ diff --git a/icns/radio.png b/icns/radio.png new file mode 100644 index 0000000..6891474 Binary files /dev/null and b/icns/radio.png differ diff --git a/icns/settings-filled.png b/icns/settings-filled.png new file mode 100644 index 0000000..f9aeffe Binary files /dev/null and b/icns/settings-filled.png differ diff --git a/icns/settings-symbolic.png b/icns/settings-symbolic.png new file mode 100644 index 0000000..fe7a7e7 Binary files /dev/null and b/icns/settings-symbolic.png differ diff --git a/icns/settings.png b/icns/settings.png new file mode 100644 index 0000000..da4dd81 Binary files /dev/null and b/icns/settings.png differ diff --git a/icns/share-filled.png b/icns/share-filled.png new file mode 100644 index 0000000..956d7d6 Binary files /dev/null and b/icns/share-filled.png differ diff --git a/icns/share-symbolic.png b/icns/share-symbolic.png new file mode 100644 index 0000000..dd273e4 Binary files /dev/null and b/icns/share-symbolic.png differ diff --git a/icns/share.png b/icns/share.png new file mode 100644 index 0000000..66b2f45 Binary files /dev/null and b/icns/share.png differ diff --git a/icns/solve-filled.png b/icns/solve-filled.png new file mode 100644 index 0000000..e5fcbbb Binary files /dev/null and b/icns/solve-filled.png differ diff --git a/icns/solve-symbolic.png b/icns/solve-symbolic.png new file mode 100644 index 0000000..eb94636 Binary files /dev/null and b/icns/solve-symbolic.png differ diff --git a/icns/solve.png b/icns/solve.png new file mode 100644 index 0000000..e55fd0a Binary files /dev/null and b/icns/solve.png differ diff --git a/icns/speaker.png b/icns/speaker.png new file mode 100644 index 0000000..0d297ea Binary files /dev/null and b/icns/speaker.png differ diff --git a/icns/window-close.png b/icns/window-close.png new file mode 100644 index 0000000..648e661 Binary files /dev/null and b/icns/window-close.png differ diff --git a/icns/window-maximize.png b/icns/window-maximize.png new file mode 100644 index 0000000..da48657 Binary files /dev/null and b/icns/window-maximize.png differ diff --git a/icns/window-minimize.png b/icns/window-minimize.png new file mode 100644 index 0000000..8a4716e Binary files /dev/null and b/icns/window-minimize.png differ diff --git a/icns/window-reduce.png b/icns/window-reduce.png new file mode 100644 index 0000000..8093d6e Binary files /dev/null and b/icns/window-reduce.png differ diff --git a/index.php b/index.php new file mode 100644 index 0000000..009d90b --- /dev/null +++ b/index.php @@ -0,0 +1,98 @@ + + + + + + + + Familine + + + ' : "" ?> + $ = require(\'jquery\');jQuery = require(\'jquery\');' : '' ?> + + + + + +
+ +
+ +
+
+ +

Familine

+ +
+
+ + "); + } + } + + ?> + + + + + + \ No newline at end of file diff --git a/js/home.js b/js/home.js new file mode 100644 index 0000000..7751ae9 --- /dev/null +++ b/js/home.js @@ -0,0 +1,12 @@ +setInterval(() => { + window.fetch("/app/radio/song.php").then((raw) => { + raw.text().then((text) => { + document.getElementById('radio-now').innerText = text; + }) + }) + window.fetch("/app/radio/next.php").then((raw) => { + raw.text().then((text) => { + document.getElementById('radio-next').innerText = text; + }) + }) +}, 2000) \ No newline at end of file diff --git a/js/iframe.js b/js/iframe.js new file mode 100644 index 0000000..415f095 --- /dev/null +++ b/js/iframe.js @@ -0,0 +1,48 @@ +function iframeURLChange(iframe, callback) { + var unloadHandler = function () { + setTimeout(function () { + callback(iframe.contentWindow.location.href); + }, 0); + }; + + function attachUnload() { + iframe.contentWindow.removeEventListener("pagehide", unloadHandler); + iframe.contentWindow.addEventListener("pagehide", unloadHandler); + iframe.contentWindow.removeEventListener("unload", unloadHandler); + iframe.contentWindow.addEventListener("unload", unloadHandler); + } + + iframe.addEventListener("load", attachUnload); + attachUnload(); +} + +Array.from(document.getElementsByTagName("iframe")).forEach((par) => { + iframeURLChange(par, function (newURL) { + $(".loader").fadeIn(200); + }); +}) + +function unload() { + $(".loader").fadeIn(200); +} + +Array.from(document.getElementsByTagName("iframe")).forEach((par) => { + par.onbeforeunload = unload +}) + +function loaded () { + $(".loader").fadeOut(200); + + setTimeout(() => { + $(".loader").fadeOut(200); + }, 300) + + setTimeout(() => { + $(".loader").fadeOut(200); + }, 1500); +} + +Array.from(document.getElementsByTagName("iframe")).forEach((par) => { + par.onload = loaded; + par.onabort = loaded; +}) \ No newline at end of file diff --git a/js/loading.js b/js/loading.js new file mode 100644 index 0000000..dc021a5 --- /dev/null +++ b/js/loading.js @@ -0,0 +1,32 @@ +document.onreadystatechange = function(e) { + if (document.readyState == "interactive") { + var all = document.getElementsByTagName("*"); + for (var i = 0, max = all.length; i < max; i++) { + set_ele(all[i]); + } + } +} + +function check_element(ele) { + var all = document.getElementsByTagName("*"); + var totalele = all.length; + var per_inc = 100 / all.length; + + if ($(ele).on()) { + var prog_width = per_inc + Number(document.getElementById("progress_width").value); + document.getElementById("progress_width").value = prog_width; + $("#bar1").animate({ + width: prog_width + "%" + }, 10, function() { + if (document.getElementById("bar1").style.width === "100%") { + $(".progress").fadeOut("slow"); + } + }); + } else { + set_ele(ele); + } +} + +function set_ele(set_element) { + check_element(set_element); +} \ No newline at end of file diff --git a/js/navigation.js b/js/navigation.js new file mode 100644 index 0000000..a76b19e --- /dev/null +++ b/js/navigation.js @@ -0,0 +1,110 @@ +window.addEventListener('load', () => { + document.getElementById('loading').style.display = "none"; +}) + +function setImageSource(image, source) { + if (image.src !== source) { + image.src = source; + } +} + +doCheckForActiveItem = true; + +Array.from(document.getElementsByClassName("tab")).forEach((par) => { + item = par.children[0]; + if (typeof item.getAttribute("data-image-hover") === "string") { + item.setAttribute("data-image-normal", item.src) + par.addEventListener('mouseenter', (e) => { + doCheckForActiveItem = false; + + if (e.target.classList.contains("tab-active")) { + item = e.target.children[0]; + item.style.opacity = ".75"; + } else { + item = e.target.children[0]; + setImageSource(item, item.getAttribute("data-image-hover")); + } + }) + par.addEventListener('mouseleave', (e) => { + doCheckForActiveItem = true; + + if (e.target.classList.contains("tab-active")) { + item = e.target.children[0]; + item.style.opacity = "1"; + } else { + item = e.target.children[0]; + setImageSource(item, item.getAttribute("data-image-normal")); + } + }) + } +}) + +setInterval(() => { + Array.from(document.getElementsByClassName("tab")).forEach((par) => { + if (!doCheckForActiveItem) { return; } + item = par.children[0]; + if (par.classList.contains("tab-active")) { + setImageSource(item, item.getAttribute("data-image-active")); + } else { + setImageSource(item, item.getAttribute("data-image-normal")); + } + }) +}, 100) + +function openTab(tab) { + Array.from(document.getElementsByClassName("tab")).forEach((par) => { + if (par.classList.contains("tab-active")) { + par.classList.remove("tab-active"); + } + }) + document.getElementById('tab-' + tab).classList.add("tab-active"); + doCheckForActiveItem = true; +} + +function openPane(pane) { + Array.from(document.getElementsByTagName("iframe")).forEach((par) => { + par.src = "about:blank"; + }) + Array.from(document.getElementsByClassName("pane")).forEach((par) => { + $("#" + par.id).fadeOut(200); + }) + $("#pane-" + pane).fadeIn(200); + $(".loader").fadeIn(200); + switch (pane) { + case "radio": + document.getElementById('frame-' + pane).src = "/app/radio" + break; + case "money": + document.getElementById('frame-' + pane).src = "/app/money" + break; + case "contacts": + document.getElementById('frame-' + pane).src = "/app/contacts" + break; + case "home": + document.getElementById('frame-' + pane).src = "/app/home" + break; + case "space": + if (navigator.userAgent.includes("+Familine/")) { + $(".loader").fadeOut(200); + document.getElementById('frame-' + pane).loadURL("https://chat.familine.minteck.org"); + document.getElementById('frame-' + pane).setZoomFactor(0.9); + break; + } else { + document.getElementById('frame-' + pane).src = "/app/space" + break; + } + case "cinema": + document.getElementById('frame-' + pane).src = "https://cinema.familine.minteck.org" + break; + case "share": + document.getElementById('frame-' + pane).src = "https://share.familine.minteck.org" + break; + case "help": + document.getElementById('frame-' + pane).src = "/app/help" + break; + } +} + +window.addEventListener('load', () => { + try { openPane('home'); } catch (e) {} +}) \ No newline at end of file diff --git a/js/statusbar.js b/js/statusbar.js new file mode 100644 index 0000000..42ee461 --- /dev/null +++ b/js/statusbar.js @@ -0,0 +1,4 @@ +window.addEventListener("load", () => { + window.fetch("/statusbar.php").then((a) => {a.text().then((b) => {document.body.innerHTML=document.body.innerHTML+b})}); + $(".progress").fadeOut("slow"); +}) \ No newline at end of file diff --git a/loader.svg b/loader.svg new file mode 100644 index 0000000..087213f --- /dev/null +++ b/loader.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/login/embed/index.php b/login/embed/index.php new file mode 100644 index 0000000..9fc6274 --- /dev/null +++ b/login/embed/index.php @@ -0,0 +1,6 @@ + + + + + + Title + + + + + \ No newline at end of file diff --git a/statusbar.php b/statusbar.php new file mode 100644 index 0000000..ffb4ae9 --- /dev/null +++ b/statusbar.php @@ -0,0 +1,134 @@ + + + + + + frame + + + + + + + + +
+ + | + > + + + + + + + + + + + + | + + + version · © 2020- Familine +
+ + \ No newline at end of file diff --git a/styles.css b/styles.css new file mode 100644 index 0000000..efd78c4 --- /dev/null +++ b/styles.css @@ -0,0 +1,233 @@ +/* Dark Theme */ +@import "dark.css"; + +/* Globals */ +* { + font-family: sans-serif; +} + +html, body { + margin: 0; + padding: 0; +} + +#copyright { + float: right; + vertical-align: middle; + display: inline-block; + position: fixed; + top: 8px; + opacity: .5; + right: 32px; +} + +/* Loader */ +#loading { + position: fixed; + top: 0; + right: 0; + left: 0; + bottom: 0; + z-index: 999999; + background: #222; + color: white; + display: flex; + align-items: center; + justify-content: center; + text-align: center; + +} + +.progress { + position: fixed; + left: 35%; + top: 65%; + height: 5px; + z-index: 99999999; + background-color: rgba(255, 255, 255, .25); + right: 35%; + border-radius: 1000px; +} + +.bar { + background-color: rgba(255, 255, 255, .25); + width: 0%; + height: 5px; + border-radius: 1000px; +} + +.percent { + position: absolute; + display: inline-block; + top: 3px; + left: 48%; +} + +/* Tabs */ +#tabs { + background: whitesmoke; + display: grid; + grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr; + width: 100vw; +} + +#tabs img { + width: 36px; + vertical-align: middle; + filter: invert(0); + transition: width 200ms, filter 200ms; +} + +#tabs .tab { + border-bottom: 1px solid; + border-bottom-color: transparent; + text-align: center; + margin: 8px 8px 0; + padding-bottom: 8px; + cursor: pointer; + height: 48px; + display: flex; + align-items: center; + justify-content: center; + transition: border-bottom-color 200ms; +} + +#tabs .tab.tab-active img { + width: 48px; +} + +#tabs .tab.tab-active { + border-bottom-color: black; +} + +#panes, .pane { + position: fixed; + top: 98px; + left: 0; + right: 0; + bottom: 0; +} + +.pane { + display: none; +} + +/* IFrame */ +.loader { + background: rgba(255, 255, 255, .75); + top: 98px; + bottom: 0; + position: fixed; + left: 0; + right: 0; + display: flex; + align-items: center; + justify-content: center; + z-index: 999999; + cursor: wait; +} + +.loader img { + height: 96px; + width: 96px; +} + +.frame { + border: none; + width: 100%; + height: 100%; +} + +/* Home */ +.home-grid { + display: grid; + grid-template-columns: 96px 1fr; + grid-column-gap: 10px; +} + +.home-grid > * { + display: flex; + align-items: center; +} + +/* Bootstrap Fixes */ +.dropdown-item { + cursor: pointer; +} + +.list-group { + margin-bottom: 10px !important; +} + +/* Responsiveness */ +@media (max-width: 550px) { + #copyright { + display: none; + } +} + +#explore { + display: flex; + align-items: center; + justify-content: center; + text-align: center; + position: fixed; + inset: 0; +} + +#explore-grid { + display: grid; + grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr; +} + +#explore-grid.admin { + grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr; +} + +@media (max-width: 800px) { + #explore-grid { + display: grid; + grid-template-columns: 1fr 1fr; + } + + #explore-grid.admin { + grid-template-columns: 1fr 1fr 1fr; + } +} + +.explore-btn { + color: white; + border-radius: 5px; + padding: 10px; + text-decoration: none; +} + +.explore-btn:hover { + background: rgba(255, 255, 255, .25); + box-shadow: 1px 5px 12px rgba(255, 255, 255, .25); +} + +.explore-btn:active, .explore-btn:focus { + background: rgba(255, 255, 255, .5); + box-shadow: 1px 5px 12px rgba(255, 255, 255, .5); +} + +@media (prefers-color-scheme: light) { + .explore-btn { + color: black; + } + + .explore-btn:hover { + background: rgba(0, 0, 0, 0.25); + box-shadow: 1px 5px 12px rgba(0, 0, 0, 0.25); + } + + .explore-btn:active, .explore-btn:focus { + background: rgba(0, 0, 0, .5); + box-shadow: 1px 5px 12px rgba(0, 0, 0, .5); + } + + #data-loader-img { + filter: none !important; + } +} \ No newline at end of file diff --git a/version.txt b/version.txt new file mode 100644 index 0000000..a22fed3 --- /dev/null +++ b/version.txt @@ -0,0 +1 @@ +4.3.1 (Accès anticipé) \ No newline at end of file diff --git a/welcome/index.php b/welcome/index.php new file mode 100644 index 0000000..aecdc34 --- /dev/null +++ b/welcome/index.php @@ -0,0 +1,4 @@ +