mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-10 15:17:31 +00:00
Fixed design issues, added tag and location to the save dialog
This commit is contained in:
@ -684,40 +684,45 @@ class RoutineBloc extends Bloc<RoutineEvent, RoutineState> {
|
||||
? '${action.entityId}_automation'
|
||||
: action.actionExecutor == 'delay'
|
||||
? '${action.entityId}_delay'
|
||||
: action.entityId;
|
||||
: const Uuid().v4();
|
||||
|
||||
if (!deviceCards.containsKey(deviceId)) {
|
||||
deviceCards[deviceId] = {
|
||||
'entityId': action.entityId,
|
||||
'deviceId': action.actionExecutor == 'delay' ? 'delay' : action.entityId,
|
||||
'uniqueCustomId': action.type == 'automation' || action.actionExecutor == 'delay'
|
||||
? const Uuid().v4()
|
||||
: action.entityId,
|
||||
'title': action.actionExecutor == 'delay'
|
||||
? 'Delay'
|
||||
: action.type == 'automation'
|
||||
? action.name ?? 'Automation'
|
||||
: (matchingDevice?.name ?? 'Device'),
|
||||
'productType': action.productType,
|
||||
'functions': matchingDevice?.functions,
|
||||
'imagePath': action.type == 'automation'
|
||||
? Assets.automation
|
||||
: action.actionExecutor == 'delay'
|
||||
? Assets.delay
|
||||
: matchingDevice?.getDefaultIcon(action.productType),
|
||||
'device': matchingDevice,
|
||||
'name': action.name,
|
||||
'type': action.type,
|
||||
};
|
||||
}
|
||||
// if (!deviceCards.containsKey(deviceId)) {
|
||||
deviceCards[deviceId] = {
|
||||
'entityId': action.entityId,
|
||||
'deviceId': action.actionExecutor == 'delay' ? 'delay' : action.entityId,
|
||||
'uniqueCustomId': action.type == 'automation' || action.actionExecutor == 'delay'
|
||||
? action.entityId
|
||||
: const Uuid().v4(),
|
||||
'title': action.actionExecutor == 'delay'
|
||||
? 'Delay'
|
||||
: action.type == 'automation'
|
||||
? action.name ?? 'Automation'
|
||||
: (matchingDevice?.name ?? 'Device'),
|
||||
'productType': action.productType,
|
||||
'functions': matchingDevice?.functions,
|
||||
'imagePath': action.type == 'automation'
|
||||
? Assets.automation
|
||||
: action.actionExecutor == 'delay'
|
||||
? Assets.delay
|
||||
: matchingDevice?.getDefaultIcon(action.productType),
|
||||
'device': matchingDevice,
|
||||
'name': action.name,
|
||||
'type': action.type,
|
||||
'tag': matchingDevice?.deviceTags?.isNotEmpty ?? false
|
||||
? matchingDevice?.deviceTags![0].name ?? ''
|
||||
: '',
|
||||
'subSpace': matchingDevice?.deviceSubSpace?.subspaceName ?? '',
|
||||
};
|
||||
// }
|
||||
|
||||
final cardData = deviceCards[deviceId]!;
|
||||
final uniqueCustomId = cardData['uniqueCustomId'].toString();
|
||||
|
||||
if (!updatedFunctions.containsKey(uniqueCustomId)) {
|
||||
updatedFunctions[uniqueCustomId] = [];
|
||||
}
|
||||
|
||||
if (action.type == 'automation') {
|
||||
if (!updatedFunctions.containsKey(uniqueCustomId)) {
|
||||
updatedFunctions[uniqueCustomId] = [];
|
||||
}
|
||||
updatedFunctions[uniqueCustomId]!.add(
|
||||
DeviceFunctionData(
|
||||
entityId: action.entityId,
|
||||
@ -728,14 +733,11 @@ class RoutineBloc extends Bloc<RoutineEvent, RoutineState> {
|
||||
);
|
||||
// emit(state.copyWith(automationActionExecutor: action.actionExecutor));
|
||||
} else if (action.executorProperty != null && action.actionExecutor != 'delay') {
|
||||
// if (!updatedFunctions.containsKey(uniqueCustomId)) {
|
||||
// updatedFunctions[uniqueCustomId] = [];
|
||||
// }
|
||||
final functions = matchingDevice?.functions;
|
||||
final functions = matchingDevice?.functions ?? [];
|
||||
final functionCode = action.executorProperty?.functionCode;
|
||||
for (DeviceFunction function in functions ?? []) {
|
||||
for (DeviceFunction function in functions) {
|
||||
if (function.code == functionCode) {
|
||||
updatedFunctions[const Uuid().v4()]!.add(
|
||||
updatedFunctions[uniqueCustomId]!.add(
|
||||
DeviceFunctionData(
|
||||
entityId: action.entityId,
|
||||
functionCode: functionCode ?? '',
|
||||
@ -747,9 +749,6 @@ class RoutineBloc extends Bloc<RoutineEvent, RoutineState> {
|
||||
}
|
||||
}
|
||||
} else if (action.actionExecutor == 'delay') {
|
||||
if (!updatedFunctions.containsKey(uniqueCustomId)) {
|
||||
updatedFunctions[uniqueCustomId] = [];
|
||||
}
|
||||
final delayFunction = DelayFunction(
|
||||
deviceId: action.entityId,
|
||||
deviceName: 'Delay',
|
||||
@ -1156,21 +1155,25 @@ class RoutineBloc extends Bloc<RoutineEvent, RoutineState> {
|
||||
),
|
||||
);
|
||||
|
||||
final deviceId = condition.entityId;
|
||||
final deviceId = const Uuid().v4();
|
||||
|
||||
if (!deviceIfCards.containsKey(deviceId)) {
|
||||
deviceIfCards[deviceId] = {
|
||||
'entityId': condition.entityId,
|
||||
'deviceId': condition.entityId,
|
||||
'uniqueCustomId': const Uuid().v4(),
|
||||
'title': matchingDevice.name ?? 'Device',
|
||||
'productType': condition.productType,
|
||||
'functions': matchingDevice.functions,
|
||||
'imagePath': matchingDevice.getDefaultIcon(condition.productType),
|
||||
'device': matchingDevice,
|
||||
'type': 'condition',
|
||||
};
|
||||
}
|
||||
// if (!deviceIfCards.containsKey(deviceId)) {
|
||||
deviceIfCards[deviceId] = {
|
||||
'entityId': condition.entityId,
|
||||
'deviceId': condition.entityId,
|
||||
'uniqueCustomId': const Uuid().v4(),
|
||||
'title': matchingDevice.name ?? 'Device',
|
||||
'productType': condition.productType,
|
||||
'functions': matchingDevice.functions,
|
||||
'imagePath': matchingDevice.getDefaultIcon(condition.productType),
|
||||
'device': matchingDevice,
|
||||
'type': 'condition',
|
||||
'tag': matchingDevice.deviceTags?.isNotEmpty ?? false
|
||||
? matchingDevice.deviceTags![0].name
|
||||
: '',
|
||||
'subSpace': matchingDevice.deviceSubSpace?.subspaceName ?? '',
|
||||
};
|
||||
// }
|
||||
|
||||
final cardData = deviceIfCards[deviceId]!;
|
||||
final uniqueCustomId = cardData['uniqueCustomId'].toString();
|
||||
@ -1206,35 +1209,38 @@ class RoutineBloc extends Bloc<RoutineEvent, RoutineState> {
|
||||
),
|
||||
);
|
||||
|
||||
final deviceId =
|
||||
action.actionExecutor == 'delay' ? '${action.entityId}_delay' : action.entityId;
|
||||
final deviceId = const Uuid().v4();
|
||||
|
||||
if (!deviceThenCards.containsKey(deviceId)) {
|
||||
deviceThenCards[deviceId] = {
|
||||
'entityId': action.entityId,
|
||||
'deviceId': action.actionExecutor == 'delay' ? 'delay' : action.entityId,
|
||||
'uniqueCustomId': const Uuid().v4(),
|
||||
'title': action.actionExecutor == 'delay'
|
||||
? 'Delay'
|
||||
: (action.type == 'scene' || action.type == 'automation')
|
||||
? action.name
|
||||
: (matchingDevice.name ?? 'Device'),
|
||||
'productType': action.productType,
|
||||
'functions': matchingDevice.functions,
|
||||
'imagePath': action.actionExecutor == 'delay'
|
||||
? Assets.delay
|
||||
: action.type == 'automation'
|
||||
? Assets.automation
|
||||
: matchingDevice.getDefaultIcon(action.productType),
|
||||
'device': matchingDevice,
|
||||
'type': action.type == 'scene'
|
||||
? 'scene'
|
||||
: action.type == 'automation'
|
||||
? 'automation'
|
||||
: 'action',
|
||||
'icon': action.icon ?? '',
|
||||
};
|
||||
}
|
||||
// if (!deviceThenCards.containsKey(deviceId)) {
|
||||
deviceThenCards[deviceId] = {
|
||||
'entityId': action.entityId,
|
||||
'deviceId': action.actionExecutor == 'delay' ? 'delay' : action.entityId,
|
||||
'uniqueCustomId': const Uuid().v4(),
|
||||
'title': action.actionExecutor == 'delay'
|
||||
? 'Delay'
|
||||
: (action.type == 'scene' || action.type == 'automation')
|
||||
? action.name
|
||||
: (matchingDevice.name ?? 'Device'),
|
||||
'productType': action.productType,
|
||||
'functions': matchingDevice.functions,
|
||||
'imagePath': action.actionExecutor == 'delay'
|
||||
? Assets.delay
|
||||
: action.type == 'automation'
|
||||
? Assets.automation
|
||||
: matchingDevice.getDefaultIcon(action.productType),
|
||||
'device': matchingDevice,
|
||||
'type': action.type == 'scene'
|
||||
? 'scene'
|
||||
: action.type == 'automation'
|
||||
? 'automation'
|
||||
: 'action',
|
||||
'icon': action.icon ?? '',
|
||||
'tag': matchingDevice.deviceTags?.isNotEmpty ?? false
|
||||
? matchingDevice.deviceTags![0].name
|
||||
: '',
|
||||
'subSpace': matchingDevice.deviceSubSpace?.subspaceName ?? '',
|
||||
};
|
||||
// }
|
||||
|
||||
final cardData = deviceThenCards[deviceId]!;
|
||||
final uniqueCustomId = cardData['uniqueCustomId'].toString();
|
||||
|
Reference in New Issue
Block a user