├── apps ├── Workflow │ ├── Views │ │ ├── Home.twig │ │ ├── History.twig │ │ └── Workflows.twig │ ├── Loader.tsx │ ├── Workflow.php │ ├── manifest.yaml │ ├── Extendibles │ │ └── AppMenu.php │ ├── Models │ │ └── RecordManagers │ │ │ └── WorkflowStep.php │ └── Controllers │ │ ├── Home.php │ │ └── Workflows.php ├── Crypto │ ├── Views │ │ └── Dashboard.twig │ ├── manifest.yaml │ └── Controllers │ │ └── Dashboard.php ├── Auth │ ├── Views │ │ ├── SignIn.twig │ │ └── NotEnoughPermissions.twig │ ├── manifest.yaml │ ├── Models │ │ └── RecordManagers │ │ │ ├── UserHasToken.php │ │ │ ├── Token.php │ │ │ └── UserRole.php │ └── Controllers │ │ └── NotEnoughPermissions.php ├── Customers │ ├── Views │ │ ├── Dashboard.twig │ │ ├── Tags.twig │ │ └── Customers.twig │ ├── Controllers │ │ ├── Dashboard.php │ │ ├── Customers.php │ │ └── Tags.php │ ├── Extendibles │ │ └── ContextHelp.php │ ├── Models │ │ └── RecordManagers │ │ │ └── Tag.php │ └── manifest.yaml ├── Support │ ├── Views │ │ └── Dashboard.twig │ ├── Controllers │ │ └── Dashboard.php │ └── Loader.php ├── Settings │ ├── Views │ │ ├── MyAccount.twig │ │ ├── UpdateDefaultPermissions.twig │ │ ├── UserRoles.twig │ │ ├── General.twig │ │ ├── RolePermissions.twig │ │ ├── Profile.twig │ │ ├── Teams.twig │ │ ├── Tags.twig │ │ ├── Users.twig │ │ ├── Companies.twig │ │ ├── Countries.twig │ │ ├── Currencies.twig │ │ ├── ActivityTypes.twig │ │ ├── Config.twig │ │ ├── Theme.twig │ │ └── Permissions.twig │ ├── manifest.yaml │ ├── Controllers │ │ ├── Config.php │ │ ├── General.php │ │ ├── RolePermissions.php │ │ ├── Teams.php │ │ └── Users.php │ └── Models │ │ └── RecordManagers │ │ ├── Company.php │ │ ├── Setting.php │ │ ├── Permission.php │ │ ├── Country.php │ │ ├── Currency.php │ │ └── ActivityType.php ├── Shops │ ├── Loader.tsx │ ├── Models │ │ └── RecordManagers │ │ │ └── Shop.php │ ├── Views │ │ └── Shops.twig │ ├── manifest.yaml │ └── Controllers │ │ └── Shops.php ├── Tasks │ ├── Loader.tsx │ ├── Views │ │ └── Tasks.twig │ ├── manifest.yaml │ ├── Controllers │ │ └── Tasks.php │ └── Calendar.php ├── Deals │ ├── Views │ │ ├── Tags.twig │ │ ├── LostReasons.twig │ │ ├── Goals.twig │ │ ├── DealsArchive.twig │ │ └── WorkflowItemDetail.twig │ ├── Models │ │ └── RecordManagers │ │ │ ├── LostReason.php │ │ │ ├── Tag.php │ │ │ └── DealHistory.php │ ├── Extendibles │ │ ├── ProductTypes.php │ │ ├── ContextHelp.php │ │ └── MailTemplateVariables.php │ ├── Controllers │ │ ├── ReportGoal.php │ │ ├── Tags.php │ │ ├── Api │ │ │ └── GenerateInvoice.php │ │ └── DealsArchive.php │ └── manifest.yaml ├── Leads │ ├── Views │ │ ├── Tags.twig │ │ ├── LostReasons.twig │ │ ├── Levels.twig │ │ ├── Leads.twig │ │ └── LeadsArchive.twig │ ├── Models │ │ └── RecordManagers │ │ │ ├── LostReason.php │ │ │ ├── Tag.php │ │ │ └── Level.php │ ├── Extendibles │ │ └── ContextHelp.php │ └── Controllers │ │ ├── Leads.php │ │ ├── Levels.php │ │ ├── Tags.php │ │ └── LeadsArchive.php ├── Cloud │ ├── Views │ │ ├── Test │ │ │ ├── ClearCredit.twig │ │ │ └── MakeRandomPayment.twig │ │ ├── BillingAccounts.twig │ │ ├── MakePayment.twig │ │ └── Log.twig │ ├── Models │ │ └── RecordManagers │ │ │ ├── BillingAccount.php │ │ │ ├── Log.php │ │ │ ├── Credit.php │ │ │ └── Discount.php │ ├── Controllers │ │ ├── MakePayment.php │ │ ├── BillingAccounts.php │ │ ├── Api │ │ │ ├── AcceptLegalDocuments.php │ │ │ └── ActivatePremiumAccount.php │ │ ├── Log.php │ │ ├── DeactivateSubscriptionRenewal.php │ │ └── ActivateSubscriptionRenewal.php │ └── manifest.yaml ├── Contacts │ ├── Views │ │ ├── Tags.twig │ │ ├── Categories.twig │ │ └── Contacts.twig │ ├── manifest.yaml │ ├── Models │ │ └── RecordManagers │ │ │ ├── Tag.php │ │ │ └── Category.php │ ├── Loader.tsx │ └── Controllers │ │ ├── Contacts.php │ │ └── Tags.php ├── EventFeedback │ ├── Views │ │ ├── Settings.twig │ │ └── Contacts.twig │ ├── manifest.yaml │ ├── Models │ │ └── RecordManagers │ │ │ └── Contact.php │ ├── Loader.tsx │ └── Controllers │ │ ├── Dashboard.php │ │ └── Settings.php ├── Billing │ ├── Views │ │ └── BillingAccounts.twig │ ├── Lang │ │ ├── de.json │ │ ├── fr.json │ │ ├── pl.json │ │ └── sk.json │ ├── Loader.tsx │ └── manifest.yaml ├── EventRegistrations │ ├── Views │ │ ├── Settings.twig │ │ └── Contacts.twig │ ├── manifest.yaml │ └── Models │ │ └── RecordManagers │ │ └── Contact.php ├── Projects │ ├── Views │ │ ├── Settings.twig │ │ ├── Contacts.twig │ │ ├── Projects.twig │ │ ├── Phases.twig │ │ └── WorkflowItemDetail.twig │ ├── manifest.yaml │ ├── Controllers │ │ ├── Phases.php │ │ ├── Projects.php │ │ ├── Dashboard.php │ │ ├── Settings.php │ │ └── Contacts.php │ └── Calendar.php ├── Usage │ ├── manifest.yaml │ ├── Loader.tsx │ ├── Views │ │ ├── Log.twig │ │ └── Home.twig │ ├── Models │ │ └── RecordManagers │ │ │ └── Log.php │ ├── Integrations │ │ └── Tools.php │ └── Controllers │ │ ├── Home.php │ │ └── Log.php ├── Documents │ ├── Views │ │ ├── Browse.twig │ │ ├── Folders.twig │ │ ├── Documents.twig │ │ └── Templates.twig │ ├── Models │ │ └── RecordManagers │ │ │ └── Template.php │ ├── manifest.yaml │ └── Controllers │ │ ├── Browse.php │ │ ├── Documents.php │ │ └── Templates.php ├── Notifications │ ├── Loader.tsx │ ├── Views │ │ └── Notifications.twig │ ├── manifest.yaml │ ├── Lang │ │ └── sk.json │ └── Controllers │ │ ├── Api │ │ ├── MarkAsUnread.php │ │ └── MarkAsRead.php │ │ └── Notifications.php ├── Mail │ ├── Views │ │ ├── Get.twig │ │ ├── Drafts.twig │ │ ├── Accounts.twig │ │ ├── SendScheduled.twig │ │ ├── Home.twig │ │ ├── Sent.twig │ │ ├── Templates.twig │ │ └── Mails.twig │ ├── Models │ │ └── RecordManagers │ │ │ ├── Index.php │ │ │ ├── Template.php │ │ │ ├── Account.php │ │ │ └── Mailbox.php │ ├── manifest.yaml │ ├── Controllers │ │ ├── Api │ │ │ ├── MarkAsUnread.php │ │ │ └── MarkAsRead.php │ │ ├── Sent.php │ │ ├── Accounts.php │ │ ├── Scheduled.php │ │ └── Templates.php │ └── Loader.tsx ├── CalendarSync │ ├── Loader.tsx │ ├── manifest.yaml │ └── Views │ │ ├── home.twig │ │ └── ics.twig ├── Invoices │ ├── Views │ │ ├── Payments.twig │ │ ├── Profiles.twig │ │ ├── Items.twig │ │ └── Invoices.twig │ ├── manifest.yaml │ └── Controllers │ │ ├── Items.php │ │ ├── Payments.php │ │ ├── Profiles.php │ │ └── Invoices.php ├── Cashdesk │ ├── manifest.yaml │ ├── Views │ │ ├── Receipts.twig │ │ ├── CashRegisters.twig │ │ └── Home.twig │ └── Controllers │ │ └── Home.php ├── Orders │ ├── Models │ │ └── RecordManagers │ │ │ ├── State.php │ │ │ ├── History.php │ │ │ └── OrderActivity.php │ ├── Views │ │ ├── Orders.twig │ │ ├── Payments.twig │ │ └── WorkflowItemDetail.twig │ ├── Controllers │ │ ├── Orders.php │ │ ├── Payments.php │ │ ├── Api │ │ │ ├── GetPreviewVars.php │ │ │ ├── GeneratePdf.php │ │ │ └── GenerateInvoice.php │ │ └── States.php │ └── manifest.yaml ├── Issues │ ├── Views │ │ ├── Issues.twig │ │ └── MailAccounts.twig │ ├── manifest.yaml │ ├── Models │ │ └── RecordManagers │ │ │ ├── Issue.php │ │ │ └── MailAccount.php │ ├── Controllers │ │ ├── Issues.php │ │ └── MailAccounts.php │ └── Loader.tsx ├── Products │ ├── Models │ │ └── RecordManagers │ │ │ ├── Group.php │ │ │ └── Category.php │ ├── Views │ │ ├── Products.twig │ │ ├── Groups.twig │ │ └── Categories.twig │ ├── manifest.yaml │ └── Controllers │ │ ├── Groups.php │ │ ├── Products.php │ │ └── Categories.php ├── OAuth │ ├── Models │ │ └── RecordManagers │ │ │ ├── Scope.php │ │ │ ├── Client.php │ │ │ ├── AuthCode.php │ │ │ ├── AccessToken.php │ │ │ └── RefreshToken.php │ ├── manifest.yaml │ └── Entities │ │ ├── UserEntity.php │ │ ├── ScopeEntity.php │ │ ├── RefreshTokenEntity.php │ │ ├── AuthCodeEntity.php │ │ └── AccessTokenEntity.php ├── Api │ ├── Views │ │ ├── Keys.twig │ │ ├── Usages.twig │ │ └── Permissions.twig │ ├── manifest.yaml │ ├── Controllers │ │ ├── Home.php │ │ ├── Keys.php │ │ ├── Usages.php │ │ └── Permissions.php │ └── Models │ │ └── RecordManagers │ │ └── Key.php ├── Campaigns │ ├── Models │ │ └── RecordManagers │ │ │ ├── RecipientStatus.php │ │ │ └── CampaignActivity.php │ ├── Views │ │ ├── Campaigns.twig │ │ ├── Recipients.twig │ │ ├── RecipientStatuses.twig │ │ └── WorkflowItemDetail.twig │ ├── Extendibles │ │ └── MailTemplateVariables.php │ ├── manifest.yaml │ └── Controllers │ │ ├── Campaigns.php │ │ └── Recipients.php ├── Warehouses │ ├── Models │ │ └── RecordManagers │ │ │ ├── WarehouseType.php │ │ │ └── LocationType.php │ ├── Views │ │ ├── LocationTypes.twig │ │ ├── WarehouseTypes.twig │ │ ├── Warehouses.twig │ │ ├── Locations.twig │ │ ├── Inventory.twig │ │ ├── TransactionItems.twig │ │ ├── Transactions.twig │ │ └── Settings.twig │ ├── manifest.yaml │ └── Controllers │ │ ├── Inventory.php │ │ └── Warehouses.php ├── Events │ ├── Views │ │ ├── Types.twig │ │ ├── Events.twig │ │ ├── Settings.twig │ │ ├── Venues.twig │ │ ├── Agendas.twig │ │ ├── Speakers.twig │ │ ├── Attendees.twig │ │ ├── EventVenues.twig │ │ ├── EventSpeakers.twig │ │ └── EventAttendees.twig │ ├── manifest.yaml │ ├── Controllers │ │ ├── Types.php │ │ ├── Agendas.php │ │ ├── Events.php │ │ ├── Venues.php │ │ ├── Attendees.php │ │ ├── Speakers.php │ │ ├── EventVenues.php │ │ ├── EventAttendees.php │ │ ├── EventSpeakers.php │ │ └── Settings.php │ └── Calendar.php ├── Desktop │ ├── manifest.yaml │ ├── Loader.tsx │ ├── Types │ │ └── Board.php │ └── DashboardManager.php ├── About │ ├── manifest.yaml │ └── Loader.php ├── Suppliers │ ├── Views │ │ └── Suppliers.twig │ ├── manifest.yaml │ ├── Controllers │ │ └── Suppliers.php │ └── Models │ │ └── RecordManagers │ │ └── Supplier.php ├── Worksheets │ ├── manifest.yaml │ ├── Views │ │ ├── Activities.twig │ │ └── ActivityTypes.twig │ └── Controllers │ │ └── Home.php ├── Dashboards │ ├── manifest.yaml │ ├── Views │ │ └── DashboardsManage.twig │ ├── Controller.php │ ├── Manager.php │ └── Loader.tsx ├── Discussions │ ├── Views │ │ ├── Members.twig │ │ ├── Messages.twig │ │ └── Discussions.twig │ ├── manifest.yaml │ └── Controllers │ │ └── Discussions.php ├── Calendar │ ├── Views │ │ ├── Calendar.twig │ │ └── Settings.twig │ ├── Extendibles │ │ └── ContextHelp.php │ ├── manifest.yaml │ ├── Controllers │ │ └── Api │ │ │ ├── GetSharedCalendars.php │ │ │ └── SetInitialView.php │ └── Models │ │ └── RecordManagers │ │ └── SharedCalendar.php ├── Tools │ ├── manifest.yaml │ ├── Views │ │ └── Dashboard.twig │ └── Loader.php ├── Developer │ ├── manifest.yaml │ ├── Views │ │ ├── UpgradeModels.twig │ │ └── Dashboard.twig │ ├── Extendibles │ │ └── Tools.php │ ├── Loader.tsx │ └── Controllers │ │ └── Dashboard.php └── Help │ ├── Tests │ └── RenderAllRoutesTest.php │ ├── manifest.yaml │ └── Controllers │ ├── Help.php │ └── Search.php ├── lang ├── fr │ ├── hubleto-app-community-contacts-loader.json │ ├── hubleto-app-community-customers-loader.json │ ├── hubleto-app-community-cloud-loader.json │ ├── hubleto-app-community-desktop-loader.json │ ├── hubleto-app-community-support-loader.json │ ├── hubleto-app-community-documents-loader.json │ ├── hubleto-app-community-calendar-loader.json │ ├── hubleto-app-community-workflow-loader.json │ ├── hubleto-app-community-deals-loader.json │ └── hubleto-app-community-leads-loader.json ├── pl │ ├── hubleto-app-community-support-loader.json │ ├── hubleto-app-community-reports-loader.json │ ├── hubleto-app-community-about-loader.json │ ├── hubleto-app-community-help-loader.json │ ├── hubleto-app-community-orders-loader.json │ ├── hubleto-app-community-desktop-loader.json │ ├── hubleto-app-community-usage-loader.json │ └── hubleto-app-community-documents-loader.json ├── sk │ ├── hubleto-app-community-support-loader.json │ ├── hubleto-app-community-crypto-loader.json │ ├── hubleto-app-community-tools-loader.json │ ├── hubleto-app-community-reports-loader.json │ ├── hubleto-app-community-about-loader.json │ ├── hubleto-app-community-help-loader.json │ ├── hubleto-app-community-usage-loader.json │ ├── hubleto-app-community-notifications-loader.json │ ├── hubleto-app-community-accounting-loader.json │ └── hubleto-app-community-issues-loader.json ├── de │ ├── hubleto-app-community-support-loader.json │ ├── hubleto-app-community-reports-loader.json │ ├── hubleto-app-community-help-loader.json │ ├── hubleto-app-community-developer-loader.json │ └── hubleto-app-community-usage-loader.json ├── ro │ ├── hubleto-app-community-about-loader.json │ ├── hubleto-app-community-help-loader.json │ ├── hubleto-app-community-reports-loader.json │ ├── hubleto-erp-loader.json │ ├── hubleto-app-community-orders-loader.json │ ├── hubleto-app-community-desktop-loader.json │ ├── hubleto-app-community-usage-loader.json │ ├── hubleto-app-community-documents-loader.json │ └── hubleto-app-community-workflow-loader.json └── cs │ ├── hubleto-app-community-accounts-loader.json │ ├── hubleto-app-community-reports-loader.json │ ├── hubleto-app-community-about-loader.json │ ├── hubleto-app-community-usage-loader.json │ └── hubleto-app-community-help-loader.json ├── installer └── Templates │ ├── .htaccess-secure.tpl │ ├── index.php.tpl │ ├── .htaccess.tpl │ ├── hubleto.tpl │ ├── cron.php.tpl │ └── boot.php.tpl ├── cli ├── Templates │ └── app │ │ ├── Views │ │ ├── Settings.twig.twig │ │ └── Contacts.twig.twig │ │ ├── manifest.yaml.twig │ │ ├── Models │ │ └── RecordManagers │ │ │ └── Contact.php.twig │ │ └── Controllers │ │ ├── Home.php.twig │ │ └── Settings.php.twig └── Agent │ ├── CommandHelp.php │ ├── Code │ └── ListTemplates.php │ └── App │ ├── Disable.php │ └── ListInstalled.php ├── src ├── Exceptions │ ├── AccountAlreadyExists.php │ └── AccountValidationFailed.php ├── Emails │ └── EmailWrapper.php ├── Cron.php ├── Hook.php ├── Api │ ├── GetAppsInfo.php │ └── GetUsers.php └── Locale.php ├── views └── DesktopTitle.twig ├── .php-cs-fixer.dist.php ├── legal ├── corporate │ └── README.md └── individual │ ├── README.md │ ├── Perniska.md │ ├── mrgopes.md │ ├── rindo789.md │ └── dusan-daniska.md ├── .github └── workflows │ └── test-update.yml ├── .gitignore ├── tests └── GeneralTest.php └── tsconfig.json /apps/Workflow/Views/Home.twig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lang/fr/hubleto-app-community-contacts-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | } -------------------------------------------------------------------------------- /lang/fr/hubleto-app-community-customers-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | } -------------------------------------------------------------------------------- /apps/Crypto/Views/Dashboard.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Crypto') }}

