72 Commits
Author SHA1 Message Date
Ruslan KonviserandClaude Opus 5.5 d3d8687ac1 test: app-wide TestBed defaults for the Angular projects; fix their stub specs (WIP)
Once the Angular suites loaded, most failures were CLI-generated
`should create` stubs that had never run, failing on the first injection
(TranslateService, NbToastrService, NbDialogRef, ActivatedRoute, the
translate pipe, the default icon pack).

- jest.angular-defaults.ts (setupFilesAfterEnv, after each project's
  test-setup): a top-level beforeEach adds what the app's root module
  provides - TranslateModule.forRoot, the Nebular forRoot modules,
  NgxPermissionsModule.forRoot, the Tabler/eva icon pack, HttpClient
  testing, router, noop animations, a NbDialogRef stub, GAUZY_ENV - and a
  matchMedia stand-in (jsdom has none). configureTestingModule merges, so a
  spec's own providers still win. It imports no ui-core/core: that would
  cache real modules a spec later jest.mock()s.
- jest.preset.js maps dayjs/esm (imported by ngx-daterangepicker-material's
  .mjs bundle) to dayjs's CommonJS build.
- Specs of non-standalone components import the NgModule that declares
  them, provide what the host feature module provides (EmployeesService,
  AuthService, NbAuthModule.forRoot, PipesModule), and set the inputs /
  route data / date-picker config the app always supplies before render.
- Two stubs imported classes their files do not export
  (GauzyRangePickerComponent, ViewComponent) and declared `undefined`.
- desktop-ui-lib's test-setup installs an inert `window.electronAPI`
  preload bridge of the shape apps/agent exposes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 22:57:14 +02:00
Ruslan KonviserandClaude Opus 5.5 02c4289f5f test: load moment under both import styles; resolve ui-core's workspace imports from source
Iteration 1 of the hermetic run (36330457608, 83 pass / 14 fail) moved the
Angular suites past TestBed init and into two load-time failures:

