Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
hillelcoren committed Dec 20, 2023
2 parents f8ab5f1 + ffe7f99 commit 57c019c
Show file tree
Hide file tree
Showing 60 changed files with 1,339 additions and 1,372 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: '3.13.6'
flutter-version: '3.16.2'
#channel: 'stable'

- name: Install Sentry
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/flatpak.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: '3.13.6'
flutter-version: '3.16.2'
#channel: 'stable'

- name: Init Flutter
Expand Down Expand Up @@ -86,7 +86,7 @@ jobs:
draft: false
prerelease: false
title: "Latest Release"
automatic_release_tag: "v5.0.145"
automatic_release_tag: "v5.0.146"
files: |
${{ github.workspace }}/artifacts/Invoice-Ninja-Archive
${{ github.workspace }}/artifacts/Invoice-Ninja-Hash
Expand Down
12 changes: 6 additions & 6 deletions .metadata
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# This file should be version controlled and should not be manually edited.

version:
revision: "ead455963c12b453cdb2358cad34969c76daf180"
revision: "9e1c857886f07d342cf106f2cd588bcd5e031bb2"
channel: "stable"

project_type: app
Expand All @@ -13,11 +13,11 @@ project_type: app
migration:
platforms:
- platform: root
create_revision: ead455963c12b453cdb2358cad34969c76daf180
base_revision: ead455963c12b453cdb2358cad34969c76daf180
- platform: windows
create_revision: ead455963c12b453cdb2358cad34969c76daf180
base_revision: ead455963c12b453cdb2358cad34969c76daf180
create_revision: 9e1c857886f07d342cf106f2cd588bcd5e031bb2
base_revision: 9e1c857886f07d342cf106f2cd588bcd5e031bb2
- platform: linux
create_revision: 9e1c857886f07d342cf106f2cd588bcd5e031bb2
base_revision: 9e1c857886f07d342cf106f2cd588bcd5e031bb2

# User provided section

Expand Down
4 changes: 3 additions & 1 deletion codemagic.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ workflows:
instance_type: linux
max_build_duration: 120
environment:
flutter: 3.13.6
flutter: 3.16.2
xcode: latest
cocoapods: default
vars:
Expand All @@ -20,11 +20,13 @@ workflows:
source: true
scripts:
- |
flutter doctor
cp $FCI_BUILD_DIR/android/app/build.gradle.prod $FCI_BUILD_DIR/android/app/build.gradle
cp $FCI_BUILD_DIR/lib/.env.dart.example $FCI_BUILD_DIR/lib/.env.dart
echo "const FLUTTER_VERSION = const <String, String>" > $FCI_BUILD_DIR/lib/flutter_version.dart
flutter --version --machine >> $FCI_BUILD_DIR/lib/flutter_version.dart
echo ";" >> $FCI_BUILD_DIR/lib/flutter_version.dart
#- cat $FCI_BUILD_DIR/lib/flutter_version.dart
- cd . && flutter packages pub get
- flutter config --enable-linux-desktop
#- flutter build linux --release
Expand Down
49 changes: 47 additions & 2 deletions fastlane/metadata/android/en-US/full_description.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,48 @@
<i>Invoice Ninja</i> is an invoicing application that makes sending invoices and receiving payments simple and easy. Our latest version is a clean slate rewrite of our popular invoicing application which builds on the existing feature set and adds a wide range of features and enhancements that you have asked for.
200,000+ businesses trust Invoice Ninja. And it's 100% free!

We're similar to WordPress, you can either run the app on our server (hosted) or on your own server (selfhosted) – the server-part is built with PHP/Laravel; many people use Docker or Cloudron to install a packaged version, but you also can install it manually.
Create invoices, track payments, vendors, expenses, and time billable-tasks & projects.
* Invoicing, Quotes, Credits, Payments
* Product Library, Client Management
* Project & Task Management, Time-Tracking
* Full Persistence, 2FA, Google Login

Pro & Enterprise Highlights
* Unlimited Clients, Invoices, Quotes
* Email invoices & quotes via your Gmail account.
* Attach & embed 3rd party files to client invoices & emails

Intuitive business dashboard
* View revenue, invoices sent, recent activity data.
* Track upcoming invoices, invoices past due, more.

Invoice Clients in seconds
* Create clients and send an invoices in seconds.
* Create subscriptions, recurring invoices, payment profiles.
* Send Invoices & quotes directly via your Gmail account.
* Product library system to quickly populate invoices & quotes.

Clients pay faster
* Accept credit cards, ACH payments, PayPal, & more.
* Clients pay directly from their invoice with the click of a button.