2 | 3 | ... -------------------------------------------------------------------------------- /installer/Templates/.htaccess-secure.tpl: -------------------------------------------------------------------------------- 1 | Options -Indexes 2 | Require all denied -------------------------------------------------------------------------------- /apps/Auth/Views/SignIn.twig: -------------------------------------------------------------------------------- 1 | {% extends '@Hubleto:App:Community:Auth/layouts/Auth.twig' %} -------------------------------------------------------------------------------- /apps/Customers/Views/Dashboard.twig: -------------------------------------------------------------------------------- 1 |

Customers

2 |
3 |
4 | ... 5 |
-------------------------------------------------------------------------------- /apps/Support/Views/Dashboard.twig: -------------------------------------------------------------------------------- 1 |
2 | Support... 3 |
-------------------------------------------------------------------------------- /apps/Settings/Views/MyAccount.twig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/Settings/Views/UpdateDefaultPermissions.twig: -------------------------------------------------------------------------------- 1 | UpdateDefaultPermissions 2 | 3 |
{{ viewParams.log }}
-------------------------------------------------------------------------------- /lang/fr/hubleto-app-community-cloud-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": { 3 | "Upgrade": "Passer à PRO" 4 | } 5 | } -------------------------------------------------------------------------------- /lang/fr/hubleto-app-community-desktop-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": { 3 | "Home": "Page d'accueil" 4 | } 5 | } -------------------------------------------------------------------------------- /lang/fr/hubleto-app-community-support-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": { 3 | "Support": "Assistance" 4 | } 5 | } -------------------------------------------------------------------------------- /lang/pl/hubleto-app-community-support-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": { 3 | "Support": "Wsparcie" 4 | } 5 | } -------------------------------------------------------------------------------- /lang/sk/hubleto-app-community-support-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Support": "Podpora" 4 | } 5 | } -------------------------------------------------------------------------------- /lang/de/hubleto-app-community-support-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": { 3 | "Support": "Unterstützung" 4 | } 5 | } -------------------------------------------------------------------------------- /lang/fr/hubleto-app-community-documents-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": { 3 | "Documents": "Documents" 4 | } 5 | } -------------------------------------------------------------------------------- /apps/Settings/Views/UserRoles.twig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/Shops/Loader.tsx: -------------------------------------------------------------------------------- 1 | import TableShops from './Components/TableShops' 2 | 3 | globalThis.main.registerReactComponent('ShopsTableShops', TableShops); 4 | -------------------------------------------------------------------------------- /apps/Tasks/Loader.tsx: -------------------------------------------------------------------------------- 1 | import TableTasks from './Components/TableTasks' 2 | 3 | globalThis.main.registerReactComponent('TasksTableTasks', TableTasks); 4 | -------------------------------------------------------------------------------- /apps/Deals/Views/Tags.twig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/Leads/Views/Tags.twig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lang/ro/hubleto-app-community-about-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Help": "", 4 | "Help and user guide for Hubleto.": "" 5 | } 6 | } -------------------------------------------------------------------------------- /lang/ro/hubleto-app-community-help-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Help": "", 4 | "Help and user guide for Hubleto.": "" 5 | } 6 | } -------------------------------------------------------------------------------- /lang/ro/hubleto-app-community-reports-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Reports": "", 4 | "Free report generator app.": "" 5 | } 6 | } -------------------------------------------------------------------------------- /apps/Cloud/Views/Test/ClearCredit.twig: -------------------------------------------------------------------------------- 1 |

Test -> Clear Credit

2 | 3 |
4 | Credit was cleared 5 |
-------------------------------------------------------------------------------- /apps/Contacts/Views/Tags.twig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /installer/Templates/index.php.tpl: -------------------------------------------------------------------------------- 1 | renderer()->render(); 8 | -------------------------------------------------------------------------------- /apps/Deals/Views/LostReasons.twig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/EventFeedback/Views/Settings.twig: -------------------------------------------------------------------------------- 1 |

EventFeedback > Settings

2 | 3 |
Create your custom settings page here
-------------------------------------------------------------------------------- /apps/Leads/Views/LostReasons.twig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/Settings/Views/General.twig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/Contacts/Views/Categories.twig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/Customers/Controllers/Dashboard.php: -------------------------------------------------------------------------------- 1 | {{ appName }} > Settings 2 | 3 |
Create your custom settings page here
-------------------------------------------------------------------------------- /apps/Billing/Views/BillingAccounts.twig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/EventRegistrations/Views/Settings.twig: -------------------------------------------------------------------------------- 1 |

EventRegistrations > Settings

2 | 3 |
Create your custom settings page here
-------------------------------------------------------------------------------- /apps/Projects/Views/Settings.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Projects') }} > Settings

2 | 3 |
Create your custom settings page here
-------------------------------------------------------------------------------- /apps/Usage/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Usage 2 | appType: community 3 | rootUrlSlug: usage 4 | name: Usage 5 | icon: fas fa-chart-bar 6 | highlight: Usage statistics 7 | -------------------------------------------------------------------------------- /src/Exceptions/AccountAlreadyExists.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/Workflow/Loader.tsx: -------------------------------------------------------------------------------- 1 | import SettingsTableWorkflows from "./Components/TableWorkflows" 2 | 3 | globalThis.main.registerReactComponent('SettingsTableWorkflows', SettingsTableWorkflows); 4 | -------------------------------------------------------------------------------- /cli/Templates/app/Views/Contacts.twig.twig: -------------------------------------------------------------------------------- 1 |

{{ appName }} > Contacts

2 | 3 | -------------------------------------------------------------------------------- /src/Exceptions/AccountValidationFailed.php: -------------------------------------------------------------------------------- 1 | 2 |

{{ title }}

3 |
{{ rightSide|raw }}
4 | 5 | -------------------------------------------------------------------------------- /apps/Documents/Views/Browse.twig: -------------------------------------------------------------------------------- 1 |

{{ translate("Documents") }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Settings/Views/Profile.twig: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /installer/Templates/.htaccess.tpl: -------------------------------------------------------------------------------- 1 | RewriteEngine On 2 | 3 | RewriteCond %{REQUEST_FILENAME} !-f 4 | RewriteCond %{REQUEST_FILENAME} !-d 5 | RewriteRule ^(.*)$ index.php?route=$1&%{QUERY_STRING} 6 | -------------------------------------------------------------------------------- /installer/Templates/hubleto.tpl: -------------------------------------------------------------------------------- 1 | releaseFolder . '/hubleto'); 6 | -------------------------------------------------------------------------------- /apps/Notifications/Loader.tsx: -------------------------------------------------------------------------------- 1 | import TableNotifications from "./Components/TableNotifications" 2 | 3 | globalThis.main.registerReactComponent('NotificationsTableNotifications', TableNotifications); 4 | -------------------------------------------------------------------------------- /installer/Templates/cron.php.tpl: -------------------------------------------------------------------------------- 1 | cronManager()->init(); 8 | $hubleto->cronManager()->run(); 9 | -------------------------------------------------------------------------------- /apps/Mail/Views/Get.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Mail') }} > {{ translate('Get') }}

2 | 3 |
{{ viewParams.result.log|join('\n') }}
-------------------------------------------------------------------------------- /lang/cs/hubleto-app-community-accounts-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Accounts": "Účty" 4 | }, 5 | "Controllers\\Accounts": { 6 | "Accounting": "Účetnictví" 7 | } 8 | } -------------------------------------------------------------------------------- /lang/cs/hubleto-app-community-reports-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Reports": "Reporty", 4 | "Free report generator app.": "Bezplatná aplikace generátoru reportů." 5 | } 6 | } -------------------------------------------------------------------------------- /lang/fr/hubleto-app-community-calendar-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "controllers.calendar": { 3 | "Calendar": "Calendrier" 4 | }, 5 | "loader": { 6 | "Calendar": "Calendrier" 7 | } 8 | } -------------------------------------------------------------------------------- /lang/pl/hubleto-app-community-reports-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Reports": "Raporty", 4 | "Free report generator app.": "Bezpłatna aplikacja generatora raportów." 5 | } 6 | } -------------------------------------------------------------------------------- /lang/ro/hubleto-erp-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "Desktop": { 3 | "Premium": "", 4 | "Manage your user account": "", 5 | "Manage cloud account": "", 6 | "Sign out": "" 7 | } 8 | } -------------------------------------------------------------------------------- /apps/CalendarSync/Loader.tsx: -------------------------------------------------------------------------------- 1 | import TableCalendarSyncSources from "./Components/TableCalendarSyncSources" 2 | 3 | globalThis.main.registerReactComponent('TableCalendarSyncSources', TableCalendarSyncSources); 4 | -------------------------------------------------------------------------------- /apps/Usage/Loader.tsx: -------------------------------------------------------------------------------- 1 | // import TableCalendarSyncSources from "./Components/TableCalendarSyncSources" 2 | 3 | // globalThis.main.registerReactComponent('TableCalendarSyncSources', TableCalendarSyncSources); 4 | -------------------------------------------------------------------------------- /lang/pl/hubleto-app-community-about-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Help": "Pomoc", 4 | "Help and user guide for Hubleto.": "Podręcznik pomocy i użytkownika dla Hubleto." 5 | } 6 | } -------------------------------------------------------------------------------- /lang/pl/hubleto-app-community-help-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Help": "Pomoc", 4 | "Help and user guide for Hubleto.": "Podręcznik pomocy i użytkownika dla Hubleto." 5 | } 6 | } -------------------------------------------------------------------------------- /lang/ro/hubleto-app-community-orders-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Orders": "", 4 | "Free order managment.": "" 5 | }, 6 | "root": { 7 | "Order states": "" 8 | } 9 | } -------------------------------------------------------------------------------- /apps/Invoices/Views/Payments.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Invoices') }} > {{ translate('Payments') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Deals/Views/Goals.twig: -------------------------------------------------------------------------------- 1 |

Goals

