├── 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 |
--------------------------------------------------------------------------------
/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 |
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 |
--------------------------------------------------------------------------------
/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 |
10 |
--------------------------------------------------------------------------------
/apps/Orders/Views/WorkflowItemDetail.twig:
--------------------------------------------------------------------------------
1 |
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 |
--------------------------------------------------------------------------------
/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 |
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 | | {{ translate("Datetime") }} |
8 | {{ translate("Active users") }} |
9 | {{ translate("Paid apps") }} |
10 |
11 |
12 |
13 | {% for log in viewParams.log %}
14 |
15 | | {{ log.log_datetime }} |
16 | {{ log.active_users }} |
17 | {{ log.paid_apps }} |
18 |
19 | {% endfor %}
20 |
21 |
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 |
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 | | Permission name |
6 |
7 |
8 | {% for p in viewParams.permissions %}
9 | | {{ p.permission }} |
10 | {% endfor %}
11 |
12 |
#}
13 |
14 |
--------------------------------------------------------------------------------