Compare commits

..

22 Commits

Author SHA1 Message Date
Ron
a33c46ecd8 Merge pull request #268 from fleetbase/dev-v0.4.26
v0.4.26
2024-07-02 16:46:54 +07:00
Ronald A. Richardson
3fe1e0a439 update lockfiles 2024-07-02 17:41:42 +08:00
Ronald A. Richardson
7ae150137a critical urgent release w/ multi drop order customer resolve patch 2024-07-02 17:37:37 +08:00
Ron
fd1ee4cccc Merge pull request #267 from fleetbase/upgrade-storefront-v0.3.10
upgraded storefront in console
2024-07-02 14:37:43 +07:00
Ronald A. Richardson
ca2bab9261 upgraded storefront in console 2024-07-02 15:37:10 +08:00
Ron
8c0d5f04c2 Merge pull request #266 from fleetbase/dev-v0.4.25
v0.4.25
2024-07-02 14:31:14 +07:00
Ronald A. Richardson
18f813c95b made sure to update the overwrite 2024-07-02 15:16:22 +08:00
Ronald A. Richardson
ca6004c191 preparing for next release with improvements and fixes 2024-07-02 15:02:28 +08:00
Ron
cd5a7370b9 Merge pull request #259 from fleetbase/dev-v0.4.24
v0.4.24
2024-05-30 18:44:34 +07:00
Ronald A. Richardson
989312f3f8 upgraded dependencies set 2024-05-30 19:35:51 +08:00
Ronald A. Richardson
9fe1af84a7 remove ember-accounting addon from packages 2024-05-30 19:24:39 +08:00
Ronald A. Richardson
b4ff469c8b upgraded packages, added new docs as submodule 2024-05-30 19:24:02 +08:00
Ron
5d54ffbfda Update README.md 2024-05-28 09:55:29 +07:00
Ron
445d782fe6 Merge pull request #258 from fleetbase/feature/resouce-imports
resouce import
2024-05-22 16:12:03 +07:00
Ronald A. Richardson
4ffc721ecf preparing next release 2024-05-22 17:01:20 +08:00
Doljinsuren Enkhbayar
4623910ebf added translation 2024-05-22 16:58:25 +08:00
Ron
af8e30ad7f Merge pull request #257 from fleetbase/dev-v0.4.23
v0.4.23
2024-05-17 16:48:35 +08:00
Ronald A. Richardson
f38d65028e rename usage of ENV to config 2024-05-17 16:42:52 +08:00
Ronald A. Richardson
eb90b77151 ran linter on console 2024-05-17 16:41:38 +08:00
Ronald A. Richardson
536f36487b ready for release, improved and implemented resource exports 2024-05-17 16:35:37 +08:00
Ron
93dc4afc03 Merge pull request #256 from fleetbase/feature/file-export
file export
2024-05-17 13:19:10 +08:00
Doljinsuren Enkhbayar
9fc53de9fe file export 2024-05-16 14:56:36 +08:00
29 changed files with 2304 additions and 4806 deletions

9
.gitmodules vendored
View File

@@ -33,9 +33,6 @@
path = packages/fleetops-data
url = git@github.com:fleetbase/fleetops-data.git
branch = main
[submodule "docs/guides"]
path = docs/guides
url = git@github.com:fleetbase/guides.git
[submodule "docs/api-reference"]
path = docs/api-reference
url = git@github.com:fleetbase/api-reference.git
[submodule "docs"]
path = docs
url = git@github.com:fleetbase/docs.git

View File

