2019-01-19 23:03:50 +01:00
/ *
Fannyapp - Application to view the cover plan of the Fanny - Leicht - Gymnasium ins Stuttgart Vaihingen , Germany
Copyright ( C ) 2019 Itsblue Development < development @ itsblue . de >
This program is free software: you can redistribute it and / or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation , either version 3 of the License , or
( at your option ) any later version .
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU Affero General Public License for more details .
You should have received a copy of the GNU Affero General Public License
along with this program . If not , see < https: //www.gnu.org/licenses/>.
* /
2018-06-21 08:47:09 +02:00
import QtQuick 2.9
import QtQuick . Controls 2.2
2019-10-24 19:43:33 +02:00
import QtQuick . Controls . Material 2.1
2018-06-21 08:47:09 +02:00
2018-12-30 20:58:52 +01:00
import Backend 1.0
import "./Components"
import "./Forms"
import "./Pages"
2018-06-21 08:47:09 +02:00
ApplicationWindow {
id: window
visible: true
2018-06-21 16:41:02 +02:00
width: 540
height: 960
2018-12-30 20:58:52 +01:00
Item {
id: app
2018-06-21 16:41:02 +02:00
2018-12-30 20:58:52 +01:00
anchors.fill: parent
property bool is_error
property string error
property string textColor: "black" // "#424753"
property string backgroundColor: "white"
property string toolbarColor: "#312f38"
2019-03-10 12:54:35 +01:00
property QtObject style: style
2019-01-19 22:44:48 +01:00
state: serverConn . state
2018-12-30 20:58:52 +01:00
states: [
State {
name: "notLoggedIn"
PropertyChanges {
target: mainStack
currPage: loginPage
2018-06-25 00:15:18 +02:00
}
2018-12-30 20:58:52 +01:00
} ,
2018-06-25 00:15:18 +02:00
2018-12-30 20:58:52 +01:00
State {
name: "loggedIn"
PropertyChanges {
target: mainStack
currPage: mainPage
2018-06-21 16:41:02 +02:00
}
}
2018-12-30 20:58:52 +01:00
]
ServerConn {
id: serverConn
onStateChanged: {
app . state = newState
2018-06-21 16:41:02 +02:00
}
}
2019-03-10 12:54:35 +01:00
AppStyle {
id: style
}
Material.theme: app . style . style . nameMaterialStyle === "Dark" ? Material.Dark: Material . Light
2018-12-30 20:58:52 +01:00
StackView {
id: mainStack
2018-06-21 08:47:09 +02:00
2018-12-30 20:58:52 +01:00
property var currPage
2018-06-21 16:41:02 +02:00
2018-12-30 20:58:52 +01:00
anchors.fill: parent
onCurrPageChanged: {
mainStack . replace ( currPage )
}
//initialItem: mainPage
Component {
id: loginPage
LoginPage { }
}
Component {
id: mainPage
MainPage { }
2018-06-21 16:41:02 +02:00
}
}
2018-12-30 20:58:52 +01:00
2019-01-27 20:47:36 +01:00
FontLoader {
id: fontAwesome
name: "fontawesome"
source: "qrc:/fonts/fontawesome-webfont.ttf"
}
2018-12-30 20:58:52 +01:00
function getErrorInfo ( errorCode ) {
var infoLevel
// 0 - ok
// 1 - info
// 2 - error
var errorString
var errorDescription
switch ( errorCode ) {
case 0 :
infoLevel = 2
errorString = "Keine Verbindung zum Server"
errorDescription = "Bitte überprüfe deine Internetverbindung und versuche es erneut."
break
case 401 :
infoLevel = 2
errorString = "Ungültige Zugangsdaten"
errorDescription = "Der Server hat den Zugang verweigert, bitte überprüfe deine Zugangsdaten und versuche es erneut"
break
case 500 :
infoLevel = 2
errorString = "Interner Server Fehler"
errorDescription = "Scheinbar kann der Server die Anfrage im Moment nicht verarbeiten, bitte versuche es später erneut."
break
case 900 :
infoLevel = 2
errorString = "Interner Verarbeitungsfehler"
errorDescription = "Die Daten, die vom Server übertragen wurden, konnten nicht richtig verarbeitet werden, bitte versuche es später erneut."
break
case 901 :
infoLevel = 1
errorString = "Keine Daten"
errorDescription = "Es liegen keine aktuellen Daten vor."
break
case 902 :
infoLevel = 1
errorString = "Alte Daten"
errorDescription = "Es konnte keine Verbindung zum Server hergestellt werden, aber es sind noch alte Daten gespeichert."
break
2019-01-19 22:44:48 +01:00
case 903 :
infoLevel = 1
errorString = "Ungültiger Aufruf"
errorDescription = "Die aufgerufene Funktion ist momentan nicht verfügbar, bitte versuche es später erneut."
break
2019-01-27 20:47:36 +01:00
case 904 :
infoLevel = 2
errorString = "Inkompatible API"
errorDescription = "Die Version der API auf dem Server ist zu neu und kann daher nicht verarbeitet werden. Bitte aktualisiere die App auf die aktuellste Version."
break
2018-12-30 20:58:52 +01:00
default:
infoLevel = 2
errorString = "Unerwarteter Fehler (" + errorCode + ")"
errorDescription = "Unbekannter Fehler bei der Verbindung mit dem Server."
}
return ( [ infoLevel , errorString , errorDescription ] )
2018-06-21 16:41:02 +02:00
}
2018-12-30 20:58:52 +01:00
function landscape ( ) {
return ( app . width > app . height )
2018-06-21 16:41:02 +02:00
}
}
2018-06-21 08:47:09 +02:00
}