2 | 3 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /lang/sk/hubleto-app-community-crypto-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Crypto": "Crypto", 4 | "Manage security keys and other security settings.": "Manažment bezpečnostných kľúčov." 5 | } 6 | } -------------------------------------------------------------------------------- /apps/Mail/Models/RecordManagers/Index.php: -------------------------------------------------------------------------------- 1 | {{ translate('Usage log') }} 2 | -------------------------------------------------------------------------------- /lang/fr/hubleto-app-community-workflow-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": { 3 | "Sales": "Ventes", 4 | "Workflow": "Workflow" 5 | }, 6 | "controllers.home": { 7 | "Sales": "Ventes" 8 | } 9 | } -------------------------------------------------------------------------------- /apps/Cashdesk/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Cashdesk 2 | appType: community 3 | sidebarGroup: finance 4 | rootUrlSlug: cashdesk 5 | name: Cashdesk 6 | icon: fas fa-cash-register 7 | highlight: Cashdesk and receipts. -------------------------------------------------------------------------------- /apps/Orders/Models/RecordManagers/State.php: -------------------------------------------------------------------------------- 1 | {{ translate('Settings') }} > {{ translate('Teams') }} 2 | 3 | -------------------------------------------------------------------------------- /apps/Issues/Views/Issues.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Issues') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Products/Models/RecordManagers/Group.php: -------------------------------------------------------------------------------- 1 | {{ translate('Mail') }} > Drafts 2 | 3 | 7 | -------------------------------------------------------------------------------- /apps/OAuth/Models/RecordManagers/Scope.php: -------------------------------------------------------------------------------- 1 | Payment 2 | 3 |
4 | Random payment of {{ hubleto.locale().formatCurrency(viewParams.amount, '€') }} was simulated. 5 |
-------------------------------------------------------------------------------- /apps/OAuth/Models/RecordManagers/Client.php: -------------------------------------------------------------------------------- 1 | Hubleto Cloud > Billing accounts 2 | 3 | -------------------------------------------------------------------------------- /apps/Documents/Views/Folders.twig: -------------------------------------------------------------------------------- 1 |

{{ translate("Folders") }}

2 | 3 | 7 | -------------------------------------------------------------------------------- /apps/EventFeedback/Views/Contacts.twig: -------------------------------------------------------------------------------- 1 |

EventFeedback > Contacts

2 | 3 | -------------------------------------------------------------------------------- /apps/OAuth/Models/RecordManagers/AuthCode.php: -------------------------------------------------------------------------------- 1 | {{ translate('Projects') }} > Contacts 2 | 3 | -------------------------------------------------------------------------------- /apps/Api/Views/Keys.twig: -------------------------------------------------------------------------------- 1 |

API > Keys

2 | 3 | -------------------------------------------------------------------------------- /apps/Issues/Views/MailAccounts.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Issues') }} > Mail accounts

2 | 3 | -------------------------------------------------------------------------------- /apps/Mail/Views/Accounts.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Mail') }} > Accounts

2 | 3 | 7 | -------------------------------------------------------------------------------- /apps/OAuth/Models/RecordManagers/AccessToken.php: -------------------------------------------------------------------------------- 1 | {{ translate('Settings') }} > {{ translate('Tags') }} 2 | 3 | -------------------------------------------------------------------------------- /apps/Customers/Views/Tags.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Customers') }} > {{ translate('Tags') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/EventRegistrations/Views/Contacts.twig: -------------------------------------------------------------------------------- 1 |

EventRegistrations > Contacts

2 | 3 | -------------------------------------------------------------------------------- /apps/Notifications/Views/Notifications.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Notifications') }}

2 | 3 |
4 | 5 |
-------------------------------------------------------------------------------- /apps/OAuth/Models/RecordManagers/RefreshToken.php: -------------------------------------------------------------------------------- 1 | API > Usages 2 | 3 | -------------------------------------------------------------------------------- /apps/Campaigns/Models/RecordManagers/RecipientStatus.php: -------------------------------------------------------------------------------- 1 | {{ translate('Settings') }} > {{ translate('Users') }} 2 | 3 | 7 | -------------------------------------------------------------------------------- /apps/Warehouses/Models/RecordManagers/WarehouseType.php: -------------------------------------------------------------------------------- 1 | Events > Types 2 | 3 | -------------------------------------------------------------------------------- /apps/Invoices/Views/Profiles.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Invoices') }} > {{ translate('Profiles') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Settings/Views/Companies.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Settings') }} > {{ translate('Companies') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Settings/Views/Countries.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Settings') }} > {{ translate('Countries') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Warehouses/Views/LocationTypes.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Warehouses') }} > Location types

2 | 3 | -------------------------------------------------------------------------------- /lang/de/hubleto-app-community-reports-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Reports": "Berichte", 4 | "Free report generator app.": "Kostenlose Berichtgenerator App." 5 | }, 6 | "Controllers\\Home": { 7 | "Reports": "Berichte" 8 | } 9 | } -------------------------------------------------------------------------------- /apps/Events/Views/Events.twig: -------------------------------------------------------------------------------- 1 |

Events > Events

2 | 3 | -------------------------------------------------------------------------------- /apps/Events/Views/Settings.twig: -------------------------------------------------------------------------------- 1 |

Events > Settings

2 | 3 | 4 | 5 | Event types 6 | -------------------------------------------------------------------------------- /apps/Events/Views/Venues.twig: -------------------------------------------------------------------------------- 1 |

Events > Venues

2 | 3 | -------------------------------------------------------------------------------- /apps/Leads/Views/Levels.twig: -------------------------------------------------------------------------------- 1 |

Leads > Levels

2 | 3 | -------------------------------------------------------------------------------- /apps/Settings/Views/Currencies.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Settings') }} > {{ translate('Currencies') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Shops/Views/Shops.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Shops') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Shops/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Shops 2 | appType: community 3 | sidebarGroup: retail 4 | rootUrlSlug: Shops 5 | name: Shops 6 | icon: fas fa-shop 7 | author: 8 | name: "WAI.blue" 9 | nick: "wai.blue" 10 | highlight: Retail shop management 11 | -------------------------------------------------------------------------------- /apps/Tasks/Views/Tasks.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Tasks') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Warehouses/Models/RecordManagers/LocationType.php: -------------------------------------------------------------------------------- 1 | {{ translate('Warehouses') }} > Warehouse types 2 | 3 | -------------------------------------------------------------------------------- /apps/Desktop/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Desktop 2 | appType: community 3 | rootUrlSlug: desktop 4 | name: Desktop 5 | icon: fas fa-home 6 | author: 7 | name: "WAI.blue" 8 | company: "wai.blue" 9 | highlight: Default Hubleto desktop implementation. 10 | -------------------------------------------------------------------------------- /apps/Events/Views/Agendas.twig: -------------------------------------------------------------------------------- 1 |

Events > Agendas

2 | 3 | -------------------------------------------------------------------------------- /apps/Leads/Views/Leads.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Leads') }}

2 | 3 | 8 | -------------------------------------------------------------------------------- /lang/sk/hubleto-app-community-tools-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Tools": "Nástroje", 4 | "Management of internal maintenance tools.": "Správa nástrojov na údržbu" 5 | }, 6 | "Controllers\\Dashboard": { 7 | "Tools": "Nástroje" 8 | } 9 | } -------------------------------------------------------------------------------- /apps/About/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\About 2 | appType: community 3 | sidebarGroup: help 4 | rootUrlSlug: about 5 | name: About 6 | icon: fas fa-circle-question 7 | author: 8 | name: "WAI.blue" 9 | company: "wai.blue" 10 | highlight: About your Hubleto 11 | -------------------------------------------------------------------------------- /apps/Api/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Api 2 | appType: community 3 | sidebarGroup: maintenance 4 | rootUrlSlug: api 5 | name: Api 6 | icon: fas fa-list-check 7 | author: 8 | name: "WAI.blue" 9 | nick: "wai.blue" 10 | highlight: Hubleto Api Key management 11 | -------------------------------------------------------------------------------- /apps/Events/Views/Speakers.twig: -------------------------------------------------------------------------------- 1 |

Events > Speakers

2 | 3 | -------------------------------------------------------------------------------- /apps/Issues/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Issues 2 | appType: community 3 | sidebarGroup: productivity 4 | rootUrlSlug: issues 5 | name: Issues 6 | icon: fas fa-comment 7 | author: 8 | name: "WAI.blue" 9 | nick: "wai.blue" 10 | highlight: Issue management 11 | -------------------------------------------------------------------------------- /apps/Mail/Views/SendScheduled.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Mail') }} > Send scheduled

2 | 3 |
4 | Mails scheduled to send were sent. 5 |
6 | 7 |
{{ viewParams.log|join('\n') }}
-------------------------------------------------------------------------------- /apps/Suppliers/Views/Suppliers.twig: -------------------------------------------------------------------------------- 1 |

Suppliers

2 | 3 | -------------------------------------------------------------------------------- /.php-cs-fixer.dist.php: -------------------------------------------------------------------------------- 1 | setRules([ 8 | '@PSR12' => true, 9 | ]) 10 | ->setUsingCache(false) 11 | ->setIndent(" ") 12 | ; -------------------------------------------------------------------------------- /apps/Api/Views/Permissions.twig: -------------------------------------------------------------------------------- 1 |

API > Permissions

2 | 3 | -------------------------------------------------------------------------------- /apps/Auth/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Auth 2 | appType: community 3 | sidebarGroup: ~ 4 | rootUrlSlug: auth 5 | name: Auth 6 | icon: fas fa-user 7 | author: 8 | name: "WAI.blue" 9 | nick: "wai.blue" 10 | highlight: Hubleto Authorization App for User Management 11 | -------------------------------------------------------------------------------- /apps/Events/Views/Attendees.twig: -------------------------------------------------------------------------------- 1 |

Events > Attendees

2 | 3 | -------------------------------------------------------------------------------- /apps/Settings/Views/ActivityTypes.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Settings') }} > {{ translate('Types of activities') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Worksheets/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Worksheets 2 | appType: community 3 | sidebarGroup: crm 4 | rootUrlSlug: worksheets 5 | name: Worksheets 6 | icon: fas fa-user-clock 7 | author: 8 | name: "WAI.blue" 9 | nick: "wai.blue" 10 | highlight: Worksheet log 11 | -------------------------------------------------------------------------------- /apps/Auth/Models/RecordManagers/UserHasToken.php: -------------------------------------------------------------------------------- 1 | {{ translate('Contacts') }} 2 | 3 | -------------------------------------------------------------------------------- /apps/Discussions/Views/Members.twig: -------------------------------------------------------------------------------- 1 |

Discussions > Members

2 | 3 | -------------------------------------------------------------------------------- /apps/Events/Views/EventVenues.twig: -------------------------------------------------------------------------------- 1 |

Events > EventVenues

2 | 3 | -------------------------------------------------------------------------------- /apps/Issues/Models/RecordManagers/Issue.php: -------------------------------------------------------------------------------- 1 | {{ translate('Mail') }} 2 | 3 | 9 | -------------------------------------------------------------------------------- /apps/Products/Views/Products.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Products') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Projects/Views/Projects.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Projects') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Projects/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Projects 2 | appType: community 3 | sidebarGroup: productivity 4 | rootUrlSlug: projects 5 | name: Projects 6 | icon: fas fa-diagram-project 7 | author: 8 | name: "WAI.blue" 9 | nick: "wai.blue" 10 | highlight: Project management 11 | -------------------------------------------------------------------------------- /legal/individual/README.md: -------------------------------------------------------------------------------- 1 | # Individual Corporate License Agreements (ICLA) 2 | 3 | This folder contains ICLA of all individual Hubleto contributors. 4 | 5 | To become a contributor, you must sign an ICLA. Read [this article](https://developer.hubleto.com/licenses/contributor/individual) on how to sign. -------------------------------------------------------------------------------- /apps/Billing/Lang/fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": { 3 | "Billing": "Facturation", 4 | "Billing Accounts": "Comptes de facturation" 5 | }, 6 | "controllers.billingAccounts": { 7 | "Customers": "Clients", 8 | "Billing Accounts": "Comptes de facturation" 9 | } 10 | } -------------------------------------------------------------------------------- /apps/Billing/Lang/pl.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": { 3 | "Billing": "Rozliczenia", 4 | "Billing Accounts": "Konta do fakturowania" 5 | }, 6 | "controllers.billingAccounts": { 7 | "Customers": "Klienci", 8 | "Billing Accounts": "Konta do fakturowania" 9 | } 10 | } -------------------------------------------------------------------------------- /apps/Discussions/Views/Messages.twig: -------------------------------------------------------------------------------- 1 |

Discussions > Messages

2 | 3 | -------------------------------------------------------------------------------- /apps/Leads/Views/LeadsArchive.twig: -------------------------------------------------------------------------------- 1 |

Archived leads

2 | 3 | -------------------------------------------------------------------------------- /apps/Campaigns/Views/Campaigns.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Campaigns') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Customers/Views/Customers.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Customers') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Events/Views/EventSpeakers.twig: -------------------------------------------------------------------------------- 1 |

Events > EventSpeakers

2 | 3 | -------------------------------------------------------------------------------- /apps/Mail/Models/RecordManagers/Template.php: -------------------------------------------------------------------------------- 1 | {{ translate('Projects') }} > Phases 2 | 3 | -------------------------------------------------------------------------------- /apps/Suppliers/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Suppliers 2 | appType: community 3 | sidebarGroup: sales,retail 4 | rootUrlSlug: suppliers 5 | name: Suppliers 6 | icon: fas fa-truck-fast 7 | author: 8 | name: "WAI.blue" 9 | nick: "wai.blue" 10 | highlight: List of product suppliers 11 | -------------------------------------------------------------------------------- /apps/Usage/Views/Home.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Usage') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Worksheets/Views/Activities.twig: -------------------------------------------------------------------------------- 1 |

Worksheets > Activities

2 | 3 | -------------------------------------------------------------------------------- /src/Emails/EmailWrapper.php: -------------------------------------------------------------------------------- 1 | {{ translate("Documents") }} 2 | 3 | 8 | -------------------------------------------------------------------------------- /apps/Events/Views/EventAttendees.twig: -------------------------------------------------------------------------------- 1 |

Events > EventAttendees

2 | 3 | -------------------------------------------------------------------------------- /apps/Warehouses/Views/Warehouses.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Warehouses') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Calendar/Views/Calendar.twig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/Dashboards/Views/DashboardsManage.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Dashboards') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Deals/Views/DealsArchive.twig: -------------------------------------------------------------------------------- 1 |