Notifications keep you up-to-date
* Receive app and email notifications when client view or paid.
* View instant data updates when payments are made.
* Automate payment reminders & past due notifications.

Time-tracking, Tasks, Kanban Boards
* The feel of desktop software but with the power of a web-based app.
* Create projects, time billable-tasks, monitor progress in kanban boards.

Integration Platforms
* Streamline workflow with Zapier, Integromat & more.
* Self-host integrations with Digital Ocean, Cloudron, Softaculous & more.

Download the Invoice Ninja app today and start invoicing clients & get paid!

Self-hosting? Invoice Ninja is 100% source-available!
* GitHub: https://github.com/invoiceninja/admin-portal

Terms of Service: https://www.invoiceninja.com/terms/
Privacy Policy: https://www.invoiceninja.com/privacy-policy/
GDPR Compliance: https://www.invoiceninja.com/gdpr/
Binary file modified fastlane/metadata/android/en-US/images/phoneScreenshots/1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified fastlane/metadata/android/en-US/images/phoneScreenshots/2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified fastlane/metadata/android/en-US/images/phoneScreenshots/3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified fastlane/metadata/android/en-US/images/phoneScreenshots/4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion fastlane/metadata/android/en-US/short_description.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Create invoices, accept payments, track expenses & time-tasks
Invoice your clients, accept payments, track expenses & time billable-tasks
1 change: 1 addition & 0 deletions flatpak/com.invoiceninja.InvoiceNinja.metainfo.xml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
</screenshots>
<content_rating type="oars-1.1"/>
<releases>
<release version="5.0.146" date="2023-12-20"/>
<release version="5.0.145" date="2023-12-03"/>
<release version="5.0.144" date="2023-12-01"/>
<release version="5.0.143" date="2023-11-30"/>
Expand Down
6 changes: 4 additions & 2 deletions lib/constants.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ class Constants {
}

// TODO remove version once #46609 is fixed
const String kClientVersion = '5.0.145';
const String kClientVersion = '5.0.146';
const String kMinServerVersion = '5.0.4';

const String kAppName = 'Invoice Ninja';
Expand Down Expand Up @@ -67,6 +67,8 @@ const String kDocsUrl = 'https://invoiceninja.github.io/en';
const String kDocsCustomDomainUrl = '$kDocsUrl/hosted-custom-domain';
const String kDocsCustomDesignUrl = '$kDocsUrl/custom-fields';
const String kDocsCustomFieldsUrl = '$kDocsUrl/custom-fields/#custom-fields';
const String kDocsEmailVariablesUrl =
'$kDocsUrl/email-customization/#payment-email-customization';
const String kDocsStripeConnectUrl = '$kDocsUrl/hosted-stripe';

const String kForumUrl = 'https://forum.invoiceninja.com';
Expand Down Expand Up @@ -901,7 +903,7 @@ const kMonthsOfTheYear = {
'12': 'december',
};

const kFrequencyOnce = '0';
//const kFrequencyOnce = '0';
const kFrequencyMonthly = '5';