@@ -7,7 +7,7 @@
<p align="center" dir="auto">
Modular logistics and supply chain operating system
<br>
<a href="https://fleetbase.github.io/guides" rel="nofollow">Documentation</a>
<a href="https://docs.fleetbase.io/" rel="nofollow">Documentation</a>
·
<a href="https://console.fleetbase.io" rel="nofollow">Cloud Version</a>
·
@@ -42,6 +42,7 @@ sh deploy.sh
- [Features](#-features)
- [Install](#-install)
- [Apps](#-apps)
- [Roadmap](#-roadmap)
- [Bugs and Feature Requests](#-bugs-and--feature-requests)
- [Documentation](#-documentation)
@@ -67,7 +68,7 @@ sh deploy.sh
- **Open Source:** Deploy it either on-premise or in the cloud according to your organization's needs and preferences.
## 💾 Install
Getting up and running with Fleetbase via Docker is the quickest and most straightforward way. If youd like to use Fleetbase without docker read the [full install guide in the Fleetbase documentation](https://docs.fleetbase.io/install).
Getting up and running with Fleetbase via Docker is the quickest and most straightforward way. If youd like to use Fleetbase without docker read the [full install guide in the Fleetbase documentation](https://docs.fleetbase.io/getting-started/install).
Make sure you have both the latest versions of docker and docker-compose installed on your system.
@@ -89,7 +90,7 @@ Fleetbase API: http://localhost:8000
**CORS:** If youre installing directly on a server you may need to add your IP address or domain to the `api/config/cors.php` file in the `allowed_hosts` array.
**Routing:** Fleetbase ships with its own OSRM server hosted at `routing.fleetbase.io` but youre able to use your own or any other OSRM compatible server. You can modify this in the `console/environments` directory by modifying the env file of the environment youre deploying and setting the `OSRM_HOST` to the OSRM server for Fleetbase to use.
**Routing:** Fleetbase ships with its own OSRM server hosted at `[bundle.routing.fleetbase.io](https://bundle.routing.fleetbase.io)` but youre able to use your own or any other OSRM compatible server. You can modify this in the `console/environments` directory by modifying the env file of the environment youre deploying and setting the `OSRM_HOST` to the OSRM server for Fleetbase to use.
**Services:** There are a few environment variables which need to be set for Fleetbase to function with full features. If youre deploying with docker then its easiest to just create a `docker-compose.override.yml` and supply the environment variables in this file.
@@ -99,7 +100,7 @@ services:
application:
environment:
MAIL_MAILER: (ses, smtp, mailgun, postmark, sendgrid)
OSRM_HOST: https://routing.fleetbase.io
OSRM_HOST: https://bundle.routing.fleetbase.io
IPINFO_API_KEY:
GOOGLE_MAPS_API_KEY:
GOOGLE_MAPS_LOCALE: us
@@ -109,7 +110,16 @@ services:
CONSOLE_HOST: http://localhost:4200
```
You can learn more about full installation, and configuration in the [official documentation](https://docs.fleetbase.io).
You can learn more about full installation, and configuration in the [official documentation](https://docs.fleetbase.io/getting-started/install).
# 📱 Apps
Fleetbase offers a few open sourced apps which are built on Fleetbase which can be cloned and customized. Every app is built so that the Fleetbase instance can be switched out whether on-premise install or cloud hosted.
<ul>
<li><a href="https://github.com/fleetbase/storefront-app">Storefront App</a>: Fleetbase based ecommerce/on-demand app for launching your very own shop or marketplace to Apple or Android playstore.</li>
<li><a href="https://github.com/fleetbase/navigator-app">Navigator App</a>: Fleetbase based driver app which can be used for drivers to manage and update order, additionally provides real time driver location which can be viewed in the Fleetbase Console.</li>
</ul>
## 🛣️ Roadmap
1. **Extensions Registry and Marketplace** ~ Allows users to publish and sell installable extensions on Fleetbase instances.
@@ -133,7 +143,7 @@ Please read through our <a href="https://github.com/fleetbase/fleetbase/blob/mai
Get updates on Fleetbase's development and chat with the project maintainers and community members by joining our <a href="https://discord.gg/V7RVWRQ2Wm">Discord</a>.
<ul>
<li>Follow <a href="https://twitter.com/fleetbase_io">@fleetbase_io on Twitter</a>.</li>
<li>Follow <a href="https://x.com/fleetbase_io">@fleetbase_io on X</a>.</li>
<li>Read and subscribe to <a href="https://www.fleetbase.io/blog-2">The Official Fleetbase Blog</a>.</li>
<li>Ask and explore <a href="https://github.com/orgs/fleetbase/discussions">our GitHub Discussions</a>.</li>
</ul>

View File

@@ -9,9 +9,9 @@
"license": "MIT",
"require": {
"php": "^8.0",
"fleetbase/core-api": "^1.4.23",
"fleetbase/fleetops-api": "^0.4.28",
"fleetbase/storefront-api": "^0.3.8",
"fleetbase/core-api": "^1.4.26",
"fleetbase/fleetops-api": "^0.5.1",
"fleetbase/storefront-api": "^0.3.10",
"guzzlehttp/guzzle": "^7.0.1",
"laravel/framework": "^10.0",
"laravel/octane": "^2.3",

1295
api/composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -40,6 +40,13 @@ export default class ConsoleAdminOrganizationsController extends Controller {
*/
@service filters;
/**
* Inject the `crud` service
*
* @var {Service}
*/
@service crud;
/**
* The search query param value.
*
@@ -166,4 +173,14 @@ export default class ConsoleAdminOrganizationsController extends Controller {
@action goToCompany(company) {
this.router.transitionTo('console.admin.organizations.index.users', company.public_id);
}
/**
* Toggles dialog to export `drivers`
*
* @void
*/
@action exportOrganization() {
const selections = this.table.selectedRows.map((_) => _.id);
this.crud.export('companies', { params: { selections } });
}
}

View File

@@ -1,9 +1,10 @@
import Model, { attr, belongsTo } from '@ember-data/model';
import { getOwner } from '@ember/application';
import { computed } from '@ember/object';
import { format, formatDistanceToNow, isValid as isValidDate } from 'date-fns';
import { format as formatDate, formatDistanceToNow, isValid as isValidDate } from 'date-fns';
import isVideoFile from '@fleetbase/ember-core/utils/is-video-file';
import isImageFile from '@fleetbase/ember-core/utils/is-image-file';
import config from '@fleetbase/console/config/environment';
export default class ChatAttachment extends Model {
/** @ids */
@@ -18,9 +19,6 @@ export default class ChatAttachment extends Model {
@belongsTo('file', { async: true }) file;
/** @attributes */
@attr('string') chat_channel_uuid;
@attr('string') sender_uuid;
@attr('string') file_uuid;
@attr('string') url;
@attr('string') filename;
@attr('string') content_type;
@@ -72,7 +70,7 @@ export default class ChatAttachment extends Model {
/** @methods */
downloadFromApi() {
window.open(ENV.api.host + '/' + ENV.api.namespace + '/files/download?file=' + this.file_uuid, '_self');
window.open(config.api.host + '/' + config.api.namespace + '/files/download?file=' + this.file_uuid, '_self');
}
download() {

View File

@@ -1,7 +1,7 @@
import Model, { attr, hasMany, belongsTo } from '@ember-data/model';
import { computed } from '@ember/object';
import { getOwner } from '@ember/application';
import { format, formatDistanceToNow, isValid as isValidDate } from 'date-fns';
import { format as formatDate, formatDistanceToNow, isValid as isValidDate } from 'date-fns';
export default class ChatChannelModel extends Model {
/** @ids */

View File

@@ -1,6 +1,6 @@
import Model, { attr, belongsTo } from '@ember-data/model';
import Model, { attr } from '@ember-data/model';
import { computed } from '@ember/object';
import { format, formatDistanceToNow, isValid as isValidDate } from 'date-fns';
import { format as formatDate, formatDistanceToNow, isValid as isValidDate } from 'date-fns';
export default class ChatLogModel extends Model {
/** @ids */

View File

@@ -1,6 +1,6 @@
import Model, { attr, belongsTo, hasMany } from '@ember-data/model';
import { computed } from '@ember/object';
import { format, formatDistanceToNow, isValid as isValidDate } from 'date-fns';
import { format as formatDate, formatDistanceToNow, isValid as isValidDate } from 'date-fns';
export default class ChatMessage extends Model {
/** @ids */

View File

@@ -1,6 +1,6 @@
import Model, { attr, belongsTo } from '@ember-data/model';
import { computed } from '@ember/object';
import { format, formatDistanceToNow, isValid as isValidDate } from 'date-fns';
import { format as formatDate, formatDistanceToNow, isValid as isValidDate } from 'date-fns';
export default class ChatParticipant extends Model {
/** @ids */

View File

@@ -3,7 +3,7 @@ import { computed } from '@ember/object';
import { not } from '@ember/object/computed';
import { getOwner } from '@ember/application';
import { format, formatDistanceToNow } from 'date-fns';
import ENV from '@fleetbase/console/config/environment';
import config from '@fleetbase/console/config/environment';
import isVideoFile from '@fleetbase/ember-core/utils/is-video-file';
import isImageFile from '@fleetbase/ember-core/utils/is-image-file';
@@ -64,7 +64,7 @@ export default class FileModel extends Model {
/** @methods */
downloadFromApi() {
window.open(ENV.api.host + '/' + ENV.api.namespace + '/files/download?file=' + this.id, '_self');
window.open(config.api.host + '/' + config.api.namespace + '/files/download?file=' + this.id, '_self');
}
download() {

View File

@@ -100,11 +100,11 @@ export default class UserModel extends Model {
}
@computed('last_login') get lastLogin() {
if (!this.last_login || !isValid(new Date(this.last_login))) {
if (!this.last_login || !isValid(this.last_login)) {
return 'Never';
}
return format(new Date(this.last_login), 'PP');
return format(this.last_login, 'PP p');
}
@computed('updated_at') get updatedAgo() {

View File

@@ -1,7 +1,6 @@
import ApplicationSerializer from '@fleetbase/ember-core/serializers/application';
import { EmbeddedRecordsMixin } from '@ember-data/serializer/rest';
import { getOwner } from '@ember/application';
import { underscore } from '@ember/string';
import { isArray } from '@ember/array';
export default class ChatChannelSerializer extends ApplicationSerializer.extend(EmbeddedRecordsMixin) {

View File

@@ -17,10 +17,10 @@
<form class="mt-8" {{on "submit" this.verifyCode}}>
<div class="flex items-center justify-between my-6">
<OtpInput @onInputCompleted={{this.handleOtpInput}} />
<OtpInput @onInputCompleted={{this.handleOtpInput}} @size={{6}} class="w-full" />
</div>
<div id="otp-countdown-container" class="otp-countdown-container flex items-center justify-center min-h-12">
<div id="otp-countdown-container" class="otp-countdown-container flex {{if this.isCodeExpired "flex-col" "flex-row"}} items-center justify-center min-h-12">
{{#if this.countdownReady}}
<Countdown @expiry={{this.twoFactorSessionExpiresAfter}} @countdownClass="text-lg" @onCountdownEnd={{this.handleCodeExpired}} />
{{/if}}

View File

@@ -1,13 +1,15 @@
{{page-title (t "console.admin.organizations.index.title")}}
{{!-- template-lint-disable no-unbound --}}
<Layout::Section::Header @title={{t "console.admin.organizations.index.title"}} @searchQuery={{unbound this.query}} @onSearch={{this.search}} />
{{! template-lint-disable no-unbound }}
<Layout::Section::Header @title={{t "console.admin.organizations.index.title"}} @searchQuery={{unbound this.query}} @onSearch={{this.search}}>
<Button @icon="long-arrow-up" @iconClass="rotate-icon-45" @text={{t "common.export"}} @wrapperClass="hidden md:flex" @onClick={{this.exportOrganization}} />
</Layout::Section::Header>
<Layout::Section::Body>
<Table
@rows={{@model}}
@columns={{this.columns}}
@selectable={{false}}
@canSelectAll={{false}}
@selectable={{true}}
@canSelectAll={{true}}
@onSetup={{fn (mut this.table)}}
@pagination={{true}}
@paginationMeta={{@model.meta}}

View File

@@ -1,6 +1,6 @@
{
"name": "@fleetbase/console",
"version": "0.4.22",
"version": "0.4.26",
"private": true,
"description": "Modular logistics and supply chain operating system (LSOS)",
"repository": "https://github.com/fleetbase/fleetbase",
@@ -29,13 +29,13 @@
"test:ember": "ember test"
},
"dependencies": {
"@fleetbase/ember-core": "^0.2.9",
"@fleetbase/ember-ui": "^0.2.14",
"@fleetbase/fleetops-engine": "^0.4.28",
"@fleetbase/ember-core": "^0.2.11",
"@fleetbase/ember-ui": "^0.2.17",
"@fleetbase/fleetops-engine": "^0.5.1",
"@fleetbase/storefront-engine": "^0.3.10",
"@fleetbase/dev-engine": "^0.2.3",
"@fleetbase/iam-engine": "^0.0.12",
"@fleetbase/fleetops-data": "^0.1.15",
"@fleetbase/storefront-engine": "^0.3.7",
"@fleetbase/dev-engine": "^0.2.2",
"@fleetbase/iam-engine": "^0.0.10",
"@fleetbase/leaflet-routing-machine": "^3.2.16",
"@ember/legacy-built-in-components": "^0.4.1",
"@fortawesome/ember-fontawesome": "^0.4.1",
@@ -142,8 +142,8 @@
},
"pnpm": {
"overrides": {
"@fleetbase/ember-core": "^0.2.9",
"@fleetbase/ember-ui": "^0.2.14",
"@fleetbase/ember-core": "^0.2.11",
"@fleetbase/ember-ui": "^0.2.17",
"@fleetbase/fleetops-data": "^0.1.15"
}
},

5670
console/pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -65,9 +65,20 @@ common:
next: Next
continue: Continue
done: Done
export: Export
component:
file:
dropdown-label: File actions
import-modal:
loading-message: Processing import...
drop-upload: Drop to upload
invalid: Invalid
ready-upload: ready for upload.
upload-spreadsheets: Upload Spreadsheets
drag-drop: Drag and drop spreadsheet files onto this dropzone
button-text: or select spreadsheets to upload
spreadsheets: spreadsheets
upload-queue: Upload Queue
dropzone:
file: file
drop-to-upload: Drop to upload

View File

@@ -69,8 +69,8 @@ services:
MAIL_FROM_NAME: Fleetbase
APP_NAME: Fleetbase
LOG_CHANNEL: daily
MODEL_CACHE_ENABLED: true
RESPONSE_CACHE_ENABLED: true
MODEL_CACHE_ENABLED: 'true'
RESPONSE_CACHE_ENABLED: 'true'
RESPONSE_CACHE_DRIVER: redis
depends_on:
- database

1
docs Submodule

Submodule docs added at 6e1281f528

Submodule docs/guides deleted from 479ca400c4