{{ translate(Archived deals) }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Discussions/Views/Discussions.twig: -------------------------------------------------------------------------------- 1 |

Discussions > Discussions

2 | 3 | -------------------------------------------------------------------------------- /apps/Invoices/Views/Items.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Invoices') }} > {{ translate('Items') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Notifications/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Notifications 2 | appType: community 3 | sidebarGroup: maintenance 4 | rootUrlSlug: notifications 5 | name: Notifications 6 | icon: fas fa-bell 7 | author: 8 | name: "WAI.blue" 9 | company: "wai.blue" 10 | highlight: Internal team notifications 11 | -------------------------------------------------------------------------------- /apps/Settings/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Settings 2 | appType: community 3 | sidebarGroup: maintenance 4 | rootUrlSlug: settings 5 | name: Settings 6 | icon: fas fa-sliders 7 | author: 8 | name: "WAI.blue" 9 | company: "wai.blue" 10 | highlight: Settings and control panel for your Hubleto. 11 | -------------------------------------------------------------------------------- /apps/Tools/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Tools 2 | appType: community 3 | sidebarGroup: maintenance 4 | rootUrlSlug: tools 5 | name: Tools 6 | icon: fas fa-screwdriver-wrench 7 | author: 8 | name: "WAI.blue" 9 | company: "wai.blue" 10 | highlight: Management of internal maintenance tools. 11 | -------------------------------------------------------------------------------- /cli/Agent/CommandHelp.php: -------------------------------------------------------------------------------- 1 | terminal()->cyan((string) file_get_contents(__DIR__ . "/help.md")); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /apps/Cloud/Models/RecordManagers/Log.php: -------------------------------------------------------------------------------- 1 | {{ translate('Mail') }} > Sent 4 | 5 | 11 | -------------------------------------------------------------------------------- /apps/Orders/Views/Orders.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Orders') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Usage/Models/RecordManagers/Log.php: -------------------------------------------------------------------------------- 1 | {{ translate('Cashdesk') }} > {{ translate('Receipts') }} 2 | 3 | -------------------------------------------------------------------------------- /apps/Developer/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Developer 2 | appType: community 3 | sidebarGroup: - 4 | rootUrlSlug: developer 5 | name: Developer 6 | icon: fas fa-screwdriver-wrench 7 | author: 8 | name: "WAI.blue" 9 | nick: "wai.blue" 10 | highlight: Developer tools to automate your Hubleto development 11 | -------------------------------------------------------------------------------- /apps/Events/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Events 2 | appType: community 3 | sidebarGroup: events 4 | rootUrlSlug: events 5 | name: Events 6 | icon: fas fa-people-group 7 | author: 8 | name: "WAI.blue" 9 | nick: "wai.blue" 10 | highlight: App generated by Hubleto CLI agent. 11 | created: 2025-06-26 10:06:17 -------------------------------------------------------------------------------- /apps/Products/Views/Groups.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Products') }} > {{ translate('Groups') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Tasks/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Tasks 2 | appType: community 3 | sidebarGroup: crm 4 | rootUrlSlug: tasks 5 | name: Tasks 6 | icon: fas fa-list-check 7 | author: 8 | name: "WAI.blue" 9 | nick: "wai.blue" 10 | highlight: Task management app 11 | requires: 12 | - Hubleto\App\Community\Workflow 13 | -------------------------------------------------------------------------------- /apps/Worksheets/Views/ActivityTypes.twig: -------------------------------------------------------------------------------- 1 |

Worksheets > ActivityTypes

2 | 3 | -------------------------------------------------------------------------------- /legal/individual/rindo789.md: -------------------------------------------------------------------------------- 1 | Slovakia, 16.1.2025 2 | 3 | I hereby agree to the terms of the Hubleto Individual Contributor License Agreement v1.0. 4 | 5 | I declare that I am authorized and able to make this agreement and sign this declaration. 6 | 7 | Signed, Richard Ondrejka, richard.ondrejka@wai.blue, https://github.com/rindo789 -------------------------------------------------------------------------------- /apps/Api/Controllers/Home.php: -------------------------------------------------------------------------------- 1 | setView('@Hubleto:App:Community:Api/Home.twig'); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /apps/Api/Controllers/Keys.php: -------------------------------------------------------------------------------- 1 | setView('@Hubleto:App:Community:Api/Keys.twig'); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /apps/Cloud/Models/RecordManagers/Credit.php: -------------------------------------------------------------------------------- 1 | {{ translate('Workflow') }} > {{ translate('History') }} 2 | 3 | -------------------------------------------------------------------------------- /apps/Workflow/Views/Workflows.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Settings') }} > {{ translate('Workflows') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Workflow/Workflow.php: -------------------------------------------------------------------------------- 1 | setView('@Hubleto:App:Community:Api/Usages.twig'); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /apps/Cloud/Models/RecordManagers/Discount.php: -------------------------------------------------------------------------------- 1 | {{ translate('Invoices') }} 2 | 3 | -------------------------------------------------------------------------------- /apps/Mail/Views/Templates.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Mail') }} > Templates

2 | 3 | 9 | -------------------------------------------------------------------------------- /apps/Shops/Controllers/Shops.php: -------------------------------------------------------------------------------- 1 | setView('@Hubleto:App:Community:Shops/Shops.twig'); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /apps/Warehouses/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Warehouses 2 | appType: community 3 | sidebarGroup: retail 4 | rootUrlSlug: warehouses 5 | name: Warehouses 6 | icon: fas fa-warehouse 7 | author: 8 | name: "WAI.blue" 9 | nick: "wai.blue" 10 | highlight: Management of individual warehouses or storage facilities. 11 | -------------------------------------------------------------------------------- /legal/individual/dusan-daniska.md: -------------------------------------------------------------------------------- 1 | Slovakia, 14.1.2025 2 | 3 | I hereby agree to the terms of the Hubleto Individual Contributor License Agreement v1.0. 4 | 5 | I declare that I am authorized and able to make this agreement and sign this declaration. 6 | 7 | Signed, Dusan Daniska, dusan.daniska@gmail.com, https://github.com/dusan-daniska 8 | -------------------------------------------------------------------------------- /apps/Campaigns/Views/Recipients.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Campaigns') }} > {{ translate('Recipients') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Discussions/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Discussions 2 | appType: community 3 | sidebarGroup: communication 4 | rootUrlSlug: discussions 5 | name: Discussions 6 | icon: fas fa-list-check 7 | author: 8 | name: "WAI.blue" 9 | nick: "wai.blue" 10 | highlight: Discussion management app 11 | created: 2025-06-25 18:55:11 -------------------------------------------------------------------------------- /apps/Warehouses/Views/Locations.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Warehouses') }} > {{ translate('Locations') }}

2 | 3 | -------------------------------------------------------------------------------- /tests/GeneralTest.php: -------------------------------------------------------------------------------- 1 | assertInstanceOf(\Hubleto\Erp\Loader::class, $hubleto); 11 | } 12 | } -------------------------------------------------------------------------------- /apps/Cloud/Views/MakePayment.twig: -------------------------------------------------------------------------------- 1 | 2 |

Make payment

3 | 4 | You ran out of credit. Please make a payment. 5 | 6 | 7 | 8 | TEST: Make random payment 9 | 10 | -------------------------------------------------------------------------------- /apps/EventFeedback/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\EventFeedback 2 | appType: community 3 | sidebarGroup: events 4 | rootUrlSlug: events-feedback 5 | name: Feedback 6 | icon: fas fa-comment 7 | author: 8 | name: "WAI.blue" 9 | nick: "wai.blue" 10 | highlight: App generated by Hubleto CLI agent. 11 | created: 2025-06-26 10:07:16 -------------------------------------------------------------------------------- /apps/Products/Views/Categories.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Products') }} > {{ translate('Categories') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Settings/Controllers/Config.php: -------------------------------------------------------------------------------- 1 | setView('@Hubleto:App:Community:Settings/Config.twig'); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /apps/Settings/Controllers/General.php: -------------------------------------------------------------------------------- 1 | setView('@Hubleto:App:Community:Settings/General.twig'); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /apps/Worksheets/Controllers/Home.php: -------------------------------------------------------------------------------- 1 | setView('@Hubleto:App:Community:Worksheets/Home.twig'); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /lang/de/hubleto-app-community-help-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Help": "Helfen", 4 | "Help and user guide for Hubleto.": "Hilfe und Benutzerhandbuch für Hubleto." 5 | }, 6 | "Controllers\\Help": { 7 | "Help center": "Hilfezentrum", 8 | "About your Hubleto": "Über Ihren Hubleto" 9 | } 10 | } -------------------------------------------------------------------------------- /apps/Api/Controllers/Permissions.php: -------------------------------------------------------------------------------- 1 | setView('@Hubleto:App:Community:Api/Permissions.twig'); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /apps/Cashdesk/Views/CashRegisters.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Cashdesk') }} > {{ translate('Cash registers') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Deals/Extendibles/ProductTypes.php: -------------------------------------------------------------------------------- 1 | 'deal.identifier', 11 | 11 => 'deal.price_excl_vat', 12 | ]; 13 | } 14 | 15 | } -------------------------------------------------------------------------------- /apps/Developer/Views/UpgradeModels.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Developer tools') }} > {{ translate('Upgrade models') }}

2 | 3 | {% if viewParams.logs|length > 0 %} 4 |
{{ viewParams.logs|join('\n') }}
5 | {% else %} 6 |
No upgrades found.
7 | {% endif %} 8 | -------------------------------------------------------------------------------- /apps/Documents/Views/Templates.twig: -------------------------------------------------------------------------------- 1 |

{{ translate("Documents") }} > {{ translate("Templates") }}

2 | 3 | 8 | -------------------------------------------------------------------------------- /apps/Support/Controllers/Dashboard.php: -------------------------------------------------------------------------------- 1 | setView('@Hubleto:App:Community:Support/Dashboard.twig'); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /apps/Cloud/Controllers/MakePayment.php: -------------------------------------------------------------------------------- 1 | setView('@Hubleto:App:Community:Cloud/MakePayment.twig'); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /apps/Deals/Extendibles/ContextHelp.php: -------------------------------------------------------------------------------- 1 | [ 11 | 'en' => 'en/apps/community/deals', 12 | ], 13 | ]; 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /apps/Deals/Extendibles/MailTemplateVariables.php: -------------------------------------------------------------------------------- 1 | [ 11 | 'en' => 'en/apps/community/leads', 12 | ], 13 | ]; 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /apps/Settings/Models/RecordManagers/Company.php: -------------------------------------------------------------------------------- 1 | setView('@Hubleto:App:Community:Cloud/BillingAccounts.twig'); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /apps/Orders/Views/Payments.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Orders') }} > {{ translate('Payments') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Settings/Models/RecordManagers/Setting.php: -------------------------------------------------------------------------------- 1 | {{ translate('Warehouses') }} > {{ translate('Inventory') }} 2 | 3 | -------------------------------------------------------------------------------- /apps/Calendar/Extendibles/ContextHelp.php: -------------------------------------------------------------------------------- 1 | [ 11 | 'en' => 'en/apps/community/calendar', 12 | ], 13 | ]; 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /apps/Settings/Views/Config.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Settings') }} > {{ translate('Platform config') }}

2 | 3 | -------------------------------------------------------------------------------- /cli/Agent/Code/ListTemplates.php: -------------------------------------------------------------------------------- 1 | terminal()->cyan("Templates for `code generate`:\n"); 10 | $this->terminal()->cyan(" Model - generate model to specified app\n"); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /apps/Customers/Extendibles/ContextHelp.php: -------------------------------------------------------------------------------- 1 | [ 11 | 'en' => 'en/apps/community/customers', 12 | ], 13 | ]; 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /cli/Templates/app/manifest.yaml.twig: -------------------------------------------------------------------------------- 1 | namespace: {{ appNamespace }} 2 | appType: {{ appType }} 3 | monthlyPricePerUser: 0 4 | sidebarGroup: custom 5 | rootUrlSlug: {{ appRootUrlSlug }} 6 | name: {{ appName }} 7 | icon: fas fa-home 8 | author: 9 | name: "Hubleto CLI Agent" 10 | nick: "hubleto.cli" 11 | highlight: App generated by Hubleto CLI agent. 12 | created: {{ now }} -------------------------------------------------------------------------------- /apps/Desktop/Types/Board.php: -------------------------------------------------------------------------------- 1 | title = $title; 13 | $this->boardUrlSlug = $boardUrlSlug; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /apps/OAuth/Entities/UserEntity.php: -------------------------------------------------------------------------------- 1 | {{ translate('Tools') }} 2 | 3 |
4 | {% for tool in viewParams.tools %} 5 | 6 | 7 | {{ tool.title }} 8 | 9 | {% endfor %} 10 |
11 | -------------------------------------------------------------------------------- /lang/de/hubleto-app-community-developer-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Developer": "Entwickler", 4 | "Developer tools to automate your Hubleto development": "Entwicklerwerkzeuge zur Automatisierung deiner Hubleto-Entwicklung", 5 | "Developer tools": "" 6 | }, 7 | "root": { 8 | "Developer tools": "Entwicklerwerkzeuge" 9 | } 10 | } -------------------------------------------------------------------------------- /apps/Billing/Lang/sk.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": { 3 | "Billing": "Účtovanie", 4 | "Billing Accounts": "Účty" 5 | }, 6 | "controllers.billingAccounts": { 7 | "Customers": "Zákazníci", 8 | "Billing Accounts": "Účty" 9 | }, 10 | "controllers.billingaccounts": { 11 | "Customers": "", 12 | "Billing Accounts": "" 13 | } 14 | } -------------------------------------------------------------------------------- /apps/Auth/Models/RecordManagers/Token.php: -------------------------------------------------------------------------------- 1 | {{ translate('Campaigns') }} > {{ translate('Recipients') }} > {{ translate('Statuses') }} 2 | 3 | -------------------------------------------------------------------------------- /lang/ro/hubleto-app-community-usage-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Usage": "", 4 | "Usage statistics": "" 5 | }, 6 | "root": { 7 | "Usage log": "" 8 | }, 9 | "Models\\Log": { 10 | "Time": "", 11 | "IP": "", 12 | "Route": "", 13 | "Params": "", 14 | "Message": "", 15 | "User": "" 16 | } 17 | } -------------------------------------------------------------------------------- /apps/Deals/Models/RecordManagers/Tag.php: -------------------------------------------------------------------------------- 1 | _testRouteContainsAppMainTitle('help'); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /apps/Leads/Models/RecordManagers/Tag.php: -------------------------------------------------------------------------------- 1 | {{ translate('Warehouses') }} > {{ translate('Transactions') }} > {{ translate('Items') }} 2 | 3 | -------------------------------------------------------------------------------- /apps/Warehouses/Views/Transactions.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Warehouses') }} > {{ translate('Transactions') }}

