modify struktur organisasi page so can be edited, add delete siswa, add 'pengeluaran' in dana sosial, added edit siswa dialog
This commit is contained in:
@ -55,30 +55,29 @@ class EditStrukrurOrganisasiDialogView extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
// top right rounded add button
|
||||
// request?.data['tambahan'] == false
|
||||
// ? const SizedBox()
|
||||
// :
|
||||
Positioned(
|
||||
top: 0,
|
||||
right: 0,
|
||||
child: GestureDetector(
|
||||
onTap: () {
|
||||
model.addWidget();
|
||||
// model.check();
|
||||
},
|
||||
child: Container(
|
||||
padding: const EdgeInsets.all(5),
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.green,
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
request?.data['tambahan'] == false
|
||||
? const SizedBox()
|
||||
: Positioned(
|
||||
top: 0,
|
||||
right: 0,
|
||||
child: GestureDetector(
|
||||
onTap: () {
|
||||
model.addWidget();
|
||||
// model.check();
|
||||
},
|
||||
child: Container(
|
||||
padding: const EdgeInsets.all(5),
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.green,
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
),
|
||||
child: const Icon(
|
||||
Icons.add,
|
||||
color: Colors.white,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
child: const Icon(
|
||||
Icons.add,
|
||||
color: Colors.white,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(
|
||||
@ -90,7 +89,7 @@ class EditStrukrurOrganisasiDialogView extends StatelessWidget {
|
||||
text: 'Simpan',
|
||||
onPressed: () {
|
||||
// model.check();
|
||||
model.uploadJabatan();
|
||||
model.uploadJabatan(completer!);
|
||||
},
|
||||
),
|
||||
),
|
||||
@ -108,6 +107,7 @@ class TheWidget extends ViewModelWidget<EditStrukrurOrganisasiDialogViewModel> {
|
||||
final TextEditingController controller;
|
||||
final int index;
|
||||
@override
|
||||
// ignore: overridden_fields
|
||||
final Key key;
|
||||
|
||||
const TheWidget({
|
||||
@ -151,7 +151,7 @@ class TheWidget extends ViewModelWidget<EditStrukrurOrganisasiDialogViewModel> {
|
||||
],
|
||||
),
|
||||
// top right rounded add button
|
||||
index == 0
|
||||
index == 1
|
||||
? const SizedBox()
|
||||
: Positioned(
|
||||
top: 0,
|
||||
|
||||
@ -4,6 +4,7 @@ import 'package:dio/dio.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:http_parser/http_parser.dart';
|
||||
import 'package:image_picker/image_picker.dart';
|
||||
import 'package:stacked_services/stacked_services.dart';
|
||||
|
||||
import '../../../../../app/app.locator.dart';
|
||||
import '../../../../../app/app.logger.dart';
|
||||
@ -89,7 +90,35 @@ class EditStrukrurOrganisasiDialogViewModel extends CustomBaseViewModel {
|
||||
}
|
||||
}
|
||||
|
||||
uploadJabatan() async {
|
||||
uploadJabatan(Function(DialogResponse p1) completer) async {
|
||||
// check if the controller is empty
|
||||
for (var i = 1; i <= controllers.length; i++) {
|
||||
String key = controllers.keys.elementAt(i - 1);
|
||||
if (controllers[key]!.text.isEmpty) {
|
||||
snackbarService.showSnackbar(
|
||||
message: 'Nama tidak boleh kosong',
|
||||
title: 'Error',
|
||||
duration: const Duration(seconds: 2),
|
||||
);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// check if the image is empty
|
||||
for (var i = 1; i <= controllers.length; i++) {
|
||||
// String key = controllers.keys.elementAt(i - 1);
|
||||
if (!imagePaths.containsKey('image$i')) {
|
||||
snackbarService.showSnackbar(
|
||||
message: 'Gambar tidak boleh kosong',
|
||||
title: 'Error',
|
||||
duration: const Duration(seconds: 2),
|
||||
);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
setBusy(true);
|
||||
easyloading.customLoading('Edit Detail Jabatan $name');
|
||||
Map<String, dynamic> array = {
|
||||
'jabatan': name,
|
||||
'jumlah': controllers.length.toString(),
|
||||
@ -108,20 +137,25 @@ class EditStrukrurOrganisasiDialogViewModel extends CustomBaseViewModel {
|
||||
contentType: MediaType.parse('image/jpeg'),
|
||||
);
|
||||
}
|
||||
|
||||
FormData formData = FormData.fromMap(array);
|
||||
// log.i(array);
|
||||
try {
|
||||
// // // log.i(formData.fields);
|
||||
await _httpService.postWithFormData('edit_jabatan', formData);
|
||||
|
||||
// // // log.i(formData.fields);
|
||||
var response =
|
||||
await _httpService.postWithFormData('edit_jabatan', formData);
|
||||
|
||||
log.i(response.data);
|
||||
|
||||
setBusy(true);
|
||||
easyloading.customLoading('Edit Detail Jabatan $name');
|
||||
await Future.delayed(const Duration(seconds: 1));
|
||||
easyloading.dismissLoading();
|
||||
setBusy(false);
|
||||
// log.i(response.data);
|
||||
completer(
|
||||
DialogResponse(confirmed: true),
|
||||
);
|
||||
} catch (e) {
|
||||
log.e(e);
|
||||
completer(
|
||||
DialogResponse(confirmed: false),
|
||||
);
|
||||
} finally {
|
||||
easyloading.dismissLoading();
|
||||
setBusy(false);
|
||||
}
|
||||
}
|
||||
|
||||
void removeWidget(int index, Key containerKey) {
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_dotenv/flutter_dotenv.dart';
|
||||
import 'package:stacked/stacked.dart';
|
||||
|
||||
import './struktur_organisasi_view_model.dart';
|
||||
@ -34,237 +35,130 @@ class StrukturOrganisasiView extends StatelessWidget {
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
const KetuaWidget(),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
const SekretarisWidget(),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
const BendaharaWidget(),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
const Text(
|
||||
"Seksi Pengasuh",
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 2,
|
||||
),
|
||||
Text(
|
||||
'${model.seksiPengasuh1}\n${model.seksiPengasuh2}\n${model.seksiPengasuh3}\n${model.seksiPengasuh4}',
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
),
|
||||
FirstWidget(
|
||||
title: "Ketua",
|
||||
data: model.dataKetua,
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
const Text(
|
||||
"Seksi Ibadah",
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 2,
|
||||
),
|
||||
Text(
|
||||
'${model.seksiIbadah1}\n${model.seksiIbadah2}\n${model.seksiIbadah3}\n${model.seksiIbadah4}',
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
),
|
||||
FirstWidget(
|
||||
title: 'Sekretaris',
|
||||
data: model.dataSekretaris,
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
const Text(
|
||||
"Seksi Pendidikan",
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 2,
|
||||
),
|
||||
Text(
|
||||
'${model.seksiPendidikan1}\n${model.seksiPendidikan2}',
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
),
|
||||
FirstWidget(
|
||||
title: 'Bendahara',
|
||||
data: model.dataBendahara,
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
const Text(
|
||||
"Seksi Kesehatan",
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 2,
|
||||
),
|
||||
Text(
|
||||
model.seksiKesehatan,
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
),
|
||||
SecondWidget(
|
||||
title: 'Seksi Pengasuh',
|
||||
data: model.dataPengasuh,
|
||||
length: model.dataPengasuhLength,
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
const Text(
|
||||
"Seksi Kebersihan",
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 2,
|
||||
),
|
||||
Text(
|
||||
model.seksiKebersihan,
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
),
|
||||
SecondWidget(
|
||||
title: 'Seksi Ibadah',
|
||||
data: model.dataIbadah,
|
||||
length: model.dataIbadahLength,
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
const Text(
|
||||
"Seksi Keterampilan",
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
model.seksiKeterampilan1,
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
),
|
||||
SecondWidget(
|
||||
title: 'Seksi Pendidikan',
|
||||
data: model.dataPendidikan,
|
||||
length: model.dataPendidikanLength,
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
const Text(
|
||||
"Seksi Sarana Prasarana",
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
model.seksiSaranaPrasarana1,
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
),
|
||||
SecondWidget(
|
||||
title: 'Seksi Kesehatan',
|
||||
data: model.dataKesehatan,
|
||||
length: model.dataKesehatanLength,
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
const Text(
|
||||
"Seksi Konsumsi",
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'${model.seksiKonsumsi1}\n${model.seksiKonsumsi2}',
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
),
|
||||
SecondWidget(
|
||||
title: 'Seksi Kebersihan',
|
||||
data: model.dataKebersihan,
|
||||
length: model.dataKebersihanLength,
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
const Text(
|
||||
"Seksi Keamanan",
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'${model.seksiKeamanan1}\n${model.seksiKeamanan2}',
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
),
|
||||
SecondWidget(
|
||||
title: 'Seksi Keterampilan',
|
||||
data: model.dataKeterampilan,
|
||||
length: model.dataKeterampilanLength,
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
const Text(
|
||||
"Seksi Gedung",
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'${model.seksiGedung1}\n${model.seksiGedung2}\n${model.seksiGedung3}\n${model.seksiGedung4}',
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
),
|
||||
SecondWidget(
|
||||
title: 'Sarana dan Prasarana',
|
||||
data: model.dataSaranaDanPrasarana,
|
||||
length: model.dataSaranaDanPrasaranaLength,
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
const Text(
|
||||
"Seksi Wisma",
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'${model.seksiWisma1}\n${model.seksiWisma2}\n${model.seksiWisma3}\n${model.seksiWisma4}\n${model.seksiWisma5}',
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
),
|
||||
SecondWidget(
|
||||
title: 'Seksi Konsumsi',
|
||||
data: model.dataKonsumsi,
|
||||
length: model.dataKonsumsiLength,
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
const Text(
|
||||
"Kelompok Putri",
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'${model.kelompokPutri1}\n${model.kelompokPutri2}\n${model.kelompokPutri3}',
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
),
|
||||
SecondWidget(
|
||||
title: 'Seksi Keamanan',
|
||||
data: model.dataKeamanan,
|
||||
length: model.dataKeamananLength,
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
const Text(
|
||||
"Kelompok Putra",
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
SecondWidget(
|
||||
title: 'Seksi Gedung',
|
||||
data: model.dataGedung,
|
||||
length: model.dataGedungLength,
|
||||
),
|
||||
Text(
|
||||
'${model.kelompokPutra1}\n${model.kelompokPutra2}\n${model.kelompokPutra3}',
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
SecondWidget(
|
||||
title: 'Seksi Wisma',
|
||||
data: model.dataWisma,
|
||||
length: model.dataWismaLength,
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
SecondWidget(
|
||||
title: 'Kelompok Putra',
|
||||
data: model.dataKelompokPutra,
|
||||
length: model.dataKelompokPutraLength,
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
SecondWidget(
|
||||
title: 'Kelompok Putri',
|
||||
data: model.dataKelompokPutri,
|
||||
length: model.dataKelompokPutriLength,
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
],
|
||||
),
|
||||
@ -276,9 +170,16 @@ class StrukturOrganisasiView extends StatelessWidget {
|
||||
}
|
||||
}
|
||||
|
||||
class BendaharaWidget extends ViewModelWidget<StrukturOrganisasiViewModel> {
|
||||
const BendaharaWidget({
|
||||
class SecondWidget extends ViewModelWidget<StrukturOrganisasiViewModel> {
|
||||
final String title;
|
||||
final Map<String, dynamic> data;
|
||||
final int length;
|
||||
|
||||
const SecondWidget({
|
||||
super.key,
|
||||
required this.title,
|
||||
required this.data,
|
||||
required this.length,
|
||||
});
|
||||
|
||||
@override
|
||||
@ -292,55 +193,9 @@ class BendaharaWidget extends ViewModelWidget<StrukturOrganisasiViewModel> {
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
const Text(
|
||||
"Bendahara",
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
IconButton(
|
||||
onPressed: () {
|
||||
// model.editSekretaris();
|
||||
},
|
||||
icon: const Icon(Icons.edit),
|
||||
)
|
||||
],
|
||||
),
|
||||
const SizedBox(
|
||||
height: 2,
|
||||
),
|
||||
Text(
|
||||
viewModel.bendahara,
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class SekretarisWidget extends ViewModelWidget<StrukturOrganisasiViewModel> {
|
||||
const SekretarisWidget({
|
||||
super.key,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context, StrukturOrganisasiViewModel viewModel) {
|
||||
return Card(
|
||||
elevation: 4,
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
const Text(
|
||||
"Sekretaris",
|
||||
style: TextStyle(
|
||||
Text(
|
||||
title,
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
@ -350,30 +205,65 @@ class SekretarisWidget extends ViewModelWidget<StrukturOrganisasiViewModel> {
|
||||
),
|
||||
IconButton(
|
||||
onPressed: () {
|
||||
// model.editSekretaris();
|
||||
viewModel.editData(title, true);
|
||||
},
|
||||
icon: const Icon(Icons.edit),
|
||||
)
|
||||
],
|
||||
),
|
||||
const SizedBox(
|
||||
height: 2,
|
||||
),
|
||||
Text(
|
||||
viewModel.sekretaris,
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
for (var i = 0; i < length; i++)
|
||||
Column(
|
||||
children: [
|
||||
Center(
|
||||
child: data.isEmpty
|
||||
? null
|
||||
: ClipRRect(
|
||||
borderRadius: BorderRadius.circular(50),
|
||||
child: Image.network(
|
||||
'${dotenv.env['url']}${data['img_url$i']}',
|
||||
width: 100,
|
||||
height: 100,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 2,
|
||||
),
|
||||
Text(
|
||||
data['nama$i'] ?? '...',
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 5,
|
||||
),
|
||||
// create a line
|
||||
const Divider(
|
||||
color: Colors.black,
|
||||
height: 20,
|
||||
thickness: 1,
|
||||
indent: 20,
|
||||
endIndent: 20,
|
||||
),
|
||||
const SizedBox(height: 5),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class KetuaWidget extends ViewModelWidget<StrukturOrganisasiViewModel> {
|
||||
const KetuaWidget({
|
||||
class FirstWidget extends ViewModelWidget<StrukturOrganisasiViewModel> {
|
||||
final String title;
|
||||
final Map<String, dynamic> data;
|
||||
|
||||
const FirstWidget({
|
||||
super.key,
|
||||
required this.title,
|
||||
required this.data,
|
||||
});
|
||||
|
||||
@override
|
||||
@ -387,9 +277,9 @@ class KetuaWidget extends ViewModelWidget<StrukturOrganisasiViewModel> {
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
const Text(
|
||||
"Ketua",
|
||||
style: TextStyle(
|
||||
Text(
|
||||
title,
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
@ -399,17 +289,30 @@ class KetuaWidget extends ViewModelWidget<StrukturOrganisasiViewModel> {
|
||||
),
|
||||
IconButton(
|
||||
onPressed: () {
|
||||
viewModel.editData('ketua', false);
|
||||
viewModel.editData(title, false);
|
||||
},
|
||||
icon: const Icon(Icons.edit),
|
||||
)
|
||||
],
|
||||
),
|
||||
Center(
|
||||
child: data.isEmpty
|
||||
? null
|
||||
: ClipRRect(
|
||||
borderRadius: BorderRadius.circular(50),
|
||||
child: Image.network(
|
||||
'${dotenv.env['url']}${data['img_url']}',
|
||||
width: 100,
|
||||
height: 100,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 2,
|
||||
),
|
||||
Text(
|
||||
viewModel.ketua,
|
||||
data['nama'] ?? '...',
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
),
|
||||
|
||||
@ -1,61 +1,155 @@
|
||||
import 'package:panti_asuhan/app/core/custom_base_view_model.dart';
|
||||
|
||||
import '../../../../app/app.dialogs.dart';
|
||||
import '../../../../app/app.locator.dart';
|
||||
import '../../../../app/app.logger.dart';
|
||||
import '../../../../app/core/custom_base_view_model.dart';
|
||||
import '../../../../services/http_services.dart';
|
||||
import '../../../../services/my_easyloading.dart';
|
||||
|
||||
class StrukturOrganisasiViewModel extends CustomBaseViewModel {
|
||||
final log = getLogger('StrukturOrganisasiViewModel');
|
||||
final _httpService = locator<MyHttpServices>();
|
||||
final easyLoading = locator<MyEasyLoading>();
|
||||
|
||||
String ketua = "Dr. Andi Fitriani D, S.Ag, M.Pd";
|
||||
String sekretaris = "Fitriana Buyanus, S.Si ., M.Kes";
|
||||
String bendahara = "Hj. Djaliah, A.Ma";
|
||||
Map<String, dynamic> dataKetua = {};
|
||||
Map<String, dynamic> dataSekretaris = {};
|
||||
Map<String, dynamic> dataBendahara = {};
|
||||
|
||||
String seksiPengasuh1 = "Dra Hj, CIA";
|
||||
String seksiPengasuh2 = "Dahang, S.Ag";
|
||||
String seksiPengasuh3 = "Sumadin, S.Pd.I";
|
||||
String seksiPengasuh4 = "Darwan";
|
||||
Map<String, dynamic> dataPengasuh = {};
|
||||
int dataPengasuhLength = 0;
|
||||
|
||||
String seksiIbadah1 = "Drs. Najib La'ady";
|
||||
String seksiIbadah2 = "Sumadin, S.Pd.I";
|
||||
String seksiIbadah3 = "Ahmad";
|
||||
String seksiIbadah4 = "Darwan";
|
||||
Map<String, dynamic> dataIbadah = {};
|
||||
int dataIbadahLength = 0;
|
||||
|
||||
String seksiPendidikan1 = "Dra. Hj. CIA";
|
||||
String seksiPendidikan2 = "Hj. Djaliah, A.Ma";
|
||||
Map<String, dynamic> dataPendidikan = {};
|
||||
int dataPendidikanLength = 0;
|
||||
|
||||
String seksiKesehatan = "Haerul, SKM";
|
||||
String seksiKebersihan = "Bd. Lina Sutomo";
|
||||
Map<String, dynamic> dataKebersihan = {};
|
||||
int dataKebersihanLength = 0;
|
||||
|
||||
String seksiKeterampilan1 = "Yuslihudriani, S.Pd";
|
||||
Map<String, dynamic> dataKesehatan = {};
|
||||
int dataKesehatanLength = 0;
|
||||
|
||||
String seksiSaranaPrasarana1 = "Muh.Adham, ST";
|
||||
Map<String, dynamic> dataKeterampilan = {};
|
||||
int dataKeterampilanLength = 0;
|
||||
|
||||
String seksiKonsumsi1 = "Fatmawati";
|
||||
String seksiKonsumsi2 = "Rasnaya";
|
||||
Map<String, dynamic> dataSaranaDanPrasarana = {};
|
||||
int dataSaranaDanPrasaranaLength = 0;
|
||||
|
||||
String seksiKeamanan1 = "Firdaus";
|
||||
String seksiKeamanan2 = "Ahmad";
|
||||
Map<String, dynamic> dataKonsumsi = {};
|
||||
int dataKonsumsiLength = 0;
|
||||
|
||||
String seksiGedung1 = "Dra. Bangsuari";
|
||||
String seksiGedung2 = "Hidayani";
|
||||
String seksiGedung3 = "Dahang. S,Ag";
|
||||
String seksiGedung4 = "Saharia";
|
||||
Map<String, dynamic> dataKeamanan = {};
|
||||
int dataKeamananLength = 0;
|
||||
|
||||
String seksiWisma1 = "Drs. Muh, Yasmin";
|
||||
String seksiWisma2 = "Hj. Hadilah";
|
||||
String seksiWisma3 = "Muh.Adham, ST";
|
||||
String seksiWisma4 = "Ahmad";
|
||||
String seksiWisma5 = "Dahang, S.Ag";
|
||||
Map<String, dynamic> dataGedung = {};
|
||||
int dataGedungLength = 0;
|
||||
|
||||
String kelompokPutri1 = "St. Khadijah";
|
||||
String kelompokPutri2 = "St. Aisyah";
|
||||
String kelompokPutri3 = "St. Fatimah";
|
||||
Map<String, dynamic> dataWisma = {};
|
||||
int dataWismaLength = 0;
|
||||
|
||||
String kelompokPutra1 = "Ahmad Dahlan";
|
||||
String kelompokPutra2 = "Ar. Fahruddin";
|
||||
String kelompokPutra3 = "Amin Rais";
|
||||
Map<String, dynamic> dataKelompokPutra = {};
|
||||
int dataKelompokPutraLength = 0;
|
||||
|
||||
Future<void> init() async {}
|
||||
Map<String, dynamic> dataKelompokPutri = {};
|
||||
int dataKelompokPutriLength = 0;
|
||||
|
||||
Future<void> init() async {
|
||||
getData('Ketua', false, null);
|
||||
getData('Sekretaris', false, null);
|
||||
getData('Bendahara', false, null);
|
||||
getData('Seksi Pengasuh', true, dataPengasuhLength);
|
||||
getData('Seksi Ibadah', true, dataIbadahLength);
|
||||
getData('Seksi Pendidikan', true, dataPendidikanLength);
|
||||
getData('Seksi Kebersihan', true, dataKebersihanLength);
|
||||
getData('Seksi Kesehatan', true, dataKesehatanLength);
|
||||
getData('Seksi Keterampilan', true, dataKeterampilanLength);
|
||||
getData('Sarana dan Prasarana', true, dataSaranaDanPrasaranaLength);
|
||||
getData('Seksi Konsumsi', true, dataKonsumsiLength);
|
||||
getData('Seksi Keamanan', true, dataKeamananLength);
|
||||
getData('Seksi Gedung', true, dataGedungLength);
|
||||
getData('Seksi Wisma', true, dataWismaLength);
|
||||
getData('Kelompok Putra', true, dataKelompokPutraLength);
|
||||
getData('Kelompok Putri', true, dataKelompokPutriLength);
|
||||
}
|
||||
|
||||
getData(String jabatan, bool stat, int? length) async {
|
||||
easyLoading.customLoading('Loading Data');
|
||||
setBusy(true);
|
||||
|
||||
try {
|
||||
var response = await _httpService.get('jabatan?jabatan=$jabatan');
|
||||
// log.i(response.data);
|
||||
if (response.data['data'].length == 0) return;
|
||||
Map<String, dynamic> data = {};
|
||||
if (!stat) {
|
||||
var datanya = response.data['data'][0];
|
||||
data['nama'] = datanya['nama'];
|
||||
data['img_url'] = datanya['img_url'];
|
||||
// log.i(data);
|
||||
// return;
|
||||
} else {
|
||||
var datanya = response.data['data'];
|
||||
length = datanya.length;
|
||||
for (var i = 0; i < datanya.length; i++) {
|
||||
data['nama$i'] = datanya[i]['nama'];
|
||||
data['img_url$i'] = datanya[i]['img_url'];
|
||||
}
|
||||
}
|
||||
|
||||
if (jabatan == 'Ketua') {
|
||||
dataKetua = data;
|
||||
} else if (jabatan == 'Sekretaris') {
|
||||
dataSekretaris = data;
|
||||
} else if (jabatan == 'Bendahara') {
|
||||
dataBendahara = data;
|
||||
} else if (jabatan == 'Seksi Pengasuh') {
|
||||
dataPengasuh = data;
|
||||
dataPengasuhLength = length!;
|
||||
} else if (jabatan == 'Seksi Ibadah') {
|
||||
dataIbadah = data;
|
||||
dataIbadahLength = length!;
|
||||
} else if (jabatan == 'Seksi Pendidikan') {
|
||||
dataPendidikan = data;
|
||||
dataPendidikanLength = length!;
|
||||
} else if (jabatan == 'Seksi Kebersihan') {
|
||||
dataKebersihan = data;
|
||||
dataKebersihanLength = length!;
|
||||
} else if (jabatan == 'Seksi Kesehatan') {
|
||||
dataKesehatan = data;
|
||||
dataKesehatanLength = length!;
|
||||
} else if (jabatan == 'Seksi Keterampilan') {
|
||||
dataKeterampilan = data;
|
||||
dataKeterampilanLength = length!;
|
||||
} else if (jabatan == 'Sarana dan Prasarana') {
|
||||
dataSaranaDanPrasarana = data;
|
||||
dataSaranaDanPrasaranaLength = length!;
|
||||
} else if (jabatan == 'Seksi Konsumsi') {
|
||||
dataKonsumsi = data;
|
||||
dataKonsumsiLength = length!;
|
||||
} else if (jabatan == 'Seksi Keamanan') {
|
||||
dataKeamanan = data;
|
||||
dataKeamananLength = length!;
|
||||
} else if (jabatan == 'Seksi Gedung') {
|
||||
dataGedung = data;
|
||||
dataGedungLength = length!;
|
||||
} else if (jabatan == 'Seksi Wisma') {
|
||||
dataWisma = data;
|
||||
dataWismaLength = length!;
|
||||
} else if (jabatan == 'Kelompok Putra') {
|
||||
dataKelompokPutra = data;
|
||||
dataKelompokPutraLength = length!;
|
||||
} else if (jabatan == 'Kelompok Putri') {
|
||||
dataKelompokPutri = data;
|
||||
dataKelompokPutriLength = length!;
|
||||
}
|
||||
} catch (e) {
|
||||
log.e(e);
|
||||
} finally {
|
||||
notifyListeners();
|
||||
setBusy(false);
|
||||
easyLoading.dismissLoading();
|
||||
}
|
||||
}
|
||||
|
||||
void editData(String jabatan, bool bool) {
|
||||
var res = dialogService.showCustomDialog(
|
||||
@ -66,6 +160,9 @@ class StrukturOrganisasiViewModel extends CustomBaseViewModel {
|
||||
},
|
||||
);
|
||||
|
||||
res;
|
||||
res.whenComplete(() async => {
|
||||
// await Future.delayed(Duration(seconds: 1)),
|
||||
init(),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user