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();
|
address = address.trim();
|
||||||
username = username.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
|
// Ensure we are pointing to the correct endpoint
|
||||||
if (!address.endsWith("api/") || !address.endsWith("api")) {
|
if (!address.endsWith("api/") || !address.endsWith("api")) {
|
||||||
address = path.join(address, "api");
|
address = path.join(address, "api");
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
import 'package:InvenTree/widget/category_display.dart';
|
import 'package:InvenTree/widget/category_display.dart';
|
||||||
|
import 'package:InvenTree/widget/location_display.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
// import 'package:preferences/preferences.dart';
|
// import 'package:preferences/preferences.dart';
|
||||||
|
|
||||||
import 'settings.dart';
|
import 'settings.dart';
|
||||||
@ -13,11 +15,10 @@ void main() async {
|
|||||||
|
|
||||||
// await PrefService.init(prefix: "inventree_");
|
// await PrefService.init(prefix: "inventree_");
|
||||||
|
|
||||||
String username = "username";
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
String password = "password";
|
|
||||||
String server = "http://127.0.0.1:8000";
|
|
||||||
|
|
||||||
InvenTreeAPI().connect(server, username, password);
|
// Load login details
|
||||||
|
InvenTreeUserPreferences().loadLoginDetails();
|
||||||
|
|
||||||
runApp(MyApp());
|
runApp(MyApp());
|
||||||
}
|
}
|
||||||
@ -95,46 +96,16 @@ class MyHomePage extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _MyHomePageState extends State<MyHomePage> {
|
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();
|
_MyHomePageState() : super();
|
||||||
|
|
||||||
void _login() {
|
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() {
|
void _showParts() {
|
||||||
@ -175,6 +146,7 @@ class _MyHomePageState extends State<MyHomePage> {
|
|||||||
fit: BoxFit.scaleDown,
|
fit: BoxFit.scaleDown,
|
||||||
),
|
),
|
||||||
title: new Text("InvenTree"),
|
title: new Text("InvenTree"),
|
||||||
|
onTap: _goHome,
|
||||||
),
|
),
|
||||||
new Divider(),
|
new Divider(),
|
||||||
new ListTile(
|
new ListTile(
|
||||||
@ -217,20 +189,9 @@ class _MyHomePageState extends State<MyHomePage> {
|
|||||||
// horizontal).
|
// horizontal).
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
TextField(
|
|
||||||
decoration: InputDecoration(
|
|
||||||
hintText: 'Filter Results',
|
|
||||||
),
|
|
||||||
onChanged: (text) {
|
|
||||||
setState(() {
|
|
||||||
_filter = text.trim().toLowerCase();
|
|
||||||
});
|
|
||||||
},
|
|
||||||
),
|
|
||||||
Text(
|
Text(
|
||||||
'hello world',
|
'InvenTree',
|
||||||
),
|
),
|
||||||
Expanded(child: ProductList(parts)),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -19,16 +19,24 @@ class InvenTreeUserPreferences {
|
|||||||
|
|
||||||
// Load saved login details, and attempt connection
|
// Load saved login details, and attempt connection
|
||||||
void loadLoginDetails() async {
|
void loadLoginDetails() async {
|
||||||
|
|
||||||
|
print("Loading login details");
|
||||||
|
|
||||||
SharedPreferences prefs = await SharedPreferences.getInstance();
|
SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||||
|
|
||||||
var server = prefs.getString(_SERVER);
|
print("Done!");
|
||||||
var username = prefs.getString(_USERNAME);
|
|
||||||
var password = prefs.getString(_PASSWORD);
|
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);
|
await InvenTreeAPI().connect(server, username, password);
|
||||||
}
|
}
|
||||||
|
|
||||||
void saveLoginDetails(String server, String username, String password) async {
|
void saveLoginDetails(String server, String username, String password) async {
|
||||||
|
|
||||||
SharedPreferences prefs = await SharedPreferences.getInstance();
|
SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||||
|
|
||||||
await prefs.setString(_SERVER, server);
|
await prefs.setString(_SERVER, server);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user