mirror of
https://github.com/inventree/inventree-app.git
synced 2025-04-28 05:26:47 +00:00
server / username / password now saved to local preferences
This commit is contained in:
parent
2ec662fdef
commit
ee7ab5308e
@ -59,6 +59,11 @@ class InvenTreeAPI {
|
||||
address = address.trim();
|
||||
username = username.trim();
|
||||
|
||||
if (address.isEmpty || username.isEmpty || password.isEmpty) {
|
||||
print("Server error: Empty details supplied");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Ensure we are pointing to the correct endpoint
|
||||
if (!address.endsWith("api/") || !address.endsWith("api")) {
|
||||
address = path.join(address, "api");
|
||||
|
@ -1,6 +1,8 @@
|
||||
import 'package:InvenTree/widget/category_display.dart';
|
||||
import 'package:InvenTree/widget/location_display.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
// import 'package:preferences/preferences.dart';
|
||||
|
||||
import 'settings.dart';
|
||||
@ -13,11 +15,10 @@ void main() async {
|
||||
|
||||
// await PrefService.init(prefix: "inventree_");
|
||||
|
||||
String username = "username";
|
||||
String password = "password";
|
||||
String server = "http://127.0.0.1:8000";
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
|
||||
InvenTreeAPI().connect(server, username, password);
|
||||
// Load login details
|
||||
InvenTreeUserPreferences().loadLoginDetails();
|
||||
|
||||
runApp(MyApp());
|
||||
}
|
||||
@ -95,46 +96,16 @@ class MyHomePage extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _MyHomePageState extends State<MyHomePage> {
|
||||
// List of parts
|
||||
List<InvenTreePart> _parts = List<InvenTreePart>();
|
||||
|
||||
String _filter = '';
|
||||
|
||||
List<InvenTreePart> get parts {
|
||||
|
||||
if (_filter.isNotEmpty) {
|
||||
|
||||
List<InvenTreePart> filtered = List<InvenTreePart>();
|
||||
for (var part in _parts) {
|
||||
|
||||
var name = part.name.toLowerCase() + ' ' + part.description.toLowerCase();
|
||||
|
||||
bool match = true;
|
||||
|
||||
for (var txt in _filter.split(' ')) {
|
||||
if (!name.contains(txt)) {
|
||||
match = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (match) {
|
||||
filtered.add(part);
|
||||
}
|
||||
}
|
||||
|
||||
return filtered;
|
||||
} else {
|
||||
|
||||
// No filtering
|
||||
return _parts;
|
||||
}
|
||||
}
|
||||
|
||||
_MyHomePageState() : super();
|
||||
|
||||
void _login() {
|
||||
//Navigator.push(context, MaterialPageRoute(builder: (context) => InvenTreeSettingsWidget()));
|
||||
Navigator.push(context, MaterialPageRoute(builder: (context) => InvenTreeSettingsWidget()));
|
||||
}
|
||||
|
||||
void _goHome() {
|
||||
// Reset the stack, go to "home"
|
||||
Navigator.pushNamed(context, "/");
|
||||
}
|
||||
|
||||
void _showParts() {
|
||||
@ -175,6 +146,7 @@ class _MyHomePageState extends State<MyHomePage> {
|
||||
fit: BoxFit.scaleDown,
|
||||
),
|
||||
title: new Text("InvenTree"),
|
||||
onTap: _goHome,
|
||||
),
|
||||
new Divider(),
|
||||
new ListTile(
|
||||
@ -217,20 +189,9 @@ class _MyHomePageState extends State<MyHomePage> {
|
||||
// horizontal).
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
TextField(
|
||||
decoration: InputDecoration(
|
||||
hintText: 'Filter Results',
|
||||
),
|
||||
onChanged: (text) {
|
||||
setState(() {
|
||||
_filter = text.trim().toLowerCase();
|
||||
});
|
||||
},
|
||||
),
|
||||
Text(
|
||||
'hello world',
|
||||
'InvenTree',
|
||||
),
|
||||
Expanded(child: ProductList(parts)),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
@ -19,16 +19,24 @@ class InvenTreeUserPreferences {
|
||||
|
||||
// Load saved login details, and attempt connection
|
||||
void loadLoginDetails() async {
|
||||
|
||||
print("Loading login details");
|
||||
|
||||
SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||
|
||||
var server = prefs.getString(_SERVER);
|
||||
var username = prefs.getString(_USERNAME);
|
||||
var password = prefs.getString(_PASSWORD);
|
||||
print("Done!");
|
||||
|
||||
var server = prefs.getString(_SERVER) ?? '';
|
||||
var username = prefs.getString(_USERNAME) ?? '';
|
||||
var password = prefs.getString(_PASSWORD) ?? '';
|
||||
|
||||
print("Connecting to server");
|
||||
|
||||
await InvenTreeAPI().connect(server, username, password);
|
||||
}
|
||||
|
||||
void saveLoginDetails(String server, String username, String password) async {
|
||||
|
||||
SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||
|
||||
await prefs.setString(_SERVER, server);
|
||||
|
Loading…
x
Reference in New Issue
Block a user