2 | 3 | -------------------------------------------------------------------------------- /apps/Contacts/Models/RecordManagers/Tag.php: -------------------------------------------------------------------------------- 1 | {{ translate('Settings') }} > {{ translate('Theme') }} 2 | 3 |
4 | {% for theme in viewParams.themes %} 5 | 6 | {{ theme }} 7 | 8 | {% endfor %} 9 |
-------------------------------------------------------------------------------- /apps/CalendarSync/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\CalendarSync 2 | appType: community 3 | rootUrlSlug: settings/calendar-sources 4 | name: Calendar Sync 5 | icon: fas fa-calendar 6 | highlight: Calendar syncing app (Google calendars, .ics calendars and more) 7 | author: 8 | name: "Michal Barnas" 9 | nick: "mrgopes" 10 | company: "wai.blue" 11 | github: "https://github.com/mrgopes" 12 | -------------------------------------------------------------------------------- /apps/Customers/Models/RecordManagers/Tag.php: -------------------------------------------------------------------------------- 1 | $this->app->translate('Usage log'), 12 | 'icon' => 'fas fa-chart-bar', 13 | 'url' => 'usage/log', 14 | ] 15 | ]; 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /lang/cs/hubleto-app-community-about-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Help": "Pomoc", 4 | "Help and user guide for Hubleto.": "Nápověda a uživatelská příručka pro Hubleto.", 5 | "About": "O Hubleto", 6 | "About your Hubleto": "O Vašem Hubleto" 7 | }, 8 | "Controllers\\About": { 9 | "About": "O Hubleto", 10 | "About your Hubleto": "O Vašem Hubleto" 11 | } 12 | } -------------------------------------------------------------------------------- /apps/Campaigns/Extendibles/MailTemplateVariables.php: -------------------------------------------------------------------------------- 1 | config()->saveForUser('legalDocumentsAccepted', date('Y-m-d H:i:s')); 10 | $this->router()->redirectTo(''); 11 | return []; 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /apps/Contacts/Models/RecordManagers/Category.php: -------------------------------------------------------------------------------- 1 | viewParams['idPanel'] = $this->router()->urlParamAsInteger('idPanel'); 12 | $this->viewParams['configuration'] = $this->router()->urlParamAsArray('configuration'); 13 | } 14 | } -------------------------------------------------------------------------------- /apps/Documents/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Documents 2 | appType: community 3 | sidebarGroup: crm 4 | rootUrlSlug: documents 5 | name: Documents 6 | icon: fa-regular fa-file 7 | author: 8 | name: "Richard Ondrejka" 9 | nick: "rindo" 10 | company: "wai.blue" 11 | github: "https://github.com/rindo789" 12 | linkedin: "https://www.linkedin.com/in/richard-ondrejka/" 13 | highlight: Free document management. 14 | -------------------------------------------------------------------------------- /apps/Settings/Models/RecordManagers/ActivityType.php: -------------------------------------------------------------------------------- 1 | $this->app->translate('Developer tools'), 12 | 'icon' => 'fas fa-screwdriver-wrench', 13 | 'url' => 'developer', 14 | ] 15 | ]; 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /apps/OAuth/Entities/RefreshTokenEntity.php: -------------------------------------------------------------------------------- 1 | appManager()->sanitizeAppNamespace((string) ($this->arguments[3] ?? '')); 10 | 11 | $this->appManager()->disableApp($appNamespace); 12 | $this->terminal()->cyan("{$appNamespace} disabled successfully.\n"); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /lang/fr/hubleto-app-community-deals-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": { 3 | "Deals": "Accords de vente", 4 | "Deals Archive": "Archive des accords de vente" 5 | }, 6 | "controllers.deals": { 7 | "Sales": "Ventes", 8 | "Deals": "Accords de vente" 9 | }, 10 | "controllers.dealsArchive": { 11 | "Sales": "Ventes", 12 | "Deals": "Accords de vente", 13 | "Archive": "Archive" 14 | } 15 | } -------------------------------------------------------------------------------- /lang/ro/hubleto-app-community-documents-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Documents": "", 4 | "Free document management.": "" 5 | }, 6 | "root": { 7 | "Browse": "", 8 | "List": "" 9 | }, 10 | "Models\\Document": { 11 | "Uid": "", 12 | "Folder": "", 13 | "Document name": "", 14 | "File": "", 15 | "File Link": "", 16 | "Origin Link": "" 17 | } 18 | } -------------------------------------------------------------------------------- /apps/Deals/Views/WorkflowItemDetail.twig: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
{{ item.CUSTOMER.name }}
5 |
{{ item.identifier }} {{ item.title }}
6 |
{{ item.OWNER.email }}
7 |
8 |
9 |
10 | -------------------------------------------------------------------------------- /apps/Orders/Views/WorkflowItemDetail.twig: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
{{ item.CUSTOMER.name }}
5 |
{{ item.identifier }} {{ item.title }}
6 |
{{ item.OWNER.email }}
7 |
8 |
9 |
10 | -------------------------------------------------------------------------------- /apps/Calendar/Views/Settings.twig: -------------------------------------------------------------------------------- 1 |
2 |

{{ translate('Calendar: Settings') }}

3 | {% if viewParams.settingsSaved %} 4 |
{{ translate('Settings saved.') }}
5 | {% endif %} 6 |
7 | 8 | -------------------------------------------------------------------------------- /lang/cs/hubleto-app-community-usage-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Usage": "Používání", 4 | "Usage statistics": "Statistiky použití" 5 | }, 6 | "root": { 7 | "Usage log": "Záznam použití" 8 | }, 9 | "Models\\Log": { 10 | "Time": "Čas", 11 | "IP": "IP", 12 | "Route": "Trasa", 13 | "Params": "Parametry", 14 | "Message": "Zpráva", 15 | "User": "Uživatel" 16 | } 17 | } -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "moduleResolution": "node", 4 | "esModuleInterop": true, 5 | "jsx": "react-jsx", 6 | "preserveSymlinks": true, 7 | "baseUrl": ".", 8 | "paths": { 9 | "@hubleto/apps/*": ["./apps/*"], 10 | "@hubleto/react-ui/*": ["../react-ui/*"], 11 | "*": ["../react-ui/node_modules/*"], 12 | }, 13 | "lib": [ 14 | "es2017", 15 | ], 16 | }, 17 | "include": ["./**/*"] 18 | } -------------------------------------------------------------------------------- /apps/Calendar/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Calendar 2 | appType: community 3 | sidebarGroup: crm 4 | rootUrlSlug: calendar 5 | name: Calendar 6 | icon: fas fa-calendar-days 7 | author: 8 | name: "Dusan Daniska" 9 | nick: "shoki" 10 | company: "wai.blue" 11 | github: "https://github.com/dusan-daniska" 12 | linkedin: "https://www.linkedin.com/in/dusan-daniska" 13 | highlight: Free calendar app. 14 | tags: 15 | - calendar 16 | - event 17 | -------------------------------------------------------------------------------- /apps/Workflow/Extendibles/AppMenu.php: -------------------------------------------------------------------------------- 1 | $this->app, 12 | 'url' => 'workflow/history', 13 | 'title' => $this->app->translate('History'), 14 | 'icon' => 'fas fa-envelope', 15 | ], 16 | ]; 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /apps/Mail/Views/Mails.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Mail') }}