const kStatementStatusAll = 'all';
Expand Down
3 changes: 1 addition & 2 deletions lib/data/models/invoice_model.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1082,8 +1082,7 @@ abstract class InvoiceEntity extends Object
actions.addAll([
EntityAction.newPayment,
EntityAction.markPaid,
if (client != null && client.gatewayTokens.isNotEmpty)
EntityAction.autoBill,
EntityAction.autoBill,
]);
} else if (isCredit) {
if (balanceOrAmount < 0) {
Expand Down
7 changes: 4 additions & 3 deletions lib/data/models/schedule_model.dart
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,10 @@ abstract class ScheduleEntity extends Object
createdUserId: '',
assignedUserId: '',
archivedAt: 0,
frequencyId: template == ScheduleEntity.TEMPLATE_EMAIL_RECORD
? kFrequencyOnce
: kFrequencyMonthly,
frequencyId: kFrequencyMonthly,
//frequencyId: template == ScheduleEntity.TEMPLATE_EMAIL_RECORD
// ? kFrequencyOnce
// : kFrequencyMonthly,
isPaused: false,
nextRun: '',
template: template,
Expand Down
5 changes: 4 additions & 1 deletion lib/main_app.dart
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,8 @@ class InvoiceNinjaAppState extends State<InvoiceNinjaApp> {
final MediaQueryData data = MediaQuery.of(context);
return MediaQuery(
data: data.copyWith(
textScaleFactor: state.prefState.textScaleFactor,
textScaler:
TextScaler.linear(state.prefState.textScaleFactor),
alwaysUse24HourFormat:
state.company.settings.enableMilitaryTime ?? false,
),
Expand Down Expand Up @@ -413,6 +414,7 @@ class InvoiceNinjaAppState extends State<InvoiceNinjaApp> {
*/
theme: state.prefState.enableDarkMode
? ThemeData(
useMaterial3: false,
tooltipTheme: TooltipThemeData(
waitDuration: Duration(milliseconds: 500),
),
Expand All @@ -438,6 +440,7 @@ class InvoiceNinjaAppState extends State<InvoiceNinjaApp> {
BottomAppBarTheme(color: const Color(0xFF1B1C1E)),
)
: ThemeData(
useMaterial3: false,
tooltipTheme: TooltipThemeData(
waitDuration: Duration(milliseconds: 500),
),
Expand Down
2 changes: 1 addition & 1 deletion lib/redux/app/app_state.dart
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ abstract class AppState implements Built<AppState, AppStateBuilder> {
}

final companies =
list.where((CompanyEntity company) => (company.id).isNotEmpty).toList();
list.where((CompanyEntity company) => company.id.isNotEmpty).toList();

return companies;
}
Expand Down
4 changes: 2 additions & 2 deletions lib/redux/dashboard/dashboard_sidebar_selectors.dart
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ List<TaskEntity?> _runningTasks({
}
});

tasks.sort((taskA, taskB) => (taskB.updatedAt).compareTo(taskA.updatedAt));
tasks.sort((taskA, taskB) => taskB.updatedAt.compareTo(taskA.updatedAt));

return tasks;
}
Expand Down Expand Up @@ -219,7 +219,7 @@ List<TaskEntity> _recentTasks({
}
});

tasks.sort((taskA, taskB) => (taskB.updatedAt).compareTo(taskA.updatedAt));
tasks.sort((taskA, taskB) => taskB.updatedAt.compareTo(taskA.updatedAt));

return tasks;
}
Expand Down
7 changes: 3 additions & 4 deletions lib/redux/recurring_expense/recurring_expense_actions.dart
Original file line number Diff line number Diff line change
Expand Up @@ -388,10 +388,9 @@ void handleRecurringExpenseAction(BuildContext? context,
break;
case EntityAction.start:
store.dispatch(StartRecurringExpensesRequest(
completer: snackBarCompleter<Null>(
(recurringExpense.lastSentDate).isEmpty
? localization!.startedRecurringInvoice
: localization!.resumedRecurringInvoice),
completer: snackBarCompleter<Null>(recurringExpense.lastSentDate.isEmpty
? localization!.startedRecurringInvoice
: localization!.resumedRecurringInvoice),
expenseIds: recurringExpenseIds,
));
break;
Expand Down
7 changes: 3 additions & 4 deletions lib/redux/recurring_invoice/recurring_invoice_actions.dart
Original file line number Diff line number Diff line change
Expand Up @@ -629,10 +629,9 @@ void handleRecurringInvoiceAction(BuildContext? context,
break;
case EntityAction.start:
store.dispatch(StartRecurringInvoicesRequest(
completer: snackBarCompleter<Null>(
(recurringInvoice.lastSentDate).isEmpty
? localization!.startedRecurringInvoice
: localization!.resumedRecurringInvoice),
completer: snackBarCompleter<Null>(recurringInvoice.lastSentDate.isEmpty
? localization!.startedRecurringInvoice
: localization!.resumedRecurringInvoice),
invoiceIds: recurringInvoiceIds,
));
break;
Expand Down
3 changes: 0 additions & 3 deletions lib/redux/ui/pref_state.dart
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ abstract class PrefState implements Built<PrefState, PrefStateBuilder> {
showPdfPreview: true,
showPdfPreviewSideBySide: false,
persistData: false,
persistUI: true,
enableNativeBrowser: false,
donwloadsFolder: '',
statementIncludes: BuiltList(<String>[kStatementIncludePayments]),
Expand Down Expand Up @@ -145,8 +144,6 @@ abstract class PrefState implements Built<PrefState, PrefStateBuilder> {

bool get persistData;

bool get persistUI;

bool get longPressSelectionIsDefault;

bool get requireAuthentication;
Expand Down
20 changes: 0 additions & 20 deletions lib/redux/ui/pref_state.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion lib/redux/vendor/vendor_actions.dart
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,7 @@ void handleVendorAction(
break;
case EntityAction.vendorPortal:
final contact = vendor.contacts.firstWhere((contact) {
return (contact.link).isNotEmpty;
return contact.link.isNotEmpty;
}, orElse: null);
launchUrl(Uri.parse(contact.silentLink));
break;
Expand Down
Loading

0 comments on commit 57c019c

Please sign in to comment.