54 Commits

Author SHA1 Message Date
Ivan Kuchin b2691c4d2f custom comment column in project list 2026-02-25 16:00:19 +01:00
Jan Sandbrink 735d7b8738 Allow using updated_at in project filters, selects and orders
The main motivation to add this was to allow filtering by it via API.
Though consistently, we've now enabled it to be usable from the UI as well,
where updated_at is now available as a column and for filtering and ordering.
2025-09-16 15:16:27 +02:00
Alexander Brandon Coles 2b144e8542 Fix wording: Change "Favored" to "Favorited"
Favorite is the correct term in the context of expressing a preference
for a particular project / other OpenProject domain object.

Updates `ActsAsFavorable` to `ActsAsFavoritable`, as well as filenames,
identifiers and strings to:

    favored => favorited
    favorable => favoritable
    favoring => favoriting
2025-09-10 19:08:15 +01:00
Alexander Brandon Coles d17da65477 Freeze string literals in app/models
rubocop -A --only Style/FrozenStringLiteralComment,Layout/EmptyLineAfterMagicComment,Style/RedundantFreeze app/models
2025-07-22 18:26:13 +01:00
ulferts e77c21dc72 adapt select and order for project phase 2025-04-01 16:39:42 +03:00
ulferts 1b197c2672 rework filters to changed phase structure 2025-04-01 16:39:41 +03:00
ulferts af91ca33f5 rename any filter to match rest of lifecylce filters 2025-03-03 13:26:48 +01:00
ulferts bd7846f822 Stage and Gate specific filter 2025-03-03 13:26:44 +01:00
ulferts a834a49589 add lifecycle filter with on operator 2025-03-03 13:26:26 +01:00
Tobias Dillmann d39bfb3f3b [#59184] order by life_cycle_step.start_date 2025-01-13 08:28:08 +01:00
Tobias Dillmann b47ce31523 [#58160] project list: query for life cycle steps
This enables us to select a life cycle step as a view. It breaks as soon
as you try to render the table including this field type, though.
2024-12-16 09:51:10 +01:00
Kabiru Mwenja f240ef7077 chore[Op#57515]: Redefine filter as Filters::AvailableCustomFieldsProjectsFilter
clarify that we're querying against `CustomFieldsProject` which is the join table for all custom field types, except "ProjectCustomField" aka "Project Attributes" which uses a special join table `ProjectCustomFieldsProjectMapping`
2024-09-04 18:21:04 +03:00
Kabiru Mwenja b608b108d8 [Op#5715]: Define AvailableCustomFieldsProjectFilter 2024-09-04 12:01:32 +03:00
Ivan Kuchin 4911b8a149 remove years from copyrights (except for COPYRIGHT file) 2024-07-31 15:02:49 +02:00
Kabiru Mwenja 96ac32993e [#54459] Investigate queries and filters to display the project list in projects attribute settings view
https://community.openproject.org/work_packages/54459
2024-05-06 16:10:13 +03:00
Oliver Günther e96d2e6506 Add favorites 2024-04-23 14:46:30 +02:00
ulferts ec29bf8d33 column registration 2024-03-01 10:01:07 +01:00
Christophe Bliard c795874f7f Update copyright year for 2024
command used: `rg -l 'Copyright \(C\) 2012-202\d the OpenProject' | xargs -n 100 sed -i -r 's/Copyright \(C\) 2012-202. the OpenProject/Copyright (C) 2012-2024 the OpenProject/'`
2024-01-02 16:23:54 +01:00
Aaron Contreras d917366cf5 Add "I am member" filter to projects
* Adds the filter to the selectable filters in the filter section
on the projects index page.

* Adds a menu item to the projects page global sidebar with this query.
2023-07-13 17:01:43 -05:00
Christophe Bliard 21a696ef9b Update copyright information for 2023 2022-12-30 15:51:26 +01:00
Oliver Günther d6737433c4 Make the typeahead project filter search for name only 2022-07-14 11:40:43 +02:00
ulferts ee652cb6b4 Merge pull request #10254 from opf/fix/alternate-filter-registration
Refactor: register query filters without repeating query arg
2022-03-18 09:00:50 +01:00
Christophe Bliard a33524ef6d remove ruby magic comment for utf-8
ruby interprets source encoding as utf-8 since 2.0.0, making magic comment redundant and useless
2022-03-10 19:36:58 +01:00
Christophe Bliard b72a22bf94 Refactor: register query filters without repeating query arg 2022-03-07 09:09:00 +01:00
Christophe Bliard bc8d423ec2 update copyright information for 2022 2022-03-01 17:05:59 +01:00
Oliver Günther 4806e33a40 Merge pull request #10127 from opf/feature/resort-nested-set
Resort projects when creating or updating their name
2022-02-15 08:52:28 +01:00
Oliver Günther 8f26b24622 Add typeahead filter for principals and projects 2022-02-12 20:16:55 +01:00
Oliver Günther 82b8724bd9 Add typeahead sort based on lft now 2022-02-07 09:03:30 +01:00
Oliver Günther ccfa29c728 Move license and copyright docs to root, fix names and references 2021-09-02 21:50:46 +02:00
Oliver Günther 9636a08988 [26688] In-app notifications (#9399)
* Add bell icon to icon font

* Add in app notification in top menu

* Add fullscreen modal

* Add notification modal and items

* Style items

* Toggle details of item

* Mark all read

* Add no results box

* wip specification for event api

* Add events table, query and index

* Send out events from WP notification mailer job

There we have the recipients present

* Add cleanup job for older events with a setting

* Hide bell notification when not logged

* Add specs for events API index/show

* Fix setting yml key

* remove pry in event creation

* Fix before hook in events API to after_validation

* Fix polymorphic association raising exception for aggregated journals

* Fix typo in read_ian

* Fix yml entry for mentioned

* Add read/unread post actions to event API and add specs

* Wire up API to frontend

* Fix order on events

* Switch to unread in notification

* Add event query

* rename WPEventService

* route wp mail sending over events

* rename spec methods

* author becomes watcher

* correct message call signature

* rename events to notifications

* renname parameter to reflect notification nature

* create author watcher for existing work packages

* Merge unreadCount from store

* Take a stab at polymorphic representers

* Fix link generation in polymorphic resources

For journals, no title is being generated however

* Fix frontend model for context

* Use timer for polling

* add notification_setting data layer

* Fix show resource spec

* Fix duplicate class in notification bell item

* Add minimal feature spec for notification

* API for notification settings

* Persist notifications

* adapt work package notification creation to notification settings

* extract notified_on_all

* consolidate wp#recipients

* concentrate wp notification in journal service

* simplify methods

* Remove unused patch endpoint

* Add specs for rendering and parsing notification settings

* Contract spec

* Update service spec

* adapt specs

* Angular notifications frontend

commit e29dced64699eb5f2443b9307c78343c9a58d1ee
Author: Wieland Lindenthal <w.lindenthal@forkmerge.com>
Date:   Mon Jun 21 17:34:50 2021 +0200

    Create Akita store and query for notification settings

commit 1a45c26c1a0c147d15393e49d2625aca4851a64d
Author: Wieland Lindenthal <w.lindenthal@forkmerge.com>
Date:   Mon Jun 21 11:09:25 2021 +0200

    Remove tabs from notificaition settings page

commit 0ea21e90c13a197f8bf2cfba1b60ddcff4e5e827
Author: Oliver Günther <mail@oliverguenther.de>
Date:   Sun Jun 20 21:55:48 2021 +0200

    WIP in app settings

* migrate notification data

* add project visible filter to project query

* Add inline-create and table display grouped by project

* Add notifications under admin/users

* Remove notifications partial

* Rename notififcations store to user preferences store

* Add setting for self_notified and hook that up to the backend

* Add aria-label to table checkboxes

* Restyle table and toolbar

* replace remains of mail_notifications attribute

* initialize notification settings for new user

* adapt my_preferences references

* reenable no self notified for documents

* adapt specs

* Avoid has_many :notifcation_settings

Rails magically autosaves the user's preferences when the user gets saved,
which somehow also tries to save the notfifications even when unchanged.

This breaks some specs such as the avatar upload spec. As we can't update the assocation
through rails anyway, just delegate to the user for reading instead.

* Restore update method of notification settings

* Restore update spec

* fix spec syntax

* lint scss

* linting

* Fix content_tag for bell icon

* Add feature specs for notification settings

* Disable ContentTag cop

* use visible filter to get projects for notification

The visible filter will reduce the project list down to the set of projects visible to the user provided as a parameter. This includes public projects.

* test for actual mail sending

* adapt me resource path

this.apiV3Service.users.me changed its type in 0d6c0b6bc7

* Implement changed migration

* Linting

* Add actor to notification representer

* Fix factory creating a duplicate WP journal

* Add work packages loading and journal details to notification entry component

* IAN basic facets, keep and expanded states.

* Fix notification bell spec

* Render body separately and add auto updating relative time

* Add fixedTime title

* Add actor to notification entry

* Fix clicking links on work package and project

* Tiny styling changes on entry row

* Disable count in notification if larger than 99 (wont fit)

* Introduce virtual scrolling to entry table

* allow delaying & prevent mail sending if ain read

Introduces a setting to delay mail sending after a journal aggregation time has expired. That way, users can confirm a notification in app. If they do before the delay expires, no mail is sent out additionally for that user.

* consolidate notifications (in&out) into shared admin menu

Co-authored-by: ulferts <jens.ulferts@googlemail.com>
Co-authored-by: Wieland Lindenthal <w.lindenthal@forkmerge.com>
2021-06-24 14:03:29 +02:00
ulferts 21f1cd2cc3 Feature/project action filter (#9194)
* define action for copy projects permission

* introduce filtering project list by current user action
2021-04-27 19:57:21 +02:00
Oliver Günther 65575d44f1 [36415] Add public filter to projects list (#9057)
https://community.openproject.com/wp/36415
2021-03-01 11:58:30 +01:00
ulferts 6140f4c7e9 update copyright to 2021 (#8925)
Updates the copyright to 2021 for all files that have a copyright. Files in our source code without the copyright header still do not receive one automatically. Additionally, backlisted files are also excluded.

Previously the copyright of chiliproject which references redmine stated a copyright of redmine up to and including 2017 which is not true for the code we have in here. Because of that I changed that to 2013
2021-01-13 17:47:45 +01:00
Oliver Günther e691340169 Add templated filter to project query
fixup! Add templated filter to project query
2020-06-02 09:44:11 +02:00
ulferts ea65cf10b2 case insensitive order for projects 2020-02-13 14:36:59 +01:00
Henriette Dinger bd7f4e4814 Update copyright notice 2020-01-15 11:31:26 +01:00
Wieland Lindenthal 259950ec24 Add sorting for project status to project list and
change project status filter operator logic to be consistent with other filters
2019-10-17 17:26:52 +02:00
Wieland Lindenthal 1af4b9abe5 Add status filter to project list
Extending the base filter to allow for left outer joins.
2019-10-15 18:36:46 +02:00
ulferts 57131fa32b continue adapting to altered project properties 2019-09-24 16:02:53 +02:00
ulferts 4e5b9afef5 rename project attributes 2019-09-24 09:28:53 +02:00
ulferts 537ea1116e add members widget to dashboard 2019-08-15 15:03:58 +02:00
ulferts b4954d5082 add suprojects widget to dashboard 2019-08-09 11:19:56 +02:00
Oliver Günther f492113c94 [30275] Allow global type select, restrict available projects
This allows to select all available types globally, and restrict the
projects to the ones that have the type available.

The same functionality applies to embedded tables, where a filter on a
type will ensure that only the projects with the type selected will be
returned.

https://community.openproject.com/wp/30275
2019-06-03 14:24:52 +02:00
ulferts a93ecca5a8 Feature/members api show (#7308)
* basic members collection response

* complete member index end point

* document versions#index

* remove user association from members

There is already a more generic principals association. Having both causes confusion and leads to duplicate loading of models

* linting

* remove disabled test

* add members#show api end point

* add project and principal to member representer

* replace member.user reference with principal

* use principal reference in project members association

* modernize roles api

* complete member representer rendering

* replace remnants of user association

* add member schema api endpoint

* have dedicated available projects end point for versions

* linting

* limit roles to assignable ones in schema

* rename member to membership in api

* remove remnants of user in member

* spec fixes

* use available_projects endpoint in versions board

* add eager loading to memberships#index

* members create form api endpoint

* ensure role exists for default assignment

* extract switch for users/groups to work_packages representer

* document membership create form

* add l10n expected in specs

* strengthen the usage of a delete base service

* use base class for set attributes service

* fix alias in service

* add create endpoint to members api

* document members create endpoint

* linting

* adapt to altered service signature

* use default endpoint for wp#get

* use CF infused representer


[ci skip]
2019-05-29 09:31:56 +03:00
Oliver Günther 6ef4211e77 Bump copyright to 2018 (#6171)
[ci skip]
2018-02-12 08:51:12 +01:00
Jens Ulferts 5ae86d9624 integrate custom field ordering 2017-11-30 13:14:06 +01:00
Jens Ulferts 66f3c0b5b7 first stab at order via query 2017-11-30 13:14:06 +01:00
Wieland Lindenthal b83e15a8fa Allow for filtering on latest_activity_at, while not yet resolving timezone difficulties. 2017-11-30 13:14:05 +01:00
Wieland Lindenthal ce7a941c6f Add created_on filter 2017-11-30 13:14:05 +01:00
Wieland Lindenthal 932a074934 Multiple improvements
- Remove onchange submit
- Rename status filter to active or archived
- Sort filter in form alphabetically
- Show CF values for type user in results table
- Do not allow setting filters on CFs unless EE token present
2017-11-30 13:14:04 +01:00