diff --git a/ui/lib/models/identity.dart b/ui/lib/models/service.dart similarity index 76% rename from ui/lib/models/identity.dart rename to ui/lib/models/service.dart index 2bbac74..4c5fe0b 100644 --- a/ui/lib/models/identity.dart +++ b/ui/lib/models/service.dart @@ -44,20 +44,20 @@ class Endpoint { }; } -class Identity { +class Service { String name; String type; Credential credential; Endpoint endpoint; - Identity({ + Service({ required this.name, required this.type, required this.credential, required this.endpoint, }); - factory Identity.fromMap(Map json) => Identity( + factory Service.fromMap(Map json) => Service( name: json["name"] ?? "", type: json["type"] ?? "", credential: Credential.fromMap(json["credential"] ?? ""), @@ -72,28 +72,28 @@ class Identity { }; } -class Identities { - List identities; +class Services { + List services; - Identities({ - required this.identities, + Services({ + required this.services, }); - factory Identities.fromList(List _identities) { - return Identities( - identities: List.from( + factory Services.fromList(List _identities) { + return Services( + services: List.from( _identities.map( - (identity) => Identity.fromMap(identity as Map), + (service) => Service.fromMap(service as Map), ), ), ); } List> toList() { - return identities.map((identity) => identity.toMap()).toList(); + return services.map((service) => service.toMap()).toList(); } String toString() => json.encode(toList()); - int length() => identities.length; + int length() => services.length; } diff --git a/ui/lib/modules/dashboard/create_task_dialog/index.dart b/ui/lib/modules/dashboard/create_task_dialog/index.dart index 70212cc..be3c321 100644 --- a/ui/lib/modules/dashboard/create_task_dialog/index.dart +++ b/ui/lib/modules/dashboard/create_task_dialog/index.dart @@ -14,7 +14,6 @@ class CreateTaskDialog extends StatelessWidget { final CreateTaskController controller = Get.put(CreateTaskController()); final GlobalKey sourceFormKey = GlobalKey(); final GlobalKey targetFormKey = GlobalKey(); - final GlobalKey createIdentityFormKey = GlobalKey(); final Function getTasks; CreateTaskDialog({required name, required this.getTasks}) { diff --git a/ui/lib/modules/layout/navigators.dart b/ui/lib/modules/layout/navigators.dart index bb826b4..24fe6b1 100644 --- a/ui/lib/modules/layout/navigators.dart +++ b/ui/lib/modules/layout/navigators.dart @@ -46,12 +46,18 @@ class Navigators extends StatelessWidget { ), ), ), - SideLink(title: "Tasks".tr, icon: IconData(0xe600, fontFamily: 'tpIcon'), path: Routes.main), - SideLink(title: "Agents".tr, icon: IconData(0xe608, fontFamily: 'tpIcon'), path: Routes.agents), SideLink( - title: "Identities".tr, + title: "Tasks".tr, + icon: IconData(0xe600, fontFamily: 'tpIcon'), + path: Routes.main), + SideLink( + title: "Agents".tr, + icon: IconData(0xe608, fontFamily: 'tpIcon'), + path: Routes.agents), + SideLink( + title: "Services".tr, icon: IconData(0xe60b, fontFamily: 'tpIcon'), - path: Routes.identities, + path: Routes.services, ), ], ), diff --git a/ui/lib/modules/identity/controller.dart b/ui/lib/modules/service/controller.dart similarity index 65% rename from ui/lib/modules/identity/controller.dart rename to ui/lib/modules/service/controller.dart index 2716eda..673c6de 100644 --- a/ui/lib/modules/identity/controller.dart +++ b/ui/lib/modules/service/controller.dart @@ -1,14 +1,15 @@ import 'package:get/get.dart'; import 'package:graphql_flutter/graphql_flutter.dart'; -import '../../models/identity.dart'; +import '../../models/service.dart'; import '../../common/request.dart'; -class IdentityController extends GetxController { +class ServiceController extends GetxController { RxBool loading = false.obs; - Rx identities = Identities.fromList([]).obs; + Rx identities = Services.fromList([]).obs; - final String query = ''' + final String query = + ''' query { identities(type: Qingstor) { name @@ -33,17 +34,18 @@ class IdentityController extends GetxController { loading(false); if (result.data != null) { - identities(Identities.fromList(result.data["identities"] ?? [])); + identities(Services.fromList(result.data["identities"] ?? [])); } }).catchError((error) { loading(false); }); } - Future deleteIdentity(Identity identity) { - String _query = ''' + Future deleteIdentity(Service service) { + String _query = + ''' mutation { - deleteIdentity(input: { name: "${identity.name}", type: ${identity.type} }) { } + deleteIdentity(input: { name: "${service.name}", type: ${service.type} }) { } } '''; diff --git a/ui/lib/modules/identity/create_identity_dialog/controller.dart b/ui/lib/modules/service/create_service_dialog/controller.dart similarity index 84% rename from ui/lib/modules/identity/create_identity_dialog/controller.dart rename to ui/lib/modules/service/create_service_dialog/controller.dart index a4e96f7..a649d4b 100644 --- a/ui/lib/modules/identity/create_identity_dialog/controller.dart +++ b/ui/lib/modules/service/create_service_dialog/controller.dart @@ -4,7 +4,7 @@ import 'package:graphql_flutter/graphql_flutter.dart'; import '../../../common/request.dart'; -class CreateIdentityController extends GetxController { +class CreateServiceController extends GetxController { RxString type = 'Qingstor'.obs; RxString name = ''.obs; RxString credentialProtocol = 'hamc'.obs; @@ -18,12 +18,12 @@ class CreateIdentityController extends GetxController { void closeDialog() { Get.back(); - Get.delete(); + Get.delete(); } - void onSubmit(getIdentities) { - createIdentity() - .then((value) => getIdentities()) + void onSubmit(getServices) { + createService() + .then((value) => getServices()) .then((value) => closeDialog()); } @@ -62,7 +62,7 @@ class CreateIdentityController extends GetxController { '''; } - Future createIdentity() { + Future createService() { return queryGraphQL(QueryOptions(document: gql(mutation))).then((result) { return result; }); diff --git a/ui/lib/modules/identity/create_identity_dialog/form.dart b/ui/lib/modules/service/create_service_dialog/form.dart similarity index 91% rename from ui/lib/modules/identity/create_identity_dialog/form.dart rename to ui/lib/modules/service/create_service_dialog/form.dart index 15ba3e5..9f72c86 100644 --- a/ui/lib/modules/identity/create_identity_dialog/form.dart +++ b/ui/lib/modules/service/create_service_dialog/form.dart @@ -10,11 +10,11 @@ import '../../../widgets/radio_group/model.dart'; import 'controller.dart'; -class CreateIdentityForm extends GetView { +class CreateServiceForm extends GetView { final GlobalKey formKey; final Function onSubmit; - CreateIdentityForm(this.formKey, this.onSubmit); + CreateServiceForm(this.formKey, this.onSubmit); @override Widget build(BuildContext context) { @@ -25,7 +25,7 @@ class CreateIdentityForm extends GetView { crossAxisAlignment: CrossAxisAlignment.start, children: [ SelectableText( - 'Library Type'.tr, + 'Library type'.tr, style: TextStyle( color: regularFontColor, fontSize: 12, @@ -37,7 +37,7 @@ class CreateIdentityForm extends GetView { Obx( () => Select( validator: ValidationBuilder() - .minLength(1, 'Please Select Library Type') + .minLength(1, 'Please select library type') .build(), options: [ SelectOption( @@ -51,7 +51,7 @@ class CreateIdentityForm extends GetView { ), SizedBox(height: 22), SelectableText( - 'Identity Name'.tr, + 'Service name'.tr, style: TextStyle( color: regularFontColor, fontSize: 12, @@ -72,7 +72,7 @@ class CreateIdentityForm extends GetView { textInputAction: TextInputAction.next, keyboardType: TextInputType.text, validator: ValidationBuilder() - .minLength(1, 'Please Enter Identity Name') + .minLength(1, 'Please enter service name') .build(), onSaved: controller.name, ), @@ -88,7 +88,7 @@ class CreateIdentityForm extends GetView { ), SizedBox(height: 4), SelectableText( - 'Please Select The Protocol And Fill In The Corresponding Value'.tr, + 'Please select the protocol and fill in the corresponding value'.tr, style: TextStyle( color: disableFontColor, fontSize: 10, @@ -111,7 +111,7 @@ class CreateIdentityForm extends GetView { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ SelectableText( - 'Access Key', + 'Access key', style: TextStyle( color: regularFontColor, fontSize: 12, @@ -132,7 +132,7 @@ class CreateIdentityForm extends GetView { textInputAction: TextInputAction.next, keyboardType: TextInputType.text, validator: ValidationBuilder() - .minLength(1, 'Please Enter Access key') + .minLength(1, 'Please enter access key') .build(), onSaved: controller.credentialAccessKey, ), @@ -144,7 +144,7 @@ class CreateIdentityForm extends GetView { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ SelectableText( - 'Secret Key', + 'Secret key', style: TextStyle( color: regularFontColor, fontSize: 12, @@ -165,7 +165,7 @@ class CreateIdentityForm extends GetView { textInputAction: TextInputAction.next, keyboardType: TextInputType.text, validator: ValidationBuilder() - .minLength(1, 'Please Enter Secret key') + .minLength(1, 'Please enter secret key') .build(), onSaved: controller.credentialSecretKey, ), @@ -184,7 +184,7 @@ class CreateIdentityForm extends GetView { ), SizedBox(height: 4), SelectableText( - 'Please Fill In The Format Of :// : '.tr, + 'Please fill in the format of :// : '.tr, style: TextStyle( color: disableFontColor, fontSize: 10, @@ -204,7 +204,7 @@ class CreateIdentityForm extends GetView { SelectOption(label: 'http', value: 'http'), ], validator: ValidationBuilder() - .minLength(1, 'Please Select Protocol') + .minLength(1, 'Please select protocol') .build(), onChange: controller.endpointProtocol, ), @@ -231,7 +231,7 @@ class CreateIdentityForm extends GetView { textInputAction: TextInputAction.next, keyboardType: TextInputType.text, validator: ValidationBuilder() - .minLength(1, 'Please Enter Host') + .minLength(1, 'Please enter host') .build(), onSaved: controller.endpointHost, ), @@ -258,7 +258,7 @@ class CreateIdentityForm extends GetView { textInputAction: TextInputAction.next, keyboardType: TextInputType.text, validator: ValidationBuilder() - .minLength(1, 'Please Enter Port') + .minLength(1, 'Please enter port') .build(), onSaved: controller.endpointPort, ), diff --git a/ui/lib/modules/identity/create_identity_dialog/index.dart b/ui/lib/modules/service/create_service_dialog/index.dart similarity index 81% rename from ui/lib/modules/identity/create_identity_dialog/index.dart rename to ui/lib/modules/service/create_service_dialog/index.dart index 6e92685..345d201 100644 --- a/ui/lib/modules/identity/create_identity_dialog/index.dart +++ b/ui/lib/modules/service/create_service_dialog/index.dart @@ -8,13 +8,12 @@ import '../../../widgets/button/constants.dart'; import 'form.dart'; import 'controller.dart'; -class CreateIdentityDialog extends StatelessWidget { - final CreateIdentityController controller = - Get.put(CreateIdentityController()); +class CreateServiceDialog extends StatelessWidget { + final CreateServiceController controller = Get.put(CreateServiceController()); final GlobalKey formKey = GlobalKey(); final Function getIdentities; - CreateIdentityDialog({required this.getIdentities}); + CreateServiceDialog({required this.getIdentities}); void onSubmit() { final form = formKey.currentState; @@ -30,13 +29,13 @@ class CreateIdentityDialog extends StatelessWidget { @override Widget build(BuildContext context) { return CommonDialog( - title: 'Create Identity'.tr, + title: 'Create service'.tr, width: 400, content: Container( width: 400, child: Padding( padding: EdgeInsets.symmetric(vertical: 24, horizontal: 32), - child: CreateIdentityForm(formKey, onSubmit), + child: CreateServiceForm(formKey, onSubmit), ), ), buttons: [ diff --git a/ui/lib/modules/identity/entry_list.dart b/ui/lib/modules/service/entry_list.dart similarity index 81% rename from ui/lib/modules/identity/entry_list.dart rename to ui/lib/modules/service/entry_list.dart index 19dfcb6..11b123b 100644 --- a/ui/lib/modules/identity/entry_list.dart +++ b/ui/lib/modules/service/entry_list.dart @@ -5,7 +5,7 @@ import 'controller.dart'; import 'toolbar.dart'; import 'panel.dart'; -class EntryList extends GetView { +class EntryList extends GetView { @override Widget build(BuildContext context) { return Expanded( @@ -26,9 +26,9 @@ class EntryList extends GetView { spacing: 24, runSpacing: 24, children: [ - ...controller.identities.value.identities.map( - (identity) => IdentityPanel( - identity: identity, + ...controller.identities.value.services.map( + (service) => ServicePanel( + service: service, ), ), ], diff --git a/ui/lib/modules/identity/index.dart b/ui/lib/modules/service/index.dart similarity index 59% rename from ui/lib/modules/identity/index.dart rename to ui/lib/modules/service/index.dart index e704a85..4317886 100644 --- a/ui/lib/modules/identity/index.dart +++ b/ui/lib/modules/service/index.dart @@ -6,13 +6,13 @@ import '../../widgets/page_description/index.dart'; import '../../widgets/empty_entry_list/index.dart'; import 'entry_list.dart'; -import 'create_identity_dialog/index.dart'; +import 'create_service_dialog/index.dart'; import 'controller.dart'; -class Identity extends GetView { - final IdentityController c = Get.put(IdentityController()); +class Service extends GetView { + final ServiceController c = Get.put(ServiceController()); - Identity() { + Service() { c.getIdentities(); } @@ -23,19 +23,19 @@ class Identity extends GetView { children: [ PageDescription( icon: IconData(0xe60b, fontFamily: 'tpIcon'), - title: 'Identities'.tr, + title: 'Services'.tr, subtitle: - "Support Binding One Or More Cloud Service Accounts / API Key" + "Support binding one or more cloud service accounts / API key" .tr, ), Obx(() => controller.identities.value.length() == 0 ? EmptyEntryList( icon: IconData(0xe60b, fontFamily: 'tpIcon'), - title: 'The Identity List Is Empty'.tr, + title: 'The service list is empty'.tr, subTitle: - 'Please Click The Button Below To Create Identity'.tr, - buttonText: 'Create Identity'.tr, - onClick: () => Get.dialog(CreateIdentityDialog( + 'Please click the button below to create service'.tr, + buttonText: 'Create service'.tr, + onClick: () => Get.dialog(CreateServiceDialog( getIdentities: controller.getIdentities)), ) : EntryList()), diff --git a/ui/lib/modules/identity/panel.dart b/ui/lib/modules/service/panel.dart similarity index 84% rename from ui/lib/modules/identity/panel.dart rename to ui/lib/modules/service/panel.dart index 6f0b6f3..2a35e22 100644 --- a/ui/lib/modules/identity/panel.dart +++ b/ui/lib/modules/service/panel.dart @@ -3,17 +3,17 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import '../../common/colors.dart'; -import '../../models/identity.dart'; +import '../../models/service.dart'; import '../../widgets/more_actions/index.dart'; import '../../widgets/confirm/index.dart'; import '../../widgets/dotted_line/index.dart'; import 'controller.dart'; -class IdentityPanel extends GetView { - final Identity identity; +class ServicePanel extends GetView { + final Service service; - IdentityPanel({required this.identity}); + ServicePanel({required this.service}); @override Widget build(BuildContext context) { @@ -50,12 +50,12 @@ class IdentityPanel extends GetView { MoreActions( onSelected: (String option) { Get.dialog(Confirm( - title: "Are You Sure To Delete This Identity?".tr, + title: "Are you sure to delete this service ?".tr, description: - "After Deleting, It Will Not Affect The Created Tasks, But It Will Not Appear In The Identity List And The Identity Option Of The Created Task." + "After deleting, it will not affect the created tasks, but it will not appear in the service list and the identity option of the created task." .tr, onConfirm: () { - controller.deleteIdentity(identity).then((result) { + controller.deleteIdentity(service).then((result) { Get.back(); }); })); @@ -64,7 +64,7 @@ class IdentityPanel extends GetView { PopupMenuItem( value: "delete", height: 32.0, - child: Text("Delete Identity".tr, + child: Text("Delete service".tr, style: TextStyle( fontSize: 12.0, color: regularFontColor, @@ -82,7 +82,7 @@ class IdentityPanel extends GetView { ), SizedBox(height: 12), SelectableText( - "${identity.type} - ${identity.name}", + "${service.type} - ${service.name}", style: TextStyle( fontSize: 12, fontWeight: FontWeight.w500, @@ -111,7 +111,7 @@ class IdentityPanel extends GetView { ), ), SelectableText( - identity.credential.protocol, + service.credential.protocol, style: TextStyle( fontSize: 12, height: 1.67, @@ -120,7 +120,7 @@ class IdentityPanel extends GetView { ), ), SelectableText( - identity.credential.args[0], + service.credential.args[0], style: TextStyle( fontSize: 12, height: 1.67, @@ -129,7 +129,7 @@ class IdentityPanel extends GetView { ), ), SelectableText( - identity.credential.args[1], + service.credential.args[1], style: TextStyle( fontSize: 12, height: 1.67, @@ -148,7 +148,7 @@ class IdentityPanel extends GetView { ), ), SelectableText( - "${identity.endpoint.protocol}://${identity.endpoint.host}:${identity.endpoint.port}", + "${service.endpoint.protocol}://${service.endpoint.host}:${service.endpoint.port}", style: TextStyle( fontSize: 12, height: 1.67, diff --git a/ui/lib/modules/identity/toolbar.dart b/ui/lib/modules/service/toolbar.dart similarity index 71% rename from ui/lib/modules/identity/toolbar.dart rename to ui/lib/modules/service/toolbar.dart index 3390724..08f2766 100644 --- a/ui/lib/modules/identity/toolbar.dart +++ b/ui/lib/modules/service/toolbar.dart @@ -5,25 +5,25 @@ import '../../common/colors.dart'; import '../../widgets/button/index.dart'; import '../../widgets/button/constants.dart'; -import 'create_identity_dialog/index.dart'; +import 'create_service_dialog/index.dart'; import 'controller.dart'; -class Toolbar extends GetView { +class Toolbar extends GetView { @override Widget build(BuildContext context) { return Row( children: [ Button( icon: Icons.add, - child: Text("Create Identity".tr), + child: Text("Create service".tr), type: ButtonType.primary, onPressed: () => Get.dialog( - CreateIdentityDialog(getIdentities: controller.getIdentities)), + CreateServiceDialog(getIdentities: controller.getIdentities)), ), SizedBox(width: 20), Obx( () => SelectableText( - '${controller.identities.value.length()} Identities', + '${controller.identities.value.length()} services', style: TextStyle( color: regularFontColor, fontSize: 12, diff --git a/ui/lib/routes/index.dart b/ui/lib/routes/index.dart index 17032a2..9c1bb35 100644 --- a/ui/lib/routes/index.dart +++ b/ui/lib/routes/index.dart @@ -2,18 +2,19 @@ import 'package:get/get.dart'; // import '../modules/endpoints/index.dart'; import '../modules/dashboard/index.dart'; -import '../modules/identity/index.dart'; +import '../modules/service/index.dart'; import '../modules/signin/index.dart'; import '../modules/agents/index.dart'; + class Routes { static final String main = "/"; static final String login = "/login"; static final String agents = "/agents"; - static final String identities = "/identities"; + static final String services = "/services"; static final List getPages = [ GetPage(name: main, page: () => Dashboard()), - GetPage(name: identities, page: () => Identity()), + GetPage(name: services, page: () => Service()), GetPage(name: agents, page: () => Agents()), GetPage(name: login, page: () => SignIn()), ];