Skip to content

Commit

Permalink
Merge branch 'trunk' into 1518-npt_atsign_bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
CurtlyCritchlow authored Nov 19, 2024
2 parents 0b5e1db + 9194af3 commit 0614550
Show file tree
Hide file tree
Showing 8 changed files with 79 additions and 23 deletions.
50 changes: 35 additions & 15 deletions .github/workflows/multibuild.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -74,15 +74,9 @@ jobs:
with:
ref: multibuild-${{github.run_number}}
- uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672 # v1.6.5
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with:
node-version: '20.17.0'
# setup required npm version
- run: |
npm install -g [email protected]
# create directories need for build
# create directories needed for build
- run: |
mkdir -p sshnp/web/admin
mkdir sshnp
mkdir tarball
- if: ${{ matrix.os != 'windows-latest' }}
run: mkdir sshnp/debug
Expand All @@ -103,11 +97,6 @@ jobs:
run: |
dart pub get --enforce-lockfile
dart compile exe bin/np_admin.dart -v -o ../../../packages/dart/sshnoports/sshnp/np_admin${{ matrix.ext }}
- name: build admin webapp
working-directory: ./apps/admin/webapp
run: |
npm ci
npm run build
- if: ${{ matrix.os != 'windows-latest' }}
run: |
dart compile exe bin/srvd.dart -v -o sshnp/srvd${{ matrix.ext }}
Expand All @@ -116,7 +105,6 @@ jobs:
- run: |
cp -r bundles/core/* sshnp/
cp -r bundles/${{ matrix.bundle }}/* sshnp/
cp -r ../../../apps/admin/webapp/dist/* sshnp/web/admin/
cp LICENSE sshnp
# codesign for apple
- if: ${{ matrix.os == 'macos-13' || matrix.os == 'macos-14' }}
Expand Down Expand Up @@ -217,6 +205,38 @@ jobs:
path: ./tarballs/${{ matrix.output-name }}.tgz
if-no-files-found: error

web_build:
needs: verify_tags
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: multibuild-${{github.run_number}}
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with:
node-version: '20.17.0'
# setup required npm version
- run: |
npm install -g [email protected]
# create directory needed for build
- name: build admin webapp
working-directory: ./apps/admin/webapp
run: |
mkdir -p sshnp/web/admin
mkdir tarball
npm ci
npm run build
cp -r dist/* sshnp/web/admin/
tar -cvzf tarball/sshnp-web-admin-noarch.tgz sshnp
# upload the build
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
with:
name:
sshnp-web-admin-noarch-${{github.ref_name}}-${{github.run_number
}}-${{github.run_attempt}}
path: ./apps/admin/webapp/tarball
if-no-files-found: error

universal_sh:
if: startsWith(github.ref, 'refs/tags/v')
defaults:
Expand Down Expand Up @@ -261,7 +281,7 @@ jobs:
github-release:
name: >-
Upload artifacts and generate SBOMs and checksums for provenance
needs: [main_build, other_build, universal_sh, universal_ps1]
needs: [main_build, other_build, web_build, universal_sh, universal_ps1]
runs-on: ubuntu-latest
outputs:
hashes: ${{ steps.hash.outputs.hashes }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,12 @@ class ProfileBloc extends LoggingBloc<ProfileEvent, ProfileState> {
profile = null;
}

if (event.copyFrom != null) {
var json = event.copyFrom!.toJson();
json["uuid"] = uuid;
profile = Profile.fromJson(json);
}

if (profile == null) {
emit(ProfileLoaded(
uuid,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ final class ProfileLoadEvent extends ProfileEvent {
}

final class ProfileLoadOrCreateEvent extends ProfileEvent {
const ProfileLoadOrCreateEvent();
final Profile? copyFrom;
const ProfileLoadOrCreateEvent({this.copyFrom});

@override
String toString() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:npt_flutter/app.dart';
import 'package:npt_flutter/features/profile/profile.dart';
import 'package:npt_flutter/pages/profile_form_page.dart';
import 'package:npt_flutter/features/profile_list/bloc/profile_list_bloc.dart';
import 'package:npt_flutter/styles/sizes.dart';
import 'package:npt_flutter/widgets/custom_snack_bar.dart';
import 'package:phosphor_flutter/phosphor_flutter.dart';

import '../../../routes.dart';
import '../../../util/export.dart';
import '../../../util/uuid.dart';
import '../../../widgets/confirmation_dialog.dart';
import '../../../widgets/multi_select_dialog.dart';

Expand Down Expand Up @@ -41,10 +43,28 @@ class ProfilePopupMenuButton extends StatelessWidget {
}

if (context.mounted) {
Navigator.of(context).pushNamed(Routes.profileForm, arguments: state.profile.uuid);
Navigator.of(context)
.pushNamed(Routes.profileForm, arguments: ProfileFormPageArguments(state.profile.uuid));
}
},
),
PopupMenuItem(
child: Row(
children: [
PhosphorIcon(PhosphorIcons.copy()),
gapW10,
const Text("Duplicate"), // TODO: localizations
],
),
onTap: () {
var state = context.read<ProfileBloc>().state;
if (state is! ProfileLoadedState) return;
var copyFrom = state.profile;
if (context.mounted) {
Navigator.of(context).pushNamed(Routes.profileForm,
arguments: ProfileFormPageArguments(Uuid.generate(), copyFrom: copyFrom));
}
}),
PopupMenuItem(
child: Row(
children: [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ import 'package:npt_flutter/widgets/custom_card.dart';

class ProfileFormView extends StatelessWidget {
final String uuid;
const ProfileFormView(this.uuid, {super.key});
final Profile? copyFrom;
const ProfileFormView(this.uuid, {super.key, this.copyFrom});

@override
Widget build(BuildContext context) {
Expand All @@ -19,7 +20,7 @@ class ProfileFormView extends StatelessWidget {
create: (BuildContext context) =>

/// Local copy of the profile which is used by the form
ProfileBloc(context.read<ProfileRepository>(), uuid)..add(const ProfileLoadOrCreateEvent()),
ProfileBloc(context.read<ProfileRepository>(), uuid)..add(ProfileLoadOrCreateEvent(copyFrom: copyFrom)),
child: Padding(
padding: const EdgeInsets.only(left: Sizes.p100, right: Sizes.p100),
child: Stack(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:npt_flutter/routes.dart';
import 'package:npt_flutter/pages/profile_form_page.dart';
import 'package:npt_flutter/styles/sizes.dart';
import 'package:npt_flutter/util/uuid.dart';
import 'package:phosphor_flutter/phosphor_flutter.dart';
Expand All @@ -25,7 +26,7 @@ class ProfileListAddButton extends StatelessWidget {
onPressed: () {
final uuid = Uuid.generate();
if (context.mounted) {
Navigator.of(context).pushNamed(Routes.profileForm, arguments: uuid);
Navigator.of(context).pushNamed(Routes.profileForm, arguments: ProfileFormPageArguments(uuid));
}
},
label: Text(strings.addNew),
Expand Down
11 changes: 9 additions & 2 deletions packages/dart/npt_flutter/lib/pages/profile_form_page.dart
Original file line number Diff line number Diff line change
@@ -1,18 +1,25 @@
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:npt_flutter/features/profile_form/profile_form.dart';
import 'package:npt_flutter/features/profile/models/profile.dart';
import 'package:npt_flutter/widgets/npt_app_bar.dart';

class ProfileFormPageArguments {
final String uuid;
final Profile? copyFrom;
ProfileFormPageArguments(this.uuid, {this.copyFrom});
}

class ProfileFormPage extends StatelessWidget {
const ProfileFormPage({super.key});

@override
Widget build(BuildContext context) {
final uuid = ModalRoute.of(context)!.settings.arguments as String;
final args = ModalRoute.of(context)!.settings.arguments as ProfileFormPageArguments;
final strings = AppLocalizations.of(context)!;
return Scaffold(
appBar: NptAppBar(title: strings.addNewProfile),
body: ProfileFormView(uuid),
body: ProfileFormView(args.uuid, copyFrom: args.copyFrom),
);
}
}
2 changes: 1 addition & 1 deletion packages/dart/npt_flutter/macos/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -87,4 +87,4 @@ SPEC CHECKSUMS:

PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367

COCOAPODS: 1.14.3
COCOAPODS: 1.15.2

0 comments on commit 0614550

Please sign in to comment.