2 | 3 |
4 |
5 |
{{ viewParams.mailbox.name }}
6 |
7 | 11 |
12 |
13 |
-------------------------------------------------------------------------------- /lang/de/hubleto-app-community-usage-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Usage": "Verwendung", 4 | "Usage statistics": "Nutzungsstatistik" 5 | }, 6 | "root": { 7 | "Usage log": "Nutzungsprotokoll" 8 | }, 9 | "Models\\Log": { 10 | "Time": "Zeit", 11 | "IP": "IP", 12 | "Route": "Route", 13 | "Params": "Parameter", 14 | "Message": "Nachricht", 15 | "User": "Benutzer" 16 | } 17 | } -------------------------------------------------------------------------------- /lang/fr/hubleto-app-community-leads-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "loaders": { 3 | "Leads": "Clients potentiels", 4 | "Leads Archive": "Archive de clients potentiels" 5 | }, 6 | "controllers.leads": { 7 | "Sales": "Ventes", 8 | "Leads": "Archive de clients potentiels" 9 | }, 10 | "controllers.leadsArchive": { 11 | "Sales": "Ventes", 12 | "Leads": "Clients potentiels", 13 | "Archive": "Archive" 14 | } 15 | } -------------------------------------------------------------------------------- /lang/sk/hubleto-app-community-usage-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Usage": "Používanie", 4 | "Usage statistics": "Štatistiky používania" 5 | }, 6 | "root": { 7 | "Usage log": "Záznamy používania" 8 | }, 9 | "Models\\Log": { 10 | "Time": "Čas", 11 | "IP": "Ip", 12 | "Route": "Cesta", 13 | "Params": "Parametre", 14 | "Message": "Správa", 15 | "User": "Užívateľ" 16 | } 17 | } -------------------------------------------------------------------------------- /lang/pl/hubleto-app-community-usage-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Usage": "Stosowanie", 4 | "Usage statistics": "Statystyka użytkowania" 5 | }, 6 | "root": { 7 | "Usage log": "Dziennik użytkowania" 8 | }, 9 | "Models\\Log": { 10 | "Time": "Czas", 11 | "IP": "Ip", 12 | "Route": "Trasa", 13 | "Params": "Params", 14 | "Message": "Wiadomość", 15 | "User": "Użytkownik" 16 | } 17 | } -------------------------------------------------------------------------------- /lang/sk/hubleto-app-community-notifications-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Notifications": "Notifikácie", 4 | "Internal team notifications": "" 5 | }, 6 | "Models\\Notification": { 7 | "Priority": "", 8 | "Category": "", 9 | "From": "", 10 | "To": "", 11 | "Subject": "", 12 | "Body": "", 13 | "Color": "", 14 | "Tags": "", 15 | "Sent": "", 16 | "Read": "" 17 | } 18 | } -------------------------------------------------------------------------------- /apps/Api/Models/RecordManagers/Key.php: -------------------------------------------------------------------------------- 1 | */ 12 | public function PERMISSIONS(): HasMany { 13 | return $this->hasMany(Permission::class, 'id_key', 'id' ); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /apps/Contacts/Loader.tsx: -------------------------------------------------------------------------------- 1 | import HubletoApp from '@hubleto/react-ui/ext/HubletoApp' 2 | import TableContacts from "./Components/TableContacts" 3 | 4 | class ContactsApp extends HubletoApp { 5 | init() { 6 | super.init(); 7 | 8 | // register react components 9 | globalThis.main.registerReactComponent('ContactsTableContacts', TableContacts); 10 | } 11 | } 12 | 13 | // register app 14 | globalThis.main.registerApp('Hubleto/App/Community/Contacts', new ContactsApp()); 15 | -------------------------------------------------------------------------------- /apps/Mail/Models/RecordManagers/Account.php: -------------------------------------------------------------------------------- 1 | */ 13 | public function MAILBOXES(): HasMany 14 | { 15 | return $this->hasMany(Mailbox::class, 'id_account', 'id'); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /apps/Calendar/Controllers/Api/GetSharedCalendars.php: -------------------------------------------------------------------------------- 1 | get(['calendar', 'share_key'])->toArray(); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /apps/Mail/Models/RecordManagers/Mailbox.php: -------------------------------------------------------------------------------- 1 | */ 13 | public function ACCOUNT(): BelongsTo { 14 | return $this->belongsTo(Account::class, 'id_account', 'id'); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /apps/Orders/Models/RecordManagers/History.php: -------------------------------------------------------------------------------- 1 | */ 12 | public function ORDER(): BelongsTo 13 | { 14 | return $this->belongsTo(Order::class, 'id_order', 'id'); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /apps/Customers/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Customers 2 | appType: community 3 | sidebarGroup: crm 4 | rootUrlSlug: customers 5 | name: Customers 6 | icon: fas fa-address-card 7 | author: 8 | name: "Richard Ondrejka" 9 | nick: "rindo" 10 | company: "wai.blue" 11 | github: "https://github.com/rindo789" 12 | linkedin: "https://www.linkedin.com/in/richard-ondrejka/" 13 | highlight: Free customer management and addressbook. 14 | tags: 15 | - customers 16 | - contacts 17 | -------------------------------------------------------------------------------- /apps/Campaigns/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Campaigns 2 | appType: community 3 | sidebarGroup: marketing 4 | rootUrlSlug: campaigns 5 | name: Campaigns 6 | icon: fas fa-users-viewfinder 7 | author: 8 | company: "wai.blue" 9 | highlight: Management of marketing campaigns 10 | tags: 11 | - workflow 12 | - sales 13 | - leads 14 | - deals 15 | requires: 16 | - Hubleto\App\Community\Customers 17 | - Hubleto\App\Community\Calendar 18 | - Hubleto\App\Community\Workflow 19 | -------------------------------------------------------------------------------- /apps/Products/Models/RecordManagers/Category.php: -------------------------------------------------------------------------------- 1 | */ 12 | public function PARENT(): BelongsTo 13 | { 14 | return $this->belongsTo(Category::class, 'id', 'id_parent'); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /apps/Support/Loader.php: -------------------------------------------------------------------------------- 1 | router()->get([ 19 | '/^support\/?$/' => Controllers\Dashboard::class, 20 | ]); 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /apps/OAuth/Entities/AuthCodeEntity.php: -------------------------------------------------------------------------------- 1 | {{ translate('Calendar Sources') }} 2 | 3 |
4 | 5 | 6 | 7 | {{ translate('Manage Google Calendars') }} 8 |
9 |
10 | 11 | 12 | {{ translate('Manage online .ics Calendars') }} 13 | 14 | -------------------------------------------------------------------------------- /apps/Products/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Products 2 | appType: community 3 | sidebarGroup: sales 4 | rootUrlSlug: products 5 | name: Products 6 | icon: fas fa-cart-shopping 7 | author: 8 | name: "Richard Ondrejka" 9 | nick: "rindo789" 10 | company: "wai.blue" 11 | github: "https://github.com/rindo789" 12 | linkedin: "https://www.linkedin.com/in/richard-ondrejka/" 13 | highlight: Free product portfolio managment. 14 | tags: 15 | - e-commerce 16 | - products 17 | - orders 18 | -------------------------------------------------------------------------------- /apps/Warehouses/Views/Settings.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Warehouses') }} > Settings

2 | 3 | 4 | 5 | Types of warehouses 6 | 7 | 8 | 9 | 10 | Types of locations 11 | -------------------------------------------------------------------------------- /cli/Templates/app/Models/RecordManagers/Contact.php.twig: -------------------------------------------------------------------------------- 1 | belongsTo(User::class, 'id_manager', 'id'); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /lang/sk/hubleto-app-community-accounting-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Accounting": "Účtovníctvo" 4 | }, 5 | "Models\\Account": { 6 | "Account name": "Názov účtu", 7 | "Account type": "Typ účtu", 8 | "Account subtype": "Podtyp účtu", 9 | "Balance": "Aktuálny stav" 10 | }, 11 | "Models\\AccountType": { 12 | "Type title": "Typ účtu" 13 | }, 14 | "Models\\AccountSubtype": { 15 | "Subtype title": "Podtyp účtu" 16 | } 17 | } -------------------------------------------------------------------------------- /apps/Campaigns/Views/WorkflowItemDetail.twig: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
{{ item.name }}
5 |
Target: {{ item.target_audience }}
6 |
Goal: {{ item.goal }}
7 |
{{ item.OWNER.email }}
8 |
9 |
10 |
11 | 12 | -------------------------------------------------------------------------------- /apps/Cloud/Controllers/Log.php: -------------------------------------------------------------------------------- 1 | getModel(\Hubleto\App\Community\Cloud\Models\Log::class); 12 | $this->viewParams['log'] = $mLog->record->orderBy('log_datetime', 'asc')->get()?->toArray(); 13 | 14 | $this->setView('@Hubleto:App:Community:Cloud/Log.twig'); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /apps/Cashdesk/Views/Home.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Cashdesk') }}

2 | 3 | 4 | 5 | {{ translate('Cash registers') }} 6 | 7 | 8 | 9 | 10 | {{ translate('Receipts') }} 11 | -------------------------------------------------------------------------------- /apps/EventFeedback/Models/RecordManagers/Contact.php: -------------------------------------------------------------------------------- 1 | belongsTo(User::class, 'id_manager', 'id'); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /apps/Mail/Controllers/Api/MarkAsUnread.php: -------------------------------------------------------------------------------- 1 | router()->urlParamAsInteger('idMail'); 10 | $mMail = $this->getModel(\Hubleto\App\Community\Mail\Models\Mail::class); 11 | $mMail->record->find($idMail)->update(['datetime_read' => null]); 12 | return ['success' => true]; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /apps/Workflow/Models/RecordManagers/WorkflowStep.php: -------------------------------------------------------------------------------- 1 | */ 12 | public function WORKFLOW(): BelongsTo 13 | { 14 | return $this->belongsTo(Workflow::class, 'id_workflow', 'id'); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /apps/OAuth/Entities/AccessTokenEntity.php: -------------------------------------------------------------------------------- 1 | viewParams['now'] = date('Y-m-d H:i:s'); 13 | $this->viewParams['randomNumber'] = rand(1, 1000); 14 | 15 | $this->setView('@Hubleto:App:Community:Tasks/Tasks.twig'); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /apps/Auth/Controllers/NotEnoughPermissions.php: -------------------------------------------------------------------------------- 1 | setView('@Hubleto:App:Community:Auth/NotEnoughPermissions.twig'); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /apps/Desktop/DashboardManager.php: -------------------------------------------------------------------------------- 1 | */ 9 | protected array $boards = []; 10 | 11 | public function addBoard(\Hubleto\App\Community\Desktop\Types\Board $board): void 12 | { 13 | $this->boards[] = $board; 14 | } 15 | 16 | public function getBoards(): array 17 | { 18 | return $this->boards; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/EventRegistrations/Models/RecordManagers/Contact.php: -------------------------------------------------------------------------------- 1 | belongsTo(User::class, 'id_manager', 'id'); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /apps/Events/Controllers/Types.php: -------------------------------------------------------------------------------- 1 | viewParams['now'] = date('Y-m-d H:i:s'); 13 | $this->viewParams['randomNumber'] = rand(1, 1000); 14 | 15 | $this->setView('@Hubleto:App:Community:Events/Types.twig'); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /apps/Issues/Controllers/Issues.php: -------------------------------------------------------------------------------- 1 | 'issues', 'content' => 'Issues' ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->setView('@Hubleto:App:Community:Issues/Issues.twig'); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /apps/Leads/Controllers/Leads.php: -------------------------------------------------------------------------------- 1 | '', 'content' => $this->translate('Leads') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->setView('@Hubleto:App:Community:Leads/Leads.twig'); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /apps/Leads/Controllers/Levels.php: -------------------------------------------------------------------------------- 1 | viewParams['now'] = date('Y-m-d H:i:s'); 13 | $this->viewParams['randomNumber'] = rand(1, 1000); 14 | 15 | $this->setView('@Hubleto:App:Community:Leads/Levels.twig'); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /apps/Mail/Controllers/Api/MarkAsRead.php: -------------------------------------------------------------------------------- 1 | router()->urlParamAsInteger('idMail'); 10 | $mMail = $this->getModel(\Hubleto\App\Community\Mail\Models\Mail::class); 11 | $mMail->record->find($idMail)->update(['datetime_read' => date('Y-m-d H:i:s')]); 12 | return ['success' => true]; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /apps/Usage/Controllers/Home.php: -------------------------------------------------------------------------------- 1 | 'usage', 'content' => $this->translate('Usage') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->setView('@Hubleto:App:Community:Usage/Home.twig'); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/Hook.php: -------------------------------------------------------------------------------- 1 | viewParams['now'] = date('Y-m-d H:i:s'); 13 | $this->viewParams['randomNumber'] = rand(1, 1000); 14 | 15 | $this->setView('@Hubleto:App:Community:Events/Agendas.twig'); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /apps/Events/Controllers/Events.php: -------------------------------------------------------------------------------- 1 | viewParams['now'] = date('Y-m-d H:i:s'); 13 | $this->viewParams['randomNumber'] = rand(1, 1000); 14 | 15 | $this->setView('@Hubleto:App:Community:Events/Events.twig'); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /apps/Events/Controllers/Venues.php: -------------------------------------------------------------------------------- 1 | viewParams['now'] = date('Y-m-d H:i:s'); 13 | $this->viewParams['randomNumber'] = rand(1, 1000); 14 | 15 | $this->setView('@Hubleto:App:Community:Events/Venues.twig'); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /apps/Mail/Controllers/Sent.php: -------------------------------------------------------------------------------- 1 | 'sent', 'content' => $this->translate('Sent') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | 18 | $this->setView('@Hubleto:App:Community:Mail/Sent.twig'); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/Cloud/Controllers/DeactivateSubscriptionRenewal.php: -------------------------------------------------------------------------------- 1 | getService(PremiumAccount::class); 13 | $premiumAccount->deactivateSubscriptionRenewal(); 14 | $this->router()->redirectTo('cloud'); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /apps/Events/Controllers/Attendees.php: -------------------------------------------------------------------------------- 1 | viewParams['now'] = date('Y-m-d H:i:s'); 13 | $this->viewParams['randomNumber'] = rand(1, 1000); 14 | 15 | $this->setView('@Hubleto:App:Community:Events/Attendees.twig'); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /apps/Events/Controllers/Speakers.php: -------------------------------------------------------------------------------- 1 | viewParams['now'] = date('Y-m-d H:i:s'); 13 | $this->viewParams['randomNumber'] = rand(1, 1000); 14 | 15 | $this->setView('@Hubleto:App:Community:Events/Speakers.twig'); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /apps/Orders/Controllers/Orders.php: -------------------------------------------------------------------------------- 1 | '', 'content' => $this->translate('Orders') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->setView('@Hubleto:App:Community:Orders/Orders.twig'); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /apps/Products/Controllers/Groups.php: -------------------------------------------------------------------------------- 1 | '', 'content' => $this->translate('Groups') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->setView('@Hubleto:App:Community:Products/Groups.twig'); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /apps/Projects/Controllers/Phases.php: -------------------------------------------------------------------------------- 1 | viewParams['now'] = date('Y-m-d H:i:s'); 13 | $this->viewParams['randomNumber'] = rand(1, 1000); 14 | 15 | $this->setView('@Hubleto:App:Community:Projects/Phases.twig'); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /cli/Agent/App/ListInstalled.php: -------------------------------------------------------------------------------- 1 | appManager()->getInstalledAppNamespaces(); 10 | 11 | $this->terminal()->cyan("You have following apps installed:\n"); 12 | foreach ($appNamespaces as $appNamespace => $appConfig) { 13 | $this->terminal()->cyan(" {$appNamespace}: " . json_encode($appConfig) . "\n"); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /apps/About/Loader.php: -------------------------------------------------------------------------------- 1 | router()->get([ '/^about\/?$/' => Controllers\About::class ]); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /apps/Cloud/Controllers/ActivateSubscriptionRenewal.php: -------------------------------------------------------------------------------- 1 | getService(PremiumAccount::class); 14 | $premiumAccount->activateSubscriptionRenewal(); 15 | 16 | $this->router()->redirectTo('cloud'); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /apps/Invoices/Controllers/Items.php: -------------------------------------------------------------------------------- 1 | '', 'content' => $this->translate('Items') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->setView('@Hubleto:App:Community:Invoices/Items.twig'); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /apps/Orders/Controllers/Payments.php: -------------------------------------------------------------------------------- 1 | '', 'content' => $this->translate('Payments') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->setView('@Hubleto:App:Community:Orders/Payments.twig'); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /apps/Orders/Models/RecordManagers/OrderActivity.php: -------------------------------------------------------------------------------- 1 | */ 12 | public function ORDER(): BelongsTo 13 | { 14 | return $this->belongsTo(Order::class, 'id_order', 'id'); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /apps/Projects/Controllers/Projects.php: -------------------------------------------------------------------------------- 1 | viewParams['now'] = date('Y-m-d H:i:s'); 13 | $this->viewParams['randomNumber'] = rand(1, 1000); 14 | 15 | $this->setView('@Hubleto:App:Community:Projects/Projects.twig'); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /apps/Workflow/Controllers/Home.php: -------------------------------------------------------------------------------- 1 | 'workflow', 'content' => $this->translate('Workflow') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->setView('@Hubleto:App:Community:Workflow/Home.twig'); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /lang/cs/hubleto-app-community-help-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Help": "Pomoc", 4 | "Help and user guide for Hubleto.": "Nápověda a uživatelská příručka pro Hubleto." 5 | }, 6 | "Controllers\\Help": { 7 | "Help": "Pomoc", 8 | "Need help using Hubleto?": "Potřebujete pomoc při používaní Hubleto?", 9 | "Found a bug?": "Našli jste chybu?", 10 | "Need help with development?": "Potřebujete pomoc při vývoji?", 11 | "Just looking around?": "Jen se rozhlížíte?" 12 | } 13 | } -------------------------------------------------------------------------------- /lang/ro/hubleto-app-community-workflow-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Workflow": "", 4 | "Free sales workflow management.": "" 5 | }, 6 | "root": { 7 | "Workflows": "" 8 | }, 9 | "Models\\Workflow": { 10 | "Name": "", 11 | "Description": "" 12 | }, 13 | "Models\\WorkflowStep": { 14 | "Name": "", 15 | "Order": "", 16 | "Color": "", 17 | "Probability": "", 18 | "Workflow": "", 19 | "Set result of a deal to": "" 20 | } 21 | } -------------------------------------------------------------------------------- /src/Api/GetAppsInfo.php: -------------------------------------------------------------------------------- 1 | appManager()->getInstalledApps() as $app) { 11 | $appsInfo[$app->namespace] = [ 12 | 'manifest' => $app->manifest, 13 | 'permittedForAllUsers' => $app->permittedForAllUsers, 14 | ]; 15 | } 16 | 17 | return $appsInfo; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /apps/Billing/Loader.tsx: -------------------------------------------------------------------------------- 1 | import HubletoApp from '@hubleto/react-ui/ext/HubletoApp' 2 | import BillingTableBillingAccountService from "./Components/TableBillingAccountServices" 3 | 4 | class BillingApp extends HubletoApp { 5 | init() { 6 | super.init(); 7 | 8 | // register react components 9 | globalThis.main.registerReactComponent('BillingTableBillingAccountService', BillingTableBillingAccountService); 10 | } 11 | } 12 | 13 | // register app 14 | globalThis.main.registerApp('Hubleto/App/Community/Billing', new BillingApp()); 15 | 16 | -------------------------------------------------------------------------------- /apps/Events/Controllers/EventVenues.php: -------------------------------------------------------------------------------- 1 | viewParams['now'] = date('Y-m-d H:i:s'); 13 | $this->viewParams['randomNumber'] = rand(1, 1000); 14 | 15 | $this->setView('@Hubleto:App:Community:Events/EventVenues.twig'); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /apps/Notifications/Lang/sk.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Notifications": "Upozornenia", 4 | "Internal team notifications": "Interné upozornenia" 5 | }, 6 | "Models\\Notification": { 7 | "Priority": "Priorita", 8 | "Category": "Kategória", 9 | "From": "Odosielateľ", 10 | "To": "Príjemca", 11 | "Subject": "Predmet", 12 | "Body": "Správa", 13 | "Color": "Farba", 14 | "Tags": "Značky", 15 | "Sent": "Odoslaná", 16 | "Read": "Prečítaná" 17 | } 18 | } -------------------------------------------------------------------------------- /apps/Products/Controllers/Products.php: -------------------------------------------------------------------------------- 1 | '', 'content' => $this->translate('Products') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->setView('@Hubleto:App:Community:Products/Products.twig'); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /apps/Cashdesk/Controllers/Home.php: -------------------------------------------------------------------------------- 1 | 'cashdesk', 'content' => $this->translate('Cashdesk') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->setView('@Hubleto:App:Community:Cashdesk/Home.twig'); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /apps/Crypto/Controllers/Dashboard.php: -------------------------------------------------------------------------------- 1 | 'crypto', 'content' => $this->translate('Crypto') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->setView('@Hubleto:App:Community:Crypto/Dashboard.twig'); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /apps/Events/Controllers/EventAttendees.php: -------------------------------------------------------------------------------- 1 | viewParams['now'] = date('Y-m-d H:i:s'); 13 | $this->viewParams['randomNumber'] = rand(1, 1000); 14 | 15 | $this->setView('@Hubleto:App:Community:Events/EventAttendees.twig'); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /apps/Events/Controllers/EventSpeakers.php: -------------------------------------------------------------------------------- 1 | viewParams['now'] = date('Y-m-d H:i:s'); 13 | $this->viewParams['randomNumber'] = rand(1, 1000); 14 | 15 | $this->setView('@Hubleto:App:Community:Events/EventSpeakers.twig'); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /apps/Invoices/Controllers/Payments.php: -------------------------------------------------------------------------------- 1 | '', 'content' => $this->translate('Payments') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->setView('@Hubleto:App:Community:Invoices/Payments.twig'); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /apps/Invoices/Controllers/Profiles.php: -------------------------------------------------------------------------------- 1 | '', 'content' => $this->translate('Profiles') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->setView('@Hubleto:App:Community:Invoices/Profiles.twig'); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /apps/Products/Controllers/Categories.php: -------------------------------------------------------------------------------- 1 | '', 'content' => $this->translate('Categories') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->setView('@Hubleto:App:Community:Products/Categories.twig'); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /apps/Warehouses/Controllers/Inventory.php: -------------------------------------------------------------------------------- 1 | 'warehouses', 'content' => 'Inventory' ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->setView('@Hubleto:App:Community:Warehouses/Inventory.twig'); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /apps/Contacts/Controllers/Contacts.php: -------------------------------------------------------------------------------- 1 | '', 'content' => $this->translate('Contacts') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->setView('@Hubleto:App:Community:Contacts/Contacts.twig'); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /apps/Deals/Models/RecordManagers/DealHistory.php: -------------------------------------------------------------------------------- 1 | */ 13 | public function DEAL(): BelongsTo 14 | { 15 | return $this->belongsTo(Deal::class, 'id_deal', 'id'); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /apps/Invoices/Controllers/Invoices.php: -------------------------------------------------------------------------------- 1 | '', 'content' => $this->translate('Invoices') ], 12 | ]); 13 | } 14 | 15 | public function prepareView(): void 16 | { 17 | parent::prepareView(); 18 | $this->setView('@Hubleto:App:Community:Invoices/Invoices.twig'); 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /apps/Mail/Controllers/Accounts.php: -------------------------------------------------------------------------------- 1 | 'mail/accounts', 'content' => $this->translate('Accounts') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | 18 | $this->setView('@Hubleto:App:Community:Mail/Accounts.twig'); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/Mail/Controllers/Scheduled.php: -------------------------------------------------------------------------------- 1 | 'scheduled', 'content' => $this->translate('Scheduled') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | 18 | $this->setView('@Hubleto:App:Community:Mail/Scheduled.twig'); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/Auth/Models/RecordManagers/UserRole.php: -------------------------------------------------------------------------------- 1 | */ 13 | // public function PERMISSIONS(): HasMany { 14 | // return $this->hasMany(RolePermission::class, 'id_role', 'id' ); 15 | // } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /apps/Discussions/Controllers/Discussions.php: -------------------------------------------------------------------------------- 1 | viewParams['now'] = date('Y-m-d H:i:s'); 13 | $this->viewParams['randomNumber'] = rand(1, 1000); 14 | 15 | $this->setView('@Hubleto:App:Community:Discussions/Discussions.twig'); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /apps/Suppliers/Controllers/Suppliers.php: -------------------------------------------------------------------------------- 1 | 'suppliers', 'content' => $this->translate('Suppliers') ] 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->setView('@Hubleto:App:Community:Suppliers/Suppliers.twig'); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /apps/Auth/Views/NotEnoughPermissions.twig: -------------------------------------------------------------------------------- 1 | {% extends '@Hubleto:App:Community:Auth/layouts/Auth.twig' %} 2 | 3 | {% block status %} 4 |
5 | {{ viewParams.message }} 6 |
7 | {% endblock %} 8 | 9 | {% block inputs %} 10 | {% endblock %} 11 | 12 | {% block button %} 13 | 14 | 15 | {{ translate("Sign out") }} 16 | 17 | {% endblock %} 18 | 19 | {% block links %} 20 | {% endblock %} -------------------------------------------------------------------------------- /apps/Cloud/Controllers/Api/ActivatePremiumAccount.php: -------------------------------------------------------------------------------- 1 | getService(PremiumAccount::class); 13 | $premiumAccount->activatePremiumAccount(); 14 | $this->router()->redirectTo('cloud'); 15 | 16 | return []; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /apps/Suppliers/Models/RecordManagers/Supplier.php: -------------------------------------------------------------------------------- 1 | */ 12 | public function COUNTRY(): BelongsTo 13 | { 14 | return $this->belongsTo(Country::class, 'id_country', 'id'); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /apps/Calendar/Controllers/Api/SetInitialView.php: -------------------------------------------------------------------------------- 1 | getService(\Hubleto\App\Community\Calendar\Loader::class); 13 | 14 | $calendarApp->setInitialView($this->router()->urlParamAsString('initialView')); 15 | 16 | return ['status' => 'success']; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /apps/Campaigns/Models/RecordManagers/CampaignActivity.php: -------------------------------------------------------------------------------- 1 | */ 12 | public function CAMPAIGN(): BelongsTo 13 | { 14 | return $this->belongsTo(Campaign::class, 'id_campaign', 'id'); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /apps/Customers/Controllers/Customers.php: -------------------------------------------------------------------------------- 1 | 'customers', 'content' => $this->translate('Customers') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->setView('@Hubleto:App:Community:Customers/Customers.twig'); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /apps/Documents/Controllers/Browse.php: -------------------------------------------------------------------------------- 1 | 'documents/browse', 'content' => $this->translate('Document Browser') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->setView('@Hubleto:App:Community:Documents/Browse.twig'); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /apps/Documents/Controllers/Documents.php: -------------------------------------------------------------------------------- 1 | 'documents', 'content' => $this->translate('Documents') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->setView('@Hubleto:App:Community:Documents/Documents.twig'); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /apps/Billing/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Billing 2 | appType: community 3 | sidebarGroup: finance 4 | rootUrlSlug: billing 5 | name: Billing 6 | icon: fas fa-file-invoice-dollar 7 | author: 8 | name: "Richard Ondrejka" 9 | nick: "rindo" 10 | company: "wai.blue" 11 | github: "https://github.com/rindo789" 12 | linkedin: "https://www.linkedin.com/in/richard-ondrejka/" 13 | highlight: Management of multiple billing accounts. 14 | tags: 15 | - invoice 16 | - billing 17 | - account 18 | - currency 19 | requires: 20 | - Hubleto\App\Community\Customers -------------------------------------------------------------------------------- /apps/Calendar/Models/RecordManagers/SharedCalendar.php: -------------------------------------------------------------------------------- 1 | */ 14 | public function OWNER(): BelongsTo 15 | { 16 | return $this->belongsTo(User::class, 'id_owner', 'id'); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /apps/Campaigns/Controllers/Campaigns.php: -------------------------------------------------------------------------------- 1 | 'campaigns', 'content' => $this->translate('Campaigns') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | 18 | $this->setView('@Hubleto:App:Community:Campaigns/Campaigns.twig'); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/Campaigns/Controllers/Recipients.php: -------------------------------------------------------------------------------- 1 | 'recipients', 'content' => $this->translate('Recipients') ] 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | 18 | $this->setView('@Hubleto:App:Community:Campaigns/Recipients.twig'); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/Documents/Controllers/Templates.php: -------------------------------------------------------------------------------- 1 | 'documents/templates', 'content' => $this->translate('Templates') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->setView('@Hubleto:App:Community:Documents/Templates.twig'); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /apps/Issues/Models/RecordManagers/MailAccount.php: -------------------------------------------------------------------------------- 1 | */ 13 | public function CUSTOMER(): BelongsTo 14 | { 15 | return $this->belongsTo(Account::class, 'id_main_account', 'id'); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /apps/Orders/Controllers/Api/GetPreviewVars.php: -------------------------------------------------------------------------------- 1 | router()->urlParamAsInteger('idOrder'); 12 | 13 | /** @var Order */ 14 | $mOrder = $this->getModel(Order::class); 15 | 16 | return [ 17 | 'vars' => $mOrder->getPreviewVars($idOrder) 18 | ]; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /apps/Orders/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Orders 2 | appType: community 3 | sidebarGroup: sales 4 | rootUrlSlug: orders 5 | name: Orders 6 | icon: fas fa-money-check-dollar 7 | author: 8 | name: "Richard Ondrejka" 9 | nick: "rindo789" 10 | company: "wai.blue" 11 | github: "https://github.com/rindo789" 12 | linkedin: "https://www.linkedin.com/in/richard-ondrejka/" 13 | highlight: Free order managment. 14 | requires: 15 | - Hubleto\App\Community\Products 16 | - Hubleto\App\Community\Customers 17 | tags: 18 | - e-commerce 19 | - products 20 | - orders 21 | -------------------------------------------------------------------------------- /apps/Settings/Controllers/RolePermissions.php: -------------------------------------------------------------------------------- 1 | '', 'content' => $this->translate('Role permissions') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->setView('@Hubleto:App:Community:Settings/RolePermissions.twig'); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /apps/Dashboards/Manager.php: -------------------------------------------------------------------------------- 1 | boards; 13 | } 14 | 15 | public function addBoard(\Hubleto\Framework\Interfaces\AppInterface $app, string $title, string $boardUrlSlug): void 16 | { 17 | $this->boards[$boardUrlSlug] = [ 18 | 'app' => $app, 19 | 'title' => $title, 20 | 'boardUrlSlug' => $boardUrlSlug, 21 | ]; 22 | } 23 | 24 | } -------------------------------------------------------------------------------- /apps/Events/Controllers/Settings.php: -------------------------------------------------------------------------------- 1 | 'events', 'content' => 'Events' ], 11 | [ 'url' => 'settings', 'content' => 'Settings' ], 12 | ]); 13 | } 14 | 15 | public function prepareView(): void 16 | { 17 | parent::prepareView(); 18 | $this->setView('@Hubleto:App:Community:Events/Settings.twig'); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/Help/Controllers/Help.php: -------------------------------------------------------------------------------- 1 | 'help', 'content' => $this->translate('Help') ], 14 | ]); 15 | } 16 | 17 | public function prepareView(): void 18 | { 19 | parent::prepareView(); 20 | $this->setView('@Hubleto:App:Community:Help/Help.twig'); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /apps/Notifications/Controllers/Api/MarkAsUnread.php: -------------------------------------------------------------------------------- 1 | router()->urlParamAsInteger('idNotification'); 10 | $mNotification = $this->getModel(\Hubleto\App\Community\Notifications\Models\Notification::class); 11 | $mNotification->record->find($idNotification)->update(['datetime_read' => null]); 12 | return ['success' => true]; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /apps/Usage/Controllers/Log.php: -------------------------------------------------------------------------------- 1 | 'usage', 'content' => $this->translate('Usage') ], 11 | [ 'url' => '', 'content' => $this->translate('Log') ], 12 | ]); 13 | } 14 | 15 | public function prepareView(): void 16 | { 17 | parent::prepareView(); 18 | $this->setView('@Hubleto:App:Community:Usage/Log.twig'); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /apps/Warehouses/Controllers/Warehouses.php: -------------------------------------------------------------------------------- 1 | getService(StockStatus::class); 15 | $stockStatus->recalculateCapacityAndStockStatusOfWarehouse(1); 16 | 17 | $this->setView('@Hubleto:App:Community:Warehouses/Warehouses.twig'); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /cli/Templates/app/Controllers/Home.php.twig: -------------------------------------------------------------------------------- 1 | '{{ appRootUrlSlug }}', 'content' => '{{ appName }}' ], 12 | ]); 13 | } 14 | 15 | public function prepareView(): void 16 | { 17 | parent::prepareView(); 18 | $this->viewParams['now'] = date('Y-m-d H:i:s'); 19 | $this->setView('@{{ appViewNamespace }}/Home.twig'); 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /apps/Mail/Loader.tsx: -------------------------------------------------------------------------------- 1 | import HubletoApp from '@hubleto/react-ui/ext/HubletoApp' 2 | import TableMails from "./Components/TableMails" 3 | import TableTemplates from "./Components/TableTemplates" 4 | 5 | class MailApp extends HubletoApp { 6 | init() { 7 | super.init(); 8 | 9 | // register react components 10 | globalThis.main.registerReactComponent('MailTableMails', TableMails); 11 | globalThis.main.registerReactComponent('MailTableTemplates', TableTemplates); 12 | } 13 | } 14 | 15 | // register app 16 | globalThis.main.registerApp('Hubleto/App/Community/Mail', new MailApp()); 17 | -------------------------------------------------------------------------------- /lang/sk/hubleto-app-community-issues-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest": { 3 | "Issues": "", 4 | "Issue management": "", 5 | "Mail accounts": "" 6 | }, 7 | "root": { 8 | "Issues": "", 9 | "Mail accounts": "" 10 | }, 11 | "Controllers\\Issues": { 12 | "Issues": "" 13 | }, 14 | "Models\\Issue": { 15 | "Title": "", 16 | "Problem description": "" 17 | }, 18 | "Models\\MailAccount": { 19 | "Mail account (requires Mail app)": "", 20 | "Configuration": "", 21 | "Notes": "" 22 | } 23 | } -------------------------------------------------------------------------------- /apps/Developer/Loader.tsx: -------------------------------------------------------------------------------- 1 | // How to add any React Component to be usable in Twig templates as '' HTML tag. 2 | // -> Replace 'MyModel' with the name of your model in the examples below 3 | 4 | // 1. import the component 5 | // import TableMyModel from "./Components/TableMyModel" 6 | 7 | // 2. Register the React Component into Hubleto framework 8 | // globalThis.main.registerReactComponent('DeveloperTableMyModel', TableMyModel); 9 | 10 | // 3. Use the component in any of your Twig views: 11 | // -------------------------------------------------------------------------------- /apps/Notifications/Controllers/Api/MarkAsRead.php: -------------------------------------------------------------------------------- 1 | router()->urlParamAsInteger('idNotification'); 10 | $mNotification = $this->getModel(\Hubleto\App\Community\Notifications\Models\Notification::class); 11 | $mNotification->record->find($idNotification)->update(['datetime_read' => date('Y-m-d H:i:s')]); 12 | return ['success' => true]; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /apps/Projects/Controllers/Dashboard.php: -------------------------------------------------------------------------------- 1 | 'projects', 'content' => 'Projects' ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->viewParams['now'] = date('Y-m-d H:i:s'); 18 | $this->setView('@Hubleto:App:Community:Projects/Dashboard.twig'); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/Projects/Controllers/Settings.php: -------------------------------------------------------------------------------- 1 | 'projects', 'content' => 'Projects' ], 11 | [ 'url' => 'settings', 'content' => 'Settings' ], 12 | ]); 13 | } 14 | 15 | public function prepareView(): void 16 | { 17 | parent::prepareView(); 18 | $this->setView('@Hubleto:App:Community:Projects/Settings.twig'); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /installer/Templates/boot.php.tpl: -------------------------------------------------------------------------------- 1 | "); 5 | ini_set('error_append_string', ""); 6 | 7 | ini_set('display_errors', 1); 8 | ini_set('error_reporting', E_ALL ^ E_NOTICE ^ E_WARNING); 9 | 10 | // load configs 11 | require_once(__DIR__ . "/ConfigEnv.php"); 12 | 13 | // load autoloaders 14 | require(($config['releaseFolder'] ?? '.') . "/vendor/autoload.php"); 15 | 16 | // init main class 17 | $hubleto = new \Hubleto\Erp\Loader($config); 18 | $hubleto->init(); 19 | -------------------------------------------------------------------------------- /apps/CalendarSync/Views/ics.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Calendar Sources') }}


2 |

Online .ics Calendar


3 | 4 | 10 | -------------------------------------------------------------------------------- /apps/Developer/Views/Dashboard.twig: -------------------------------------------------------------------------------- 1 |

Developer

2 | 3 | -------------------------------------------------------------------------------- /apps/Help/Controllers/Search.php: -------------------------------------------------------------------------------- 1 | 'help', 'content' => $this->translate('Help') ], 11 | [ 'url' => 'search', 'content' => $this->translate('Search') ], 12 | ]); 13 | } 14 | 15 | public function prepareView(): void 16 | { 17 | parent::prepareView(); 18 | $this->setView('@Hubleto:App:Community:Help/Search.twig'); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/Notifications/Controllers/Notifications.php: -------------------------------------------------------------------------------- 1 | 'notifications', 'content' => $this->translate('Notifications') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | 18 | $this->setView('@Hubleto:App:Community:Notifications/Notifications.twig'); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /cli/Templates/app/Controllers/Settings.php.twig: -------------------------------------------------------------------------------- 1 | '{{ appRootUrlSlug }}', 'content' => '{{ appName }}' ], 12 | [ 'url' => 'settings', 'content' => 'Settings' ], 13 | ]); 14 | } 15 | 16 | public function prepareView(): void 17 | { 18 | parent::prepareView(); 19 | $this->setView('@{{ appViewNamespace }}/Settings.twig'); 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /src/Locale.php: -------------------------------------------------------------------------------- 1 | config()->getAsString('locale/timezone', 'Europe/London'); 20 | $userTimezone = $this->authProvider()->getUser()['timezone']; 21 | 22 | return (empty($userTimezone) ? $defaultTimezone : $userTimezone); 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /apps/Deals/Controllers/ReportGoal.php: -------------------------------------------------------------------------------- 1 | 'sales', 'content' => $this->translate('Sales') ], 11 | [ 'url' => '', 'content' => $this->translate('Goals') ], 12 | ]); 13 | } 14 | 15 | public function prepareView(): void 16 | { 17 | parent::prepareView(); 18 | $this->setView('@Hubleto:App:Community:Deals/Goals.twig'); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/Deals/Controllers/Tags.php: -------------------------------------------------------------------------------- 1 | 'settings', 'content' => $this->translate('Settings') ], 11 | [ 'url' => '', 'content' => $this->translate('Deal Tags') ], 12 | ]); 13 | } 14 | 15 | public function prepareView(): void 16 | { 17 | parent::prepareView(); 18 | $this->setView('@Hubleto:App:Community:Deals/Tags.twig'); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/Issues/Loader.tsx: -------------------------------------------------------------------------------- 1 | // How to add any React Component to be usable in Twig templates as '' HTML tag. 2 | // -> Replace 'MyModel' with the name of your model in the examples below 3 | 4 | // 1. import the component 5 | // import TableMyModel from "./Components/TableMyModel" 6 | 7 | // 2. Register the React Component into Hubleto framework 8 | // globalThis.main.registerReactComponent('EventFeedbackTableMyModel', TableMyModel); 9 | 10 | // 3. Use the component in any of your Twig views: 11 | // -------------------------------------------------------------------------------- /apps/Leads/Controllers/Tags.php: -------------------------------------------------------------------------------- 1 | 'settings', 'content' => $this->translate('Settings') ], 11 | [ 'url' => '', 'content' => $this->translate('Lead Tags') ], 12 | ]); 13 | } 14 | 15 | public function prepareView(): void 16 | { 17 | parent::prepareView(); 18 | $this->setView('@Hubleto:App:Community:Leads/Tags.twig'); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/Projects/Controllers/Contacts.php: -------------------------------------------------------------------------------- 1 | 'projects', 'content' => 'Projects' ], 11 | [ 'url' => 'projects/contacts', 'content' => 'Contacts' ], 12 | ]); 13 | } 14 | 15 | public function prepareView(): void 16 | { 17 | parent::prepareView(); 18 | $this->setView('@Hubleto:App:Community:Projects/Contacts.twig'); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/EventFeedback/Loader.tsx: -------------------------------------------------------------------------------- 1 | // How to add any React Component to be usable in Twig templates as '' HTML tag. 2 | // -> Replace 'MyModel' with the name of your model in the examples below 3 | 4 | // 1. import the component 5 | // import TableMyModel from "./Components/TableMyModel" 6 | 7 | // 2. Register the React Component into Hubleto framework 8 | // globalThis.main.registerReactComponent('EventFeedbackTableMyModel', TableMyModel); 9 | 10 | // 3. Use the component in any of your Twig views: 11 | // -------------------------------------------------------------------------------- /apps/Issues/Controllers/MailAccounts.php: -------------------------------------------------------------------------------- 1 | 'issues', 'content' => 'Issues' ], 11 | [ 'url' => 'mail-accounts', 'content' => 'Mail accounts' ], 12 | ]); 13 | } 14 | 15 | public function prepareView(): void 16 | { 17 | parent::prepareView(); 18 | $this->setView('@Hubleto:App:Community:Issues/MailAccounts.twig'); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/Tasks/Calendar.php: -------------------------------------------------------------------------------- 1 | "Tasks", 9 | "addNewActivityButtonText" => "Add new activity linked to Tasks", 10 | "icon" => "fas fa-calendar", 11 | "formComponent" => "TasksFormActivity" 12 | ]; 13 | 14 | public function loadEvents(string $dateStart, string $dateEnd, array $filter = []): array 15 | { 16 | // Implement your functionality for loading calendar events. 17 | 18 | return []; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/Api/GetUsers.php: -------------------------------------------------------------------------------- 1 | getModel(User::class); 12 | $users = $mUser->record 13 | ->select(['id', 'login', 'email', 'first_name', 'last_name', 'nick', 'photo', 'position']) 14 | ->with('TEAMS') 15 | ->where('is_active', true) 16 | ->get() 17 | ->toArray() 18 | ; 19 | 20 | return $users; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /apps/Cloud/Views/Log.twig: -------------------------------------------------------------------------------- 1 | 2 |

Hubleto Cloud > {{ translate("Usage log") }}

3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | {% for log in viewParams.log %} 14 | 15 | 16 | 17 | 18 | 19 | {% endfor %} 20 | 21 |
{{ translate("Datetime") }}{{ translate("Active users") }}{{ translate("Paid apps") }}
{{ log.log_datetime }}{{ log.active_users }}{{ log.paid_apps }}
22 | -------------------------------------------------------------------------------- /apps/Contacts/Controllers/Tags.php: -------------------------------------------------------------------------------- 1 | 'settings', 'content' => $this->translate('Settings') ], 11 | [ 'url' => '', 'content' => $this->translate('Contact Tags') ], 12 | ]); 13 | } 14 | 15 | public function prepareView(): void 16 | { 17 | parent::prepareView(); 18 | $this->setView('@Hubleto:App:Community:Contacts/Tags.twig'); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/Deals/Controllers/Api/GenerateInvoice.php: -------------------------------------------------------------------------------- 1 | router()->urlParamAsInteger('idDeal'); 12 | 13 | /** @var Deal */ 14 | $mDeal = $this->getModel(Deal::class); 15 | 16 | $idInvoice = $mDeal->generateInvoice($idDeal); 17 | 18 | return ["status" => "success", "idInvoice" => $idInvoice]; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /apps/Deals/Controllers/DealsArchive.php: -------------------------------------------------------------------------------- 1 | 'deals', 'content' => $this->translate('Deals') ], 11 | [ 'url' => '', 'content' => $this->translate('Archive') ], 12 | ]); 13 | } 14 | 15 | public function prepareView(): void 16 | { 17 | parent::prepareView(); 18 | $this->setView('@Hubleto:App:Community:Deals/DealsArchive.twig'); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /apps/Events/Calendar.php: -------------------------------------------------------------------------------- 1 | "Events", 9 | "addNewActivityButtonText" => "Add new activity linked to Events", 10 | "icon" => "fas fa-calendar", 11 | "formComponent" => "EventsFormActivity" 12 | ]; 13 | 14 | public function loadEvents(string $dateStart, string $dateEnd, array $filter = []): array 15 | { 16 | // Implement your functionality for loading calendar events. 17 | 18 | return []; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/Leads/Controllers/LeadsArchive.php: -------------------------------------------------------------------------------- 1 | 'leads', 'content' => $this->translate('Leads') ], 11 | [ 'url' => '', 'content' => $this->translate('Archive') ], 12 | ]); 13 | } 14 | 15 | public function prepareView(): void 16 | { 17 | parent::prepareView(); 18 | $this->setView('@Hubleto:App:Community:Leads/LeadsArchive.twig'); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /apps/Mail/Controllers/Templates.php: -------------------------------------------------------------------------------- 1 | 'mail/templates', 'content' => $this->translate('Templates') ], 13 | ]); 14 | } 15 | 16 | public function prepareView(): void 17 | { 18 | parent::prepareView(); 19 | 20 | $this->setView('@Hubleto:App:Community:Mail/Templates.twig'); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /apps/Orders/Controllers/Api/GeneratePdf.php: -------------------------------------------------------------------------------- 1 | router()->urlParamAsInteger('idOrder'); 13 | 14 | /** @var Order */ 15 | $mOrder = $this->getModel(Order::class); 16 | 17 | $idDocument = $mOrder->generatePdf($idOrder); 18 | return [ 19 | 'idDocument' => $idDocument 20 | ]; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /apps/Projects/Views/WorkflowItemDetail.twig: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
{{ item.CUSTOMER.name }}
5 |
{{ item.identifier }} {{ item.title }}
6 |
{{ item.MAIN_DEVELOPER.email }}
7 | {% for t in item.TASKS %} 8 |
{{ t.TASK.identifier }} {{ t.TASK.title }}
9 | {% endfor %} 10 |
11 |
12 |
13 | -------------------------------------------------------------------------------- /apps/Settings/Controllers/Teams.php: -------------------------------------------------------------------------------- 1 | 'settings', 'content' => $this->translate('Settings') ], 11 | [ 'url' => 'teams', 'content' => $this->translate('Teams') ], 12 | ]); 13 | } 14 | 15 | public function prepareView(): void 16 | { 17 | parent::prepareView(); 18 | $this->setView('@Hubleto:App:Community:Settings/Teams.twig'); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/Settings/Controllers/Users.php: -------------------------------------------------------------------------------- 1 | 'settings', 'content' => $this->translate('Settings') ], 11 | [ 'url' => 'users', 'content' => $this->translate('Users') ], 12 | ]); 13 | } 14 | 15 | public function prepareView(): void 16 | { 17 | parent::prepareView(); 18 | $this->setView('@Hubleto:App:Community:Settings/Users.twig'); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/Tools/Loader.php: -------------------------------------------------------------------------------- 1 | router()->get([ 21 | '/^tools\/?$/' => Controllers\Dashboard::class, 22 | ]); 23 | 24 | $this->tools = $this->collectExtendibles('Tools'); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /apps/Customers/Controllers/Tags.php: -------------------------------------------------------------------------------- 1 | 'settings', 'content' => $this->translate('Settings') ], 11 | [ 'url' => '', 'content' => $this->translate('Customer Tags') ], 12 | ]); 13 | } 14 | 15 | public function prepareView(): void 16 | { 17 | parent::prepareView(); 18 | $this->setView('@Hubleto:App:Community:Customers/Tags.twig'); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/Developer/Controllers/Dashboard.php: -------------------------------------------------------------------------------- 1 | 'developer', 'content' => $this->translate('Developer') ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->viewParams['now'] = date('Y-m-d H:i:s'); 18 | $this->setView('@Hubleto:App:Community:Developer/Dashboard.twig'); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/EventFeedback/Controllers/Dashboard.php: -------------------------------------------------------------------------------- 1 | 'eventfeedback', 'content' => 'EventFeedback' ], 11 | ]); 12 | } 13 | 14 | public function prepareView(): void 15 | { 16 | parent::prepareView(); 17 | $this->viewParams['now'] = date('Y-m-d H:i:s'); 18 | $this->setView('@Hubleto:App:Community:EventFeedback/Dashboard.twig'); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/EventFeedback/Controllers/Settings.php: -------------------------------------------------------------------------------- 1 | 'eventfeedback', 'content' => 'EventFeedback' ], 11 | [ 'url' => 'settings', 'content' => 'Settings' ], 12 | ]); 13 | } 14 | 15 | public function prepareView(): void 16 | { 17 | parent::prepareView(); 18 | $this->setView('@Hubleto:App:Community:EventFeedback/Settings.twig'); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/Orders/Controllers/States.php: -------------------------------------------------------------------------------- 1 | 'orders', 'content' => $this->translate('Orders') ], 11 | [ 'url' => '', 'content' => $this->translate('States') ], 12 | ]); 13 | } 14 | 15 | public function prepareView(): void 16 | { 17 | parent::prepareView(); 18 | 19 | $this->setView('@Hubleto:App:Community:Orders/States.twig'); 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /apps/Workflow/Controllers/Workflows.php: -------------------------------------------------------------------------------- 1 | 'settings', 'content' => $this->translate('Settings') ], 11 | [ 'url' => '', 'content' => $this->translate('Workflows') ], 12 | ]); 13 | } 14 | 15 | public function prepareView(): void 16 | { 17 | parent::prepareView(); 18 | $this->setView('@Hubleto:App:Community:Workflow/Workflows.twig'); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /lang/pl/hubleto-app-community-documents-loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "loader": { 3 | "Documents": "Dokumenty" 4 | }, 5 | "manifest": { 6 | "Documents": "Dokumenty", 7 | "Free document management.": "Darmowe zarządzanie dokumentami." 8 | }, 9 | "root": { 10 | "Browse": "Przeglądać", 11 | "List": "Lista" 12 | }, 13 | "Models\\Document": { 14 | "Uid": "UID", 15 | "Folder": "Falcówka", 16 | "Document name": "Nazwa dokumentu", 17 | "File": "Plik", 18 | "File Link": "Link pliku", 19 | "Origin Link": "Link pochodzenia" 20 | } 21 | } -------------------------------------------------------------------------------- /apps/Dashboards/Loader.tsx: -------------------------------------------------------------------------------- 1 | import HubletoApp from '@hubleto/react-ui/ext/HubletoApp' 2 | import TableDashboards from "./Components/TableDashboards" 3 | import Dashboard from "./Components/Dashboard" 4 | 5 | class DashboardsApp extends HubletoApp { 6 | init() { 7 | super.init(); 8 | 9 | // register react components 10 | globalThis.main.registerReactComponent('DashboardsDashboard', Dashboard); 11 | globalThis.main.registerReactComponent('DashboardsTableDashboards', TableDashboards); 12 | } 13 | } 14 | 15 | // register app 16 | globalThis.main.registerApp('Hubleto/App/Community/Dashboards', new DashboardsApp()); 17 | -------------------------------------------------------------------------------- /apps/Deals/manifest.yaml: -------------------------------------------------------------------------------- 1 | namespace: Hubleto\App\Community\Deals 2 | appType: community 3 | sidebarGroup: sales 4 | rootUrlSlug: deals 5 | name: Deals 6 | icon: fas fa-handshake 7 | author: 8 | name: "Richard Ondrejka" 9 | nick: "rindo" 10 | company: "wai.blue" 11 | github: "https://github.com/rindo789" 12 | linkedin: "https://www.linkedin.com/in/richard-ondrejka/" 13 | highlight: Deal management. From deal to purchase. 14 | tags: 15 | - workflow 16 | - sales 17 | - leads 18 | - deals 19 | requires: 20 | - Hubleto\App\Community\Customers 21 | - Hubleto\App\Community\Calendar 22 | - Hubleto\App\Community\Leads 23 | -------------------------------------------------------------------------------- /apps/Orders/Controllers/Api/GenerateInvoice.php: -------------------------------------------------------------------------------- 1 | router()->urlParamAsInteger('idOrder'); 12 | 13 | /** @var Order */ 14 | $mOrder = $this->getModel(Order::class); 15 | 16 | $idInvoice = $mOrder->generateInvoice($idOrder); 17 | 18 | return ["status" => "success", "idInvoice" => $idInvoice]; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /apps/Projects/Calendar.php: -------------------------------------------------------------------------------- 1 | "Projects", 9 | "addNewActivityButtonText" => "Add new activity linked to Projects", 10 | "icon" => "fas fa-calendar", 11 | "formComponent" => "ProjectsFormActivity" 12 | ]; 13 | 14 | public function loadEvents(string $dateStart, string $dateEnd, array $filter = []): array 15 | { 16 | // Implement your functionality for loading calendar events. 17 | 18 | return []; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /apps/Settings/Views/Permissions.twig: -------------------------------------------------------------------------------- 1 |

{{ translate('Settings') }} > {{ translate('Permissions') }}

2 | 3 | {# 4 | 5 | 6 | 7 | 8 | {% for p in viewParams.permissions %} 9 | 10 | {% endfor %} 11 | 12 |
Permission name
{{ p.permission }}
#} 13 | 14 | --------------------------------------------------------------------------------