- "(0, moment_1.default) is not a function" in ~50 suites across 11
  projects. ui-core imports `moment` as a default import, most other code
  as a namespace import; the bundlers accept both, the TypeScript CJS emit
  Jest runs cannot under a single esModuleInterop setting. jest.interop.js
  (a preset setupFiles entry, concatenated with any project's own) gives
  the loaded module `default` and `__esModule`, so both styles resolve to
  the moment function itself, as they do in the app build.
- "Cannot find module '@gauzy/ui-config'" in 23 ui-core suites: ui-core's
  tsconfig.json maps it to the BUILT dist copy, which a test run does not
  have, and Nx's Jest resolver falls back to the spec tsconfig's paths. The
  spec tsconfig now carries the same source mappings as tsconfig.lib.json.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 21:05:39 +02:00
Ruslan KonviserandClaude Opus 5.5 91d91ffca3 test: make the unit-test run hermetic and fix the Angular jest harness
The Unit Tests workflow has never been green (24 of 97 projects red at
develop eac7136562, run 36319732347). Causes addressed here:

- Env leak: Nx loads the committed .env.local (DEMO=true,
  WORKER_QUEUE_ENABLED=false, NODE_ENV=development) into every task.
  The test step now sets NX_LOAD_DOT_ENV_FILES=false, and the two specs
  that depend on a mode pin it themselves (role-permission counts pin
  environment.demo=false and gain a demo-mode suite asserting 209 per
  role; the worker spec clears the queue env before the constants load).
  .env.local is unchanged.
- Angular harness: nohoist gives each workspace its own @angular copy,
  so setupZoneTestEnv() initialised a different TestBed from the one the
  spec used. A workspace resolver (jest.resolver.js, wrapping Nx's) makes
  every @angular/* import in a Jest project resolve to one copy. The
  Angular projects now inherit the preset's transformIgnorePatterns,
  which gains the .mjs exception plus @datorama, @ngneat and lodash-es.
- ui-config's environment.ts is generated and gitignored; the workflow
  runs `yarn config:dev` before the tests, as the Playwright workflow does.
- Misconfigured targets: gauzy (jest.config.js -> .ts, Angular transform,
  setupFile moved into the config), integration-sim-ui (.ts -> .cts),
  integration-activepieces (config file added), mcp-auth (ran
  `node build/main.js --test`; now the jest executor like apps/mcp).
- Real failures: the openai "silence" case used a body with no `text`,
  which the shared helper rejects by contract; the toolbar spec read the
  tabIndex property, which is 0 on any button; the docs-ui linearity
  tests asserted wall-clock bounds, now a 4x-input growth ratio.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 17:39:40 +02:00
Ruslan KonviserandClaude Opus 5 4b8f0ca6b3 chore(ui): reword a comment cspell rejects
"untargeted" is not in the project dictionary and fails the cspell CI check.
Reworded to "a bare @ViewChild(...)" rather than growing the dictionary for a
word that has a plain-English equivalent.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-04 16:09:13 +02:00
Rahul R. fa469b2e7d Merge pull request #9503 from ever-co/chore/editorconfig-prettier-integration
chore: global editorconfig updates
2026-03-12 22:08:29 +01:00
Rahul R.andcubic-dev-ai[bot] 6083c8f02e [WIP] UI React Plugin (#9532)
* feat(ui-react): ui-plugin bridge for react components

* feat(ui-react): ui-plugin bridge for react components

* feat(ui-react): ui-plugin bridge for react components

* feat(ui-react): ui-plugin bridge for react components

* feat(ui-react): ui-plugin bridge for react components

* feat(ui-react): ui-plugin bridge for react components

* feat(ui-react): react-ui-plugin example

* feat(ui-react): react-ui-plugin example

* feat(ui-react): react-ui-plugin example

* feat(ui-react): ui-react bridge plugin

* feat(plugin-ui): add plugin translation system and React hooks

* feat(plugin-ui): implemented plugin-ui suggestions by AI

* fix(build): apply AI suggestion by bot agent reviewers

* fix(build): apply AI suggestion by bot agent reviewers

* fix(build): apply AI suggestion by bot agent reviewers

* fix(dashboard): added back by mistaken removed component

* fix(ui-react): rename package to `@gauzy/ui-react` instead of `@gauzy/plugin-ui-react`

* fix: rename package to `plugin-react-ui` instead of `dashboard-time-track-react-ui`

* fix(build): apply AI suggestion by bot agent reviewers

* Update plugin-ui.config.ts

* feat(ui-react): dashboard-time-track-react-ui plugin example

* feat(ui-react): add shadcn-style Card compound components and dashboard enhancements

* fix(build): apply AI suggestion by bot agent reviewers

* fix(build): apply AI suggestion by bot agent reviewers

* fix(build): apply AI suggestion by bot agent reviewers

* fix(build): apply AI suggestion by bot agent reviewers

* fix(build): apply AI suggestion by bot agent reviewers

* fix(build): apply AI suggestion by bot agent reviewers

* fix(build): apply AI suggestion by bot agent reviewers

* fix(build): apply AI suggestion by bot agent reviewers

* fix(build): apply AI suggestion by bot agent reviewers

* Update packages/plugin-ui/src/lib/plugin-extension/page-extension-slot.component.ts

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

* Update packages/plugin-ui/src/lib/plugin-version-compat.ts

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

* fix(build): apply AI suggestion by bot agent reviewers

---------

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2026-03-09 21:49:37 +01:00
Ruslan Konviser b0bc7d04a3 chore: win x64 builds 2026-02-27 07:31:44 +01:00
Ruslan Konviser a772725100 fix: nx 2026-02-26 22:30:07 +01:00
Ruslan Konviser aee53d6e24 feat: more MikroORM support 2026-02-26 16:35:42 +01:00
Ruslan Konviser 4860de4977 chore: windows builds / update NX everywhere 2026-02-25 21:30:06 +01:00
Rishiraj S aeb33dac58 Feat: Migrate Angular Templates to New Control Flow Syntax #9368 (#9381)
* chore: updated *ng directives with @ directives via 'nx generate @angular/core:control-flow' command

* chore: manually updated the template directives and ran nx format on them.

* fix(candidates): format edit-candidate-feedbacks template with @for syntax

* refactor: modernize templates with improved bindings, control flow, and performance optimizations

* refactor: migrate ngClass/ngStyle to bindings and format templates

* style: apply nx formatting to html templates

* refactor(desktop-ui): remove unused NgClass imports

* style: apply nx format to changed files

* fix(gauzy): correct control flow syntax in time-tracking template

* fix: resolved ai suggestions for improvements (untested)

* refactor(desktop-ui-lib): remove unused NgClass/NgStyle imports from standalone components

* git commit -m "refactor(ui-core): migrate toggle-filter ngClass to class bindings"

* refactor(desktop-ui-lib): remove unused NgClass and NgStyle imports

* fix: cubic-ai's suggestion

* refactor(pages): apply CodeRabbit suggestions for template control flow

* fix(pages): resolve CodeRabbit issues for security, UI feedback and logic regressions

* fix(pages): correct syntax errors in human-resources and teams templates

* fix (pages):  resolve CoderRabbit issues

* refactor: format dynamic-tabs template and remove unused NgClass from image-viewer

* feat(i18n): update translations for permission error

* refactor(client): migrate goals - CodeRabbit recommendations, enhance approval policy UX, and resolve miscellaneous UI bugs

* fix (bug) : documents page, undefined 'i' bug fixed.

* chore: fix ai recommendations marked as critical

* refactor: remove legacy NgStyle, NgClass directives and use native style/class bindings

* fix(ui): correct positions grid, optimize inventory validation, and refine help center template

* refactor(ui): update components (HelpCenter, TimeTracking, Import, Invoices) with standalone migration, strict type fixes, and template improvements.

* refactor(ui): extract employment type dialog logic to component methods

* refactor(ui): optimize Angular templates with improved control flow, track expressions, and formatting

* refactor(goals): replace ngClass with class binding

* fix(cubic-ai) : fixed dialog closing issue

* refactor(goals): optimize imports and consolidate shared modules for standalone component

* style: apply nx format on merge conflict resolved files

* refactor: migrate ngTemplateOutlet to property binding (+nx format)

* fix(dashboard): fixed empty arrays in component, to render templates

* fix: restore duplicate validation toasts and remove non-existent track property references

* fix: remove invalid id property from activity track in time-tracking template
2026-02-22 19:31:14 +01:00
Rahul R. b4f182c07c fix(plugins): apply AI suggestion by bot agent reviewers 2026-02-18 16:21:18 +05:30
Rahul R. aa0289c29a Update nx.json 2026-02-16 16:53:43 +05:30
Rahul R. 4d72505e5a Merge pull request #9416 from ever-co/chore/update-packages
[Fix] Upgrade Swiper Support
2026-02-04 17:17:37 +01:00
Ruslan Konviser 10a4350acc chore: enable NX Cloud 2026-02-01 17:24:07 +01:00
Ruslan Konviser 18161a943b chore: more optimizations 2026-02-01 13:20:28 +01:00
Ruslan Konviser 16a0be2923 chore: more build optimizations and fixes 2026-02-01 11:28:09 +01:00
Ruslan Konviser 79432cfac7 feat: build optimizations (experimental) (#9388)
* feat: build optimizations (experimental)

* fix: employees page

* fix: more fixes / optimizations
2026-01-31 23:34:24 +01:00
Rahul R. 20e0bc6f3d chore(deps): upgrade to Node 24 LTS compatible versions
- ngx-countdown: ^19.0.0 → ^20.0.0
- ngx-draggable-dom: ^19.0.7 → ^20.0.0
- @types/node: ^20.14.9 → ^24.10.0
2026-01-24 12:30:52 +05:30
Rahul R. 101d39f39b chore: standardize dotenv usage and version 2026-01-24 11:13:48 +05:30
Rahul R. dcbea3ba59 Revert "fix: trying to faster build for packages"
This reverts commit c3c0cc29e2.
2026-01-23 19:11:35 +05:30
Rahul R. c3c0cc29e2 fix: trying to faster build for packages 2026-01-23 13:27:01 +05:30
Rahul R.anddependabot[bot] 514dbc258b chore(deps): packages updates (#9340)
* chore(deps): bump nx from 21.1.0 to 21.2.0

* chore(deps): chore(deps): bump @angular/core from ^19.2.17 to ^20.0.7

- Update @angular/common and @angular/core peerDependencies from ^19.2.17 to ^20.0.7 across all UI packages
- Upgrade @nebular packages (auth, eva-icons, security, theme) from ^15.0.0 to ^16.0.0
- Update @nebular/bootstrap from ^9.1.0-rc.6 to ^9.1.0-rc.8

* chore(deps): upgrade all packages to Angular 20 and compatible dependencies

Angular packages updated to ^20.0.7 (cdk/material to ^20.0.6):
- @angular/animations, common, compiler, core, forms, language-service
- @angular/platform-browser, platform-browser-dynamic, router, service-worker
- @angular/cdk, @angular/material

* chore(deps): bump @swimlane/ngx-charts from ^22.0.0-alpha.1 to ^23.0.0

* fix(deps): upgrade Angular 20 compatible third-party packages

- @angular-slider/ngx-slider: ^19.0.0 → ^20.0.0
- @bluehalo/ngx-leaflet: ^19.0.0 → ^20.0.0
- @swimlane/ngx-charts: ^22.0.0-alpha.1 → ^23.0.0

* chore(peer-deps): downgrade @angular/core to ^20.0.0

* chore(deps): bump nx from 21.1.0 to 21.2.0

* fix: resolve Angular control flow migration errors

* chore(deps): bump nx from 21.1.0 to 21.2.0

* chore(deps): bump tar from 7.4.3 to 7.5.3

Bumps [tar](https://github.com/isaacs/node-tar) from 7.4.3 to 7.5.3.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v7.4.3...v7.5.3)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps): bump nx from 21.1.0 to 21.2.0

* chore(deps): bump nx from 21.1.0 to 21.2.0

* Update dashboard-skeleton.component.html

* fix: build issue

* refactor(package): simplify `build:package:common` command

* refactor(package): simplify `build:package:core` command

* refactor(package): simplify `build:package:ui-auth` command

* refactor(package): simplify `build📦*` commands

* refactor(package): simplify `build📦*` commands

* chore(deps): upgrade typeorm to 0.3.28 across all packages

* chore(deps): upgrade uuid to 13.0.0

* chore(deps): upgrade moment-timezone to 0.6.0

* chore(deps): upgrade typescript to 5.9.3

* chore(deps): upgrade angular2-smart-table to 4.1.1

* Revert "chore(deps): upgrade angular2-smart-table to 4.1.1"

This reverts commit 42045044ab.

* chore(deps): upgrade typescript to 5.9.3

* chore(build): add CommonJS dependencies to allowed list for `desktop-ui-lib`

* Update menu-item.component.html

* Update menu-item.component.ts

* fix: seeder command

* fix: tasks sprint settings view

* chore(deps): downgrade @ng-select/ng-select from 15.0.0 to 14.9.0

* chore(deps): upgrade terser-webpack-plugin to 5.3.16 and camelcase to 9.0.0

- Update terser-webpack-plugin across all apps
- Upgrade camelcase and fix imports for v9 default export
- Remove unused camelcase from apps/gauzy and root package.json

* chore: upgrade @nestjs/* packages to latest versions

- Upgrade core NestJS packages from 11.1.10 to 11.1.12:
  * @nestjs/common
  * @nestjs/core
  * @nestjs/platform-express
  * @nestjs/testing
  * @nestjs/microservices
  * @nestjs/platform-socket.io
  * @nestjs/websockets

- Upgrade GraphQL packages:
  * @nestjs/apollo: 13.1.0 → 13.2.3
  * @nestjs/graphql: 13.1.0 → 13.2.3
  * Add @as-integrations/express5: ^1.1.2 (required for GraphQLModule)

- Upgrade other NestJS packages:
  * @nestjs/jwt: 11.0.0 → 11.0.2
  * @nestjs/serve-static: 5.0.3 → 5.0.4
  * @nestjs/swagger: 11.1.5 → 11.2.5
  * @nestjs/throttler: 6.4.0 → 6.5.0

- Add camelcase resolution (^9.0.0) to root package.json

Updated across all apps and packages in the monorepo.

* chore(deps): bump dotenv from ^16.0.3 to ^17.2.3

* Update public layout component html

* chore(deps): bump angular2-smart-table from ^3.7.0 to ^4.1.1

* chore(deps): bump dotenv from ^16.0.3 to ^17.2.3

* Update package.json

* chore(deps): upgrade @mikro-orm/* packages to 6.6.4

Upgrade all @mikro-orm packages from 6.4.13 to 6.6.4 across core, config,  plugins, and desktop-api packages.

* perf: optimize API startup (reduce DB retries/timeouts)

* Update selector.abstract.ts

* fix(config): use Number.parseInt and simplify db timeout logic

* Update yarn.lock

* chore(deps): upgrade packages to latest versions

* Update package.json

* chore(deps): upgrade packages to latest versions

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 17:08:25 +01:00
Rahul R. a7bf068778 Merge pull request #9320 from ever-co/fix/angular-build-optimization
[Fix] Angular UI Build Speed
2026-01-08 19:48:21 +01:00
7cd0d63a2d [Feat] Implementation of the Gauzy Model Context Protocol (MCP) Server (#9029)
* feat: implement MCP server and clean codebase

* fix: fix suggestions from requested changes

* feat: create a separate directory for the standalone MCP app

* feat: create Electron Desktop app for MCP server

* feat: implement the sharing package directory for MCP implementation

* Update apps/server-mcp/src/static/index.html

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update README.md

* Update security-config.ts

* fix: Fix the error related to configuration when running standalone App

* fix: add requested changes for review

* fix: add suggestion from AI bots

* fix: add suggestions from AI bots

* fix: add suggestions from AI bots

* fix: add suggestions from AI bots

---------

Co-authored-by: Ruslan Konviser <evereq@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-07-25 10:56:54 +02:00
Kifungo Aandgreptile-apps[bot] 246401d452 [Feat] Implement UI for soundshot/camshot (#9002)
* feat(videos-ui): add camshots state management and service

Add Akita store, effects, queries, and actions for managing camshot state.
Implement Angular service to fetch camshots from the API endpoint.
Define camshot model interface and class.

* refactor(videos-ui): simplify camshot query and model usage

Update CamshotQuery to directly use ICamshot interface instead of the Camshot class for camshots and camshot observables. This change enhances type safety and reduces unnecessary object instantiation, streamlining the state management for camshots.

* feat(videos-ui): add components for camshot list

Implement UI components for displaying a list of camshots.
Includes:
- camshot-list component (main container)
- camshot-item component (individual item)
- camshot-item-skeleton component (loading placeholder)
Uses Angular's @defer with 'on viewport' trigger for lazy loading individual camshot items and a minimum placeholder duration.

* refactor(videos-ui/camshots): refactor camshot list data flow

Refactor CamshotListComponent to consume camshots data from the
CamshotQuery observable instead of using an input property.
Refactor CamshotItemComponent to define its action buttons internally
based on the camshot's state (e.g., deleted status) and emit specific
events for each action (view, download, recover, delete, hard delete).
Remove the actions input from CamshotItemComponent.
Add CamshotItemComponent, CamshotItemSkeletonComponent, and
CamshotListComponent to the video-ui module declarations as they are
no longer standalone.

* feat(videos-ui): add camshots tab to video detail page

Display camshots associated with the video's time slot in a new tab on the video detail page.
Implement infinite scroll pagination for the camshot list to efficiently load camshots.
Refactor camshot list component to accept the time slot ID as input and manage its own data fetching and state based on the provided ID.

* feat(videos-ui): improve list display and loading

Introduce deferred loading for video and camshot lists on the detail page to
improve initial page load performance using Angular's @defer syntax.
Redesign the camshot item display by changing action buttons to a popover
menu accessed via an icon and updating the layout and styling of the
thumbnail, title, and meta information.
Adjust the initial and reset skip value in the camshot list component
to fix a potential pagination issue.

* refactor(camshot): restructure item skeleton html and style appearance

Restructure the HTML elements of the camshot item skeleton (e.g.,
using divs instead of semantic tags) to provide better hooks for
styling. Update the SCSS to apply new styles and refine the pulsing
animation colors and layout. Add overflow styling to the camshot
list container.

* refactor(video-detail): improve list loading and infinite scroll

Update camshot and similar video lists on the video detail page to:
- Display more informative 'Loading...' messages using ngx-no-data-message.
- Rename 'Videos' tab to 'Similars'.
- Prevent fetching camshots when timeSlotId is not available.
- Enable infinite scroll pagination for camshots only after the
initial data has loaded and timeSlotId is present.
- Remove unused console.log.
- Add minor styling to tab links.

* feat(camshot-item): emit full camshot object from item actions

Change camshot item action outputs to emit the full ICamshot object
instead of just the ID. Update output event emitter types and
button action callbacks to reflect this change.

* refactor(camshot-item): replace static button labels with i18n keys

Prepare the component for internationalization by using localization keys
instead of hardcoded strings for button labels.

* feat(videos-ui/camshot): add view, delete and restore functionality

Implement actions, effects, store updates, and service methods
for managing individual camshots.
Adds the ability to view, soft delete, hard delete, and restore
camshots from the UI.
Updates the camshot item component to emit events for these actions
and adds a delete confirmation dialog in the list component.

* feat(camshot): add loading state to actions and list deleted

Implement loading state feedback for action buttons in the UI.
Introduce an `ActionButton` class to standardize button properties and include a `loading` observable. Update camshot item component to use this class and bind the loading state of delete and recover actions to the respective query states (`deleting$`, `restoring$`). Update the action button component template to display a spinner based on the loading state.
Modify the `ListCamshotQueryHandler` to include deleted camshots (`withDeleted: true`) in the results, enabling recovery and hard delete actions from the list view. Refine the logic for filtering camshots by the current employee's uploads.
Includes minor UI updates: change recover icon to `refresh-outline` and soft delete button status to `danger`.

* feat(camshot): add downloading state for camshot item

Expose a downloading state observable via the query and add it to the camshot item component to show a loading indicator during download.

* feat(camshot): implement soft-deleted camshot recovery

Add backend endpoint, CQRS command, and handler to recover soft-deleted
camshot entities.
A new PATCH /plugins/camshots/:id endpoint is added to the CamshotController
to trigger the recovery command. The RecoverCamshotCommand and its handler
utilize the softRecover method in the CamshotService to restore the entity.
The DeleteCamshotCommandHandler is updated to correctly query for soft-deleted
entities using `withDeleted: true` when handling deletion commands,
particularly for forceDelete operations.
UI changes in the videos-ui plugin add event handlers and actions
(`onRecover`, `onHardDelete`) for the camshot list component to interact
with the new recovery and updated hard delete logic.

* feat(videos-ui/camshots): add camshot download feature

Implement the download camshot feature.
Adds a new action and effect to handle adding camshots to the download queue service.
Connects the download functionality to the camshot list component.
Updates modal titles for clarity and adds styling for no data message.

* feat(videos-ui/camshot): add dialog to view camshots

Implement a modal dialog component for viewing camshot images.
Replaces the console log action when clicking "view" on a camshot with opening
this new viewer dialog.
The viewer includes basic controls like zooming, loading state, and error
handling.
Updated the camshot query to include the 'uploadedBy' relation for displaying
the uploader's name in the viewer metadata.
Updated the camshot model to include the 'uploadedBy' property.
Includes necessary Angular NgOptimizedImage import for performance.

* feat(camshot-viewer): enhance image viewer with pan, drag, and ui updates

Implement image pan and drag functionality when the image is zoomed.
Redesign the user interface with floating header, updated loading/error states, floating zoom controls, and hoverable metadata.
Improve overall layout, styling, and responsiveness of the viewer dialog.

* fix(soundshot): remove IsUrl validator from file url

* feat(videos-ui/soundshot): add soundshot state management

Add Akita state management slice for soundshots, including:
- Actions for fetch, delete, restore, download
- Effects to handle actions and update store
- Query to select state data
- Store to hold soundshot state
- Service to interact with soundshot API
- Model definition

* feat(videos-ui): add sounshots list and player

Implement feature to display and play sounshots.
- Add `SounshotListComponent` with infinite scroll.
- Create `SounshotPlayerComponent` for audio playback.
- Introduce `SounshotPlayerSkeletonComponent` for loading states.
- Integrate list into video detail page with a new tab.
Includes updates to Codacy configuration, Codacy CLI script,
.gitignore, and .vscode/settings.json.

* feat(videos-ui/soundshot-player): add interactive player controls

Implement play/pause, seeking, and volume control for soundshots.
Display track duration and file size.
Refactor component logic using Angular signals and update template/styles.
Remove outdated spec file and Codacy configuration.

* style(soundshot-player): remove max width from player

Allow the player component to take up the full width of its container.

* refactor(soundshot-skeleton): restructure player skeleton

Rewrite the HTML and SCSS for the soundshot player skeleton
component.
Simplifies the layout structure and updates the animation
style. Also changes the background color variable.

* feat(soundshot-player): add cover image and update layout

Add a cover image element to the soundshot player component.
Adjust the layout to display the cover image alongside the soundshot
title and metadata on wider screens. Maintain a stacked layout on
smaller screens.

* style(soundshot-skeleton): improve skeleton layout and animation

Add a placeholder for the cover image to the soundshot player skeleton.
Refactor the layout of the title and meta information to accommodate
the new cover.
Apply the skeleton loading animation consistently to all significant
elements within the skeleton (cover, title, meta items, controls,
progress, time, volume).

* feat(soundshot-player): add actions popover

Add a popover with action buttons to the soundshot player component.
Include download, delete, and conditionally recover/hard delete actions based on the soundshot status.
Allows users to perform actions directly from the player UI.

* style(soundshot-player): update styling and layout

Adopt CSS variable for border radius for consistency.
Change align-items to flex-start in soundshot info.
Add transition for smoother visual updates.
Add specific styles for the actions element.

* feat(soundshot-player): emit player button action events and add loading state

Replace placeholder console.log actions for player buttons with EventEmitter
outputs. This allows parent components to handle the corresponding actions
such as download, recover, soft delete, and hard delete.
Add loading state indication to buttons based on query status for improved
user experience.

* feat(videos-ui): implement soundshot actions

Implement download, recover, soft delete, and hard delete actions for soundshots.
Add event handlers in the soundshot list component to dispatch corresponding
actions. Use confirmation modals for delete and hard delete operations.
Add visual styling to indicate deleted soundshots in the player component.

* fix(soundshot): include soft-deleted entities in delete lookup

When handling the delete command, the service needs to locate the
soundshot entity even if it has been previously soft-deleted.
Using `findOneByOptions` with `{ withDeleted: true }` ensures the
lookup finds the entity regardless of its soft-delete status.

* feat(soundshot/query): include deleted soundshots

Modify the query handler to pass `withDeleted: true` to the
pagination service, ensuring soft-deleted soundshots are
included in the results.

* feat(videos-ui): add toast notifications for restore and delete

Add toast notifications for camshot and soundshot restore and delete
operations.
These toasts inform the user about the status of the operation,
including when it starts, succeeds, or fails. This provides clearer
feedback than just updating the UI state.

* style(soundshot-player): reduce deleted background opacity

* feat(soundshot): add soundshot recovery endpoint and command

Implement command, handler, and controller endpoint to allow soft-recovering
a previously deleted soundshot record.

* feat(soundshot): allow filtering soundshots

Update GetSoundshotsQueryDTO to accept a generic FindOptionsWhere for the
where clause. This removes the previous limitation requiring
TenantOrganizationBaseDTO and a custom transformation.
Utilize the where clause in the soundshot list component to filter by
timeSlotId.

* refactor(soundshot): remove ValidateNested import

* fix(camshot): correctly apply filters to camshot query

When listing camshots, ensure that users without the
CHANGE_SELECTED_EMPLOYEE permission are correctly filtered by
their uploadedById. If a user lacks this permission and does
not have a current employee ID, return an empty result set
immediately to prevent unauthorized data exposure or query errors.
Also, ensure that the dynamically built 'where' clause (from
permissions or date filters) is correctly merged with any base
'where' conditions provided in the query parameters.
Update internal comments for accuracy.

* fix(videos): refine list query filtering and permissions

Add stricter checks in the list videos query handler:
- Ensure `employeeIds` filter is only applied for users
with the `CHANGE_SELECTED_EMPLOYEE` permission.
- Return empty result if user lacks permission and
current employee ID is missing.
- Include soft-deleted records in the query results.
Also update a comment in the list camshot query handler.

* refactor(videos): refactor video count query handler with validation

Add explicit validation for required query options (organizationId,
tenantId) to ensure the handler receives necessary parameters.
Refactor the handler by extracting validation and where condition
building logic into separate private methods. This improves code
structure, readability, and testability.
Enhance JSDoc comments to better explain the handler's purpose,
parameters, and behavior.

* chore(videos-ui): correct sounshot typo in soundshot components

Update component names, selectors, and file paths from "sounshot" to "soundshot" to fix consistent misspelling. This affects the soundshot list, player, and skeleton components and their imports.

* chore(cspell): ignore rules directory

* chore: ignore .codacy directory in spell check

* fix(video-detail-page): update similar tab title

* fix(camshot): correct recover camshot handler filename and import

Correct a typo in the filename for the recover camshot command handler and update the corresponding import path.

* fix(camshot): improve message for camshot recovery not found

Provide more detailed reasons when camshot recovery fails due
to not found or other issues.

* fix(video-detail-page): fix soundshot loading message status

Change the status of the placeholder message displayed while
soundshots are loading from danger to info. Danger status is misleading
for a simple loading state; info status better reflects the ongoing
process.

* fix(video-detail-page): correct loading message and status

Update the loading message from 'Loading camshots...' to
'Loading similar videos...' to accurately reflect the content.
Change the status from 'danger' to 'info' as the loading state
is not a critical error.

* style(camshot-list): clean up formatting

* fix:  incorrect grammar in description

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* fix(soundshot-player): improve seek function robustness

Add checks to ensure the audio player and progress bar elements
are available before attempting to calculate the seek position.
Also add a check for zero width on the progress bar.
Wrap the seek operation in a try/catch block to gracefully handle
potential errors during playback updates.
Include console warnings/errors for debugging missing elements
or failed seek operations.

* fix: Duplicate 'nbButton' attribute on lines 2 and 5. Remove one instance.

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* fix:  property 'border-radius-top-left' is invalid

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* fix: no feedback shown when isAdded is false. User should be notified if download queue addition fails

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* fix: command should implement ICommand interface from @nestjs/cqrs to follow CQRS pattern

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* feat(soundshot): return recovered soundshot from patch

Return the updated soundshot object after recovery.
This allows the client to immediately use the refreshed state of the
soundshot without needing a subsequent GET request.
BREAKING CHANGE: The PATCH /soundshots/:id endpoint now returns the
recovered soundshot object instead of nothing.

* fix: API description has a typo 'UUID, version UUID the plugin ID'

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* chore: remove sensitive nx cloud access token

Remove the hardcoded token from nx.json.
Environment variables or secrets management
should be used instead.

* style(camshot): fix formatting and API description typo

Correct constructor formatting in CamshotController and RecoverCamshotCommand. Update API description to remove redundancy in the recover camshot operation.

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2025-06-21 11:07:03 +02:00
Ruslan Konviser 69f0ab2837 chore: packages fixes 2025-03-16 14:59:06 +01:00
rolandm99 d33bbca742 feat(make-com-integration): implement plugin for make.com platform integration 2025-02-26 11:06:09 +02:00
Rahul R. afa7223320 refactor: rename user notification to employee notification 2025-02-10 20:02:57 +05:30
GloireMutaliko21 58e67751d2 fix: try to resolve issue with circular deps 2025-01-29 18:34:20 +02:00
Ruslan Konviserandadkif 612720083b Feat/implement videos UI (#8742)
* feat: scaffolding videos ui package

Generate videos ui plugin package using NX tools

* feat: adds video tab to employee activity page

Integrates the `@gauzy/videos-ui` plugin to display employee videos within the activity tab section.

This adds a new "Videos" tab alongside screenshots, app activity, and URLs, allowing for comprehensive tracking of employee activity.  The tab's content is loaded from the `VideoUiModule` and is accessible under the 'time-activity' location.  Permissions for the new tab are consistent with other activity tracking features.

* feat: implements vertical video list view

Adds an input to the video list component to allow switching to a vertical layout.
Updates styling for both the video list and individual video items to support vertical orientation.
Modifies the video detail page to display the video list vertically.

* feat: improves video detail page UI

Adds a "more actions" icon to the video title area.

Sets a minimum width for the video list to prevent layout issues.

Updates the video detail page title to be more concise.

* feat: adds action buttons to video components

Introduces action buttons for common video operations like download, edit, share, and delete.

This change improves the user experience by providing quick access to these actions directly within the video list and detail views.  The download button is displayed prominently, while other actions are grouped under a menu.

* feat: implements video edit and delete actions

Adds edit and delete actions to the video list.

Includes a confirmation dialog before deleting a video.
Updates the video details page to use change detection.
Adds toast notifications for successful updates and deletions.

* feat: formats video duration in video item component

Applies the `durationFormat` pipe to the displayed video duration.  This improves the readability of the duration.

* fix: video navigation on details page

Handles route reuse strategy to navigate correctly to video details.

Previously, navigating between videos on the details page would result in incorrect routing due to route reuse. This change updates the navigation logic to account for the route reuse strategy, ensuring consistent navigation behavior.

* refactor: video edit component to shared module

Moves the `VideoEditComponent` from the `video-edit` feature module to the `shared/ui` module.

This change improves code reusability and organization by placing the video edit component in a shared location, making it accessible to other modules.

* feat: implements video metadata

Adds dialogs for viewing video metadata.

Updates the video action buttons to open the respective dialogs.

* fix: use custom video sharing with Web Share API

Uses the Web Share API for sharing videos directly from the browser.

This change adds use the native Web Share API.  The share button is now dynamically hidden if the user's browser does not support the Web Share API.

* feat: improves video sharing with toast notifications

Replaces console logs with toast notifications for user feedback during video sharing.  This provides more informative messages for share success, cancellation, errors, and clipboard copy.  Also removes unnecessary share data from the share tracking event.

* fix: video player width and removes console log

Sets a maximum width for the video player to prevent it from overflowing its container.

Removes a debug console log from the video update effect.

* feat: adds video sharing functionality

Implements sharing videos via Web Share API.

Adds a new action, effect, and service to handle sharing.
Updates the video component and video item component to use the new functionality.

* feat: adds video download functionality

Implements video download feature using a download queue service.

Adds actions, effects, and UI elements to support adding and removing videos from the queue.
Integrates a download manager component to display and manage queued downloads.
Updates the video player and video item components to trigger the download action.

* fix: refactors download queue observables

Renames BehaviorSubject properties to use a leading underscore for internal state management. This improves code clarity and consistency.

* fix: duplicate downloads in video UI

Handles empty or null URL input and prevents adding duplicate URLs to the download queue. Cancels ongoing downloads before removing them from the queue.  Improves download status check by handling potentially missing download data.

* feat: improves video download manager UI/UX

Redesigns the video download manager to enhance the user experience.

Adds a retry download button for failed downloads.  Displays download progress with a progress bar and file size information. Improves the overall layout and styling for better clarity.

* feat: displays video download manager as popover

Moves the video download manager to a popover that is displayed when hovering over the download button in the video component.

Adds no-data message to download manager when the queue is empty.

Updates styling for the download manager and progress bar.

* Styles video download manager items

Increases spacing between video download manager items and changes the filename text from h4 to h6 for better visual hierarchy.

* perf: preloads video metadata

Adds `preload="metadata"` attribute to the video element. This optimizes video loading by preloading metadata such as duration and dimensions before the user initiates playback.  This improves the user experience by allowing the player to display information like duration and prepare for playback more quickly.

* feat: improves video UI with placeholders and layout

Adds placeholder skeletons for video list and individual video components to improve user experience during loading.

Removes unnecessary conditional rendering of video list and video player, simplifying the component logic.

Adjusts video title styling for better visual presentation.

Adds `w-100` class to video component on the detail page for responsive layout.

Removes unnecessary conditional check for video URL in video item component.

* fix: video reload on route change

Reloads the video player when the route changes to a new video.

This change addresses an issue where the video player would not reload when navigating between different videos. The `videoPlayer` component now has a public `player` property that exposes the underlying HTMLVideoElement.  The `VideoComponent` now uses `@ViewChild` to access the `videoPlayer` and calls its `load` method when the `video$` observable emits a new value. This ensures that the video player correctly reloads and plays the new video when the route changes.

* enhance: shows toastr notifications for download status changes

Implements toastr notifications to inform the user about the status of their downloads, including start, completion, and failure.

This improvement enhances the user experience by providing real-time feedback during the download process.

* enhance: improves download filename handling

Uses a new utility function to extract filenames from URLs for downloads,
providing a default filename if extraction fails. This improves the
handling of filenames in download notifications and the saved files.

* feat: improves video list loading and display

Implements infinite scrolling for video lists on both the main video page and the video detail page.

This enhances the user experience by loading videos on demand as the user scrolls down, preventing initial page load times from being excessively long when dealing with many videos.  It also adds a new action and effect to fetch videos while excluding a specific video ID, which is used on the video detail page to avoid displaying the currently viewed video in the related videos list.  Additionally, the related videos list on the video details page now utilizes the infinite scroll functionality for loading more videos.

* refactor: video components and improves UX

- Extracts filename from URL using a utility function for consistency.
- Improves dialog handling by ensuring single emissions on close.
- Improves UX by resetting scroll position and skip value on navigation within video details.
- Uses untilDestroyed operator to prevent memory leaks in subscriptions.

* fix: removes unused video-preview component and related files.

Moves download-related services and components into the video-ui module for better organization.  Updates imports accordingly.

* feat: adds video page filters

Adds support for saving filter state.
Removes employee filter from video page selectors.
Updates video page to use new filter structure.

* feat: improves video UI with loading and error states

Adds loading and error states to the video player and video list components.

Includes a skeleton loader for initial loading and a loading indicator during video retrieval.  Displays user-friendly messages for video not found errors.  Also improves styling with rounded corners for skeleton loaders.

* feat: improves video list loading state

Adds a loading indicator to the video list page while videos are being fetched.

Displays a "No video found" message if no videos are available after loading.

Sets a minimum placeholder display time for a smoother user experience.

* feat: hides video tab if no videos are available

Introduces a check for video availability and dynamically adds/removes the "Videos" tab in the employee activity layout based on the presence of videos.

This prevents displaying an empty video tab when no videos exist, improving the user experience.

* fix: cspell spelling

* fix: cspell spelling

* fix: file saving error handling

Improves error handling and resource cleanup in the `FileSaveStrategy`.

Adds checks for valid blob and filename inputs.
Wraps file saving operations in a try-catch block to handle potential errors.
Ensures removal of the temporary link element and revocation of the blob URL in a finally block.

* fix: sanitizes video source URL

Uses `DomSanitizer` to bypass security and prevent XSS vulnerabilities when binding to the `src` attribute of the video player.  This ensures that untrusted URLs are handled safely.

* fix: adds rel="noopener noreferrer" to external link

Improves security by adding `rel="noopener noreferrer"` to the external link for viewing the full video. This prevents the linked site from accessing the original page's `window` object and mitigates potential security risks.

---------

Co-authored-by: adkif <akifungo@gmail.com>
2025-01-24 21:19:21 +01:00
Rahul R.andRuslan Konviser 23c4718757 [Chore] #8696 Remove PM2 Dependency and Configurations (#8698)
* chore(deps): remove pm2 (^5.3.1) as it's no longer needed

* chore: remove unused pm2bootstrap.ts files & commands

* chore(env): remove PM2-related variables from multiple .env files

* chore(ci): remove PM2-related secrets from YAML configuration files

* fix(cspell): typo spelling :-)

* fix(cspell): typo spelling :-)

* Update Dockerfile

---------

Co-authored-by: Ruslan Konviser <evereq@gmail.com>
2025-01-04 11:56:49 +01:00
Rahul R. 602479e72e [Fix] Increase @Timeout duration to 5 minutes for extended task execution (#8639)
* fix: Increase @Timeout duration to 5 minutes

* fix: avoid using 'Function' as a type

* chore(logging): jitsu analytics failed message
2024-12-28 15:39:16 +01:00
Ruslan Konviser 2f4471627c chore: more build fixes 2024-12-21 21:53:34 +01:00
b65962343a Merge (#8598)
* chore: regenerate @gauzy/plugin library using updated Nx generator

* chore: regenerate @gauzy/common library using updated Nx generator

* chore: regenerate @gauzy/config library using updated Nx generator

* chore: regenerate @gauzy/auth library using updated Nx generator

* chore: regenerate @gauzy/common-angular library using updated Nx generator

* chore: regenerate @gauzy/plugin-changelog library using updated Nx generator

* chore: regenerate @gauzy/plugin-integration-ai-ui library by Nx generator

* chore: regenerate integration-github library using updated Nx generator

* chore: regenerate @gauzy/core library using updated Nx generator

* chore(deps): bump chalk version from 4.1.2 to ^5.3.0

* chore(deps): downgrade chalk version from ^5.3.0 to ^4.1.0

* fix: nx build core

* chore: regenerate @gauzy/plugin-sentry library using updated Nx generator

* chore: regenerate @gauzy/plugin-product-reviews by NX generator

* chore: regenerate @gauzy/plugin-knowledge-base by NX generator

* chore(deps): removed tslint & rimraf unused packages

* chore: regenerate @gauzy/plugin-job-search by NX generator

* chore: regenerate @gauzy/plugin-job-proposal by NX generator

* chore: regenerate @gauzy/plugin-jitsu-analytics by NX generator

* fix(moment): resolve ESM/CJS import conflict by adjusting moment import syntax

* chore: regenerate @gauzy/plugin-integration-hubstaff by NX generator

* chore: regenerate @gauzy/plugin-integration-jira by NX generator

* refactor: regenerate @gauzy/plugin-integration-upwork by NX generator

* refactor: regenerate @gauzy/plugin-integration-wakatime by NX generator

* fix(moment): adjust import syntax to resolve compatibility issues

* refactor: regenerate @gauzy/ui-config by NX generator

* refactor: regenerate @gauzy/ui-core by NX generator

* refactor: regenerate @gauzy/plugin-integration-* by NX generator

* refactor: regenerate @gauzy/plugin-integration-* by NX generator

* refactor: regenerate @gauzy/plugin-integration-* by NX generator

* refactor: regenerate @gauzy/plugin-integration-* by NX generator

* fix(scripts): update build script for libs to use Nx build command

* fix(deepscan): removed unused imports

* fix(deepscan): removed unused imports

* fix(deepscan): removed unused imports

* chore(libraries): Add public-api files for all libraries

* fix(moment-import): resolve conflicting import statements for moment

* chore(paths): Add path mapping for @gauzy/plugin-integration-ai in tsconfig

* refactor: regenerate @gauzy/desktop-libs by NX generator

* refactor: regenerate @gauzy/desktop-window by NX generator

* fix: resolve conflicting import styles for moment.js

* chore: bump image-size version from 1.0.2 to 1.1.1

* fix: resolve import conflict for 'csv-parser' with consistent import style

* feat: add dynamic watch script for NX projects

* fix(api): update project.json assets path

* refactor: regenerate @gauzy/desktop-ui-lib by NX generator

* chore(dependencies): Move tslib from peerDependencies to dependencies

* refactor(package): Rename package from desktop-libs to desktop-lib

* chore: move desktop-api from packages to apps folder

* chore(desktop): add missing jest.config.ts file for desktop application

* chore(package): added "engines" field for Node.js and Yarn version

* chore(deps): bump @angular-builders/custom-webpack from ^16.0.1 to ^17.0.0

* refactor(config): replace deprecated 'browserTarget' with 'buildTarget' for gauzy application

* chore(deps): bump rxjs from 7.4.0 to 7.8.0

* chore(deps): bump typescript from 5.1.6 to 5.4.5

* refactor: regenerate @gauzy/core by NX generator

* Update packages/core/package.json

* fix: dynamically resolve migrations directory for both src and dist environments

* fix(api): resolve issues with NX API server configuration

* fix(api): resolve issues with NX API server configuration

* fix(api): correct asset public path

* fix(api): correct asset public path for seeds

* fix(api): correct asset public path for seeds

* fix(deepscan): removed unused imports

* fix(deepscan): removed unused imports

* fix: migration configuration settings for dist/src

* fix(deepscan): removed unused imports

* chore(nx): migrate @nx/workspace to version 19.8.10

* chore(nx): migrate @nx/workspace to version 20.1.3

* chore(deps): update packages to support Angular v18

* chore: regenerate @gauzy/desktop app using Nx generator

* chore: regenerate @gauzy/api app using Nx generator

* chore(deps): update packages to support Angular v18

* chore(deps): update packages to support Angular v18

* refactor: regenerate @gauzy/plugin-integration-* by NX generator

* chore(deps): update packages to support Angular v18

* fix(package.json): correct main entry points to ./src/index.js

* fix(package.json): correct main entry points to ./src/index.js

* refactor: regenerate packages libs using NX generator

* wip: building desktop application for windows

* wip: building desktop application for windows

* fix: building desktop apps for windows

* fix: standardize moment.js imports to avoid conflicts

* fix: standardize moment.js imports to avoid conflicts

* chore(deps): bump electron-util from 0.17.2 to 0.18.1

* chore(deps): bump electron-util from 0.17.2 to 0.18.1

* chore(tsconfig): enable `esModuleInterop` in tsconfig.lib.json

* chore(tsconfig): enable `esModuleInterop` in tsconfig.lib.json

* feat: add nx-electron package for Electron app integration

* refactor: regenerate @gauzy/desktop-timer by NX generator

* refactor: regenerate @gauzy/gauzy-server by NX generator

* fix(apps): add missing polyfills.ts

* chore(deps): bump electron from 30.0.1 to 33.2.1

* chore(deps): bump @types/electro from 1.6.10 to 1.6.12

* fix: server build

* feat: update better sqlite and elctron builder

* chore(deps): bump better-sqlite3 from 9.5.0 to 11.6.0

* chore(tsconfig): enable `esModuleInterop` in tsconfig.lib.json

* update build:gauzy-server script in package.json

* chore(build): update ui-core build scripts to include ui-config build dependency

* hore(nx): update implicitDependencies configuration for better build order tracking

* chore(deps): downgrade electron, electron-builder and better-sqlite3

* update better-sqlite3 version from 11.6.0 to 9.6.0 in yarn.lock

* fix: circular dependecies

* fix: project.json: modify build and test targets, add config target

* fix: ng-package.json: changed styleIncludePaths

* fix: circular dependecies: moved social links from auth module to constants, refactored auth module imports and providers, and updated social links component to import from constants.

* fix: project.json: modify index, main, and polyfills settings, and remove aot, vendorChunk, and buildOptimizer options.

* fix: tsconfig files, relaxed TypeScript strict mode, and refactored app constants to use injector.get(GAUZY_ENV) instead of environment

* swap 'index' and 'browser' properties in project.json

* fix ng-package.json and tsconfig.json files in integration-ai-ui package.

* remove implicit dependencies and update output formats in integration-ai-ui project.json

* fix: file paths in index.ts and package.json to include 'browser' directory

* rename "gauzy-server-api" to "gauzy-api-server" in project.json.

* fix: electron-builder version from 33.2.1 to 30.0.1 in various build scripts

* fix(apps): desktop-timer for windows

* chore(deps): pin better-sqlite3 to version 9.6.0

* fix(apps): desktop-timer for windows

* fix(apps): desktop-timer for windows

* refactor(desktop-ui-lib): updated include style paths

* fix(apps): desktop-timer for windows

* fix(apps): api build issue

* fix(apps): desktop-timer for windows

* fix(apps): desktop for windows

* fix: package.json, nx.json, and project.json files with various changes to scripts, configurations, and dependencies.

* feat: add node modules to files

* fix: ignore html

* feat: add new entries points

* fix: static file ui dir path

* fix: package json build

* fix: base href in build option

* fix: blank window

* fix(contracts): resolve merge conflicts and ensure consistency in package

* fix: merged changes from conflicting branches.

* fix: merged changes from conflicting branches.

* fix(deepscan): removed unused imports

* fix(cspell): typo spelling :-)

* fix(apps): full desktop for windows

* fix(apps): full desktop for windows

* feat: create screening task entity and repositories

* feat: create Postgres migration

* feat: add MySQL migration

* wip(apps): desktop server for windows

* feat: generate SQLite migration

* fix(apps): desktop server for windows

* feat: create screening task service

* fix: improve task statuses added cancelled status

* feat: update screening issue method

* feat: task finders, include isScreening filter

* feat: screening task commands

* feat: screening task controller

* refactor(apps): API custom webpack configuration

* refactor(apps): Desktop API custom webpack configuration

* fix(apps): server API for windows

* fix: merged changes from conflicting branches.

* chore: update allowedCommonJsDependencies in build configuration

* chore(deps): bump tsconfig-paths from 3.9.0 to 4.2.0

* chore: add resolve alias generation for Nx libraries

* fix: create screening task add prefix and task number

* fix: resolve migration `yarn run migration:generate` command

* fix: resolve seeder `yarn run seed:all` command

* chore: update `tsconfig-paths-webpack-plugin` to version ^4.2.0 across the workspace

* fix: ui-config dist package resolve path

* refactor: updated custom webpack config

* [Bug] Issue in Opening Appointment bug

* Fix:Issue in Opening Appointment bug

* Fix: Unable to Pick a Date and Time for Appointment

* Remove console log

* chore: add CHANGELOG.md for packages

* fix: update outputPath configuration for packages

* fix: resolve duplicate and inconsistent package references in dependencies

* Fix: Users Can Add Duplicate Employment Types

* Fix: Users Can Add Duplicate Employment Types

* chore: remove "exports" field from package.json

* Fix: Users Can Add Duplicate Departments

* fix: update outputPath configuration for desktop packages

* fix(apps): full desktop for windows

* fix(deps): add missing dependencies

* chore(nx): migrate @nx/workspace to version 20.1.4

* fix(nx): resolve mixed path separators causing project graph conflict

* chore(nx): disable cache for pacages executor

* Fix: Duplicate departments

* chore: remove unused common-angular package

- Deleted the `common-angular` package as it is no longer required.

* chore: remove unused common-angular package

* fix: desktop server issues

* chore(nx): enable cache for packages executor

* chore(nx): enable cache for packages executor

* fix(database): correct migration directory path resolution

* chore: add workspace package references and update dependencies

* chore: update start:api:core script to use NX run command

* chore: add workspace package references and update dependencies

* Fix: Name duplication

* chore: improve logging and structure for start and stop methods

* chore: remove @gauzy/ui-config dependency

* chore(deps): resolve conflicting @types/google.maps versions

* chore(deps): resolve duplicate @types/jest versions

* chore: add 'google.maps' and 'node' types to tsconfig

* Fix: Unable to remove selection when user use “Select All” Option in “Invite Employee” Popup Window

* Fix: Work End Date Can Be Set Before Work Start Date

* Remove console log

* chore(deps): bump copy-webpack-plugin from 9.0.1 to 12.0.2

* feat(build): integrate copy-webpack-plugin for package copying

* fix(build): ensure cross-platform compatibility for packageRoot paths

* fix(build): recursively collect and copy nested packages

* refactor(migrations): simplify migration path resolution

* fix(workspace): update package paths to use built distributions

* refactor: prioritize .env over .env.local

* refactor: move 'serve' configuration under 'options' for project.json

* fix(deepscan): removed unused imports

* fix(workspace): update package paths to use built distributions

* [Feat] Improve Employee Setting (#8585)

* feat: improve employee setting entity and migration

* fix(deepscan): unused import

* feat: add employee setting subscriber

* feat: employee setting create and update services

* feat: employee setting commands

* feat: employee setting API

* fix: employee setting creation

* fix: include tenant in base entity enum

* fix: postgres migration for employee setting

* fix: SQLite employee setting migration

* fix: SQLite and MySQL employee setting migration

* fix: employee setting migration

* fix: setting type storing int values

* fix: env vars

* fix: .env.local

* chore(nx): add defaultCollection configuration for @nstudio/xplat

* Fix: Filters Not Working on “Time Off” Screen

* Format code

* fix(cspell): typo spelling :-)

---------

Co-authored-by: Rahul R. <rahulrathore576@gmail.com>
Co-authored-by: Kifungo A <45813955+adkif@users.noreply.github.com>
Co-authored-by: GloireMutaliko21 <mufunyig@gmail.com>
Co-authored-by: Rahul R. <41804588+rahul-rocket@users.noreply.github.com>
Co-authored-by: samuelmbabhazi <samuelmbabhazi42@gmail.com>
Co-authored-by: syns2191 <sutralian@gmail.com>
Co-authored-by: Gloire Mutaliko (Salva) <86450367+GloireMutaliko21@users.noreply.github.com>
2024-12-20 08:30:49 +01:00
samuelmbabhazi 424eb51d74 fix update isFilterable property 2024-08-13 16:57:26 +02:00
Rahul R. cb8914bfb2 [Feat] Job Browse Library (#8009)
* fix: added custom translate loader

* fix: updated job search ui tsconfig

* refactor: updated proposal template selector component

* fix: custom translation compiler & handler

* wip: translation is still not working for outsider modules

* fix: translation worked on job search page

* fix: additional improvement for job search ui plugin

* fix: moved UI internationalization to the component

* chore(deps): bump ngx-translate/core from ^14.0.0 to ^15.0.0

* fix: import in multiple other feature modules

* fix: translation service missing provider

* fix: automatically unsubscribe when component is destroyed
2024-07-29 17:12:46 +05:30
Kifungo A 145b7403b0 Feat/plugin system (#7951)
* feat: create plugin interface

* feat: create  plugin metadata interface

* feat: create plugin manager interface

* feat: create plugin download strategy interface

* feat: define plugin channels

* feat: add constants

* feat: create plugin download context types

* feat: create plugin download context

* feat: create metadata service

* feat: create a migration for plugins

* feat: implement CDN download strategy

* feat: implement donload context factory

* feat: implement plugin manager

* feat: implement plugin event listeners

* feat: add pluglin listenners to all desktop apps

* feat: create and update index.ts

* feat: Updated nx.json and yarn.lock files with changes to dependencies and versions.

* Update error message in DownloadContextFactory from 'Uknown context' to 'ERROR::Unknown strategy'

* Added 'main' and 'pathname' columns to 'plugins' table

* chore(deps): add unzipper package

* feat: improve  no data message module

* feat: add new methods to plugin manager and handle invokers

* feat: implement plugin renderer

* Update error message in AddPluginComponent

* Refactor: PluginManager to use lazy loader, update plugin path, and fix CDN download strategy

* Rename PluginHandlerChannel enum values from 'plugin::' to 'plugins::

* feat: update styles for .error class and nb-card in add-plugin.component.scss

* Refactor: PluginMetadataService, ElectronPluginListener, PluginListComponent, and PluginElectronService: update database queries, event handling, and IPC communication

* Updated plugin management components, services, and translations in desktop-ui-lib and ui-core packages.

* Changed lazyLoader to return module.default instead of module

* Updated PluginListComponent to set plugin to null after activation and view, and refactored PluginElectronService to properly handle ipcRenderer event listeners.

* refactor: desktop-libs and desktop-ui-lib: update plugin listeners, plugin manager, and plugin list component

* feat: added 'renderer' field to plugin metadata, updated plugin manager and plugin loader services, and modified plugin list and plugin components to handle renderer field

* feat: added ngIf condition to 'button-view' to only render when 'plugin.renderer' is truthy

* Update plugin database migration to make renderer column nullable, and modify PluginManager to set process.noAsar during download and update plugin operations, and use force option when copying files.

* Refactor PluginManager and TimeTrackerComponent: update plugin uninstallation, remove unnecessary imports, and add new imports and functionality to TimeTrackerComponent

* feat: added uninstall method to PluginListComponent and updated PluginElectronService to send plugin name instead of entire plugin object

* feat: updated plugin list component HTML and TS files: renamed 'remove' to 'uninstall' button, refactored plugin loading and observation, and made minor adjustments to code organization and syntax.

* refactory: moved pluginListeners() call from app.whenReady() to ipcMainHandler function

* fix: PluginManager to use fs.rmSync instead of fs.rmdirSync, and fix minor issues in PluginListComponent"

* fix: cspell spelling

* fix: cspell spelling
2024-07-22 17:12:30 +02:00
Rahul R. 327248e51d fix: ui-core package library configuration 2024-07-22 16:45:01 +05:30
Rahul R. 54c09d20cc refactor: added enforce module boundaries for @gauzy/ui-core 2024-07-22 15:52:16 +05:30
Rahul R. 3bb73ae256 updated nx.json 2024-06-20 17:21:53 +05:30
Rahul R. 666356be08 Merge branch 'develop' into fix/ui-core-secondary-entry-points 2024-06-20 17:20:35 +05:30
Rahul R. fa2d29da30 fix: refactor job search ui plugin by NX generator 2024-06-20 16:58:42 +05:30
Rahul R. 2100861578 fix: update ui-config ts congiuration using NX 2024-06-19 15:38:15 +05:30
Rahul R. 9ba704dd42 fix: ui core secondary entry points for buildable library 2024-06-19 13:37:47 +05:30
Kifungo A 23d58cd5c6 chore: fix desktop app build 2023-12-27 06:02:44 +00:00
RAHUL RATHORE 925d29eefe chore(nx): updated nx.json 2023-12-26 22:21:37 +05:30
RAHUL RATHORE e81d7c34d9 chore(deps): downgrade NX dependencies 2023-12-26 11:32:01 +05:30
Ruslan Konviser 28bf00d61c chore: disable for now NX cloud cache 2023-09-20 11:37:23 +02:00
Ruslan Konviser 07d2a5b282 chore: add HubStaff required env vars and also switch to NX Cloud 2023-09-08 14:16:56 +02:00